收稿日期:2021-11-04;修回日期:2021-12-24" 基金項目:國家重點研發計劃資助項目(2018YFA0701604)
作者簡介:沈琦(1997-),男,新疆奎屯人,碩士,主要研究方向為網絡安全;涂哲(1994-),男,博士,主要研究方向為網絡安全、智能通信;李坤(1997-),男,博士,主要研究方向為網絡安全、智能通信;秦雅娟(1963-),女,教授,博士,主要研究方向為移動通信、網絡安全;周華春(1965-)(通信作者),男,教授,博士,主要研究方向為智能通信、移動互聯網、網絡安全與衛星網絡(hchzhou@bjtu.edu.cn).
摘 要:針對現有的僵尸網絡研究工作所檢測的僵尸網絡生命周期的階段較為單一的問題,提出基于集成學習的僵尸網絡在線檢測方法。首先,細粒度地標記僵尸網絡多個階段的流量,生成僵尸網絡數據集;其次,結合多種特征選擇算法生成包含23個特征的重要特征集和包含28個特征的次重要特征集,基于Stacking集成學習技術集成多種深度學習模型,并針對不同的初級分類器提供不同的輸入特征集,得到僵尸網絡在線檢測模型;最后,將僵尸網絡在線檢測模型部署在網絡入口處在線檢測多種僵尸網絡。實驗表明,所提基于集成學習的僵尸網絡在線檢測方法能夠有效地檢測出多個階段的僵尸網絡流量,惡意流量檢測率可達96.47%。
關鍵詞:僵尸網絡;集成學習;在線檢測;生命周期
中圖分類號:TP393"" 文獻標志碼:A"" 文章編號:1001-3695(2022)06-042-1845-07
doi:10.19734/j.issn.1001-3695.2021.11.0599
Online botnet detection method based on ensemble learning
Shen Qi,Tu Zhe,Li Kun,Qin Yajuan,Zhou Huachun
(School of Electronic amp; Information Engineering,Beijing Jiaotong University,Beijing 100044,China)
Abstract:To solve the problem that existing botnet detections targeted a single phase of the botnet lifecycle,this paper proposed an online botnet detection method based on ensemble learning.Firstly,this paper fine-grained labeled the traffic of multiple phases of botnet lifecycle to generate a botnet dataset.Secondly,this paper combined multiple feature selection algorithms to generate a significant feature set containing 23 features and a less significant feature set containing 28 features.It integrated multiple deep learning models based on stacking ensemble learning and provided different input feature sets for different primary classifiers to obtain a botnet online detection model.Finally,this paper deployed the botnet online detection model to detect multiple botnets online at the network entrance.Experiment shows that the proposed botnet online detection method based on ensemble learning in this paper can effectively detect multiple stages of botnet traffic,and the malicious traffic detection rate can reach 96.47%.
Key words:botnet;ensemble learning;online detection;life cycle
0 引言
僵尸控制者通過僵尸網絡發動分布式拒絕服務攻擊[1]、竊取用戶信息和設備數據等大量的惡意活動,已經成為網絡基礎設施面臨的最嚴重威脅之一。僵尸網絡通過協議漏洞、暴力破解等多重手段控制僵尸主機,并在命令和控制(Camp;C)服務器和僵尸主機之間形成一對多的控制網絡。
僵尸網絡的生命周期總共分為初始感染階段、二次注入階段、連接階段、惡意活動階段和更新維護階段五個階段。惡意活動階段主要是僵尸主機發動分布式拒絕服務攻擊、竊取用戶信息和設備數據產生的僵尸網絡流量;其他階段的僵尸網絡流量主要由Camp;C服務器與僵尸主機之間的雙向流量組成。Camp;C服務器與僵尸主機之間的通信通道也稱為Camp;C通道,采用的通信協議有Internet Relay Chat(IRC)、HTTP、Telnet等。然而現有的僵尸網絡檢測工作所針對的僵尸網絡生命周期的階段較為單一[2],即使單一階段的僵尸網絡流量被檢測出來,僵尸控制者仍有機會重新組建僵尸網絡。因此,細粒度檢測多個階段的僵尸網絡流量是一個關鍵性問題。
現有針對僵尸網絡檢測方面的研究可大致分為基于統計的檢測方法和基于機器學習的檢測方法兩種。傳統的機器學習檢測方法相較于基于統計的方法具有更低的漏報率和誤報率[3],但是依然具有以下缺點:主要針對離線檢測流量,缺乏真實流量下的驗證;所使用的機器學習方法較為單一,針對僵尸網絡的檢測粒度較差。因此,合理地混合多種機器學習方法的在線檢測是一個關鍵性問題。本文采用集成學習來混合多種機器學習算法。集成學習通過組合多種弱分類器,將不同學習器對于不同特征的學習能力有效地結合起來,得到一個強學習器,從而提升檢測方法的檢測性能。
本文提出了一種基于集成學習的僵尸網絡在線檢測方法。首先獲取網絡中的正常流量和僵尸網絡生命周期多個階段的流量,基于五元組信息將網絡數據包聚合成雙向流;其次根據僵尸網絡生命周期多個階段的攻擊特性,分別提取時間、數據包包頭、數據包有效載荷和流屬性的統計特征;然后,結合多種特征選擇算法篩選出典型的僵尸網絡特征,并基于集成學習技術針對不同的初級學習器提供不同的輸入特征訓練多分類僵尸網絡在線檢測模型;最后,將僵尸網絡在線檢測模型部署在網絡入口處,在線對多種僵尸網絡進行檢測。該系統能夠有效地、細粒度地在線檢測出僵尸網絡多個階段的流量。
本文的主要貢獻如下:
a)實驗模擬了五種僵尸網絡Ares、BYOB、IRC-botnet、Zeus、Mirai,并細粒度地標記了多個階段的僵尸網絡流量,生成僵尸網絡數據集。
b)根據僵尸網絡生命周期多個階段的攻擊特性,結合多種特征選擇算法,生成包含23個特征的重要特征集和包含28個特征的次重要特征集。
c)提出了一種基于集成學習的僵尸網絡在線檢測方法,并對離線訓練和在線檢測進行性能評估。實驗結果表明,相較于使用單一的深度學習模型,其具有更好的檢測性能,能夠有效地檢測多個階段的僵尸網絡流量。
1 研究現狀
目前,僵尸網絡檢測工作按照所針對的僵尸網絡生命周期不同的階段來劃分,主要有以下兩類:a)針對初始感染階段的檢測工作[2],文獻[2]針對初始感染階段的流量進行實時SSH檢測,從而在目標設備被感染之前檢測出攻擊者,防止受害者主機參與任何惡意活動;b)僵尸網絡檢測工作[3~8]旨在檢測僵尸網絡生命周期的中間階段,即連接階段/惡意活動階段,文獻[3~7]針對檢測連接階段和惡意活動階段的僵尸網絡流量,提出基于流的僵尸網絡流量行為分類方法,能在連接階段或者攻擊階段之前檢測出僵尸網絡流量。文獻[8]利用LSTM模型檢測出基于域名生成算法的僵尸主機和Camp;C服務器之間的流量。上述提及的僵尸網絡檢測工作[2~8]所針對的僵尸網絡生命周期的階段較為單一,無法檢測出具體的僵尸網絡或具體的生命周期階段。因此,即使單一階段的僵尸網絡流量被檢測出來,僵尸控制者仍有機會重新組建僵尸網絡。
從機器學習的理論來看,提升檢測方法的性能存在特征提取和模型優化兩個關鍵方面。現有的僵尸網絡檢測工作在特征提取方面有如下代表性的工作[3,5]。文獻[3]通過深度學習模型從大量流量中自動學習有用的特征,從而使檢測方法具有較好的檢測性能,但其輸入特征是一個完整的特征集,處理高維數據需要巨大的計算資源和容量存儲,并不能完全適應在線檢測的性能要求。文獻[5]通過特征選擇的方法從而得到典型的僵尸網絡特征集,但是單一的特征選擇算法并不能充分挖掘數據特征和預測結果的相關性,可能會導致特征表達能力不足,影響僵尸網絡的在線檢測性能。現有網絡入侵檢測工作在模型優化方面有如下代表性的工作[6,7,9,10]。文獻[6]提出一種混合的機器學習模型,并基于最大投票方法檢測攻擊。文獻[7]通過結合基于流、基于圖的檢測方法來彌補單個檢測器無法檢測某些僵尸網絡的不足,其中,基于流的檢測方法中由基于相似度的檢測器和基于穩定性的檢測器加權線性結合起來,大大降低了假陽性并提高了檢測性能,但是加權平均方法/最大投票方法與Stacking集成學習方法相比,可能會帶來更大的誤差。文獻[9]提出了一種由復合多層感知器組成的DDoS檢測框架,從而檢測出具體的DDoS類別。文獻[10]通過堆疊多層循環神經網絡模型來檢測網絡攻擊,但是網絡入侵檢測工作混合的分類器都是同一種分類器,在檢測多階段僵尸網絡流量時會存在泛化能力較弱的問題。
針對現有的僵尸網絡研究工作所檢測的僵尸網絡生命周期階段較為單一的問題,本文以僵尸主機是否進行惡意活動作為依據,將僵尸網絡生命周期分為等待和惡意活動階段,其中等待階段包含了初始感染、二次注入、連接和更新維護階段。本文提出一種基于集成學習的僵尸網絡在線檢測方法。與現有僵尸網絡檢測工作相比,本文對多個階段的僵尸網絡流量進行細粒度的標記,并分別提取雙向流中的時間、數據包包頭、數據包有效載荷和流屬性的統計特征,形成了僵尸網絡數據集;通過結合多種特征選擇算法篩選出典型的僵尸網絡特征,有效地提升了特征表達能力,并基于集成學習技術針對不同的初級學習器提供不同的特征集,從而得到僵尸網絡在線檢測模型;本文所提僵尸網絡在線檢測模型能夠部署在網絡入口處,細粒度地在線檢測出僵尸網絡多個階段的流量。
2 基于集成學習的僵尸網絡在線檢測方法
基于集成學習的多分類僵尸網絡檢測方法分為五個模塊,如圖1所示。流量生成模塊通過ESXi配置的虛擬機集群模擬五種僵尸網絡Ares、BYOB、IRC-botnet、Zeus、Mirai,進而生成等待和惡意活動階段的僵尸網絡流量,為數據處理模塊提供原始網絡數據包捕獲(PCAP)文件,為在線檢測模塊提供流量采集單元接口;數據處理模塊接收數據處理模塊的PCAP文件,基于數據包中的五元組信息聚合成流,生成雙向流特征,為數據分析模塊/在線檢測模塊提供僵尸網絡數據集/待檢測樣本;數據分析模塊通過結合多種特征工程算法篩選出典型的僵尸網絡特征,為離線訓練和在線檢測模塊提供重要的特征集和次重要特征集;離線訓練模塊通過集成學習技術集成多種深度學習模型訓練僵尸網絡檢測模型,為在線檢測模塊提供僵尸網絡在線檢測模型;在線檢測模塊將訓練好的僵尸網絡檢測模型部署在網絡入口處對待檢測樣本進行在線檢測。
2.1 流量生成模塊
流量生成模塊用于提供原始的PCAP文件,輸入數據處理模塊,從而得到僵尸網絡數據集。基于文獻[11]定義的5G場景和真實用戶的流量生成模型,本文模擬了5G場景,搭建流量生成模型并重放CIC-IDS2017[12]中的正常流量得到本文的正常(Benign)流量。本文的等待階段和惡意活動階段的僵尸網絡流量是通過僵尸網絡攻擊工具得到的。因此本文得到的數據集能夠反映真實環境的流量情況。
實驗床部署在ESXi配置的集群中,所搭建的網絡拓撲如圖2所示,控制和命令服務器用于維護與僵尸主機之間的連接,并代理僵尸控制者的命令;僵尸主機會根據控制命令服務器,執行惡意活動,如信息竊取(Information Theft)、分布式拒絕服務攻擊(DDoS)等。
實驗涉及五種僵尸網絡,包括Ares、BYOB、IRC-botnet、Zeus、Mirai,每種僵尸網絡都存在等待階段和惡意活動階段的僵尸網絡流量。表1、2列出了本實驗所涉及的五種僵尸網絡的等待和惡意活動階段場景。
Ares僵尸網絡,僵尸主機會基于HTTP協議周期性地問詢命令和控制服務器,并在惡意活動階段執行鍵盤記錄、文件下載等惡意活動。BYOB僵尸網絡,因為其平臺無關的特性,僵尸主機在初始感染階段會基于HTTP協議從命令和控制服務器中下載執行惡意活動所需的全部庫文件,同時維持長連接狀態,并在惡意活動階段執行鍵盤記錄、屏幕截屏、challenge collapsar(CC)等惡意活動。IRC-botnet僵尸網絡,命令和控制服務器會基于IRC協議周期性地向僵尸主機發送心跳包,并在惡意活動階段發動NTP Flood、Slow HTTP DDoS等惡意活動。Zeus僵尸網絡,僵尸主機基于HTTP協議周期性地問詢命令和控制服務器并從命令和控制服務器下載惡意文件,在惡意活動階段執行竄改網頁、竊取用戶信息、屏幕截屏等惡意活動。Mirai僵尸網絡,僵尸主機會基于Telnet協議周期性地問詢控制和命令服務器,并在惡意活動階段發動SYN、ACK、UDP等DDoS攻擊。
2.2 數據處理模塊
數據處理模塊通過分析正常流量行為和僵尸網絡生命周期多個階段的攻擊特性,利用CICFlowMeter工具(https://github.com/ahlashkari/CICFlowMeter)基于五元組信息[源IP地址,目的IP地址,源端口號,目的端口號,協議]和流中的第一個數據包將數據包聚合成雙向流,并從雙向流中提取包含時間、數據包包頭、數據包有效載荷、流屬性和標志位的統計信息特征,生成僵尸網絡數據集。
考慮到僵尸控制者可以動態分配僵尸網絡流的五元組信息和時間戳信息,而使用這些唯一的特征可能會降低檢測系統的泛化能力,因此流的五元組信息不會作為模型訓練的特征。
2.3 數據分析模塊
2.3.1 僵尸網絡攻擊分析
僵尸網絡通信和惡意活動的關鍵步驟如圖3所示。僵尸控制者會通過各種途徑感染僵尸主機;被感染的僵尸主機會下載必要的二進制文件和周期性地問詢Camp;C服務器,以保持僵尸控制者對于僵尸主機的絕對控制;在僵尸網絡中的僵尸主機達到一定的規模時,僵尸統治者會通過Camp;C服務器向僵尸主機下達指令,僵尸主機在接收到攻擊指令后會執行惡意活動,如信息竊取、分布式拒絕服務攻擊;僵尸主機會在執行完惡意活動之后向Camp;C服務器匯報本次攻擊情況;僵尸主機會定期地更新惡意二進制文件。
本文以僵尸主機是否進行惡意活動作為依據,將僵尸網絡生命周期分為等待階段和惡意活動階段。處于等待階段的僵尸網絡流量主要是由僵尸主機周期性地問詢Camp;C服務器以維持長連接狀態或者下載必需的惡意二進制文件產生的,是僵尸主機和Camp;C服務之間的雙向流量,如步驟a)~c)、f)、g)。因此處于等待階段的典型僵尸網絡特征有Flow Duration、FWD Init Win Bytes、Bwd Packet Length Min、Fwd Packet Length Max、Subflow Bwd Bytes、Fwd Header Length、正向/反向流的時間統計信息和標志位信息。
處于惡意活動階段的僵尸網絡流量,主要是由僵尸主機發動惡意活動(DDoS、Information Theft)產生的,是僵尸主機和受害者之間的單向/雙向流量,如步驟d)e)。本文所涉及的此階段的僵尸網絡流量,主要分為Information Theft與DDoS。Information Thef是僵尸主機利用系統漏洞進行鍵盤記錄、竊取用戶信息、屏幕截屏非法活動。DDoS指CC攻擊、Slow HTTP DDoS、NTP Flood、SYN Flood、ACK Flood、UDP Flood。CC攻擊的攻擊原理是大量的僵尸主機針對目標Web服務器進行海量的HTTP request請求,來達到淹沒正常請求的目的。Slow HTTP DDoS是CC攻擊的變種,其攻擊原理是大量的僵尸主機通過匿名代理的方式偽裝正常用戶的HTTP請求來達到消耗服務器資源的目的。NTP Flood 的攻擊原理是攻擊者以受害者的IP地址作為請求服務器的IP地址重復向NTP服務器發送 “get monlist”請求,導致NTP服務器向受害者的IP地址發送響應;SYN Flood的攻擊原理是受害者服務器因為不斷地接收大量SYN請求而維持了半連接狀態,導致端口無法正常使用。ACK Flood的攻擊原理是受害者服務器需要不斷地向大量不合法的帶有ACK標志位的數據包回應RST數據包,導致正常數據包無法得到請求。UDP Flood的攻擊原理是根據UDP的無連接特性,使得網絡上充斥著大量的數據包或者受害者需要接收處理大量數據包,而導致的網絡資源/服務器資源耗盡。因此,處于惡意活動階段的典型僵尸網絡特征有Packet Length Mean/Min、Fwd Packet Length Mean、Flow IAT Max、Down/Up Ratio、Fwd Packets/s、Subflow Bwd Bytes、ACK/SYN標志位信息。
2.3.2 特征工程
特征選擇已成為構建機器學習模型的重要一步[9]。大多數特征選擇算法的目標函數是損失函數,使用原則是:刪除的特征導致了模型預測性能下降,則該特征是重要的;刪除的特征沒有導致模型的預測性能變化,則該特征是不重要的[13]。因為目標函數是損失函數,所以特征與預測標簽的相關性不能僅僅依靠特征添加/刪除之后模型性能的變化來判斷。此外,單一的特征工程算法并不能充分挖掘數據特征和預測結果的相關性,導致特征表達能力不足,影響了僵尸網絡的在線檢測性能。
通過結合多種特征選擇算法,并匹配篩選策略從僵尸網絡特征集中篩選出典型的僵尸網絡特征。所使用的特征選擇算法有隨機森林、極端樹、秩相關系數、Boruta特征選擇算法[13]。若被三種或三種以上的特征選擇算法選擇的特征是重要的特征,共計N個,形成重要特征集[F0,…,FN] ;僅被兩種特征選擇算法選擇的特征是次重要的特征,共計M個,形成次重要特征集[F0,…,FM];其余特征形成非重要特征集。如圖4所示,特征重要性圖展示了76個特征被四種特征選擇算法選中的次數。本文根據特征工程生成包含23個特征的重要特征集和包含28個特征的次重要特征集。
此外,在僵尸網絡通信流量一般都遵循周期性的規律[4~6],本文在網絡入口處周期性地收集網絡流量,時間窗口將是影響僵尸網絡檢測的一個關鍵特征。如果選擇了較小的時間窗口可能無法捕捉到完整的攻擊流量,因為可能有些特征需要在很長的時間才會顯現出來;如果選擇了較大的時間窗口,這就會使得檢測模型需要很久的時間才能對網絡數據進行檢測,影響了在線檢測的性能。因此時間窗口的選擇對于在線檢測是一個極具挑戰性的工作。
2.4 離線訓練模塊
離線訓練模塊用于利用Stacking集成學習算法集成多種神經網絡模型,并針對不同的初級學習器提供不同的輸入特征集,得到多分類僵尸網絡檢測模型。Stacking集成學習算法的訓練過程分為兩個階段:第一階段所使用的學習器叫做初級分類器,每個初級分類器會使用現有的數據集A進行訓練,然后將每個初級分類器的預測結果整合成一個新的數據集B,即第j個初級分類器對第i個訓練樣本的預測值(概率值或標簽)將作為新的訓練集B中第i個樣本的第j個特征值;第二階段所使用的學習器叫做元分類器,將數據集B輸入元分類器,并使用第一階段相同的標簽值進行訓練,從而得到一個強分類器。離線訓練模塊包括特征標準化單元和模型訓練單元,如圖5所示。
特征標準化單元用于對包含典型僵尸網絡特征的數據集進行標準化處理,得到標準化的數據特征。本文選擇Z-score方法對數據特征進行標準化:
Z=(Xi-μ)/σ(1)
其中:Z為經過轉換后的Z-score;Xi為當前元素;μ為均值;σ為標準差。
為了更好地提高模型的檢測能力,針對不同集成學習中的初級分類器提供不同的輸入特征集(特征集1),CNN1的輸入特征集為[F0,…,FN,Fi,Fj,…,Fk],DNN的輸入特征集為[F0,…,FN,Fm,Fn,…,Fo],CNN2的輸入特征集為[F0,…,FN,Fx,Fy,…,Fz]。每個初級分類器的輸入特征集大小為N+1/2M,[F0,…,FN]為N個特征組成的重要特征集(特征集3),[Fi,Fj,…,Fk]為次重要特征集(特征集4)的前14個特征,[Fm,Fn,…,Fo]為次重要特征集的中間14個特征,[Fx,Fy,…,Fz]為次重要特征集的后14個特征。
模型訓練單元用于通過使用Stacking集成學習算法[14]集成多種神經網絡模型,并使用10折交叉驗證方法離線訓練多種神經網絡模型,得到多分類僵尸網絡檢測模型。所使用的初級學習器包括人工神經網絡、卷積神經網絡和深度神經網絡,元分類器使用隨機森林。神經網絡DNN、CNN1、CNN2都是由Keras 應用程序編程接口順序建模而成,每個神經網絡的模型結構如下:DNN由一個輸入層、三個隱藏層、一個dropout層和一個輸出層組成;CNN1由一層輸入層、兩個卷積層、一個池化層、一個dropout層、一個flatten層、一個隱藏層和一個輸出層組成;CNN2由一層輸入層、兩個卷積層、一個池化層、一個dropout層、兩個卷積層、一個池化層、一個flatten層、一個隱藏層和一個輸出層組成。
2.5 在線檢測模塊
在線檢測模塊部署在網絡入口處,通過網絡流量收集工具實時周期性地收集流量數據,進行在線檢測。在線檢測模塊包括流量采集單元和在線檢測單元。其中,流量采集單元用于在網絡入口處通過網絡流量收集工具Tcpdump按照時間窗口周期性地收集原始流量數據,并通過CICFlowMeter生成在線檢測數據集,提取數據分析模塊篩選的典型僵尸網絡特征形成待檢測樣本。
在線檢測單元使用離線訓練模塊訓練好的在線檢測模型對網絡流采集單元和數據分析模塊生成的待檢測樣本進行在線檢測,從而細粒度地檢測等待階段和惡意活動階段的僵尸網絡流量。
3 實驗評估和結果
圍繞評估基于集成學習的僵尸網絡檢測方法,本章介紹所生成的僵尸網絡數據集,并給出離線訓練模塊、在線檢測模塊和性能比較的結果分析。
3.1 數據集
基于2.1節的流量生成模塊,本文收集并細粒度地標記了等待和惡意活動階段的僵尸網絡流量以及模擬5G場景的正常流量。該數據集基于文獻[11]定義的5G場景和真實用戶的流量生成模型生成,能夠反映真實環境的流量情況,具有較好的普遍性。
等待階段的僵尸網絡流量分為Ares、BYOB、IRC-botnet、Zues、Mirai;惡意活動階段的僵尸網絡流量分為Information Theft、SYN Flood、ACK Flood、UDP Flood、Slow HTTP DDoS、CC、NTP Flood。于120 s時間窗口下所生成的僵尸網絡流量統計信息表如表3所示。
3.2 實驗結果分析
通過離線訓練、在線檢測結果和性能比較分析驗證所提出的基于集成學習的僵尸網絡在線檢測方法。
3.2.1 離線訓練
從機器學習的理論來看,提升檢測方法的性能存在模型優化和特征提取兩個關鍵方面,本節對比不同模型的模型訓練效果以及不同特征集的模型訓練效果。根據上述實驗分別得出適合本文的最佳模型和最佳特征集。實驗離線階段所使用的評估指標有準確率、精確率、召回率、F1分數。
a)在離線訓練階段中,實驗采用集成學習的機器學習模型進行模型的訓練。為了評估所提僵尸網絡檢測模型的性能,對以下幾種模型進行了訓練:
(a)模型1,只使用深度神經網絡DNN(2.4節的DNN);
(b)模型2,只使用卷積神經網絡CNN2(2.4節的CNN2);
(c)模型3,集成學習模型中的三個初級學習器均使用深度神經網絡DNN,元分類器使用隨機森林;
(d)模型4,集成學習模型中的三個初級學習器均使用卷積神經網絡CNN2,元分類器使用隨機森林;
(e)模型5,集成學習模型中的三個初級學習器分別使用卷積神經網絡CNN1(2.4節的CNN1)、深度神經網絡DNN、卷積神經網絡CNN2,元分類器使用隨機森林;
(f)模型6,集成學習模型中的三個初級學習器分別使用卷積神經網絡CNN1、深度神經網絡DNN、卷積神經網絡CNN2,元分類器使用決策樹模型。
為了更好地比較不同模型的多分類性能,將各種類的精確率、召回率、F1分數通過箱線圖的形式來進行對比,如圖6所示。箱線圖可以用來反映多組數據分布的中心位置和分布范圍,其高度在一定程度上反映了數據的波動情況,還可以直觀地觀察到數據分布中的異常值。從箱線圖中可以得出,模型1、2相較于其他模型性能較差;模型3~5相較于模型6分布更為集中,并且模型5在與模型3、4分布范圍一致的情況下,其各項指標的異常值都維持在一個較好的水平,因此模型5性能最優。綜上所述,使用集成學習技術擁有更好的檢測性能,此外,初級分類器之間的不相關性也能提升檢測效果,因此本文采用模型5作為離線訓練和在線檢測的最佳模型。
b)為了評估所提特征集對模型性能的影響,基于上文所選擇的模型5,對以下幾種特征集進行了訓練:
(a)特征集1,如2.4節所述的針對不同初級學習器提供不同的特征集;
(b)特征集2,全部的76個特征(不包含五元組信息和時間戳信息);
(c)特征集3,2.3節篩選出的23個特征組成的重要特征集;
(d)特征集4,2.3節篩選出的28個特征組成的次重要特征集。
訓練時間如表4所示,模型訓練結果如圖7所示。使用的全部特征集均不包含流的五元組信息[源IP地址,目的IP地址,源端口號,目的端口號,協議]。
特征集1作為模型的輸入具有最好的性能,其各項指標均接近99%,特征集4的性能最差,其準確率僅有96%。特征集2和3的模型效果最接近,均在98%以上,但特征集2的訓練時間開銷最大。特征集1相較于特征集2在精確率、F1分數指標上均有1%的優勢,其訓練開銷介于特征集3和2之間,由于離線訓練階段,訓練時間開銷相較于評估指標容忍度更高,所以特征集1作為模型的輸入具有最好的性能。綜上所述,合理地訓練特征集可以縮短訓練時間,同時構造出學習能力更強的機器學習模型,因此本文采用特征集1作為模型的最佳特征集。
3.2.2 在線檢測
基于3.2.1節離線訓練的模型5,并以特征集1作為模型的輸入,在一定時間窗口內于網絡入口處周期性地收集網絡流量數據,并進行僵尸網絡的在線預測。為了探究時間窗口對實驗結果的影響,實驗分別選擇了60 s、120 s、180 s的時間窗口進行在線檢測的性能評估,在線檢測的精確率、召回率、F1分數如表5所示。為了對比不同時間窗口下,在線檢測模型對等待階段和惡意活動階段的僵尸網絡流量的檢測性能,本文提出了惡意流量檢測率指標,其公式為
1n∑ni=1TPiNi(2)
其中:i表示等待階段和惡意活動階段的僵尸網絡流量類別;n表示僵尸網絡流量類別的總數目;TPi表示的是被正確檢測為僵尸網絡流量類別i的流量數目;Ni表示的是僵尸網絡流量類別i的總流量數目。惡意流量檢測率越高,在線檢測效果越好,不同時間窗口的惡意流量檢測率如表6所示。
從表5可得出,120 s的時間窗口相較60 s的時間窗口,針對Benign的精確率提升41%,針對等待階段的BYOB、Zeus、Mirai僵尸網絡流量的精確率分別提升75%、82%、86%,針對惡意活動階段的Slow HTTP DDoS僵尸網絡流量的精確率提升26%。針對等待階段的Ares、BYOB、Zeus、Mirai僵尸網絡流量的召回率分別提升34%、11%、45%、13%,針對惡意活動階段的Information Theft、CC僵尸網絡流量的召回率分別提升41%、25%。針對Benign流量的F1分數提升27%,針對等待階段的Ares、BYOB、Zeus、Mirai僵尸網絡流量的F1分數分別提升20%、66%、85%、77%,針對惡意活動階段的Information Theft、Slow HTTP DDoS、CC 僵尸網絡流量的F1分數分別提升26%、17%、14%。
進一步從表6可看出,時間窗口從60 s提升到120 s之后,檢測性能有明顯提升,惡意流量檢測率提升了12.08%,有助于在線檢測模型檢測僵尸網絡流量。使用180 s的時間窗口相較120 s的時間窗口對等待階段和惡意活動階段的僵尸網絡流量的檢測性能提升不是很明顯,并帶來了較大的時間開銷。因此本文基于在線檢測性能和時間開銷的考量,采用的是120 s的時間窗口檢測等待階段和惡意活動階段的僵尸網絡流量。
為了更好地觀察時間窗口設為120 s的等待階段和惡意活動階段的僵尸網絡流量的分類情況,繪制了在線檢測的混淆矩陣,如圖8所示。其中,等待階段的BYOB僵尸網絡流量的檢測效果較差,原因在于等待階段的BYOB和Ares僵尸網絡的攻擊特性較為相似,并且此階段的僵尸主機會不斷地從Camp;C服務器下載必要的庫文件,而此時的流量和CC攻擊的攻擊特性較為相似,所以導致了等待階段的BYOB僵尸網絡流量存在被誤判成等待階段的Ares僵尸網絡流量和惡意活動階段的CC流量。
由實驗結果得知,模型的在線檢測性能與時間窗口存在較大的相關性,使用120 s的時間窗口在檢測性能和時間開銷上具有最優的性能。本文提出的基于集成學習的僵尸網絡在線檢測方法,通過針對不同的初級學習器提供不同的輸入特征集,相較于使用單一的分類器,針對等待階段和惡意活動階段的僵尸網絡流量具有更高的檢測準確率、精確率、召回率和F1分數,能夠有效地提升僵尸網絡流量的惡意流量檢測率。
3.2.3 性能比較
本節將比較分析本文方法和其他僵尸網絡檢測方法[3,4,6]的性能。與BotCatcher[3]檢測性能的對比如表7所示,本文方法相較BotCatcher在Fβ指標上提升0.22%,在FPR指標上下降0.78%,即具有更低的誤報率和更高的Fβ。
與文獻[6]在Storm流量、Waledac和ISOT惡意流量的檢測性能比較如表9~12所示。從表9中可知,與BD-PSO-V[6]相比,本文方法在檢測Storm 流量上,召回率提升2.05%,FPR下降0.01%,F1分數提升4.8%,準確率僅與BD-PSO-V相差0.001%。從表10中可知,與BD-PSO-V相比,本文方法在檢測Waledac流量上,準確率指標上提升0.07%,召回率提升0.86%,F1分數提升2.75%。從表10中可知,與BD-PSO-V相比,本文方法在檢測ISOT惡意流量上,準確率提升0.23%,召回率提升1.09%,F1分數提升3.12%,FPR下降0.02%。從表11中可知,與BD-PSO-V相比,本文方法在檢測Bot-IoT流量上,召回率提升0.18%,F1分數提升0.23%,FPR提升0.06%,準確率僅下降0.01%。綜上所述,本文方法在現有僵尸網絡數據集[15~17]上,相較其他方法均具備較好的檢測性能,泛化能力較強。
4 結束語
本文提出一種基于集成學習的僵尸網絡在線檢測方法。首先細粒度地標記了多種僵尸網絡的等待階段和惡意活動階段的流量,通過實驗,使用特征分析模塊生成的重要特征集和次重要特征集,并在120 s的時間窗口下在線檢測等待階段和惡意活動階段的僵尸網絡流量,惡意流量檢測率可達96.47%,驗證了所提出的在線檢測方法能夠有效地檢測等待階段和惡意活動階段的僵尸網絡流量。
隨著5G網絡的不斷發展,其海量連接特性需要收集多網關的接入流量,與此同時帶來了數據孤島問題。聯邦學習作為實現隱私保護的一種解決方案,能夠有效解決數據孤島問題。因此,未來將圍繞聯邦學習開展僵尸網絡流量檢測工作。
參考文獻:
[1]Tu Zhe,Zhou Huachun,Li Kun,et al.An energy-efficient topology design and DDoS attacks mitigation for green software-defined satellite network[J].IEEE Access,2020,8:211434-211450.
[2]Garre J T M,Pérez M G,Ruiz-Martínez A.A novel machine learning-based approach for the detection of SSH botnet infection[J].Future Generation Computer Systems,2021,115:387-396.
[3]吳迪,方濱興,崔翔,等.BotCatcher:基于深度學習的僵尸網絡檢測系統[J].通信學報,2018,39(8):18-28.(Di Wu,Fang Bin-xing,Cui Xiang,et al.BotCatcher:botnet detection system based on deep learning[J].Journal on Communications,2018,39(8):18-28.)
[4]Zhao D,Traore I,Sayed B,et al.Botnet detection based on traffic behavior analysis and flow intervals[J].Computers amp; Security,2013,39:2-16.
[5]Alauthman M,Aslam N,Al-Kasassbeh M,et al.An efficient reinforcement learning-based botnet detection approach[J].Journal of Network and Computer Applications,2020,150:102479.
[6]Asadi M,Jamali M A J,Parsa S,et al.Detecting botnet by using particle swarm optimization algorithm based on voting system[J].Future Generation Computer Systems,2020,107:95-111.
[7]Wang Wei,Shang Yaoyao,He Yongzhong,et al.BotMark:automated botnet detection with hybrid analysis of flow-based and graph-based traffic behaviors[J].Information Sciences,2020,511:284-296.
[8]Vinayakumar R,Alazab M,Srinivasan S,et al.A visualized botnet detection system based deep learning for the internet of things networks of smart cities[J].IEEE Trans on Industry Applications,2020,56(4):4436-4456.
[9]Amaizu G C,Nwakanma C I,Bhardwaj S,et al.Composite and efficient DDoS attack detection framework for B5G networks[J].Computer Networks,2021,188:107871.
[10]Popoola S I,Adebisi B,Hammoudeh M,et al.Stacked recurrent neural network for botnet detection in smart homes[J].Computers amp; Electrical Engineering,2021,92:107039.
[11]Navarro-Ortiz J,Romero-Diaz P,Sendra S,et al.A survey on 5G usage scenarios and traffic models[J].IEEE Communications Surveys amp; Tutorials,2020,22(2):905-929.
[12]Sharafaldin I,Lashkari A H,Ghorbani A A.Toward generating a new intrusion detection dataset and intrusion traffic characterization[C]//Proc of the 4th International Conference on Information Systems Secu-rity and Privacy.2018:108-116.
[13]Kursa M B,Rudnicki W R.Feature selection with the Boruta package[J].Journal of Statistical Software,2010,36(11):1-13.
[14]Wolpert D H.Stacked generalization[J].Neural Networks,1992,5(2):241-259.
[15]Saad S,Traore I,Ghorbani A,et al.Detecting P2P botnets through network behavior analysis and machine learning[C]//Proc of the 9th Annual International Conference on Privacy,Security and Trust.Piscataway,NJ:IEEE Press,2011:174-180.
[16]García S,Grill M,Stiborek J,et al.An empirical comparison of botnet detection methods[J].Computers amp; Security,2014,45(9):100-123.
[17]Moustafa N.The BOT-IOT dataset[EB/OL].(2019).https://dx.doi.org/10.21227/r7v2-x988.