陳何雄,羅宇薇,韋云凱,郭 威,杭菲璐,何映軍,楊 寧
(1.云南電網有限責任公司 信息中心,昆明 650011;2.電子科技大學 長三角研究院(衢州),浙江 衢州 324000;3.電子科技大學 信息與通信工程學院,成都 611731)
軟件定義網絡(Software-Defined Network,SDN)通過采取數控平面分離、控制邏輯集中等方式提高了網絡可編程性和靈活性,并簡化了網絡配置過程,有利于實現網絡性能拓展,保障網絡高效運行[1],被廣泛應用于云數據中心、政企網絡等場景[2]。但與此同時,SDN 也面臨了分布式拒絕服務(Distributed Defend of Services,DDoS)[3]、拓撲中毒、端口掃描等網絡攻擊,考慮到攻擊發生時常常伴有流量異常現象,因此實施異常流量檢測以提升網絡對攻擊的識別能力是加強網絡安全的重要手段。
異常流量檢測與識別算法大致可分為基于規則和基于機器學習[4-5]兩類檢測算法。基于規則的檢測算法一般會通過分析與流量特征相關的統計數據、參數信息等來鑒別異常流量。文獻[6]提出一種應用于SDN 網絡的基于參數統計的識別算法,由控制器負責對流量數據包大小、持續時間等信息量進行統計,以此作為異常流量的判斷依據。文獻[7]提出一種基于目的IP 地址熵變化的檢測算法來檢測SDN 網絡中的DDoS 攻擊,根據網絡流量調整熵閾值,以此判斷是否受到攻擊。這類基于規則的檢測算法通常針對某一類特征明顯的攻擊行為,可識別的異常類型較少,且識別效果主要取決于與異常類型緊密聯系的閾值設定,不具備學習性,不利于推廣和拓展。支持向量機[8-9](Support Vector Machine,SVM)、K 最鄰近(K-Nearest Neighbor,KNN)規則分類[10]、K 均值聚類[11]等基于機器學習的檢測算法得到了更廣泛的研究與應用[8],但這些算法雖然能夠檢測出流量異常,卻忽略了異常行為之間可能存在的關聯度,難以檢測與時間相關的多步攻擊行為[12]。文獻[13]提出一種基于卷積神經網絡(Convolutional Neural Network,CNN)和長短期記憶(Long Short-Term Memory,LSTM)網絡的異常流量檢測方法,通過提取流量數據的時空特征來提高異常流量檢測性能。
然而,由于流量的動態變化,網絡規模、終端設備等因素都會引起流量的特征差異[14],因此異常流量檢測效果還與檢測范圍等因素密切相關。對于規模較大的網絡,如果只在SDN 控制器處部署檢測節點,會導致覆蓋檢測范圍不足,難以有效防御網絡攻擊。而在部署多個檢測節點的情況下,在檢測模型訓練時,節點可能面臨訓練數據缺乏、協同性較差的問題。文獻[15]提出將聯邦學習架構與機器學習算法相結合,以解決訓練數據缺乏的問題,并提升了檢測準確率。但是,在傳統聯邦學習中,由于參數更新時直接使用全局參數進行訓練,最終得到的是全局唯一的模型,并未考慮檢測模型的應用環境和數據差異,因此模型性能很難在不同應用環境下得到充分發揮。
為解決以上問題,本文提出基于聯邦學習的異常流量協同檢測技術。結合SDN 網絡拓撲與流量特征,構建基于聯邦學習的協同檢測架構,以克服單個檢測設備可能面臨的訓練數據缺乏問題,增強檢測設備的協同能力。依據各檢測節點流量特征及其變化關聯關系,設計協同訓練中的參數聚合權重優化算法,利用全局參數和各檢測節點的本地參數進行模型訓練,實現差異環境中檢測模型的整體優化。
考慮到網絡異常流量檢測的場景特點,本文從信息熵與相對熵的角度分析流量特征及其變化,并基于聯邦學習技術提出異常流量協同檢測架構。
聯邦學習的本質是一種分布式機器學習技術,以解決機器學習在發展過程中所面臨的數據安全與數據孤島問題。在聯邦學習中,各訓練節點在參數聚合節點的協調下共同訓練模型[16],實現了在不交換原始數據的情況下更新客戶端應用。
聯邦學習技術作為網絡安全領域的研究熱點,受到了研究人員的廣泛關注[17]。由于應用場景不同,訓練節點的數據集特點不同,依據數據集的特點,聯邦學習可分為橫向聯邦學習、縱向聯邦學習和聯邦遷移學習[18]3 種類型。橫向聯邦學習的本質是樣本的聯合,在訓練完成后進行獨立預測,適用于各訓練節點的數據集樣本對象重疊少、特征信息重疊多的場景。縱向聯邦學習的本質是將多方對相同樣本目標的不同特征描述進行訓練提取[19],在訓練結束后需要多方協同完成預測,適用于各訓練節點的數據集樣本對象重疊多、特征信息重疊少的場景,例如不同行業的企業間合作建立模型。在聯邦遷移學習中,可以在目標任務訓練數據較少的情況下,將前一個任務的知識轉移到目標任務上[20],常用于解決當各訓練節點的樣本對象和特征信息重疊都較少時標簽樣本和數據缺乏的問題。在SDN 網絡異常流量檢測的場景中,網絡流量的特征信息大抵相同,但不同位置的檢測節點能用于訓練的流量樣本大多不同,這與橫向聯邦學習的應用場景特點相符。
網絡流量數據由離散的信息源組成,熵可以度量系統參數分布的變化情況,描述流量在某些維度上的分布狀況,信息熵、相對熵等[21]常用于分析流量變化。將流量特征屬性看作隨機變量,通過計算各特征屬性的信息熵,可以有效反映當前網絡流量的特征屬性變化和分布情況。流量特征的信息熵[22]可據式(1)進行計算:
相對熵可以度量兩個隨機序列之間的距離,從統計學角度上來看,它是指兩個隨機序列的相似程度[23]。令兩個 隨機序列為P和Q,有P={pv|v=1,2,…,V},Q={qv|v=1,2,…,V},其相對熵D(P||Q)可以據式(2)進行計算:
當P=Q時,D(P||Q)=0,即當兩個序列完全相同時,它們的相對熵值為0。D(P||Q)的值越小,表示序列P和Q越相似,反之則相差較大。
考慮到信息熵常用于提取流量數據特征[24],本文通過計算各檢測節點的流量熵形成特征序列,再由參數聚合節點計算特征序列的相對熵,以衡量檢測節點的變化關聯性,作為參數權重優化的依據。
為解決SDN 網絡中流量檢測節點間協同不足、異常流量動態變化適應能力差等問題,本文結合SDN 的拓撲特點與流量特征,應用聯邦學習技術增強檢測節點間的協同能力,建立基于聯邦學習的異常流量協同檢測架構,并提出參數聚合權重優化算法,整體優化檢測模型,提升網絡對異常流量的識別能力。
在當前面向SDN 的智能檢測模式中,各檢測節點往往基于本節點所屬區域進行檢測模型的訓練與實施。這種方式導致了檢測節點的檢測類型局限性與對流量變化適應能力差等問題。考慮到網絡攻擊可能發生在網絡的任意區域,攻擊目標也可能是全局網絡的任意區域,本文提出基于聯邦學習的異常流量協同檢測架構,從而提高檢測節點對多區域攻擊和動態攻擊的適應能力。如圖1 所示,在所提協同架構中,檢測節點分布于SDN 各區域網絡,這些檢測節點使用聯邦學習方式聚合所訓練的模型,并由此優化各檢測節點自身的檢測模型。結合SDN網絡的特征,聯邦學習中的參數聚合節點可以部署在SDN 控制器或者是與SDN 控制器高速連接的服務設備上。在聯邦學習時,各檢測節點首先利用本地數據進行檢測模型訓練,上傳模型參數至參數聚合節點處匯總,然后由參數聚合節點依據參數聚合權重更新各檢測節點的模型參數,以供各檢測節點進行下一輪訓練。在實際檢測中,分布在網絡不同位置的檢測節點實施多點檢測。需要注意的是,檢測節點的部署應以網絡規模與結構特點為導向,可結合實際需求參考現有部署方案確定。檢測節點通常連接在某個網絡交換設備上,由該交換設備將網絡流量轉發到檢測節點。考慮到檢測需求,檢測節點一般不會部署在網絡的邊緣區域,而是連接到容量較大的核心交換設備上。因此,這種流量轉發方式局限于檢測節點與核心交換設備之間的高速鏈路,不會對該鏈路帶來較大的通信負擔,更不會影響該鏈路以外網絡業務的正常運行。

