謝麗霞,李雪鷗,楊宏宇,2,張良,成翔
(1.中國(guó)民航大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,天津 300300;2.中國(guó)民航大學(xué)安全科學(xué)與工程學(xué)院,天津 300300;3.亞利桑那大學(xué)信息學(xué)院,美國(guó) 圖森 AZ85721;4.揚(yáng)州大學(xué)信息工程學(xué)院,江蘇 揚(yáng)州 225127;5.江蘇省知識(shí)管理與智能服務(wù)工程研究中心,江蘇 揚(yáng)州 225127)
高級(jí)持續(xù)性威脅(APT,advanced persistent threat)攻擊作為網(wǎng)絡(luò)攻擊中最難防范的攻擊手段之一,已經(jīng)成為網(wǎng)絡(luò)安全的重大威脅。APT 攻擊通常使用入侵技術(shù)和軟件源代碼漏洞[1],對(duì)目標(biāo)網(wǎng)絡(luò)和系統(tǒng)造成長(zhǎng)期的嚴(yán)重威脅。與傳統(tǒng)攻擊相比,APT攻擊具有攻擊目標(biāo)明確、攻擊過(guò)程具有階段性和持續(xù)性、難以感知等特性[2-3]。如何有效防范APT 攻擊已成為網(wǎng)絡(luò)安全熱點(diǎn)問(wèn)題之一。因此,APT 攻擊檢測(cè)研究具有重要的理論價(jià)值和現(xiàn)實(shí)意義。
由于APT 攻擊序列基于網(wǎng)絡(luò)流量包,針對(duì)APT攻擊序列檢測(cè)的方法研究主要基于流量分析?;诹髁糠治龅腁PT 攻擊檢測(cè)方法包括基于模式匹配的方法[4]、基于圖的方法[5]和基于深度學(xué)習(xí)的方法等。隨著基于深度學(xué)習(xí)的檢測(cè)方法被更多地運(yùn)用于網(wǎng)絡(luò)攻擊檢測(cè)中[6-7],利用深度學(xué)習(xí)方法對(duì)海量流量進(jìn)行分析并檢測(cè)APT 攻擊已成為研究熱點(diǎn)。
Alrehaili 等[8]構(gòu)建長(zhǎng)短期記憶堆疊自動(dòng)編碼器(SAE-LSTM,stacked autoencoder with long short-term memory)和長(zhǎng)短期記憶卷積神經(jīng)網(wǎng)絡(luò)(CNN-LSTM,convolutional neural network with long short-term memory)2 種混合深度學(xué)習(xí)模型檢測(cè)APT 攻擊各階段,但無(wú)法檢測(cè)完整APT 攻擊序列。劉海波等[9]提出一種基于生成式對(duì)抗網(wǎng)絡(luò)-長(zhǎng)短期記憶(GAN-LSTM,generative adversarial network-long short term memory)模型的APT 攻擊檢測(cè)方法,通過(guò)生成式對(duì)抗網(wǎng)絡(luò)(GAN,generative adversarial network)生成攻擊樣本并利用長(zhǎng)短期記憶(LSTM,long short-term memory)網(wǎng)絡(luò)檢測(cè)APT攻擊。但是該方法對(duì)攻擊時(shí)間較長(zhǎng)的APT 攻擊序列檢測(cè)效果不佳且未對(duì)潛在APT 攻擊進(jìn)行檢測(cè)。其中,潛在APT 攻擊是指未包含完整攻擊周期的APT攻擊序列。董濟(jì)源[10]提出一種基于GAN 的APT 攻擊序列生成與檢測(cè)方法,將LSTM 作為生成器和判別器用于擴(kuò)展APT 數(shù)據(jù)集和檢測(cè)APT 攻擊。但是該方法對(duì)長(zhǎng)時(shí)間攻擊檢測(cè)精度較低且缺乏對(duì)潛在APT 攻擊的檢測(cè)。Johnson 等[11]提出一種用于文本分類的深度金字塔卷積神經(jīng)網(wǎng)絡(luò)(DPCNN,deep pyramid convolutional neural network),可以有效感知長(zhǎng)距離關(guān)聯(lián),提高多類別分類檢測(cè)精度。Akbar等[12]將APT 攻擊序列轉(zhuǎn)換為圖節(jié)點(diǎn)并利用集成卷積(Setconv,set convolution)模型解決類不平衡問(wèn)題,采用機(jī)器學(xué)習(xí)方法進(jìn)行APT 攻擊檢測(cè)。但該方法直接使用基準(zhǔn)數(shù)據(jù)集,未解決樣本流量特征單一問(wèn)題。Lai 等[13]提出一種基于文本的循環(huán)卷積神經(jīng)網(wǎng)絡(luò)(TextRCNN,text recurrent convolutional neural network),通過(guò)捕獲上下文信息提高長(zhǎng)序列檢測(cè)精度。
隨著APT 攻擊步驟增加和持續(xù)時(shí)間增長(zhǎng),攻擊流量特征逐漸多樣,已有研究方法采用的樣本較少且特征單一,未體現(xiàn)APT 攻擊多階段流量特征。同時(shí),由于APT 攻擊的階段性和持續(xù)性,在檢測(cè)持續(xù)時(shí)間較長(zhǎng)的攻擊序列時(shí),檢測(cè)模型難以感知時(shí)間跨度較大的流量特征之間的關(guān)聯(lián)性,導(dǎo)致檢測(cè)效果不佳。此外,絕大多數(shù)的檢測(cè)方法僅考慮完整攻擊周期內(nèi)的歷史APT 攻擊序列檢測(cè),缺乏對(duì)多類潛在APT 攻擊的檢測(cè)和預(yù)警手段。
針對(duì)上述不足,本文提出一種基于樣本特征強(qiáng)化的APT 攻擊多階段檢測(cè)方法。通過(guò)增強(qiáng)檢測(cè)模型對(duì)不同攻擊階段的感知能力,有效提高APT 攻擊多階段檢測(cè)精度。本文主要工作如下。
1) 根據(jù)APT 攻擊特點(diǎn),將包含不同網(wǎng)絡(luò)攻擊的惡意流量劃分為不同攻擊階段,提取各階段流量特征并根據(jù)階段順序分別構(gòu)造多類APT 攻擊序列。
2) 利用序列生成式對(duì)抗網(wǎng)絡(luò)(seqGAN,sequence generative adversarial network)模擬生成多類APT 攻擊序列。為了實(shí)現(xiàn)樣本特征強(qiáng)化,利用seqGAN 生成樣本,擴(kuò)充不同類型APT 攻擊序列特征數(shù)量,提高特征多樣性及檢測(cè)模型的泛化能力。
3) 提出一種多階段檢測(cè)網(wǎng)絡(luò)(MSDN,multi-stage detection network)模型,分析當(dāng)前序列特征并檢測(cè)多類APT 攻擊。在MSDN 中,采用多階段感知注意力機(jī)制,增強(qiáng)檢測(cè)模型對(duì)不同攻擊階段的感知能力,提高APT 攻擊多階段檢測(cè)精度。為解決持續(xù)時(shí)間較長(zhǎng)、序列檢測(cè)效果不佳的問(wèn)題,采用多頭注意力(MHA,multi-head attention)機(jī)制感知時(shí)間跨度較大的流量特征之間的關(guān)聯(lián)性。
APT 攻擊一般分為5 個(gè)階段,各階段間存在關(guān)聯(lián)性,即后一階段的攻擊基于前一階段的攻擊效果[14]。第一階段為偵察,攻擊者通常會(huì)長(zhǎng)時(shí)間反復(fù)分析偵測(cè)攻擊目標(biāo),該階段流量數(shù)據(jù)量較多,會(huì)出現(xiàn)大量發(fā)送至相同IP 地址的流量。第二階段為建立立足點(diǎn),攻擊者通過(guò)諸如暴力破解、釣魚(yú)軟件和零日漏洞等多種攻擊技術(shù)手段突破系統(tǒng)防御,進(jìn)入目標(biāo)計(jì)算機(jī)或網(wǎng)絡(luò)并建立立足點(diǎn)。由于APT 流量需要規(guī)避防御系統(tǒng),該階段使用的目標(biāo)端口多為固定常用端口,而正常流量多使用動(dòng)態(tài)端口。第三階段為橫向移動(dòng),攻擊者通過(guò)獲取管理權(quán)限提取關(guān)鍵信息,滲透其他機(jī)器,最終獲得特定域內(nèi)權(quán)限[15]。該階段攻擊流量持續(xù)時(shí)間較長(zhǎng),但流量數(shù)據(jù)量較少。第四階段為竊取信息或破壞系統(tǒng),攻擊者竊取目標(biāo)系統(tǒng)重要信息或破壞目標(biāo)系統(tǒng)。攻擊者可能會(huì)將數(shù)據(jù)發(fā)送到具有不同IP 地址的服務(wù)器,其流量數(shù)據(jù)量較少。第五階段為繼續(xù)攻擊或清除攻擊痕跡,攻擊者將繼續(xù)攻擊目標(biāo)系統(tǒng)或者銷毀攻擊痕跡。
從DAPT2020 數(shù)據(jù)集中獲取的不同階段部分流量特征如表1 所示,各階段選取3 條流量進(jìn)行對(duì)比。由表1 可知,偵察階段發(fā)送流量數(shù)據(jù)量較多,發(fā)送和接收流量數(shù)據(jù)包數(shù)量較多;建立立足點(diǎn)階段使用的目標(biāo)端口號(hào)為固定常用端口;橫向移動(dòng)階段傳輸時(shí)間相對(duì)其他階段較長(zhǎng);攻擊階段流量數(shù)據(jù)量較少,該階段發(fā)送和接收流量數(shù)據(jù)包數(shù)量和發(fā)送流量數(shù)據(jù)量較少。由于APT 攻擊各階段流量特征不同,通過(guò)選取不同階段流量特征生成多類APT 攻擊序列,可以體現(xiàn)APT 攻擊已完成的多階段特性。
表1 不同階段部分流量特征
本文提出的基于樣本特征強(qiáng)化的APT 攻擊多階段檢測(cè)方法架構(gòu)如圖1 所示。該方法架構(gòu)由樣本預(yù)處理、樣本特征強(qiáng)化和APT 攻擊檢測(cè)3 個(gè)部分組成。每部分完成的主要工作介紹如下。
圖1 基于樣本特征強(qiáng)化的APT 攻擊多階段檢測(cè)方法架構(gòu)
1) 樣本預(yù)處理。根據(jù)APT 攻擊各階段特征,經(jīng)過(guò)特征提取將原始樣本重構(gòu)為攻擊階段樣本,根據(jù)APT 攻擊階段順序構(gòu)建APT 攻擊序列。創(chuàng)建攻擊序列到標(biāo)識(shí)序列(attack2id,attack to identification)映射表,將APT 攻擊序列映射為APT 攻擊標(biāo)識(shí)序列,并生成正常流量標(biāo)識(shí)序列。
2) 樣本特征強(qiáng)化。利用seqGAN 生成器對(duì)高斯隨機(jī)噪聲進(jìn)行隨機(jī)采樣并生成APT 標(biāo)識(shí)序列,經(jīng)過(guò)seqGAN 判別器辨別模擬生成樣本與原始樣本,利用重構(gòu)誤差使生成器生成更符合原始樣本概率分布的APT 標(biāo)識(shí)序列。通過(guò)生成器和判別器的動(dòng)態(tài)博弈使模型達(dá)到納什均衡,得到基于樣本特征強(qiáng)化的APT 攻擊標(biāo)識(shí)序列樣本。
3) APT 攻擊檢測(cè)。將基于樣本特征強(qiáng)化的APT攻擊標(biāo)識(shí)序列樣本和正常流量標(biāo)識(shí)序列輸入MSDN,經(jīng)過(guò)多階段特征提取和多階段感知注意力機(jī)制構(gòu)建,將計(jì)算得到的各APT 攻擊標(biāo)識(shí)序列對(duì)應(yīng)的階段特征向量作為輔助信息檢測(cè)當(dāng)前潛在和歷史APT 攻擊,分別記為APT1、APT2、APT3、APT4和APT5,并將正常流量標(biāo)識(shí)序列記為NAPT。
在實(shí)際流量中,由于APT 攻擊不同階段的流量特征不同,將對(duì)應(yīng)的特征流量進(jìn)行順序重構(gòu)和標(biāo)識(shí)序列映射,得到最終的APT 攻擊標(biāo)識(shí)序列。
根據(jù)APT 攻擊的各階段特點(diǎn),將各類攻擊標(biāo)簽分為5 個(gè)階段,再對(duì)各階段流量及正常流量進(jìn)行數(shù)據(jù)清洗和特征選擇。為更準(zhǔn)確地描述APT 各階段特征之間的相關(guān)程度,本文采用皮爾遜相關(guān)系數(shù)進(jìn)行相關(guān)性分析,通過(guò)計(jì)算2 個(gè)變量之間的協(xié)方差和標(biāo)準(zhǔn)差的商來(lái)衡量向量間的相似度。其中,當(dāng)皮爾遜相關(guān)系數(shù)絕對(duì)值大于0.8 時(shí),為高度相關(guān);當(dāng)該值為0.5~0.8 時(shí),為顯著相關(guān);當(dāng)該值為0.3~0.5 時(shí),為低度相關(guān);當(dāng)該值小于0.3時(shí),不存在相關(guān)性。
數(shù)據(jù)清洗過(guò)程中刪除僅包含單一值和空值特征,避免此類異常值對(duì)特征選擇造成不良影響。特征選擇過(guò)程首先對(duì)流量特征進(jìn)行分析,得到流量中關(guān)鍵特征指標(biāo),如目標(biāo)端口號(hào)、傳輸時(shí)間、總發(fā)送包數(shù)和總接收包數(shù)等。由于關(guān)鍵特征指標(biāo)在后續(xù)分析中易對(duì)其余特征分析造成影響,僅考慮除關(guān)鍵特征指標(biāo)外的其他流量特征進(jìn)行特征選擇。通過(guò)計(jì)算各階段流量特征間的皮爾遜相關(guān)系數(shù),對(duì)于相關(guān)性系數(shù)大于0.8 的兩類特征,僅保留一類特征,再對(duì)保留的類別特征和關(guān)鍵特征編碼,得到各階段流量和正常流量樣本。
對(duì)DAPT2020 數(shù)據(jù)集樣本進(jìn)行流量樣本重構(gòu),各階段流量特征維度變化如表2 所示。經(jīng)過(guò)數(shù)據(jù)清洗和特征選擇,對(duì)各階段的流量特征和正常流量特征進(jìn)行降維,有效減少冗余特征的噪聲干擾。
表2 流量特征維度變化
在APT 攻擊各階段隨機(jī)選取一條流量樣本并按照攻擊階段順序進(jìn)行拼接,得到符合APT 特征的攻擊序列。同時(shí),考慮到在實(shí)際網(wǎng)絡(luò)環(huán)境中,攻擊者會(huì)在每次攻擊中穿插一系列非攻擊性的操作,從而繞過(guò)檢測(cè)及防御系統(tǒng)[16]。因此,在上述得到的攻擊序列中,隨機(jī)插入不同數(shù)量和類型的正常流量樣本,得到APT 攻擊序列。
DAPT2020 數(shù)據(jù)集構(gòu)建的5 類APT 攻擊序列如表3 所示,其中APT5中部分流量特征類型對(duì)應(yīng)攻擊階段特征如表4 所示。偵察階段與其他攻擊階段相比,發(fā)送流量數(shù)據(jù)包數(shù)量較多;建立立足點(diǎn)階段目標(biāo)端口流量特征為固定端口號(hào)9003;橫向移動(dòng)階段流量傳輸時(shí)間較長(zhǎng);攻擊階段數(shù)據(jù)包數(shù)量較少。綜上,選取的攻擊特征與各攻擊階段具有唯一對(duì)應(yīng)關(guān)系。
表3 5 類APT 攻擊序列
表4 APT5 中部分流量特征類型對(duì)應(yīng)攻擊階段特征
APT 攻擊序列構(gòu)建過(guò)程如圖2 所示,其中S1、S2、S3、S4、S5和SN分別表示階段1~階段5 的流量樣本及正常流量樣本。
圖2 APT 攻擊序列構(gòu)建過(guò)程
由于樣本特征強(qiáng)化過(guò)程和APT 攻擊檢測(cè)過(guò)程中將APT 攻擊序列作為模型的輸入,需要對(duì)序列中元素進(jìn)行編碼。為提高模型訓(xùn)練效率,本文通過(guò)構(gòu)建attack2id 映射表,將APT 攻擊序列映射為APT攻擊標(biāo)識(shí)序列。
首先,統(tǒng)計(jì)APT 攻擊序列中出現(xiàn)的離散型編碼特征。其次,對(duì)編碼特征進(jìn)行賦值。最后,利用字典對(duì)attack2id 映射表進(jìn)行存儲(chǔ)。通過(guò)attack2id 映射表,將所生成的APT 攻擊序列映射為APT 攻擊標(biāo)識(shí)序列,得到最終的APT 攻擊數(shù)據(jù)。根據(jù)APT 攻擊標(biāo)識(shí)序列類型生成對(duì)應(yīng)的標(biāo)簽,其中僅包含階段1 的APT攻擊標(biāo)識(shí)序列標(biāo)記為1,包含前2個(gè)階段的APT攻擊標(biāo)識(shí)序列標(biāo)記為2,以此類推,給5 類APT 攻擊標(biāo)識(shí)序列分別標(biāo)記對(duì)應(yīng)標(biāo)簽。APT 攻擊標(biāo)識(shí)序列構(gòu)建算法如算法1 所示。
算法1APT 攻擊標(biāo)識(shí)序列構(gòu)建算法
輸入APT 攻擊序列seq
輸出攻擊序列到標(biāo)識(shí)序列映射表attack2id,APT 攻擊標(biāo)識(shí)序列APT_seq
MSDN 不僅要對(duì)處于不同階段的APT 攻擊進(jìn)行檢測(cè),還要檢測(cè)出序列是否為APT 攻擊。因此,需根據(jù)正常流量樣本生成正常流量標(biāo)識(shí)序列。
為避免序列長(zhǎng)度不一致影響檢測(cè)精度,分別生成與不同階段的APT 攻擊序列長(zhǎng)度相同的正常序列,根據(jù)正常流量序列中的離散型編碼特征更新attack2id 映射表,映射生成對(duì)應(yīng)標(biāo)識(shí)序列。根據(jù)生成的正常流量序列生成對(duì)應(yīng)標(biāo)簽,標(biāo)記為0。正常流量標(biāo)識(shí)序列構(gòu)建過(guò)程如圖3 所示。
圖3 正常流量標(biāo)識(shí)序列構(gòu)建過(guò)程
由于APT 攻擊持續(xù)時(shí)間長(zhǎng)、隱蔽性高,在APT攻擊檢測(cè)領(lǐng)域可用于評(píng)估的數(shù)據(jù)集較少。當(dāng)前研究多使用網(wǎng)絡(luò)異常流量數(shù)據(jù)集,其中包含的各階段攻擊序列樣本不足,流量特征的多樣性較低,進(jìn)而導(dǎo)致多階段檢測(cè)模型訓(xùn)練出現(xiàn)過(guò)擬合,檢測(cè)效果不佳。APT 攻擊樣本特征強(qiáng)化旨在采用無(wú)監(jiān)督方式,模擬生成APT 攻擊標(biāo)識(shí)序列并增加各階段樣本特征數(shù)量,從而提高多階段樣本特征的多樣性和檢測(cè)模型的泛化能力,防止出現(xiàn)過(guò)擬合。
GAN 是當(dāng)前深度學(xué)習(xí)領(lǐng)域最具發(fā)展前景的一類無(wú)監(jiān)督深度生成模型,由生成器和判別器構(gòu)成。生成器需要盡可能生成更接近真實(shí)樣本的模擬樣本,判別器需要盡可能區(qū)分真實(shí)樣本和模擬樣本。GAN 在達(dá)到納什均衡時(shí)全局最優(yōu),即生成器生成樣本與真實(shí)樣本高度相似,判別器無(wú)法區(qū)分模擬樣本與真實(shí)樣本。
GAN 判別器一般采用JS 散度(JSD,Jensen-Shannon divergence)衡量真實(shí)樣本與生成樣本之間的差異,JS 散度計(jì)算過(guò)程為
其中,P表示真實(shí)樣本,Q表示生成樣本,P(x)和Q(x)分別表示真實(shí)樣本P和生成樣本Q的概率分布。JSD 計(jì)算2 個(gè)概率分布信息熵的差值并轉(zhuǎn)換為對(duì)稱值,從而度量真實(shí)樣本和生成樣本概率分布的相似度,即P(x)和Q(x)相似度越高,KL(P||Q)越小,JSD(P||Q)越小,樣本P和Q差異性越小。
生成器產(chǎn)生的樣本為映射到高維空間的低維流型,只有其分布與真實(shí)樣本存在重疊時(shí),JSD 才能作為訓(xùn)練過(guò)程中的評(píng)判標(biāo)準(zhǔn)。由于APT 攻擊樣本為離散值,生成樣本與原始樣本的分布互不重疊,其JSD 恒為ln2,因此,在重構(gòu)誤差過(guò)程中無(wú)法將離散輸出梯度反向傳播到生成器中,生成的APT攻擊序列無(wú)法得到對(duì)應(yīng)的標(biāo)識(shí)序列。為解決傳統(tǒng)GAN 生成器無(wú)法輸出離散值的問(wèn)題,本文通過(guò)引入強(qiáng)化學(xué)習(xí)中的獎(jiǎng)勵(lì)策略[17],將序列生成問(wèn)題轉(zhuǎn)化為序列決策問(wèn)題,將判別器的損失作為獎(jiǎng)勵(lì)值回傳生成器并更新生成器參數(shù)。
本文使用seqGAN模型分別生成多類APT攻擊標(biāo)識(shí)序列,基于seqGAN 的APT 攻擊樣本特征強(qiáng)化模型結(jié)構(gòu)如圖4 所示,其目標(biāo)函數(shù)為
圖4 基于seqGAN 的APT 攻擊樣本特征強(qiáng)化模型結(jié)構(gòu)
其中,D(x)表示判別器判斷原始樣本x為原始APT攻擊標(biāo)識(shí)序列樣本的概率,P(x)表示原始樣本x的概率分布,D(G(z))表示判別器判斷生成樣本z為生成APT 攻擊標(biāo)識(shí)序列樣本的概率,Q(z)表示生成樣本z的概率分布。
根據(jù)最大似然原理,在似然函數(shù)已知的前提下對(duì)高斯隨機(jī)噪聲進(jìn)行隨機(jī)采樣并將其作為seqGAN生成器的輸入z。生成器采用門限循環(huán)單元(GRU,gated recurrent unit)生成模擬APT 攻擊標(biāo)識(shí)序列a,將卷積神經(jīng)網(wǎng)絡(luò)(CNN,convolutional neural network)作為seqGAN 判別器,判斷生成序列與原始樣本x的相似性。通過(guò)梯度策略將判別器損失反饋生成器更新生成器參數(shù),將各個(gè)APT 攻擊標(biāo)識(shí)序列作為一個(gè)整體進(jìn)行獎(jiǎng)勵(lì)值回傳,即每條序列僅使用單一獎(jiǎng)勵(lì),進(jìn)而加快模型收斂。經(jīng)過(guò)若干次迭代后使模擬生成的APT 攻擊標(biāo)識(shí)序列服從真實(shí)攻擊序列分布的似然最大。最后,對(duì)多類APT 攻擊標(biāo)識(shí)序列分別進(jìn)行樣本特征強(qiáng)化,得到經(jīng)過(guò)樣本特征強(qiáng)化的APT 攻擊標(biāo)識(shí)序列。
MSDN 由多階段特征提取、多階段感知注意力機(jī)制構(gòu)建和APT 攻擊多階段檢測(cè)3 個(gè)部分構(gòu)成,如圖5 所示。通過(guò)引入多階段感知注意力機(jī)制,對(duì)提取的多階段特征與標(biāo)識(shí)序列樣本進(jìn)行注意力計(jì)算,增強(qiáng)MSDN 對(duì)APT 攻擊不同階段的感知能力,然后分析當(dāng)前標(biāo)識(shí)序列特征及其關(guān)聯(lián)性并檢測(cè)APT攻擊序列。
圖5 APT 攻擊檢測(cè)模型MSDN 架構(gòu)
由于APT 攻擊具有階段性特點(diǎn),故利用CNN作為多階段特征提取網(wǎng)絡(luò),分別對(duì)APT 攻擊中的不同階段進(jìn)行特征提取,增強(qiáng)MSDN 對(duì)APT 攻擊不同階段的感知能力,從而提高APT 攻擊標(biāo)識(shí)序列檢測(cè)精度。多階段特征提取過(guò)程如圖6 所示。多階段特征提取具體方法設(shè)計(jì)如下。
圖6 多階段特征提取過(guò)程
1) 流量嵌入矩陣構(gòu)建。對(duì)APT 攻擊多階段流量特征進(jìn)行向量映射,將不同攻擊階段的流量特征轉(zhuǎn)化為流量嵌入矩陣E,該矩陣長(zhǎng)度與攻擊階段中最長(zhǎng)的流量特征序列長(zhǎng)度T相同,對(duì)長(zhǎng)度不足的流量特征則采取填充操作。
2) 特征提取。對(duì)流量嵌入矩陣進(jìn)行卷積運(yùn)算并提取特征,該卷積層包含m個(gè)神經(jīng)元,每個(gè)神經(jīng)元對(duì)應(yīng)的卷積核K用于對(duì)流量嵌入矩陣進(jìn)行卷積操作,從而將APT 流量序列鄰域內(nèi)的特征點(diǎn)聚合得到新的特征。第i個(gè)神經(jīng)元輸出的特征為
其中,ET表示序列長(zhǎng)度為T的流量嵌入矩陣,*表示卷積核的內(nèi)積運(yùn)算,bi表示偏置項(xiàng),ReLU 表示非線性激活函數(shù)。
按照卷積滑動(dòng)窗口大小,每隔t步長(zhǎng)執(zhí)行一次卷積運(yùn)算,得到第i個(gè)神經(jīng)元輸出的特征向量。為避免由卷積層參數(shù)誤差造成的估計(jì)偏差,使用最大池化層提取特征向量中關(guān)鍵的特征。
3) 多階段特征表示生成。將卷積層中m個(gè)神經(jīng)元的輸出結(jié)果進(jìn)行線性拼接,得到多階段特征表示MSF
其中,[;]表示向量拼接操作,msfi表示第i個(gè)APT攻擊階段對(duì)應(yīng)的特征向量,為前i個(gè)神經(jīng)元輸出的特征向量的最大值。MSF 為APT 攻擊多階段特征表示,由APT 攻擊的各個(gè)階段對(duì)應(yīng)的特征向量msfi拼接得到,用于后續(xù)多階段感知注意力機(jī)制構(gòu)建。
由于APT 攻擊具有階段性特征,為了提高M(jìn)SDN 對(duì)攻擊各個(gè)階段特征的感知能力,本文提出一種多階段感知注意力機(jī)制。通過(guò)對(duì)每條標(biāo)識(shí)序列進(jìn)行注意力計(jì)算,得到其與多階段特征的相關(guān)度。再將相關(guān)度作為補(bǔ)充知識(shí)與標(biāo)識(shí)序列一同作為檢測(cè)模型的輸入,提升模型對(duì)多階段特征的感知程度,進(jìn)而提高APT 攻擊多階段檢測(cè)的準(zhǔn)確率。MSDN 通過(guò)對(duì)每條標(biāo)識(shí)序列進(jìn)行注意力計(jì)算,實(shí)現(xiàn)對(duì)各階段流量特征的關(guān)注。
首先,對(duì)MSF 與APT 攻擊標(biāo)識(shí)序列APT_seq={a1,a2,a3,…,an}進(jìn)行點(diǎn)積計(jì)算,得到貢獻(xiàn)度得分eij。其次,將貢獻(xiàn)度得分轉(zhuǎn)換為注意力系數(shù)αij,根據(jù)注意力系數(shù)對(duì)APT 多階段特征進(jìn)行加權(quán)求和計(jì)算,得到多階段感知注意力si。最后,將多階段感知注意力生成的階段特征向量與APT 攻擊標(biāo)識(shí)序列進(jìn)行拼接。具體計(jì)算方法為
其中,atten(·)表示注意力點(diǎn)積計(jì)算,θi表示APT 攻擊多階段檢測(cè)階段的第i個(gè)輸入。
多階段檢測(cè)階段將根據(jù)4.2 節(jié)和4.3 節(jié)的處理步驟得到的標(biāo)識(shí)序列θ作為輸入,通過(guò)構(gòu)建Transformer 模型編碼器結(jié)構(gòu)、計(jì)算多頭注意力和構(gòu)建全連接層進(jìn)行APT 攻擊多階段檢測(cè)。
首先,構(gòu)建Transformer 模型編碼器結(jié)構(gòu),由于Transformer 模型不能捕捉時(shí)序信息,處理具有時(shí)序特征的APT 標(biāo)識(shí)序列前,需進(jìn)行位置編碼。
其次,MSDN 利用自注意力機(jī)制[18],尋找APT攻擊標(biāo)識(shí)序列內(nèi)部不同位置之間的聯(lián)系。MSDN 由2 個(gè)編碼層堆疊,各編碼層由自注意力層和前饋神經(jīng)網(wǎng)絡(luò)2 個(gè)子層構(gòu)成,各個(gè)子層之間采用殘差連接和求和與歸一化處理,避免訓(xùn)練過(guò)程中出現(xiàn)梯度消失,從而加速訓(xùn)練。
自注意力層采用多頭注意力機(jī)制,在不同位置共同關(guān)注源自不同表示子空間的信息,感知APT每個(gè)階段內(nèi)的特征和不同階段間關(guān)聯(lián)性??紤]到APT 攻擊標(biāo)識(shí)序列包括5 個(gè)攻擊階段,將h設(shè)置為5,多頭注意力計(jì)算式為
其中,Q、K、V分別表示經(jīng)過(guò)4.3 節(jié)計(jì)算得到的階段特征序列所對(duì)應(yīng)的查詢向量、鍵向量和值向量,dk表示鍵向量維度,分別表示對(duì)應(yīng)變換矩陣,softmax(·)表示歸一化指數(shù)函數(shù),WO表示權(quán)重矩陣。
最后,構(gòu)建全連接層,對(duì)經(jīng)過(guò)編碼層處理的標(biāo)識(shí)序列進(jìn)行檢測(cè),得到當(dāng)前輸入的標(biāo)識(shí)序列類型實(shí)現(xiàn)多階段檢測(cè)。
實(shí)驗(yàn)的計(jì)算機(jī)配置為:Intel(R) Xeon(R) Silver 處理器,32 GB 主存,16 GB 內(nèi)存,NVIDIA Quadro RTX5000 顯卡(16 GB 顯存)。訓(xùn)練和測(cè)試實(shí)驗(yàn)均在Ubuntu 操作系統(tǒng)上進(jìn)行,使用編程語(yǔ)言Python3.8 和深度學(xué)習(xí)框架Pytorch1.8 實(shí)現(xiàn)本文檢測(cè)方法。
實(shí)驗(yàn)中采用的檢測(cè)樣本為CICIDS2017 數(shù)據(jù)集[19]和DAPT2020 數(shù)據(jù)集[20]。CICIDS2017 數(shù)據(jù)集由加拿大網(wǎng)絡(luò)安全研究所創(chuàng)建,將正常通信和部分常見(jiàn)攻擊分別標(biāo)記為正常流量和 15 類攻擊流量。DAPT2020網(wǎng)絡(luò)流量數(shù)據(jù)集是用于APT攻擊檢測(cè)的最新公開(kāi)數(shù)據(jù)集,將在模擬環(huán)境中收集的網(wǎng)絡(luò)流量分別標(biāo)記為正常流量或APT 攻擊各階段流量。
在實(shí)驗(yàn)中,分別采用準(zhǔn)確率(Accuracy)、F1分?jǐn)?shù)(F1-score)和宏平均(Macro_avg)3 個(gè)指標(biāo)評(píng)價(jià)檢測(cè)方法和模型的檢測(cè)性能。準(zhǔn)確率是指所有樣例中檢測(cè)結(jié)果正確的比例。F1 分?jǐn)?shù)綜合考慮精確率和召回率,其中精確率是指正確檢測(cè)為正例樣本與所有檢測(cè)為正例樣本的比例,召回率是指正確檢測(cè)為正例樣本與所有正例樣本的比例。宏平均綜合考慮不同類別分類結(jié)果,計(jì)算多個(gè)類別F1 分?jǐn)?shù)的算數(shù)平均值。3 個(gè)指標(biāo)評(píng)價(jià)分別表示為
其中,TP(true positive)為正例樣本檢測(cè)為正例樣本的樣例數(shù),F(xiàn)P(false positive)為攻擊樣本檢測(cè)為正例樣本的樣例數(shù),F(xiàn)N(false negative)為正例樣本檢測(cè)為攻擊樣本的樣例數(shù),ALL 為所有樣例數(shù)。
將多類 APT 攻擊標(biāo)識(shí)序列分別輸入基于seqGAN 的APT 攻擊樣本特征強(qiáng)化模型,再與正常流量標(biāo)識(shí)序列進(jìn)行洗牌操作得到最終的標(biāo)識(shí)序列樣本。本文標(biāo)識(shí)序列樣本共分為3 個(gè)部分,其中60%為訓(xùn)練集,20%為驗(yàn)證集,20%為測(cè)試集。本文的實(shí)驗(yàn)包括APT 攻擊二分類對(duì)比實(shí)驗(yàn)、APT 攻擊多階段檢測(cè)對(duì)比實(shí)驗(yàn)和攻擊序列不同占比檢測(cè)對(duì)比實(shí)驗(yàn)。
在二分類對(duì)比實(shí)驗(yàn)中,分別采用文獻(xiàn)[8-13]檢測(cè)模型和本文方法中的MSDN 在DAPT2020 數(shù)據(jù)集上進(jìn)行二分類檢測(cè)實(shí)驗(yàn),使用準(zhǔn)確率和F1 分?jǐn)?shù)評(píng)估APT 攻擊檢測(cè)效果,不同模型對(duì)APT 攻擊的檢測(cè)結(jié)果如表6 所示。
表6 不同模型對(duì)APT 攻擊的檢測(cè)結(jié)果
由表6 可知,MSDN 采用多頭注意力機(jī)制感知時(shí)間跨度較大的流量特征之間的關(guān)聯(lián)性,并采用多階段感知注意力機(jī)制,增強(qiáng)檢測(cè)模型對(duì)APT 攻擊感知能力。與對(duì)比模型相比,MSDN 具有較好的攻擊檢測(cè)效果。
由于MSDN 將APT 攻擊標(biāo)識(shí)序列作為檢測(cè)模型輸入,采用文本分類經(jīng)典模型和APT 攻擊序列檢測(cè)模型作為對(duì)比模型進(jìn)行實(shí)驗(yàn)分析,可以證明本文方法在APT 攻擊多階段檢測(cè)效果良好。在多階段檢測(cè)對(duì)比實(shí)驗(yàn)中,分別將 MSDN 與GAN-LSTM[9]、DPCNN[11]和TextRCNN[13]模型作為APT 攻擊多階段檢測(cè)模型,在2 個(gè)數(shù)據(jù)集上的多階段F1 分?jǐn)?shù)檢測(cè)結(jié)果分別如表7 和表8 所示,宏平均結(jié)果對(duì)比如圖7 所示。
表7 CICIDS2017 數(shù)據(jù)集多階段F1 分?jǐn)?shù)檢測(cè)結(jié)果
表8 DAPT2020 數(shù)據(jù)集多階段F1 分?jǐn)?shù)檢測(cè)結(jié)果
圖7 4 種模型的宏平均結(jié)果對(duì)比
由表7、表8 和圖7 可知,MSDN 具有較好的APT 攻擊多階段檢測(cè)效果,其宏平均高于其他3 種模型。在對(duì)APT 攻擊多階段檢測(cè)中,GAN-LSTM在檢測(cè)較長(zhǎng)攻擊序列時(shí)會(huì)出現(xiàn)參數(shù)訓(xùn)練較慢及梯度消失現(xiàn)象,導(dǎo)致檢測(cè)精度降低。DPCNN 通過(guò)提取間隔距離較遠(yuǎn)的APT 特征之間關(guān)聯(lián)性,對(duì)較長(zhǎng)攻擊序列檢測(cè)精度較高,但由于其未考慮APT 攻擊序列特性,在正常流量檢測(cè)時(shí)效果不佳。TextRCNN 利用循環(huán)網(wǎng)絡(luò)結(jié)構(gòu)提取遠(yuǎn)距離特征,但該模型在分析序列特征時(shí)對(duì)各流量特征進(jìn)行單獨(dú)分析,對(duì)較長(zhǎng)攻擊序列檢測(cè)效果不佳。MSDN能夠充分感知各階段特征及其關(guān)聯(lián)性,經(jīng)過(guò)相同樣本特征強(qiáng)化后,對(duì)APT 攻擊多階段檢測(cè)具有較好效果。隨著APT 攻擊持續(xù)時(shí)間增長(zhǎng),流量特征逐漸多樣,正常流量的隨機(jī)嵌入會(huì)引入一定噪聲,導(dǎo)致檢測(cè)模型對(duì)時(shí)間跨度較大的流量特征之間關(guān)聯(lián)性的感知能力出現(xiàn)一定程度的下降,進(jìn)而導(dǎo)致對(duì)長(zhǎng)持續(xù)時(shí)間的攻擊序列檢測(cè)精度降低。MSDN引入多階段感知注意力機(jī)制,相較對(duì)比模型,在長(zhǎng)序列檢測(cè)中具有較好的檢測(cè)效果。
由于APT 攻擊具有隱蔽性和長(zhǎng)期性等特點(diǎn),APT 攻擊流量在真實(shí)網(wǎng)絡(luò)流量中的比重較低,需要從網(wǎng)絡(luò)流量中檢測(cè)出不同占比的APT 攻擊序列。因此,采用本文方法對(duì)2 個(gè)數(shù)據(jù)集中不同占比的攻擊序列進(jìn)行檢測(cè),實(shí)驗(yàn)結(jié)果如圖8 和圖9所示。
圖8 CICIDS2017 數(shù)據(jù)集中不同占比的攻擊序列的檢測(cè)結(jié)果
圖9 DAPT2020 數(shù)據(jù)集中不同占比的攻擊序列的檢測(cè)結(jié)果
由圖8 和圖9 可知,在較低的攻擊序列占比中,本文方法仍具有較高檢測(cè)精度。在CICIDS2017 數(shù)據(jù)集中,當(dāng)攻擊序列占比為10%時(shí),APT1檢測(cè)F1分?jǐn)?shù)達(dá)到96.17%。隨著攻擊序列在樣本中占比的提高,APT 攻擊多階段檢測(cè)精度逐漸提高。由于攻擊序列在標(biāo)識(shí)序列樣本中占比越高,經(jīng)樣本特征強(qiáng)化,APT 攻擊檢測(cè)過(guò)程中感知的攻擊特征增加,對(duì)攻擊的檢測(cè)精度逐漸提升。實(shí)驗(yàn)結(jié)果證明,在不同真實(shí)網(wǎng)絡(luò)流量占比情況下,本文方法對(duì)多類APT攻擊標(biāo)識(shí)序列具有較好的檢測(cè)效果。
為提高APT 攻擊多階段檢測(cè)精度,本文提出一種基于樣本特征強(qiáng)化的APT 攻擊多階段檢測(cè)方法。通過(guò)重構(gòu)APT 攻擊多階段流量構(gòu)建APT 攻擊標(biāo)識(shí)序列,基于seqGAN 生成更符合真實(shí)網(wǎng)絡(luò)流量的APT攻擊標(biāo)識(shí)序列并對(duì)原始序列樣本進(jìn)行樣本特征強(qiáng)化。通過(guò)提出的MSDN 模型進(jìn)行APT 攻擊多階段檢測(cè),構(gòu)建多階段感知注意力機(jī)制來(lái)增強(qiáng)模型對(duì)不同攻擊階段的感知能力。實(shí)驗(yàn)結(jié)果表明,本文方法在增強(qiáng)攻擊階段流量特征多樣性的同時(shí)能夠提高APT 攻擊多階段檢測(cè)精度,對(duì)多類APT 攻擊序列的檢測(cè)性能較突出。
在未來(lái)研究中,筆者將從多角度分析APT 攻擊檢測(cè)的關(guān)聯(lián)影響因素,考慮在提取各個(gè)階段流量特征時(shí)進(jìn)一步優(yōu)化特征選擇方法,從而進(jìn)一步提高對(duì)長(zhǎng)持續(xù)時(shí)間APT 攻擊的檢測(cè)性能。