# 文章閱讀: Enhancing Network Intrusion Detection Performance using Generative Adversarial Networks
- 作者: Vrizlynn L. L. Thing, Xinxing Zhao, Kar Wai Fok
- 時間: 2024, 4
- 原文: https://arxiv.org/html/2404.07464v1
本研究不僅是提出了分類結果更精確、同時解決資料稀缺問題的模型,在文中也建立IDS性能的基準、描述這項研究中實施的三種GAN模型、數據集中Botnet樣本的方法、解釋了如何基於原始數據集生成新的Botnet樣本、概述了評估生成樣本與原始樣本之間相似性的方法。
透過本文可以對 GAN 應用於 IDS 更有方向。
# 大綱
:::spoiler 大綱
- 介紹
- 相關研究
- 研究方法
- IDS介紹與資料集與資料處理
- The IDS Baseline and Motivation
- The Basic GANs: 基本GAN介紹
- Vanilla GAN (GAN)
- Wasserstein GAN (WGAN)
- Wasserstein GAN with Gradient Penalty (WGAN-GP)
- 本文設定的 GAN model
- Implementation and Settings for Vanilla GAN
- Implementation and Settings for WGAN
- Implementation and Settings for CTGAN
- Processing Botnet samples from CIC-IDS2017 and Generating New Samples
- 評估方法
- The Cosine Similarity
- Cumulative sums 累積和
- Validating with ML Algorithms
- Intrusion Detection Enhancement with More Botnet Samples Generated: 生成增強的Botnet樣本集
- Enhance with WGAN-Generated Samples
- Enhance with Other Two GAN-Generated Samples
- 結論
:::
# 介紹
IDS 在近年來面臨的條件主要如下:
1. 處理加密流量
2. 對抗先進的規避技術
3. 解決可擴展性問題
4. 以及應對網路流量模式的複雜性
5. 樣本稀缺性和類別不平衡
本研究專注於數據稀缺問題,提出了一種利用生成式人工智慧 (AI) 特別是生成對抗網絡 (GAN) 模型生成攻擊樣本的方法,以增強基於CIC-IDS2017數據集的NIDS檢測性能。
本文使用了三個不同的GAN模型來生成額外的攻擊樣本,並採用了多種機制來評估生成的攻擊樣本的質量;另外,與以往研究不同,本研究探討了生成不同數量的攻擊樣本並將其整合到原始數據集中。通過對這些增強數據集進行全面的實驗和嚴格的測試,證明隨著生成更多數據樣本,入侵檢測系統的性能可以得到提升。
# 相關研究
有三種類型的網路入侵偵測系統。
- 第一類是基於特徵碼的系統
- 原理: 將進入的流量與預先建立的已知攻擊模式資料庫進行比對。如果發現匹配,系統會觸發警報。
- 缺點: 識別已知威脅方面非常有效,但在面對新型攻擊時可能會有困難。
- 第二類系統是基於異常檢測的系統。
- 原理: 通過持續監控網路流量和系統活動,建立正常網路行為的基線,並將這些行為與基線進行比較。當檢測到任何偏差或異常時,系統會觸發警報。
- 優點: 這種檢測方法在識別新型或以前未遇到的威脅方面非常有效,因為這些威脅缺乏已建立的特徵碼。
- 缺點: 包括需要複雜的配置和消耗大量計算資源。
> 與NIDS中的異常檢測高度相關且互補的一個方面是分類。
> - 異常檢測專注於識別異常或可疑的模式
> - 分類則專門將已識別的異常分類為特定的威脅類型。
>
> 一旦檢測到異常,分類模型可以應用於分類威脅的性質,為安全團隊提供有關具體攻擊類型的更詳細見解。因此,這兩個元素的結合可以提高系統的整體性能,並為安全團隊提供更具行動性的資訊。最後,混合系統結合了前述兩種方法的優點,具有更高的適應性,並提供一種平衡的威脅檢測方法,能夠提高識別已知和未知威脅的準確性。
- 生成對抗網絡(GAN)
:::spoiler 生成對抗網絡(GAN)
- 生成對抗網絡(GAN)
- 用於訓練的合成數據,改善特徵提取,並解決與特徵碼檢測和異常檢測方法相關的一些挑戰。
- 直接用作網路入侵偵測機制。
- 雙向GAN進行異常檢測的框架。
- 使用KDDCUP-99資料集進行評估,並與其他深度學習模型進行比較以評估其性能。
- R. Patil, R. Biradar, V. Ravi, P. Biradar, U. Ghosh, Network traffic anomaly detection using pca and bigan, Internet Technology Letters 5 (1) (2022) e235.
- 具有新開發的神經網絡生成器和鑑別器的GAN模型。
- 基於CIC-IDS 2017和UNSW-NB15等數據集進行了實驗,以評估GAN的效果,並將其與已建立的無監督檢測方法進行了比較。
- T. Truong-Huu, N. Dheenadhayalan, P. Pratim Kundu, V. Ramnath, J. Liao, S. G. Teo, S. Praveen Kadiyala, An empirical study on unsupervised network anomaly detection using generative adversarial networks, in: Proceedings of the 1st ACM Workshop on Security and Privacy on Artificial Intelligence, 2020, pp. 20–29.
- 生成模仿正常模式但實際上具有惡意性質的網路流量,目的是規避入侵偵測系統。
- 用於生成合成DDoS流量的GAN模型。
- 該模型動態改變攻擊特徵的數量,並將其與訓練集中未使用的攻擊特徵進行交換。因此,他們生成的攻擊能夠有效地規避IDS的檢測。
- R. Chauhan, S. S. Heydari, Polymorphic adversarial ddos attack on ids using gan, in: 2020 International Symposium on Networks, Computers and Communications (ISNCC), IEEE, 2020, pp. 1–6.
- 將原始惡意網路流量轉化為模仿正常行為的流量
- 基於GAN的框架,具備將原始惡意網路流量轉化為模仿正常行為的流量的能力,同時保留攻擊功能。
- 該框架動態學習實時黑箱檢測系統的運作,並利用修改後的攻擊流量有效規避這類檢測系統。
- Z. Lin, Y. Shi, Z. Xue, Idsgan: Generative adversarial networks for attack generation against intrusion detection, in: Pacific-asia conference on knowledge discovery and data mining, Springer, 2022, pp. 79–91.
- 使用 GAN 擾動攻擊流量
- 一個GAN模型,將DDoS功能特徵與良性樣本特徵的分佈對齊,有效地擾亂了數據。
- 結論強調了輸入特徵中引入擾動顯著降低了IDS的性能。
- Y. Zhang, Q. Liu, On iot intrusion detection based on data augmentation for enhancing learning on unbalanced samples, Future Generation Computer Systems 133 (2022) 213–227.
- GAN 在 NIDS 中的適用性,作為提升其性能和健壯性的一種手段。
- 針對解決類別不平衡問題,實驗發現GAN比傳統方法(如SMOTE)優
- J. Lee, K. Park, Gan-based imbalanced data intrusion detection system, Personal and Ubiquitous Computing 25 (2021) 121–128.
- 結合GAN功能的IDS模型在檢測攻擊方面顯著優於獨立的IDS
- 使用NSL-KDD資料集與基於ANN的GAN模型生成合成樣本。隨後將IDS訓練在合成樣本和原始樣本上,使用NSL-KDD資料集。
- M. H. Shahriar, N. I. Haque, M. A. Rahman, M. Alonso, G-ids: Generative adversarial networks assisted intrusion detection system, in: 2020 IEEE 44th Annual Computers, Software, and Applications Conference (COMPSAC), IEEE, 2020, pp. 376–385.
- 生成的數據集適合訓練各種機器學習模型
- 使用CTGAN、CopulaGAN和TableGAN模型生成合成的DoS攻擊,
- 使用NSL-KDD資料集
- 本研究主要側重於利用GAN模型的力量來提高IDS的分類效果。這種方法涉及生成更大數量的攻擊樣本,然後將其用於訓練IDS。
- S. Bourou, A. El Saer, T.-H. Velivassaki, A. Voulkidis, T. Zahariadis, A review of tabular data synthesis using gans on an ids dataset, Information 12 (09) (2021) 375.
:::
# 研究方法
- 資料集: CIC-IDS2017資料集
- 針對樣本: Botnet樣本
圖1展示了使用GAN生成的額外攻擊樣本來提升NIDS的整個過程。
:::spoiler Figure 1: The Flow of Enhancing NIDS Performance with GANs