圖1 基于聯邦學習的異常流量協同檢測架構Fig.1 Architecture of collaborative anomaly traffic detection based on federated learning
因此,本文所提的基于聯邦學習的異常流量協同檢測技術的核心在于基于聯邦學習的多檢測節點協同流程,以及在該流程下的參數聚合權重優化算法。
在基于聯邦學習的多檢測節點協同流程中,參數聚合節點協同分布在網絡不同區域,檢測節點在聯邦學習架構下訓練異常流量檢測模型。檢測節點先利用本地流量數據進行模型訓練得到本地參數,再根據參數聚合節點所更新的模型參數在協同架構下訓練模型;參數聚合節點先根據各檢測節點的本地參數計算全局參數,再依據參數聚合權重優化算法確定各檢測節點在參數聚合中的本地參數權重和全局參數權重,并基于此權重更新各檢測節點用于下一輪訓練的模型參數。通過參數聚合節點對各檢測節點的協同,間接利用全局數據特征以改善數據不足的問題;通過加權方式更新檢測節點的模型參數,避免直接利用全局參數導致本地數據特征被覆蓋。
為在利用全局數據特征和保留本地數據特征之間尋求權衡,基于上述協同流程提出參數聚合權重優化算法。該算法包含特征提取和關聯度與權重計算兩個階段。在特征提取階段,檢測節點通過處理其所處區域的流量數據提取特征序列,先根據檢測需求等實際因素選取流量特征,再計算檢測節點的流量特征熵,形成流量特征序列來反映檢測節點的流量變化情況。在關聯度與權重計算階段:首先,參數聚合節點基于各檢測節點的特征序列,計算近似反映全局流量變化的特征序列;然后,依據檢測節點特征序列與參數聚合節點特征序列的相對熵,量化檢測節點的流量變化關聯度;最后,基于此關聯度確定各檢測節點相應參數聚合時的本地參數權重和全局參數權重。通過對檢測節點本地參數和全局參數的加權聚合,提升模型的檢測準確率和對差異環境的適應性。
本節將對基于聯邦學習的SDN 網絡異常流量協同檢測架構中的多檢測節點協同訓練流程,以及訓練過程中的參數聚合權重優化算法進行具體介紹與說明。
將參數聚合節點表示為C,則C在聯邦學習中計算的全局參數為gC;將檢測節點集合表示為D,其數量表示為m,則有D={d1,d2,…,dm},檢測節點dj(j≤m,j∈N+)在聯邦學習中所訓練模型的本地參數為gj;將全局參數gC與本地參數gj在參數更新時的權重分別表示為。在多檢測節點協同過程中,檢測節點dj在參數聚合節點C的組織下協同訓練檢測模型。基于協同檢測架構的多檢測節點協同訓練流程如圖2 所示。

