分散式阻斷服務(DDoS)攻擊在網路安全領域一直是個棘手的問題。傳統的偵測方法反應速度不夠快,難以及時阻擋攻擊。根據 F-divergence 的方法則展現了近乎即時偵測 DDoS 攻擊的潛力,能有效提升網路安全性。F-divergence 是一種根據機率理論的度量方法,用於計算兩個機率分佈之間的資訊距離,藉此找出偏差。在 DDoS 偵測中,正常流量和異常流量可視為兩個不同的機率分佈,透過計算它們之間的 F-divergence 值,即可判斷是否存在攻擊行為。實務上,並非所有網路流量屬性都適用於 DDoS 偵測,有些屬性反而會引入噪音,影響偵測準確性。選取關鍵屬性子集至關重要,例如針對 ICMP flooding 攻擊,連線大小是重要指標;而 TCP SYN flooding 攻擊則需參考 TCP SYN 和 ACK 封包比例。F-divergence 的數學原理涉及凸函式 f 以及兩個機率分佈 P 和 Q 之間的 Radon-Nikodym 導數,用於衡量 P 在 Q 中的密度,並計算兩者差異。常用的 F-divergence 度量包含 Kullback-Leibler Divergence、Hellinger Distance、Total Variation Distance 以及 α-Divergence,它們都是 F-divergence 的特例,差別在於凸函式 f 的選擇。在 ICMP flooding 攻擊偵測案例中,可利用連續兩個 5 秒間隔的網路流量資料,計算每個間隔內唯一連線流的數量,並以連線大小作為特徵計算 F-divergence 值。特徵資訊儲存在二元樹節點中,包含唯一連線 ID、來源 IP、連續兩個間隔的連線大小以及標記。TCP SYN flooding 攻擊偵測則考慮 TCP SYN 和 ACK 封包的比例,計算每個連線流的 TCP SYN 和 ACK 封包計數,並將 TCP SYN 封包計數序列視為機率分佈 P,ACK 封包計數視為 Q,計算兩者之間的 F-divergence。

洞悉資料關聯:玄貓解構多種關聯性量測指標

在資料分析和機器學習領域,理解不同物件或變數之間的關聯性至關重要。身為資料科學家,我(玄貓)經常需要從海量資料中提取有意義的模式。選擇合適的關聯性量測方法,對於揭示資料間隱藏的關係至關重要。本文將探討幾種常用的關聯性量測指標,並透過例項分析它們的適用場景。

Pearson 相關係數:線性關係的探測器

Pearson 相關係數是一種衡量兩個變數之間線性關係強度的指標。它的值介於 -1 到 +1 之間,其中 +1 表示完全正相關,-1 表示完全負相關,0 表示沒有線性相關關係。

公式: (由於公式無法直接顯示,請參考相關統計學教材)

適用場景: 當我們懷疑兩個變數之間存線上性關係時,Pearson 相關係數是一個很好的起點。例如,在分析廣告支出與銷售額之間的關係時,可以使用 Pearson 相關係數來評估它們之間的線性關聯程度。

玄貓的經驗: 在為一家零售公司分析銷售資料時,我(玄貓)發現使用 Pearson 相關係數可以快速識別出哪些因素對銷售額有顯著的線性影響。

Spearman 等級相關係數:非線性關係的捕捉者

Spearman 等級相關係數是一種非引數的相關性量測方法,它根據變數的等級而非原始值。這使得它對於非線性關係和異常值具有更強的魯棒性。

公式: (由於公式無法直接顯示,請參考相關統計學教材)

適用場景: 當變數之間的關係不是線性的,或者資料中存在異常值時,Spearman 等級相關係數是一個更好的選擇。例如,在評估使用者對產品的偏好程度時,可以使用 Spearman 等級相關係數來衡量不同偏好之間的關聯性。

玄貓的經驗: 我(玄貓)曾經在一個醫療保健專案中使用 Spearman 等級相關係數來分析患者的健康指標與生活習慣之間的關係,發現了一些用 Pearson 相關係數無法檢測到的非線性關聯。

Kendall 等級相關係數:排序一致性的度量

