倪嘉翼 陳 偉,2 童家鋮 李 頻
1(南京郵電大學計算機學院、軟件學院、網絡空間安全學院 南京 210023) 2(江蘇省大數據安全與智能處理重點實驗室 南京 210023)
隨著互聯網的普及,網絡攻擊事件也越來越頻繁.近年來,中國遭受了一系列大規模網絡攻擊,包括DDoS攻擊、APT(advanced persistent threat)攻擊等.黑客、病毒、木馬、僵尸網絡等威脅已經成為常態,針對個人和企業的攻擊也越來越猖獗.
近年來,基于機器學習的異常流量檢測方法被大量提出[1-2],在實驗中證明了各自的有效性.可將這些方法分為基于有監督學習的機器學習方法和基于無監督學習的機器學習方法2種.基于監督學習的異常流量檢測方法在實際應用中,由于難以獲取大量的標記數據,應用范圍受到一定的限制,且無法檢測未知攻擊.基于無監督學習的機器學習方法對良性的流量進行特征學習,現有的方法主要有基于聚類的方法、基于自動編碼器的方法等.
但是部署到實際生產環境中時存在諸多問題.正常流量的特征在特征空間的分布會隨著時間不斷發生變化,每次訓練后的模型在一段時間后就不再適用.對抗攻擊也是檢測模型效果降低的隱患.這需要一種方法不斷更新模型以保證模型在現實網絡中的可用性.大部分機器學習方法內部運算復雜,無法做到實時檢測,需要一種高效的特征提取方法,在較小的計算開銷下提取有效的特征.
針對以上問題,本文提出了一種基于自適應集成學習的異常流量檢測方法.該方法通過一系列數學變換提取頻域特征;通過集成無監督學習模型進行分類檢測;可根據特征數據塊的準確性和穩定性,對集成無監督學習模型進行子分類器的更新.
文獻[3]提出了一種基于熵聚類的粒度分類器,它可以看作是一種基于熵的支持函數機,并提出了一種基于對抗的遺傳算法來優化粒分類器的設計參數.文獻[4]通過基于未修改的商用現成SDN交換機的自適應相關分析檢測和抑制DDoS攻擊.通過識別可疑流中的攻擊特征準確檢測攻擊,并通過自適應關聯分析定位攻擊者(或受害者)抑制攻擊流量.此外,文獻[5-7]使用卷積神經網絡等深度學習方法提取特征用于入侵檢測.
監督機器學習方法不能檢測出未知攻擊,這在網絡環境復雜的今天顯然不能滿足需求,因此,無監督學習的異常流量檢測方法相繼問世.
Zong等人[8]提出了一種用于無監督異常檢測的深度自動編碼高斯混合模型,該模型利用深度自動編碼器為每個輸入數據點生成低維表示和重構誤差,并將其進一步輸入高斯混合模型.Callegari等人[9]提出了2種基于直方圖的異常檢測方法,它們對不同的流量特征進行分析,使用歐幾里得距離和熵測量異常流量與正常行為的偏差.
無監督學習可以檢測模型沒有見過的未知惡意流量,然而對于正常流量進行建??梢詫W習到的特征有限.所以需要一種優異的特征提取方法使得普通機器學習模型可以進行高精確率的異常流量檢測.Fu等人[10]提出了一種實時的基于機器學習的惡意流量檢測系統Whisper,該系統利用頻域特征實現高精度和高吞吐量.利用頻域特征表示的序列信息減少信息損失,保證了較高的檢測精度,同時約束特征的尺度,實現較高的檢測吞吐量.
基于機器學習的入侵檢測方法的特點是一旦訓練結束,模型就會停止學習新的特征分布,在真實情況下,網絡環境時刻都在發生變化,自適應集成學習的方法應運而生.
Gao等人[11]提出了一種自適應投票算法,通過調整訓練數據的比例和設置多個決策樹構建一種多樹算法.Farid等人[12]提出一種方法實現實時的數據流分類,該方法使用傳統的數據挖掘分類器(帶有聚類的決策樹),并進行自動更新表示數據流中最新的概念.Wang[13]提出了一種名為ENIDrift的快速自適應集成系統,用于處理實際漂移下的網絡入侵檢測.它使用基于Word2Vec的增量特征提取方法iP2V提取流量特征,使用一種評估方法G-idx評估當前的流量是否可靠并進行子分類器更新,在多種數據集上取得了較好的效果.
圖1示出本文提出的基于自適應集成學習的異常流量檢測方法的基本結構,主要分為4個模塊:模塊A為時域特征提取;模塊B為頻域分析;模塊C為集成無監督學習;模塊D為自適應子分類器更新.

圖1 模型基本結構
從初始的流量文件中,提取每個數據包的關鍵特征(其中m為特征數量,n為數據包數量):
將特征空間編碼,得到1維時域特征:
D=Svb=
以固定的大小C將時域特征序列分割成等大序列組:

將特征序列組作為輸入單位進行離散傅里葉變換:

