郭楠馨, 林宏剛, 張運(yùn)理, 陳 麟
(1.成都信息工程大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,四川 成都 610225;2.成都信息工程大學(xué)先進(jìn)密碼技術(shù)與系統(tǒng)安全四川省重點(diǎn)實(shí)驗(yàn)室,四川 成都 610225;3.網(wǎng)絡(luò)空間安全態(tài)勢(shì)感知與評(píng)估安徽省重點(diǎn)實(shí)驗(yàn)室,安徽 合肥 230027)
由于互聯(lián)網(wǎng)的普及,各種網(wǎng)絡(luò)攻擊也日益頻繁[1],攻擊者利用僵尸網(wǎng)絡(luò)執(zhí)行各種網(wǎng)絡(luò)犯罪活動(dòng)[2]。近年來,僵尸網(wǎng)絡(luò)的對(duì)抗性有所提升,針對(duì)蜜罐開源項(xiàng)目采取反制措施,在漏洞利用方面更加迅速[3]?,F(xiàn)有的僵尸網(wǎng)絡(luò)家族正在不斷進(jìn)化,各種新型攻擊層出不窮[4]。因此,為保障網(wǎng)絡(luò)環(huán)境的安全,對(duì)僵尸網(wǎng)絡(luò)的檢測(cè)至關(guān)重要。
國內(nèi)外研究者提出了眾多基于機(jī)器學(xué)習(xí)算法的僵尸網(wǎng)絡(luò)檢測(cè)的方案。周昌令等[5]通過研究校園網(wǎng)上的DNS流量后,提出了18個(gè)相關(guān)特征,并采用隨機(jī)森林算法實(shí)現(xiàn)FFSN的檢測(cè)。Khan等[6]提出了一種多層混合技術(shù),根據(jù)僵尸網(wǎng)絡(luò)流量的會(huì)話特征,采用基于機(jī)器學(xué)習(xí)的分類器,識(shí)別僵尸網(wǎng)絡(luò)流量。上述方案基于傳統(tǒng)機(jī)器學(xué)習(xí)算法,通過人工提取特征實(shí)現(xiàn)僵尸網(wǎng)絡(luò)的檢測(cè)。然而,面對(duì)復(fù)雜多變的網(wǎng)絡(luò)世界,人工提取特征存在難度大、通用性不夠等缺點(diǎn)。因此,有研究者提出基于深度學(xué)習(xí)的僵尸網(wǎng)絡(luò)檢測(cè)方法。McDermott等[7]使用雙向長期短期記憶遞歸神經(jīng)網(wǎng)絡(luò)(BLSTMRNN),并結(jié)合詞嵌入實(shí)現(xiàn)Mirai僵尸網(wǎng)絡(luò)的檢測(cè)。Chen等[8]使用CNN進(jìn)行特征提取,并使用決策樹算法進(jìn)一步提高檢測(cè)率,實(shí)驗(yàn)結(jié)果表明,卷積特征對(duì)于僵尸網(wǎng)絡(luò)檢測(cè)是有效的。牛偉納等[9]提出了一種結(jié)合CNN和RNN兩種神經(jīng)網(wǎng)絡(luò)的方法,可以提取時(shí)間與空間兩個(gè)維度上的特征。
基于深度學(xué)習(xí)的僵尸網(wǎng)絡(luò)檢測(cè)方法雖然取得好的效果,但依賴大量的樣本訓(xùn)練[10]。然而在現(xiàn)實(shí)的網(wǎng)絡(luò)環(huán)境中標(biāo)記的僵尸網(wǎng)絡(luò)樣本不夠充分,且占比很低。例如,零日僵尸網(wǎng)絡(luò)是在漏洞發(fā)現(xiàn)當(dāng)天發(fā)起的僵尸網(wǎng)絡(luò)攻擊,短時(shí)間內(nèi)難以獲取足夠多的攻擊樣本,可以將其視為小樣本僵尸網(wǎng)絡(luò)檢測(cè)問題。小樣本學(xué)習(xí)旨在通過幾個(gè)甚至一個(gè)樣本完成任務(wù),現(xiàn)在常用元學(xué)習(xí)方法來解決小樣本問題[11]。元學(xué)習(xí)能夠通過學(xué)習(xí)大量的任務(wù),獲得足夠的先驗(yàn)知識(shí),從而快速學(xué)會(huì)新的任務(wù)[12]。Koch等[13]提出了孿生神經(jīng)網(wǎng)絡(luò)(siamese neural networks),將兩個(gè)結(jié)構(gòu)相同的神經(jīng)網(wǎng)絡(luò)拼接,且共享權(quán)值,比較輸入兩個(gè)樣本的相似度。Snell等[14]提出了原型網(wǎng)絡(luò)(prototypical networks),通過神經(jīng)網(wǎng)絡(luò)將D維數(shù)據(jù)映射到M維的特征空間,新的特征向量的均值心作為每類數(shù)據(jù)的原型點(diǎn),并用歐幾里得距離計(jì)算原型點(diǎn)之間的距離。Sung等[15]提出了關(guān)系網(wǎng)絡(luò)(relation network),通過特征嵌入模塊提取樣本特征,并用關(guān)系模塊計(jì)算樣本特征之間的相似度,兩個(gè)模塊都采用CNN。該方法在計(jì)算樣本間度量沒有預(yù)定義一個(gè)固定的度量方法,而是通過神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)一個(gè)度量函數(shù),使模型表達(dá)更準(zhǔn)確。Vinyals等[16]提出了匹配網(wǎng)絡(luò)(matching network),該方案將注意力機(jī)制和長短期記憶網(wǎng)絡(luò)(long short-term memory,LSTM)相結(jié)合,將支持集和查詢集輸入CNN提取圖像特征,然后輸入雙向LSTM中獲取圖像的特征向量,最后用余弦距離注意力判斷樣本相似度。上述方法都是基于度量的元學(xué)習(xí),在小樣本分類問題上取得了不錯(cuò)的成果。
近幾年,注意力機(jī)制在小樣本學(xué)習(xí)中的應(yīng)用也越來越廣泛。注意力機(jī)制的核心思想是忽略無關(guān)信息關(guān)注重點(diǎn)信息[17],能夠增強(qiáng)模型的魯棒性、泛化性和可解釋性[18]。Ren等[19]提出了注意力吸引網(wǎng)絡(luò),在預(yù)訓(xùn)練好的初始分類器面對(duì)新的分類任務(wù)時(shí),會(huì)訓(xùn)練一組新的權(quán)重,在不遺忘舊的分類任務(wù)的前提下實(shí)現(xiàn)對(duì)新類型的分類。Gao等[20]提出了一種基于混合注意力機(jī)制的原型網(wǎng)絡(luò),包括實(shí)例級(jí)注意力用于在支持集中選擇擁有更多信息的實(shí)力,降低噪聲干擾的問題;特征級(jí)注意力著重關(guān)注特征的重要維度,緩解特征的稀疏性。Wu等[21]在關(guān)系網(wǎng)絡(luò)的基礎(chǔ)上引入自注意力機(jī)制,用于獲取特征的非局部信息。
為解決傳統(tǒng)深度學(xué)習(xí)對(duì)未經(jīng)學(xué)習(xí)的任務(wù)泛化能力不足、依賴大量標(biāo)記數(shù)據(jù)的問題,本文根據(jù)關(guān)系網(wǎng)絡(luò)[15]的思想,提出基于度量的元學(xué)習(xí)的僵尸網(wǎng)絡(luò)檢測(cè)方法。通過簡單的卷積神經(jīng)網(wǎng)絡(luò)提取網(wǎng)絡(luò)流量特征,并學(xué)習(xí)出一個(gè)度量函數(shù),用于比較樣本間的相似度。在面對(duì)未知的僵尸網(wǎng)絡(luò)類型時(shí),能通過少量的樣本信息快速完成分類任務(wù)。由于卷積神經(jīng)網(wǎng)絡(luò)中的感受野僅覆蓋局部信息,因此在提取特征時(shí)引入非局部注意力機(jī)制[22],可以提取網(wǎng)絡(luò)流量特征的全局信息,考慮網(wǎng)絡(luò)流量各點(diǎn)之間的聯(lián)系,使僵尸網(wǎng)絡(luò)的檢測(cè)結(jié)果更加準(zhǔn)確。
提出基于元學(xué)習(xí)和注意力機(jī)制的僵尸網(wǎng)絡(luò)檢測(cè)方法,整體流程如圖1所示。首先對(duì)網(wǎng)絡(luò)流量數(shù)據(jù)進(jìn)行預(yù)處理,將處理后的數(shù)據(jù)輸入特征提取模塊,在得到特征圖后還需將其輸入比較模塊,獲取兩個(gè)樣本之間的相似度。當(dāng)模型獲得足夠多的先驗(yàn)知識(shí),便能利用很少的樣本完成新的分類任務(wù)。
圖1 檢測(cè)方法流程圖
元學(xué)習(xí)在訓(xùn)練和測(cè)試階段的基本單元為元任務(wù),而非單個(gè)樣本。元任務(wù)可以表示為N-way、K-shot小樣本問題,其中N-way表示N個(gè)類型的數(shù)據(jù),K-shot表示每種類型數(shù)據(jù)包含K個(gè)樣本數(shù)量,且K較小。本文數(shù)據(jù)集區(qū)別于傳統(tǒng)機(jī)器學(xué)習(xí)的數(shù)據(jù)集,由多個(gè)元任務(wù)組成元訓(xùn)練集和元測(cè)試集,其中元訓(xùn)練集和元測(cè)試集的樣本類型不同。每個(gè)元任務(wù)包含支持集,查詢集0,1)。支持集表示N×K個(gè)已知標(biāo)簽的樣本,查詢集表示N×B個(gè)待檢測(cè)的樣本。
Vinyals等[16]提出了一種用于元學(xué)習(xí)模型的訓(xùn)練策略。在訓(xùn)練階段,每個(gè)元任務(wù)都模擬測(cè)試階段的N-way、K-shot問題,進(jìn)行周期性的迭代訓(xùn)練,學(xué)習(xí)足夠的元任務(wù)T={task1,task2,…,taskn},直至收斂。在面對(duì)新任務(wù)時(shí),通過極少量的新樣本,便能快速學(xué)會(huì)新任務(wù)taskn+1。
1.1.1 網(wǎng)絡(luò)流量處理
實(shí)驗(yàn)使用的數(shù)據(jù)為原始的網(wǎng)絡(luò)流量,需經(jīng)過預(yù)處理后輸入模型,具體流程如圖2所示。將原始流量按照五元組(源IP、目的IP、源端口、目的端口、協(xié)議)切分為多個(gè)子集[23],每個(gè)子集包含多個(gè)數(shù)據(jù)包,按照時(shí)間順序排列組成一個(gè)數(shù)據(jù)流。由于每條數(shù)據(jù)流的大小不一,而檢測(cè)模型要求輸入固定大小的數(shù)據(jù),因此還需對(duì)數(shù)據(jù)流進(jìn)行采樣。數(shù)據(jù)流的前面部分包含了主要的建立連接過程和內(nèi)容交換信息,后面部分能提供的特征信息較少,所以本文截取數(shù)據(jù)流的前784字節(jié),不足則補(bǔ)0x00。此外,還需對(duì)數(shù)據(jù)流進(jìn)行匿名化和圖像化處理。
圖2 數(shù)據(jù)預(yù)處理流程圖
數(shù)據(jù)匿名化:本文使用的數(shù)據(jù)集為實(shí)驗(yàn)室網(wǎng)絡(luò)采集的流量數(shù)據(jù),IP地址和MAC地址單一且固定,在模型進(jìn)行特征提取時(shí)會(huì)干擾實(shí)驗(yàn)結(jié)果,因此對(duì)IP地址和MAC地址進(jìn)行隨機(jī)化處理。
轉(zhuǎn)換為灰度圖:將統(tǒng)一大小后的數(shù)據(jù)按照每個(gè)字節(jié)二進(jìn)制值轉(zhuǎn)換為灰度圖,其中0xFF代表黑色,0x00代表白色[23]。
1.1.2 小樣本數(shù)據(jù)集構(gòu)造
在僵尸網(wǎng)絡(luò)檢測(cè)中,每次訓(xùn)練都從元訓(xùn)練集中任意選取一種僵尸網(wǎng)絡(luò)類型,并從選取的僵尸網(wǎng)絡(luò)類型中隨機(jī)采樣K+B個(gè)惡意樣本。再從元訓(xùn)練集中隨機(jī)采樣K+B正常樣本。其中,K個(gè)惡意樣本和K個(gè)正常樣本作為支持集,剩下的2B個(gè)樣本作為待檢測(cè)的查詢集。這樣的一次采樣訓(xùn)練過程稱為一個(gè)episode。
元測(cè)試集中的任務(wù)是在訓(xùn)練過程中沒有出現(xiàn)的新任務(wù),其支持集和查詢集構(gòu)造方法與元訓(xùn)練集相同。
本文提出的僵尸網(wǎng)絡(luò)檢測(cè)模型分為特征提取模塊和比較模塊兩個(gè)部分,模型總體框架如圖3所示。將通過預(yù)處理后的查詢集中的樣本xi和支持集中的樣本xj輸入特征提取模塊中,生成特征圖f(xi)和f(xj),再將特征圖串聯(lián)得到[f(xi),f(xj)]。將[f(xi),f(xj)]輸入到比較模塊中,得到兩個(gè)樣本的相似性得分g([f(xi),f(xj)]),范圍是[0,1]。樣本集包含正常流量樣本(負(fù)樣本)和僵尸網(wǎng)絡(luò)樣本(正樣本),標(biāo)簽分別為0和1。
圖3 模型總體框架
查詢集中的樣本會(huì)和支持集中的樣本一一比較,得到與K個(gè)正樣本的相似性得分均值:
與K個(gè)負(fù)樣本的相似性得分均值:
式(1)、(2)中xjm和xjn分別表示正樣本和負(fù)樣本。
在訓(xùn)練過程中得到Cm和Cn后,進(jìn)行誤差反向傳播,直至收斂(見圖1)。在測(cè)試過程中,將元測(cè)試集輸入訓(xùn)練好的模型中,得到Cm和Cn后,比較Cm和Cn的大小。若Cm大,預(yù)測(cè)標(biāo)簽為1;反之,標(biāo)簽為0。
特征提取模塊和比較模塊都由卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn),網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。特征提取模塊由4個(gè)卷積層和注意力機(jī)制組成,其中Block表示卷積層,Attention Block為非局部注意力機(jī)制。圖4中“Conv,3×3,64”表示卷積操作,卷積核的大小為3×3,通道數(shù)為64;“BN,64”表示批量標(biāo)準(zhǔn)化,通道數(shù)為64;“ReLU”表示使用修正線性單元作為激活函數(shù);“Max-Pool,2”表示最大池化,池化核大小為2×2。比較模塊中“Concatenation”表示將特征提取模塊輸出的兩個(gè)特征圖串聯(lián)起來;“FC,8”和“FC,1”表示全連接層維度分別為8和1;輸出層通過Sigmoid函數(shù)得到一個(gè)實(shí)數(shù)。訓(xùn)練過程中,不使用預(yù)設(shè)的固定的線形度量算法,如歐式距離、余弦距離等,而是學(xué)習(xí)出一個(gè)非線性的相似度度量,使模型在面對(duì)多種僵尸網(wǎng)絡(luò)類型時(shí)效果更好。
圖4 僵尸網(wǎng)絡(luò)檢測(cè)模型網(wǎng)絡(luò)框架圖
特征提取模塊是一個(gè)雙路處理的卷積神經(jīng)網(wǎng)絡(luò),將兩個(gè)尺寸為28×28×1的樣本圖片輸入到特征提取模塊中得到兩個(gè)尺寸為5×5×64的特征圖;再將特征提取模塊輸出的兩個(gè)特征圖輸入到比較模塊中,通過Concatenation將兩個(gè)特征圖串聯(lián),得到尺寸為5×5×128的特征圖;特征圖經(jīng)過兩個(gè)卷積層和兩個(gè)全連接層,最后得到兩個(gè)樣本的相似度得分。
在卷積神經(jīng)網(wǎng)絡(luò)中,感受野只考慮了局部范圍,如卷積和池化操作。為捕獲遠(yuǎn)距離位置的依賴關(guān)系,通常做法是疊加多個(gè)卷積模塊。但導(dǎo)致感受野的效率低,且增加網(wǎng)絡(luò)層數(shù)會(huì)提高網(wǎng)絡(luò)設(shè)計(jì)難度,因此本文在特征提取模塊引入非局部(Non-Local)注意力機(jī)制[22]。Non-local操作對(duì)于二維圖片,可以捕獲空間位置的長范圍依賴,實(shí)現(xiàn)遠(yuǎn)距離的信息傳遞,獲取更多信息,具體的實(shí)現(xiàn)為
式中:X表示輸入特征圖,Y表示輸出特征圖,且兩者大小相同;i表示X某一像素點(diǎn)的索引,j表示除i外所有位置的索引;N表示X中像素點(diǎn)個(gè)數(shù),用來進(jìn)行歸一化處理。函數(shù)f計(jì)算i和j之間的相似關(guān)系,采用嵌入高斯公式:
式中,公式嵌入項(xiàng) θXi=WθXi,φ(Xj)=WφXj。 函數(shù) g 用來計(jì)算j在X中的特征表示,可以看作1×1的卷積:
圖5展示了Non-Local模塊實(shí)現(xiàn)的具體過程。輸入特征圖X的長和寬分別為H、W,通道數(shù)為C,批量大小為N。X首先經(jīng)過3個(gè)1×1的卷積核,即經(jīng)過3個(gè)線性變化 θ、φ、g 得到 θ(Xi)、φ(Xj)、g(Xj),使通道數(shù)減半,減少計(jì)算量;對(duì)θ(Xi)、φ(Xj)進(jìn)行維度變換,再用softmax函數(shù)進(jìn)行歸一化處理:
圖5 Non-local模塊示意圖
對(duì)得到的g(Xj)先進(jìn)行維度變換,再和f'進(jìn)行矩陣相乘得到Y(jié);最后將Y再進(jìn)行維度變換,并經(jīng)過一個(gè)1×1的卷積核得到Z:
Z和X的大小和通道數(shù)相同,這樣便于將Non-Local塊引入現(xiàn)有的網(wǎng)絡(luò)結(jié)構(gòu)中。
實(shí)驗(yàn)使用的數(shù)據(jù)集為ISOT Botnet數(shù)據(jù)集[24]和CTU-13數(shù)據(jù)集[25]。ISOT Botnet數(shù)據(jù)集包含了P2P僵尸網(wǎng)絡(luò)和正常流量。CTU-13數(shù)據(jù)集包含了13個(gè)不同場(chǎng)景下的僵尸網(wǎng)絡(luò)流量。本文實(shí)驗(yàn)采用其中的正常流量和部分僵尸網(wǎng)絡(luò)流量(Neris、Rbot、Waledac、Zeus、Virut、Fast-Flux)。
實(shí)驗(yàn)環(huán)境為:深度學(xué)習(xí)框架Pytorch;處理器是CPU:i7-7700,GPU:1080TI。
本文采用準(zhǔn)確率(accuracy,ACC)、檢測(cè)率(detection rate,DR)、誤報(bào)率(false alarm rate,FAR)作為評(píng)價(jià)指標(biāo)。
式中:TP表示僵尸網(wǎng)絡(luò)流量被分類為僵尸網(wǎng)絡(luò)流量個(gè)數(shù);FP表示僵尸網(wǎng)絡(luò)流量被分類為正常流量個(gè)數(shù);TN表示正常流量被分類為正常流量個(gè)數(shù);FN表示正常流量被分類為僵尸網(wǎng)絡(luò)流量個(gè)數(shù)。
實(shí)驗(yàn)采用2.1節(jié)的數(shù)據(jù)集,其中Neris和Rbot為IRC僵尸網(wǎng)絡(luò);Waledac和Zeus為P2P僵尸網(wǎng)絡(luò);Virut和Fast-Flux為HTTP僵尸網(wǎng)絡(luò)。為了模擬小樣本場(chǎng)景下的僵尸網(wǎng)絡(luò)檢測(cè),訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)不能重疊,且僵尸網(wǎng)絡(luò)類型不能相同。因此將上述按照協(xié)議分類的3種僵尸網(wǎng)絡(luò)中的1種作為元測(cè)試集,剩余2種僵尸網(wǎng)絡(luò)作為元訓(xùn)練集,共有3種組合方式。例如,將P2P僵尸網(wǎng)絡(luò)(Waledac、Zeus)和 HTTP僵尸網(wǎng)絡(luò)(Virut、Fast-Flux)作為元訓(xùn)練集,IRC僵尸網(wǎng)絡(luò)(Neris、Rbot)作為元測(cè)試集。由于在訓(xùn)練過程中沒有使用IRC僵尸網(wǎng)絡(luò)樣本,因此在測(cè)試過程中將IRC僵尸網(wǎng)絡(luò)視為新的僵尸網(wǎng)絡(luò)類型,即小樣本場(chǎng)景下的僵尸網(wǎng)絡(luò)檢測(cè)。
在訓(xùn)練和測(cè)試過程中,設(shè)置K=2,N=1、5,B=10。通過完成2-way、1-shot和2-way、5-shot的小樣本實(shí)驗(yàn),來驗(yàn)證小樣本場(chǎng)景下僵尸網(wǎng)絡(luò)檢測(cè)的可行性。
雖然將僵尸網(wǎng)絡(luò)檢測(cè)看作二分類問題,最后輸出0或1,但是比較模塊輸出的是預(yù)測(cè)的相似度得分,不是標(biāo)簽,可以看作回歸問題。因此,使用均方誤差(MSE)訓(xùn)練模型:
式中,N為episode個(gè)數(shù),K為小樣本數(shù)據(jù)集中每類樣本個(gè)數(shù),為模型預(yù)測(cè)的待測(cè)樣本相似度得分,yij為待測(cè)樣本標(biāo)簽。訓(xùn)練過程中使用Adam優(yōu)化算法,并將學(xué)習(xí)率設(shè)置為0.001。圖6表示在訓(xùn)練過程中準(zhǔn)確率的變化曲線,在150個(gè)episode左右時(shí),模型已接近收斂。因此,采用150個(gè)episode訓(xùn)練模型。
圖6 訓(xùn)練準(zhǔn)確率變化曲線注意力機(jī)制設(shè)置
為了選擇合適的位置引入Non-local注意力機(jī)制,在2-way、5-shot的小樣本場(chǎng)景下做了實(shí)驗(yàn)驗(yàn)證。Baseline,不引入注意力機(jī)制。為了驗(yàn)證注意力機(jī)制位置對(duì)模型的影響,在特征提取模塊的不同位置引入注意力機(jī)制。
模型1:在第1個(gè)卷積層后引入一個(gè)Non-local注意力機(jī)制;模型2:在第2個(gè)卷積層后引入一個(gè)Non-local注意力機(jī)制;模型3:在第3個(gè)卷積層后引入一個(gè)Non-local注意力機(jī)制;模型4:在第4個(gè)卷積層后引入一個(gè)Non-local注意力機(jī)制。
實(shí)驗(yàn)結(jié)果如圖7所示,引入Non-local注意力機(jī)制模塊對(duì)模型的檢測(cè)準(zhǔn)確率有所提升,在第一個(gè)卷積層后引入Non-Local模塊,即模型1的效果最好。
圖7 不同位置的Non-local模塊測(cè)試結(jié)果對(duì)比圖
為驗(yàn)證注意力機(jī)制個(gè)數(shù)對(duì)模型的影響,在特征提取模塊中引入不同個(gè)數(shù)的Non-Local注意力機(jī)制。
模型5:在第1個(gè)卷積層后引入一個(gè)Non-local注意力機(jī)制;模型6:在前2個(gè)卷積層后都引入一個(gè)Non-local注意力機(jī)制;模型7:在前3個(gè)卷積層后都引入一個(gè)Non-local注意力機(jī)制;模型8:在前4個(gè)卷積層后都引入一個(gè)Non-local注意力機(jī)制。
實(shí)驗(yàn)結(jié)果如圖8所示,Non-local注意力機(jī)制模塊數(shù)量增加到2個(gè)以上時(shí),對(duì)模型的檢測(cè)準(zhǔn)確率提升很小。根據(jù)圖7和圖8的結(jié)果對(duì)比,考慮到模型檢測(cè)效果和計(jì)算復(fù)雜度,選擇模型6作為本文方法,具體的網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
圖8 不同數(shù)量的Non-local模塊測(cè)試結(jié)果對(duì)比圖
實(shí)驗(yàn)采用2.2節(jié)的3個(gè)指標(biāo),將2way-1shot和2way-5shot小樣本場(chǎng)景下的僵尸網(wǎng)絡(luò)檢測(cè)進(jìn)行100次實(shí)驗(yàn),將平均值作為最后的結(jié)果匯總于表1。對(duì)于IRC僵尸網(wǎng)絡(luò)和HTTP僵尸網(wǎng)絡(luò)的檢測(cè),1shot和5shot實(shí)驗(yàn)都取得了較好的結(jié)果。但對(duì)于小樣本場(chǎng)景下P2P僵尸網(wǎng)絡(luò)的檢測(cè)準(zhǔn)確率還有待提高。在1shot的僵尸網(wǎng)絡(luò)檢測(cè)任務(wù)中,平均準(zhǔn)確率為96.79%,平均檢測(cè)率為96.68%,誤報(bào)率為3.32%。在5shot的僵尸網(wǎng)絡(luò)檢測(cè)任務(wù)中,平均準(zhǔn)確率為98.06%,平均檢測(cè)率為98.58%,平均誤報(bào)率為2.43%。從實(shí)驗(yàn)結(jié)果來看,對(duì)于缺少樣本的情況下,小樣本場(chǎng)景下的僵尸網(wǎng)絡(luò)檢測(cè)是可行的。
表1 小樣本場(chǎng)景下的僵尸網(wǎng)絡(luò)檢測(cè)結(jié)果匯總表 單位:%
由于基于小樣本的僵尸網(wǎng)絡(luò)檢測(cè)還處于比較新的領(lǐng)域,目前還沒有相關(guān)研究成果進(jìn)行直接對(duì)比。因此,將本文方法與其他基于深度學(xué)習(xí)并使用ISOT Botnet數(shù)據(jù)集和CTU-13數(shù)據(jù)集的僵尸網(wǎng)絡(luò)檢測(cè)方法進(jìn)行比較,對(duì)比結(jié)果如表2所示。Ahmed等[26]采用簡單的人工神經(jīng)網(wǎng)絡(luò)(artificial neural network,ANN),對(duì)僵尸網(wǎng)絡(luò)的檢測(cè)準(zhǔn)確率僅95%。牛偉納等[9]和 Nugraha等[27]將CNN和LSTM算法相結(jié)合,用來提取流量的空間和時(shí)間兩種特征,雖然取得了不錯(cuò)的效果,但這需要大量的標(biāo)記數(shù)據(jù)訓(xùn)練,且模型的計(jì)算復(fù)雜度較高。而本文方法在面對(duì)新的僵尸網(wǎng)絡(luò)類型時(shí),僅需5個(gè)樣本便能取得很好的檢測(cè)效果,相對(duì)于其他方法不需要太多標(biāo)記樣本。
表2 本文方法與使用相同數(shù)據(jù)集的其他方法對(duì)比
為檢測(cè)小樣本場(chǎng)景下的僵尸網(wǎng)絡(luò),提出了一種基于度量元學(xué)習(xí)僵尸網(wǎng)絡(luò)檢測(cè)模型。該模型通過卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)一個(gè)非線性的相似度度量算法,能更加準(zhǔn)確地表達(dá)樣本之間的相似度關(guān)系。同時(shí),為了在獲取網(wǎng)絡(luò)流量特征的全局信息,引入了非局部注意力機(jī)制,進(jìn)一步提升了對(duì)僵尸網(wǎng)絡(luò)檢測(cè)的準(zhǔn)確率。在后續(xù)的研究工作中,還會(huì)繼續(xù)改進(jìn)和優(yōu)化模型,特別是提高對(duì)P2P僵尸網(wǎng)絡(luò)的檢測(cè)效果。