Kendall 等級相關係數也是一種非引數的相關性量測方法,它衡量兩個變數排序的一致性。與 Spearman 相關係數類別似,它也適用於非線性關係和異常值。

公式: (由於公式無法直接顯示,請參考相關統計學教材)

適用場景: Kendall 等級相關係數特別適用於需要比較排序結果的場景。例如,在評估搜尋引擎的排名品質時,可以使用 Kendall 等級相關係數來衡量不同排名演算法之間的排序一致性。

玄貓的經驗: 在參與一個資訊檢索專案的過程中,我(玄貓)發現 Kendall 等級相關係數在評估搜尋結果的相關性方面非常有效,尤其是在處理包含大量噪音資料的情況下。

SSSim:處理偏移和縮放的利器

SSSim 是一種魯棒的關聯性量測方法,能夠處理偏移、縮放以及絕對值等情況。它透過計算區域性均值來降低噪音資料的影響。

公式: (由於公式無法直接顯示,請參考相關統計學教材)

適用場景: 當資料存在偏移或縮放時,SSSim 是一個很好的選擇。例如,在比較不同感測器收集的資料時,可以使用 SSSim 來消除由於感測器校準差異引起的影響。

NMRS:檢測偏移關聯的專家

NMRS 是一種能夠有效檢測偏移關聯的相似性量測方法。

公式: (由於公式無法直接顯示,請參考相關統計學教材)

適用場景: NMRS 適用於需要檢測資料中是否存在偏移關聯的場景。

例項分析:不同關聯性量測指標的比較

為了更好地理解這些關聯性量測指標的特性,我們來看一個例項。假設我們有五個物件 O1, O2, O3, O4 和 O5,它們的資料如表 2.3 所示。

表 2.3:示例物件

| 物件 | 資料 1 | 資料 2 | 資料 3 | 資料 4 | 資料 5 | 資料 6 | 資料 7 | 資料 8 | 資料 9 | 資料 10 | |

|

|

|

|

|

|

|

|

|

|

| | O1 | 0.814 | 0.905 | 0.127 | 0.913 | 0.632 | 0.097 | 0.278 | 0.546 | 0.957 | 0.964 | | O2 | 0.500 | 0.970 | 0.300 | 0.485 | 0.800 | 0.141 | 0.421 | 0.915 | 0.792 | 0.959 | | O3 | 5.814 | 5.905 | 5.127 | 5.913 | 5.632 | 5.097 | 5.278 | 5.546 | 5.957 | 5.964 | | O4 | 4.073 | 4.529 | 0.634 | 4.566 | 3.161 | 0.487 | 1.392 | 2.734 | 4.787 | 4.824 | | O5 | 9.073 | 9.529 | 5.634 | 9.566 | 8.161 | 5.487 | 6.392 | 7.734 | 9.787 | 9.824 |

透過計算這些物件之間的距離和相似度,我們可以得到表 2.4 所示的結果。

表 2.4:示例物件的距離和相關性

| 物件對 | 歐氏距離 | NMRS | Pearson | SSSim | Spearman | Kendall | |

|

|

|

|

|

|

| | O1, O2 | 0.7283 | 0.6773 | 0.7245 | 0.5522 | 0.6606 | 0.5111 | | O1, O3 | 15.8114 | 1.0000 | 1.0000 | 1.0000 | 1.0000 | 1.0000 | | O1, O4 | 8.9160 | 0.6000 | 1.0000 | 1.0000 | 1.0000 | 1.0000 | | O1, O5 | 24.0632 | 0.6000 | 1.0000 | 1.0000 | 1.0000 | 1.0000 |

從表 2.4 中可以看出,不同的關聯性量測指標對於不同的關係型別有不同的敏感度。例如,歐氏距離主要衡量數值的接近程度,而 NMRS 能夠檢測到偏移關聯。

流量異常檢測:f-散度量測的應用

在分散式阻斷服務(DDoS)攻擊中,一個常見的現象是短時間內資料封包到達速率的突然增加,或是攻擊目標網路中連線流量的急劇上升。在DDoS攻擊期間,第 i 個時間視窗中的大部分活動連線通常仍會出現在第 (i + 1) 個時間視窗中。在這種情況下,可以使用 f-散度量測方法來檢測流量異常。

