薛昊天,王 晨
(1.武漢郵電科學(xué)研究院,湖北武漢 430000;2.南京烽火天地通信科技有限公司,江蘇 南京 210000)
隨著網(wǎng)絡(luò)攻擊行為愈加多樣復(fù)雜,對(duì)僵尸網(wǎng)絡(luò)這一入侵攻擊行為的檢測(cè)也顯得愈加重要。隨著時(shí)代不斷發(fā)展變化,僵尸網(wǎng)絡(luò)有了全新的特點(diǎn)并急速壯大。舉例來(lái)說(shuō),Linux 系統(tǒng)因?yàn)槠溟_源特性,其系統(tǒng)幾乎毫不設(shè)防,對(duì)僵尸網(wǎng)絡(luò)攻擊毫無(wú)防備。路由器設(shè)備作為家家戶戶互聯(lián)互通的樞紐,亦是肉雞的攻擊目標(biāo)。物聯(lián)網(wǎng)產(chǎn)業(yè)產(chǎn)品種類多、范圍廣、標(biāo)準(zhǔn)不一、易于破解,成為僵尸網(wǎng)絡(luò)感染的新爆發(fā)點(diǎn)。
僵尸網(wǎng)絡(luò)之所以成為僵尸網(wǎng)絡(luò),是在于這樣的事實(shí),即這種管理應(yīng)允許對(duì)手安排進(jìn)一步的攻擊[1],例如通過(guò)向受感染的主機(jī)(BOT)發(fā)送新命令,延長(zhǎng)攻擊的發(fā)現(xiàn)時(shí)間,阻止執(zhí)法機(jī)構(gòu)發(fā)現(xiàn)它的真實(shí)身份。顯然,受感染的設(shè)備之間存在直接通信通道,只要將特定IP 或域列入黑名單,就可以有效地檢測(cè)和阻止服務(wù)器受到C&C 的影響[2]。為防止這種情況的發(fā)生,惡意軟件作者嘗試使用將流量偽裝為良性且無(wú)法輕易阻止的通信渠道[3],例如社交網(wǎng)絡(luò)或經(jīng)常更改托管C&C 服務(wù)器的域名。
僵尸網(wǎng)絡(luò)檢測(cè)的最新趨勢(shì)是基于流或基于圖的功能。基于流的方法是將網(wǎng)絡(luò)數(shù)據(jù)包數(shù)據(jù)重新整合為流[4]。源IP、目標(biāo)IP、源端口、目標(biāo)端口和網(wǎng)絡(luò)協(xié)議稱為五元組[5],以此來(lái)確定流。它們使用諸如監(jiān)督分類[6]或聚類等機(jī)器學(xué)習(xí)[7]技術(shù)來(lái)分析標(biāo)準(zhǔn)的數(shù)據(jù)包級(jí)別或流量級(jí)別的統(tǒng)計(jì)數(shù)據(jù)。
傳統(tǒng)上采用統(tǒng)計(jì)分析的方式,判斷流量的各項(xiàng)指標(biāo)的數(shù)值是在僵尸流量的范圍內(nèi)還是在正常流量的范圍內(nèi),進(jìn)入到機(jī)器學(xué)習(xí)時(shí)代后多使用機(jī)器學(xué)習(xí)中的聚類算法和分類算法。這一思路的缺點(diǎn)在于只針對(duì)訓(xùn)練過(guò)的僵尸網(wǎng)絡(luò)流量種類有效,缺乏對(duì)未知流量的檢測(cè)能力。
另一種比較新潮的檢測(cè)方法是基于圖的檢測(cè)方法。這些方法忽略了數(shù)據(jù)的順序性質(zhì),而是使用基于中心性的圖形度量關(guān)注通信的圖形結(jié)構(gòu)[8]。但是,由于它們需要一次訪問(wèn)所有數(shù)據(jù)以建立圖形模型,因此通常不適合當(dāng)作真正有用的工具。
網(wǎng)絡(luò)流量分析是指在流量中監(jiān)察可能的C&C命令[9],以此來(lái)探測(cè)??紤]普通P2P 流量與僵尸P2P流量之間必然會(huì)存在某種差異[10],可以通過(guò)通信時(shí)長(zhǎng)、數(shù)據(jù)包大小、數(shù)據(jù)長(zhǎng)度等流量特性來(lái)進(jìn)行區(qū)分。但對(duì)于一些高度隱藏的僵尸網(wǎng)絡(luò),檢測(cè)率并不高,因?yàn)樘崛√匦圆豢赡苁?,不能夠代表流量的全部?jī)?nèi)容,可能提取到的特征代表性很強(qiáng),也可能特征代表性很弱,檢測(cè)效果很差,全在于特征能夠代表多少有價(jià)值的信息[11]。
對(duì)于分析網(wǎng)絡(luò)中的流行為特征這一思路,深度學(xué)習(xí)技術(shù)能夠自動(dòng)學(xué)習(xí)事物的本質(zhì)特征,以模擬大腦學(xué)習(xí)的方式去學(xué)習(xí)。生成對(duì)抗網(wǎng)絡(luò)能夠增加樣本的種類和數(shù)量,增加對(duì)分類模型的反饋,輔助提升分類模型的分類能力。因此該文考慮以深度學(xué)習(xí)中的這兩種方法,應(yīng)用于分析網(wǎng)絡(luò)流行為特征。
該文提出一種基于GAN 的檢測(cè)botnet 的新方案,該方法可以有效地提升現(xiàn)有方法的僵尸網(wǎng)絡(luò)檢測(cè)效率,具有相當(dāng)?shù)膶?shí)際應(yīng)用價(jià)值。
GAN 的原理框圖如圖1 所示。GAN 的原理是將生成模型制造的假樣本混入到真實(shí)樣本中,為判別模型增加輸入,提高其判別能力。生成樣本不斷地偽裝成真實(shí)樣本,提高了其偽裝能力。
圖1 生成對(duì)抗網(wǎng)絡(luò)的原理
GAN 網(wǎng)絡(luò)可以定義為式(1)所給出的極大優(yōu)化問(wèn)題[12],假設(shè)x代表數(shù)據(jù)樣本,p(z)代表輸入噪聲,G(z)代表處理后的噪聲,D(x)代表樣本x是真正的樣本,而非生成樣品。因此,混入的生成樣本的被識(shí)別率降到最低,判別模型的分辨能力最高,這兩個(gè)點(diǎn)可視為GAN 的優(yōu)化目標(biāo)[13]。目標(biāo)函數(shù)定義如式(1)所示:
由式(1)可知,要提高判斷能力,目標(biāo)函數(shù)要取最大值,即max(D(x))和min(D(G(z)));要提高偽裝能力,目標(biāo)函數(shù)取最小值,即min(D(x))和max(D(G(z)))[14]。實(shí)際操作中,保持兩者之一不變,訓(xùn)練另一者,不斷更新其參數(shù)達(dá)到階段的預(yù)期,然后解放不變的模型,鎖定變化的模型再訓(xùn)練。重復(fù)這個(gè)過(guò)程,使對(duì)方獲得最大誤差[15]。此時(shí)兩個(gè)模型均取得最優(yōu)解,即判斷真假正確的概率是50%。此時(shí),認(rèn)為訓(xùn)練完成,生成樣本和真實(shí)樣基本一致,讓判別模型D 無(wú)從辨認(rèn)。
將半監(jiān)督學(xué)習(xí)方法加入到GAN中[16],可以充分利用無(wú)標(biāo)簽樣本數(shù)據(jù)來(lái)輔助有監(jiān)督的學(xué)習(xí)訓(xùn)練分類。
損失函數(shù)可以作變形如式(2)-(5)所示,對(duì)于有標(biāo)簽樣本數(shù)據(jù),Lsupervised表示有監(jiān)督學(xué)習(xí)的目標(biāo)函數(shù),即正確預(yù)測(cè)的能力。
對(duì)于無(wú)標(biāo)簽樣本數(shù)據(jù),Lunsupervised表示無(wú)監(jiān)督學(xué)習(xí)的損失函數(shù),pmodel(y=K+1|x)表示樣本x是生成樣本的概率。當(dāng)將D(x)=1-pmodel(y=K+1|x)插入一個(gè)表達(dá)式Lunsupervised時(shí),它等于GAN 的目標(biāo)函數(shù),如式(6)所示:
該節(jié)融入GAN 的理念,在分類模型的訓(xùn)練過(guò)程中混入生成樣本,如圖2 所示。分類模型也相應(yīng)增加一類標(biāo)簽(Fake)。
圖2 改造的生成式對(duì)抗網(wǎng)絡(luò)
Iscx2014 被認(rèn)為是種類豐富、樣本量充足的優(yōu)質(zhì)數(shù)據(jù)集。提取傳輸層協(xié)議、TCP 協(xié)議標(biāo)記、流持續(xù)時(shí)間、網(wǎng)絡(luò)流第一個(gè)數(shù)據(jù)包的長(zhǎng)度、交換小數(shù)據(jù)包數(shù)、交換小數(shù)據(jù)包百分比、重連接次數(shù)、總長(zhǎng)度、有效載荷數(shù)據(jù)包平均數(shù)、有效載荷數(shù)據(jù)包的標(biāo)準(zhǔn)差、平均每秒比特?cái)?shù)、平均數(shù)據(jù)包到達(dá)時(shí)間、每秒平均包數(shù)共13個(gè)特征,將非數(shù)值型特征值轉(zhuǎn)化為一個(gè)數(shù)值型特征值,并對(duì)所有這些特征值問(wèn)題進(jìn)行歸一化處理。將13 個(gè)特征處理為129 維特征值。
生成模型設(shè)為3 層LSTM 網(wǎng)絡(luò),為輸入層配置120個(gè)節(jié)點(diǎn),隱藏層配置60個(gè)節(jié)點(diǎn),輸出層配置129個(gè)節(jié)點(diǎn)。
在分類模型的選擇上,神經(jīng)網(wǎng)絡(luò)4 層結(jié)構(gòu)被普遍認(rèn)為是一種比較好的模型選擇,隱藏層可以設(shè)為兩層。INPUT層節(jié)點(diǎn)為129個(gè),HIDDEN1節(jié)點(diǎn)為80個(gè),HIDDEN2 節(jié)點(diǎn)為20 個(gè),OUTPUT 節(jié)點(diǎn)為3 個(gè)。
tensorflow作為深度學(xué)習(xí)框架。計(jì)算機(jī)為神舟Z7-CT7NA,CPU為IntelCorei7-9750HCPU@2.60GHz,內(nèi)存為8 GB。
在訓(xùn)練集中,每個(gè)訓(xùn)練輪均混入100、500、1 000、2 000、5 000、8 000 個(gè)生成樣本,迭代100 次以觀察混入生成樣本的訓(xùn)練效果。
為保證客觀性,對(duì)比試驗(yàn)中的原型和GAN 的分類模型網(wǎng)絡(luò)結(jié)構(gòu)及參數(shù)配置是一致的。亦設(shè)置4 層神經(jīng)網(wǎng)絡(luò),不同的是為輸出層配置兩個(gè)節(jié)點(diǎn),即正常樣本或僵尸網(wǎng)絡(luò)樣本,沒(méi)有虛假樣本標(biāo)簽。在同樣配置下完成訓(xùn)練,分析兩者在training group 上的accuracy、precision、F1 值及error rate。
實(shí)驗(yàn)設(shè)置從100 個(gè)到8 000 個(gè)假樣本共六組對(duì)照組,折線代表增強(qiáng)模型,虛線表示原模型。橫坐標(biāo)是每輪混入的生成樣本數(shù),縱坐標(biāo)是對(duì)應(yīng)的檢測(cè)指標(biāo)。
如圖3 所示,增強(qiáng)模型的性能整體上優(yōu)于原模型,僅在混入樣本超過(guò)5 000 個(gè)后,準(zhǔn)確率下跌較為嚴(yán)重,但也僅僅是略低于原模型。這表明了生成器對(duì)判別器的加成作用,還要考慮到混入假樣本的數(shù)量,并不是越多越好。原因在于隨著生成樣本數(shù)據(jù)量的增大,分類器在判斷時(shí)過(guò)分關(guān)注樣本是生成的還是真實(shí)的,即注意力遷移到了別的地方,偏離了樣本是否是僵尸網(wǎng)絡(luò)樣本這一原本的目的。
圖3 訓(xùn)練時(shí)是否混入生成樣本的分類模型的準(zhǔn)確率
由圖3 可以看出,當(dāng)混入樣本超過(guò)100 個(gè)而小于1 000個(gè)時(shí),對(duì)原模型的加成效果達(dá)成了一個(gè)較優(yōu)解,雖然第二實(shí)驗(yàn)組在六組實(shí)驗(yàn)中準(zhǔn)確率最高,但不能認(rèn)為這就是最佳假樣本數(shù),這個(gè)數(shù)量可能大于500 個(gè)也可能小于500 個(gè),還需要通過(guò)進(jìn)一步的實(shí)驗(yàn)來(lái)細(xì)化。
如圖4 所示,增強(qiáng)模型的性能整體上優(yōu)于原模型,僅在混入樣本超過(guò)5 000 個(gè)后,精確率下跌較為嚴(yán)重,還是略高于原模型。同樣說(shuō)明混入假樣本太多反而對(duì)檢測(cè)性能起反效果。顯然,第三實(shí)驗(yàn)組在六組實(shí)驗(yàn)中精確率最高,但這并不是最佳假樣本數(shù),具體數(shù)量還需進(jìn)一步的實(shí)驗(yàn)來(lái)細(xì)化。
圖4 訓(xùn)練時(shí)是否混入生成樣本的分類模型的精確率
如圖5 所示,增強(qiáng)模型的性能整體上優(yōu)于原模型,但是F1 值的折線不同于準(zhǔn)確率折線和精確率折線,其起伏較為反復(fù),并沒(méi)有明顯的漲跌,整體上是持平并高于原模型的。這表明了假樣本對(duì)判別器在F1 值上的加成作用并不是十分有效。顯然第二實(shí)驗(yàn)組在六組實(shí)驗(yàn)中準(zhǔn)確率最高,但不能認(rèn)為這就是最佳假樣本數(shù),若要確定最佳假樣本數(shù)量,還需要進(jìn)一步的細(xì)化。
圖5 訓(xùn)練時(shí)是否混入生成樣本的分類模型的F1值
如圖6 所示,實(shí)驗(yàn)中,增強(qiáng)模型的性能整體上優(yōu)于原模型,僅在混入樣本超過(guò)5 000 個(gè)后,誤報(bào)率上漲,但還是略低于原模型。顯然第二實(shí)驗(yàn)組在六組實(shí)驗(yàn)中誤報(bào)率最低,但不能認(rèn)為這就是最佳假樣本數(shù),還需要進(jìn)一步的實(shí)驗(yàn)來(lái)細(xì)化。
圖6 訓(xùn)練時(shí)是否混入生成樣本的分類模型的誤報(bào)率
在訓(xùn)練集中混入生成樣本這一行為,提高了分類模型的檢測(cè)性能,模型準(zhǔn)確率和精確率平均提高了2%和5%,誤報(bào)率降低2%,實(shí)驗(yàn)結(jié)果符合預(yù)期。該文提出的研究成果還有值得改進(jìn)的地方。檢測(cè)技術(shù)和僵尸網(wǎng)絡(luò)是同步在發(fā)展的,即使現(xiàn)在十分有效的方法,對(duì)以后的新類型、新模式的僵尸網(wǎng)絡(luò)可能檢測(cè)效果很差。持續(xù)地收集僵尸網(wǎng)絡(luò)數(shù)據(jù),持續(xù)地改進(jìn)檢測(cè)算法,是一項(xiàng)長(zhǎng)期的工程。