在互聯網交換中心檢測反射放大 DDoS 攻擊
工作來源
DIMVA 2021
工作背景
DDoS 仍然是最有效的攻擊手段之一,即使是 Twitter、Netflix 等防護周密的公司也會被攻擊所影響。
- 針對 GitHub 發起的 1.3Tbps 的 DDoS 攻擊是利用 Memcached 反射放大攻擊完成的。
- 針對 AWS 發起的 2.3Tbps 的 DDoS 攻擊是利用 CLDAP 反射放大攻擊完成的。
反射流量的攻擊流如下所示:

IXP 是高密度對等互連中心,是不同自治系統(AS)的物理流量交換點,提供自治系統間對等互聯和互聯網連接服務。IXP 一般至少連接三個自治系統,一些較大的 IXP 能夠連接 700 余個自治系統,所承載的流量和全球最大規模的 ISP 差不多。IXP是互聯網核心基礎設施,全球共有 500 多個 IXP。
但常見的 DDoS 檢測服務都不是為 IXP 而設計的,而是側重于從內側看流量。通過大型互聯網交換點(IXP)觀測在野反射放大 DDoS 攻擊也是一個新視角,包括攻擊發生頻率、來源分布、持續時間、數量、目標等。
工作設計
構建的系統名為 IXmon,系統架構如下所示:

針對流向特定自治系統的流量,檢測反射放大DDoS攻擊需要關注:① 可用于反射放大攻擊的特定端口的 UDP 流量;② 流向該自治系統的流量是否快速增加;③ 異常流量是否分布在多個源自治系統。
根據反射放大的特點,跟蹤與反射放大服務相關的特定源端口產生的 UDP 流量:

聚合流量統計
首先需要把流經 IXP 的網絡流量抽象表示出來,使用 NetFlow 也同樣兼容其他表示方法。

用于描述一個網絡流,packets 和 bytes 表示數據包的數量和總字節數。
研究聚焦反射放大攻擊,需要過濾只保留特定源端口的UDP流量用于分析。
在固定的時間間隔 ?t(默認為一分鐘),使用 RouteViews 數據為 IP 地址映射自治系統(AS)可得到:

在特定的時間間隔 ?t,聚合相同源端口和目的 ASN 的所有流,計算字節總數:

盡管在公式中沒有體現,但實際上會跟蹤每個源ASN對流量的貢獻。
時序異常檢測
使用指數加權移動平均值和方差組成的時間序列模型:

Incremental calculation of weighted mean and variance, 2009. https://fanf2.user.srcf.net/hermes/doc/antiforgery/stats.pdf.
計算異常值 δk(t) 描述流量 bk(t) 偏離移動平均線的程度,δk(t) 越大,當前流量與預期的偏差越大。

異常的閾值設置為默認0.5,超過即為異常。
注:檢測到異常時模型更新即停止,直到流量回到正常水平再繼續更新,只在正常流量情況下更新平均值和標準差,這樣的方式也能夠幫助確定異常流量的起止時間。
攻擊檢測
為了評估真實的攻擊,額外指定流量不能低于 5Mbps且異常流量分布在不同的源自治系統(Volume Entropy 的默認閾值為 0.4,計算方式可見原文,不加以贅述)。
在野攻擊分析
基于 FastNetMon 用 C++ 編寫了 IXmon 的流解析和聚合模塊,用 Python 開發了時序異常檢測和反射放大 DDoS 攻擊檢測模塊。
FastNetMon
https://github.com/pavel-odintsov/fastnetmon
工作準備
在 Southern Crossroads(SoX / AS 10490)上部署 IXmon,該節點為美國東南部的 20 多個研究和教育網絡聯網服務。根據 CAIDA 的 AS-to-AS 關系公開數據,SoX 與其他 9 個大型自治系統相連,并且關聯 5 個上游服務提供商。

SoX 還為各種小型自治系統提供上游服務:

在 2018 年 4 月到 2020 年 4 月間,一共收集了 634 天流量信息,所有流量中與 5212 個不同的自治系統有關。
工作評估
IXmon 檢測的三種反射放大 DDoS 攻擊的快照如下所示。例如(a)所示,通過源端口 389 發送到 Anon.2371 的反射放大攻擊峰值流量達到了 210Mbps。攻擊前后這些自治系統都幾乎沒有流量往來,突然間產生大量流量是很異常的。

