鄒福泰,譚越,王林,蔣永康
(上海交通大學網絡空間安全學院,上海 200240)
隨著全球網絡威脅態勢的不斷變化,新型網絡攻擊手段層出不窮,攻擊方式愈發復雜多變,網絡安全態勢依舊嚴峻,網絡安全感知防護仍然任重道遠。在木馬、蠕蟲等惡意軟件之中,僵尸網絡(botnet)仍然是最廣泛、最持久的安全威脅。根據CenturyLink 威脅研究實驗室發布的《2019 威脅報告》[1],2019 年上半年,某實驗室的系統平均每天檢測到惡意威脅120 萬種,較2017 年的近20 萬種增加了500%。其中,僵尸網絡威脅達到了每日約18 000 多次。
僵尸網絡指的是一組被攻擊者破壞了安全防護系統并奪取了控制權的用戶終端。受感染終端(bot)通常由一個或多個攻擊者進行控制[2]。通過僵尸網絡,攻擊者可以實施一系列的犯罪活動,包括分布式拒絕服務(DDoS,distributed denial of service)攻擊、網絡釣魚、加密勒索、惡意軟件分發以及交換非法信息等,對互聯網生態環境及網絡空間安全構成了嚴重威脅。
近年來,已有多起僵尸網絡攻擊導致的安全事件發生。其中,2016 年年底,Mirai 僵尸網絡利用嵌入式和物聯網設備進行了大規模的DDoS 攻擊,并在最初的20 小時內感染了近65 000 個物聯網設備[3]。2017 年,Necurs[4-5]僵尸網絡幾小時內發送了超過40 000 封惡意郵件,向數以千計的受害者勒索2.047 BTC。2018 年,門羅幣挖礦僵尸網絡Smominru[6]感染全球3 000 萬個系統,并破壞50 萬臺用于加密采礦的機器。2019 年,Emotet 僵尸網絡通過電子郵件中的下載鏈接,控制受害者終端并竊取終端數據,感染美國多個州和地方政府的系統[7]。
Destil 安全研究實驗室發布的《2019 惡意僵尸報告》顯示[8],2019 年僵尸網絡流量在全球互聯網流量總占比近40%。此外隨著物聯網的興起,僵尸網絡越來越多地利用隱私結構和匿名服務。麻省理工互聯網研究計劃(IPRI,Internet policy research initiative)[9]報告顯示,Skynet 僵尸網絡、Sefnet 僵尸網絡和Zeus 僵尸網絡變體等使用Tor匿名網絡托管的僵尸網絡正在肆虐,為檢測定位真實IP 地址增加了難度。
因此,從網絡空間安全威脅態勢來看,僵尸網絡攻擊手段越來越先進,越來越難以被發現,網絡空間安全形式越來越嚴峻,有必要開發更加新穎、更加有效的僵尸網絡檢測技術,更好地防范僵尸網絡對網絡空間環境的影響。
本文基于對僵尸網絡流量的研究,提出利用生成對抗網絡(GAN,generative adversarial network)從時間、空間2 個維度來檢測僵尸網絡的方法。本文提出的基于生成對抗網絡的僵尸網絡檢測增強模型,可以提高檢測模型的檢測能力及泛化能力,并提供了全面有效地利用深度學習檢測僵尸網絡的方案,對僵尸網絡檢測和網絡安全管理具有重要意義。具體而言,本文的主要貢獻如下。
1) 針對部分僵尸網絡訓練樣本較少的問題,本文研究了生成對抗網絡在圖像識別領域的建模應用,提出了一種基于DCGAN(deep convolutional generative adversarial network)的僵尸網絡檢測模型,可以有效擴充標簽樣本集,提高檢測模型的檢測能力,增強模型的泛化能力,為進一步提升僵尸網絡檢測與發現能力提供了一種有效的建模方法。
2) 提出了一種基于BiLSTM 的僵尸網絡時序特征生成器建模方法BiLSTM-GAN,并實現了一種新的基于BiLSTM-GAN 的僵尸網絡檢測模型,有效提高了對僵尸網絡行為的檢測準確率,提升了對未知僵尸網絡的檢測能力。
隨著云服務和物聯網(IoT,Internet of things)設備的數量呈指數增長,僵尸網絡攻擊事件大大增加,僵尸網絡安全防護迫在眉睫。McAfee Labs 報告[10]顯示2019 年第一季度發現的新惡意軟件數量達到6 600 萬,其中僵尸網絡占了很大一部分。傳統的基于人工的可疑代碼檢測、逆向工程和漏洞識別的方法耗時較高,以至于無法滿足日益增長的高精度、高實時性的僵尸網絡檢測能力要求。由于僵尸網絡近年來的演化,其種類越發繁多、破壞力不斷增強、對網絡安全造成的威脅日益嚴峻,國內外現已對僵尸網絡形成了有針對性的研究。目前在此領域下已經產生了許多對僵尸網絡的不同檢測方法,按照檢測算法及數據來源,可將其分為兩大類:基于蜜罐的僵尸網絡檢測方法、基于入侵檢測系統(IDS,intrusion detection system)的檢測方法。其中基于入侵檢測系統的檢測方法分類如圖1 所示。

