丁慶豐,李晉國
(上海電力大學(xué)計(jì)算機(jī)與科學(xué)技術(shù)學(xué)院,上海 201306)
隨著物聯(lián)網(wǎng)生態(tài)系統(tǒng)的發(fā)展,大量的智能終端設(shè)備被廣泛應(yīng)用于多個(gè)物聯(lián)網(wǎng)應(yīng)用領(lǐng)域,如智能家居、智慧醫(yī)療、智慧交通4.0 等[1]。然而,物聯(lián)網(wǎng)終端設(shè)備數(shù)量的急劇增加帶來了諸多嚴(yán)峻的安全隱患,復(fù)雜的網(wǎng)絡(luò)環(huán)境使得物聯(lián)網(wǎng)設(shè)備產(chǎn)生的數(shù)據(jù)容易遭到泄露、攻擊或者中斷。一方面,物聯(lián)網(wǎng)終端設(shè)備往往受計(jì)算、內(nèi)存、帶寬等資源的限制,其自身的局限性給物聯(lián)網(wǎng)帶來了更高要求的安全挑戰(zhàn);另一方面,物聯(lián)網(wǎng)設(shè)備之間存在著較為密切的關(guān)聯(lián)性,一旦有設(shè)備遭到入侵,可能會(huì)導(dǎo)致用戶隱私數(shù)據(jù)泄露、網(wǎng)絡(luò)基礎(chǔ)設(shè)施無法正常運(yùn)行、網(wǎng)絡(luò)擁堵或癱瘓等狀況,甚至?xí)斐删薮蟮慕?jīng)濟(jì)損失和社會(huì)損失,嚴(yán)重威脅企業(yè)和國家安全[2]。
在過去幾年中,機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的興起與發(fā)展推動(dòng)了物聯(lián)網(wǎng)安全領(lǐng)域的研究,各種類型的神經(jīng)網(wǎng)絡(luò)(如卷積神經(jīng)網(wǎng)絡(luò)、長(zhǎng)短期記憶網(wǎng)絡(luò)、自動(dòng)編碼器)大量應(yīng)用于物聯(lián)網(wǎng)的入侵檢測(cè)中[3]。文獻(xiàn)[4]提出一種基于3 個(gè)不同分類器(決策樹、JRP 算法、隨機(jī)森林)的分級(jí)入侵檢測(cè)系統(tǒng)(Intrusion Detection System,IDS),前兩個(gè)分類器并行運(yùn)行并將結(jié)果饋送到第3 個(gè)分類器中,在IDS2017 數(shù)據(jù)集中取得了較好的效果,但是系統(tǒng)模型相對(duì)簡(jiǎn)單,準(zhǔn)確率和誤報(bào)率不理想。文獻(xiàn)[5]為了解決不平衡樣本的問題,基于卷積神經(jīng)網(wǎng)絡(luò)提出一種CNN-FDC 方法,將KDD-CUP99數(shù)據(jù)集轉(zhuǎn)化為灰度圖像后,用焦距損失替換原損失函數(shù),弱化了攻擊樣本較少帶來的影響,但是該模型在面對(duì)高維數(shù)據(jù)時(shí)往往精度較低。文獻(xiàn)[6]提出一種混合深度學(xué)習(xí)模型CNN-LSTM,利用長(zhǎng)短期記憶網(wǎng)絡(luò)來學(xué)習(xí)高維流量數(shù)據(jù)的時(shí)間特征。與其他先進(jìn)的入侵檢測(cè)算法相比,該模型雖然取得了99.03%的準(zhǔn)確率,但主要缺點(diǎn)是使用基于反向傳播隨機(jī)梯度的方法來更新權(quán)重,這需要較長(zhǎng)的時(shí)間進(jìn)行訓(xùn)練和更新,無法滿足物聯(lián)網(wǎng)系統(tǒng)的低時(shí)延性要求,且運(yùn)算開銷大。文獻(xiàn)[7]引入自然語言處理領(lǐng)域比較熱門的Transformer 方法,結(jié)合流量數(shù)據(jù)集合對(duì)模型進(jìn)行改進(jìn),提高了檢測(cè)精度并降低了時(shí)延,但是訓(xùn)練的樣本是基于統(tǒng)計(jì)學(xué)的攻擊樣本,當(dāng)遇到傳播式攻擊時(shí)檢測(cè)效果較差,無法滿足物聯(lián)網(wǎng)系統(tǒng)的高動(dòng)態(tài)性要求。
機(jī)器學(xué)習(xí)和深度學(xué)習(xí)方法大多被應(yīng)用在鄰居節(jié)點(diǎn)固定的歐式空間上,然而在真實(shí)的物聯(lián)網(wǎng)場(chǎng)景中,大量的邊緣設(shè)備和傳感器會(huì)以復(fù)雜的、非線性的方式連接在一起,從而構(gòu)成相鄰節(jié)點(diǎn)不固定的非歐式空間[8],但多數(shù)傳統(tǒng)方法是淺層學(xué)習(xí)方法,僅從統(tǒng)計(jì)學(xué)角度分析單個(gè)節(jié)點(diǎn)的流量數(shù)據(jù)的異常,并沒有顯式地學(xué)習(xí)變量之間現(xiàn)有的關(guān)系或者結(jié)構(gòu),因而常規(guī)的深度學(xué)習(xí)方法在處理非歐式空間數(shù)據(jù)上的表現(xiàn)仍難以使人滿意。一些狡猾的入侵者會(huì)用低強(qiáng)度、高針對(duì)性的異常流量發(fā)起攻擊,其中數(shù)據(jù)包與合法流量非常相似,在統(tǒng)計(jì)分析層面不會(huì)造成重大變化[9],這類新型攻擊往往很難被傳統(tǒng)方法所檢測(cè)到。
本文在圖神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上,提出一種適用于物聯(lián)網(wǎng)環(huán)境的分布式異常流量檢測(cè)方案。對(duì)圖卷積神經(jīng)網(wǎng)絡(luò)(Graph Convolution Neural Network,GCN)進(jìn)行改進(jìn),去除網(wǎng)絡(luò)中的消息傳遞模塊,在計(jì)算損失函數(shù)時(shí)隱式地引入鄰接信息并結(jié)合多層感知機(jī)(Multi-Layer Perceptron,MLP)進(jìn)行訓(xùn)練,同時(shí)設(shè)計(jì)2 個(gè)Graph-MLP(下文簡(jiǎn)稱GMLP)簡(jiǎn)化計(jì)算并方便部署分布式多級(jí)異常檢測(cè)單元。分布式流量異常檢測(cè)體系結(jié)構(gòu)將在每個(gè)物聯(lián)網(wǎng)的活動(dòng)節(jié)點(diǎn)(如霧節(jié)點(diǎn)或者SDN 轉(zhuǎn)發(fā)器)上進(jìn)行異常檢測(cè),相鄰的傳感器之間相互交換信息,以協(xié)同的方式保護(hù)網(wǎng)絡(luò),其中邊緣GMLP 用于特征分類并預(yù)測(cè)相鄰節(jié)點(diǎn)發(fā)生異常的概率,而節(jié)點(diǎn)GMLP 用于節(jié)點(diǎn)特征更新并產(chǎn)生自身異常狀態(tài)的概率。在此基礎(chǔ)上,引入注意力機(jī)制計(jì)算每個(gè)相鄰節(jié)點(diǎn)的關(guān)注度,通過優(yōu)化每個(gè)全連接層的權(quán)重選擇過程,進(jìn)一步提升模型的檢測(cè)精度。
本文考慮在霧節(jié)點(diǎn)的一側(cè)或是在SDN 邊緣轉(zhuǎn)發(fā)器上部署一個(gè)AI 分布式檢測(cè)模塊,來替代以往運(yùn)行在虛擬服務(wù)器或者云上的檢測(cè)方法。這些檢測(cè)模塊由邊緣轉(zhuǎn)發(fā)器上的低功耗AI 處理器來實(shí)現(xiàn)。每個(gè)分布式單元關(guān)注數(shù)據(jù)傳輸業(yè)務(wù)的子集,包括檢測(cè)鄰居節(jié)點(diǎn)的模塊信息和異常狀態(tài),最終實(shí)現(xiàn)本地化的異常流量檢測(cè)。
如圖1 所示,描述一個(gè)通用的物聯(lián)網(wǎng)架構(gòu)體系來支持本文所提出的分布式物聯(lián)網(wǎng)異常檢測(cè)方案的實(shí)現(xiàn),該基礎(chǔ)設(shè)施可以適用于多個(gè)物聯(lián)網(wǎng)應(yīng)用領(lǐng)域。由圖1 可知,整個(gè)架構(gòu)由物聯(lián)網(wǎng)設(shè)備、霧節(jié)點(diǎn)和云計(jì)算3 層物聯(lián)網(wǎng)設(shè)施組成,具有云-邊-端3 層分布式體系[10]。其中:云計(jì)算層位于整個(gè)架構(gòu)的最高層,為整個(gè)網(wǎng)絡(luò)提供高速海量的計(jì)算資源和分析能力;邊緣計(jì)算層位于終端設(shè)備和云計(jì)算層中間,節(jié)點(diǎn)包括網(wǎng)關(guān)、路由器以及邊緣服務(wù)器;終端節(jié)點(diǎn)處于網(wǎng)絡(luò)最邊緣,包括各類傳感器和移動(dòng)設(shè)備,負(fù)責(zé)收集和轉(zhuǎn)發(fā)各類原始數(shù)據(jù)[11]。在多數(shù)物聯(lián)網(wǎng)場(chǎng)景下,如果將處理時(shí)間敏感數(shù)據(jù)的應(yīng)用程序運(yùn)行在霧節(jié)點(diǎn)上,將大量原始數(shù)據(jù)傳輸?shù)街醒朐朴?jì)算層處理,不僅會(huì)帶來傳輸?shù)难舆t,而且會(huì)導(dǎo)致額外的計(jì)算開銷[12]。
圖1 物聯(lián)網(wǎng)分布式異常流量檢測(cè)架構(gòu)Fig.1 Distributed abnormal traffic detection architecture of IoT
為了減少資源開銷并優(yōu)化檢測(cè)效果,可將物聯(lián)網(wǎng)設(shè)備組成的網(wǎng)絡(luò)看作是由節(jié)點(diǎn)設(shè)備之間通信通道組成的圖,其結(jié)構(gòu)和行為可以類比為圖中各個(gè)節(jié)點(diǎn)的邊,而網(wǎng)絡(luò)中的異常行為可以看作是異常節(jié)點(diǎn)或者是異常邊,則由圖神經(jīng)網(wǎng)絡(luò)可以直接處理圖結(jié)構(gòu)的數(shù)據(jù)。利用這一特點(diǎn),可以提取網(wǎng)絡(luò)中出現(xiàn)的許多結(jié)構(gòu)化特征,并且利用它們對(duì)節(jié)點(diǎn)進(jìn)行分類。將每一個(gè)SDN 轉(zhuǎn)發(fā)器和核心轉(zhuǎn)發(fā)器看作是圖的節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)對(duì)應(yīng)著一個(gè)描述節(jié)點(diǎn)行為的標(biāo)簽,而將它之間的底層連接看成邊,從而可以將異常流量檢測(cè)的任務(wù)看作是檢測(cè)圖中的異常節(jié)點(diǎn)或者異常邊。
圖卷積神經(jīng)網(wǎng)絡(luò)可以學(xué)習(xí)靜態(tài)網(wǎng)絡(luò)中的內(nèi)部關(guān)系,包括網(wǎng)絡(luò)中的節(jié)點(diǎn)如何在正常行為模式中相互作用,以及如何與進(jìn)出站的流量進(jìn)行通信。在本文方案中,圖卷積神經(jīng)網(wǎng)絡(luò)用于學(xué)習(xí)網(wǎng)絡(luò)流之間的時(shí)空關(guān)系。給定圖關(guān)系公式G=(V,E),其中E?R|V|×|V|是所有頂點(diǎn)的集合,為鄰接矩陣,其元素表示各個(gè)頂點(diǎn)之間的連接關(guān)系。
以圖2(a)為代表的歐式空間卷積操作實(shí)際上是使用固定大小可學(xué)習(xí)的卷積核來抽取像素的特征。與這種方法不同,圖結(jié)構(gòu)中的鄰居節(jié)點(diǎn)是不固定的,因此,研究人員將頻譜的處理方式擴(kuò)展到圖(非歐幾里得空間)上,如圖2(b)所示。
圖2 傳統(tǒng)卷積核與圖卷積核Fig.2 Traditional convolution kernel and graph convolution kernel
圖上的頻域卷積主要是利用圖傅里葉變換來實(shí)現(xiàn)卷積,可以定義為輸入信號(hào)x?RN與傅里葉域中過濾器g=diag(θ)的乘積,如式(1)所示:
在式(1)中,U是由歸一化拉普拉斯矩陣的特征向量組成的矩陣,計(jì)算公式如下:
其中:IN是大小為N×N的矩陣;A是鄰接矩陣;度矩陣元素定義為Dij=
為了降低計(jì)算成本,一些研究人員采用切比雪夫多項(xiàng)式Tk(x)的K階截?cái)啾平姆椒?,從而?jiǎn)化了用切比雪夫多項(xiàng)式計(jì)算g?x的方法,如式(3)所示:
經(jīng)過上述推導(dǎo),最終的圖卷積神經(jīng)網(wǎng)絡(luò)表達(dá)式為:
其中:第l層的特征是X(l+1)?RN×D,N是節(jié)點(diǎn)數(shù),D是特征向量表示的維度;W(l)是待訓(xùn)練的第l個(gè)單個(gè)線性層的權(quán)重;σ是激活函數(shù);歸一化矩陣用來傳遞鄰居節(jié)點(diǎn)之間的信息。
GCN 模型的輸入是一個(gè)圖,其中包含M個(gè)具有特征的任意節(jié)點(diǎn),到該節(jié)點(diǎn)的連接作為該圖的邊。使用GCN 檢測(cè)模型,目標(biāo)是學(xué)習(xí)圖上特征的函數(shù)來對(duì)輸入節(jié)點(diǎn)進(jìn)行分類[13]。在常規(guī)的圖卷積神經(jīng)網(wǎng)絡(luò)中,訓(xùn)練和分類過程都依賴于消息傳遞模塊,即通過鄰接矩陣和特征相乘來顯式地學(xué)習(xí)圖的結(jié)構(gòu)信息,多層感知機(jī)和連通節(jié)點(diǎn)上的求和運(yùn)算被結(jié)合在一起在鄰居之間傳播特征[14]。因此,圖神經(jīng)網(wǎng)絡(luò)模型開銷往往比較大,不利于部署在一些對(duì)性能和效率要求比較高的應(yīng)用環(huán)境中。
如上文所述,以往的圖模型重點(diǎn)關(guān)注如何利用鄰居之間的消息傳遞,通過節(jié)點(diǎn)之間的信息交換,在前饋特征傳播中顯式地學(xué)習(xí)圖的特征信息。但是這些頻繁的消息傳遞往往會(huì)導(dǎo)致復(fù)雜的結(jié)構(gòu)和復(fù)雜的計(jì)算,不適用于物聯(lián)網(wǎng)環(huán)境中的網(wǎng)絡(luò)異常流量檢測(cè)。因此,本文引入一種新的思路來學(xué)習(xí)節(jié)點(diǎn)的特征變換,以避免顯式的消息傳遞。整體結(jié)構(gòu)上,以多層感知機(jī)為基礎(chǔ),將其與一種新的對(duì)比損失函數(shù)相結(jié)合來補(bǔ)償在圖數(shù)據(jù)建模中的顯示結(jié)構(gòu),以監(jiān)督節(jié)點(diǎn)特征變換的學(xué)習(xí)。
1.3.1 基于MLP 的圖模型結(jié)構(gòu)
圖3 展示了本文改進(jìn)的圖多層MLP 模型結(jié)構(gòu),其中最底層是特征處理模塊,原始的節(jié)點(diǎn)特征X經(jīng)過一組經(jīng)典的神經(jīng)網(wǎng)絡(luò)處理模塊(線性層-激活函數(shù)-層歸一化-Dropout)后得到預(yù)處理的節(jié)點(diǎn)特征表示隨后被用于2 個(gè)部分計(jì)算模型的損失函數(shù)經(jīng)過一層線性變化得到特征表示Z用于計(jì)算鄰域?qū)Ρ葥p失;Z經(jīng)過一層線性變化得到特征表示Y(此處為模型輸出層,維度與分類數(shù)目相同)用于計(jì)算交叉熵(Cross Entropy,CE)損失。
圖3 圖多層感知機(jī)模型結(jié)構(gòu)Fig.3 Structure of graph multi-layer perception model
整個(gè)模型可以表示為:
1.3.2 監(jiān)督節(jié)點(diǎn)特征轉(zhuǎn)換的對(duì)比鄰域損失
為了有效地提取圖連接信息特征,模型中的損失函數(shù)應(yīng)遵循同質(zhì)性原則,即在特征表示空間中,連接的節(jié)點(diǎn)應(yīng)是相似的,不連接的節(jié)點(diǎn)應(yīng)是遠(yuǎn)離的,這和對(duì)比學(xué)習(xí)中的理念非常吻合?;谶@樣的動(dòng)機(jī),本文應(yīng)用鄰域?qū)Ρ葥p失函數(shù),使得基于MLP 的模型無需顯式的消息傳遞模塊即可學(xué)習(xí)圖節(jié)點(diǎn)的連接特征。
在鄰域?qū)Ρ葥p失函數(shù)中,對(duì)于每個(gè)節(jié)點(diǎn),其r階鄰居被認(rèn)為是正樣本,其他節(jié)點(diǎn)被認(rèn)為是負(fù)樣本。該損失函數(shù)鼓勵(lì)正樣本更接近目標(biāo)節(jié)點(diǎn),并在特征距離方面將負(fù)樣本推離目標(biāo)節(jié)點(diǎn)。具體而言,第i個(gè)節(jié)點(diǎn)的鄰域?qū)Ρ葥p失可以表示為:
其中:B表示batchsize;sim()是余弦相似度計(jì)算函數(shù);τ是常數(shù);γij表示節(jié)點(diǎn)i和節(jié)點(diǎn)j之間的連接強(qiáng)度,將其計(jì)算為歸一化鄰接矩陣A的r次方當(dāng)且僅當(dāng)節(jié)點(diǎn)j是節(jié)點(diǎn)i的r階鄰居,γij才為 非0 值。
最終,模型的損失函數(shù)由Ncontrast 損失和CE 損失兩部分組成:
其中:lCE是交叉熵?fù)p失;α是平衡這2個(gè)損失的加權(quán)系數(shù)。
1.3.3 模型訓(xùn)練
整個(gè)模型以端到端的方式進(jìn)行訓(xùn)練。該模型的前饋不需要鄰接矩陣,在計(jì)算訓(xùn)練過程中的損失時(shí)只是參考圖結(jié)構(gòu),與傳統(tǒng)的圖形建模相比,具有更大的靈活性,因?yàn)樵摽蚣芸梢栽跊]有完整圖結(jié)構(gòu)信息的情況下進(jìn)行批量訓(xùn)練。
如算法1 所示,在每個(gè)batch 中,隨機(jī)抽取B個(gè)節(jié)點(diǎn),并取對(duì)應(yīng)的鄰接信息和節(jié)點(diǎn)特征X。需要注意的是,對(duì)于某些節(jié)點(diǎn)i,由于批次采樣的隨機(jī)性,可能會(huì)出現(xiàn)批次中沒有正樣本的情況,在這種情況下,將刪除節(jié)點(diǎn)i的損失。
算法1GMLP
在推理過程中,傳統(tǒng)的圖建模(如GCN)同時(shí)需要鄰接矩陣和節(jié)點(diǎn)特征作為輸入[15],而本文基于MLP 的方法只需要節(jié)點(diǎn)特征作為輸入。因此,當(dāng)鄰接信息被破壞或丟失時(shí),GMLP 仍然可以提供一致可靠的結(jié)果。此外,在傳統(tǒng)的圖建模中,圖信息被嵌入到輸入的鄰接矩陣中。對(duì)于這些模型,圖節(jié)點(diǎn)變換的學(xué)習(xí)在很大程度上依賴于內(nèi)部消息傳遞,而內(nèi)部消息傳遞對(duì)每個(gè)鄰接矩陣輸入中的連接非常敏感[16]。由于本文對(duì)圖形結(jié)構(gòu)的監(jiān)督是建立在損失函數(shù)上的,因此模型能夠在節(jié)點(diǎn)特征轉(zhuǎn)換過程中學(xué)習(xí)圖結(jié)構(gòu)的分布,而無需前饋消息傳遞。
如圖4 所示,本文提出2 個(gè)獨(dú)立的模型,用于更新節(jié)點(diǎn)及其對(duì)應(yīng)邊的屬性,基于此構(gòu)建了部署在邊緣轉(zhuǎn)發(fā)器上的分布式檢測(cè)單元。該架構(gòu)的核心模塊由邊緣GMLP 和節(jié)點(diǎn)GMLP 組成,分別用于對(duì)節(jié)點(diǎn)和邊的狀態(tài)進(jìn)行分類,更新節(jié)點(diǎn)及其相應(yīng)邊的屬性。邊緣檢測(cè)單元用于特征分類并預(yù)測(cè)相鄰節(jié)點(diǎn)上異常的概率,而節(jié)點(diǎn)檢測(cè)單元用于節(jié)點(diǎn)的特征更新并計(jì)算導(dǎo)致其自身異常狀態(tài)的概率。
圖4 單個(gè)異常流量檢測(cè)單元結(jié)構(gòu)Fig.4 Structure of single traffic anomaly detection unit
與常規(guī)的圖神經(jīng)網(wǎng)絡(luò)模型運(yùn)算不同,本文實(shí)現(xiàn)了一個(gè)通信通道,在通道內(nèi)建立了信息交換鄰域,用于組合邊緣GMLP 和節(jié)點(diǎn)GMLP 的信息。模型的輸入分別代表邊特征的3 個(gè)屬性和節(jié)點(diǎn)特征的5 個(gè)屬性,每個(gè)神經(jīng)元通過單向鏈接連接。具體到細(xì)節(jié),定義了輸入和輸出:假設(shè)有節(jié)點(diǎn)j及其相鄰節(jié)點(diǎn)i=1,2,…,N,邊的輸入由鄰居對(duì)應(yīng)的邊緣特征向量(在t-1 時(shí)刻為)、節(jié)點(diǎn)自身的信息以及鄰居對(duì)應(yīng)的邊緣特征向量組成,將數(shù)據(jù)通過全連接層的輸出更新邊緣特征向量。與此同時(shí),節(jié)點(diǎn)GMLP模塊同樣根據(jù)收集到的信息更新節(jié)點(diǎn)自身的特征表示,然后將更新的邊緣特征向量與第i個(gè)節(jié)點(diǎn)的特征進(jìn)行拼接作為Softmax 分類器的輸入,最后經(jīng)過分類得到節(jié)點(diǎn)j的異常概率。與其他集中式入侵檢測(cè)系統(tǒng)相比,這種實(shí)現(xiàn)信息交換的方式不需要顯式的消息傳遞,有效地減少了對(duì)資源的占用。
此外,在圖神經(jīng)網(wǎng)絡(luò)的正向傳播過程中,需要關(guān)注起重要作用的節(jié)點(diǎn)信息,而忽略起次要作用的節(jié)點(diǎn)信息。為了進(jìn)一步提高檢測(cè)的精度,本文在最后一層分類之前加入了注意力機(jī)制模塊,當(dāng)每個(gè)節(jié)點(diǎn)更新隱含層的輸出時(shí),通過計(jì)算相鄰節(jié)點(diǎn)的關(guān)注度來給每個(gè)相鄰節(jié)點(diǎn)分配不同的權(quán)值,并將權(quán)值較高的節(jié)點(diǎn)作為神經(jīng)網(wǎng)絡(luò)關(guān)注的重點(diǎn)[17]。注意力機(jī)制的引入減小了處理高維度數(shù)據(jù)的計(jì)算負(fù)擔(dān),使檢測(cè)系統(tǒng)更專注于找到數(shù)據(jù)中顯著的相關(guān)有用信息,從而提高輸出質(zhì)量。
為了評(píng)估本文方案的檢測(cè)性能,利用Python、NumPy、Pandas、Pytorch 等工具,在64 位計(jì)算機(jī)上使用Intel?i9-9700K 16 GB RAM,Nvidia GeForce RTX 2080Ti 32 GB 和10.2 版本的CUDA 進(jìn)行模擬實(shí)驗(yàn)。
本文使用的數(shù)據(jù)集為CTU-13[18],這是2011 年在CTU 大學(xué)捕獲的僵尸網(wǎng)絡(luò)流量數(shù)據(jù)集。該數(shù)據(jù)集包含13 種不同的攻擊,每個(gè)數(shù)據(jù)包都包含有關(guān)各種客戶端和服務(wù)器的信息。網(wǎng)絡(luò)由30 個(gè)轉(zhuǎn)發(fā)器和170 個(gè)物聯(lián)網(wǎng)設(shè)備組成,這些轉(zhuǎn)發(fā)器和物聯(lián)網(wǎng)設(shè)備根據(jù)CTU 中的分布式設(shè)備交換數(shù)據(jù)。數(shù)據(jù)集的統(tǒng)計(jì)信息如表1 所示。
表1 CTU-13 數(shù)據(jù)集特征描述Table 1 Feature description of CTU-13 dataset
2.3.1 蠕蟲攻擊模擬
為了更好地描述受感染轉(zhuǎn)發(fā)器上的傳播特性并增加攻擊的多樣性,在數(shù)據(jù)集中模擬蠕蟲攻擊,其網(wǎng)絡(luò)流量實(shí)例同樣被標(biāo)記為正常和異常。注入文獻(xiàn)[16,19]的僵尸網(wǎng)絡(luò)簽名的異常流量,通過檢查這種類型的特定攻擊,能夠更好地驗(yàn)證GNN 在網(wǎng)絡(luò)傳播中檢測(cè)攻擊方面的優(yōu)勢(shì)。在圖5 中給出一個(gè)示例:邊緣轉(zhuǎn)發(fā)器的代理收到來自IoT 的監(jiān)控?cái)z像頭的蠕蟲攻擊,顯示異常行為的惡意軟件試圖在物聯(lián)網(wǎng)中進(jìn)一步傳播感染,將攻擊帶到轉(zhuǎn)發(fā)器的相鄰節(jié)點(diǎn)中,到第二階段攻擊已經(jīng)蔓延到相鄰的轉(zhuǎn)發(fā)器。
圖5 蠕蟲攻擊兩階段過程Fig.5 Process of two stages of worm attack
2.3.2 數(shù)據(jù)集預(yù)處理
CTU-13 原始網(wǎng)絡(luò)數(shù)據(jù)集包含多種類型的數(shù)據(jù),因此,在模型訓(xùn)練和測(cè)試前需要進(jìn)行預(yù)處理,以便相關(guān)特征能夠歸類到底層圖的邊和頂點(diǎn)。為了提取異常行為相關(guān)的特征,本文利用時(shí)間戳、源和目的IP 地址、數(shù)據(jù)包數(shù)、字節(jié)數(shù)以及方向值的信息,數(shù)據(jù)集中的信息交換主要根據(jù)源IP 地址和目的IP 地址以連續(xù)流的形式描述。為了在圖的每個(gè)節(jié)點(diǎn)和邊上特定地分配特征,對(duì)數(shù)據(jù)進(jìn)行分組以提供每個(gè)節(jié)點(diǎn)的信息,從而分別為節(jié)點(diǎn)和邊構(gòu)造特征向量。
假設(shè)j是所關(guān)注的圖,i是指定時(shí)間窗口,定義一個(gè)包含多個(gè)索引記錄的特征向量bri,duri],其中,j可以是節(jié)點(diǎn)該向量包含以下記錄:ps 定義了在特定時(shí)間段內(nèi)從一個(gè)節(jié)點(diǎn)/邊緣發(fā)送到另一個(gè)節(jié)點(diǎn)/邊緣的數(shù)據(jù)包數(shù)量;pr 定義了接收的數(shù)據(jù)包數(shù)量;bs 定義了在一定時(shí)間內(nèi)從一個(gè)節(jié)點(diǎn)/邊發(fā)送到另一個(gè)節(jié)點(diǎn)/邊的字節(jié)數(shù);br 顯示了從節(jié)點(diǎn)接收的字節(jié)數(shù);dur(連接持續(xù)時(shí)間)描述了2 個(gè)節(jié)點(diǎn)/邊緣交換數(shù)據(jù)的連接時(shí)間和遵循日期時(shí)間格式的時(shí)間 戳。最 后,Δt?[t1,t2],RΔt定義 為RΔt=N定義為N=length(RΔt)。表2和表3 給出了從原始網(wǎng)絡(luò)數(shù)據(jù)中提取的特征組(節(jié)點(diǎn)和邊),以及相應(yīng)的數(shù)學(xué)解釋。
表2 節(jié)點(diǎn)特征矩陣描述Table 2 Node characteristic description
表3 邊特征描述Table 3 Edge characteristic description
異常流量檢測(cè)的性能指標(biāo)依賴于混淆矩陣。在混淆矩陣中,真正類(TP)為正確分類的異常流量實(shí)例;假正類(FP)為錯(cuò)誤分類的正常流量實(shí)例;真反類(TN)為正確分類的正常流量實(shí)例;假反類(FN)為錯(cuò)誤分類的異常流量實(shí)例。這4 項(xiàng)用于生成以下績(jī)效評(píng)估指標(biāo):
準(zhǔn)確率,即模型正確分類的樣本數(shù)與樣本總數(shù)的比值,計(jì)算公式如下:
精確率,即模型正確分類的正常樣本數(shù)與正常樣本總數(shù)的比值,計(jì)算公式如下:
召回率(也稱為查全率),即模型正確分類的入侵樣本數(shù)與正確分類的樣本總數(shù)的比值,計(jì)算公式如下:
誤報(bào)率(False Positive Rate,F(xiàn)PR),即被誤報(bào)為入侵的正常樣本數(shù)與正常樣本總數(shù)的比值,計(jì)算公式如下:
2.5.1 檢測(cè)性能比較
為證明本文方案的優(yōu)勢(shì),使用經(jīng)典的機(jī)器學(xué)習(xí)算法和深度學(xué)習(xí)方法在數(shù)據(jù)集CTU-13 上進(jìn)行實(shí)驗(yàn)對(duì)比,其中包括3 種機(jī)器學(xué)習(xí)方法和3 種深度學(xué)習(xí)方法。使用Adam 優(yōu)化器來訓(xùn)練模型,統(tǒng)一將批大小設(shè)置為1 024,學(xué)習(xí)率設(shè)置為0.000 1,批次設(shè)置為30,dropout 設(shè)置為0.5。使用Pytorch 構(gòu)建檢測(cè)模型,實(shí)驗(yàn)各項(xiàng)性能指標(biāo)如表4 所示。結(jié)果表明,本文方案在CTU-13 數(shù)據(jù)集上準(zhǔn)確率、精確率、召回率和誤報(bào)率最高可達(dá)0.999 3、0.982 1、0.995 3 和0.42,準(zhǔn)確率較其他對(duì)比方案最高提升了0.269 2。這得益于本文改進(jìn)的圖神經(jīng)網(wǎng)絡(luò)模型在大型的數(shù)據(jù)集中能夠更好地學(xué)習(xí)到復(fù)雜特征,因?yàn)樵酱蟮臄?shù)據(jù)集中通信模式越復(fù)雜,IP 節(jié)點(diǎn)和交互邊越多,本文改進(jìn)的模型相比于其他方法更容易發(fā)揮出優(yōu)勢(shì),更準(zhǔn)確地檢測(cè)出異常流量。此外,注意力機(jī)制的引入也進(jìn)一步提升了檢測(cè)效果,使得本文方案檢測(cè)性能優(yōu)于其他方案。
表4 不同方案檢測(cè)效果比較Table 4 Comparison of detection effects of different schemes %
利用Matplotlib 根據(jù)實(shí)驗(yàn)結(jié)果繪制ROC 曲線圖。定義橫坐標(biāo)為假陽性率,縱坐標(biāo)為真陽性率,根據(jù)ROC 曲線可以看到模型在任意閾值下的學(xué)習(xí)效果。ROC 曲線將整個(gè)圖形分為兩部分,曲線以下的面積稱為曲線下面積(AUC),表示檢測(cè)的準(zhǔn)確性,曲線越接近左上角性能越好,AUC 值越大(曲線下面積越大),預(yù)測(cè)精度就越高[26]。選取檢測(cè)性能比較好的3 個(gè)深度學(xué)習(xí)方法進(jìn)行AUC 值的對(duì)比。如圖6 所示,本文模型在CTU-13 數(shù)據(jù)上AUC 值達(dá)到了0.99,較其他模型最高可提升17.8%,這也從另外一個(gè)角度表明,在物聯(lián)網(wǎng)環(huán)境下,分布式異常檢測(cè)方案能夠獲得比較理想的檢測(cè)效果。
圖6 不同方案的ROC 曲線對(duì)比Fig.6 Comparison of ROC curves of different schemes
2.5.2 資源和時(shí)間開銷分析
為了驗(yàn)證部署分布式檢測(cè)單元與集中式IDS 相對(duì)的優(yōu)勢(shì),本文還比較了不同方案在資源消耗和時(shí)間開銷方面的性能。通過柱狀圖展示不同方案之間的資源消耗,如圖7 所示。根據(jù)數(shù)據(jù)不難看出,本文方案帶寬消耗最低只有845 kb/s,與其他主流方法相比,資源消耗顯著降低,這是因?yàn)榉植际疆惓z測(cè)不需要將數(shù)據(jù)傳輸?shù)皆品?wù)器的IDS 進(jìn)行計(jì)算,各個(gè)檢測(cè)單元以較少的帶寬占用降低了集中式IDS 的資源消耗。
圖7 不同方案的帶寬消耗比較Fig.7 Bandwidth comparison of different schemes
表5 展示了本文方案和其他對(duì)比方案的訓(xùn)練參數(shù)數(shù)量和運(yùn)行時(shí)間,使用GPU 來加快所有模型的訓(xùn)練速度。可以看出,本文方案通過改進(jìn)傳統(tǒng)GCN 的消息傳遞模塊,在時(shí)間開銷方面取得了良好的提升,訓(xùn)練時(shí)間和訓(xùn)練速度均有所減少。同時(shí)算法中的可訓(xùn)練參數(shù)較少,可以實(shí)現(xiàn)高效的并行計(jì)算。
表5 不同方案的計(jì)算復(fù)雜度比較Table 5 Computational complexity comparison of different schemes
2.5.3 消融實(shí)驗(yàn)分析
本節(jié)進(jìn)行消融實(shí)驗(yàn),驗(yàn)證不同改進(jìn)點(diǎn)對(duì)流量異常檢測(cè)的效果,實(shí)驗(yàn)結(jié)果如表6 所示。其中,改進(jìn)1表示替換GCN 中的消息傳遞模塊,使用GMLP 來訓(xùn)練圖神經(jīng)網(wǎng)絡(luò);改進(jìn)2 表示注入蠕蟲傳播攻擊,在各個(gè)轉(zhuǎn)發(fā)器IP 節(jié)點(diǎn)部署分布式異常檢測(cè)單元;改進(jìn)3表示引入注意力模塊。分別從方案中刪除幾個(gè)改進(jìn)點(diǎn),組成新的模型。
表6 消融實(shí)驗(yàn)結(jié)果Table 6 Ablation experimental results
由表6 中數(shù)據(jù)可知:改進(jìn)的GMLP 模塊可以使檢測(cè)時(shí)間降低一半,因?yàn)樵镜膱D神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)要不斷更新相鄰節(jié)點(diǎn)之間的消息傳遞,導(dǎo)致訓(xùn)練和測(cè)試時(shí)間較長(zhǎng);同時(shí)分布式異常檢測(cè)單元實(shí)現(xiàn)了異常檢測(cè)的本地化,避免了頻繁與集中式IDS 進(jìn)行數(shù)據(jù)交互,帶寬和資源消耗得以明顯降低;此外,注意力機(jī)制使得模型在訓(xùn)練時(shí)更關(guān)注主要權(quán)重學(xué)習(xí)和優(yōu)化重點(diǎn)參數(shù),準(zhǔn)確率和精度得到進(jìn)一步提升。
本文結(jié)合物聯(lián)網(wǎng)環(huán)境中設(shè)備節(jié)點(diǎn)復(fù)雜的特點(diǎn)以及低時(shí)延和高精度的檢測(cè)需求,提出一種分布式異常流量檢測(cè)方案。針對(duì)圖卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化,以改進(jìn)的多層感知機(jī)替換圖學(xué)習(xí)中原有的消息傳遞模塊,使模型更適用于物聯(lián)網(wǎng)環(huán)境。在此基礎(chǔ)上,結(jié)合物聯(lián)網(wǎng)節(jié)點(diǎn)眾多的特性,設(shè)計(jì)實(shí)現(xiàn)節(jié)點(diǎn)GMLP 和邊緣GMLP 進(jìn)行分布式流量異常檢測(cè),實(shí)現(xiàn)本地化的異常流量檢測(cè),并引入注意力機(jī)制進(jìn)一步提升模型的檢測(cè)效果。實(shí)驗(yàn)結(jié)果表明,本文方案不僅有效提高了檢測(cè)精度,而且還減少了網(wǎng)絡(luò)通信中的開銷,加快了檢測(cè)速度。下一步將對(duì)更多類型的流量數(shù)據(jù)集進(jìn)行圖結(jié)構(gòu)分析,在更廣泛的場(chǎng)景中進(jìn)行模型訓(xùn)練和測(cè)試。