圖2 多檢測節點協同訓練流程Fig.2 Procedure of multiple detection nodes collaborative training
首先,參數聚合節點C基于流量變化關聯度求出各檢測節點在參數更新中的全局參數權重與本地參數權重wdj。
然后,在檢測節點dj使用本地數據訓練得到本地參數gj后,將gj上傳給參數聚合節點C,參數聚合節點C據式(3)計算全局參數gC:
最后,參數聚合節點C據式(4)計算檢測節點dj用于下一輪訓練的參數,并將g'j發給檢測節點dj,dj使用更新后的參數更新本地模型。
重復上述步驟,直到損失函數收斂,或者達到迭代次數上限,就停止訓練并保存當前檢測模型,具體步驟如算法1 所示。
算法1多檢測節點協同訓練算法
利用聯邦學習架構實現多檢測節點檢測模型的協同訓練與更新,通過加權方式結合本地參數和全局參數實現模型優化。對于聯邦學習面臨的通信成本問題,通常可從減少通信輪次和降低通信數據量兩方面進行考慮[25],例如應用AdaGrad[26]等算法加速模型收斂,減少通信輪次,或應用PowerSGD[27]等算法壓縮所需傳輸的模型,降低通信數據量。考慮到由檢測節點流量采集、檢測節點與服務器間參數交換帶來的兩種流量在網絡交換設備與檢測節點間的鏈路上是疊加的,因此對通信需求進行分析。以神經網絡為例,模型參數數量的量級約為107[28],若每個參數占8 個字節,則所需傳輸的原始數據量約在百兆字節,而通過量化壓縮等算法可以將該數據量降低兩個數量級[29],則所需傳輸數據量可降至兆字節。考慮到檢測節點與交換設備之間的高速鏈路帶寬一般在百兆至千兆,因此由流量采集和參數交換所引入的通信需求仍在鏈路的承受范圍內。
為尋求全局參數和本地參數的權衡,關聯各檢測節點數據特征變化與其模型訓練優化,在基于聯邦學習的多檢測節點協同機制下提出參數聚合權重優化算法。
如圖3 所示,參數聚合權重優化算法分為特征提取和關聯度與權重計算兩個階段。在特征提取階段,各檢測節點通過計算流量數據的信息熵形成特征序列。在關聯度與權重計算階段,由參數聚合節點基于特征序列計算相對熵得到各檢測節點對應的參數權重。