圖1 基于入侵檢測系統的檢測方法分類
在現有的檢測方法中,最常見的是基于異常的檢測方法。其原理是通過利用機器學習、統計分析等方法對網絡中與預期行為不一致的異常數據進行檢測。
基于異常的僵尸網絡檢測方法依據檢測對象可分為基于主機的檢測方法和基于網絡的檢測方法,以及主機和網絡相結合的檢測方法[11]。基于主機的檢測方法針對受感染計算機上運行的僵尸惡意軟件,主要通過檢查終端級別的主機信息,如API(application program interface)調用、文件更改、活動進程、資源使用情況等來檢測終端是否被感染。Tokhtabayev 等[12]提出了一種監控終端系統調用的監視網絡檢測方法。Sharafaldin 等[13]提出了一種使用內存取證分析技術和新型的域生成算法檢測器來檢測并可視化僵尸網絡的方法。Creech 等[14]提出了一種基于連續和非連續的系統調用的語義分析僵尸網絡檢測方法。
基于網絡的檢測方法基于對網絡流量的分析[15],通過分析僵尸網絡生命周期不同階段產生的網絡流量的不同參數(包括網絡流量行為、流量模式、響應時間、網絡負載和連接特征等)來感知惡意流量。基于網絡的檢測方法可以進一步分為2 類,即主動檢測和被動檢測。
基于網絡的主動檢測方法通過向被監視的網絡或服務器中注入特制的數據包,并對捕獲的響應進行觀察和分析,以檢測網絡中的惡意活動。Gu[16]提出了一種主動檢測技術BotProbe 來檢測基于IRC的僵尸網絡,它通過注入調查終端內部的數據包來測試IRC 終端是否是僵尸。Yahyazadeh 等[17]提出了一種基于網絡行為的主動檢測方法BotCatch,該方法通過在線增量聚類算法識別參與協作活動的可疑主機,然后基于幾個模糊函數為每個主機計算一個分數,以識別被僵尸感染的主機。但基于網絡的主動檢測方法也有局限性:其會向可疑終端注入額外的數據包,使正常的網絡流量過載;難以將合法流量與人工注入的流量分開以進行異常檢測,干擾正常流量并有可能存在隱私泄露問題。
基于網絡的被動檢測方法通過觀察網絡流量以發現僵尸程序或C & C 服務器發起的任何可疑通信。這種方法的基本思路是:存在于同一僵尸網絡中的僵尸程序應該具有相同的通信模式,可以通過在某些指定時間段內觀察流量的請求?響應行為來檢測。目前,研究人員已經提出了許多基于網絡的被動僵尸網絡檢測技術,如 Gu 等提出了BotHunter[18]、BotSniffer[19]和 BotMiner[20],其中BotHunter 利用僵尸感染階段的有序通信流量進行檢測,BotSniffer 和BotMiner 則是利用屬于同一僵尸網絡的僵尸具有相似的活動和響應進行檢測。Zhao 等[21]通過分析數據流行為特征和流間特征建立決策樹分類模型,有效檢測僵尸網絡。此外,基于網絡的被動檢測方法所使用的具體應用模型又可分為統計方法、圖論、機器學習、相關性、熵、隨機模型、離散時間序列、傅里葉變換、數據挖掘、聚類分析、可視化等技術,以及這些技術的結合[22]。
隨著人工智能的發展,神經網絡深度學習算法逐漸被應用于僵尸網絡檢測。Torres 等[23]將僵尸網絡流量轉化成狀態特征序列,并采用循環神經網絡(RNN,recurrent neural network)進行檢測。Homayoun 等[24]采用自編碼器(AE,auto-encoder)和卷積神經網絡(CNN,convolutional neural network)這2 種深度學習算法檢測惡意僵尸網絡流量。Vinayakumar 等[25]針對惡意的域名生成算法(DGA,domain generation algorithm)提出了一種可擴展的結合了卷積神經網絡與長短時記憶網絡的檢測模型,可以有效檢測基于DGA 的僵尸網絡。Mcdermott等[26]將深度學習算法應用到物聯網領域,建立了一種基于雙向長短時記憶的遞歸神經網絡,通過文本識別檢測物聯網僵尸網絡。Meidan 等[27]同樣研究了物聯網僵尸,提出了一種使用深度自動編碼器檢測物聯網僵尸異常流量的方法,并對Mirai 和Bashlite這2 種知名物聯網僵尸網絡進行了實驗評估,取得了不錯的效果。
在僵尸網絡領域,深度學習有以下優點:易于實現特征工程、易于實現高維空間特征表達、易于實現大數據學習。
目前,深度學習在僵尸網絡領域的應用主要可以分為2 個方向[28],第一個方向是利用深度學習模型中的生成模型,對高維特征逐層轉換,學習其抽象特征,完成對僵尸網絡的檢測分類;第二個方向是采用深度學習模型中的判別模型自動學習僵尸網絡的內在特征,并通過Softmax 等函數直接進行判別分類。
本文提出了一種利用生成對抗網絡,從時間和空間2 個維度檢測僵尸網絡的方法。該方法首先將僵尸網絡流量中的數據包重組為流,分別提取時間維度的流量統計特征和空間維度的流量圖像特征;然后基于生成對抗網絡的僵尸網絡流量特征生成算法,在2 個維度生產僵尸網絡特征樣本;最后設計基于 DCGAN 的僵尸網絡檢測模型和基于BiLSTM-GAN 的僵尸網絡檢測模型,實現基于深度學習的僵尸網絡流量檢測方法。
為了提高檢測模型的檢測能力和穩健性,本文在傳統機器學習方法上應用生成對抗網絡,從空間和時間2 個維度分別研究僵尸網絡特征的生成對抗。
GAN 近年來在深度學習領域受到廣泛關注,其出眾的數據生成能力已成為深度學習領域最重要、最熱門的研究課題。GAN 主要思想源自博弈論,通過設置判別模型與生成模型來互相競爭,以提升學習的效果,獲得高維、復雜的真實樣本數據分布。其結構如圖2 所示。

