劉廣睿 張偉哲,2 李欣潔
1(哈爾濱工業(yè)大學網(wǎng)絡(luò)空間安全學院 哈爾濱 150001) 2(鵬城實驗室 廣東深圳 518055)
入侵檢測系統(tǒng)是防護網(wǎng)絡(luò)設(shè)備免受惡意流量攻擊的重要手段之一[1].然而隨著網(wǎng)絡(luò)環(huán)境的日益復雜化,傳統(tǒng)基于規(guī)則匹配的檢測方法已經(jīng)無法應(yīng)對手段多樣的黑客攻擊[2].各大安全廠商陸續(xù)將人工智能引入網(wǎng)絡(luò)入侵檢測系統(tǒng)[3],期望深度學習技術(shù)可以自動化檢測更多未知的網(wǎng)絡(luò)攻擊.
但是由于流量樣本存在概念漂移現(xiàn)象[4],樣本的特征分布與類別情況會隨著時間變化,這使智能入侵檢測系統(tǒng)必須頻繁更新以適應(yīng)新的特征樣本分布.目前主流的更新方式有2種:
1)離線更新模型[5-7].將線上模型替換為線下的新模型,是線下有監(jiān)督訓練模型.
2)在線更新模型[8-11].將實時捕獲的網(wǎng)絡(luò)流量作為模型的訓練樣本,是線上無監(jiān)督訓練模型.
離線更新模型的性能取決于訓練樣本的選擇.訓練樣本的來源主要有網(wǎng)絡(luò)環(huán)境收集和廠商合作交換2類.前者的樣本標簽依賴已有模型識別結(jié)果,后者的樣本標簽依賴合作方工作.在以上2種情況下,模型維護方都無法確定樣本標簽的準確性,這導致目前訓練樣本的篩選嚴重依賴人工檢查.
在線更新模型雖然可以減少人為干預的工作,但多數(shù)現(xiàn)有研究工作[8-11]將所有測試樣本作為模型訓練數(shù)據(jù).而真實的網(wǎng)絡(luò)環(huán)境中存在海量流量數(shù)據(jù),這種更新方式需要耗費大量運算資源,并且網(wǎng)絡(luò)中流量的情況復雜多變,直接在線訓練模型存在多種安全隱患[12].可見,缺乏樣本篩選的在線更新方法不具備實用性,這導致多數(shù)廠商仍選擇離線方法更新模型[13].
如圖1所示,目前智能入侵檢測系統(tǒng)更新方法存在3個問題:
問題1.人工檢查樣本工作量大.人工篩選訓練樣本的工作量不比設(shè)計傳統(tǒng)的檢測規(guī)則的工作量少,這令基于深度學習的檢測系統(tǒng)維護成本比傳統(tǒng)規(guī)則匹配的更高.
問題2.更新導致模型準確率不增反降.訓練樣本可能存在標簽錯誤或數(shù)據(jù)不平衡等問題[14],人工修正標簽或調(diào)整數(shù)據(jù)分布只能依靠專家經(jīng)驗,導致經(jīng)常出現(xiàn)模型更新后準確率降低的情況[15].
問題3.無法有效過濾被污染的投毒樣本.最新的工作指出[12]攻擊者可以在網(wǎng)絡(luò)中傳輸看似無害的對抗性流量樣本,這些流量與正常流量別無二致,但其會使得模型被數(shù)據(jù)投毒或被構(gòu)造后門.
目前已有的工作對上述問題解決效果并不理想.對于問題1,現(xiàn)有工作[8]注重將特征提取流程自動化,但缺乏考慮數(shù)據(jù)清洗與過濾工作.選擇哪些樣本加入訓練集,不同類別間樣本量比例以及樣本分布如何調(diào)整仍需依賴專家經(jīng)驗.問題2和問題3本質(zhì)上都屬于數(shù)據(jù)污染[16].現(xiàn)有工作主要有2類方法:1)投毒樣本檢測方法[17-20]集中于識別單獨樣本的毒性,會引起較高誤報率,且模型復原代價高;2)增強模型魯棒性方法[21-24]會影響訓練樣本分布,降低模型準確率.
本文旨在解決以上3個問題,為智能網(wǎng)絡(luò)入侵檢測系統(tǒng)設(shè)計一套支持污染數(shù)據(jù)過濾的通用模型更新方法.其主要存在4項挑戰(zhàn):
挑戰(zhàn)1.通用自動化樣本篩選.對基于任意常見人工智能算法的網(wǎng)絡(luò)入侵檢測系統(tǒng)的新增訓練樣本實現(xiàn)污染過濾.
挑戰(zhàn)2.正向穩(wěn)定更新.在環(huán)境樣本分布不發(fā)生劇烈變化的情況下,避免模型準確率出現(xiàn)更新后不增反降的情況.
挑戰(zhàn)3.投毒攻擊檢測.能夠及時發(fā)現(xiàn)訓練樣本中的中毒數(shù)據(jù),有效識別數(shù)據(jù)投毒攻擊.
挑戰(zhàn)4.中毒模型修復.在模型被污染數(shù)據(jù)影響后,以較小的代價復原模型,保證模型可以正常訓練并使用.
本文基于一個常見的前提假設(shè)[8-9],即雖然流量樣本存在概念漂移現(xiàn)象,但通常樣本分布不會發(fā)生劇烈變化,而模型的每次更新也應(yīng)該平滑過渡.如果網(wǎng)絡(luò)環(huán)境發(fā)生劇烈變化,如節(jié)假日,應(yīng)積極加入人工檢測或單獨設(shè)計樣本過濾算法應(yīng)對特殊情況.
本文的主要貢獻包括4個方面:
1)為解決挑戰(zhàn)1,提出了一種通用的智能網(wǎng)絡(luò)入侵檢測系統(tǒng)數(shù)據(jù)污染防御方法.通過監(jiān)控模型更新前后的變化,實現(xiàn)自動化污染數(shù)據(jù)過濾與模型修復,對模型的性能和健壯性起到保障作用.
2)為解決挑戰(zhàn)2,提出了一套基于衡量訓練樣本子集污染程度的模型更新方法.通過檢查新增訓練樣本與原模型的均方誤差(mean square error,MSE)保證模型平穩(wěn)更新,提升模型準確率.
3)為解決挑戰(zhàn)3,設(shè)計了一種計算模型分類界面邊緣樣本的生成對抗網(wǎng)絡(luò).通過檢查新模型對舊邊緣樣本的Fβ分數(shù),判斷模型分類界面是否被投毒攻擊拉偏,及時對投毒攻擊進行預警.
4)為解決挑戰(zhàn)4,在系統(tǒng)受到投毒攻擊后,通過讓模型學習惡意邊緣樣本,抑制投毒樣本對模型的影響,同時保證其他正常樣本仍可作為訓練數(shù)據(jù),大幅降低了修復模型的代價.
為了與現(xiàn)有工作對比,我們在常用流量數(shù)據(jù)集CICIDS2017[25]中測試了本文提出的更新方法.對比現(xiàn)有最先進的方法,該方法對投毒樣本的檢測率平均提升12.50%,對中毒模型的修復效果平均提升6.38%.
我們公布了框架源碼(1)https://github.com/liuguangrui-hit/MseAcc-py,其已在多種智能入侵檢測系統(tǒng)中測試運行[5-9],均實現(xiàn)了模型的穩(wěn)定正向更新,同時完成數(shù)據(jù)污染的過濾與修復.對于在線更新模型,該框架需搭載在特征提取器后;對于離線更新模型,則可搭建在模型外.
Mahoney等人[26]將人工智能引入網(wǎng)絡(luò)入侵檢測系統(tǒng)(network intrusion detection system, NIDS),讓模型學習從鏈路層到應(yīng)用層的協(xié)議詞匯表,以檢測未知攻擊.近年來人工智能技術(shù)快速發(fā)展,多種深度神經(jīng)網(wǎng)絡(luò)都已被引入到不同NIDS中,典型的包括深度神經(jīng)網(wǎng)絡(luò)(DNN)[5]、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)[6]、長短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM)[7]、多層感知機(MLP)[8]以及門控循環(huán)單元(GRU)[9]等.雖然智能NIDS對傳統(tǒng)惡意流量的識別率很高,但是現(xiàn)有的以離線有監(jiān)督方式訓練模型的系統(tǒng)[5-7]缺乏對數(shù)據(jù)投毒攻擊的防御以及修復方法,而以在線無監(jiān)督方式訓練模型的系統(tǒng)[8-11]也沒有考慮如何在訓練樣本被污染的情況下穩(wěn)定更新模型.表1對比了不同智能NIDS的具體實現(xiàn)算法.
Table 1 Comparison of Typical Intelligent Intrusion Detection System Work
面向智能NIDS的數(shù)據(jù)投毒攻擊方法主要分為標簽翻轉(zhuǎn)和模型偏斜2類.表2對比了12種典型的對智能NIDS的數(shù)據(jù)投毒攻擊技術(shù).
Table 2 Comparison of Typical Data Poisoning Attack Techniques for Intelligent NIDS
1)標簽翻轉(zhuǎn)假設(shè)攻擊者可以控制智能NIDS的部分訓練過程,并通過引入錯誤標簽的訓練樣本干擾模型學習.文獻[27-32]分別通過標簽污染、過敏攻擊、控制樣本分布、干擾先驗信息、隨機突變以及質(zhì)心偏移等方式對模型進行投毒攻擊;
2)模型偏斜是一類通過輸入大量良性對抗樣本拉偏模型分類邊界的攻擊方法,其可在黑盒條件下實施投毒攻擊.文獻[33-38]分別使用邊緣檢測、生成對抗網(wǎng)絡(luò)(GAN)、快速梯度符號方法(FGSM)、雅可比矩陣、C&W、向數(shù)據(jù)包添加擾動等算法生成影響模型訓練的對抗樣本.
數(shù)據(jù)污染的誘因有誤差噪聲和數(shù)據(jù)投毒2種,由于現(xiàn)有對數(shù)據(jù)投毒攻擊的防御技術(shù)通常也對誤差噪聲有一定過濾能力,所以將對誤差噪聲和數(shù)據(jù)投毒的防御統(tǒng)稱為對數(shù)據(jù)污染的防御,并統(tǒng)一評價.
面向智能NIDS的數(shù)據(jù)污染防御技術(shù)主要分為數(shù)據(jù)清洗和魯棒性學習2類.表3對比了8種典型的對智能NIDS的數(shù)據(jù)污染防御技術(shù).
1)數(shù)據(jù)清洗是一種避免將污染數(shù)據(jù)輸入到模型中或降低輸入樣本毒性的技術(shù).文獻[17-18]分別通過樣本格式化和消除輸入擾動降低樣本毒性.文獻[19-20]分別通過類別分布差異和神經(jīng)網(wǎng)絡(luò)敏感度檢測投毒樣本.此類方法可達到較高的準確率,但也會引起較高的誤報率,且模型復原代價高.
2)魯棒性學習是一種通過增強模型魯棒性,保證訓練樣本中即便混入污染數(shù)據(jù),也不會對模型造成嚴重影響的防御方法.文獻[21-24]分別通過穩(wěn)定樣本分布、引入脈沖神經(jīng)網(wǎng)絡(luò)、特征縮減、對抗訓練方式增強模型的抗毒性.此類方法通常要以降低模型準確率為代價.
Table 3 Comparison of Typical Contaminated Examples Defense Techniques for Intelligent NIDS
本節(jié)主要介紹如何實現(xiàn)智能NIDS中模型的安全穩(wěn)定更新.說明如何計算模型分類界面附近的邊緣樣本,怎樣利用邊緣樣本識別訓練數(shù)據(jù)中被污染的樣本子集,以及在模型中毒后如何快速修復.
攻擊者對智能NIDS的數(shù)據(jù)投毒一般是為后續(xù)攻擊所做的準備[39-40],因為僅令NIDS失效對攻擊者而言沒有直接受益.投毒攻擊的目標是令模型無法識別部分惡意流量.如圖2所示,對智能NIDS投毒的本質(zhì)是將模型的惡意分類區(qū)域縮小,即將分類邊界向惡意分類區(qū)域內(nèi)部推動,使后續(xù)惡意流量更容易繞過NIDS檢測.而模型更新時分類邊界變化一般為相反方向.由于網(wǎng)絡(luò)環(huán)境中可能仍存在舊有攻擊流量,基于規(guī)則匹配的NIDS不會因系統(tǒng)更新而刪除舊有規(guī)則,而基于人工智能的NIDS也不因模型更新而使惡意分類區(qū)域大幅縮小.
我們設(shè)計了邊緣樣本生成算法,以快速確定模型分類邊界的變化情況.最新工作已經(jīng)討論了在特征空間內(nèi)對抗樣本和分類邊界以及數(shù)據(jù)流形的位置關(guān)系,并證明了對抗樣本位于模型分類邊界附近[41-42].基于此,我們設(shè)計了一種可以快速生成邊界樣本的算法.首先利用人工智能模糊測試技術(shù)[43](AI Fuzzing)尋找模型錯誤識別的樣本,其存在于真實網(wǎng)絡(luò)中;然后利用EdgeGAN算法生成處于模型分類邊界附近的對抗樣本集合,其存在于特征空間中.由模糊測試啟動EdgeGAN的判別器可以縮小邊緣樣本搜索范圍,加快EdgeGAN收斂速度.模糊測試得到的錯誤分類樣本包含接近分類邊界的樣本簇和遠離分類邊界的異常點,通過令EdgeGAN的判別器與生成器對抗,使生成器分布擬合分布較廣的邊緣樣本.
EdgeGAN算法結(jié)構(gòu)如圖3所示.通過迭代訓練判別器與生成器,使生成器擬合可令模型錯誤分類的對抗樣本.通過限制擾動向量z的模值,避免生成器向異常點擬合.其優(yōu)化目標為
E(xtr,z)~p(xtr,z)(xtr,z)[log(1-D(G(xtr+z)))].
(1)
其中,xtr∈T和xfa∈F,T,F分別為錯誤分類和正確分類的樣本特征向量集合;pxfa(xfa)為xfa的概率分布,p(xtr,z)(xtr,z)為xtr與噪聲z的聯(lián)合概率分布;G(xtr+z)為對抗樣本.
EdgeGAN中生成器G利用已有邊緣樣本進行訓練,其目標是生成與邊緣樣本分布相近的對抗樣本.而判別器D則致力于區(qū)分邊緣樣本和生成器G產(chǎn)生的對抗樣本.
LD=Exfa~pxfa(xfa)[logD(xfa)]+
E(xtr,z)~p(xtr,z)(xtr,z)[log(1-D(G(xtr+z)))].
(2)
式(2)為判別器D的損失函數(shù),其表達了D識別邊緣樣本的概率分布與G生成對抗樣本的概率分布之間的差距.對于一個確定的對抗樣本,當生成器G固定時,該損失函數(shù)值越小代表D的推理能力越強.
LG=E(xtr,z)~p(xtr,z)(xtr,z)[log(1-D(G(xtr+z)))].
(3)
式(3)為生成器G的損失函數(shù),其表達了G生成的對抗樣本對D的欺騙能力.在判別器D固定時,該損失函數(shù)越小代表G生成的對抗樣本越接近模型分類邊界.
迭代訓練判別器D與生成器G,使G生成的對抗樣本不斷逼近模型邊緣.當訓練完成后,向生成器G中輸入任意流量樣本即可返回邊緣樣本.使用生成對抗網(wǎng)絡(luò)而不是簡單插值計算邊緣樣本可使該框架適用于更多的智能NIDS,減少人工計算成本.EdgeGAN邊緣樣本生成器的具體訓練算法如算法1所示.
算法1.邊緣樣本生成器EdgeGAN訓練算法.
輸入:流量樣本集T={x1,x2,…,xn}、當前NIDS模型f、判別器初始參數(shù)ω0、生成器初始參數(shù)θ0;
輸出:判別器參數(shù)ω、生成器參數(shù)θ.
① whileθ未收斂do
②AI-Fuzzing(xi,f),i=1,2,…,n;
/*將流量樣本輸入NIDS模型中進行
模糊測試*/
③T←xtr,F←xfa;/*正確識別的樣本留在集合T,錯誤識別的樣本放入集合F*/
④ 從F中抽取一批樣本xfa;
⑤ 生成器G根據(jù)xtr計算對抗樣本G(xtr+z);/*z為服從正太分布的隨機噪聲向量*/
⑥ 從T中抽取一批樣本xtr;
⑦ 判別器D輸出xfa和對抗樣本G(xtr+z)的預測標簽;
⑧T←G(xtr+z);/*生成器G生成的對抗樣本G(xtr+z)補充集合T*/
⑨ 根據(jù)判別器D的預測標簽沿著梯度?ωLD下降方向更新判別器參數(shù)ω;
⑩ 根據(jù)判別器D的預測標簽沿著梯度?θLG下降方向更新生成器參數(shù)θ;
首先使用人工篩選的少量干凈數(shù)據(jù)集預訓練模型,然后利用本文的更新框架自動化更新模型.在模型更新過程中,為避免因高誤報率導致頻繁人為干預,數(shù)據(jù)污染的檢測由傳統(tǒng)的單獨樣本毒性檢測[22]變?yōu)闃颖炯廴境潭确治?將全部待訓練數(shù)據(jù)分為若干子集,分批迭代更新模型.
為了讓模型平穩(wěn)更新,在每批訓練樣本子集輸入模型前,檢測新增訓練樣本與原模型的MSE值,以判定新訓練數(shù)據(jù)與現(xiàn)有模型的偏差.MSE的計算公式為
(4)
更新允許出現(xiàn)偏差,但如果偏差過高,即MSE值超過閾值,則表明該批樣本中錯誤標簽過多,需要修復模型.標簽錯誤的原因有2種,因誤差產(chǎn)生或因標簽翻轉(zhuǎn)攻擊產(chǎn)生.MSE值可有效識別以上2種數(shù)據(jù)污染.
由于模型偏斜攻擊的投毒樣本均為良性對抗樣本,其真實標簽和模型預測標簽均為良性,MSE值無法有效檢測.模型偏斜攻擊的目標是縮小模型惡意分類區(qū)域,通過輸入大量良性對抗樣本影響樣本平衡性,使分類邊界向惡意分類區(qū)域內(nèi)移動.而訓練后模型對原模型邊緣樣本的Fβ分數(shù)可以顯示訓練樣本對模型分類邊界的影響.Fβ的計算公式為
(5)
(6)
(7)
其中,TP為真陽性樣本數(shù)量,即被模型正確識別的良性樣本數(shù)量;FP為假陽性樣本數(shù)量,即被模型錯誤識別的惡意樣本數(shù)量;FN為假陰性樣本數(shù)量,即被模型錯誤識別的良性樣本數(shù)量.
Precision為精確率,表示被模型識別為良性的樣本中識別正確的樣本占比;
Recall為召回率,表示模型在識別良性樣本時能夠正確識別的樣本占比;
Fβ分數(shù)展現(xiàn)了樣本的平衡性,Recall的權(quán)重是Precision的β倍.
如圖4所示,在檢測投毒樣本時,對惡意邊緣樣本被識別為良性的容忍度低,即避免惡意分類區(qū)域縮小,對FP值限制嚴格;對良性邊緣樣本識別為惡意的容忍度高,即允許惡意區(qū)域擴大,對FN值限制寬松.所以精確率的權(quán)重高于召回率,故0<β<1.
更新允許出現(xiàn)不平衡,但如果平衡性過低即Fβ分數(shù)低于閾值,則表明該批樣本中存在投毒樣本,需要修復模型.值得注意的是,如果Fβ分數(shù)出現(xiàn)異常,則明確表明環(huán)境中存在針對該系統(tǒng)的投毒攻擊者.
由于MSE值與Fβ分數(shù)的閾值選擇受到子集樣本數(shù)量、特征與標簽數(shù)量以及網(wǎng)絡(luò)環(huán)境等因素影響,無法給定標準值.可通過記錄模型訓練干凈數(shù)據(jù)時二者的波動情況設(shè)定閾值.
當發(fā)現(xiàn)訓練樣本已被污染,即MSE高于閾值或Fβ分數(shù)低于閾值時,需立即修復模型.如果擁有大量訓練數(shù)據(jù),可以選擇丟棄該子集內(nèi)樣本.但由于訓練樣本子集可能僅部分被污染,直接丟棄該子集會造成較大損失.此時模型可正常訓練,并通過在訓練子集中加入邊緣樣本中的惡意樣本修復模型.惡意邊緣樣本可以抑制模型惡意分類區(qū)域向內(nèi)縮小,以抵御投毒攻擊.
傳統(tǒng)方法依賴梯度計算[17]或存儲歷史參數(shù)[18]等方式修復模型,其對于大規(guī)模智能NIDS不具備實用價值.依賴梯度計算需要大量人工操作,且依賴于特定模型,缺乏通用性;而存儲歷史參數(shù)需要存儲海量模型參數(shù),且無法確定模型應(yīng)恢復到哪一參數(shù)狀態(tài).我們的方法通過存儲少量的更新前模型邊緣樣本,無需存儲模型歷史信息,即可完成污染檢測與模型修復.智能NIDS中模型完整的更新流程如圖5所示:
本節(jié)展示了我們提出的模型更新方法在5種典型的智能NIDS[5-9]上的效果.使用2類常見數(shù)據(jù)污染算法[32,38]對模型進行攻擊測試.實驗驗證了新方法在污染數(shù)據(jù)過濾上的有效性,并與現(xiàn)有最先進的方法[19-20,23-24]對比了投毒樣本的檢測率與中毒模型的修復效果.
1)數(shù)據(jù)集預處理
本文采用改進版的CICIDS2017數(shù)據(jù)集[25],其修正了原始數(shù)據(jù)中的標簽錯誤和丟失問題,并改善了類別不平衡情況.
我們刪除了CICIDS2017數(shù)據(jù)集中特征缺失樣本并將相似類別合并,得到共2 823 541條流量樣本記錄.其中包含PortScan,Web-Attack,Bruteforce,Botnet,DoS,DDoS這6種惡意類別和Benign這1種良性類別.每個樣本xi(1≤i≤n)擁有78維特征xij(1≤j≤78)和1維流量分類標簽yi.通過z分數(shù)標準化消除不同維度的特征量綱.
(8)
(9)
(10)
Table 4 The Components of the Processed CICIDS2017 Dataset
2)目標智能網(wǎng)絡(luò)入侵檢測系統(tǒng)配置
本文選用5個典型的智能NIDS作為更新方案實驗對象,它們分別為文獻[5]提出的基于DNN的NIDS、文獻[6]提出的基于RNN的NIDS、文獻[7]提出的基于LSTM的NIDS、文獻[8]提出的基于MLP的NIDS,以及文獻[9]提出的基于GRU的NIDS.
(11)
本文使用準確率(Accuracy)評價模型性能,式(11)中TN為真陰性樣本數(shù)量,即被模型正確識別的惡意樣本數(shù)量,其他變量含義見2.3節(jié).隨機抽取訓練集各類別中0.01%數(shù)量的樣本作為預訓練數(shù)據(jù)集.5種不同NIDS模型在使用預訓練數(shù)據(jù)集訓練后,在測試集上的準確率如表5所示.各NIDS模型以此作為基礎(chǔ)進行3.2節(jié)與3.3節(jié)的有效性實驗與對比實驗.
Table 5 Accuracy After Intelligent NIDS Pre-training
1)MSE值與Fβ分數(shù)的閾值設(shè)定
新增訓練集10 000 000條,劃分為20個訓練樣本子集,即每個子集包含500 000條樣本.子集中樣本按類別標簽等比例隨機抽取.每輪更新計算模型500條邊緣樣本.
表6和表7展示了5個智能NIDS在正常完成20個干凈樣本子集訓練時的MSE值與Fβ分數(shù)的波動情況.5個模型的MSE最大值均低于0.3,F(xiàn)β分數(shù)最小值均高于0.9.因此選取MSE閾值為0.3,F(xiàn)β閾值為0.9,β值取0.5.
Table 6 MSE Fluctuations of Different Models During Regular Training
Table 7 Fβ Fluctuations of Different Models During Regular Training
2)污染過濾與模型修復效果
5個智能NIDS模型預訓練后初始準確率如表5所示.在此基礎(chǔ)上按照本文提出方案(如圖5所示)訓練20個樣本子集.對第11~14個樣本子集進行數(shù)據(jù)污染,污染樣本占總樣本數(shù)的10%.數(shù)據(jù)污染方式選取文獻[32]與文獻[38]的投毒攻擊.文獻[32]通過修改訓練樣本標簽造成的數(shù)據(jù)質(zhì)心偏移,用以測試標簽錯誤與標簽翻轉(zhuǎn)造成的數(shù)據(jù)污染;文獻[38]通過向訓練樣本中添加良性對抗樣本干擾模型訓練,用以測試模型偏斜造成的數(shù)據(jù)污染.
實驗對5種不同模型的NIDS依次測試其在5種情況下的參數(shù)變化:1)受到標簽翻轉(zhuǎn)攻擊(投毒-標簽翻轉(zhuǎn));2)受到模型偏斜攻擊(投毒-模型偏斜);3)受到標簽翻轉(zhuǎn)攻擊后修復模型(修復-標簽翻轉(zhuǎn));4)受到模型偏斜攻擊后修復模型(修復-模型偏斜);5)正常訓練的對照組(未投毒).其中,“-”前是區(qū)分投毒且不修復(記作“投毒”)或投毒且修復(記作“修復”);“-”后是區(qū)分投毒攻擊類別為“標簽翻轉(zhuǎn)”或“模型偏斜”.圖6~10展示了模型訓練過程中MSE值、Fβ分數(shù)及準確率變化,MSE值主要體現(xiàn)本文方法對標簽翻轉(zhuǎn)的識別效果,F(xiàn)β分數(shù)主要體現(xiàn)本文方法對模型偏斜的識別效果,準確率對比了模型在5種場景下的性能變化.
實驗驗證了本文方法對標簽翻轉(zhuǎn)攻擊與模型偏斜攻擊的識別與修復能力.實驗結(jié)果表明,本文方法在5中不同模型的NIDS中均能有效識別出投毒攻擊并進行模型修復.當受到投毒攻擊時,MLP和DNN模型會立刻發(fā)生變化,可以快速識別投毒樣本子集;而由于RNN和LSTM模型具有時序性,使中毒效果延遲,也導致了投毒識別的延遲與漏報;GRU雖然也具有時序性,但其時間步距較大,無法推遲投毒效果,所以可以及時識別出其中毒情況.觀察5種模型在修復時的準確率變化,可以看出雖然模型修復可以抵御投毒攻擊并使中毒模型準確率逐漸恢復正常,但也會抑制模型的訓練,所以邊緣樣本應(yīng)僅在模型中毒時加入訓練集.
1)基準方法與變量設(shè)置
在對比實驗中,中毒樣本檢測實驗的基準方法選取自文獻[19-20],中毒模型修復實驗的基準方法選取自文獻[23-24].其中文獻[19]利用中毒樣本對不同類別特征分布的影響檢測攻擊,文獻[20]利用神經(jīng)網(wǎng)絡(luò)對中毒樣本和正常樣本的敏感度差異檢測攻擊,文獻[23]利用主成分分析進行特征縮減提升模型魯棒性,文獻[24]利用雅可比矩陣進行對抗訓練提升模型魯棒性.為便于與現(xiàn)有工作在樣本檢測率和模型修復效果方面對比,將新增訓練集10 000 000條,劃分為100個訓練樣本子集,即每個子集包含100 000條樣本.子集中樣本按類別標簽等比例隨機抽取.對隨機抽取的20個樣本子集進行數(shù)據(jù)污染,污染樣本占總樣本數(shù)的10%.每輪更新計算模型100條邊緣樣本.模型初始狀態(tài)、MSE值與Fβ分數(shù)的閾值設(shè)定、β取值與3.2節(jié)相同.
2)中毒樣本檢測實驗
本文使用中毒樣本的檢測率(poison detection rate,PDR)與誤報率(false alarm rate,FAR)評價不同方法對數(shù)據(jù)投毒的識別能力.
(12)
(13)
其中,TruePoison表示被識別為中毒的樣本中識別正確的樣本;FalsePoison表示被識別為中毒的樣本中識別錯誤的樣本;TrueClean表示被識別為干凈的樣本中識別正確的樣本;FalseClean表示被識別為干凈的樣本中識別錯誤的樣本.PDR表示在識別中毒的樣本集時,正確識別的集合占比;FAR表示識別為中毒的樣本集中,錯誤識別的集合占比.
圖11和圖12分別對比了本文提出方法、文獻[19]、文獻[20]對標簽翻轉(zhuǎn)類和模型偏斜類中毒樣本的檢測率與誤報率.
實驗對比了不同方法對標簽翻轉(zhuǎn)攻擊和模型偏斜攻擊的中毒樣本集識別能力.實驗結(jié)果表明,對比現(xiàn)有先進方法,本文方法對標簽翻轉(zhuǎn)投毒的識別能力在5種智能NIDS上均有提升.由于標簽翻轉(zhuǎn)攻擊直接修改樣本標簽,較易被識別.本文方法又在投毒樣本的特征和目的2個方面進行檢測,有效提升了識別能力;本文方法對模型偏斜投毒的識別能力在DNN,MLP和GRU模型上有顯著提升,在RNN和LSTM模型上效果欠佳.由于模型偏斜攻擊借助對抗樣本引導模型中毒,較為隱蔽.本文方法通過邊緣樣本檢測模型分類邊界變化,而RNN和LSTM模型具有時序性記憶,使分類邊界變化較為滯后,影響了該方法的檢測效果.具體來說,與現(xiàn)有先進方法相比,本文方法對標簽翻轉(zhuǎn)投毒檢測率平均提升12.00%,誤報率平均降低7.75%,對模型偏斜投毒檢測率平均提升13.00%,誤報率平均降低10.50%.
3)中毒模型修復實驗
圖13和圖14分別對比了在本文提出方法、文獻[23-24]保護下的模型受到標簽翻轉(zhuǎn)攻擊和模型偏斜攻擊的準確率變化.
實驗對比了在不同方法保護下的模型受到標簽翻轉(zhuǎn)攻擊和模型偏斜攻擊后的準確率變化.實驗結(jié)果表明,對比現(xiàn)有先進方法,在模型受到模型偏斜攻擊后,使用本文方法修復的模型準確率在5種智能NIDS上均有提升.由于模型偏斜攻擊利用良性對抗樣本推動分類邊界,本文方法使用惡意邊緣樣本訓練模型,可以有效穩(wěn)定邊界不向惡意分類區(qū)域移動;在模型受到標簽翻轉(zhuǎn)攻擊后,使用本文方法修復的模型準確率在DNN,MLP,GRU模型上有所提升,在RNN和LSTM模型上效果欠佳.由于標簽翻轉(zhuǎn)攻擊修改了訓練樣本的標簽,使模型學習了錯誤知識,因此模型不易被修復.而RNN和LSTM模型又使中毒效應(yīng)延遲,導致模型防御較為滯后.但標簽翻轉(zhuǎn)攻擊屬于白盒攻擊,攻擊條件較為苛刻,且時序模型本身對投毒攻擊具有一定抵御能力,使準確率不會嚴重下降.具體來說,與現(xiàn)有先進方法相比,本文方法對對標簽翻轉(zhuǎn)的修復能力平均提升6.20%,模型偏斜中毒的修復能力平均提升6.56%.
本文提出了一種利用邊緣樣本保護智能網(wǎng)絡(luò)入侵檢測系統(tǒng)免受數(shù)據(jù)污染的防御技術(shù).相比傳統(tǒng)投毒識別方法,本文方法更加關(guān)注模型變化,而非數(shù)據(jù)異常,其適用于任意常見人工智能算法,可減少人工樣本篩選工作,有效降低了投毒檢測與模型修復的代價.該方法利用模糊測試使生成對抗網(wǎng)絡(luò)快速擬合模型分類邊界的邊緣樣本分布.通過監(jiān)控新增訓練樣本與原模型的MSE值,以及新模型對舊邊緣樣本的Fβ分數(shù),保證模型平穩(wěn)更新,避免模型中毒.當模型受到投毒影響時,通過學習惡意邊緣樣本快速復原.對比現(xiàn)有方法,本文方法對投毒樣本的檢測率平均提升12.50%,對中毒模型的修復效果平均提升6.38%.本文提出的方法也可以應(yīng)用于其他相似的智能威脅檢測問題中.但該方法對時序模型的防御效果較弱,今后將通過檢測樣本集之間的時序變化優(yōu)化本文方法.
作者貢獻聲明:劉廣睿提出了算法思路并撰寫論文;張偉哲提出指導意見并修改論文;李欣潔負責設(shè)計實驗方案并完成實驗.