今天,很高興能談一下 Cloudflare 的自主 DDoS (分布式拒絕服務(wù)(DDoS)) 防護(hù)系統(tǒng)。這個(gè)系統(tǒng)已部署到 Cloudflare 全球所有 200 多個(gè)數(shù)據(jù)中心,正在積極保護(hù)我們的所有客戶,防御 3-7 層 (OSI 模型)上的 DDoS 攻擊,無(wú)需人工干預(yù)。作為我們不計(jì)量 DDoS 防護(hù)承諾的一部分,我們不會(huì)因?yàn)榭蛻羰艿?DDoS 攻擊而增加對(duì)客戶的收費(fèi)。
自主邊緣防護(hù)
為了迅速并精準(zhǔn)地為我們的客戶防護(hù) DDoS 攻擊,我們打造了一套自主邊緣檢測(cè)與緩解系統(tǒng),可自行做出決定而不需尋求在中心節(jié)點(diǎn)形成統(tǒng)一策略。這套系統(tǒng)是完全由軟件定義的,在我們部署于邊緣的普通服務(wù)器上運(yùn)行。驅(qū)動(dòng)這套系統(tǒng)的是我們的拒絕服務(wù)守護(hù)進(jìn)程(dosd),后者最早于 2019 年上線,用于防護(hù) L3/4 DDoS 攻擊。自那以來(lái),我們一直不斷投資增強(qiáng)和改善其能力,以便保持領(lǐng)先攻擊者一步,并破壞攻擊的經(jīng)濟(jì)性。最新一輪改良將我們的邊緣緩解組件進(jìn)行了擴(kuò)展,除了 L3/4 外,也能防御 L7 攻擊。
這套系統(tǒng)在我們所有邊緣數(shù)據(jù)中心的每一臺(tái)服務(wù)器上運(yùn)行。系統(tǒng)不斷分析數(shù)據(jù)包和 HTTP 請(qǐng)求,掃描 DDoS 攻擊。一旦發(fā)現(xiàn)攻擊,系統(tǒng)立即將一條附有實(shí)時(shí)生成簽名的緩解規(guī)則推送到 Linux 堆棧的最優(yōu)位置,在此應(yīng)用最具成本效益的緩解。
我們的新邊緣檢測(cè)能力是我們現(xiàn)有全球威脅監(jiān)測(cè)機(jī)制 Gatebot 的補(bǔ)充,后者位于我們網(wǎng)絡(luò)的核心。通過(guò) Gatebot 在網(wǎng)絡(luò)核心檢測(cè)攻擊非常適用于較大型的分布式容量耗盡型攻擊,此類攻擊要求整個(gè) Cloudflare 邊緣的協(xié)調(diào)。但是,較小型的局部攻擊需要以不同的方式來(lái)處理。通過(guò)在邊緣檢測(cè)網(wǎng)絡(luò)層和 HTTP 攻擊,我們能以更高速率采樣,同時(shí)檢測(cè)大型和小型攻擊,并立即生成緩解規(guī)則。過(guò)去幾個(gè)月來(lái),所有 L3/4 攻擊中的 98.6% 是由 dosd 檢測(cè)到的。同樣地,自從 dosd 的擴(kuò)展版本部署以來(lái),已經(jīng)緩解了全部 L7 攻擊的 81%。
Linux 網(wǎng)絡(luò)瞬間作用
10 年前,Linux 網(wǎng)絡(luò)非常緩慢。今天,得益于 Linux —— 特別是 Linux iptables 和 eXpress Data Path (XDP),我們可在瞬間丟棄數(shù)據(jù)包。
數(shù)據(jù)包的生命周期
如果一個(gè)數(shù)據(jù)包的目的地是受 Cloudflare 保護(hù)的客戶,這個(gè)數(shù)據(jù)包將通過(guò) BGP Anycast 發(fā)送到最近的 Cloudflare 數(shù)據(jù)中心。到達(dá)后,數(shù)據(jù)包將經(jīng)網(wǎng)絡(luò)交換機(jī)使用等價(jià)多路徑路由組(ECMP)通過(guò)一個(gè)路由器發(fā)往一個(gè)服務(wù)器。到達(dá)某個(gè)服務(wù)器后,網(wǎng)絡(luò)接口卡(NIC)將數(shù)據(jù)包傳送到一組 eXpress Data Path(XDP)程序中。第一組 XDP 程序—— L4Drop——應(yīng)用來(lái)自此前檢測(cè)到的攻擊的緩解規(guī)則,并將數(shù)據(jù)包樣本傳送給 dosd 供進(jìn)一步分析。
如果數(shù)據(jù)包沒(méi)有被視為惡意并丟棄,其將被傳送到 Unimog——我們的專利 L4 負(fù)載平衡器。根據(jù)服務(wù)器運(yùn)行狀況和性能指標(biāo),Unimog 決定是否應(yīng)該將數(shù)據(jù)包保存在同一臺(tái)服務(wù)器中,還是將其傳遞到數(shù)據(jù)中心內(nèi)能夠更好地處理它的另一臺(tái)服務(wù)器。經(jīng)過(guò) Unimog 后,數(shù)據(jù)包將通過(guò) iptables 防火墻。然后,如果目標(biāo)是一個(gè) L7 應(yīng)用程序(例如受 Cloudflare WAF 保護(hù)的服務(wù)),數(shù)據(jù)包將傳送到我們的 HTTP 反向代理。該反向代理在用戶空間運(yùn)行, 在此數(shù)據(jù)包被構(gòu)建成 HTTP 請(qǐng)求并通過(guò)我們的 Web 應(yīng)用程序防火墻、應(yīng)用程序防火墻規(guī)則以及額外的客戶配置。如果數(shù)據(jù)包的目的地是一個(gè) TCP/UDP 應(yīng)用程序(Spectrum)或一個(gè)被路由而非被代理的 IP 目的地(Magic Transit),則其將通過(guò)那些系統(tǒng),而非我們的 HTTP 代理。
除了 L4Drop,我們的 HTTP 代理也將 HTTP 請(qǐng)求的樣本和元數(shù)據(jù)發(fā)送到 dosd。這一邊緣取樣的速率相當(dāng)于核心取樣的 10 倍,因?yàn)檎?qǐng)求可在本地分析(并據(jù)以處理),而非傳送到某個(gè)核心數(shù)據(jù)中心。同樣地,dosd 對(duì)數(shù)據(jù)包取樣的速度相當(dāng)于 gatebot 的 81 倍。
dosd、gatebot 和 flowtrackd 一同分析所收到的樣本并在檢測(cè)到 DDoS 攻擊時(shí)應(yīng)用緩解規(guī)則。它們將緩解規(guī)則添加到 Web 代理中以減輕 HTTP 攻擊。根據(jù)系統(tǒng)邏輯,對(duì)攻擊請(qǐng)求通過(guò)阻止、速率限制或質(zhì)詢動(dòng)作來(lái)處理。然而,如果攻擊容量較大,緩解規(guī)則將在堆棧中向下推送到 iptables 防火墻,使用 IP Jails 在 L4 中斷 L7 攻擊,以實(shí)現(xiàn)更具經(jīng)濟(jì)效益的緩解。同樣地,對(duì)于 L3/4 攻擊, 系統(tǒng)將使用 L4Drop 內(nèi)的擴(kuò)展伯克利包過(guò)濾器(eBPF)程序在 iptables 防火墻內(nèi)緩解。利用這些組件,我們能大規(guī)模自動(dòng)緩解 DDoS 攻擊。
打破攻擊經(jīng)濟(jì)
如上所述,我們的擴(kuò)展自主系統(tǒng),連同我們現(xiàn)有的威脅緩解組件,是為保護(hù)客戶免受 DDoS 攻擊而開發(fā)的。然而發(fā)動(dòng)攻擊的難度和成本已變得非常低。惡意行為者使用這些攻擊來(lái)弄垮網(wǎng)站、移動(dòng)應(yīng)用、游戲或任何連接到互聯(lián)網(wǎng)的資產(chǎn)。這些擴(kuò)展保護(hù)措施很有必要,因?yàn)槿缥覀冊(cè)?nbsp;DDoS 趨勢(shì)報(bào)告中所記載的那樣,過(guò)去一年來(lái)攻擊有所增加。此外,攻擊還變得更大規(guī)模和更加復(fù)雜 。同樣重要的是,小型攻擊能弄垮一個(gè)小型網(wǎng)站,因此無(wú)論是大型還是小型攻擊,我們都要進(jìn)行阻止。
很多情況下,攻擊者可利用公開工具免費(fèi)發(fā)動(dòng) DDoS 攻擊,或支付少量費(fèi)用租用 DDoS 即服務(wù)僵尸網(wǎng)絡(luò),例如暗網(wǎng)上的 Moobot。根據(jù) 2020 年暗網(wǎng)價(jià)格指數(shù),一次持續(xù)一小時(shí)、每秒 1000-5000 個(gè)請(qǐng)求的 DDoS 攻擊起步價(jià)格為 10 美元。發(fā)動(dòng)攻擊的成本遠(yuǎn)低于其造成的損失。通過(guò)造成服務(wù)中斷或僅僅使其性能下降,攻擊者就能使受害者損失嚴(yán)重。例如,弄垮一個(gè)商務(wù)網(wǎng)站將使用戶無(wú)法登錄和購(gòu)物。甚至延遲增加都能導(dǎo)致用戶放棄購(gòu)物車并轉(zhuǎn)向競(jìng)爭(zhēng)對(duì)手。一分鐘的停機(jī)時(shí)間很可能帶來(lái)數(shù)萬(wàn)美元損失。
DDoS 攻擊的頻率、復(fù)雜程度和規(guī)模要求新方法——一種快速、準(zhǔn)確和精確的方法。這就是我們開發(fā)本文所述擴(kuò)展保護(hù)的原因。
幫助構(gòu)建更好的互聯(lián)網(wǎng)
Cloudflare的使命是幫助建立一個(gè)更好的互聯(lián)網(wǎng)——對(duì)所有人而言都更安全、更快、更可靠。DDoS 團(tuán)隊(duì)的愿景源自這個(gè)使命:我們的目標(biāo)是使 DDoS 攻擊銷聲匿跡。上世紀(jì) 90 年底和本世紀(jì)初,垃圾電子郵件成為嚴(yán)重問(wèn)題。今天,電子郵件服務(wù)為我們過(guò)濾了所有垃圾郵件,我們就是要對(duì) DDoS 攻擊做同樣的事情。