劉永鵬

摘 要:拒絕服務(wù)是用分布式的客戶端,向服務(wù)者發(fā)起大量看似合法的請(qǐng)求,消耗或長(zhǎng)期占用大量資源,從而達(dá)到拒絕向受眾提供服務(wù)的目的。針對(duì)基于JavaScript的DDOS攻擊,防御這一攻擊的唯一方式是全面啟用HTTPS。
關(guān)鍵詞:拒絕服務(wù);DDOS攻擊;防御
1 概述
DDOS是英文Distributed Denial of Service的縮寫,即“分布式拒絕服務(wù)”,那么什么又是拒絕服務(wù)(Denial of Service)呢?可以這么理解,用分布式的客戶端,向服務(wù)者發(fā)起大量看似合法的請(qǐng)求,消耗或長(zhǎng)期占用大量資源,從而達(dá)到拒絕向受眾提供服務(wù)的目的。也就是說(shuō)拒絕服務(wù)攻擊的目的非常明確,就是要阻止合法用戶對(duì)正常網(wǎng)絡(luò)資源的訪問(wèn),從而達(dá)成攻擊者不可告人的目的。DOS的攻擊策略側(cè)重于通過(guò)很多“僵尸主機(jī)”(被攻擊者入侵過(guò)或可間接利用的主機(jī))向受害主機(jī)發(fā)送大量看似合法的網(wǎng)絡(luò)包,從而造成網(wǎng)絡(luò)阻塞或服務(wù)器資源耗盡而導(dǎo)致拒絕服務(wù),分布式拒絕服務(wù)攻擊一旦被實(shí)施,攻擊網(wǎng)絡(luò)包就會(huì)猶如洪水般涌向受害主機(jī),從而把合法用戶的網(wǎng)絡(luò)包淹沒(méi),導(dǎo)致合法用戶無(wú)法正常訪問(wèn)服務(wù)器的網(wǎng)絡(luò)資源,因此,拒絕服務(wù)攻擊又被稱為“洪水式攻擊”,常見(jiàn)的DDOS攻擊手段有SYN Flood、ACK Flood、UDP Flood、ICMP Flood、TCP Flood、Connections Flood、Script Flood、Proxy Flood等。
2 發(fā)展
曾經(jīng)有安全專家把DDoS攻擊比作互聯(lián)網(wǎng)“核武器”:一旦調(diào)動(dòng)足夠數(shù)量遍布互聯(lián)網(wǎng)的“肉雞”和存在各種協(xié)議漏洞的開放服務(wù)器,就可以癱瘓掉任何互聯(lián)網(wǎng)業(yè)務(wù)。盡可能地對(duì)被攻擊目標(biāo)造成最大程度的資源破壞是DDoS攻擊的初衷。站在這個(gè)角度上來(lái)看DDoS攻擊的發(fā)展,可以梳理出清晰的脈絡(luò),DDoS攻擊的發(fā)展趨勢(shì)呈明顯的三個(gè)階段性。
第一階段,由個(gè)人計(jì)算機(jī)組建僵尸網(wǎng)絡(luò),發(fā)動(dòng)DDoS攻擊;
第二階段,利用互聯(lián)網(wǎng)開放服務(wù)器(如DNS、NTP)發(fā)起反射攻擊;
第三階段,利用智能/IoT設(shè)備協(xié)議(如SSDP)的脆弱性發(fā)起反射攻擊。
拒絕服務(wù)攻擊存在的根源是Internet架構(gòu)自身缺陷,由于最初Internet架構(gòu)未考慮拒絕服務(wù)攻擊,從而導(dǎo)致幾乎所有Internet服務(wù)均易遭受拒絕服務(wù)攻擊??v觀近五年DDoS攻防雙方的對(duì)抗交鋒,攻擊方技術(shù)不斷演進(jìn),將“以大欺小”(流量型攻擊)與“以小搏大”(資源耗盡型)兩種攻擊方式組合起來(lái),利用逐漸提高的網(wǎng)絡(luò)帶寬增強(qiáng)攻擊力等;而防守方則通過(guò)流量清洗設(shè)備等多種手段予以應(yīng)對(duì)。
最為傳統(tǒng)的DDoS攻擊多利用僵尸主機(jī)(Zombies,又叫“肉雞”)組成僵尸網(wǎng)絡(luò)來(lái)發(fā)起?!叭怆u”是指中了木馬,或者被一些人留了后門的計(jì)算機(jī),成為“肉雞”的計(jì)算機(jī)可以被黑客遠(yuǎn)程操控?!叭怆u”的存在多由于用戶系統(tǒng)存在各種脆弱性導(dǎo)致,系統(tǒng)一旦被入侵,黑客可獲得控制權(quán)。黑客在這些“肉雞”所有者不知情的情況下,發(fā)起對(duì)既定攻擊目標(biāo)的攻擊?!叭怆u”對(duì)于互聯(lián)網(wǎng),特別是網(wǎng)站系統(tǒng)的威脅是很大的。即便單個(gè)“肉雞”的攻擊能力有限,但如果“肉雞”數(shù)量很多,匯總后的攻擊流量也將是驚人的。
雖然肉雞的效果顯著,但是無(wú)論組建還是僵尸網(wǎng)絡(luò)的維護(hù)都需要較高的成本,伴隨黑客不斷對(duì)更低成本獲得更大效果的追求,利用互聯(lián)網(wǎng)開放服務(wù)器發(fā)起反射拒絕服務(wù)攻擊逐漸流行。反射拒絕服務(wù)攻擊又稱DRDoS攻擊,或分布式反射拒絕服務(wù)攻擊。其原理是黑客偽造成被攻擊者的IP地址,向互聯(lián)網(wǎng)上大量開放特定服務(wù)的服務(wù)器發(fā)起請(qǐng)求,接收到請(qǐng)求的那些主機(jī)根據(jù)源IP地址將響應(yīng)數(shù)據(jù)包返回給受害者。整個(gè)過(guò)程中,返回響應(yīng)的服務(wù)器并不知道請(qǐng)求源的惡意動(dòng)機(jī)。黑客往往會(huì)選擇那些響應(yīng)包遠(yuǎn)大于請(qǐng)求包的服務(wù)來(lái)利用,這樣才可以以較小的流量換取更大的流量,獲得幾倍甚至幾十倍的放大效果。一般來(lái)說(shuō),可以被利用來(lái)做放大反射攻擊的服務(wù)包括DNS服務(wù)、NTP服務(wù)、SNMP服務(wù)、Chargen服務(wù)等。利用NTP協(xié)議的反射放大效果最好,超過(guò)500倍。也就是說(shuō)攻擊者只需要發(fā)起100Mbps的請(qǐng)求流量,經(jīng)過(guò)NTP服務(wù)器的反射放大,可
以換來(lái)5Gbps的攻擊流量。2014年2月,在國(guó)外某云計(jì)算服務(wù)提供商遭受的400Gbps DDoS攻擊中,黑客就采用了NTP 反射放大攻擊。
隨著互聯(lián)網(wǎng)上存在DNS、NTP、SNMP等協(xié)議脆弱性的開放服務(wù)漏洞不斷被修復(fù),可以用來(lái)發(fā)起反射攻擊的服務(wù)器數(shù)量越來(lái)越少?;ヂ?lián)網(wǎng)上家用路由器、網(wǎng)絡(luò)攝像頭、打印機(jī)、智能家電等設(shè)備數(shù)量的激增,讓黑客看到了另一個(gè)可以不斷挖掘的金山。這些智能設(shè)備普遍采用UPnP(即插即用)協(xié)議作為網(wǎng)絡(luò)通訊協(xié)議,而UPnP設(shè)備的發(fā)現(xiàn)是通過(guò)源端口為1900的SSDP(簡(jiǎn)單服務(wù)發(fā)現(xiàn)協(xié)議)進(jìn)行相互感知。利用SSDP協(xié)議進(jìn)行反射攻擊的原理與利用DNS服務(wù)、NTP服務(wù)類似,都是偽造成被攻擊者的IP地址向互聯(lián)網(wǎng)上大量的智能設(shè)備發(fā)起SSDP請(qǐng)求,接收到請(qǐng)求的智能設(shè)備根據(jù)源IP地址將響應(yīng)數(shù)據(jù)包返回給受害者(見(jiàn)下圖)。
根據(jù)USCERT的數(shù)據(jù),SSDP的放大倍數(shù)是30倍,雖然較NTP和Chargen等協(xié)議的放大倍數(shù)小很多,但是由于互聯(lián)網(wǎng)上智能設(shè)備的數(shù)量非常龐大,隨著IoT的發(fā)展,這個(gè)數(shù)字更將呈現(xiàn)幾何級(jí)數(shù)的增加。這無(wú)疑為黑客提供了豐富的攻擊來(lái)源。SSDP嚴(yán)峻的形勢(shì)在阿里云上同樣得到了體現(xiàn)。根據(jù)阿里云云盾安全運(yùn)營(yíng)團(tuán)隊(duì)在2015年6月的統(tǒng)計(jì),在對(duì)阿里云用戶的UDP DDoS攻擊中,80%的攻擊方式為SSDP反射放大攻擊。
3 新型DDos攻擊
3.1 “胡亂域名”攻擊
一種針對(duì)域名服務(wù)器的新型分布式拒絕服務(wù)攻擊(DDoS),可稱之為“胡亂域名”攻擊。它能給遞歸域名服務(wù)器和權(quán)威域名服務(wù)器造成嚴(yán)重破壞。
這種“無(wú)意義域名”DDoS攻擊通常是這樣進(jìn)行的:攻擊者選定一個(gè)域作為目標(biāo),如abc.example。在目標(biāo)域內(nèi),攻擊者操縱僵尸網(wǎng)絡(luò)產(chǎn)生大量隨機(jī)域名。然后向遞歸域名服務(wù)器發(fā)起大量針對(duì)這些無(wú)意義域名的查詢請(qǐng)求。遞歸域名服務(wù)器轉(zhuǎn)而將請(qǐng)求發(fā)送到abc.example的權(quán)威服務(wù)器以查詢這些域名。權(quán)威域名服務(wù)器返回“請(qǐng)求的域名不存在”的響應(yīng)(NXDOMAIN)。遞歸服務(wù)器中繼轉(zhuǎn)發(fā)這一響應(yīng)給原始請(qǐng)求者,并緩存下域名不存在的記錄。請(qǐng)求,響應(yīng),緩存,再來(lái)一遍。如果攻擊者發(fā)起這種胡亂域名解析請(qǐng)求的速度足夠快,聚合查詢的速度將令abc.example權(quán)威域名服務(wù)器應(yīng)接不暇瀕臨崩潰。真正的傷害就發(fā)生了:僵尸主機(jī)繼續(xù)向遞歸域名服務(wù)器發(fā)送無(wú)意義域名的查詢請(qǐng)求。權(quán)威域名服務(wù)器終于崩潰,不再響應(yīng)請(qǐng)求,遞歸域名服務(wù)器也就需要花費(fèi)長(zhǎng)得多的時(shí)間來(lái)處理單個(gè)域名解析請(qǐng)求。
這將占用遞歸域名服務(wù)器上的遞歸查詢時(shí)間片,最終導(dǎo)致資源耗盡,拒絕接受其他遞歸查詢,盡管其中包含了合法的查詢請(qǐng)求。至此,域名服務(wù)器拒絕任何新入遞歸請(qǐng)求,停止向客戶提供服務(wù)。
3.2 基于JavaScript的DDOS攻擊
最近幾年DDoS攻擊技術(shù)不斷推陳出新:攻擊者用一種新型且很有趣的方式欺騙用戶參與到攻擊活動(dòng)中。去年CloudFlare就見(jiàn)證了一次使用NTP映射的攻擊,可能是DDoS攻擊史上最大的一次攻擊(大于400Gbps)。今年的DDoS攻擊又出現(xiàn)了一個(gè)新的攻擊趨勢(shì):使用惡意的JavaScript欺騙用戶參與DDoS攻擊。NTP或者DNS映射攻擊造成的后果受到傀儡服務(wù)器數(shù)量的限制,同時(shí)攻擊流量也受傀儡服務(wù)器容量的限制。隨著時(shí)間的推移,服務(wù)器會(huì)不斷的更新補(bǔ)丁,能被攻擊者利用的服務(wù)器數(shù)量也在不斷的減少。而基于JavaScript的DDOS攻擊有一個(gè)非比尋常的特點(diǎn):任何有瀏覽器的設(shè)備都可能參與攻擊,其潛在攻擊規(guī)模接近無(wú)限?,F(xiàn)代網(wǎng)站的交互作用大多數(shù)都是采用JavaScript。
JavaScript腳本可直接注入HTML中,或者通過(guò)