孫 丹,饒?zhí)m香,施煒利,孟莎莎,胡少文,胡必偉,應(yīng) 嵩
(1.江西省科技基礎(chǔ)條件平臺(tái)中心,江西 南昌 330003; 2.中國(guó)廣電江西網(wǎng)絡(luò)有限公司,江西 南昌 330006)
近年來,國(guó)內(nèi)外內(nèi)部威脅事件頻繁不斷發(fā)生。2018年,Nuance語(yǔ)音識(shí)別軟件開發(fā)公司一名離職員工利用之前的賬號(hào)登錄業(yè)務(wù)服務(wù)獲取將近4.5萬公司客戶的個(gè)人醫(yī)療數(shù)據(jù)信息,如生日、醫(yī)保、個(gè)人健康、銀行等個(gè)人信息[1]。Verizon數(shù)據(jù)調(diào)查報(bào)告顯示,2019年國(guó)內(nèi)外發(fā)生了41686起安全事件,其中包含2013起個(gè)人敏感數(shù)據(jù)泄露事件。有高達(dá)34%的數(shù)據(jù)泄露是由內(nèi)部用戶不規(guī)范或者惡意操作引起的[2]。
人們通常將惡意內(nèi)部人員和內(nèi)部員工的異常操作行為統(tǒng)稱為內(nèi)部惡意操作行為。目前對(duì)這種惡意操作的檢查通常是結(jié)合用戶日常操作系統(tǒng)日志,對(duì)用戶行為進(jìn)行分析,以確定是否存在異常行為[3]。近年來,國(guó)內(nèi)外已經(jīng)運(yùn)用基于用戶角色、基于用戶命令行為、基于多域信息融合、基于跨域行為分析、基于多特征用戶畫像等技術(shù)用于內(nèi)部威脅檢測(cè)[4]。黃鐵等人[5]研究了基于隱馬爾可夫模型的內(nèi)部威脅檢測(cè)方法,利用Windows Native API方法,通過程序行為來檢測(cè)異常行為。文雨等人[6]研究了一種新的用戶跨域行為模式分析方法,并設(shè)計(jì)了一種面向內(nèi)部攻擊的檢測(cè)方法。黃娜等人[7]研究了基于LSTM回歸模型的內(nèi)部威脅檢測(cè)方法,通過對(duì)時(shí)間序列的回歸分析,對(duì)用戶行為序列進(jìn)行檢測(cè)。陳帥明等人[8]研究了基于shell命令的內(nèi)部威脅攻擊檢測(cè),通過分析用戶操作行為規(guī)律,使用不同機(jī)器學(xué)習(xí)檢測(cè)模型進(jìn)行內(nèi)部威脅檢測(cè)。目前這些研究基本都是通過分析用戶命令操作行為特征進(jìn)行分析,采用機(jī)器學(xué)習(xí)算法構(gòu)建檢測(cè)模型來發(fā)現(xiàn)內(nèi)部威脅攻擊。目前的研究更多關(guān)注地是機(jī)器學(xué)習(xí)算法上的優(yōu)化來提高檢測(cè)準(zhǔn)確性,未關(guān)注內(nèi)部威脅檢測(cè)特征碼的區(qū)分度來提高檢測(cè)的準(zhǔn)確性。
本文首先設(shè)計(jì)內(nèi)部威脅檢測(cè)方案,然后對(duì)3種特征提取方法進(jìn)行分析,提出一種基于混合N-Gram模型和XGBoost算法的內(nèi)部威脅檢測(cè)方法,最后通過特定度、靈敏度、準(zhǔn)確度、F1值4項(xiàng)評(píng)價(jià)指標(biāo)對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析,基于混合N-Gram特征組合提取方法不僅提高了內(nèi)部威脅檢測(cè)特征碼的區(qū)分度,而且提高了特征提取的計(jì)算性能和準(zhǔn)確性。同時(shí)能夠準(zhǔn)確有效地檢測(cè)出內(nèi)部威脅行為攻擊,提高了內(nèi)部威脅檢測(cè)準(zhǔn)確性。
內(nèi)部威脅檢測(cè)數(shù)據(jù)源通常為用戶在系統(tǒng)中操作的各類系統(tǒng)執(zhí)行命令數(shù)據(jù)。本文基于用戶操作行為數(shù)據(jù)進(jìn)行用戶行為分析,及時(shí)發(fā)現(xiàn)異常操作,防止因誤操作或者惡意操作造成的數(shù)據(jù)泄露危害[9]。內(nèi)部威脅檢測(cè)框架及流程如圖1所示,檢測(cè)框架如下:
圖1 內(nèi)部威脅檢測(cè)框架及流程
1)數(shù)據(jù)收集。在主機(jī)服務(wù)器上收集用戶登錄及操作命令數(shù)據(jù)。
2)特征提取。采用文本處理技術(shù)將收集的文本數(shù)據(jù)特征轉(zhuǎn)化成為數(shù)字?jǐn)?shù)據(jù)特征。
3)建立檢測(cè)模型。根據(jù)數(shù)據(jù)特征及數(shù)據(jù)樣本集建立檢測(cè)模型。
4)檢測(cè)。將待檢測(cè)樣本數(shù)據(jù)輸入到檢測(cè)模型中檢測(cè)。
5)模型優(yōu)化。根據(jù)檢測(cè)結(jié)果不斷優(yōu)化檢測(cè)模型。
基于XGBoost算法的內(nèi)部威脅檢測(cè)方法是一種有監(jiān)督的機(jī)器學(xué)習(xí)方法,通過對(duì)已知類別的用戶行為進(jìn)行訓(xùn)練,歸納XGBoost檢測(cè)模型,然后根據(jù)此檢測(cè)模型判斷待測(cè)樣本的類別[10]。特征提取使用詞袋和N-Gram模型,分類算法使用XGBoost算法,完整處理流程如圖2所示。
圖2 使用詞袋和N-Gram模型的XGBoost算法處理流程
基于XGBoost模型的內(nèi)部威脅檢測(cè)方法通過對(duì)已知類別的用戶行為命令塊提取行為特征,將樣本數(shù)據(jù)輸入到XGBoost分類器進(jìn)行訓(xùn)練,利用訓(xùn)練好的XGBoost分類器對(duì)待測(cè)樣本進(jìn)行檢測(cè),輸出檢測(cè)結(jié)果[11]。完成的檢測(cè)流程分以下7個(gè)步驟:
1)讀取SEA數(shù)據(jù)集數(shù)據(jù)。
2)提取詞袋。
3)N-Gram處理。
4)手工劃分訓(xùn)練集合測(cè)試集。
5)使用XGBoost算法在訓(xùn)練模型上訓(xùn)練。
6)使用XGBoost算法在測(cè)試集上預(yù)測(cè)。
7)驗(yàn)證XGBoost算法預(yù)測(cè)效果。
2.2.1 數(shù)據(jù)選擇
2001年,Schonlau等人[12]第一次將內(nèi)部威脅攻擊行為分成偽裝者(Masque-Rader)和叛徒(Traitor),其中偽裝者指外部攻擊者竊取了內(nèi)部合法用戶賬號(hào)密碼,冒充內(nèi)部用戶身份進(jìn)行內(nèi)部威脅攻擊;叛徒指本身是內(nèi)部合法用戶,但其為來自組織內(nèi)部的攻擊者;隨后該實(shí)驗(yàn)室建立了一個(gè)內(nèi)部威脅攻擊行為檢測(cè)公開數(shù)據(jù)集SEA,該公開數(shù)據(jù)集被廣泛用于內(nèi)部威脅攻擊行為檢測(cè)研究[13]。
SEA公開數(shù)據(jù)集涵蓋了70多個(gè)Linux系統(tǒng)用戶的操作行為日志,這些數(shù)據(jù)主要來自Linux系統(tǒng)記錄的用戶操作系統(tǒng)命令。SEA公開數(shù)據(jù)集采集了每個(gè)用戶的15000條系統(tǒng)操作命令,從用戶集中隨機(jī)選取50個(gè)用戶作為正常用戶,剩余用戶數(shù)據(jù)集作為測(cè)試數(shù)據(jù)用來模擬內(nèi)部攻擊者發(fā)起的內(nèi)部威脅攻擊[14]。SEA公開數(shù)據(jù)集中的用戶日志類似于圖3中的命令序列。圖3中命令序列顯示了一個(gè)用戶對(duì)Linux系統(tǒng)的一系列操作命令,如cpp(復(fù)制命令)、cat(查看命令)、env(查看系統(tǒng)已存在的環(huán)境變量)等。
圖3 SEA數(shù)據(jù)集中的命令序列
SEA數(shù)據(jù)集中惡意操作數(shù)據(jù)分布具有統(tǒng)計(jì)規(guī)律,任意給定1個(gè)數(shù)據(jù)集命令塊(數(shù)據(jù)集命令塊指將SEA數(shù)據(jù)集中用戶收集的所有日志命令按指定命令數(shù)量平均分成多個(gè)命令塊的集合,如1個(gè)用戶日志命令文件中包含15000條日志命令,將其按100個(gè)連續(xù)日志命令為1個(gè)命令塊單元進(jìn)行分塊,形成150個(gè)命令塊的數(shù)據(jù)集),其中含有惡意操作命令的概率為1%,而當(dāng)1個(gè)數(shù)據(jù)集命令塊中含有惡意操作命令,則其后1個(gè)數(shù)據(jù)集命令塊中同時(shí)含有惡意操作命令的概率達(dá)到80%[14]。看出SEA數(shù)據(jù)集將連續(xù)數(shù)據(jù)塊作為1個(gè)集合,用以模擬用戶連續(xù)操作命令之間關(guān)聯(lián)的攻擊行為。另外,SEA數(shù)據(jù)集中黑樣本偏少,雖然這更接近實(shí)際情況,但是卻給人們?cè)陔S機(jī)劃分訓(xùn)練集和測(cè)試集時(shí)帶來了挑戰(zhàn),如果使用常規(guī)的劃分方法,有相當(dāng)大的概率訓(xùn)練集中的都是白樣本,所以本文的樣本劃分需要特殊處理,保證訓(xùn)練集中有足夠的黑樣本[15]。
2.2.2 數(shù)據(jù)處理
SEA數(shù)據(jù)庫(kù)的數(shù)據(jù)文件把連續(xù)的100個(gè)操作命令作為1個(gè)操作序列,因此,15000個(gè)操作命令劃分成150個(gè)操作序列。如果用戶操作命令文件中不滿100個(gè)或者不是100的整數(shù)倍,用cat命令補(bǔ)全成100個(gè)或者100的整數(shù)倍的命令文件再進(jìn)行劃分。連續(xù)cat命令不具攻擊行為,對(duì)檢測(cè)結(jié)果產(chǎn)生的影響較小。數(shù)據(jù)文件處理過程如圖4所示。
圖4 SEA數(shù)據(jù)集數(shù)據(jù)文件處理過程
SEA數(shù)據(jù)集數(shù)據(jù)文件處理偽代碼:
x←np.loadtxt(命令文件路徑,字符串類型) #將命令文件字符串轉(zhuǎn)換成向量
x←x.reshape(150,100) #每100個(gè)連續(xù)命令為一組分成150個(gè)向量組
SEA數(shù)據(jù)集的標(biāo)記文件記錄了數(shù)據(jù)文件對(duì)應(yīng)的標(biāo)記,1表示為異常操作,0表示為正常操作,標(biāo)記的單位為操作序列,也就是說如果連續(xù)100個(gè)系統(tǒng)操作都為正常操作才會(huì)標(biāo)記為0;反之,如果連續(xù)100個(gè)系統(tǒng)操作中包含異常操作,該操作序列標(biāo)記為1。由于SEA數(shù)據(jù)集每個(gè)用戶的前50個(gè)操作序列都是正常操作,所以標(biāo)記文件僅從第51個(gè)操作序列開始標(biāo)記,一共100行,每行有50列分別代表50個(gè)用戶的操作序列的標(biāo)記,以第7個(gè)用戶為例,其對(duì)應(yīng)的操作序列的標(biāo)記在第7列,一共100個(gè)[16]。標(biāo)記文件處理過程如圖5所示。
圖5 SEA數(shù)據(jù)集標(biāo)記文件處理過程
SEA數(shù)據(jù)集標(biāo)記文件處理偽代碼:
y←np.loadtxt(標(biāo)記文件,文件類型) #把label.txt標(biāo)記文件轉(zhuǎn)換成向量
y←y.reshape(100,1) #把轉(zhuǎn)換的向量分成100個(gè)向量組
y_train←np.zeros([50,1],向量類型) #把前50個(gè)操作序列進(jìn)行標(biāo)記,轉(zhuǎn)換成50個(gè)向量組
y←np.concatenate(y_train,y) #把前面2組向量進(jìn)行拼接組成150個(gè)向量組
對(duì)數(shù)據(jù)進(jìn)行選擇和處理完后,特征提取是使用機(jī)器學(xué)習(xí)分類方法進(jìn)行學(xué)習(xí)訓(xùn)練前必須要進(jìn)行的步驟。對(duì)于由操作系統(tǒng)命令構(gòu)成的數(shù)據(jù)集,應(yīng)提取多個(gè)命令之間的關(guān)聯(lián)特征,不僅僅是提取單個(gè)命令的頻率統(tǒng)計(jì)特征[15]。本文提出一種通過考慮事件連續(xù)性,選用有意義的命令子序列來進(jìn)行特征提取的方法。首先結(jié)合詞袋模型對(duì)SEA數(shù)據(jù)集進(jìn)行命令出現(xiàn)的頻率特性進(jìn)行提取,再使用N-Gram方法對(duì)命令序列之間的相關(guān)性度量特征,可以很好評(píng)估命令序列區(qū)分用戶的能力[17]。
2.3.1 詞袋模型
本文選用的數(shù)據(jù)都是用戶操作系統(tǒng)命令的文本數(shù)據(jù),基于這類文本數(shù)據(jù)進(jìn)行特征提取,文本特征提取有2個(gè)非常重要的模型:詞集模型和詞袋模型。詞集模型是指單詞構(gòu)成的集合,詞集中的每個(gè)單詞只有一個(gè);詞袋模型是指在詞集的基礎(chǔ)上如果一個(gè)單詞在文檔中出現(xiàn)不止一次,統(tǒng)計(jì)其出現(xiàn)的次數(shù)(頻數(shù))[16]。
首先選取詞袋模型提取文本特征并統(tǒng)計(jì)文本特征在文本中出現(xiàn)的次數(shù),把每個(gè)系統(tǒng)操作命令當(dāng)作一個(gè)單詞處理即可。首先對(duì)處理后的SEA數(shù)據(jù)庫(kù)的數(shù)據(jù)文件進(jìn)行分詞,在分詞之后,通過統(tǒng)計(jì)每個(gè)詞在文本中出現(xiàn)的次數(shù),就可以得到該文本基于詞的特征;然后將各個(gè)文本樣本的這些詞與對(duì)應(yīng)的詞頻放在一起,形成特征向量化;最后使用TF-IDF技術(shù)對(duì)向量化特征進(jìn)行特征權(quán)重修正得到基于詞袋模型下的文本特征。
2.3.2 N-Gram模型
詞袋模型包含了用戶行為的頻率特性,它可以根據(jù)用戶之間命令序列特征的不同分布區(qū)分用戶,基于詞袋模型N-Gram方法考慮了用戶行為的轉(zhuǎn)換特性,可以很好地反應(yīng)系統(tǒng)操作命令塊之間的相關(guān)性[17]。
N-Gram是自然語(yǔ)言處理中一個(gè)非常重要的概念,通常在自然語(yǔ)言處理(NLP)中,人們基于一定的預(yù)料庫(kù),可以利用N-Gram方法來預(yù)計(jì)或者評(píng)估一個(gè)句子是否合理。N-Gram可以評(píng)估2個(gè)字符串之間的差異程度[18]。本文結(jié)合詞袋模型和N-Gram方法,對(duì)SEA數(shù)據(jù)集進(jìn)行特征提取,每個(gè)系統(tǒng)操作命令作為一個(gè)單詞處理,連續(xù)的N個(gè)系統(tǒng)操作命令作為一個(gè)N-Gram。假設(shè)具有如下操作序列:pwd、ls、cp和mv,其1-gram到3-gram特征提取示例如表1所示。
表1 特征提取示例表
由此可見,N-Gram可以比較好地體現(xiàn)連續(xù)N個(gè)操作命令的關(guān)系,這在一定程度上體現(xiàn)了系統(tǒng)管理員使用系統(tǒng)命令的操作習(xí)慣。
2.3.3 參數(shù)N的選擇
雖然通過N-gram特征提取方法對(duì)內(nèi)部威脅檢測(cè)方法進(jìn)行特征提取比較簡(jiǎn)單,但在對(duì)內(nèi)部威脅檢測(cè)方法進(jìn)行特征提取后得到的特征子序列并不具有很強(qiáng)的代表性。采用N-gram特征提取方法時(shí)N值對(duì)內(nèi)部威脅檢測(cè)具有很大的影響。如果N取值太小,忽略了操作命令之間的整體性,只能達(dá)到局部最優(yōu)效果。如果N取值太大,又會(huì)忽略內(nèi)部威脅檢測(cè)特征之間的關(guān)聯(lián)性[19]。因此,先設(shè)置N={1,2,3,4}中4個(gè)不同值來進(jìn)行內(nèi)部威脅檢測(cè)特征選?。蝗缓笤賹?種不同長(zhǎng)度的特征子序列進(jìn)行不同維度特征組合;最后對(duì)不同維數(shù)的特征組合進(jìn)行實(shí)驗(yàn)比對(duì)分析,選出最優(yōu)N值內(nèi)部威脅檢測(cè)特征集。圖6為多數(shù)據(jù)維度特征組合過程。
圖6 多數(shù)據(jù)維度特征組合過程
XGBoost分類算法是梯度提升決策樹算法(Gradient Boost Decision Treet, GBDT)的一種串行集成算法[20]。其基學(xué)習(xí)器通常選擇決策樹模型,通過不斷迭代生成新樹學(xué)習(xí)真實(shí)值與當(dāng)前所有樹預(yù)測(cè)值的殘差,將所有樹的結(jié)果累加作為最終結(jié)果,以此獲取盡可能高的分類準(zhǔn)確率[21]。
XGBoost算法將模型的表現(xiàn)與運(yùn)算速度的平衡引入目標(biāo)函數(shù),在求解目標(biāo)函數(shù)時(shí)對(duì)其做2階泰勒展開,以此加快求解速度,減少模型運(yùn)行時(shí)間;同時(shí)引入正則化控制模型復(fù)雜度,避免過擬合[22]。
假設(shè)有n個(gè)樣本和m個(gè)特征的樣本集D={(xi,yi|xi∈Rm,yi∈R)},其模型預(yù)測(cè)值為:
(1)
檢測(cè)模型的目標(biāo)函數(shù)為:
(2)
式中:θ={f1,f2,…,fk};l指損失函數(shù);Ω指正則化項(xiàng)。
目標(biāo)函數(shù)包含2個(gè)部分,即損失函數(shù)和正則化項(xiàng)。第1部分的自身?yè)p失函數(shù)使用泰勒式展開,使用1階導(dǎo)數(shù)和2階導(dǎo)數(shù)進(jìn)行優(yōu)化,以提高速度和準(zhǔn)確率[23]。在第t步迭代優(yōu)化目標(biāo)函數(shù)時(shí),在現(xiàn)有t-1棵樹基礎(chǔ)上添加1棵最優(yōu)化的,損失函數(shù)變?yōu)椋?/p>
(3)
式中:gi為導(dǎo)數(shù);hi為損失函數(shù)的2階導(dǎo)數(shù)。
第2部分是正則化函數(shù),通過正則化懲罰項(xiàng)來降低過擬合的風(fēng)險(xiǎn)[24]。正則化函數(shù)為:
(4)
式中:T為每棵樹葉子節(jié)點(diǎn)的個(gè)數(shù);w為葉子權(quán)重;Υ與λ為懲罰系數(shù)。
本文使用XGBoost算法進(jìn)行內(nèi)部威脅檢測(cè)過程如下:
1)給定初始值f0(xi)=0,表示所有樣本預(yù)測(cè)初始值為0。
2)樹的深度設(shè)置為Q(max_depth),樹的棵樹設(shè)置為K(num_boost_round),設(shè)置2個(gè)正則參數(shù)Υ、λ,損失函數(shù)選擇logloss函數(shù),設(shè)置學(xué)習(xí)率eta。
3)設(shè)置內(nèi)部威脅檢測(cè)樣本集D(n個(gè)樣本、m個(gè)特征、標(biāo)記值y={0,1},0表示內(nèi)部正常操作,1表示內(nèi)部異常操作)。
4)建立第一棵決策樹(k=1):
①首先從根節(jié)點(diǎn)開始,選取一個(gè)最佳的特征以及分裂點(diǎn)使得增益Gain最大,從而在根節(jié)點(diǎn)處把n個(gè)樣本分成左子節(jié)點(diǎn)和右子節(jié)點(diǎn)2個(gè)集合。
②然后循環(huán)①過程,對(duì)樹的第2層節(jié)點(diǎn)到第Q層節(jié)點(diǎn)遍歷所有特征m的所有取值作為分裂點(diǎn),選取增益Gain最大的點(diǎn)。
5)循環(huán)4)過程,擬合第K棵決策樹,第K棵決策樹是在第K-1棵決策樹預(yù)測(cè)結(jié)果的基礎(chǔ)上進(jìn)行擬合建立。
6)將上述建立的K棵決策樹合并起來作為XGBoost內(nèi)部威脅檢測(cè)新模型。
實(shí)驗(yàn)選取了SEA數(shù)據(jù)集中50個(gè)用戶的750000條系統(tǒng)操作命令作為實(shí)驗(yàn)數(shù)據(jù)來源。首先將樣本集分成4份,任選3份作為訓(xùn)練集,另外1份作為測(cè)試集。采用四折交叉驗(yàn)證法重復(fù)實(shí)驗(yàn)驗(yàn)證4次,最后對(duì)4次實(shí)驗(yàn)結(jié)果采用計(jì)算平均值來評(píng)估檢測(cè)模型的檢測(cè)能力[25],具體如表2所示。
表2 訓(xùn)練數(shù)據(jù)、測(cè)試數(shù)據(jù)樣本數(shù)
在對(duì)內(nèi)部威脅行為進(jìn)行檢測(cè)時(shí),可能出現(xiàn)以下4種情況。在實(shí)驗(yàn)中,T表示內(nèi)部正常行為,M表示內(nèi)部威脅行為。TP表示預(yù)測(cè)當(dāng)前是內(nèi)部正常行為,實(shí)際上也是內(nèi)部正常行為;FN表示預(yù)測(cè)當(dāng)前是內(nèi)部威脅行為,實(shí)際上是內(nèi)部正常行為;FP表示預(yù)測(cè)當(dāng)前是內(nèi)部正常行為,實(shí)際上是內(nèi)部威脅行為;TN表示預(yù)測(cè)當(dāng)前是內(nèi)部威脅行為,實(shí)際上是內(nèi)部威脅行為。表3為內(nèi)部威脅檢測(cè)類型檢測(cè)情況表。
表3 內(nèi)部威脅檢測(cè)類型檢測(cè)情況表
本文實(shí)驗(yàn)采用特定度、靈敏度、準(zhǔn)確度、F1值4種評(píng)價(jià)標(biāo)準(zhǔn)對(duì)XGBoost檢測(cè)模型進(jìn)行評(píng)估[26]。其定義分別如下:
(5)
(6)
(7)
(8)
(9)
(10)
特定度是指正確預(yù)測(cè)為內(nèi)部威脅行為占實(shí)際樣例中所有內(nèi)部威脅行為的比例,衡量的是檢測(cè)模型對(duì)內(nèi)部威脅行為的檢測(cè)能力[27];靈敏度是指正確預(yù)測(cè)為內(nèi)部正常行為數(shù)量占實(shí)際樣例中所有內(nèi)部正常行為的比例,衡量的是檢測(cè)模型對(duì)內(nèi)部正常行為的檢測(cè)能力;準(zhǔn)確度是指正確預(yù)測(cè)的樣本數(shù)占所有預(yù)測(cè)樣本數(shù)的比例,衡量的是檢測(cè)模型對(duì)內(nèi)部用戶的檢測(cè)能力;F1值是對(duì)準(zhǔn)確率和召回率的整體評(píng)價(jià),其值越大,代表檢測(cè)模型性能越好。準(zhǔn)確度、敏感度、特定度越大,代表檢測(cè)模型的檢測(cè)能力越好[28]。
在詞袋最大特征數(shù)為100的情況下,采用詞袋模型、詞袋模型+N-Gram方法、詞匯表模型3種方法進(jìn)行特征提取,然后使用XGBoost分類算法對(duì)4000命令序列塊訓(xùn)練集進(jìn)行訓(xùn)練生成分類器,對(duì)3500命令訓(xùn)練塊測(cè)試集進(jìn)行檢測(cè),整個(gè)檢測(cè)系統(tǒng)的TP、FP、TN、FN、特定度、靈敏度、準(zhǔn)確度、召回率、準(zhǔn)確率、F1值實(shí)驗(yàn)結(jié)果如表4所示。
表4 不同特征提取方法的XGBoost算法實(shí)驗(yàn)結(jié)果
由表4可知,在不同的特征提取方法的評(píng)價(jià)標(biāo)準(zhǔn)上,4個(gè)評(píng)價(jià)標(biāo)準(zhǔn)特定度、靈敏度、準(zhǔn)確度、F1表現(xiàn)的性能也有所不同。綜合4個(gè)評(píng)價(jià)標(biāo)準(zhǔn)進(jìn)行比較,詞袋+N-Gram模型的XGBoost算法的內(nèi)部威脅檢測(cè)方法要明顯優(yōu)于其他2種檢測(cè)方法,特定度達(dá)到了0.15,靈敏度達(dá)到了24.55,準(zhǔn)確度達(dá)到了0.90,F(xiàn)1值達(dá)到了0.95。結(jié)果表明,使用詞袋+N-Gram特征提取模型結(jié)合XGBoost算法能夠準(zhǔn)確檢測(cè)出內(nèi)部威脅攻擊行為。
表4實(shí)驗(yàn)結(jié)果是N取值為3得到的結(jié)果,本文再對(duì)N參照參數(shù)N的選擇方法進(jìn)行實(shí)驗(yàn),通過將N取1、2、3進(jìn)行特征組合得到的特征子集和N取2、3、4進(jìn)行特征組合得到的特征子集分別進(jìn)行特征選擇,之后再通過XGBoost算法進(jìn)行內(nèi)部威脅檢測(cè),實(shí)驗(yàn)結(jié)果如表5所示。
表5 混合N-Gram模型的XGBoost算法實(shí)驗(yàn)結(jié)果
從表5實(shí)驗(yàn)結(jié)果可以看出,采用N={2,3,4}的混合N-Gram模型進(jìn)行特征提取方法得到的特征集輸入到XGBoost分類器中得到的檢測(cè)效果要比其他組合的特征子集檢測(cè)效果更優(yōu),該組合的實(shí)驗(yàn)結(jié)果特定度為0.23,靈敏度為27.65,準(zhǔn)確度為0.94,F(xiàn)1值為0.97。通過對(duì)10組不同數(shù)據(jù)組合的特征集進(jìn)行各項(xiàng)檢測(cè)評(píng)價(jià)指標(biāo)對(duì)比分析,基于混合N-gram特征提取方法比傳統(tǒng)的詞袋特征提取方法在檢測(cè)內(nèi)部威脅攻擊行為中更能體現(xiàn)優(yōu)勢(shì)?;诨旌螻-Gram特征組合提取方法不僅提高了內(nèi)部威脅檢測(cè)特征碼的區(qū)分度,還提高了特征提取的計(jì)算性能和準(zhǔn)確性。
內(nèi)部威脅攻擊已成為普遍的網(wǎng)絡(luò)安全問題,與傳統(tǒng)的外部威脅攻擊相比,具有很強(qiáng)的隱蔽性,更難被檢測(cè)。目前對(duì)內(nèi)部威脅攻擊的研究還不夠深入,對(duì)其還沒有很好的檢測(cè)方法。因此,本文提出了一種基于混合N-Gram模型和XGBoost算法的內(nèi)部威脅檢測(cè)方法。首先選取3種特征提取方法:詞袋、N-Gram模型、詞匯表對(duì)公開的SEA數(shù)據(jù)集進(jìn)行特征提取,選取出最優(yōu)的特征提取方法:N-Gram模型,同時(shí)通過實(shí)驗(yàn)組合選取最優(yōu)N參數(shù)值。從實(shí)驗(yàn)結(jié)果表明,基于混合N-Gram模型比傳統(tǒng)的詞袋、詞匯表特征方法在XGBoost算法檢測(cè)中檢測(cè)效果更加準(zhǔn)確。在4種指標(biāo)特性:特定度、靈敏度、準(zhǔn)確度、準(zhǔn)確率、F1值上,該方法相比其他的機(jī)器學(xué)習(xí)算法更能準(zhǔn)確地檢測(cè)出內(nèi)部威脅攻擊行為,同時(shí)對(duì)于未知的內(nèi)部威脅攻擊行為也能夠很好的識(shí)別出來。
從實(shí)驗(yàn)結(jié)果與分析中表4和表5可以看出,F(xiàn)P值較高,造成特定度較低,該方法會(huì)產(chǎn)生較高的誤警報(bào)(將正常的操作誤識(shí)別為異常操作),會(huì)影響用戶體驗(yàn)。基于XGBoost算法使用的是監(jiān)督學(xué)習(xí)的方法,基于黑白訓(xùn)練集進(jìn)行數(shù)據(jù)挖掘,但是絕大多數(shù)情況下,相對(duì)于白樣本,黑樣本都是十分稀少的。后期筆者將對(duì)多種無監(jiān)督學(xué)習(xí)方法進(jìn)行對(duì)比學(xué)習(xí),使用SEA公開數(shù)據(jù)集的白樣本進(jìn)行訓(xùn)練,建立所謂的正常行為基線,然后通過異常行為檢測(cè),發(fā)現(xiàn)疑似的異常操作,從而降低誤警報(bào)。