圖3 基于關聯度的參數權重計算示意圖Fig.3 Schematic diagram of parameter weight calculation based on correlation
3.2.1 特征提取
數據包的源、目的特征的統計特點在一定程度上反映了網絡流量的狀態變化,本文選擇計算T個單位時間ti(i≤T,i∈N+)內流量特征的信息熵變化來分析檢測節點的流量變化情況。本文以源IP 地址與目的IP 地址為例進行分析,在實際應用時,可據具體需求選取流量特征,T和ti的取值應當依據實際網絡情況確定。參數聚合節點綜合各檢測節點的信息熵變化來近似得出整體網絡的流量變化情況。將在第i個單位時間ti內檢測節點dj的流量總數表示為,其源IP 地址有種,其目的IP 地址有種,將流量的源IP 地址表示為隨機變量X,用xk(k∈N+)表示某一源IP 地址的出現次數,則檢測節點dj處的源IP 地址信息熵可據式(5)進行計算:
3.2.2 關聯度與權重計算
D(Hdj||HC)的值越小,說明序列Hdj與HC差異越小,反之說明序列Hdj與HC差異越大,當且僅當序列Hdj、HC完全相同,即Hdj=HC時,有D(Hdj||HC)=0。
的值越大,表明在協同更新中,全局參數在檢測節點dj的參數更新時所占比例越大,反之,本地參數在檢測節點dj的參數更新時所占比例越大。
參數聚合權重優化算法的具體步驟如算法2所示。
算法2參數聚合權重優化算法
由于信息熵計算是基于本地數據進行的,因此信息熵的計算過程不會引入額外通信開銷。同時,在一次模型訓練中,與信息熵相關的數據傳輸為一次性事件,不需要周期性上傳。具體而言,在檢測節點將基于信息熵計算得到的特征序列上傳到聚合節點的過程中,需要傳輸的數據量受檢測節點數、序列長度與特征值存儲大小所影響。若訓練節點數量級為103,序列長度量級為103,單個特征值存儲占8個字節,則所需傳輸數據量大約在幾兆到幾十兆字節。考慮到SDN 網絡的信道速率通常在百兆至千兆字節,信息熵的計算與傳輸引入的通信負載影響可以忽略不計。
基于Pycharm 平臺與PyTorch 軟件框架進行仿真,通過對數據量、包含攻擊類型等因素進行考慮,選擇UNSW-NB15 數據集[30]。通過刪除可以清楚反映異常情況的特征和臟數據等方式對原始數據集進行預處理,選取與30 個網絡IP 關聯的83 545 條流量數據,再采用k-折交叉驗證法以4∶1 的比例將數據集轉化為訓練集和測試集。仿真設置3 個檢測節點負責網絡不同區域的檢測,由參數聚合節點協同各檢測節點分別訓練各自的GRU 模型作為檢測模型,使用Adam 優化器,將交叉熵作為損失函數,每批次數據量為64,訓練輪次為3 輪,初始學習率為1×10-4,分別采用本地獨立訓練、傳統聯邦學習和本文所提參數聚合權重優化算法訓練模型,并對所得模型進行分析對比。
為全面驗證本文所提算法的異常流量檢測結果,仿真中使用分類任務常用的準確率(A)、分類器精度得分(F1)和曲線下面積(Area Under Curve,AUC)3 個度量指標[13],其中,準確率能直觀表現模型識別結果,分類器精度得分是精確率與召回率的調和均值,能同時體現模型精確率與召回率的情況,AUC 值為ROC(Receiver Operating Characteristic)曲線下的面積,能直觀反映分類器的性能。A和F1 值計算公式如式(12)和式(13)所示:
其中:TTP表示歸類正確的目標樣本數;TTN表示歸類正確的其他樣本數;FFP表示識別錯誤的目標樣本數;FFN表示被遺漏識別的目標樣本數。
在上述設置下,在本地獨立訓練、傳統聯邦學習和本文所提算法的訓練模式下檢測節點1、節點2、節點3所得模型的準確率和ROC 曲線,如圖4~圖6 所示。訓練過程的準確率比較如圖4(a)、圖5(a)、圖6(a)所示,從訓練輪次和收斂情況來看,本文所提算法并未影響模型訓練的收斂,收斂后的準確率能達到90%以上。模型的ROC 曲線如圖4(b)、圖5(b)、圖6(b)所示,綜合來看,本文所提算法的性能較好,其中性能提升最明顯的是節點1,其AUC值能提高到0.834 8,而本地獨立訓練和傳統聯邦學習下的AUC 值僅為0.501 6 和0.641 5。

