# 文章閱讀: G-IDS: Generative Adversarial Networks Assisted Intrusion Detection System - 作者: Md Hasan Shahriar∗, Nur Imtiazul Haque∗, Mohammad Ashiqur Rahman∗, and Miguel Alonso Jr - 時間: 2020/6 - 原文連結: https://arxiv.org/pdf/2006.00676 --- 本文針對作者提出的對抗式入侵偵測系統模型進行詳細的介紹,對於模型設計上會更有方向。 --- ## 介紹 物聯網(IoT)是網路物理系統(Cyber-Physical Systems, CPS)的一個重要子領域,透過結合結執行器、電子設備、感測器、軟體和連接性等等,提升數據交換速度的新維度。然而近80%的物聯網設備容易受到各種網路攻擊,例如中間人攻擊、數據和身份盜竊、分散式拒絕服務攻擊(DDoS)、設備劫持等。 為了防止CPS被入侵,入侵檢測系統(IDS)被廣泛使用。IDS 負責檢查網路流量和系統數據中的惡意活動並發出警報,對於特定異常在系統中造成危害的確切位置和時間有適當的了解,有助於通過採取適當的行動來減輕影響,因此入侵預防系統也會隨之而來。透過入侵預防系統與入侵檢測系統同時運作,以防止攻擊者對系統造成任何損害。 雖然基於機器學習的 IDS 可以以相當高的準確性檢測系統中的異常,然而在新穎的架構,需要實施個別的IDS來觀察它們與這個複雜系統的互動,但數據不足限制了模型的訓練;此外,大多數可用的數據集都是不平衡的,與正常數據相比,各種類型的攻擊數據在大規模上不可用。 因此,為了應對這些限制,作者開發了一個生成對抗網路(GAN)輔助的IDS,旨在緩解所有這些新興技術所面臨的數據集相關限制。 ### 貢獻 - 使用人工神經網絡(ANN)建模一個IDS,該系統可以在任何數據庫上進行高準確度的訓練。 - 建模了一個新興的CPS安全數據集,其中獨立的IDS無法高準確度地預測。 - 提出了一個新的安全框架G-IDS,其中GAN生成更多訓練數據以解決數據不平衡和缺失問題。通過評估獨立IDS(S-IDS)和G-IDS的性能,我們發現G-IDS在不同方面超越了S-IDS。 - 在廣泛的網路入侵檢測數據集KDD’99中評估了我們提出的框架。  ## BACKGROUND AND MOTIVATION 「CPS」指一種具有整合的計算和物理能力的系統,本節簡要討論CPS的安全挑戰和IDS的重要性,並簡要介紹作者在提議的解決方案中應用的生成對抗網路(GAN)。 ### IDS 不同類型的IDS在CPS領域被廣泛實施。數據挖掘、機器學習、基於規則的模型、統計建模、協議模型、信號處理模型等都被用於CPS,其中基於異常的IDS最為常用。 基於異常的IDS在訓練過程中學習數據的分佈——如果新進來的數據不來自相同的分佈,它將被檢測為異常。每當系統有新的訓練數據時,它就會訓練IDS模型並隨著新型攻擊進行更新,因此基於異常的IDS的防禦機制是一個動態過程,需要更多的數據來正確訓練其模型。 除了基於異常的模型,防禦機制中還使用了各種入侵檢測技術。不同的機器學習和深度學習算法顯示出高的檢測準確率。對於分類型IDS,通常使用監督學習,而對於基於聚類的IDS,則通常使用無監督學習。此外,還使用不同的數據挖掘技術從大量數據中提取重要特徵。統計分析在歷史數據的異常檢測中也顯示出有效的性能。信號處理也被用來觀察網路的模式並檢測異常。 ### GAN GAN通過對抗性方法估計生成模型。它由兩個獨立的模型組成:生成器(G)和判別器(D)。 生成模型G估計真實數據空間x上的數據分佈p(g)。考慮一個輸入噪音變數p(z),G的目標是生成新的對抗樣本G(z),使其來自與x相同的分佈。另一方面,判別器模型D返回概率D(x),即給定的樣本x來自真實數據集而非由G生成的概率。G的最終目標是最大化D錯誤預測生成數據為真實數據的概率,而D的目標則是做相反的事情。 價值函數V(G,D)定義如下: $$ \min_G \max_D V(G, D) = \mathbb{E}_{x \sim p_{\text{data}}(x)}[\log D(x)] + \mathbb{E}_{z \sim p_{z}(z)}[\log(1 - D(G(z)))] $$ 為了達到最佳解,G和D需要不斷地優化自己,以提高達到 Nash equilibrium。 ### Research Motivation 訓練一個可以實際使用的 IDS 會有以下問題: 1. 除非有足夠的數據,否則IDS無法進行高準確度的訓練。 2. 正常數據點(data points)的數量遠大於異常/攻擊數據,這在訓練過程中會造成數據不平衡問題。 3. 即使有大量數據可用,由於某些缺失數據,數據空間的分佈對IDS來說可能不明顯。 因此,為了解決上述所有問題,可以使用GAN輔助的IDS框架來生成需要改進預測的所有標籤的新數據。此外,還需要一個綜合框架來處理新興CPS技術中的數據不平衡和缺失問題。 ## RELATED WORK 文中提及很多前人都有將GAN應用於IDS的實現,然而那些工作中沒有處理新興CPS技術中數據不平衡和數據有限的問題,因此作者等人提出了一個綜合框架來合成訓練數據,從而提高IDS在網絡攻擊檢測中的性能。 ## PROPOSED G-IDS FRAMEWORK G-IDS框架可以分為以下四個部分: 1. Database module 2. Intrusion detection system module 3. Controller module 4. Synthesizer module  > 以下內容是過程,有順序之分 ### Database module 首先,Database module 從其數據收集器收集現實世界的入侵檢測數據。Database module 還可以從自身生成器獲取合成數據。所有數據都會並行和持續地積累,並以不同的標誌存儲在數據庫中以區分數據來源。 合成數據被細分為待處理和合成類別。待處理數據是未經批准的數據,可以根據 Controller module 的未來決定來接受或刪除。另一方面,標記為合成的數據已經過驗證,並永久保留在數據庫中。我們考慮了一個混合數據庫,其中僅包含原始和合成數據樣本。 ### Intrusion detection system module Intrusion detection system module 中的機器學習模型在數據庫中可用的數據上進行兩次訓練。第一次僅在混合數據集上進行訓練,而另一個模型則在混合數據集和待處理數據集上進行訓練。 Controller會根據評估結果評估這兩個IDS模型的性能,決定是否接受/拒絕數據庫中的待處理樣本。如果模型在這些樣本上進行訓練後顯示更好的結果,則接受待處理樣本並將其作為合成數據附加到數據庫中;否則待處理樣本會被拒絕並從數據庫中移除。 ### Controller module 之後,Controller module 衡量每個類別的檢測率,並列出那些IDS性能低於某個閾值的類別。 ### Synthesizer module 對於檢測較弱的類別,數據樣本會被送往數據 Data Synthesizer module以生成更多樣本。Data Synthesizer module包括一個GAN,它通過學習輸入數據的分佈來生成新樣本。生成潛在樣本後,Data Synthesizer module 將其以待處理標誌送入數據庫模塊。整個過程會重複,直到IDS模型的標籤性能對 Controller 滿意為止。 > algo. 1 提供了完整框架的綜合總結。 ## G-IDS TECHNICAL DETAILS ### Database module (DM) DM包含兩個重要元素:數據收集器和數據庫。 - 數據收集器 (DC):DC通過捕獲網絡數據包來收集現實世界的網絡數據。數據包在進入數據庫之前會進行處理。數據包捕獲應用程序(例如,Wireshark)在DC內運行,以收集數據包並提取其中的特徵。DC的職責分為兩種類型: - 數據收集:數據收集是基於網絡的IDS的初始階段,如圖2所示。CPS的傳感器和執行器之間的通信會產生大量網絡數據,其中大部分包含正常/良好的數據。然而,對手可能會嘗試入侵傳感器或通信渠道以發起網絡攻擊。因此,為了使系統對任何類型的網絡攻擊具有韌性,DC與防火牆協作以標記這些數據包。收集後,DC對這些數據包進行一些預先確定的預處理,以使其可以輸入到機器學習模型中。 - 數據預處理:由於網絡數據包分析器從網絡中收集了大量數據,因此需要進行一些預處理以從這些數據包中提取信息。在作者的模型裡需考慮: - Encoding:標籤編碼是一種編碼數據集中分類值的技術。它將每個特徵的每個類別轉換為0到n-1之間的值,其中n是該特徵的不同類別數量。 - Feature Scaling:特徵縮放是一種用於標準化特徵範圍的方法。包含具有不同幅度、單位和範圍的特徵的數據集,可能會對使用歐氏距離進行計算的各種機器學習算法構成重大問題。為了解決這個問題,我們應用標準縮放來標準化特徵。 - Feature Extraction:特徵提取(也稱為特徵降維)將高維空間重新建模為較少的維度,其中轉換可以是線性的或非線性的。這有助於消除冗餘變量,使模型更簡單。 - 數據庫 (DB):數據庫存儲來自DC和DSM的收集數據,包括標籤和相應的標記。每個標籤代表數據的類型(即正常/攻擊)。在攻擊數據的情況下,標籤顯示攻擊的類型。每個樣本的標記位指示該數據的狀態: - 原始 (Original):從DC收集的數據被標記為原始。 - 待處理 (Pending):如第IV節所述,DSM生成更多數據以提高IDS的性能。然而,由於GAN的隨機性,每批生成的數據不保證能改善IDS的性能。因此,生成的數據最初被標記為待處理,控制器會進一步檢查。 - 合成 (Synthetic):如果待處理數據有助於改善IDS的性能,控制器會將其標記從待處理變為合成,並將其永久存儲在數據庫中。當待處理數據轉換為合成數據時,它們成為混合數據集的一部分。 下列圖表顯示資料在 encoding 之前的狀況  ### Intrusion detection system module (IDSM) 使用的是多層 ANN 模型。該模型由 4 層組成,其中輸入層和輸出層分別有 20 和 10 個節點,兩個隱藏層均由 50 個節點構成。IDS 被訓練兩次,以計算以下兩個性能指標,這些指標有助於評估合成數據: 1. 未包含待處理數據的性能指標 (Performance metric without pending data, $PM_H$) - 在從數據收集模塊收集數據後,IDS 在僅包含原始和合成數據的混合數據庫上訓練模型。然後,IDS 評估標籤級別的性能指標並將其存儲在 $PM_H$ 中,這是模塊當前最佳的性能。 2. 包含待處理數據的性能指標 (Performance metric with pending data, $PM_P$) - 在獲得標記為待處理的合成數據後,IDS 會在包括待處理數據的混合數據庫上重新訓練模型,以評估待處理數據點的額外貢獻。性能指標被存儲在 $PM_P$ 中。 這兩個評估指標都提供給控制器模塊,控制器基於這些指標對待處理數據做出進一步決策。 ### Controller module(CM) 控制器模塊同時執行兩項重要任務: 1. **向數據合成模塊 (DSM) 發送數據合成請求**:首先,控制器分析 $PM_H$ 並與 $PM_{TH}$(性能指標的最小閾值)進行比較。任何單個類別的性能分數低於 $PM_{TH}$ 的,將被視為弱類別,需要 DSM 的幫助來生成新的樣本以提高檢測率。每次 CM 會針對一個標籤發送請求,並對所有其餘弱類別進行類似操作。 2. **評估來自 DSM 的待處理數據請求**:CM 分析評估指標 $PM_P$ 和 $PM_H$ 以更新數據庫。通過比較這兩個指標,CM 建議數據庫刪除特定標籤的待處理樣本,如果這些樣本的性能指標下降。另一方面,如果性能得到提升,CM 建議接受待處理數據,將其標記更新為合成數據。 ### Data Synthesizer Module (DSM) 數據合成模塊 (DSM) 的核心是一個基於 GAN 的模型,由兩個機器學習模型組成: 1. 生成器 (G) 2. 判別器 (D) 控制器選擇一個類別,並將整個數據庫發送到 DSM,標記該類別為 1,其他類別為 0。這樣,對於 DSM,它變成了一個二分類模型,並在成功訓練後生成更多樣本。 作者使用四層人工神經網絡 (ANN) 模型來建立生成器和判別器。每個隱藏層有 50 個節點。判別器的輸入層和輸出層分別有 20 和 1 個節點。此外,生成器以噪聲(latent space)作為輸入,並生成人工樣本。因此,生成器的輸入層和輸出層分別有 5 和 20 個節點。 一旦 GAN 訓練完成,它會生成新的樣本,並要求數據庫添加這些樣本,標記為待處理(pending)標籤。 ## EVALUATION METHODOLOGY ### 數據預處理 1) encoding:為了處理三個分類輸入特徵(即協議類型、服務和標誌)以及一個輸出特徵,我們通過應用標籤編碼技術來編碼相應的數據。 2) Feature Scaling:特徵縮放是一個關鍵步驟,用於處理局部最優和偏向特定特徵的偏斜。它還有助於機器學習基於 IDS 的更快訓練。我們應用標準縮放,這會將值替換為其 Z 分數。數據點的 Z 分數表示其與平均值的偏差。z-score $z_i$ 的計算公式如下: $$ z_i = \frac{x_i - x_{\text{mean}}}{x_{\text{std}}} $$ - $x_i$ 是每個特徵的值 - $x_{\text{mean}}$ 是該特徵的平均值 - $x_{\text{std}}$ 是該特徵的標準差 >這個公式將數據點的值轉換為標準差單位,使得不同特徵的數據可以在相同的尺度上進行比較。 3) 特徵提取:為了減少特徵數量,作者使用基於主成分分析(PCA)的特徵提取方法。 > PCA 是一種無監督、非參數的統計程序,它計算一組新的變數(“主成分”),並將數據表示為這些新變數的形式,並使用正交變換將可能相關的變數觀察集轉換為一組新的觀察值。在數學上,PCA 通過稱為特徵分解的線性代數函數進行計算,這是一種將矩陣分解為標準形式的過程。 為了選擇主成分的數量,作者使用解釋變異比率,這表示應用 PCA 後保留的信息量。總變異是所有單個主成分變異的總和。作者對所有原始 42 個特徵使用 PCA,並將維度縮小為 20 個元素,保持總解釋變異(explained variance)為 91.14%。 ### data modeling - 選擇了5000個樣本用於訓練,其餘的數據則用於測試 - 模擬一個新興的CPS - 從所有可用的類別中隨機選擇數據 - 為了解決數據集的不平衡、隨機分割數據集會導致某些標籤在訓練數據集中丟失 ### 評估 1. **精確度 (Precision)**: 精確度是正確預測為正類的觀察數量與總正類觀察數量的比率。 2. **召回率 (Recall)**: 召回率是正確預測為正類的觀察數量與總實際正類觀察數量的比率。 3. **F1 分數 (F1 Score)**: F1 分數是精確度和召回率的加權平均數,它考慮了假陽性和假陰性。在假陰性和假陽性的分佈不均的情況下,F1 分數能更好地反映模型的性能。 4. **混淆矩陣 (Confusion Matrix)**: 混淆矩陣是一個表格,用來呈現每個類別的正確預測和錯誤預測的數量。它清楚地顯示了預測結果和分類錯誤的類型(例如,真正例、真負例、假陽性、假陰性)。因此,可以通過這四個重要指標來分析IDS的性能,如表 IV 所示。 ## EVALUATION RESULTS AND DISCUSSION ### A. 基於訓練數據集大小的評估 為了調查S-IDS(standalone IDS)和G-IDS的性能,整個訓練數據集分成五部分。作者取20%、40%、60%、80%和100%的訓練數據來觀察隨著數據集增長,GAN的貢獻。 1) **標籤級別評估:** 首先,我們在沒有GAN輔助的情況下訓練S-IDS模型,這在某些特定標籤的預測中效果良好。然而,由於對於這些特定標籤的訓練樣本數量不足,S-IDS在準確預測一些類別上存在困難。 如圖3(a)所示,在使用20%的數據作為訓練數據時,S-IDS對於標籤5的F1分數約為0.70,而隨著訓練數據集的增長,這一分數逐漸上升到0.78。然而,使用GAN生成數據和原始數據一起訓練G-IDS可以大幅提升其性能。如圖所示,G-IDS在使用20%的數據作為訓練數據時,F1分數達到0.90,並在40%時達到0.96。從圖中可以明顯看出,G-IDS在攻擊檢測中的表現遠優於S-IDS。至於G-IDS在60%的數據時F1分數的下降是因為GAN以隨機噪聲作為輸入。 類似的改進也在標籤6和9中觀察到,分別顯示在圖3(b)和圖3(c)中。雖然大多數標籤的預測都有所改善,但我們僅以這三個標籤作為示例。   2) **整體評估:** 使用宏F1分數作為度量指標,以更好地反映模型在不同標籤上的性能。 圖3(d)顯示了S-IDS和G-IDS在不同訓練數據大小下對相同測試數據的宏F1分數。隨著訓練數據從20%增加到100%,S-IDS的宏F1分數從0.82提高到0.87。另一方面,由於在訓練中也考慮了GAN生成的合成數據,G-IDS的性能提高了約4%。對於完整的訓練數據集,S-IDS的最大宏F1分數為0.87,而G-IDS則至少能達到0.91。 表III總結了S-IDS和G-IDS在使用40%原始數據訓練時的性能對比。前面三列顯示了S-IDS在每個類別上的性能指標。如果任何類別的F1分數低於我們設定的閾值(此例中為0.98),控制器會要求數據合成模塊為該特定類別生成更多合成數據,以提高IDS的性能。  最初,S-IDS 在標籤 2、5、6 和 9 上的 F1 分數分別為 0.85、0.71、0.55 和 0.33。這些標籤被視為弱標籤,並被送到數據合成模塊 (DSM) 生成更多的訓練樣本。GAN 會針對這些標籤進行訓練,然後為每個標籤生成 25% 的新樣本。一旦控制器驗證這些新生成的合成樣本,它們會被添加到現有的混合數據集中。更新後的混合數據集會用來重新訓練 IDS,整個過程會持續進行。 表 III 的第二部分顯示了 G-IDS 在混合數據集上的性能。從結果中,我們可以看到大多數類別的檢測率都有所提升。具體來說,標籤 2、5、6 和 9 的 F1 分數分別提高至 0.93、0.96、0.68 和 0.41。儘管 GAN 天然存在生成噪聲或意外數據的不可預測性,這些數據可能與其他標籤的分佈重疊,但控制器模塊會拒絕這類不良數據,保持 G-IDS 的性能持續改進。 ### B. 訓練穩定性改進的評估 除了提高對不同攻擊的最終檢測率外,GAN 還增強了 IDS 訓練過程的穩定性。圖 4 針對四個隨機目標,顯示了前 100 個時期模型在訓練過程中的性能。  從圖中可以清楚地看出,S-IDS 在訓練模型和使 F1 分數達到最終值的過程中需要更多的訓練時期。對於 S-IDS,大多數標籤需要大約 50 到 100 個時期或更多才能穩定下來。另一方面,G-IDS 在訓練穩定性方面表現良好。幾乎所有的目標都在大約 25 個時期內達到穩定。因此,G-IDS 的訓練過程比 S-IDS 更加穩定。由於 GAN 生成的樣本填補了數據分佈中的空白,IDS 更容易學習訓練數據的分佈並達到穩定。 總結來說,G-IDS 通過平衡不平衡數據集以及生成缺失數據來提高性能。 ## CONCLUSION AND FUTURE WORK 在不平衡數據集或在數據稀少的嶄新CPS領域中,G-IDS框架即使在最初僅用少量原始數據訓練的情況下,能比獨立的IDS更準確地預測。然而G-IDS框架的集中式、計算密集型和耗時性質需要進一步的研究。 在未來的工作中,作者計劃專注於創建一個動態、高效且輕量級的去中心化算法,將其實現在IoT領域的邊緣設備上。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up