通過歐拉公式得到其實部和虛部并取模:
取每組結果的前半部分將結果轉為實數:
為了防止有數字過大導致在訓練中浮點上溢,對A作對數變換(其中R為常數):
本文融合多個主成分分析模型,每個子分類器從頻域分析模塊獲取特征數據后獨立計算該數據的得分,判斷數據對應的流量塊是否為惡意流量.每個子分類器都被分配1個權重,所有子分類器輸出的檢測結果加權求和得到最終的預測結果.
2.5.1 評估數據塊
本文兼顧準確性和穩定性的波動,提出了一種評估數據塊的指標:

算法1.評估指標生成算法.
輸入:測試數據集Dte、抽樣評估次數S、子分類器總數T、采樣大小K、集成子分類器數量P、超參數μ、集成分類器C.
fordinDtedo
fort←1 toTdo
rt←pred(Ct(d));
end for
fors←1 toSdo
T′←從C中選擇P個分類器;
end for
εi←mean(es);
end for
2.5.2 子分類器更新
檢測未通過時,子分類器更新模塊繼續等待滿足條件的數據.否則子分類器更新模塊使用當前數據集對子分類器進行更新.算法2為子分類器更新的機制:
算法2.子分類器更新算法.
輸入:數據流st、訓練集大小下限Qmin、訓練集大小上限Qmax、測試數據的大小q;
輸出:預測結果y.
Dtr,Dte,C,w←?
while notsis ? do
s←從st中獲取批量數據;
l←FreDomainAnalysis(s);
Dte←Dte∪l;
ifQmin=len(Dte) then
Dtr←Dte;
else ifQmin Dtr←Dte; else C,w←UpdateSubClassifier(C,w,Dtr); Dtr←從Dte中選擇q個樣本; Dte←?; end if else iflen(Dte)≥Qmax Dtr,Dte,C,w←?; end if end while Dte和Dtr分別為測試數據集和訓練數據集,每個子分類器權重乘以其當前的準確率生成新的權重,權重低于某個閾值的子分類器會被刪除,新的子分類器在當前訓練集的采樣樣本上訓練生成. 實驗所用的數據集有CIC-IDS2018[14]和RWDIDS[13],在CIC-IDS2018數據集上驗證本文的異常檢測方法在異常流量檢測問題上的準確性,在RWDIDS數據集上驗證了本文的自適應子分類器更新方法的準確性和魯棒性. 本文在CIC-IDS2018上選用使用不同工具產生的DDoS,DoS,Botnet,Brute Force攻擊共10類惡意流量進行測試. RWDIDS用于評估入侵檢測系統在真實場景下的魯棒性.本文使用重度概念漂移、對抗攻擊、數據污染3部分流量數據評估模型面對嚴重情況時的表現. 為了充分評估本文方法的有效性、魯棒性和穩定性,在表1和圖2中設置了5個方法和本文的方法進行對比評估. 表1 各方法在IDS2018中各類攻擊下的檢測結果 圖2 各方法在RWDIDS數據集上的檢測準確率 1) Kitsune.使用自動編碼器以無監督的方式區分正常和異常流量模式并學習檢測本地網絡上的攻擊. 2) Kitsune+.Kitsune每間隔一段固定時間重新進行訓練. 3) Whisper+.用數學變換提取流量的頻域特征表示的序列信息,用一個輕量的無監督學習方法對流量進行分類. 4) Whisper.讓Whisper每間隔一段固定時間重新進行訓練. 5) ENIdrift.利用基于網絡分組字段的增量特征提取方法iP2V提取流量的包級特征,改良ACDWM算法動態更新分類器. 本文在CIC-IDS2018上跨度1周的流量測試各個方法在日常情況下的檢測準確度和面對漂移的適應能力.表1示出本文方法和所有方法的檢測指標: 注:粗體為各個指標上最好的結果. 本文方法在絕大部分攻擊的檢測下各類指標都是最佳,對所有攻擊的召回率都達到94%以上.本文將召回率低于0.8定義為不能對該類攻擊進行有效的檢測,并把相關的數值標注為紅色,表1顯示,除了本文的方法,其他方法都存在對某些攻擊無法有效檢測的情況. 為了評估本文方法面對復雜情況和機器學習攻擊時是否可以保持魯棒性和高準確率,在RWDIDS中對抗攻擊、數據污染、重度漂移3類攻擊流量上進行了評估,結果如圖2所示: 圖2顯示,有自適應集成學習模塊的方法相對于單一的異常檢測算法在極端的情況下具有明顯優勢,而本文方法在穩定性和檢測準確率上均優于自適應集成檢測方法ENIdrift. 本文提出了一種基于自適應集成學習的異常流量檢測方法.使用離散傅里葉變換提取流量的頻域特征,使用一種基于穩定性和準確性波動的評估指標動態評估當前流量特征的可靠性,并使用評估通過的特征數據塊生成新的子分類器. 實驗結果表明,日常概念漂移的情況下本文方法的召回率、F1值和精確率在大部分檢測中都是第1名.面對嚴重情況時,本文方法可以很好的適應,并且在檢測準確率上也領先其他方法.3 實驗評估
3.1 實驗設置
3.2 實驗設置


3.3 實驗結果
4 結 語