童家鋮 陳 偉 倪嘉翼 李 頻
(南京郵電大學(xué)計(jì)算機(jī)學(xué)院、軟件學(xué)院、網(wǎng)絡(luò)空間安全學(xué)院 南京 210023)
隨著人工智能技術(shù)應(yīng)用領(lǐng)域的擴(kuò)展,越來越多的研究著眼于基于人工智能的網(wǎng)絡(luò)安全防護(hù),特別是在網(wǎng)絡(luò)流量檢測任務(wù)研究上取得很大進(jìn)展[1-2].然而,基于人工智能的方法難免會(huì)遭受噪聲標(biāo)簽的干擾,尤其是在加密惡意流量檢測領(lǐng)域,專家都很難分辨樣本的真實(shí)標(biāo)簽,確保大規(guī)模數(shù)據(jù)集中所有標(biāo)簽的正確性是非常具有挑戰(zhàn)性的,因?yàn)楫a(chǎn)生加密惡意流量的技術(shù)和工具十分復(fù)雜且不斷演變.這也影響了現(xiàn)在針對加密惡意流量檢測模型的穩(wěn)定性,進(jìn)而增大了系統(tǒng)被惡意入侵的風(fēng)險(xiǎn).
近年來,有不少噪聲標(biāo)簽檢測方法被提出,主要分為3類:1)剔除潛在的噪聲標(biāo)簽數(shù)據(jù);2)提高模型對于帶噪聲數(shù)據(jù)集的訓(xùn)練表現(xiàn);3)檢測出噪聲標(biāo)簽后予以修正再進(jìn)行訓(xùn)練.但是在二分類的加密惡意流量檢測場景下,對攻擊樣本的數(shù)據(jù)收集本身有難度,并且惡意流量檢測模型的精準(zhǔn)度要求也比其他圖片、語言類應(yīng)用模型要高,因此第1類和第2類方法并不適用于網(wǎng)絡(luò)安全領(lǐng)域,而第3類方法也存在噪聲標(biāo)簽檢測精度不理想的問題.
綜上所述,處理有噪聲的數(shù)據(jù)集以改進(jìn)加密惡意流量檢測模型的訓(xùn)練及其評估仍然是一項(xiàng)挑戰(zhàn).為此,本文提出了一種基于樣本噪聲權(quán)重計(jì)算與差分訓(xùn)練(KLIEP based relative probability density and differential training, KRPD-DT)的噪聲標(biāo)簽檢測方法,使用差分訓(xùn)練的思想記錄樣本在2個(gè)相同結(jié)構(gòu)模型中訓(xùn)練的損失,根據(jù)干凈樣本和噪聲樣本在訓(xùn)練行為上的差異性來檢測出噪聲樣本.同時(shí),使用基于KLIEP-RPD的相對噪聲權(quán)重估計(jì)方法,估計(jì)每個(gè)樣本的相對概率密度,把它作為樣本損失行為的權(quán)重來放大樣本間的損失差異.本文針對惡意DoH加密隧道流量的檢測場景驗(yàn)證了該方法的有效性.
檢測和去除噪聲標(biāo)簽對于確保機(jī)器學(xué)習(xí)模型的準(zhǔn)確性和穩(wěn)健性至關(guān)重要.近年來,國內(nèi)外關(guān)于噪聲標(biāo)簽檢測的研究比較多.
Ren等人[3]提出了一種元學(xué)習(xí)算法,該算法根據(jù)訓(xùn)練樣本的梯度方向?yàn)槠浞峙錂?quán)重,為了確定樣本權(quán)重,該方法對當(dāng)前的小批量樣本權(quán)重執(zhí)行元梯度下降步驟,以最大限度地減少干凈無偏驗(yàn)證集的損失.實(shí)驗(yàn)證明該方法在類不平衡和損壞標(biāo)簽問題上實(shí)現(xiàn)了不錯(cuò)的性能,但是在高噪聲率的數(shù)據(jù)集上表現(xiàn)不佳.Arazo等人[4]提出了一種貝塔混合模型作為樣本損失值的無監(jiān)督生成模型,以此在訓(xùn)練期間估計(jì)樣本被錯(cuò)誤標(biāo)記的概率,并通過深度神經(jīng)網(wǎng)絡(luò)的預(yù)測來校正損失.Xu等人[5]提出了一個(gè)通用框架來降低訓(xùn)練數(shù)據(jù)的噪聲水平,用于訓(xùn)練任何基于機(jī)器學(xué)習(xí)的Android惡意軟件檢測,該框架利用2個(gè)相同的深度學(xué)習(xí)分類模型的所有中間狀態(tài),為每個(gè)輸入樣本生成噪聲檢測特征向量,并應(yīng)用一組異常值檢測算法降低給定訓(xùn)練數(shù)據(jù)的噪聲水平,該方法在3種Android惡意軟件數(shù)據(jù)集上都取得了較好的降噪效果[5].
本文基于差分訓(xùn)練的思想進(jìn)行改進(jìn),為樣本計(jì)算相對噪聲權(quán)重來更好地區(qū)分干凈樣本和噪聲樣本.整體方法架構(gòu)如圖1所示:
圖1 KRPD-DT方法架構(gòu)
本文利用迭代的思想,在每個(gè)迭代中通過訓(xùn)練2個(gè)結(jié)構(gòu)相同的深度學(xué)習(xí)模型,獲取每個(gè)樣本在訓(xùn)練過程中的訓(xùn)練行為,這里的訓(xùn)練行為由樣本在訓(xùn)練期間的每個(gè)epoch產(chǎn)生的損失串聯(lián)形成,然后給每個(gè)樣本的訓(xùn)練行為乘以一個(gè)權(quán)重KLIEP-RPD,形成最終的樣本損失矩陣.最后根據(jù)干凈樣本和噪聲樣本在損失上的差異性,將其送入離群點(diǎn)檢測算法,進(jìn)行噪聲標(biāo)簽的檢測.在進(jìn)行多個(gè)迭代后可以有效地降低數(shù)據(jù)集中的噪聲樣本數(shù)量,從而提高模型再訓(xùn)練的精度,優(yōu)化增量模型的檢測效果.下面將對該方法的各個(gè)模塊進(jìn)行介紹.
在本文提出的噪聲標(biāo)簽檢測方法中,使用CIC實(shí)驗(yàn)室的DoH數(shù)據(jù)集,將其中的標(biāo)簽按百分比進(jìn)行隨機(jī)翻轉(zhuǎn),作為原始噪聲數(shù)據(jù)集,稱之為WS.隨后在WS中使用Down Sampling下采樣方法分離出一部分帶噪數(shù)據(jù)集,我們將這一部分帶噪數(shù)據(jù)集稱為DS.在生成WS和DS后,這2部分帶噪數(shù)據(jù)集將分別送入2個(gè)結(jié)構(gòu)相同的LSTM模型進(jìn)行訓(xùn)練,需要同時(shí)訓(xùn)練2個(gè)模型,分別稱為WS-LSTM和DS-LSTM,使用Keras建模并保持2個(gè)模型的初始狀態(tài)、參數(shù)設(shè)置以及網(wǎng)絡(luò)結(jié)構(gòu)的一致.在每次的迭代訓(xùn)練中采用差分學(xué)習(xí)率的方法進(jìn)行訓(xùn)練,隨著每次的訓(xùn)練,動(dòng)態(tài)地更新WS-LSTM和DS-LSTM的學(xué)習(xí)率,并且始終保持2個(gè)模型的學(xué)習(xí)率一致.
KLIEP-RPD是基于KLIEP的相對概率密度(RPD)估計(jì)方法,根據(jù)不同類別標(biāo)簽噪聲的對比度來衡量一個(gè)樣本是否為噪聲樣本的概率.根據(jù)文獻(xiàn)[6]中的結(jié)論,噪聲點(diǎn)會(huì)影響模型擬合過程中的決策曲線,即模型在擬合不同標(biāo)簽的異質(zhì)樣本時(shí)噪聲樣本的概率密度是稀疏的;當(dāng)模型在擬合相同標(biāo)簽的同質(zhì)樣本時(shí)概率密度保持稠密.
因此,可以定義來自不同類的樣本概率密度為異質(zhì)概率密度P(X=xi|Y≠yj),來自同一類的樣本概率密度為同質(zhì)概率密度P(X=xi|Y=yj),并將RPD定義為兩者的比率,這樣噪聲樣本的RPD就比較大,而干凈樣本的RPD就比較小,因此有助于放大干凈樣本和噪聲樣本間的差異.
(1)
式(1)定義的相對概率密度具有自然的比率結(jié)構(gòu),因此可以直接使用強(qiáng)大的估計(jì)方法KLIEP直接評估RPD值,避免分別計(jì)算分子和分母而帶來的計(jì)算復(fù)雜度[7].本文使用python中的pykliep擴(kuò)展庫實(shí)現(xiàn)這樣的計(jì)算.
由于DS中包含更多的噪聲樣本,所以根據(jù)每條DoH流量樣本的會(huì)話流通信五元組進(jìn)行定位,分別獲取DS中每條樣本在WS-LSTM和DS-LSTM這2個(gè)模型中的訓(xùn)練損失,并且將2部分損失按照時(shí)間順序進(jìn)行拼接,拼接完成后就形成初始的樣本損失行為矩陣.接下來,根據(jù)上文中計(jì)算的樣本相對噪聲權(quán)重KLIEP-RPD,將每條樣本的損失矩陣都乘以這個(gè)權(quán)重,形成最終需要的樣本加權(quán)損失行為矩陣.
通過上文所描述的方法提取到樣本加權(quán)損失行為矩陣之后,將其送入最后的集成型離群點(diǎn)檢測模塊中,如果1個(gè)樣本的加權(quán)損失行為矩陣被該模塊判斷為是1個(gè)離群點(diǎn),那么就認(rèn)為它是1個(gè)噪聲樣本,并將它在WS數(shù)據(jù)集中的標(biāo)簽翻轉(zhuǎn).本模塊共選取9種離群點(diǎn)檢測算法構(gòu)成一個(gè)投票器,涵蓋了基于密度的算法、基于距離的算法、基于集成思想的算法等,能夠從多方面評估輸入的樣本是否為異常值,以上9種算法均來自于python中的離群點(diǎn)檢測算法包PyOD.
以上介紹的構(gòu)建差分訓(xùn)練模型、建立樣本加權(quán)損失行為矩陣、離群點(diǎn)檢測3個(gè)步驟構(gòu)成1輪迭代,每輪迭代都能在一定程度上減少WS噪聲數(shù)據(jù)集中的噪聲標(biāo)簽數(shù)量,設(shè)置一個(gè)停止標(biāo)準(zhǔn),當(dāng)連續(xù)3次迭代后降低的噪聲標(biāo)簽比例小于0.5%時(shí)停止迭代.
本文針對DoH數(shù)據(jù)集的噪聲檢測進(jìn)行研究,在目前的開源數(shù)據(jù)集中,加拿大CIC實(shí)驗(yàn)室在2020年捕獲的DoH數(shù)據(jù)集已經(jīng)被廣泛用于研究[8],因此本文也將截取其中的一部分進(jìn)行實(shí)驗(yàn).需要注意的是,我們默認(rèn)該數(shù)據(jù)集中的標(biāo)簽全部正確,并通過按照百分比隨機(jī)翻轉(zhuǎn)標(biāo)簽的形式模擬一個(gè)有噪聲的DoH數(shù)據(jù)集,初始的噪聲標(biāo)簽比例設(shè)置為20%,實(shí)驗(yàn)數(shù)據(jù)集如表1所示:
表1 實(shí)驗(yàn)數(shù)據(jù)集
本文實(shí)驗(yàn)中,定義TP為檢測出的噪聲標(biāo)簽數(shù)量,FP為誤檢出的噪聲標(biāo)簽數(shù)量,于是,定義實(shí)驗(yàn)的評估指標(biāo)為數(shù)據(jù)集凈化率DPR和噪聲清潔率NCR.
(2)
(3)
本文定義1-DPR(t)作為數(shù)據(jù)集整體凈化率(t代表最后一次迭代),使用1-DPR(t)和NCR評估迭代結(jié)束后的整體檢測效果.此外,還使用F1-score指標(biāo)評估凈化后的數(shù)據(jù)集對惡意DoH流量檢測模型效果的提升,使用groud-truth標(biāo)簽數(shù)據(jù)集訓(xùn)練一個(gè)集成學(xué)習(xí)模型,該模型被驗(yàn)證在惡意DoH流量檢測上有不錯(cuò)的表現(xiàn),F1-score達(dá)到99.4%[9].使用相同方法,對模擬的噪聲數(shù)據(jù)集與清洗后的數(shù)據(jù)集分別訓(xùn)練,來驗(yàn)證KRPD-DT方法的實(shí)用性.
本節(jié)實(shí)驗(yàn)將本文提出的KRPD-DT方法與其他一些噪聲檢測方法進(jìn)行對比,本文選取的基線方法有decoupling雙模型解藕[10]、co-teaching聯(lián)合教學(xué)[11]、原始的DT差分訓(xùn)練[5],co-teaching和decoupling也是基于雙模型訓(xùn)練的方法,為了公平起見,3種基線方法中的深度學(xué)習(xí)模型均設(shè)置為與本文參數(shù)一致的LSTM網(wǎng)絡(luò).本文將這些方法應(yīng)用于相同數(shù)據(jù)集上,仍然設(shè)置初始噪聲率為20%,評估不同方法的檢測性能,以及數(shù)據(jù)集凈化后的惡意DoH流量檢測表現(xiàn),具體如表2所示,其中NSleft代表數(shù)據(jù)集清洗后剩下的噪聲樣本數(shù)量,CD-F1代表經(jīng)過清洗后的數(shù)據(jù)集(clean-data)訓(xùn)練的惡意DoH隧道流量檢測模型的F1-score,ND-F1代表本文模擬的噪聲DoH數(shù)據(jù)集(noisy-data)訓(xùn)練的模型F1-score,GT-F1代表在groud-truth數(shù)據(jù)集上訓(xùn)練的模型F1-score.
表2 不同方法的噪聲檢測效果對比
DT,Co-teaching,Decoupling利用不同的策略來處理噪聲樣本.原始的差分訓(xùn)練根據(jù)樣本在整個(gè)訓(xùn)練過程中的所有損失值將其識(shí)別為噪聲,而聯(lián)合教學(xué)則根據(jù)樣本在每個(gè)小批量中的單個(gè)損失值將樣本視為潛在的干凈樣本,解耦則根據(jù)其預(yù)測結(jié)果將噪聲樣本識(shí)別為僅與其在上一個(gè)歷元中的損失值相關(guān).本文的實(shí)驗(yàn)表明,改進(jìn)的KRPD-DT方法所使用的策略在檢測噪聲標(biāo)簽方面比聯(lián)合教學(xué)和解耦所使用的其他策略更可靠.
本文提出了一種基于KRPD-DT的噪聲標(biāo)簽檢測方法.在該方法中,使用差分訓(xùn)練的思想同時(shí)訓(xùn)練2個(gè)相同的模型,提取樣本在2個(gè)模型中訓(xùn)練的損失,根據(jù)干凈樣本和噪聲樣本在訓(xùn)練行為上的差異性來檢測出噪聲樣本;同時(shí),為了放大樣本間損失上的差異,提出了基于KLIEP-RPD的相對噪聲權(quán)重估計(jì)方法,估計(jì)每個(gè)樣本的相對概率密度,并把它作為樣本損失行為的權(quán)重;最后送入集成的離群點(diǎn)檢測模塊進(jìn)行噪聲標(biāo)簽檢測,并將清洗后的數(shù)據(jù)集進(jìn)行惡意DoH隧道流量檢測模型的訓(xùn)練.
實(shí)驗(yàn)表明,本文方法在DoH數(shù)據(jù)集上都有不錯(cuò)的表現(xiàn),最高檢出率達(dá)到91%,同時(shí)凈化率也達(dá)到98.2%,優(yōu)于其他幾種噪聲監(jiān)測方法,并且經(jīng)過本文方法清洗后的DoH數(shù)據(jù)集,使惡意DoH檢測模型的F1值恢復(fù)到98.1%,接近于groud-truth數(shù)據(jù)集的99.4%.