圖2 GAN 結構
GAN 的主要結構包含一個生成器和一個判別器,生成器G輸入隨機噪聲矢量z(通常為均勻分布或正態分布),通過將其映射至新的多維數據空間,生成了假樣本G(z);然后使用判別模型進行二分類以計算測試樣本為真實樣本的可能性并與真實情況進行比較。當判別器D的判別準確率達到50%時,意味著已經無法確定測試樣本是否為真實樣本或生成的假樣本,這時認為生成器G已經學習到了真實樣本的數據分布。生成對抗網絡目標函數為

其中,x表示數據樣本矩陣,Pz(z)表示輸入噪聲的數據分布,G(z)表示輸入噪聲生成的樣本數據,D(x)表示判別器所判斷的樣本x為真實樣本而非生成樣本的概率。
目前,生成對抗網絡在許多領域已經得到了充分的應用,尤其在計算機視覺領域取得了很大的突破,主要被應用于圖像生成、圖像到圖像翻譯、提高圖像分辨率和圖像補全等領域。
在網絡安全領域,Kim 等[29]提出了一種基于遷移學習的生成對抗網絡tGAN,將自編碼器應用于生成對抗網絡,進而對惡意代碼檢測。此后Kim 等[30]又進一步提出了tDCGAN,改善了模型訓練的穩定性,并使其具備了一定的檢測0-day 攻擊的能力。Yin 等[31]提出了Bot-GAN,用于僵尸網絡檢測,其輸入為僵尸網絡的統計特征,通過生成對抗網絡以提高檢測模型的精度。
本文研究生成對抗網絡在僵尸網絡領域的應用,從空間和時間2 個維度來實現僵尸網絡流量特征的生成,以增加僵尸網絡流量特征樣本,從而提高僵尸網絡檢測模型準確率和穩健性。
3.2.1 基于ResNet 的僵尸網絡檢測模型
基于ResNet 的僵尸網絡檢測模型總體框架[28]包括數據預處理、訓練及測試模塊。首先對ISCX botnet 數據集進行數據預處理,將其轉換成模型所需圖像。數據預處理分為以下幾個步驟。
1) 流量分割
僵尸網絡流量分類研究的主體對象需要按照一定的粒度分割成特定的流量單元。本文采用僵尸網絡領域常用的流粒度。流被定義為擁有相同五元組且按照時間順序排列的數據包的集合。定義單個數據包為(q,l,t),其中q代表該數據包的五元組,即