流量與持續時間
在野反射放大 DDoS 攻擊的總體分布和特征沒有公開的數據分析。在部署的兩年內,IXmon 一共檢測到 987 次攻擊。大概 80% 的攻擊持續時間小于 10 分鐘,峰值流量中位數低于 20Mbps,只有 8% 的攻擊峰值會超過 100Mbps,極少數超過 1Gbps(觀測到的最大攻擊峰值為 1.5Gbps)。

濫用服務
源端口的分布如下所示。CLDAP(389 端口)似乎是反射放大攻擊最常濫用的服務,其次是 DNS(53 端口)和 NTP(123 端口)。

每個端口峰值流量分布如下所示(紅線表示中位數,紅色方塊表示平均數),有一些基于 CLDAP 服務的攻擊峰值超過了 1Gbps。
多向量攻擊
通過攻擊時間窗口重合歸并發現多向量攻擊。在 987 次攻擊中,有 36 次攻擊者動用了多向量,最多涉及 4 個服務。如下所示,攻擊者同時利用了 NTP(端口 123)和 CLDAP(端口 389)來攻擊 ASAnon.2354。

反射源分布
每次攻擊來源自治系統的數量分布如下所示。中位數為 40,至少有一半的攻擊都分布在許多不同的網絡中。

如下所示,是 TOP 10 源自治系統貢獻攻擊流量的分布。來源于每個自治系統的峰值流量中位數相對有限,通常約為 1Mbps 左右。

下圖顯示了地理位置分布,由于觀測位置所以目的自治系統都集中在美國東南部。

攻擊緩解
主要分析運營商是否通過操作 BGP 來進行攻擊緩解。主要的緩解措施如下所示:
- 黑洞:將所有流向受害自治系統的流量(合法流量與惡意流量)重定向到“黑洞”,最常用于黑洞的下一跳 IP 是 192.0.2.1。
- 流量重路由:所有流向受害自治系統的流量重定向到第三方服務,如 DDoS 流量清洗中心,第三方服務提供商再將合法流量轉發回來。第三方服務提供商需要臨時通過發布 BGP 公告獲取受害者目標 IP 前綴的所有權,本質上是許可的 BGP 劫持。
利用來自 RouteViews 的路由信息,在攻擊發生前后對受害者相關的 BGP 公告進行分析。
- 黑洞:檢查下一條為 192.0.2.1 和社區值設置為 666 的 BGP 更新。
- 流量重路由:檢查在 BGP 更新中的網絡所有權變更(使用 PyBGPStream)。
最終發現在 3 次攻擊期間存在 56 個 BGP 公告,將流量重定向到已知的流量清洗服務提供商。這些緩解措施都與針對 AS Anon.2354 的攻擊有關,流量被重新路由到 AS Anon.1890。
如下顯示了一個反射放大攻擊的示例,攻擊持續了大約 45 分鐘后被重路由到清洗中心。

使用緩解措施的比例之低令人驚訝,目前似乎只對長時間的攻擊進行緩解。可能是目前的 DDoS 攻擊在造成明顯的服務中斷時才會開始執行緩解措施,但降低檢測延遲可能會有很大幫助。
目前的黑洞緩解措施是一種粗放的策略,會將所有的合法流量都清洗掉。而依賴 IXP 與 ISP 配合可以使黑洞緩解措施更加精細,將特定自治系統封禁。
誤傷被封禁的非反射放大攻擊流量如下所示,就是受到緩解策略影響的“附加損失”。CLDAP、SunRPC、Memcached 和 Chargen 一般很少跨自治系統,完全阻止影響很小。但對 NTP 和 DNS 來說,影響就比較大了。只針對特定自治系統進行處理,可以控制影響范圍。

工作思考
IXP 在國內來說可能相對陌生一些,但實際上已經變成了互聯網中極其重要的基礎設施。一直以來,我國主要依靠骨干直聯點與傳統交換中心(Network Access Point, NAP)交換骨干互聯單位網間流量。工信部于 2012 年確定了包括骨干直聯、交換中心在內的“全方位、立體化”的網間互聯目標架構。2019 年我國首個國家新型互聯網交換中心(Internet Exchange Point, IXP)試點于烏鎮正式揭牌,而國家(杭州)新型互聯網交換中心的運營主體——浙江省新型互聯網交換中心有限責任公司于 2020 年 6 月正式成立。

這篇工作是一個檢測和測量分析相結合的工作,我個人總是偏愛站在更大的視角下來看威脅的文章,這樣能讓我們跳出個人固化的認知,有更能讓我們了解威脅實際的模樣。反射放大 DDoS 攻擊的相關文章近年來也比較多,這個工作中的代碼已經開源提供了,感興趣的可以學習一下。
IXmon
https://github.com/perdisci/IXmon