玄貓的經驗: 在網路安全領域,我(玄貓)觀察到 f-散度量測在檢測 DDoS 攻擊方面非常有效,因為它可以捕捉到流量分佈的突然變化。

總之,選擇合適的關聯性量測指標取決於具體的應用場景和資料特性。理解不同指標的優缺點,並根據實際情況進行選擇,是資料科學家和機器學習工程師的一項重要技能。

利用 F-divergence 快速偵測 DDoS 攻擊

在網路安全領域,分散式阻斷服務(DDoS)攻擊一直是個令人頭痛的問題。傳統的偵測方法往往耗時且效率不高,難以在第一時間發現並阻止攻擊。身為一個在網路安全領域打滾多年的老兵,我一直在尋找更快速、更有效的 DDoS 偵測方法。最近,我發現根據 F-divergence 的方法,在近乎即時地偵測 DDoS 攻擊方面,具有相當大的潛力。

什麼是 F-divergence?

簡單來說,F-divergence 是一種根據機率理論的度量方式,可以用來計算兩個機率分佈之間的資訊距離,從而找出偏差。在 DDoS 偵測中,我們可以將正常流量和異常流量視為兩個不同的機率分佈,透過計算它們之間的 F-divergence 值,來判斷是否存在攻擊行為。

玄貓(BlackCat)的經驗分享:選取關鍵屬性的重要性

在實際應用中,並非所有網路流量屬性都對 DDoS 偵測有幫助。有些屬性可能噪音過大,反而會影響偵測的準確性。因此,選取最相關的屬性子集至關重要。玄貓(BlackCat)在過去的經驗中發現,針對不同的攻擊型別,需要選擇不同的關鍵屬性。例如,對於 ICMP flooding 攻擊,連線大小(connection size)可能是一個重要的指標;而對於 TCP SYN flooding 攻擊,TCP SYN 和 ACK 封包的比例可能更具參考價值。

F-divergence 的數學原理

為了更深入地理解 F-divergence,讓玄貓(BlackCat)稍微介紹一下它的數學原理。假設我們有兩個離散機率分佈 P 和 Q,定義在同一個空間 Ω 上,且 P 相對於 Q 絕對連續。對於一個凸函式 f,Q 與 P 的 divergence,也就是 Df,可以計算如下:

Df(P ‖ Q) = ∫Ω f( dP/dQ )  (公式 2.7)

在這個公式中,dP/dQ 代表 P 相對於 Q 的 Radon-Nikodym 導數。簡單來說,它衡量了 P 在 Q 中的密度。f(dP/dQ) 則是一個根據密度比的函式,用來衡量兩個分佈之間的差異。

常見的 F-divergence 度量

在實際應用中,我們可以使用不同的凸函式 f 來定義不同的 F-divergence 度量。以下是幾種常見的度量方式:

  • Kullback-Leibler Divergence (K-L Divergence): 這是一種常用的資訊距離度量,衡量了兩個分佈之間的資訊損失。
  • Hellinger Distance: 這是一種根據平方根的距離度量,對異常值比較不敏感。
  • Total Variation Distance (TVD): 這是一種衡量兩個分佈之間最大差異的度量。
  • α-Divergence: 這是一種廣義的 divergence 度量,可以透過調整 α 值來控制對不同型別差異的敏感度。

雖然這些度量方式各不相同,但它們都是 F-divergence 的特例,只是凸函式 f 的選擇不同而已。

實作案例:ICMP Flooding 攻擊偵測

讓玄貓(BlackCat)分享一個實際的案例,說明如何使用 F-divergence 來偵測 ICMP flooding 攻擊。在這個案例中,我們使用連續兩個 5 秒間隔的網路流量資料,並計算每個間隔內唯一連線流(unique connection flow)的數量。一個連線流代表從第 i 個 SIP(Source IP)到第 i 個 DIP(Destination IP)所傳送的封包總數。

玄貓(BlackCat)提醒:連線大小的重要性

我們將連線大小視為一個重要的特徵,並計算每個封包到達時,連線流的 F-divergence 值。提取出的特徵資訊會儲存在一個二元樹的節點中,包含以下幾個元素:<Uniq conn ID, SIP, Conn sizet, Conn sizet+1, Flag>