其中,q1=q2=…=qn;t1 將流量分割為流粒度之后,還需要考慮數據包內的多個協議層信息。部分研究工作只選取應用層信息,而本文考慮到檢測全面性等問題,選用全部數據信息進行流量分割處理。 2) 流量清洗 為了防止流量中的敏感信息泄露,在使用數據前需要在流量處理階段對數據進行流量清洗以保護用戶隱私。比較常用的方法是將MAC 地址和IP地址分別進行隨機化處理。本文在這一步驟中也對重復的數據進行清理,消除冗余。 3) 圖像轉化 由于分割后的數據流長度不定,而本文所使用的針對圖像特征的ResNet 檢測模型需要使用相同維度的輸入圖像,因此需要對數據流內容進行截取處理。目前,常見的截取方法如下:①直接截取原始數據的前24 B,24 個數據包為一組,組成圖像;② 使用TCP 層的前1 024 B 流量;③使用MNIST數據集的格式,并采用網絡流量中的前784 B 轉化為28 像素×28 像素的圖像。本文直接提取前1 024 B,對于長度不足1 024 B 的,使用0x00 填充,最后轉化為32 像素×32 像素的圖像。 3.2.2 基于BiLSTM 的僵尸網絡檢測模型 基于BiLSTM 的僵尸網絡檢測模型總體框架包括數據預處理、訓練及檢測模塊。首先將ISCX botnet 數據集進行數據與處理以獲得檢測所需要的統計特征。數據的預處理主要分為以下幾個步驟。 1) 流量分割 在本節的檢測模型中,依然需要將網絡流量分割為一定的流量單元,所采用的方法與3.2.1 節的方法相同,依照五元組分割流量數據。 2) 特征提取 本文參考了現有的研究[32],在常見的特征基礎之上,篩選出部分能夠反映僵尸網絡流量通信和行為特點且真實有效的統計特征,進一步優化了僵尸網絡統計特征的選擇與提取。本節提取的流量統計特征如表1 所示。 如表1 所示,提取的流量特征可以分為三大類:基本特征、基于異常行為的特征和基于流相似的特征。基本特征反映了流量的協議特征,主要包括流量的源IP、目的IP、源端口、目的端口、通信協議等;基于異常行為的特征反映了流量的通信連接特征和連接行為特征,如流持續時間、重連接次數等,可以用于刻畫僵尸網絡的通信模式;基于流相似的特征反映了流的數據特征和時間特征,由于僵尸網絡生成的網絡流量與普通流量相比更加相似且統一,因此基于流相似的特征可以很好地刻畫僵尸網絡流量的特性。例如,僵尸網絡在發動DDoS 攻擊時,常常會產生大量相同長度的數據包。 表1 流量統計特征 3) 數值化以及統一化 不同的特征可能有不同的量綱和單位,因此需要對特征數據進行數值化與歸一化以消除數據類型、大小之間的差異。 本節對提取到的16 種特征中的非數值特征protocol 進行數值化處理,protocol 共有107 種可能的取值,因此可以利用One-Hot 編碼將其編碼成107 維特征向量。加上15 種數值特征,組成122維的特征向量。然后使用min-max 歸一化方法對得到的特征向量進行歸一化,使所有維度的數據分布在[0,1],消除量綱的影響。 3.3.1 基于DCGAN 的僵尸網絡檢測模型 隨著生成對抗網絡在圖像生成領域研究的不斷深入,出現了許多優秀的圖像生成算法,但是基本的GAN 訓練不穩定,容易出現生成器產生無意義的輸出的現象。為此,Radford 等[33]提出了深度卷積生成對抗網絡——DCGAN,創新地將基本GAN 中的生成器的全連接層替換為反卷積層,從而在圖像生成任務中實現了出色的性能。DCGAN 利用CNN 強大的特征提取能力提高了生成網絡的學習效果,通過在層內使用批標準化(BN,batch normalization)讓生成器得以穩定學習,使模型可以更好地學習樣本數據分布,更穩定地生成高質量的圖片。 標準的生成對抗網絡是一個二分類模型,但是對于僵尸網絡檢測來講,判別器的輸入樣本包括真實樣本中的良性流量樣本和僵尸網絡流量樣本以及生成器生成的假樣本G(z)。因此,本節提出的基于DCGAN 的僵尸網絡檢測模型將基于ResNet 的僵尸網絡檢測模型作為判別器,并修改其輸出節點為3 個,分別對應良性樣本(benign)、僵尸樣本(botnet)、生成器生成樣本(fake),即為三分類模型。基于DCGAN 的僵尸網絡檢測模型如圖3所示。 圖3 基于DCGAN 的僵尸網絡檢測模型 基于DCGAN 的僵尸網絡檢測模型可以源源不斷地生成網絡流量圖像,擴充僵尸網絡訓練集,并通過生成對抗網絡的反饋機制提升檢測模型的準確性。基于DCGAN 的僵尸網絡檢測模型使用改進的交叉熵損失函數為 其中,(x,y)表示所有輸入樣本及樣本標簽的集合,包括真實樣本 (xtrue,ytrue)和生成樣本 (xfalse,yfalse)兩部分;c表示樣本所屬的類別且c∈{Benign,Botnet,Fake};Pmodel(c|x)表示檢測模型預測的樣本x屬于類別c的概率。 3.3.2 基于BiLSTM-GAN 的僵尸網絡檢測模型 近年來,隨著自然語言處理領域研究不斷深入以及生成對抗網絡的日漸成熟,逐漸出現了一些時間序列生成領域的成果。Oord 等[34]提出了用于生成原始音頻的WaveNet。Mehri 等[35]提出了用于語音合成的SampleRNN。Mogren[36]提出了一種使用一個LSTM 層和一個全連接層組成生成器和判別器的C-RNN-GAN,用于生成古典音樂。Yu 等[37]提出了一種使用2 個LSTM 層和一個全連接層組成生成器和判別器的C-LSTM-GAN,通過音樂的旋律生成歌詞。在這些研究的基礎上,Zhu 等[32]提出了一種使用BiLSTM 組成生成器,CNN 組成判別器的BiLSTM-CNN-GAN,用于生成醫用心電圖。在參考現有的時間序列生成算法的研究基礎上,本文提出了一個基于BiLSTM-GAN 的僵尸網絡檢測模型,如圖4 所示。 圖4 基于BiLSTM-GAN 的僵尸網絡檢測模型 基于BiLSTM-GAN 的僵尸網絡檢測模型同3.3.1 節一樣使用改進后的交叉熵損失函數,不斷生成僵尸網絡統計特征樣本,提高檢測模型的檢測準確率。 所有檢測模型的實際檢測效果都和訓練及評估檢測模型所采用的數據集息息相關,因此選擇一個合適的、有效的數據集對于模型訓練是至關重要的。 目前,僵尸網絡檢測領域常用的實驗數據集有CTU-13 數據集[38]、ISOT 數據集[21]、Bot-IoT 數據集[39]、ISCX2012 入侵檢測數據集[40]、N_BaIoT 數據集[41]、ISCX botnet 數據集[42]等公開數據集。但目前大多數的僵尸網絡數據集存在以下3 個方面的問題。 1) 通用性較差 大多數僵尸網絡數據集只包含極個別的僵尸網絡流量數據,存在僵尸網絡數據樣本多樣性較差的問題,這樣訓練得到的檢測模型只能描述特定的僵尸網絡行為的少部分特征,不具備很好的通用性,且面對新的僵尸網絡威脅,無法產生良好的效果。如,ISOT 數據集僅包含了Storm 和Zeus 這2 種P2P 類型的僵尸網絡;NBaIoT 數據集僅包含了Mirai 和BASHLITE 這2 種物聯網類型的僵尸網絡。使用這些數據集實現的檢測模型雖然檢測精度較高,但面對實際僵尸網絡流量時很難有較好的檢測效果。 2) 不能很好地反映實際情況 大多數的僵尸網絡數據集都是在受控環境中進行生成或捕獲的。較實際的僵尸網絡,受控環境中的樣本很難實現所有預期的惡意行為,從而使數據集中的數據無法全面實際地展現僵尸網絡特征。另外,受控環境中的樣本難以長時間進行生成或捕獲,會造成部分處于靜默休眠期的僵尸網絡采集不全面。 3) 可能存在隱私問題 大多數的僵尸網絡數據集收集的網絡流量為了能夠反映檢測模型在部署期間面對真實環境的檢測能力,通常會在數據集中混入實際生活中的網絡流量。但由于隱私問題,在大多數情況下,在實際生產環境中捕獲網絡流量是不可行的,只能在受控環境中生成或捕獲流量。 為了解決以上3 個問題,本文在評估了多個數據集后,選用了加拿大紐布倫斯威克大學網絡安全研究所創建的僵尸網絡數據集——ISCX botnet 數據集,作為訓練和評估僵尸網絡檢測模型檢測效果的基準數據集。該數據集通過覆蓋方法[43]合并多個知名數據集,并將惡意僵尸網絡流量數據映射到本地網絡與良性數據合并,克服了傳統僵尸網絡數據集存在的問題。ISCX botnet 數據集分為訓練集和測試集兩部分,共包含16 種不同類型的僵尸網絡流量及大型網絡中的未知良性流量。在進行流量分割后,訓練集包含流數據347 121 個,經數據處理后包含流量數據162 410 個,其中,良性流量141 887 個,僵尸網絡流量20 523個;測試集包含流數據321 893個,經數據處理后包含流量數據133 261 個,其中,良性流量112 302 個,僵尸網絡流量20 959 個。訓練集包含了15%的ISOT 數據集,ISCX2012IDS 數據集中部分良性流量和由捷克技術大學創建的惡意軟件捕獲項目所捕獲的CTU-13 數據集中的Neris、Rbot、Virut 和NSIS 這4 種僵尸網絡流量;測試集包含25%的ISOT 數據集,ISCX2012IDS 數據集中部分良性流量和IRC 僵尸網絡流量和CTU-13 數據集中的Neris、Rbot、Virut、NSIS、Menti、Sogou和Murlo 這7 種僵尸網絡流量。在保證數據集更符合實際情況的基礎上,測試集的僵尸網絡種類多于訓練集的僵尸網絡種類,保證了數據集擁有評估檢測模型是否具備檢測未知僵尸網絡的能力。ISCX botnet 數據集僵尸網絡組成情況如表2所示,其中√和×分別表示僵尸網絡樣本存在和不存在,百分數表示僵尸網絡樣本占比。 表2 ISCX botnet 數據集僵尸網絡組成情況 實驗環境系統配置為 CentOS7.7,CPU 為10 核Intel(R)Xeon(R)CPUE5-2630v4@ 2.20 GHz,采用2 個Nvidia 1080Ti GPU 加速訓練,深度學習神經網絡模型使用主流的Keras 深度學習框架進行搭建。 在模型結構設計方面,基于DCGAN 的檢測模型輸入為3.3 節中處理后的僵尸網絡流量圖片以及數據采用正態分布的噪聲z。生成器由多個卷積層、上采樣層和LeakyReLU 激活層組成并進行圖像樣本生成。其中,卷積層采用5×5 卷積核,上采樣層采用2×2 的上采樣因子,LeakyReLU 激活層負斜率系數設為0.2,迭代次數設為50 次,批處理個數batch_size 設為128,選用Adam 作為優化器,式(3)所示的改進后的交叉熵損失函數作為生成器的損失函數。判別器采用3.1 節中所述的基于ResNet 的僵尸網絡檢測模型,輸出節點設為3 個,分別表示模型預測輸入的網絡流量是良性流量、僵尸網絡流量還是生成器生成的流量。 為了進行對比實驗,本節還實現了基于對抗自編碼器(AAE,adversarial autoencoder)的檢測模型和基于基礎GAN 的檢測模型。 基于BiLSTM-GAN 的檢測模型輸入為3.2 節中處理后的僵尸網絡流量統計特征以及數據采用均勻分布的噪聲z。生成器由四層架構組成,包括一個輸入層,一個輸出層和2 個BiLSTM 隱層,進行僵尸網絡時間特征生成。其中,輸入層節點設為128 個,BiLSTM 隱層節點為64 個,輸出層節點為僵尸網絡流量統計特征維數即122 個,迭代次數設為100 次,批處理個數batch_size 設為128,選用Adam 作為優化器。判別器采用基于BiLSTM 的僵尸網絡檢測模型,輸出節點設為3 個。 本文在全為已知僵尸網絡的情況下對基于GAN、DCGAN、AAE 的檢測模型分別混入100、500、1 000、2 000、5 000、8 000 個生成器生成的樣本,觀測3 種檢測模型和3.2 節中所述的基于ResNet 的僵尸網絡檢測模型的檢測性能指標。 通過分析生成器生成的樣本可知,相較于GAN,DCGAN 學習到的數據分布更詳細,樣本之間的差異也更為明顯。AAE 通過調整輸入噪聲z,避開了GAN 無法生成離散樣本的問題,使樣本更平滑,但也具有自編碼器存在的分辨率較低的問題。 4 種僵尸網絡檢測模型的檢測準確率如圖5所示。 圖5 不同檢測模型的檢測準確率 如圖5 所示,在混入100、500、1 000、2 000、5 000、8 000 個生成器生成的樣本后,3 種檢測模型的準確率與基于ResNet 的檢測模型相比,均整體小幅提高。從效果來看,基于DCGAN 的檢測模型優于基于AAE 的檢測模型和基于GAN 的檢測模型,特別地,在混入1 000 個樣本時,檢測準確率達到最大值,之后隨著樣本數量增多,準確率開始下降,其原因在于網絡流量類型的多樣性導致數據分布不均勻,而且會有很多未知的噪聲,以此為基礎的GAN 生成的圖片分布也會偏離真實的數據分布。在少量樣本添加的情況下,可以一定程度上增強小樣本分類數據規模,從而增加準確率。隨著樣本添加數量增加,噪聲分布增多,可能會導致訓練時噪聲較多的樣本數超過原樣本數,從而學習到了錯誤的特征。 基于DCGAN 的僵尸網絡檢測模型和基于ResNet 的檢測模型的其他性能指標對比如表3 所示。 表3 檢測性能指標對比(DCGAN 與ResNet) 另外,本文比較了基于DCGAN 的僵尸網絡檢測模型和基于ResNet 的檢測模型在良性樣本和僵尸網絡樣本上的準確率,如表4 所示。 表4 不同樣本檢測準確率對比(DCGAN 與ResNet) 相較于基于ResNet 的檢測模型,基于DCGAN的僵尸網絡檢測模型準確率提升0.07%,精度提升0.18%,召回率下降0.08%,F1 分數提高0.05%,對良性樣本的檢測準確率下降0.08%,對僵尸網絡樣本的檢測準確率上升0.1%。總體來說,加入生成對抗網絡之后檢測準確率和精度有所提升,檢測性能有了部分提高,有助于僵尸網絡流量的識別。 在全為已知僵尸網絡的情況下對基于BiLSTM-GAN 的檢測模型分別混入100、500、1 000、2 000、5 000、8 000 個生成器生成的樣本,觀測檢測模型的檢測性能指標。值得注意的是,由于基本的GAN 不具備學習時間序列的能力,因此本實驗未與基本 GAN 進行檢測與對比。基于BiLSTM-GAN 的僵尸網絡檢測模型和3.2 節中所述的基于BiLSTM 的僵尸網絡檢測模型的檢測準確率如圖6 所示。 圖6 BiLSTM 與BiLSTM-GAN 的檢測準確率 如圖6 所示,基于BiLSTM-GAN 的僵尸網絡檢測模型在混入1 000 個樣本時準確率達到最大,為85.51%,之后隨著樣本數量增多,準確率開始下降。混入1 000 個樣本的情況下,基于BiLSTM-GAN的僵尸網絡檢測模型和原有的基于BiLSTM 的檢測模型的其他性能指標對比如表5 所示。 表5 檢測性能指標對比(BiLSTM 與BiLSTM-GAN) 基于BiLSTM-GAN 的僵尸網絡檢測模型和原有的基于BiLSTM 的檢測模型在良性樣本和僵尸網絡樣本上的準確率對比如表6 所示。 表6 不同樣本的檢測準確率對比(BiLSTM 與BiLSTM-GAN) 相較于基于 BiLSTM 的檢測模型,基于BiLSTM-GAN 的僵尸網絡模型檢測準確率提升2.47%,精度下降4.32%,召回率提升8.72%,F1分數提升2.74%,對良性樣本檢測的準確率上升6.61%,對僵尸網絡樣本檢測的準確率上升2.01%。同樣地,在加入BiLSTM-GAN 之后檢測性能有一定提高,能夠更有效地檢測僵尸網絡流量。 為研究基于BiLSTM-GAN 的僵尸網絡檢測模型中不同類型特征對于檢測能力的影響,本文進行了消融實驗,按基本特征、異常行為特征和流相似特征3 個分類進行研究,如表7 所示。 表7 BiLSTM-GAN 模型消融實驗 通過消融實驗可以發現,僵尸網絡流量中流相似特征對檢測能力的影響最大。 另外,實驗測試集中僵尸網絡樣本種類多于測試集,實驗統計了基于DCGAN 的僵尸網絡檢測模型和基于BiLSTM-GAN 的僵尸網絡檢測模型對未知僵尸網絡的檢測能力。從表8 中可以看出,本文提出的檢測模型對于各種未知僵尸均擁有一定的檢測能力。其中,Sogou 和Smoke 僵尸樣本數量本身較少(均為幾十個),雖然沒有完全檢測,但也具備一定的效果。Weasel 僵尸和Zero Access 僵尸樣本數量較多。其中,Weasel 僵尸有上萬個,Zero Access 僵尸有上千個,但檢測效果較差,原因在于Weasel 僵尸網絡采用RSA 通信加密,Zero Access僵尸網絡采用XOR 通信加密,而不是更常見的RC4加密方式。Weasel 僵尸網絡流量統計特征較特殊,例如其數據流長度均為900 左右,遠高于常見的僵尸網絡流量長度。 表8 未知僵尸網絡檢測能力 本文通過對僵尸網絡特性的研究和僵尸網絡流量的分析,從空間和時間2 個維度分別研究僵尸網絡特征的生成對抗,實現了基于生成對抗網絡的僵尸網絡檢測算法,提升了檢測性能與泛化能力,降低了檢測的誤報率,具有一定的實用意義與價值。 由于深度學習本身的一些局限性和實際問題的復雜性,深度學習在僵尸網絡檢測領域的實際應用方面,還存在一些問題。未來的研究工作如下。 基于深度學習的僵尸網絡檢測模型由于其使用的神經網絡層次更深,在提高檢測準確率的同時增加了訓練的開銷,采用的BiLSTM 模型參數達到百萬,ResNet 模型由于層次更深,參數高達千萬,對于檢測系統的硬件有較高的要求。同時,增加了訓練模型的時間,因此在部署到高速或大容量的網絡中時,通常無法對網絡流量做出全面分析,對于僵尸網絡檢測的實時性和準確性造成了不利的影響。未來工作將重點研究采用分布式架構或采用分批次進行模型訓練,以提高其檢測效率。 基于深度學習的僵尸網絡檢測模型多是在僵尸網絡發動攻擊后,通過網絡流量進行分析檢測,不具備很好的僵尸網絡攻擊發現能力。因此,未來工作將研究在僵尸網絡發起惡意活動之前進行檢測,如在僵尸網絡傳播階段,通過強化學習等算法進行檢測,以進一步提高網絡安全。 基于統計特征的僵尸網絡檢測算法由于其統計特性需要人工篩選,因此一定程度上增加了算法的復雜性,且人工篩選的特征在全面性和有效性上仍存在一些問題,而且容易受到惡意對抗攻擊的影響。因此,未來的工作是在更加全面地研究統計特征的基礎上,研究更穩健的僵尸網絡特征和特征提取方法。 基于生成對抗網絡的僵尸網絡檢測模型只采用了傳統的訓練參數,未根據僵尸網絡流量特征的特性設定特定的訓練參數。因此,未來的工作將研究不同的超參數及組合對檢測模型性能的影響,另外,還將研究可以更好地學習僵尸網絡流量特征的對抗生成網絡模型對檢測效果的影響。
3.3 基于生成對抗網絡的僵尸網絡檢測模型



4 實驗及分析
4.1 數據集

4.2 實驗過程設計
4.3 實驗結果評估








5 結束語