朱夢圓 陳卓 劉鵬飛 呂娜
(1. 空軍工程大學 信息與導航學院, 西安 710077; 2. 解放軍 94619 部隊, 六安 237000)
隨著無線傳感器網絡在民用和軍事領域日益廣泛的應用,其網絡安全問題漸趨突出,無線環(huán)境固有的特性使無線傳感器網絡的信息流量更易遭受假冒、竊取、偽造和篡改等攻擊[1]。 及時檢測隱藏于正常流量中的各種網絡攻擊,對安全、可靠的信息傳輸具有重要意義。
近年來,機器學習算法逐漸應用于入侵檢測并取得了較好的效果,傳統(tǒng)的機器學習方法大多針對地面有線網絡,多使用集中式學習方法,將流量數(shù)據匯總集中處理分析。 文獻[2]提出一種基于深度神經網絡和K 近鄰算法的集中式入侵檢測方法,在公共數(shù)據集上進行評估,具有較高檢測準確率。 文獻[3]提出基于極限學習機的分層入侵檢測方法,根據無線傳感器網絡的功能對節(jié)點進行聚類,提高了入侵檢測精度,并且降低了檢測時間,但是在網絡中攻擊流量占比很小,流量類別不均衡的情況下,算法的誤報率較高。 文獻[4]提出一種基于循環(huán)神經網絡算法的集中式入侵檢測算法,在軟件定義網絡(software defined network, SDN)環(huán)境中具有較好地入侵檢測能力。但上述集中式學習屬于傳統(tǒng)方法,難以適用于無線傳感器網絡。 對于無線傳感器網絡信道不穩(wěn)定的特征,集中式學習模式不僅會帶來帶寬資源緊張和網絡流量數(shù)據傳輸?shù)母邥r延、高損耗問題,而且在采集數(shù)據時易造成較高的通信成本和隱私泄露問題。
基于霧計算的分布式學習方法可以較好的解決這些問題[5]。 這種方法可以將計算任務卸載到網絡的霧計算節(jié)點上,如基站、小型服務器等設備,模型更靠近數(shù)據終端,能夠更快地進行檢測報警等響應。 但是由于無法監(jiān)管參與者在本地的訓練行為,分布式學習容易遭受噪聲數(shù)據、數(shù)據投毒、對抗樣本的威脅[6]。 在多種分布式學習解決方案中,最初用來解決數(shù)據孤島和數(shù)據隱私問題的聯(lián)合學習在入侵檢測領域展示出極大的優(yōu)勢[7]。 綜上所述,針對無線傳感器網絡中流量類別不均衡、集中式學習方法不適用、分布式學習易受攻擊的問題,本文提出一種新型分布式聯(lián)合入侵檢測算法Fed-XGB。 在3 個數(shù)據集上進行評估,結果顯示,本文模型相比于其他集中式模型和分布式模型具有較高的檢測分類性能,且通信成本較低。 同時,Fed-XGB 算法還能夠有效地檢測無線傳感器網絡所面臨的各種網絡威脅,如拒絕服務攻擊、偵察攻擊、黑洞攻擊等,在中毒攻擊和數(shù)據含有噪聲時依然具有較為穩(wěn)定的檢測性能。
霧計算作為新一代的分布式計算架構,將數(shù)據獲取、處理和傳輸分散在網絡終端設備,從而減少云端數(shù)據中心和終端設備間的交互次數(shù)和業(yè)務量,緩解鏈路帶寬和中心節(jié)點能耗壓力,縮短時延[8]。 近年來逐漸應用于入侵檢測領域,文獻[9]提出了一種基于改進卷積神經網絡(improved convolutional neural network, ICNN)的霧計算入侵檢測算法,使用KDD CUP99 數(shù)據集驗證了該算法的有效性,但算法在面對不均衡數(shù)據時檢測效果不理想。 文獻[10]提出了一個新的分層分布式入侵檢測系統(tǒng)(hierarchical distributed intrusion detection system, HD-IDS),可以基于霧計算模型來檢測網絡是否存在異常,收斂速度快但協(xié)同檢測方案效率低,誤報率高。
文獻[11]引入聯(lián)合學習算法并利用多個霧節(jié)點上的學習模型對全局模型進行優(yōu)化,從而幫助參與者擺脫局部偏好,得到更準確的全局模型,證明了聯(lián)合學習適用于霧計算架構。 但是在無線傳感器網絡中,由于各個設備上的數(shù)據是用戶獨立產生的,任何特定用戶的本地數(shù)據集都不能代表總體分布,這造成聯(lián)合學習的樣本數(shù)據屬于Non-IID 數(shù)據,這對聯(lián)合學習算法的收斂性提出了考驗。 因此,需要研究適用于無線傳感器網絡的聯(lián)合學習算法。 針對Non-IID 數(shù)據,文獻[12]創(chuàng)新性地提出了聯(lián)邦平均算法(federated averaging algorithm, FedAvg)算法,該算法將每個客戶端上的本地隨機梯度下降(stochastic gradient descent, SGD)與執(zhí)行模型平均的服務器相結合,在Non-IID 數(shù)據上取得了較為穩(wěn)定的分類性能,并且與經典同步隨機梯度下降算法相比,FedAvg 算法所需通信輪數(shù)降低了10 ~100 倍。 文獻[13-15]證明了基于采用聯(lián)合學習的入侵檢測系統(tǒng)能夠達到90%以上的檢測準確率,每個節(jié)點使用最合適的學習模型,能夠提高物聯(lián)網環(huán)境下攻擊檢測的整體準確性。 這種并行式的訓練算法適用大規(guī)模的用戶量和數(shù)據總量場景,同時聯(lián)合學習的模型參數(shù)交互大大地減少了網絡通信開銷。
本文在上述研究的基礎上,采用霧計算架構,更好地利用位于無線傳感器網絡邊緣的設備為就近的用戶提供服務,從而減少云中心的計算壓力,并提供低延時網絡服務,提高入侵檢測實時性。結合FedAvg 算法在Non-IID 數(shù)據處理上的優(yōu)勢,提出了Fed-XGB 算法。
本文的霧計算架構是一個3 層網絡結構,頂層是云端服務器,具有最強的計算和存儲能力,中間層為霧層,由計算能力稍弱的傳感器、服務器或者基站作為霧節(jié)點,為云端分擔計算和存儲任務,底層為終端設備。 本文采用聯(lián)合學習算法,霧節(jié)點聚合不同區(qū)域不同用戶的數(shù)據,打破原來的數(shù)據資源孤島,節(jié)點不需要傳輸原始數(shù)據,只需要傳輸較少的模型參數(shù)來協(xié)同訓練模型,不僅保證數(shù)據隱私,同時適合于無線網絡有限且不穩(wěn)定的帶寬。
如圖1 所示,聯(lián)合入侵檢測算法的培訓過程包括以下3 個步驟:
圖1 聯(lián)合入侵檢測算法框架Fig.1 Federated intrusion detection algorithm framework
步驟3 全局模型聚合和更新。 所有K個客戶共享并協(xié)同訓練一個全局預測模型。
服務器對客戶端模型參數(shù)進行平均以獲得新的全局模型。
因為任何一方所擁有的有限數(shù)據都很容易陷入局部最優(yōu),所以上述Fed-XGB 算法的全局模型聚合和更新過程可以利用其他參與者學到的模型對局部模型參數(shù)進行優(yōu)化,從而幫助參與者擺脫局部偏好,得到更加準確的模型。
在無線傳感器網絡中,希望盡量減少從傳感器設備上傳的數(shù)據總量,以減少通信負擔。 文獻[16]驗證了大量針對于客戶端的局部優(yōu)化與協(xié)同訓練的整體優(yōu)化無關,將這些模型參數(shù)上傳到中央服務器的作用很小,甚至會對全局模型的收斂造成損害。 本文為了避免傳輸不相關的局部更新,每個客戶端都需要知道全局聚合中的協(xié)同優(yōu)化趨勢。 在每次學習迭代中,客戶應該比較他們的局部更新和全局更新,以確定他們的更新是否相關。
為此,本文算法的優(yōu)化目標是在保證學習算法收斂的同時最小化累積的通信次數(shù),即
式中:Ct為在第t次迭代中,將本地更新上傳到服務器的客戶端數(shù)量;f(xt)為第t次學習到的模型;f(x*)為最優(yōu)模型。
本文結合Top-K 梯度選擇方法和CMFL[17]算法進行梯度更新選擇。 具體來說,每次訓練中用戶計算得到模型參數(shù)gi、hi,根據其與服務器模型參數(shù)相差絕對值的大小排序,選擇相差最小的K個梯度值,服務器將聚合這K個梯度值用于生成樹和模型預測。
假設第j次全局模型更新中,Wj={h1,h2,…,hN}為本地模型參數(shù)更新,ˉWj為全局模型參數(shù),計算相同符號參數(shù)的百分比作為相關性度量標準:
若Wj和ˉWj符號相同,則I(sign(Wj)=sign(ˉWj))= 1,否則為0。 將更新的相關性度量e(W,ˉW)進行排序,再選擇排名最高的K個值上傳,進行服務端的模型聚合,用于生成樹和模型預測。 這樣,聚合機制就能夠加快模型收斂速度,并且有效防止不利于整體模型的參數(shù)上傳,減少Ct,降低通信開銷。
本節(jié)針對不同霧節(jié)點上的不均衡數(shù)據樣本,通過引入代價敏感函數(shù)對XGBoost 算法進行改進。
XGBoost 算法基于CART 回歸樹模型[18],對于給定的n個樣本m個特征的數(shù)據集D= (xi,yi),CART 回歸樹會將輸入的樣本特征分配到各個葉子節(jié)點,其預測函數(shù)為
式中:f(x) =wj(x),wj(x)為葉子節(jié)點j的權重,fv(x)為其中第v棵回歸樹。 XGBoost 算法學習的過程就是通過加入fv函數(shù)來優(yōu)化目標函數(shù),減少預測結果與實際結果之間的誤差。 定義的目標函數(shù)為
式中:r為權重系數(shù);Tt為葉子節(jié)占的個數(shù);λ為正則化系數(shù)。
因為各個霧節(jié)點收集的流量數(shù)據類別不均衡,其中攻擊類的異常流量屬于小樣本,所以,為了提高入侵檢測模型對小樣本的重視,設計每個霧節(jié)點中的代價敏感度函數(shù)為
在霧節(jié)點的模型尋找最優(yōu)樹結構的過程中,最重要的就是訓練樣本的gci和hci。 由于代價敏感函數(shù)的引入,按照Gain 進行最優(yōu)分割點選擇時會更加重視霧節(jié)點中的小樣本類別,從而提高小樣本類別的檢測準確率,更適合流量數(shù)據類別不均衡的無線傳感器網絡。
如2.2 節(jié)所述,訓練XGBoost 的最優(yōu)樹模型需要計算增益分數(shù)Gain 來尋找分裂點。 這意味著對于每個數(shù)據樣本和特征,需要計算對應的梯度gci和二階導數(shù)hci。
大多數(shù)聯(lián)合學習的梯度提升算法都允許參與訓練的客戶端將梯度或特征值分割候選者傳輸?shù)骄酆掀?從而確定整體模型的最佳分裂點。 而常見搜索最佳分裂點的方法是使用精確貪婪算法,該算法枚舉整個特征和值空間以找到最佳分裂點[19]。 若需要處理n個樣本,d個特征,進行m輪,這種貪婪算法的復雜度就高達O(n×d×m×lgn),會增大霧節(jié)點的通信計算壓力;為了彌補這一不足,本文使用基于直方圖的近似算法來高效地選擇最優(yōu)特征[17]。
基于直方圖的近似算法首先對該特征的所有切分點p(p=1,2,…,m)基于分位數(shù)分桶,得到一個候選切分集合Sp= {sp1,sp2,…,spl},然后將樣本特征的值根據集合劃分到桶中,對每個桶內的樣本統(tǒng)計值的梯度和二階導數(shù)進行累加統(tǒng)計得到Gpl和Hpl,最后在這些累計的統(tǒng)計量上尋找最佳分裂點。 分位點算法的核心思想是:根據特征的分布取其分位點,將分位點代替真實特征值,本質就是連續(xù)特征的分段離散,降低計算復雜度。但是,將這種近似算法直接應用于聯(lián)合學習框架中可能會導致訓練的模型無法適應各方數(shù)據的偏差,尤其是不均衡數(shù)據和Non-IID 數(shù)據中。
為了解決該問題,本文的改進算法不是以相同的比例對所有參與者的數(shù)據進行分桶,而是考慮參與者客戶端上本地數(shù)據集的大小與其他參與者的大小相對比率來按比例(如百分位數(shù))分桶。首先,定義Dp表示每個訓練樣本的第p維特征值和對應二階導數(shù):
由于每個數(shù)據集都會有不同的模式和特征,如網絡拓撲結構、流量特征、攻擊方式等,本文使用多種基準數(shù)據集進行實驗,這樣可以綜合驗證入侵檢測模型的適應性。 本文結合加拿大網絡安全研究所提供的CICIDS 2017 數(shù)據集及無線網絡的WSN-DS 數(shù)據集來評估模型。
實驗平臺為搭載了Core i9-9820x 和GTX 1080 Ti 的臺式機,使用Anaconda 3 軟件和聯(lián)合學習框架Pysyft 進行仿真實驗。 同時還使用NS-2軟件仿真設計得到一個WSN-ids 數(shù)據集。 總節(jié)點規(guī)模數(shù)目為300,按照區(qū)域平均劃分為30 個區(qū)域,每個區(qū)域設置一個霧節(jié)點,收集該區(qū)域中節(jié)點的數(shù)據用來訓練本地模型,節(jié)點的信息通信覆蓋半徑設定為10 m,設置仿真時間為1 000 s,其中網絡攻擊時間設置為50 s。 實驗共進行30 次模擬,獲得總時長30 000 s 的原始流量數(shù)據。
仿真參數(shù)設定如表1 所示。
表1 仿真參數(shù)設置Table 1 Simulation parameter settings
網絡攻擊的模擬參照WSN-DS 數(shù)據集。 模擬了4 種攻擊方式:Blackhole、Grayhole、Flooding、Scheduling。 3 個數(shù)據集的信息如表2 所示。
表2 數(shù)據集相關信息Table 2 Related information of datasets
采用準確率Accuracy 和誤報率FAR 作為評估指標:式中:TP 為正確分類的正樣本數(shù)目;FN 為錯誤分類的正樣本數(shù)目;FP 為錯誤分類為正樣本的負樣本數(shù)目; TN 為正確分類的負樣本數(shù)目。
本文通過準確率Accuracy 和誤報率FAR 評估不同算法在WSN-DS 和CICIDS 2017 數(shù)據集中的性能,數(shù)據集按照80%:20% 的比例劃分訓練集和測試集。
對比的集中式學習方法選擇了入侵檢測領域流行的RF(random forest)[21]、GRU-SVM[22]、ICNN[23]、VAE[24]和XGBoost[25]算法。 這幾種算法采用集中式的方法進行訓練,設備將數(shù)據上傳給服務器進行集中訓練。 選擇FedSGD 作為分布式學習(聯(lián)合學習)的比較算法,為了更好地比較本文算法的優(yōu)勢,FedSGD 的訓練模型統(tǒng)一使用XGBoost算法。 所有算法重復獨立運行15 次,并計算相同的測試集上的檢測準確率和誤報率的平均值,結果如表3 所示。
從表3 可以看出,Fed-XGB 和本地模型VAE的檢測準確率最高,誤報率最低,Fed-XGB 的檢測分類性能相比于集中式的XGBoost 分類準確率提高了3%左右,誤報率降低了10%左右,證明了聯(lián)合學習這種分布式學習也可以達到集中式學習的訓練效果。 并且本文的Fed-XGB 算法相比FedSGD 聯(lián)合學習算法具有更好的檢測性能。
表3 不同算法整體性能對比Table 3 Comparison of overall performance of each algorithm
使用WSN-DS 數(shù)據集進行實驗,分析聯(lián)合學習參數(shù)B(訓練批次大小)和E(訓練代數(shù))對通信成本即上傳次數(shù)的影響,比較FedSGD 算法和Fed-XGB 算法不同的B和E下模型的分類準確率達到98%時所需的上傳次數(shù),可以看出增加E和設置較小的B會降低通信成本。
由表4 可以看出,本文的Fed-XGB 算法在參數(shù)E=20 和B設置較小時,上傳次數(shù)最小,在相對于基線算法FedSGD 減少了大約21 倍的通信成本。 通常,通過將B設置為一個小數(shù)目,增加客戶端的訓練輪數(shù),即將更多的計算推給客戶端,即充分利用無線傳感器網絡中霧節(jié)點的計算資源。
表4 不同聯(lián)合學習參數(shù)對上傳次數(shù)的影響Table 4 Influence of different federated learning parameters on communication rounds
使用WSN-ids 數(shù)據集進行實驗,探究了不同惡意節(jié)點數(shù)目對入侵檢測模型的影響。 參照文獻[5]的方式模擬中毒攻擊,惡意節(jié)點隨機分配在劃分的30 個區(qū)域中,對周圍節(jié)點進行網絡攻擊,并且上傳錯誤的數(shù)據信息。 相同仿真環(huán)境下,得到不同算法的檢測準確率如圖2所示。 由圖2 可知,惡意節(jié)點數(shù)量增加會對入侵檢測模型的性能有不利影響。 原因是:惡意節(jié)點數(shù)目的增加會使檢測模型難以建立正確的判斷,使得聯(lián)合學習模型難以執(zhí)行正確模型參數(shù)信息的聚合,導致霧節(jié)點的參數(shù)上傳對全局模型產生不利影響。 研究中發(fā)現(xiàn),對于訓練過程中受到中毒污染的客戶端,其梯度更新相較服務端相差較大,而Fed-XGB 由于算法的設計避免傳輸不相關的局部更新,全局聚合的協(xié)同優(yōu)化趨勢下避免了中毒節(jié)點的不利影響,確保對模型性能有利地更新才會聚合,保證了模型訓練的可靠性。
圖2 不同惡意節(jié)點數(shù)量下的性能比較Fig.2 Performance comparison of different malicious nodes
由于無線傳感器網絡具有無線連接不穩(wěn)定、設備容易故障、容易受到外界干擾的特點,造成其網絡傳輸過程中的丟包率較高,而且數(shù)據傳輸過程中不可避免地會收集故障數(shù)據和噪聲數(shù)據。 低質量帶噪聲數(shù)據導致檢測系統(tǒng)較低的魯棒性,因此抗噪聲能力對于無線傳感器網絡的入侵檢測模型至關重要。
本文進行了模型魯棒性測試:從30 個區(qū)域中隨機選擇10 個節(jié)點,參考文獻[26]的方法,引入的噪聲為掩蔽噪聲,將其加入訓練樣本中,將干凈的原始流量數(shù)據以一定噪聲比例(10% 的比例)隨機置零,以最大化學習分類器的錯誤,使用低質量的帶噪聲數(shù)據來檢驗系統(tǒng)的魯棒性。 如圖3 和圖4 所示,圖3(a)和圖4(a)為模型正常訓練后的分類結果混淆矩陣圖,圖3(b)和圖4(b)為注入噪聲的分類結果混淆矩陣圖。
圖3 Fed-XGB 算法加噪聲前后的性能對比Fig.3 Performance comparison of Fed-XGB algorithm under adding noise
圖4 FedSGD 算法加噪前后的性能比較Fig.4 Performance comparison of FedSGD algorithm under adding noise
可以看出FedSGD 算法受到噪聲的影響很大,導致所有類別的準確率都大幅下降,Blackhole類的準確率下降了6%,Grayhole 類的準確率下降了3%,Flooding 類的準確率下降13%, scheduling類的準確率下降了32%,大部分預測成為了Grayhole。 而本文的Fed-XGB 算法很好的抑制了噪聲對全局分類性能的影響,各個類別的準確率下降在3%以內。 證明了算法具有較好的魯棒性。
針對無線傳感器網絡的信道特點和集中式、分布式學習方法的缺陷,本文提出聯(lián)合入侵檢測算法Fed-XGB,降低了數(shù)據傳輸帶來的帶寬占用和隱私泄露風險。 在不同數(shù)據集上的實驗表明:
1) Fed-XGB 的檢測準確率在0.97 以上,誤報率在0.036 以下,優(yōu)于其他對比算法。
2) Fed-XGB 在數(shù)據含有噪聲和惡意節(jié)點數(shù)目增加時依然保持穩(wěn)定的檢測性能。
下一步將針對模型參數(shù)的保密性和壓縮進行更深的研究,提高聯(lián)合學習的隱私性和高效性。