其中,Uniq conn ID 是根據 SIP 和 DIP 地址計算出來的唯一連線 ID,用來代表每個節點的連線流。Conn sizetConn sizet+1 則是用來儲存連續兩個間隔中,相同連線流的大小。

玄貓(BlackCat)的實作步驟

  1. 對於每個時間間隔 t,如果從 SIP 和 DIP 地址組閤中產生一個已存在的 Uniq conn ID,則將該流的 Conn sizet 加到每個新封包的大小。否則,建立一個新的節點,並將其 flag 初始設定為 0。
  2. 在下一個間隔 (t + 1) 中,如果讀取封包時產生相同的 UID,則將 Uniq conn ID 節點的 flag 設定為 1。
  3. 當兩個間隔的樣本都完全讀取且樹狀結構建立完成後,透過 pre-order traversal 存取 flag 值為 1 的節點,並提取它們的 Conn sizetConn sizet+1,以電腦率分佈。
  4. flag 值為 1 的節點代表兩個連續間隔中的共同連線,並代表兩個離散機率分佈 P 和 Q。

機率分佈的計算方式

對於一個機率分佈 P(或 Q),假設該分佈是一個由 n 個連線上的正規化連線大小組成的陣列,其中第 i 個連線流的機率 pi(或 qi)與連線大小 si 成正比,計算公式如下:

pi 或 qi = si / ∑ si

最後,我們使用每個連線流的連線大小機率分佈來計算 F-divergence,並檢查 divergence 值是否高於預設的正常閾值。如果是,則確認為 flooding 攻擊,並將具有高 Conn sizetConn sizet+1 總和的節點標記為惡意連線流。

實作案例:TCP SYN Flooding 攻擊偵測

除了 ICMP flooding 攻擊,F-divergence 也可以用來偵測 TCP SYN flooding 攻擊。在這個案例中,我們考慮 TCP SYN 和 ACK 封包的比例來計算 divergence。我們一次取一個樣本,並嘗試計算所有唯一的連線流。

玄貓(BlackCat)的實作步驟

  1. 對於每個流,從來源和目的 IP 地址計算 Uniq conn ID 值,然後建立一個包含 Uniq conn ID, SIP, TCP SYN Count, ACKCount 元素的節點,並根據 Uniq conn ID 將其更新到樹狀結構中。
  2. 從每個樣本中,使用每個連線流的 TCP SYN 和 ACK 封包計數來更新每個節點。
  3. 將 TCP SYN 封包計數序列視為機率分佈 P,將 ACK 封包計數視為 Q。透過考慮所有流,計算每個間隔中兩個分佈的 F-divergence。
  4. 如果偵測到

UDP洪水攻擊偵測:玄貓的目標埠變更分析方法

為了偵測UDP洪水攻擊,玄貓專注於一種稱為「目標埠變更」的特徵,這種特徵包含隨機的目標埠位址。玄貓的方法是,針對每一對連續的時間間隔,計算所有獨特的連線流,並將它們儲存在一個樹狀結構中。同時,玄貓也會計算一個名為「U niq conn ID」的獨特連線識別碼,這實際上是一個獨特的<SIP, DIP>配對,用作鍵值。如果「U niq conn ID」相同,且代表一個連續時間間隔的常見連線,則該節點會被標記為「1」。

這些特徵在樹狀節點中表示為目標埠變更計數t和目標埠變更計數t+1。這些依序給出的值也代表了機率分佈P和Q。對於每個樣本和一個時間間隔(例如t),它會更新每個SIP位址的連線流的目標埠號碼變更的目標埠變更計數t。一旦建構了樹狀結構,就可以透過前序遍歷來存取標記為1的節點,以電腦率分佈P和Q,並最終計算它們之間的差異。

對於每個度量,該方法可以在大約O(nlog(n − 1)) + O(n)時間內計算f -散度,其中n是時間間隔t內的封包數量。額外的O(n)時間是用於樹的前序遍歷。總而言之,它需要O(nlogn)時間。

實驗結果:玄貓的f -散度效能評估

