A deep-dive into Cloudflare’s autonomous edge DDoS protection

很高興來談談我們的 DDoS (分散式阻斷服務) 保護系統。這套系統現已部署到 Cloudflare 全球所有 200 多個資料中心,正在積極為所有客戶提供保護,防禦第 3-7 層 (OSI 模型) 上的 DDoS 攻擊,無需人工干預。這還顯著提高了我們網路的韌性。作為我們非計量 DDoS 保護承諾的一部分,我們不會因客戶受到 DDoS 攻擊就增加收費。

自發邊緣保護

為了迅速、精準地幫助客戶防禦 DDoS 攻擊,我們打造了一套自發邊緣偵測與緩解系統,無需尋求集中共識,便可自發做出決策。這套系統完全由軟體定義,在我們網路邊緣的商用伺服器上執行。這由我們的阻斷服務精靈 (dosd) 驅動,後者最初於 2019 年中上線,用來防禦第 3/4 層 DDoS 攻擊。自那時起,我們不斷投入心力來增強和改善其能力,藉此永遠領先攻擊者一步,並破壞攻擊的經濟效益。最新一輪改良擴展了我們的邊緣緩解元件,除了第 3/4 層外,現在也能防禦第 7 層攻擊。

這套系統在我們所有邊緣資料中心的每一台伺服器上執行,不斷分析封包和 HTTP 請求,掃描 DDoS 攻擊。一旦偵測到攻擊,系統立即將一條附有即時產生簽名的緩解規則推送到 Linux 堆疊中的大多數最佳位置,在此套用最具成本效益的緩解措施。

A conceptual diagram of Cloudflare DDoS mitigation systems
Cloudflare DDoS 緩解系統概念圖‌‌

新增的邊緣偵測能力是我們現有全球威脅偵測機制 Gatebot 的補充,後者位於我們網路的核心位置。利用 Gatebot 在網路核心位置偵測攻擊,這非常適合規模較大的分散式巨流量攻擊,這類攻擊要求在整個 Cloudflare 邊緣協調,而規模較小的局部攻擊則需要不同的應對方法。在邊緣偵測網路層和 HTTP 攻擊,表示我們可以更加迅速地進行採樣,同時偵測大型和小型攻擊,並且即刻產生緩解規則。在過去的幾個月裡,dosd 偵測到所有第 3/4 層 DDoS 攻擊中的 98.6%。同樣,自從部署 dosd 的擴展版本以來,這已緩解了所有第 7 層攻擊中的 81%。

之前的部落格文章中已介紹過 Gatebotflowtrackd,因此本文著重介紹擴展後的 dosd 能力。

利用 Linux 網路極速丟棄封包和請求

十年前,Linux 網路很慢。而如今,我們能極速丟棄封包,卻也歸功於 Linux,特別是 Linux iptables 和 eXpress Data Path (XDP)。

封包的一生

如果封包的目的地是受 Cloudflare 保護的客戶,這個封包將傳送到最近的 Cloudflare 資料中心 (經由 BGP Anycast 傳輸)。到達那裡後,封包將經網路交換機使用等價多路徑路由組 (ECMP) 從路由器發往伺服器。到達伺服器後,網路介面卡 (XDP) 將封包傳送到一組 eXpress Data Path (XDP) 程式中。第一組 XDP 程式 L4Drop 套用源自此前所偵測攻擊的緩解規則,並將封包樣本傳送給 dosd 做進一步分析。

如果封包沒有被視為惡意並丟棄,這將被傳送到我們的專利第 4 層負載平衡器 Unimog。根據伺服器健康狀況和效能指標,Unimog 決定應該將封包保留在同一台伺服器,還是將其傳遞到資料中心內以便進一步處理其另一台伺服器。經過 Unimog 後,封包將通過 iptables 防火牆。然後,如果目標是第 7 層應用程式 (例如受 Cloudflare WAF 保護的服務),封包將傳送到我們的 HTTP 反向代理。反向代理在使用者空間執行,HTTP 請求經過我們的 Web 應用程式防火牆規則和其他客戶設定的篩查。如果封包的目的地是 TCP/UDP 應用程式 (Spectrum) 或一個受到路由而非受到代理的 IP 目的地 (Magic Transit),這將通過那些系統,而非我們的 HTTP 代理。

Life of a packet
封包的一生

除了 L4Drop,我們的 HTTP 代理也將 HTTP 請求的樣本和中繼資料傳送到 dosd。這種邊緣採樣的速度相當於核心採樣的 10 倍,因為訊號可在本機分析 (並採取行動),而非傳送到一個核心資料中心。同樣,dosd 對封包採樣的速度相當於 gatebot 的 81 倍。

dosd、gatebot 和 flowtrackd 彼此配合,一同分析所收到的樣本並在偵測到 DDoS 攻擊時套用緩解規則。這將緩解規則推送到 Web 代理以緩解 HTTP 攻擊。攻擊請求將受到封鎖、速率限制或質詢等動作的處理,具體取決於系統的決策。然而,如果攻擊體量很大,緩解規則將在堆疊中往下推送到 iptables 防火牆,並在第 4 層利用 IP Jails 丟棄第 7 層攻擊,以實現更具經濟效益的緩解。同樣地,對於第 3/4 層攻擊,系統將使用 L4Drop 內的擴展柏克萊封包篩選 (eBPF)  程式在 iptables 防火牆內緩解。利用這些元件,我們能夠實現規模化自動緩解 DDoS 攻擊。

破壞攻擊經濟性

如上所述,我們的擴展自發系統和現有的威脅緩解元件都是為了保護客戶免受 DDoS 攻擊而開發。然而,發動攻擊的難度和成本已變得非常低。惡意執行者使用這些攻擊來擊垮網站、行動應用程式、遊戲或任何連入網際網路的資產。這樣的擴展保護措施很有必要,因為如我們在 DDoS 趨勢報告中所記載,攻擊在過去一年有所增加。此外,攻擊也擴大了規模,而且更加複雜,例如模擬聲學節拍的攻擊。同樣重要的是,小型攻擊能弄垮一個小型 Web 資產,因此無論是大型還是小型攻擊,我們都要進行封鎖。

許多時候,攻擊者可利用公開的工具免費發動 DDoS 攻擊,或支付少許費用租用 DDoS 即服務機器人網路,例如暗網上的 Moobot。根據 2020 年暗網價格指數,只需 10 美元起,就能發動一次持續一小時、每秒 1000-5000 個請求的 DDoS 攻擊。發動攻擊的成本遠低於其造成的損失。透過造成服務中斷或僅僅使其效能下降,攻擊者就能使受害者損失慘重。例如,擊垮電商網站可讓使用者無法登入和購物。甚至等待時間變長也會導致使用者放棄購物車並轉向競爭對手。一分鐘服務中斷很可能帶來數萬美元損失。

鑒于 DDoS 攻擊的頻率、複雜程度和規模,我們需要採取新的方法,不僅要快速正確,還要一絲不苟。這正是我們開發本文所述擴展保護的原因。

協助打造更安全的網際網路環境

Cloudflare 的使命是協助打造更加美好的網際網路,讓所有人擁有更安全、更快速、更可靠的體驗。DDoS 團隊的願景源自於這個使命:我們的目標是使 DDoS 攻擊煙消雲散。上世紀 90 年代和本世紀初,垃圾電子郵件成為一個嚴重問題。如今,電子郵件服務幫助人們告別了垃圾郵件,我們也要對 DDoS 攻擊做同樣的事。

若要進一步瞭解 Cloudflare 的 DDoS 保護解決方案,請與我們連絡。如需親手評估 Cloudflare 的免費方案,請在此註冊。