何婭鎣,覃仁超,舒 月,蔣瑞林,李 丫,劉國航
(1.西南科技大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,四川 綿陽 621000;2.成都信息工程大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,四川 成都 610000)
僵尸網(wǎng)絡(luò)是由許多受感染的主機(jī)(由僵尸程序感染)組成的覆蓋網(wǎng)絡(luò),它們被僵尸程序攻擊后由僵尸主控機(jī)(Botmaster)控制以進(jìn)行惡意活動[1-2],包括各種類型的網(wǎng)絡(luò)攻擊,例如分布式拒絕服務(wù)(DDoS)、垃圾郵件、網(wǎng)絡(luò)釣魚、點擊欺詐和信息盜竊。根據(jù)相關(guān)研究結(jié)果,黑客頻繁利用基于僵尸網(wǎng)絡(luò)的網(wǎng)絡(luò)漏洞發(fā)動不同類型的網(wǎng)絡(luò)攻擊,對互聯(lián)網(wǎng)中的基礎(chǔ)設(shè)施造成危害[3]。例如,2008年互聯(lián)網(wǎng)爆發(fā)的具有超強傳播能力的conficker僵尸網(wǎng)絡(luò)病毒,感染了超過1 000萬臺計算機(jī)[4]。2016年9月,Mirai僵尸網(wǎng)絡(luò)攻擊物理設(shè)備致使美國多個城市的互聯(lián)網(wǎng)癱瘓[5]。鑒于僵尸網(wǎng)絡(luò)不斷變異帶來的各式安全問題,準(zhǔn)確識別和檢測僵尸網(wǎng)絡(luò),特別是未知的僵尸網(wǎng)絡(luò),是學(xué)術(shù)和工業(yè)研究面臨的首要挑戰(zhàn)[6]。
現(xiàn)有的基于簽名的檢測技術(shù)可以很好地檢測已知和相同類型的僵尸網(wǎng)絡(luò),但不能有效檢測未知和不斷發(fā)展的僵尸網(wǎng)絡(luò)[7]?;谏疃劝?DPI)的檢測技術(shù)側(cè)重于用戶隱私和復(fù)雜的數(shù)據(jù)源。因此,研究人員正在著手設(shè)計一種惡意軟件檢測模型,而無需了解數(shù)據(jù)包的內(nèi)容。在不訪問數(shù)據(jù)包內(nèi)容的情況下分析網(wǎng)絡(luò)流量的方法之一為通過基于行為的檢測方法[7]。本研究旨在創(chuàng)建一種基于行為的分析方法,用于檢測網(wǎng)絡(luò)流量中的僵尸網(wǎng)絡(luò),迅速產(chǎn)生良好的效果。隨著新攻擊破壞能力的發(fā)展,傳統(tǒng)機(jī)器學(xué)習(xí)算法在檢測僵尸網(wǎng)絡(luò)方面變得不那么有效。
在這方面,深度學(xué)習(xí)是一種更有效的方法,可以彌補常見的基于機(jī)器學(xué)習(xí)的僵尸網(wǎng)絡(luò)檢測方法的弱點。深度學(xué)習(xí)模型可以學(xué)習(xí)數(shù)據(jù)的不同特征,并使用它們對相似數(shù)據(jù)做出決策。從流量包中提取的特征非常有限,UNSW-NB13、CICIDS2017等大多數(shù)公共僵尸網(wǎng)絡(luò)數(shù)據(jù)集只有幾十個特征。當(dāng)這些數(shù)據(jù)集擬合較深的神經(jīng)網(wǎng)絡(luò)時,實驗結(jié)果會很差。特征集的好壞往往決定了僵尸網(wǎng)絡(luò)的檢測性能。如何從數(shù)據(jù)包中提取原始數(shù)據(jù)作為模型的輸入,目前還沒有特別明確的標(biāo)準(zhǔn)。討論和研究上述問題,首先,在特征提取方面,需要指定一個統(tǒng)一的標(biāo)準(zhǔn)來提取原始數(shù)據(jù),所以放棄手動提取方法,該類方法提取的特征差異太大,輸入相同的模型,實驗并不公平,轉(zhuǎn)而改用CICFlowmeter。CICFlowmeter是加拿大網(wǎng)絡(luò)安全研究所提供的開源工具,可以從數(shù)據(jù)包的頭部提取原始數(shù)據(jù)。在實際檢測任務(wù)中,并非所有CICFlowmeter提取的原始數(shù)據(jù)都能有效應(yīng)用于模型,存在冗余和無效特征。數(shù)據(jù)清洗后獲得的原始數(shù)據(jù)較少。如何充分利用有限的原始數(shù)據(jù)完成檢測任務(wù)是一個亟待解決的問題。因此,該文研究了在計算機(jī)視覺中表現(xiàn)良好的CNN架構(gòu)模型,并提出了BRNet,基于一維卷積神經(jīng)網(wǎng)絡(luò)和特征重用的思想,解決了有限特征的準(zhǔn)確檢測問題。
目前,僵尸網(wǎng)絡(luò)已經(jīng)成為國內(nèi)乃至全世界網(wǎng)絡(luò)安全領(lǐng)域最為關(guān)注的危害之一。近年來,國內(nèi)外提出使用傳統(tǒng)的機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘算法識別和跟蹤僵尸網(wǎng)絡(luò)。
肖琦等[8]采用隨機(jī)森林算法在CTU-13數(shù)據(jù)集上進(jìn)行僵尸網(wǎng)絡(luò)檢測。Garre等[9]提出了一種基于SSH的僵尸網(wǎng)絡(luò)的方法,并使用機(jī)器學(xué)習(xí)(ML)技術(shù)開發(fā)了實時檢測模型。Jagadeesan等[10]開發(fā)了一種早期僵尸網(wǎng)絡(luò)檢測模型。Hossain等[11]介紹了一種從網(wǎng)絡(luò)流中減少選定特征的方法,并使用神經(jīng)網(wǎng)絡(luò)檢測僵尸網(wǎng)絡(luò)。Hosseini等[12]提出了一種基于CNN-LSTM網(wǎng)絡(luò)架構(gòu)的方法,用于檢測和比較四種僵尸網(wǎng)絡(luò)攻擊類型,即IRC、HTTP、DNS和P2P。林宏剛等[13]利用圖神經(jīng)網(wǎng)絡(luò)對P2P網(wǎng)絡(luò)進(jìn)行檢測。
雖然上述研究可以達(dá)到不錯的檢測效果,但部分需要知曉數(shù)據(jù)包隱私數(shù)據(jù),可能會侵犯用戶隱私;部分雖然可以取得較高的檢測率,但過分依賴特征,即需要對初始特征再進(jìn)行多次加工處理;還有的一部分存在模型過于簡單本身檢測率就不高的問題。
文中工作主要受到卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)的啟發(fā),因此,簡單地介紹了模型中使用的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。
殘差神經(jīng)網(wǎng)絡(luò)(Residual Neural Network,ResNet)是一種廣泛使用的特征提取網(wǎng)絡(luò)[14]。ResNet的結(jié)構(gòu)加快了神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速度,大大提高了模型的精度。其核心思想是使用殘差塊,如圖1所示。
圖1 ResNet殘差塊思想架構(gòu)
將lth層的輸出表示為xl,如公式(1)所示。
xl=Hl(xl-1)+xl-1
(1)
ResNet添加一個密集卷積網(wǎng)絡(luò)(Dense Convolutional Network,DesNet),以前饋方式將每一層連接到其他每一層[15]。對于每層,將所有先前層的特征圖用作輸入,并將其特征圖用作所有后續(xù)層的輸入。DenseNet的正向過程如圖2所示。
圖2 DesNet特征復(fù)用示意圖
從圖2中可以更直觀地理解DesNet的連接方法。例如,h2不僅包括第一層的x1,還包括第一層的x0。
近些年來,CNN架構(gòu)在圖像分類方面取得了巨大成功,這給安全研究人員帶來思考。筆者的設(shè)計始發(fā)點是“pcap”文件,即數(shù)據(jù)流量包,可以轉(zhuǎn)換為類似于圖像中像素的數(shù)字化信息。所以,通過CNN架構(gòu)來處理數(shù)字信息,借此可以捕獲到額外有用信息。本節(jié)分兩部分描述模型。第一部分是關(guān)于處理“pcap”文件和清洗實時網(wǎng)絡(luò)的數(shù)據(jù),第二部分是關(guān)于BRNet模型的構(gòu)建。以下步驟簡要描述該模型,如圖3所示。
圖3 BRNet模型框架(Conv+BN+Relu+Maxpooling+Concat+Maxpooling =Recon塊)
2.2.1 數(shù)據(jù)處理
特征提取在選擇最佳特征集檢測僵尸網(wǎng)絡(luò)攻擊方面起著關(guān)鍵作用。不同的特征對實驗結(jié)果將會產(chǎn)生巨大的差異。
選擇權(quán)威的方法處理僵尸網(wǎng)絡(luò)數(shù)據(jù)集十分必要。CIC[16]提供名為CICFlowMeter-V4的實用程序提取特征。它可以從不同的“pcap”文件中提取相同的特征,因此,選擇CICFlowMeter-V4作為特征提取工具。在清理數(shù)據(jù)后,剩余的特征如表1所示。
表1 數(shù)據(jù)清理后剩余特征
這些特征大致可以分為五組,包括包數(shù)、時間、大小、流和標(biāo)志。其中未包含IP地址和協(xié)議等分類特征,因此,根據(jù)CIC網(wǎng)站的惡意IP對流量進(jìn)行標(biāo)記。使用CIC網(wǎng)站上提供的與特定僵尸網(wǎng)絡(luò)相關(guān)的IP信息來標(biāo)記數(shù)據(jù)集。標(biāo)記后,刪除所有高低偏斜值以抑制異常值。刪除了具有NaN、Inf和零標(biāo)準(zhǔn)偏差的列。最后將數(shù)據(jù)縮放到[0,1]范圍。
2.2.2 BRNet模型細(xì)節(jié)
模型啟發(fā)于殘差網(wǎng)絡(luò)的殘差塊以及DesNet的特征復(fù)用,主要由Recon塊、全局平均池化層、全連接層和Dropout層組成。對ISCX-2014數(shù)據(jù)集進(jìn)行處理后,可以獲得大約67個特征,并以一維矩陣的形式存儲。與圖片特征相比,僵尸網(wǎng)絡(luò)數(shù)據(jù)集特征大部分較少并不能發(fā)揮它們的顯著作用。筆者想到了一種設(shè)計技巧,采用在DesNet模型中的特征重用,并且需要一個類似于殘差塊的塊。該塊采用一維卷積、批量歸一化、Relu、最大池化層和連接層,如圖3所示。
當(dāng)談及CNN架構(gòu)時,卷積層是不可或缺的。使用一維卷積來處理數(shù)據(jù)(參數(shù)設(shè)置見3.2小節(jié))。由于卷積神經(jīng)網(wǎng)絡(luò)在訓(xùn)練階段,每一層都會更新網(wǎng)絡(luò)參數(shù),每一層參數(shù)的更新都會影響后面網(wǎng)絡(luò)輸入數(shù)據(jù)的分布,且會隨著網(wǎng)絡(luò)深度的加深而放大。分布的變化會減慢網(wǎng)絡(luò)訓(xùn)練的收斂速度。批量歸一化操作可以解決數(shù)據(jù)分布變化的問題。歸一化值都在特定范圍內(nèi),這使得模型能夠快速收斂,并在一定程度上防止網(wǎng)絡(luò)過擬合。實驗表明,激活函數(shù)Relu的性能優(yōu)于選擇Sigmoid和Tanh。在這三層之后,連接一個最大池層以減少參數(shù),同時保留主要特征。第二個塊包括卷積、批量歸一化、Relu和最大池化層。
綜上所述,由于特征數(shù)量較少的客觀條件,在設(shè)計網(wǎng)絡(luò)時需要考慮特征復(fù)用的思想。因此,第三個塊的輸入是前兩個塊的輸出的通道連接。這里的操作是在幾個塊的輸入拼接在一起之后,會進(jìn)行一個最大池化操作,以減少參數(shù),同時保留最主要的特征。以此類推,每個塊接收來自所有先前塊的特征,這些特征使用卷積、批量歸一化、Relu和最大池化進(jìn)行處理,并轉(zhuǎn)發(fā)給所有后續(xù)塊。ReconNet是一個卷積前饋網(wǎng)絡(luò),在塊之間具有跳躍連接。形式上,遞歸公式定義了第k個recon block:
(2)
其中,yk是塊k的輸出向量,Fk是塊k的運算符,它結(jié)合了Dropout、卷積、批量歸一化、Relu和Max-Pooling的一系列操作,⊕是傳入向量的連接運算符。yi是塊i的輸出向量,它被饋送到塊k的輸入。
在最后一個Recon塊中,在卷積層和批量歸一化、Relu和最大池化層之后,應(yīng)用全局平均池化層來降低特征的維度。在這些操作之后,數(shù)據(jù)送到兩個全連接層、Dropout和Softmax輸出,用于二分類。模型性能將按以下小節(jié)進(jìn)行評估。
ISCX-2014數(shù)據(jù)集結(jié)合了三個公開可用的數(shù)據(jù)集ISOT、ISCX-2012 IDS和CTU-13。正如ISCX網(wǎng)站上所提到的,整個數(shù)據(jù)集代表了普遍性、真實性和代表性。普遍性代表了僵尸網(wǎng)絡(luò)行為的多樣性。真實性可以定義為與捕獲的數(shù)據(jù)為現(xiàn)實世界的流量,而代表性則是可以代表大部分的僵尸網(wǎng)絡(luò)數(shù)據(jù)集[16]。目前,對于ISCX-2014數(shù)據(jù)集,其權(quán)威版本是“pcap”流量包形式。它結(jié)合了三個不同的數(shù)據(jù)集,包括大多數(shù)類別的僵尸網(wǎng)絡(luò)。因此,這個數(shù)據(jù)集作為實驗的數(shù)據(jù)集有充分的理由。在ISCX-2014數(shù)據(jù)集中,包含幾種類型的僵尸網(wǎng)絡(luò)攻擊,在實驗中選取部分的惡意樣本和所有的正常樣本,其中正常樣本數(shù)量為450 878,惡意樣本數(shù)量為48 926。
為了體現(xiàn)模型在其他數(shù)據(jù)集上的表現(xiàn)能力,在實驗部分還采取其他的僵尸網(wǎng)絡(luò)數(shù)據(jù)集,包括CIC-IDS2017和DARKNET-2020,它們均是由加拿大安全研究所提供。在其官方網(wǎng)站上有已經(jīng)處理好的csv文件。
模型采用了Adam優(yōu)化器,初始學(xué)習(xí)率設(shè)置為0.005。kernel size設(shè)置為15,filter設(shè)置為15,stride設(shè)置為1,pooling size設(shè)置為2,dropout設(shè)置為0.3,它們的參數(shù)值在整個模型中保持不變。實驗在GPU工作站Ryzen threadripper 1950x上進(jìn)行,配備16核處理器、GeForce GTC 1070 Ti (8 GB)顯卡,在Windows10上運行。該模型使用Keras框架實現(xiàn)。
一般來說,分類器可以使用整體準(zhǔn)確度來衡量。為了更好地評估模型的性能,該文使用準(zhǔn)確率、召回率和F1作為指標(biāo)。計算公式如下所示:
(3)
(4)
(5)
其中,TP是被正確分類為僵尸網(wǎng)絡(luò)攻擊流量的僵尸網(wǎng)絡(luò)攻擊樣本數(shù);FP是被錯誤分類為僵尸網(wǎng)絡(luò)攻擊流量的正常樣本數(shù);TN是被正確分類為僵尸網(wǎng)絡(luò)攻擊流量的正常樣本數(shù)作為正常流量;FN是被錯誤分類為正常流量的僵尸網(wǎng)絡(luò)攻擊樣本的數(shù)量。
3.4.1 對比實驗
為了顯示提出的方法與使用ISCX-2014數(shù)據(jù)集的其他研究相比的優(yōu)越性,在表2中進(jìn)行了性能對比。在ISCX-2014數(shù)據(jù)集上的整個實驗的訓(xùn)練過程如圖4所示。整個訓(xùn)練過程并沒有過擬合現(xiàn)象。
表2 與之前的研究性能對比 %
圖4 模型損失訓(xùn)練
在比較的方法中,Yin等[17]使用生成對抗網(wǎng)絡(luò);Beigi等[18]使用一組手動設(shè)計的特征來使用C4.5決策樹進(jìn)行僵尸網(wǎng)絡(luò)檢測;Homayoun等[19]使用由自動編碼器和CNN組成的深層結(jié)構(gòu);Qin等[20]使用兩步深度學(xué)習(xí)方法來檢測攻擊,它可以創(chuàng)建符合任意協(xié)議的少量頭字段的流規(guī)則;Bijalwan等[21]使用分類器集合進(jìn)行僵尸網(wǎng)絡(luò)檢測;Hossain等[11]首先減少手動選擇的特征,再使用深度學(xué)習(xí)進(jìn)行僵尸網(wǎng)絡(luò)檢測;Shahhosseini等[22]使用LSTM模型檢測原始數(shù)據(jù)包數(shù)據(jù)以進(jìn)行僵尸網(wǎng)絡(luò)檢測。
所有這些方法都使用來自ISCX-2014數(shù)據(jù)集的預(yù)定義特征作為學(xué)習(xí)算法的輸入。表2展示了四個分類器在ISCX-2014數(shù)據(jù)集上的性能評估的實驗結(jié)果。從表2可以看出,該模型優(yōu)于其他檢測算法。提出的方法的準(zhǔn)確率可以達(dá)到99.29%,比Shahhosseini等[22]提出的方法準(zhǔn)確率提高了2.16百分點,其他性能指標(biāo)均有大幅度提高。
3.4.2 其他數(shù)據(jù)集
為了更好地展示模型在其他僵尸網(wǎng)絡(luò)數(shù)據(jù)集上的表現(xiàn)能力,這里采用了3.1小節(jié)中提到的CIC-IDS2017和DARKNET-2020數(shù)據(jù)集進(jìn)行實驗,實驗結(jié)果如表3所示。
表3 性能展示 %
僵尸網(wǎng)絡(luò)是網(wǎng)絡(luò)安全領(lǐng)域亟待解決的問題之一。目前,已經(jīng)出現(xiàn)了大量的方法來檢測僵尸網(wǎng)絡(luò)。從數(shù)據(jù)包中提取原始數(shù)據(jù)的方法多種多樣,初始特征的選取也參差不齊。初始特征的選取會對整個實驗產(chǎn)生較大的影響。因此,需要找到一個統(tǒng)一的處理僵尸網(wǎng)絡(luò)數(shù)據(jù)包的方式,再交由神經(jīng)學(xué)習(xí)模型處理。CICFlowmeter是一個廣泛使用的數(shù)據(jù)包處理組件,可以設(shè)置統(tǒng)一的標(biāo)準(zhǔn)從流量數(shù)據(jù)包中提取原始數(shù)據(jù)。根據(jù)CICFlowmeter提取的有限特征,該模型利用特征重用的思想,在有限特征下取得良好的性能。通過實驗證明了其架構(gòu)的可行性。提出的BRNet模型可以有效識別僵尸網(wǎng)絡(luò)攻擊,并且實驗指標(biāo)明顯優(yōu)于目前大多數(shù)方法。