f -散度度量的效能是根據偵測準確性和執行時間來評估的。玄貓使用了三個基準資料集和一個真實資料集(使用玄貓自己的測試平台生成,如前所述)來評估這些度量的有效性。本研究中使用的基準和真實資料集包括MIT林肯實驗室資料集[172]、[164]、[159]、CAIDA DDoS 2007資料集[42]以及UCLA和TUIDS DDoS資料集[88]。玄貓單獨或組合使用這些資料集中的正常和攻擊追蹤。這些資料集的組成和流量統計已在2.9.1.2小節中討論過。CAIDA DDoS 2007資料集主要包含來自受害者的攻擊追蹤和相應的回應。玄貓盡可能地從這個資料集中移除了正常追蹤。使用玄貓自己的測試平台生成TUIDS DDoS資料集已在2.9.1.1小節中詳細討論過。

對於每個協定特定的攻擊追蹤,玄貓啟發式地識別了f -散度度量的每個成員的合適閾值範圍,對於這些閾值範圍,可以實作正常和攻擊追蹤之間的最大差異。對於α-散度度量,玄貓考慮了α = 2,因為它獲得了最高的差異值,可以區分所有三個協定的攻擊追蹤和正常追蹤。因此,為了在偵測準確性和計算效能方面與其他度量(如Hellinger距離、K-L散度和TVD)進行良好的比較,在整個實驗研究中,α = 2用於α-散度度量。為了計算各種洪水攻擊型別偵測的閾值,玄貓仔細檢查了來自CAIDA、MIT林肯實驗室和UCLA資料集的三種型別的基準正常流量,用於每個散度度量。圖2.19顯示了每個度量和每個協定特定攻擊追蹤集的閾值範圍。

偵測準確性評估:玄貓的資料集分析

為了評估這四個f -散度度量的效能,玄貓準備了三個不同的資料集,即Trace I、Trace II和Trace III,方法是以不同的比例將DDoS洪水攻擊追蹤注入到CAIDA、MIT林肯實驗室和UCLA資料集的正常追蹤中,比例不均勻。玄貓使用300秒的時間作為每個新資料集的總觀察時間。在注入攻擊流量時,注入非均勻比例的動機是為了避免形成任何特定的模式,並確儲存在根據速率動態的各種攻擊型別,如2.2.2.5小節中所述。

圖2.20顯示了所有四個f -散度度量在Trace 1資料集中使用連線大小作為區分特徵來偵測ICMP ping洪水攻擊的有效性。從圖中可以看出,在大多數情況下,α-散度可以比其他度量更清楚地區分攻擊峰值(即峰值)。值得注意的是,用於偵測ICMP ping洪水的α-散度的閾值範圍是最高的(即0.40到6.38),這也在圖2.19中看到。其他度量(如K-L-散度)能夠區分這些攻擊峰值,但不如α-散度那麼清楚。同樣,對於TUIDS資料集,與其他度量相比,α-散度在偵測ICMP ping洪水攻擊方面表現出最佳效能,如圖2.21所示。在這種情況下,K-L-散度將自己確立為α-散度的封閉競爭者。對於包含TCP SYN洪水和UDP洪水攻擊的Trace II和Trace III資料集,從圖2.22和2.23可以明顯看出,α-散度是贏家。在TCP SYN洪水偵測的情況下,α-散度的閾值範圍是最高的,區分特徵是TCP SYN, ACK比率。然而,在UDP洪水攻擊的情況下,α-散度使用目標埠變更作為區分特徵,以較小的閾值範圍顯示了最佳可能的結果。

運算時間評估:玄貓的即時偵測挑戰

即時偵測DDoS攻擊是一項基本要求。儘管大多數受害者端偵測系統顯示出良好的偵測準確性,但它們通常無法即時執行偵測。這可能是因為它們需要大量的計算資源,或者它們的偵測方法不夠有效率。

總結: 玄貓透過分析目標埠變更,使用α-散度等f-散度量測方法,能有效偵測UDP洪水攻擊。實驗結果顯示,α-散度在多個資料集中均優於其他方法,儘管即時偵測仍面臨運算時間的挑戰。