|
淺談Ddos攻擊攻擊與防御 EMail: jianxin# [ 目錄 ] 一 背景 在前幾天,我們運(yùn)營(yíng)的某網(wǎng)站遭受了一次ddos攻擊,我們的網(wǎng)站是一個(gè)公益性質(zhì)的網(wǎng)站,為各個(gè)廠商和白帽子之間搭建一個(gè)平臺(tái)以傳遞安全問題等信息,我們并不清楚因?yàn)槭裁丛驎?huì)遭遇這種無恥的攻擊。因?yàn)槲覀儽旧聿⒉粡氖逻@種類型的攻擊,這種攻擊技術(shù)一般也是比較粗糙的,所以討論得比較少,但是既然發(fā)生了這樣的攻擊我們覺得分享攻擊發(fā)生后我們?cè)谶@個(gè)過程中學(xué)到得東西,以及針對(duì)這種攻擊我們的想法才能讓這次攻擊產(chǎn)生真正的價(jià)值,而并不是這樣的攻擊僅僅浪費(fèi)大家的時(shí)間而已。
在攻擊發(fā)生后,第一個(gè)現(xiàn)象是我們的網(wǎng)站上不去了,但是依然可以訪問到管理界面,我們登陸上去簡(jiǎn)單執(zhí)行了命令: netstat -antp 我們看到有大量的鏈接存在著,并且都是ESTABLISHED狀態(tài),正常狀態(tài)下我們的網(wǎng)站訪問量沒有這么高,如果有這么高我們相信中國(guó)的信息安全就有希望了,對(duì)于這樣的情況其實(shí)處理就比較簡(jiǎn)單,這是一次四層的攻擊,也就是所有ip都是真實(shí)的,由于目前為止只是消耗了webserver的網(wǎng)絡(luò)連接資源,所以我們只需要簡(jiǎn)單的將這些ip在網(wǎng)絡(luò)層封禁就可以,很簡(jiǎn)單,用下面的命令即可: for i in `netstat -an | grep -i ‘:80 ‘|grep ‘EST’ | awk ‘{print $5}’ | cut -d : -f 1 | sort | uniq -c | awk ‘{if($1 > 50) {print $2}}’` 然后作為計(jì)劃任務(wù)一分鐘執(zhí)行一次即可,很快,iptables的封禁列表就充斥了大量的封禁ip,我們簡(jiǎn)單的統(tǒng)計(jì)了下連接數(shù)最大的一些ip發(fā)現(xiàn)都來自韓國(guó)。為了保證系統(tǒng)的性能,我們調(diào)大了系統(tǒng)的可接受的連接數(shù)以及對(duì)Nginx進(jìn)行了每個(gè)連接能夠進(jìn)行的請(qǐng)求速率,系統(tǒng)于是恢復(fù)了正常的運(yùn)行。 tcpdump -w tmp.pcap port not 22 我們發(fā)現(xiàn)攻擊已經(jīng)從應(yīng)用層的攻擊調(diào)整到了網(wǎng)絡(luò)層的攻擊,大量的目標(biāo)端口是80的udp和icmp包以極快的速度充滿了網(wǎng)絡(luò),一個(gè)包大小大概在1k左右,這次占據(jù)的資源純粹是帶寬資源了,即使在系統(tǒng)上做限制也解決不了這個(gè)問題,不過也沒有關(guān)系,對(duì)于網(wǎng)絡(luò)層的問題我們可以在網(wǎng)絡(luò)層上做限制,我們只需要在網(wǎng)絡(luò)上把到達(dá)我們ip的非TCP的所有包如UDP和ICMP等協(xié)議都禁止掉即可,但是我們沒有自己的服務(wù)器也缺乏對(duì)網(wǎng)絡(luò)設(shè)備的控制權(quán),目前是由工信部CERT提供支持的,由于臨時(shí)無法協(xié)調(diào)進(jìn)行相應(yīng)的操作,后果如大家看到,我們的服務(wù)很慢,基本上停止了服務(wù),在一段時(shí)間之后攻擊者停止了攻擊,服務(wù)才進(jìn)行了恢復(fù),很憋屈是么?但是同時(shí)我們得到了很多熱心朋友的幫助,得到了更好的網(wǎng)絡(luò)和服務(wù)器資源,在網(wǎng)絡(luò)資源方面的能力得到了很大的提升,緩解了這方面的問題,這里對(duì)他們表示感謝。 三 常見ddos攻擊及防御 繼續(xù)秉承80sec的”Know it then hack it”,這里簡(jiǎn)單談一下ddos攻擊和防御方面的問題。ddos的全稱是分布式拒絕服務(wù)攻擊,既然是拒絕服務(wù)一定是因?yàn)槟承┰蚨V狗?wù)的,其中最重要的也是最常用的原因就是利用服務(wù)端方面資源的有限性,這種服務(wù)端的資源范圍很廣,可以簡(jiǎn)單的梳理一個(gè)請(qǐng)求正常完成的過程: 1 用戶在客戶端瀏覽器輸入請(qǐng)求的地址 上面各個(gè)點(diǎn)都可以被用來進(jìn)行ddos攻擊,包括: 1 某些著名的客戶端劫持病毒,還記得訪問百度跳搜狗的事情么?:) 這里涉及到攻防的概念,但是實(shí)際上如果了解對(duì)方的攻擊點(diǎn)和攻擊手法,防御會(huì)變成簡(jiǎn)單的一個(gè)拼資源的過程,不要用你最弱的地方去抗人家最強(qiáng)的地方,應(yīng)該從最合適的地方入手把問題解決掉,譬如在路由器等設(shè)備上解決應(yīng)用層攻擊就不是一個(gè)好的辦法,同理,在應(yīng)用層嘗試解決網(wǎng)絡(luò)層的問題也是不可能的,簡(jiǎn)單來說,目標(biāo)是只讓正常的數(shù)據(jù)和請(qǐng)求進(jìn)入到我們的服務(wù),一個(gè)完善的防御體系應(yīng)該考慮如下幾個(gè)層面: 1 作為用戶請(qǐng)求的入口,必須有良好的dns防御 每個(gè)公司都有自己對(duì)自己價(jià)值的評(píng)估從而決定安全投入上的大小,每一次攻擊也會(huì)涉及到利益的存在,正如防御因?yàn)榉N種原因譬如投入上的不足和實(shí)施過程中的不完美,有著天生的弱點(diǎn)一樣,攻擊也是有著天生的弱點(diǎn)的,因?yàn)槊恳淮喂羯婕暗讲煌沫h(huán)節(jié),每個(gè)環(huán)節(jié)都可能由不同水平的人完成,他所擁有的資源,他使用的工具和技術(shù)都不會(huì)是完美的,所以才有可能進(jìn)行防御,另外,我相信進(jìn)行DDOS攻擊的人是一個(gè)固定的行業(yè),會(huì)有一些固定的人群,對(duì)于其中使用的技術(shù),工具,資源和利益鏈都是比較固定的,與之相對(duì)的是各個(gè)企業(yè)卻缺乏相應(yīng)的溝通,以個(gè)人企業(yè)對(duì)抗一個(gè)產(chǎn)業(yè)自然是比較困難,而如果每一個(gè)企業(yè)都能將自己遭受攻擊時(shí)的經(jīng)驗(yàn)分享出來,包括僵尸網(wǎng)絡(luò)的大小及IP分布,攻擊工具的特征,甚至有能力的可以去分析背后的利益點(diǎn)及操作者,那么每一次攻擊都能讓大家的整體防御能力上升,讓攻擊者的攻擊能力有損失,我們很愿意來做這個(gè)事情。 四 根源及反擊 我困惑的是一點(diǎn),攻擊我們并不能得到實(shí)際的好處為什么還是有人來攻擊,而且聽說其他公司都有被攻擊的情況,我覺得有一點(diǎn)原因就是攻擊我們的確得不到什么好處,但是實(shí)際上攻擊者也并不損失什么,無論是資源上還是法律風(fēng)險(xiǎn)上,他不會(huì)因?yàn)橐淮喂舳鴵p失太多,而相比之下,服務(wù)提供者損失的東西卻太多了,這從經(jīng)濟(jì)學(xué)角度來講就是不平衡的,我們處于弱勢(shì)。 1 這個(gè)dns應(yīng)該為了靈活的控制域名的緩存時(shí)間TTL一般不會(huì)特別長(zhǎng) 這些通過簡(jiǎn)單的統(tǒng)計(jì)就很容易得出答案,我們發(fā)現(xiàn)了一些3322的通用惡意軟件域名但是發(fā)現(xiàn)它并不是我們需要的,因?yàn)橹挥猩贁?shù)機(jī)器去訪問到,經(jīng)過一些時(shí)間之后最后我們發(fā)現(xiàn)一個(gè)域名訪問量與naver(韓國(guó)的一個(gè)門戶)的訪問量持平,workgroup001.snow****.net,看起來似乎對(duì)自己的僵尸網(wǎng)絡(luò)管理很好嘛,大概有18臺(tái)機(jī)器訪問過這個(gè)域名,這個(gè)域名的主機(jī)托管在新加坡,生存時(shí)間TTL在1800也就是半小時(shí),這個(gè)域名在所有的搜索引擎中都不存在記錄,是一個(gè)韓國(guó)人在godady一年前才注冊(cè)的,同時(shí)我們?cè)L問這個(gè)域名指向主機(jī)的3389,簡(jiǎn)單的通過5下shift就判斷出它上面存在著一個(gè)典型的windows后門,似乎我們找到它了,不是么?經(jīng)過后續(xù)的觀察,一段時(shí)間后這個(gè)域名指向到了127.0.0.1,我們確信了我們的答案,workgroup001.snow****.net,看起來似乎對(duì)自己的僵尸網(wǎng)絡(luò)管理很好嘛:) 五 總結(jié) 正如一個(gè)朋友所講的,所有的防御是不完美的正如攻擊是不完美的一樣,好的防御者在提升自己的防御能力趨于完美的同時(shí)也要善于尋找攻擊者的不完美,尋找一次攻擊中的漏洞,不要對(duì)攻擊心生恐懼,對(duì)于Ddos攻擊而言,發(fā)起一次攻擊一樣是存在漏洞的,如果我們都能夠擅長(zhǎng)利用其中的漏洞并且抓住后面的攻擊者那么相信以后的ddos攻擊案例將會(huì)減少很多,在針對(duì)目標(biāo)發(fā)起攻擊之前攻擊者也會(huì)做更多的權(quán)衡,損失,利益和法律。 |
|
|