去年7月3日,Cloudflare的全球DDoS保護(hù)系統(tǒng)Gatebot自動(dòng)檢測并緩解了一次基于UDP的DDoS攻擊,攻擊的峰值達(dá)到了654 Gbps。該攻擊屬于針對Magic Transit客戶的為期十天的多媒介DDoS活動(dòng)的一部分,在無任何人工干預(yù)的情況下即被緩解。據(jù)信,此次DDoS活動(dòng)是由基于Mirai的僵尸網(wǎng)絡(luò)Moobot發(fā)起的??蛻粑磮?bào)告停機(jī),服務(wù)降級或誤報(bào)。
Moobot針對一名Magic Transit客戶發(fā)起654 Gbps攻擊
在10天里,我們的系統(tǒng)自動(dòng)檢測并緩解了針對這個(gè)客戶的超過5000次DDoS攻擊,主要是UDP泛洪、SYN泛洪、ACK泛洪和GRE泛洪。其中最大的一次DDoS攻擊是UDP泛洪,僅持續(xù)了2分鐘。該攻擊僅針對一個(gè)IP地址,但攻擊了多個(gè)端口。這次攻擊來源于18705個(gè)獨(dú)立IP地址,每個(gè)IP地址都可以被看作是Moobot感染的物聯(lián)網(wǎng)設(shè)備。
攻擊的國家(地區(qū))分布 – 來源于100個(gè)國家
Cloudflare在全球100個(gè)國家的數(shù)據(jù)中心均檢測到了此次攻擊。大約有89%的攻擊流量集中來源于10個(gè)國家,其中美國占41%,其次是韓國和日本(各占12%)和印度(10%)。這可能意味著該惡意軟件至少已經(jīng)感染了全球100個(gè)國家的18705臺設(shè)備。
按國家/地區(qū)劃分的攻擊分布-前10名
“Moobot”這個(gè)名字聽起來很可愛,但其實(shí)一點(diǎn)都不可愛。根據(jù)360Netlab的解釋,Moobot是一個(gè)基于Mirai的自傳播惡意軟件的代號,該惡意軟件在2019年首次被發(fā)現(xiàn)。它使用可遠(yuǎn)程利用的漏洞或弱默認(rèn)密碼感染IoT(物聯(lián)網(wǎng))設(shè)備。IoT是一個(gè)術(shù)語,用于描述智能設(shè)備,比如安全中心、攝像機(jī)、智能電視、智能音箱、智能燈、傳感器,甚至包括了聯(lián)網(wǎng)冰箱。
一旦Moobot成功感染設(shè)備,該設(shè)備的控制權(quán)就會被轉(zhuǎn)移到命令和控制(C2)服務(wù)器的操作員手中,操作員可以遠(yuǎn)程發(fā)布指令,例如攻擊目標(biāo),定位其他易受攻擊的物聯(lián)網(wǎng)設(shè)備并進(jìn)行感染(自傳播)。
Moobot是基于Mirai的僵尸網(wǎng)絡(luò),并具有與Mirai類似的功能(模塊):
自傳播 - 自傳播模塊負(fù)責(zé)擴(kuò)展僵尸網(wǎng)絡(luò)。IoT設(shè)備被感染后,它會隨機(jī)掃描互聯(lián)網(wǎng)以查找開放的telnet端口,并報(bào)告給C2服務(wù)器。一旦C2服務(wù)器獲取了世界各地的開放telnet端口的信息,它就會嘗試?yán)靡阎穆┒椿蚴褂猛ㄓ?默認(rèn)憑據(jù)強(qiáng)行入侵IoT設(shè)備。
自傳播
2. 同步攻擊 - C2服務(wù)器可以協(xié)調(diào)數(shù)據(jù)包或HTTP請求泛洪,造成目標(biāo)網(wǎng)站或服務(wù)器的拒絕服務(wù)事件。
同步攻擊
僵尸網(wǎng)絡(luò)操作員可能在世界各地使用多個(gè)C2服務(wù)器,以降低暴露的風(fēng)險(xiǎn)。受感染的設(shè)備可能被分配給不同區(qū)域和模塊的C2服務(wù)器;一個(gè)服務(wù)器用于自傳播,另一個(gè)用于發(fā)起攻擊。因此,即便某個(gè)C2服務(wù)器被攻破并被執(zhí)法當(dāng)局關(guān)閉,也只有部分僵尸網(wǎng)絡(luò)被停用。
這是我們過去幾個(gè)月在Cloudflare的網(wǎng)絡(luò)上觀察到的第二次大規(guī)模攻擊。前一個(gè)攻擊的峰值達(dá)到了754Mpps,并試圖以高數(shù)據(jù)包速率癱瘓我們的路由器。盡管該攻擊的數(shù)據(jù)包速率很高(達(dá)到了754Mpps),但其峰值帶寬僅為253Gbps。
與高數(shù)據(jù)包速率攻擊相反,此次攻擊是高比特率攻擊,峰值為654 Gbps。鑒于此攻擊的高比特率峰值,攻擊者似乎試圖(但并未成功)通過飽和我們的互聯(lián)網(wǎng)鏈接容量來導(dǎo)致拒絕服務(wù)事件。那么,讓我們來探討一下這次攻擊為什么沒有成功。
Cloudflare的全球網(wǎng)絡(luò)容量超過42 Tbps,并且還在不斷增長。我們的網(wǎng)絡(luò)覆蓋100多個(gè)國家/地區(qū)的200多個(gè)城市,其中包括位于中國大陸的17個(gè)城市。它與全球8800多個(gè)網(wǎng)絡(luò)互連,包括主要的ISP,云服務(wù)和企業(yè)。高度的互連性以及對Anycast的使用確保了我們的網(wǎng)絡(luò)可以輕松吸收最大的攻擊。
Cloudflare網(wǎng)絡(luò)
流量到達(dá)邊緣數(shù)據(jù)中心后,Cloudflare網(wǎng)絡(luò)將通過我們自己構(gòu)建的第4層負(fù)載均衡器Unimog進(jìn)行有效的負(fù)載均衡。Unimog利用我們的設(shè)備運(yùn)行狀況和其他指標(biāo)來智能地在數(shù)據(jù)中心內(nèi)實(shí)現(xiàn)負(fù)載均衡,從而避免任何一臺服務(wù)器過載。
除了使用Anycast實(shí)現(xiàn)數(shù)據(jù)中心間的負(fù)載均衡和使用Unimog實(shí)現(xiàn)數(shù)據(jù)中心內(nèi)的負(fù)載均衡外,我們還利用各種形式的流量工程來應(yīng)對網(wǎng)絡(luò)中流量負(fù)載的突然變化。我們的24/7/365站點(diǎn)可靠性工程(SRE)團(tuán)隊(duì)同時(shí)實(shí)施自動(dòng)和手動(dòng)的流量工程。
這些綜合因素顯著降低了由于鏈路飽和或設(shè)備過載而導(dǎo)致拒絕服務(wù)事件的可能性——正如在這次攻擊中所看到的,沒有發(fā)生鏈路飽和。
流量一旦到達(dá)我們的邊緣,就會遇到我們的三個(gè)軟件定義DDoS防護(hù)系統(tǒng):
Gatebot - Cloudflare的集中式DDoS防護(hù)系統(tǒng),用于檢測和緩解全球分布的容量DDoS攻擊。Gatebot在我們網(wǎng)絡(luò)的核心數(shù)據(jù)中心內(nèi)運(yùn)行。它從我們的每個(gè)邊緣數(shù)據(jù)中心接收樣本,進(jìn)行分析,并在檢測到攻擊時(shí)自動(dòng)推送緩解指令。Gatebot還與我們每個(gè)客戶的web服務(wù)器同步,以識別其運(yùn)行狀況并相應(yīng)地觸發(fā)緩解措施。
dosd(拒絕服務(wù)守護(hù)程序) - Cloudflare的分布式DDoS保護(hù)系統(tǒng)。dosd在全球每個(gè)Cloudflare數(shù)據(jù)中心的每臺服務(wù)器上自動(dòng)運(yùn)行,在需要時(shí)分析流量并應(yīng)用本地緩解規(guī)則。dosd能夠以超快的速度檢測和緩解攻擊,并且通過將檢測和緩解功能委托給邊緣,dosd還顯著提高了我們網(wǎng)絡(luò)的彈性。
flowtrackd(流跟蹤守護(hù)程序) - Cloudflare的TCP狀態(tài)跟蹤機(jī),可用于檢測和緩解單向路由拓?fù)渲凶铍S機(jī)、最復(fù)雜的基于TCP的DDoS攻擊(例如Magic Transit的案例)。flowtrackd能夠識別TCP連接的狀態(tài),然后對不屬于合法連接的數(shù)據(jù)包進(jìn)行丟棄,發(fā)起人機(jī)驗(yàn)證挑戰(zhàn)或限制速率。
Cloudflare DDoS防護(hù)周期
這三個(gè)DDoS防護(hù)系統(tǒng)通過收集流量樣本來檢測DDoS攻擊。其采樣的流量數(shù)據(jù)類型包括:
數(shù)據(jù)包字段,例如源IP、源端口、目標(biāo)IP、目標(biāo)端口、協(xié)議、TCP標(biāo)識、序列號、選項(xiàng)和包速率。
HTTP請求元數(shù)據(jù),例如HTTP請求頭、用戶代理、查詢字符串、路徑、主機(jī)、HTTP方法、HTTP版本、TLS密碼版本和請求速率。
HTTP響應(yīng)指標(biāo),例如客戶源服務(wù)器返回的錯(cuò)誤代碼及其比率。
然后,我們的系統(tǒng)會將這些樣本數(shù)據(jù)點(diǎn)集中在一起,以實(shí)時(shí)查看我們網(wǎng)絡(luò)的安全狀況和客戶的源服務(wù)器運(yùn)行狀況。它們將找尋其中的攻擊模式和流量異常,找到后,則實(shí)時(shí)生成帶有動(dòng)態(tài)制作的攻擊簽名的緩解規(guī)則。這些規(guī)則會傳播到最優(yōu)的位置,以降低緩解成本。例如,我們可以在L4處丟棄L7 HTTP泛洪以減少CPU的消耗。
由dosd和flowtrackd生成的規(guī)則將在單個(gè)數(shù)據(jù)中心內(nèi)傳播,以便快速緩解。Gatebot的規(guī)則被傳播到所有邊緣數(shù)據(jù)中心,這些規(guī)則將優(yōu)先于dosd的規(guī)則,從而實(shí)現(xiàn)均勻的、最優(yōu)的緩解。即使Gatebot僅在邊緣數(shù)據(jù)中心的一個(gè)子集中檢測到攻擊,它也會將緩解指令傳播到Cloudflare的所有邊緣數(shù)據(jù)中心,從而以主動(dòng)保護(hù)的形式在我們的網(wǎng)絡(luò)中有效地共享威脅情報(bào)。
在本次攻擊中,dosd在每個(gè)邊緣數(shù)據(jù)中心內(nèi)生成了規(guī)則,以迅速進(jìn)行緩解。隨后,Gatebot從邊緣接收并分析了樣本,確定了這是一起全球分布式攻擊。Gatebot將統(tǒng)一的緩解指令傳播到邊緣,這使我們的200多個(gè)數(shù)據(jù)中心都做好了應(yīng)對攻擊的準(zhǔn)備,因?yàn)楣袅髁靠赡苡捎贏nycast或流量工程而轉(zhuǎn)移到不同的數(shù)據(jù)中心。
DDoS攻擊顯然會帶來停機(jī)和服務(wù)中斷的風(fēng)險(xiǎn)。但還有另一個(gè)風(fēng)險(xiǎn)需要考慮——緩解成本。在這十天中,僵尸網(wǎng)絡(luò)產(chǎn)生了超過65 TB的攻擊流量。但是,遵循著Cloudflare的無限制DDoS防護(hù)保障,Cloudflare緩解并吸收了攻擊流量,而沒有向客戶收費(fèi)??蛻舨恍枰峤蛔匪菪庞蒙暾?。攻擊流量被自動(dòng)被排除在我們的計(jì)費(fèi)系統(tǒng)以外。我們消除了財(cái)務(wù)上的風(fēng)險(xiǎn)。