本發(fā)明屬于網(wǎng)絡(luò)安全領(lǐng)域,尤其涉及一種APT攻擊檢測方法。
背景技術(shù):
高級持續(xù)性威脅是一種有組織、有特定目標(biāo)、持續(xù)時間極長的新型攻擊。隨著震網(wǎng)(Stuxnet)、Duqu、火焰(Flame)以及2015年針對烏克蘭電廠的Killdisk攻擊的曝光,可以看出,APT攻擊會對各類工控網(wǎng)絡(luò)和關(guān)鍵信息基礎(chǔ)設(shè)施的安全造成巨大的威脅。APT攻擊的主要目標(biāo)是竊取軍事機構(gòu)、政府機關(guān)、國家基礎(chǔ)設(shè)施以及高新技術(shù)企業(yè)等機密信息或造成指定的破壞。其特點主要有以下兩點:(1)攻擊手段高級。攻擊者多利用0day漏洞等未知攻擊進行入侵,如對伊朗核電站發(fā)起的攻擊,攻擊者在6年時間里分別利用了Flame病毒、Stuxnet病毒以及Duqu病毒等多種未知漏洞進行攻擊。然而,當(dāng)前對未知網(wǎng)絡(luò)攻擊的檢測具有很大的挑戰(zhàn)性。(2)攻擊持續(xù)時間長。攻擊者為了完成攻擊目標(biāo)可能潛伏數(shù)月甚至數(shù)年,如從2006年開始的“暗鼠行動”滲透并攻擊了全球多達72家公司和組織的網(wǎng)絡(luò),直到2011年才被McAfee和Symantec公司發(fā)現(xiàn)并報告。再如從2007年開始針對5家西方跨國能源公司的油田操作機密信息竊取的“夜龍攻擊”,4年后才由McAfee報告并發(fā)現(xiàn)。正是由于該特性,使得本發(fā)明需要從大量的網(wǎng)絡(luò)流量/主機行為數(shù)據(jù)中對APT攻擊進行檢測。APT攻擊雖然采取的手段不同方式各異,但最終均會在網(wǎng)絡(luò)底層原始數(shù)據(jù)流上反應(yīng)。由于機器學(xué)習(xí)(Machine Learning,ML)在處理大數(shù)據(jù)及攻擊檢測方面具有明顯的優(yōu)勢,共同使得它在APT攻擊檢測領(lǐng)域極具研究前景。當(dāng)前基于機器學(xué)習(xí)的APT攻擊檢測方案均采用監(jiān)督學(xué)習(xí)的方法,其基本思想是通過提取當(dāng)前網(wǎng)絡(luò)流量數(shù)據(jù)或主機行為數(shù)據(jù)的特征,將已知正?;虍惓5臍v史流量數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)集,在此基礎(chǔ)上利用分類算法對網(wǎng)絡(luò)流量數(shù)據(jù)或主機行為進行標(biāo)記分類,以區(qū)分正常和異常行為。然而,這些方法存在以下問題:(1)針對特定網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù)集有限。在實際APT攻擊場景下,訓(xùn)練數(shù)據(jù)往往需要通過專家知識進行人工標(biāo)記而產(chǎn)生,因此準(zhǔn)確的已標(biāo)記數(shù)據(jù)集一般規(guī)模非常有限,大部分是未標(biāo)記歷史網(wǎng)絡(luò)流量數(shù)據(jù),不知道其為正?;虍惓!6O(jiān)督學(xué)習(xí)本身需要大量的已標(biāo)記數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)集,訓(xùn)練數(shù)據(jù)集的規(guī)模及準(zhǔn)確程度直接影響到模型的檢測性能。因此,如何利用少量已標(biāo)記數(shù)據(jù)生成準(zhǔn)確的訓(xùn)練數(shù)據(jù)集以保證模型的檢測精度是當(dāng)前APT攻擊檢測面臨的一大挑戰(zhàn)。(2)網(wǎng)絡(luò)流量特征難以選取。當(dāng)前基于監(jiān)督學(xué)習(xí)的APT攻擊檢測更多是基于傳統(tǒng)入侵檢測開展研究,對于已知攻擊的檢測具有一定的優(yōu)勢。然而APT攻擊多利用0day漏洞等未知攻擊,針對不同目標(biāo)網(wǎng)絡(luò)所采取的攻擊可能各不相同,即使對于相同的目標(biāo)網(wǎng)絡(luò)攻擊者利用的0day漏洞也可能是動態(tài)變化的,而不同的未知攻擊所表現(xiàn)出來的底層網(wǎng)絡(luò)流量特征也不盡相同。因此,如何針對特定目標(biāo)網(wǎng)絡(luò)動態(tài)選取合適的網(wǎng)絡(luò)流量特征以檢測所遭受的未知攻擊是面臨的另一挑戰(zhàn)。網(wǎng)絡(luò)級持續(xù)性威脅是一種新型的智能網(wǎng)絡(luò)攻擊,其主要特點為0day漏洞等未知攻擊的利用以及持續(xù)時間長。
綜上所述,當(dāng)前基于機器學(xué)習(xí)的APT攻擊檢測中訓(xùn)練檢測模型的人工標(biāo)記數(shù)據(jù)過少、未知攻擊的流量特征難以選取的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種APT攻擊檢測方法,旨在解決當(dāng)前基于機器學(xué)習(xí)的APT攻擊檢測中訓(xùn)練檢測模型的人工標(biāo)記數(shù)據(jù)過少、未知攻擊的流量特征難以選取的問題。
本發(fā)明是這樣實現(xiàn)的,提出一種APT攻擊檢測方法,所述APT環(huán)境下基于信息增益率的半監(jiān)督學(xué)習(xí)攻擊檢測方法利用半監(jiān)督學(xué)習(xí)算法來標(biāo)記特征相似的數(shù)據(jù),以少量已標(biāo)記數(shù)據(jù)生成大規(guī)模的訓(xùn)練數(shù)據(jù)集,實現(xiàn)對歷史數(shù)據(jù)的自動標(biāo)記并獲得更大規(guī)模且準(zhǔn)確標(biāo)記的訓(xùn)練數(shù)據(jù)集;并引入信息增益率來確定不同特征對檢測的影響程度,采用信息增益率對檢測模型中劃分的每個子數(shù)據(jù)集進行特征提取,針對不同目標(biāo)網(wǎng)絡(luò)選取最有助于劃分?jǐn)?shù)據(jù)樣本的特征,以實現(xiàn)對未知攻擊的準(zhǔn)確識別;最后采用基于信息增益的加權(quán)多數(shù)算法優(yōu)化模型APT攻擊檢測性能。
進一步,所述半監(jiān)督學(xué)習(xí)算法具體步驟如下:
(1)在已標(biāo)記的正常和異常數(shù)據(jù)中分別隨機選取一條數(shù)據(jù)作為簇的中心,選取N1,N5作為已標(biāo)記數(shù)據(jù)簇和已標(biāo)記數(shù)據(jù)簇的簇心c1,c2;
(2)利用公式計算每條數(shù)據(jù)Ni分別與簇心c1,c2的距離d(Ni,ck),并將d(Ni,ck)值小的數(shù)據(jù)劃分到一個簇內(nèi);
(3)利用公式分別計算兩個簇中所有點的質(zhì)心并將其作為新的簇心c1′,c′2;
(4)重復(fù)步驟(2)、(3)直至總的簇內(nèi)離散度總和J達到最小時停止,其中離散度總和為每條數(shù)據(jù)Ni到其對應(yīng)簇心ck的距離d(Ni,ck)的總和;
(5)計算每類已標(biāo)記數(shù)據(jù)在每個簇中出現(xiàn)的概率Pl,k,并以Pl,k最大時的l標(biāo)記簇k的類別,最終得到訓(xùn)練數(shù)據(jù)集D;
其中,Ni,m表示第i條數(shù)據(jù)的第m個特征值,ck,m表示第k個簇心的第m個特征值,m為網(wǎng)絡(luò)流量特征的個數(shù);I為數(shù)據(jù)集中樣本總個數(shù),I′為簇k中數(shù)據(jù)樣本總個數(shù)。
進一步,所述基于信息增益率的隨機森林檢測方法,利用Bootstrap重采樣算法,每次有放回地從集合D中抽取一個數(shù)據(jù)樣本,一共抽取I次,除去重復(fù)的數(shù)據(jù),得到一個子訓(xùn)練集S1,重復(fù)此步驟q次,得到q個子訓(xùn)練數(shù)據(jù)集{S1,S2,...,Sq}用于生成q個不同的決策樹以構(gòu)建隨機森林。
進一步,生成每棵決策樹Tq的具體步驟如下:
步驟一,選取信息增益率最大的流量特征作為決策樹的根節(jié)點;
步驟二,找到選取的特征所對應(yīng)數(shù)據(jù)集Sq中使該特征最快分裂到葉子節(jié)點的閾值,對該節(jié)點進行分裂;
步驟三,在每個非葉子節(jié)點選擇特征前,以剩余特征作為當(dāng)前節(jié)點的分裂特征集,選取信息增益率最大的流量特征作為根節(jié)點分裂的非葉子節(jié)點;
步驟四,重復(fù)步驟二和步驟三直至每個特征都對應(yīng)有葉子節(jié)點為止,構(gòu)建出Sq對應(yīng)的決策樹Tq。
進一步,具體計算公式如下:
其中,Sq為通過Bootstrap重采樣隨機選取的訓(xùn)練數(shù)據(jù)集D的子集;GainRatio(Sq,m)、Gain(Sq,m)、Split(Sq,m)分別表示子數(shù)據(jù)集Sq的信息增益率、信息增益和分裂信息,V(m)是特征m的值域;Sv是集合Sq中在特征m上值等于v的子集;A表示特征m的屬性總數(shù),特征Protocol_type,其屬性有TCP、UDP、ICMP,所以其A=3;H(x)為數(shù)據(jù)集x的熵;pl為第l類樣本數(shù)占總數(shù)據(jù)集的比例。
本發(fā)明提供的一種APT攻擊檢測方法,利用半監(jiān)督學(xué)習(xí)算法來標(biāo)記特征相似的數(shù)據(jù),并引入信息增益率來確定不同特征對檢測的影響程度。實驗結(jié)果表明,提出的模型對未知攻擊檢測的準(zhǔn)確率、檢測率較傳統(tǒng)隨機森林模型相比分別提高了3.18%、4.5%,誤報率和漏報率分別降低了53.54%和40.76%。本發(fā)明利用改進的k-means算法來標(biāo)記特征相似的數(shù)據(jù),在少量人工標(biāo)記數(shù)據(jù)的基礎(chǔ)上實現(xiàn)了大量訓(xùn)練數(shù)據(jù)集的準(zhǔn)確標(biāo)記,保證了模型的檢測精度;通過在模型中引入信息增益率來確定不同特征對檢測的影響程度,減少數(shù)據(jù)中冗余及噪聲特征的影響,從而選取重要的流量特征,提高檢測模型的泛化能力,以應(yīng)對未知攻擊的檢測。
附圖說明
圖1是本發(fā)明實施例提供的一種APT攻擊檢測方法流程圖。
圖2是本發(fā)明實施例提供的網(wǎng)絡(luò)流量特征示意圖。
圖3是本發(fā)明實施例提供的基于半監(jiān)督學(xué)習(xí)的歷史網(wǎng)絡(luò)流量數(shù)據(jù)標(biāo)記過程示意圖。
圖4是本發(fā)明實施例提供的基于信息增益率的流量特征提取示意圖。
圖5是本發(fā)明實施例提供的基于特征提取的決策樹生成過程示意圖。
圖6是本發(fā)明實施例提供的基于信息增益的加權(quán)多數(shù)算法(WMA)攻擊檢測示意圖。
圖7是本發(fā)明實施例提供的本發(fā)明與傳統(tǒng)隨機森林(Random Forest,RF)、K-近鄰(K-Nearest Neighbor,KNN)、支持向量機(Support Vector Machine,SVM)算法的檢測性能對比示意圖。
圖8是本發(fā)明實施例提供的不同d值下的模型檢測率與訓(xùn)練數(shù)據(jù)集D準(zhǔn)確率示意圖。
圖9是本發(fā)明實施例提供的決策樹個數(shù)q對檢測準(zhǔn)確率和模型檢測時間的影響示意圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合實施例,對本發(fā)明進行進一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
下面結(jié)合附圖對本發(fā)明的應(yīng)用原理作詳細(xì)的描述。
如圖1所示,本發(fā)明實施例提供的一種APT攻擊檢測方法包括以下步驟:
S101:基于半監(jiān)督學(xué)習(xí)的方法利用少量已標(biāo)記數(shù)據(jù)生成大規(guī)模的訓(xùn)練數(shù)據(jù)集;
S102:采用信息增益率對檢測模型中劃分的每個子數(shù)據(jù)集進行特征提取,以實現(xiàn)對未知攻擊的準(zhǔn)確識別。
下面結(jié)合具體附圖對本發(fā)明的應(yīng)用原理作進一步的描述。
為了應(yīng)對APT攻擊檢測中訓(xùn)練數(shù)據(jù)集有限和網(wǎng)絡(luò)流量特征難以選取兩個挑戰(zhàn),首先基于半監(jiān)督學(xué)習(xí)的方法利用少量已標(biāo)記數(shù)據(jù)生成大規(guī)模的訓(xùn)練數(shù)據(jù)集,之后采用信息增益率對檢測模型中劃分的每個子數(shù)據(jù)集進行特征提取,以實現(xiàn)對未知攻擊的準(zhǔn)確識別。
APT攻擊方式雖然各異,但其最終均可反應(yīng)到底層網(wǎng)絡(luò)流量數(shù)據(jù)中,因此本發(fā)明采用目前最常用的網(wǎng)絡(luò)流量特征,其中包括Duration、Protocol、Count、Srv_count等,具體特征如表1所示。本發(fā)明將數(shù)據(jù)集中字符型特征轉(zhuǎn)化成數(shù)值型以便測試。這里本發(fā)明以數(shù)據(jù)集中一條數(shù)據(jù)N1=(2,tcp,smtp,SF,1684,363,0,0,0,1,1,0.00,0.00,0.00,0.00,1.00,0.00,0.00,104,66,0.63,0.03,0.01,0.00,0.00,0.00,0.00,0.00)為例進行說明。對于字符型的Protocol_type特征,它包括TCP、UDP、ICMP三個屬性值,本發(fā)明以0表示屬性TCP,1表示屬性UDP,2表示屬性ICMP。同時,對數(shù)據(jù)集進行歸一化處理,以減小特征之間量綱的影響,即保證每個特征的重要程度不受數(shù)值的影響。本發(fā)明利用min-max標(biāo)準(zhǔn)化法,將數(shù)據(jù)的大小范圍縮小到[0,1]之間,具體計算公式如式(1):
其中,xNormalized是某一特征歸一化后的值,xIntial為特征初始的屬性值,xmin是該特征的最小值,xmax是該特征的最大值。則N1經(jīng)過以上處理轉(zhuǎn)化為(3.429×10-5,0,0.59,0,1.286×10-4,2.77×10-6,0,0,0,1,1,0.00,0.00,0.00,0.00,1.00,0.00,0.00,0.21,0.132,0.63,0.03,0.01,0.00,0.00,0.00,0.00,0.00)。
1.1基于半監(jiān)督學(xué)習(xí)的訓(xùn)練集生成
由于在APT攻擊檢測中目標(biāo)網(wǎng)絡(luò)數(shù)據(jù)量巨大,依賴專家知識進行人工標(biāo)記只能得到少量準(zhǔn)確標(biāo)記的數(shù)據(jù)作為訓(xùn)練樣本,這使得訓(xùn)練出的模型無法準(zhǔn)確檢測異常[19]。半監(jiān)督學(xué)習(xí)則是針對這類問題提出的,即利用少量具有先驗知識的數(shù)據(jù)來輔助無監(jiān)督學(xué)習(xí)。為了實現(xiàn)對歷史數(shù)據(jù)的自動標(biāo)記并獲得更大規(guī)模且準(zhǔn)確標(biāo)記的訓(xùn)練數(shù)據(jù)集,本文提出改進的k-means半監(jiān)督學(xué)習(xí)算法,本發(fā)明以圖2為例進行說明。
(1)在已標(biāo)記的正常和異常數(shù)據(jù)中分別隨機選取一條數(shù)據(jù)作為簇的中心,圖2中本發(fā)明選取N1,N5作為已標(biāo)記數(shù)據(jù)(正常)簇和已標(biāo)記數(shù)據(jù)(異常)簇的簇心c1,c2;
(2)利用公式(2)計算每條數(shù)據(jù)Ni分別與簇心c1,c2的距離(相似度)d(Ni,ck),并將d(Ni,ck)值小的數(shù)據(jù)劃分到一個簇內(nèi);
(3)利用公式(3)分別計算兩個簇中所有點的質(zhì)心并將其作為新的簇心c1′,c′2;
(4)重復(fù)步驟2、3直至總的簇內(nèi)離散度總和J達到最小時停止,其中離散度總和為每條數(shù)據(jù)Ni到其對應(yīng)簇心ck的距離d(Ni,ck)的總和;
(5)計算每類已標(biāo)記數(shù)據(jù)在每個簇中出現(xiàn)的概率Pl,k,并以Pl,k最大時的l標(biāo)記簇k的類別,最終得到訓(xùn)練數(shù)據(jù)集D。
具體公式如下:
l=argmaxPl,k (6)
其中,Ni,m表示第i條數(shù)據(jù)的第m個特征值,如N1,1=3.429×10-5,ck,m表示第k個簇心的第m個特征值,m為網(wǎng)絡(luò)流量特征的個數(shù),本發(fā)明中m=28。I為數(shù)據(jù)集中樣本總個數(shù),I′為簇k中數(shù)據(jù)樣本總個數(shù),例如圖2中I=20,訓(xùn)練數(shù)據(jù)集D的簇1中I′=15。d(Ni,ck)表示數(shù)據(jù)Ni到簇中心的歐式距離,用來描述其相似度的大小。由于本發(fā)明將數(shù)據(jù)集劃分成兩個簇,因此k=1或2。Pl,k表示第l類已標(biāo)記類在第k個簇中出現(xiàn)的概率(l=0或1,0代表正常類,1代表異常類),nl,k表示第l類已標(biāo)記樣本在第k個簇中的數(shù)量,nl表示第l類已標(biāo)記樣本的總數(shù)量,因此當(dāng)Pl,k最大時用l標(biāo)記簇k的類別,arg max f(x)表示取滿足函數(shù)f(x)最大時自變量x的值。例如在圖2中,正常已標(biāo)記類在簇1中出現(xiàn)的概率P0,1=1,異常已標(biāo)記類在簇1中出現(xiàn)的概率P1,1=0.33,P0,1>P1,1,因此將簇1標(biāo)記為0,即簇1為正常類。同理,在簇2中P1,2=0.67,P0,2=0,因此簇2標(biāo)記為1,即簇2為異常類。
1.2基于信息增益率的流量特征提取
在基于機器學(xué)習(xí)的入侵檢測系統(tǒng)(IDS)中,隨機森林算法由于具有優(yōu)良的泛化性能,相對于其他分類算法對攻擊的檢測更有優(yōu)勢,使得其成為當(dāng)前攻擊檢測普遍選取的基準(zhǔn)算法。然而,對于APT攻擊,不同的目標(biāo)網(wǎng)絡(luò)所遭受的攻擊可能不同,而不同的攻擊所體現(xiàn)的特征也是不同的。因此本發(fā)明需要針對不同目標(biāo)網(wǎng)絡(luò)選取最有助于劃分?jǐn)?shù)據(jù)樣本的特征。
一個特征能夠為分類模型帶來的信息越多,該特征越重要,模型中它的有無將導(dǎo)致信息量發(fā)生較大的變化,而前后信息量的差值就是這個特征給模型帶來的信息增益。為了在構(gòu)造決策樹的過程中選取更具有代表的特征,本發(fā)明在本發(fā)明中引入信息增益的概念并用信息增益率(Gain Ratio)來衡量給定的特征區(qū)分訓(xùn)練樣例的能力,具體過程如圖4所示。
本發(fā)明設(shè)上節(jié)中生成的訓(xùn)練數(shù)據(jù)集D中含有I個不同的數(shù)據(jù)樣本{N1,N2,...,NI}。首先利用Bootstrap重采樣算法,每次有放回地從集合D中抽取一個數(shù)據(jù)樣本,一共抽取I次,除去重復(fù)的數(shù)據(jù),得到一個子訓(xùn)練集S1,重復(fù)此步驟q次,得到q個子訓(xùn)練數(shù)據(jù)集{S1,S2,...,Sq}用于生成q個不同的決策樹以構(gòu)建隨機森林。其中,生成每棵決策樹Tq的具體步驟如下:
1.選取信息增益率最大的流量特征作為決策樹的根節(jié)點;
2.找到選取的特征所對應(yīng)數(shù)據(jù)集Sq中使該特征最快分裂到葉子節(jié)點的閾值,對該節(jié)點進行分裂;
3.在每個非葉子節(jié)點(包括根節(jié)點)選擇特征前,以剩余特征作為當(dāng)前節(jié)點的分裂特征集,選取信息增益率最大的流量特征作為根節(jié)點分裂的非葉子節(jié)點;
4.重復(fù)步驟2、3直至每個特征都對應(yīng)有葉子節(jié)點為止,構(gòu)建出Sq對應(yīng)的決策樹Tq。
具體計算公式如下:
其中,Sq為通過Bootstrap重采樣隨機選取的訓(xùn)練數(shù)據(jù)集D的子集;GainRatio(Sq,m)、Gain(Sq,m)、Split(Sq,m)分別表示子數(shù)據(jù)集Sq的信息增益率、信息增益和分裂信息,V(m)是特征m的值域;Sv是集合Sq中在特征m上值等于v的子集;A表示特征m的屬性總數(shù),例如特征Protocol_type,其屬性有TCP、UDP、ICMP,所以其A=3;H(x)為數(shù)據(jù)集x的熵;pl為第l類樣本數(shù)占總數(shù)據(jù)集的比例。
下面本發(fā)明以圖5為例來說明上述過程,本發(fā)明首先利用Bootstrap重采樣算法從訓(xùn)練數(shù)據(jù)集中隨機抽取了一個數(shù)據(jù)集Sq,計算數(shù)據(jù)集Sq中28個特征的信息增益率,假定得到特征count的信息增益率最大,將特征count作為根節(jié)點開始構(gòu)建決策樹Tq;根據(jù)數(shù)據(jù)集Sq中特征count的屬性值分布進行分裂,即找出合適的閾值劃分?jǐn)?shù)據(jù)集Sq。這里假定在數(shù)據(jù)集Sq中特征count的分裂閾值為64,即在數(shù)據(jù)集Sq中的數(shù)據(jù)若其特征count≤64,即劃分為異常,若當(dāng)count>64,則進一步提取特征;當(dāng)count>64,選取剩余特征中信息增益率最大的特征Dst_bytes第二個特征,同理找出分裂閾值;重復(fù)上述步驟,直到將數(shù)據(jù)集完全劃分為止,圖4中,當(dāng)特征選取到Protocol_type時,數(shù)據(jù)集完全劃分,此時決策樹Tq構(gòu)建完成。
在上述方法中,采用信息增益率而不是信息增益來進行特征選取,是由于以信息增益度量存在一個內(nèi)在偏置,它偏袒具有較多屬性的特征,即當(dāng)某一特征具有大量的屬性值時(如特征Duration,根據(jù)表1本發(fā)明知道其取值范圍為[0,58329],因此本發(fā)明認(rèn)為其有58329個屬性值),由公式(8)可以計算得知趨近于0,由于數(shù)據(jù)集Sq的熵H(Sq)是固定的,從而信息增益Gain(Sq,m)變大,并趨近于H(Sq),因此決策樹在特征選取的過程中,偏向于選擇該特征。但這又會導(dǎo)致過擬合,即選取的特征僅能反應(yīng)已知訓(xùn)練數(shù)據(jù)集中的數(shù)據(jù)分布,使得模型僅具有對已知流量數(shù)據(jù)的分類能力,而對于未知流量數(shù)據(jù)的分類效果(未知攻擊的檢測能力)卻非常差。而特征的分裂信息(Split Information)指其對應(yīng)的數(shù)據(jù)集關(guān)于該特征的各個屬性值的熵,當(dāng)信息增益確定時,特征的重要性將隨著分裂信息的增大而減小。
例如,當(dāng)一個含有I個流量數(shù)據(jù)的集合被特征A徹底分割(即分成I組,I>2),此時分裂信息為log2I;同時,存在一個布爾特征B分割同樣的集合,如果恰好平分(I=2),則其分裂信息為1。此時,若僅采用信息增益而不是信息增益率來選取特征,則本發(fā)明可以利用公式(8)知道Gain(Sq,A)>Gain(Sq,B),從而選取特征A作為構(gòu)建決策樹的非葉子節(jié)點(根節(jié)點)。然而,在實際中由于特征A具有較多屬性值,將數(shù)據(jù)集劃分為多個小空間,即每片葉子節(jié)點有可能僅包含單純的正常和異常,此時決策樹可以完美的擬合訓(xùn)練數(shù)據(jù),然而,當(dāng)測試數(shù)據(jù)集中出現(xiàn)有不屬于特征A的屬性值的數(shù)據(jù)時,所構(gòu)建的決策樹仍然僅通過特征A對測試數(shù)據(jù)進行分類,而不考慮其他特征,這必然導(dǎo)致模型的檢測性能將大幅度下降。因此,本發(fā)明引入了信息增益率來解決上述問題。根據(jù)公式(6),顯然特征B信息增益率更高,即優(yōu)先選取特征B作為非葉子節(jié)點(根節(jié)點)構(gòu)建決策樹,從而避免了選取屬性值多的特征A而導(dǎo)致模型對未知攻擊檢測能力的降低。因此,本發(fā)明利用則特征Protocol_type的信息增益率計算如下:
則信息增益率作為一種補償措施來解決信息增益存在的問題,引入分裂信息來懲罰上述屬性值多的特征,以提高模型對未知流量檢測的精度。
下面本發(fā)明以圖3為例,說明特征提取和決策樹生成的過程。設(shè)Sq為通過Bootstrap算法從訓(xùn)練數(shù)據(jù)集D={N1,N2,...,N20}抽取的子數(shù)據(jù)集,Sq={N1,N2,N3,N4,N5,N6,N7,N8,N9,N10},為了方便計算本發(fā)明選Protocol_type、Service 2個特征進行對比,其特征的屬性值如表1所示,其中數(shù)據(jù)類別正常/異常用數(shù)字0/1表示,則sq中正常和異常數(shù)據(jù)的個數(shù)分別為7和3。
表1 N1到N10特征Protocol_type、Service屬性值及類別
同理計算GainRatio(Sq,Service)=18.4%,可知特征Service比Protocol_type有更大的信息增益率,因此,本發(fā)明優(yōu)先選取特征Service作為構(gòu)建決策樹模型T1的非葉子節(jié)點。
1.3基于加權(quán)多數(shù)算法(Weighted Majority Algorithm,WMA)的攻擊檢測
由于每棵決策樹都是利用Bootstrap算法去重后隨機生成的子數(shù)據(jù)集構(gòu)建,子數(shù)據(jù)集規(guī)模以及正常/異常數(shù)據(jù)分布較訓(xùn)練數(shù)據(jù)集D相比均發(fā)生變化,子數(shù)據(jù)集Sq的信息熵H(Sq)也隨之改變,從而導(dǎo)致每個子數(shù)據(jù)集Sq所對應(yīng)構(gòu)建的決策樹Tq對最終分類結(jié)果的影響程度也各不相同,傳統(tǒng)RF中簡單的將最多數(shù)決策樹的分類結(jié)果確定為最終分類結(jié)果顯然是不合適的。同時,在檢測過程中測試數(shù)據(jù)是逐條通過模型進行檢測的,若采用基于半監(jiān)督學(xué)習(xí)的方法對數(shù)據(jù)進行檢測標(biāo)記會由于每次檢測都需要通過多次迭代對全部數(shù)據(jù)進行聚類而導(dǎo)致模型檢測效率極低,無法滿足實際環(huán)境中實時檢測的需求,并且僅采用基于半監(jiān)督學(xué)習(xí)的方法進行檢測會由于其自身劃分精度與分類算法相比較低而導(dǎo)致模型整體檢測精度下降。
因此,如圖6所示,本發(fā)明引入加權(quán)多數(shù)算法給每棵決策樹分配權(quán)值wq對網(wǎng)絡(luò)流量數(shù)據(jù)進行檢測,并分析子數(shù)據(jù)集Sq較訓(xùn)練數(shù)據(jù)集D在通過Bootstrap重采樣算法去重后的集合規(guī)模以及數(shù)據(jù)分布的變化程度,以子數(shù)據(jù)集Sq較訓(xùn)練數(shù)據(jù)集D的信息增益Gain(Sq,l)衡量其對應(yīng)生成的每棵決策樹Tq對最終檢測結(jié)果的影響程度。由于l只有0、1兩類,根據(jù)上節(jié)中對信息增益的定義,不存在由于特征屬性值過多引起的過擬合問題,因此本發(fā)明采用信息增益Gain(Sq,l)而不是信息增
益率來衡量每棵決策樹對最終檢測結(jié)果的影響程度,具體公式如下:
為了方便計算,將每個決策樹的結(jié)果分為正常和異常,并用1和-1表示,得到q個分類結(jié)果(y1,y2,...,yq),即yq={1,-1},其中,-1代表決策樹輸出結(jié)果為異常,1代表決策樹輸出結(jié)果為正常。Sq,l表示在子數(shù)據(jù)集Sq中類別為l的數(shù)據(jù)集合,Q為決策樹的總個數(shù),sgn為符號函數(shù),即當(dāng)時,y=1,即被檢測流量數(shù)據(jù)為正常流量;當(dāng)時,y=-1,即被檢測流量數(shù)據(jù)為異常流量。
例如當(dāng)隨機森林中有T1、T2兩棵決策樹,其權(quán)值通過公式(11)計算分別為w1=41%、w2=33%,對測試數(shù)據(jù)集E中一條數(shù)據(jù)E1檢測時得到的分類結(jié)果分別為1、-1,則利用公式(12)可以得到y(tǒng)=1,即流量數(shù)據(jù)E1的檢測結(jié)果為正常流量。
由于APT攻擊隨時間的推移,攻擊方式可能動態(tài)變化,使得反映在底層的網(wǎng)絡(luò)流量數(shù)據(jù)以及體現(xiàn)攻擊的特征也隨之改變。為了應(yīng)對動態(tài)變化的攻擊方式,本發(fā)明將檢測完成的數(shù)據(jù)加入訓(xùn)練數(shù)據(jù)集中,并去除較早的數(shù)據(jù),動態(tài)更新訓(xùn)練數(shù)據(jù)集以應(yīng)對動態(tài)變化的攻擊方式。
如圖7所示,本發(fā)明的準(zhǔn)確率(Accuracy)、檢測率(Detection Rate)、誤報率(False Alarm)和漏報率(False negative rate)分別達到了80.77%、77.51%、0.92%和2.79%,較傳統(tǒng)RF相比,漏報率、誤報率分別降低了53.54%和40.76%,這主要是由于與傳統(tǒng)RF算法不同,本發(fā)明利用半監(jiān)督學(xué)習(xí)算法使得模型具有足夠的標(biāo)記樣本進行訓(xùn)練,保證了訓(xùn)練出的模型的有效性,使其具有較高的檢測精度。另一方面,結(jié)合圖7,本發(fā)明通過計算可以知道,本發(fā)明較KNN算法和SVM算法相比,準(zhǔn)確率和檢測率分別提高了14.86%、14.20%和7.58%和7.07%,這是由于本發(fā)明通過引入信息增益率選取了最能體現(xiàn)當(dāng)前目標(biāo)網(wǎng)絡(luò)的流量特征,使得檢測模型能夠針對不同目標(biāo)網(wǎng)絡(luò)中存在的不同異常行為進行檢測,適用于不同APT攻擊場景。同時,本發(fā)明利用信息增益對不同決策樹賦予權(quán)重并基于WMA得到最終檢測結(jié)果,保證了不同決策樹對模型檢測性能的影響程度不同,使得模型不再單單依賴于標(biāo)準(zhǔn)隨機森林算法中樹的棵數(shù)的選取,大大提高了模型的檢測精度。
不同規(guī)模訓(xùn)練數(shù)據(jù)集對檢測性能的影響
圖8為訓(xùn)練數(shù)據(jù)集D的準(zhǔn)確率和模型的檢測率隨未標(biāo)記歷史數(shù)據(jù)規(guī)模變化的曲線,這里本發(fā)明設(shè)已標(biāo)記準(zhǔn)確數(shù)據(jù)與未標(biāo)記歷史數(shù)據(jù)的比例為1:d,其中d表示未標(biāo)記歷史數(shù)據(jù)的規(guī)模。從圖中本發(fā)明可以看出,訓(xùn)練數(shù)據(jù)集D的準(zhǔn)確率隨d值的增大逐漸下降,而模型檢測的準(zhǔn)確率隨d值的增大呈先增大后下降的趨勢,在d=9時達到最大值80.77%。這是由于當(dāng)d值過小時,用于訓(xùn)練模型的數(shù)據(jù)不足而導(dǎo)致模型檢測精度不高,而當(dāng)d值過大時,由于生成的訓(xùn)練數(shù)據(jù)集D已經(jīng)不夠準(zhǔn)確,而導(dǎo)致訓(xùn)練出的模型自身準(zhǔn)確率過低。因此實驗選取d=9構(gòu)建訓(xùn)練數(shù)據(jù)集D。
決策樹個數(shù)對檢測性能的影響
從圖9中本發(fā)明可以知道,當(dāng)決策樹個數(shù)q=300時,檢測的準(zhǔn)確率達到最高80.77%,此時模型檢測花費的時間為112s,當(dāng)q值大于300時,檢測精度趨于穩(wěn)定,而檢測花費時間大幅度上升,使得模型無法保證APT攻擊檢測的實時性。其中,決策樹個數(shù)q是影響模型性能和效率的一大主要因素,當(dāng)決策樹個數(shù)q較小時,模型的檢測精度較差。另一方面,由于隨機森林具有不過擬合性質(zhì),因此可以使q盡量大,以保證模型的檢測精度。但是模型的復(fù)雜度與q成正比,即q過大,模型檢測時間花費過大。因此實驗選取q=300。
綜上所述,本發(fā)明在利用少量已標(biāo)記準(zhǔn)確數(shù)據(jù)集生成大規(guī)模準(zhǔn)確標(biāo)記訓(xùn)練數(shù)據(jù)集的同時,提取了最能體現(xiàn)目標(biāo)網(wǎng)絡(luò)流量的特征,保證了模型對未知攻擊的檢測精度。本發(fā)明針對APT環(huán)境下訓(xùn)練數(shù)據(jù)集少和網(wǎng)絡(luò)流量特征難以選取的問題,基于半監(jiān)督學(xué)習(xí)算法,利用少量已標(biāo)記數(shù)據(jù),生成大規(guī)模訓(xùn)練數(shù)據(jù)集,以此對檢測模型進行訓(xùn)練,并通過信息增益率的引入實現(xiàn)對APT目標(biāo)網(wǎng)絡(luò)流量數(shù)據(jù)的特征提取以檢測目標(biāo)網(wǎng)絡(luò)中的未知攻擊。通過實驗與RF、KNN和SVM算法的檢測結(jié)果對比驗證了本發(fā)明的有效性,并分別分析了不同規(guī)模訓(xùn)練數(shù)據(jù)集和決策樹個數(shù)的選取對檢測性能的影響。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。