圖4 不同訓練模式下節點1 所得模型的準確率與ROC 結果Fig.4 Accuracy and ROC results of the model obtained from node 1 under different training modes

圖5 不同訓練模式下節點2 所得模型的準確率與ROC 結果Fig.5 Accuracy and ROC results of the model obtained from node 2 under different training modes

圖6 不同訓練模式下節點3 所得模型的準確率與ROC 結果Fig.6 Accuracy and ROC results of the model obtained from node 3 under different training modes
不同訓練模式下各檢測節點的模型準確率、F1值、AUC 值分別如表1~表3 所示。不同訓練模式下的度量指標均值如圖7 所示。由表1~表3 和圖7 可以看出:在本地獨立訓練時,不同檢測節點的模型性能優劣不均,例如節點1,雖然其準確率較高,但是F1 值極低,ROC 曲線和AUC 值的表現也不好;在傳統聯邦學習模式下,各檢測節點的模型性能均有所提高,但較為平均,雖然有效改善了獨立訓練時的較差模型性能,但對較好模型的性能有較大損害。

圖7 不同訓練模式下的度量指標均值Fig.7 Mean value of measurement indexes under different training modes

表1 不同訓練模式下的模型準確率Table 1 Accuracy of the model under different training modes

表2 不同訓練模式下的模型F1 值Table 2 F1 value of the model under different training modes

表3 不同訓練模式下的模型AUC 值Table 3 AUC value of the model under different training modes
總體而言,傳統聯邦學習模式較本地獨立訓練并沒有使各檢測模型的識別性能得到整體的優化和提升,而本文所提算法在準確率、F1 值和AUC 值的均值上均有所提升,提升情況如表4 所示。由表4 可以看出,相比于本地獨立訓練和傳統聯邦學習,本文所提算法的模型準確率分別提升了31.69% 和7.92%,F1 值分別提升了94.04%和37.97%,AUC 值分別提升了31.99%和23.10%。綜上,本文所提算法有效地提高了檢測模型的識別準確率,實現了不同節點檢測模型的整體優化。

表4 本文所提算法度量指標均值的提升情況Table 4 Improvement of mean value of measurement indexes for the proposed algorithm %
針對SDN 網絡的異常流量檢測問題,本文構建基于聯邦學習的異常流量協同檢測架構,并設計多檢測節點協同機制和參數聚合權重優化算法,以克服單個檢測設備可能面臨的訓練數據缺乏問題,同時增強多個檢測設備間的協同能力,提高檢測模型的準確率與適應性。仿真結果表明,參數聚合權重優化算法相比于本地獨立訓練和聯邦學習算法能更有效地提升檢測模型的識別準確率。后續將基于聯邦學習算法進行網絡流量異常檢測與隱私安全保護,同時將本文異常流量協同檢測技術應用于分布式網絡,擴展其適用范圍。