:::
## IDS介紹與資料集與資料處理
 
表 1 結果
- 展示了不同類別的網路活動及其樣本數量
表 2 結果
- 目的: 表2展示了如何根據原始類別形成新的類別。
## The IDS Baseline and Motivation
在過往別人的研究裡,證實使用隨機森林(RF)模型作為分類器可以在CIC-IDS2017資料集上實現強勁的分類性能。在本研究中,作者同樣採用了RF模型來分類新形成的多個類別,並使用卡方檢定(chi2)作為評分函數以選擇最重要的32個特徵。在這個基準模型中(訓練集和測試集的比例為8:2),RF模型的分類準確率達到了0.9972,這與過往他人研究的結果非常接近。
 
表 3 結果
- 目的: 展示了這些新類別及其樣本數量。
- 結果說明
- 類別 Infiltration 和 Botnet 的樣本數明顯少於大多數其他類別 -> 可用資料的稀缺性
表 4 結果
- 目的: 說明了入侵偵測系統(即隨機森林模型)的性能
- 指標: 精確率(Precision)、召回率(Recall)和F1-Score
- 結果說明
- 分類性能較低的兩個類別是Botnet和Infiltration,其精確率、召回率和F1-score分別為0.87、0.46、0.60以及1.00、0.67、0.80。
實驗結論
- 作者針對 Botnet 類別計劃利用GAN模型在此類別內生成額外的合成樣本。
- Infiltration類別僅包含36個樣本,小於資料集(CIC-IDS2017)的78個特徵
- 對於Infiltration類別,在召回率和F1-score方面仍有改進空間。
## The Basic GANs
### Vanilla GAN (GAN)
- 使用二元交叉熵作為損失函數的GAN模型
- 判別器
- 區分真實資料和生成資料
- 產生輸出 $D(x)$,代表輸入 x 是真實資料的機率(而不是生成的資料)
- 公式說明
- $-\mathbb{E}_{x \sim p_{data}(x)} \left[ \log D(x) \right]$ 表示真實資料中判別器輸出值的對數期望值,這促使判別器對真實資料賦予較高的概率(接近1)。
- $-\mathbb{E}_{x \sim p_{gen}(x)} \left[ \log(1 - D(x)) \right]$ 表示生成資料中判別器輸出值的補數對數期望值,這促使判別器對生成資料賦予較低的概率(接近0)。
- 公式:
$$
L_D = -\mathbb{E}_{x \sim p_{data}(x)} \left[ \log D(x) \right] - \mathbb{E}_{x \sim p_{gen}(x)} \left[ \log(1 - D(x)) \right]
$$
- 生成器
- 試圖最小化判別器正確分類生成資料為假的概率(判別器對生成資料輸出值的對數期望值)
- 公式說明
- $L_D$ = 判別器的損失
- $L_G$ = 生成器的損失
- $x$ = 資料樣本
- $p_{data}(x)$ = 真實資料分佈
- $p_{gen}(x)$ = 生成資料分佈
- $D(x)$ = 判別器對資料樣本 \(x\) 的輸出
- 公式:
$$
L_G = -\mathbb{E}_{x \sim p_{gen}(x)} \left[ \log D(x) \right]
$$
### Wasserstein GAN (WGAN)
> 傳統 GAN 的訓練容易遭遇模式崩潰(mode collapse)和梯度消失(vanishing gradients)等問題。
- 基於傳統 GAN 並引入了一種新的損失函數
- 損失函數: Wasserstein距離,或稱作地球移動者距離(Earth-Mover’s Distance, EMD)
- 優點
- Wasserstein損失提供了一個更具信息性的訓練評估指標。
- EMD 量化了將一個概率分佈轉化為另一個概率分佈所需的最小成本 -> 為生成器提供了一個更清晰的目標
- 在訓練過程中引入了連續和平滑的梯度,從而提高了訓練的穩定性,減輕了梯度消失等問題。
- 公式說明
> 其中 i in P, j in Q
- $EMD(P, Q)$ = 分佈 \(P\) 和 \(Q\) 之間的地球移動者距離
- $d(i, j)$ = 從 \(P\) 和 \(Q\) 中數據點 \(i\) 和 \(j\) 之間的距離
- $f(i, j)$ = 從 \(i\) 移動到 \(j\) 所需的質量(其中 \(i\) 屬於 \(P\),\(j\) 屬於 \(Q\))
- 公式
$$
EMD(P, Q) = \min \sum \sum d(i, j) \cdot f(i, j)
$$
### Wasserstein GAN with Gradient Penalty (WGAN-GP)
- WGAN-GP 模型是對 WGAN 模型的改進
- 用梯度懲罰(Gradient Penalty)取代了權重剪裁來強制實現 Lipschitz 條件。
- 有助於實現更穩定的訓練過程
- 更有效地計算 Wasserstein 距離
## 本文設定的 GAN model
本研究中部署三個不同的 GAN 模型,用於基於 CIC-IDS2017 數據集生成新的攻擊樣本。
- Vanilla GAN
- 損失函數: 交叉熵
- WGAN
- 損失函數: Wasserstein 距離
- Conditional Tabular GAN(CTGAN)
- 特色:
- 專門為表格數據設計的生成模型
- 在條件數據生成方面表現出色,能夠保持原始表格數據集的統計特性和依賴關係。
- 生成器
- 損失函數: 最大平均差異(MMD)
- 衡量兩個分佈之間的差異。
- 鑑別器
- 損失函數: 基於 WGAN-GP 的原則,強調在生成過程中保持數據的質量和完整性。
### Implementation and Settings for Vanilla GAN
- 生成器
- 三個全連接層
- 第一層由25個神經元組成,接受噪聲作為輸入,應用ReLU激活函數,並使用He均勻初始化器進行初始化。
- 第二層具有50個神經元,同樣使用ReLU激活函數。
- 第三層的神經元數量與連續縮放數據中的特徵數相同(取決於使用的特徵),並使用sigmoid激活函數。這在生成數據範圍介於0和1之間時,通常用於輸出層。
- 鑑別器
- 三個全連接層
- 第一層包含50個神經元,使用ReLU激活函數,並接受與真實數據相同形狀的輸入。
- 第二層有100個神經元,使用ReLU激活函數。
- 第三層則有1個神經元,並使用sigmoid激活函數,輸出一個單一的值,該值被解釋為輸入數據是真實的(而非生成的)的概率。
### Implementation and Settings for WGAN
實施的WGAN模型與本研究中的Vanilla GAN設置相似,不同之處在於它使用了Wasserstein距離作為其損失函數。
### Implementation and Settings for CTGAN
- 作者採用並修改了一個基於CTGAN模型的版本
- 生成器
- 一個輸入層
- 噪聲和標籤數據一起作為輸入被連接
- 三個隱藏層
- 第一個隱藏層的神經元數量等於輸入維度(dim),並使用ReLU作為激活函數
- 第二個隱藏層具有dim * 2個神經元,並使用ReLU激活
- 第三個隱藏層具有dim * 4個神經元,並使用ReLU激活
- 一個輸出層
- 輸出層生成具有指定維度的合成數據(輸出維度)。
- 判別器
- 一個輸入層
- 輸入數據和標籤數據一起作為輸入被連接
- 三個隱藏層
- 第一個隱藏層有dim * 4個神經元,並使用ReLU激活。在第一個隱藏層之後應用一個丟棄層(dropout layer),丟棄率為0.1。第二個隱藏層有dim * 2個神經元,並使用ReLU激活。在第二個隱藏層之後同樣應用一個丟棄層,丟棄率為0.1。第三個隱藏層有dim個神經元,並使用ReLU激活。
- 一個輸出層
- 輸出層具有一個神經元,並使用Sigmoid激活函數。
> CTGAN模型原型 code: [GitHub](https://github.com/ydataai/ydata-synthetic)
## Processing Botnet samples from CIC-IDS2017 and Generating New Samples
- 基於目標端口將原始的Botnet樣本分類:
- 一組是與8080端口相關聯的樣本
- 另一組則是與非8080端口相關的樣本。
:::info
選擇目標端口作為分類依據是因為它通常可以指示應用協議的類型,而每一種協議在網路流量中的特徵邊界各不相同。值得注意的是,Botnet樣本中有相當一部分與8080端口相關,該端口是 HTTP 的替代端口。
在進一步細化分類方法時,我們將這兩個主要組別進一步劃分為更小、更具針對性的片段。劃分標準十分簡單:觀察到數據集中某些列主要包含兩到三個不同的值。我們根據這些觀察到的模式調整數據集的劃分,創建了更小、更同質的片段。這些結果中的小片段展示了簡化的數據分佈。隨後,我們使用三個GAN模型基於這些經過細化處理的、更同質的片段生成了更多的Botnet樣本。
:::
## 評估方法
評估生成樣本與原始樣本之間接近度
### The Cosine Similarity
Cosine Similarity
- 目的: 用來測量兩個非零向量在內積空間中相似性的指標。
- 值越接近1,表示兩個向量之間的接近程度越高。
- 當值為1時,意味著兩個向量的方向完全一致,表示絕對相似。
- 觀察
- Vanilla GAN和WGAN模型在餘弦相似度方面表現相似,並且比CTGAN模型更優
:::info
生成的樣本顯示出與原始數據高度相似,這表明這些模型(包括三種GAN模型)在保持原始數據的主要特徵方面是有效的。
:::

- 表 5
- 8個特徵(Flow_Duration、Total_Length_of_Fwd_Packets、Flow_Packets_s、Fwd_IAT_Mean、Bwd_IAT_Mean、Fwd_Packets_s、Packet_Length_Mean和Init_Win_bytes_backward)及其對應的餘弦相似度值
- 顯示了原始Botnet樣本與由GAN、WGAN和CTGAN模型生成的樣本之間的相似性
### Cumulative sums 累積和
Cumulative sums
- 目的: 量化生成樣本與原始樣本之間的接近程度
- 實現: 通過聚合單個特徵的值
- 實驗
- 作者比較由Vanilla GAN、WGAN和CTGAN生成的樣本與原始樣本之間特徵的累積和,發現它們之間存在一致的接近程度。
- 分析結果顯示,Vanilla GAN和WGAN模型在特徵累積和方面表現相似,且超過了CTGAN模型的性能。
:::spoiler Figure 2: The cumulative sums for 8 features for GAN generated and original Botnet samples.

:::
:::spoiler Figure 3: The cumulative sums for 8 features for WGAN generated and original Botnet samples.

:::
:::spoiler Figure 4: The cumulative sums for 8 features for CTGAN generated and original Botnet samples.

:::
- 圖表目的
- 圖2到圖4顯示8個特徵在三個不同組別中的累積和。
- 圖表說明
- 藍色線條代表來自原始Botnet樣本的累積和
- 橙色線條則代表生成樣本的累積和。
- 觀察結果
- 對於WGAN和Vanilla GAN來說,這八個選定特徵的累積和在生成樣本與原始Botnet數據之間非常接近。然而,考慮到CTGAN時,與原始樣本相比,某些特徵的累積和存在顯著的偏差。
### Validating with ML Algorithms
- 實作: 使用機器學習算法,如隨機森林和決策樹
- 目的: 了解生成數據相對於初始數據集的質量和真實性。
- 實驗方法
- 使用GAN、WGAN和CTGAN生成了1,956個合成Botnet樣本,這些樣本數量與我們的參考數據集中的原始Botnet實例數量相同。此外,我們從CIC-IDS2017數據集中提取了兩組各10,000個Benign樣本。
- 第一個實驗
- 資料集
1. 將1,956個CTGAN生成的樣本與10,000個Benign樣本結合,形成了一個數據集(數據集1)。
2. 創建了另一個數據集,通過將原始的1,956個Botnet樣本與另一組10,000個Benign樣本結合(測試集)。
- 結果
- 在80%的數據集1上訓練的隨機森林模型達到了1.00的精確度、召回率和F值。當在測試集上進行測試時,它保持了良好的性能,精確度為0.98,召回率為0.94,F值為0.96。
- 第二個實驗
- 資料集
- 1,956個Vanilla GAN生成的樣本與10,000個Benign樣本(數據集2)。
- 應用了RF模型
- 結果
- 在數據集2的剩餘20%上,模型的精確度為1.00,召回率為0.99,F值為1.00。
- 在測試集上應用模型,得到了精確度0.99,召回率0.92,F值0.95。
- 第三個實驗
- 資料集
- 1,956個WGAN生成的樣本與10,000個Benign樣本(數據集3)。
- 結果
- RF模型在數據集3的剩餘20%上達到了所有指標的1.00。
- 在測試集上應用模型,結果為精確度0.99,召回率0.96,F值0.98。
- 結論
- 使用決策森林和決策樹分類器都得到了類似的結果,突顯了三種GAN模型生成樣本的一致性,表明它們與原始樣本具有很高的相似性。
# Intrusion Detection Enhancement with More Botnet Samples Generated
- 實驗目的: 生成增強的Botnet樣本集
- 實驗對象: 三種GAN(WGAN、Vanilla GAN和CTGAN)
- 實驗方法:
- 根據原始Botnet樣本劃分的區段生成樣本。每個樣本區段的數量增加四倍,並將這些樣本合併在一起。
- 每個集包含1956個樣本,分別乘以4、49和99,這些樣本集被分類為不同的組以進行IDS(入侵檢測系統)增強評估。
 
> 以下兩個實驗都可以參考表 6 與 7
## Enhance with WGAN-Generated Samples
對於由WGAN模型生成的樣本,作者將這些樣本分為三個組別,分別進行評估。
- 組別 I
- 樣本: WGAN模型生成的樣本(數量為原始樣本的四倍,即1956X4)替換了處理過的CIC-IDS2017數據集中的1956個原始Botnet樣本。
- 模型: 與IDS基線相同的隨機森林(RF)模型(訓練和測試比例為8:2)
- Botnet 結果:
- 原始資料: 精確度、召回率和F-score均超過0.97。
- 轉換過的資料: 精確度、召回率和F-score分別為1.00、0.74和0.85。
- 組別 II
- 樣本: 49倍於原始數量的樣本進行數據增強,再次替換了處理過的CIC-IDS2017數據集中的1956個原始Botnet樣本。
- 模型: RF模型
- 結果:
- 原始資料: 精確度、召回率和F-score分別為1.00、0.76和0.87
- 轉換資料: 所有指標均達到1.00
- 組別 III
- 樣本: 99倍於原始數量的樣本,再次替換了處理過的CIC-IDS2017數據集中的1956個原始Botnet樣本。
- 模型: RF模型
- 結果:
- 原始資料: 精確度、召回率和F-score分別為1.00、0.82和0.90。
- 轉換資料: 所有指標均達到1.00
## Enhance with Other Two GAN-Generated Samples
與上個實驗類似,這次使用Vanilla GAN和CTGAN生成的樣本。每個組的Botnet分類性能指標都被評估,包括對生成樣本和原始1956個Botnet樣本的測試。
# 結論
- 提出方法: 將GAN(生成對抗網絡)集成到NIDS框架中。
- 開發和實施三種不同的GAN模型,這些模型生成合成的網路流量數據,能夠緊密模擬真實世界的網絡行為,同時針對特定的預定異常活動進行生成。
- 目標解決問題: NIDS訓練數據集中的關鍵數據稀缺問題
- 論證: 實驗證明作者提出方法有效