魏志強(qiáng),張 浩,陳 龍
(福州大學(xué) 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,福州 350116)
(福建省網(wǎng)絡(luò)計(jì)算與智能信息處理重點(diǎn)實(shí)驗(yàn)室,福州 350116)
E-mail:zhanghao@fzu.edu.cn
隨著網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,根據(jù)中國(guó)互聯(lián)網(wǎng)絡(luò)信息中心最新統(tǒng)計(jì)報(bào)告顯示,截至2018年12月,我國(guó)網(wǎng)民規(guī)模達(dá)8.29億,普及率達(dá)59.6%,人們的生活越來越離不開互聯(lián)網(wǎng).近十年來,Web廣泛應(yīng)用于社交、網(wǎng)購(gòu)、銀行和Email等重要線上業(yè)務(wù),在人們享受這網(wǎng)絡(luò)帶來便利的同時(shí)也面臨著很多安全威脅.根據(jù)國(guó)家應(yīng)急響應(yīng)中心(CNCERT/CC)《網(wǎng)絡(luò)安全信息與動(dòng)態(tài)周報(bào)——2019 年第4期》統(tǒng)計(jì),每周 CNCERT 監(jiān)測(cè)發(fā)現(xiàn)境內(nèi)被篡改網(wǎng)站數(shù)量為701個(gè);境內(nèi)被植入后門的網(wǎng)站數(shù)量為600個(gè).在現(xiàn)有的Web應(yīng)用攻擊檢測(cè)中,無(wú)論是WAF(Web應(yīng)用防火墻)或IDS(入侵檢測(cè)系統(tǒng))亦或IPS(入侵防御系統(tǒng))等,這類基于誤用檢測(cè)的技術(shù)主要是依賴黑白名單或已知攻擊規(guī)則,對(duì)每條報(bào)文進(jìn)行正則匹配以達(dá)到檢測(cè)防御的目的.這種基于規(guī)則的方法通常情況下能夠抵御絕大部分的攻擊,但是在實(shí)際應(yīng)用過程中存在以下問題:僅能檢測(cè)已知攻擊;規(guī)則庫(kù)維護(hù)困難,安全管理員需要豐富的安全知識(shí),以制定匹配規(guī)則;出現(xiàn)誤報(bào)不易及時(shí)修改.異常檢測(cè)可以通過建立正常行為模型檢測(cè)未知攻擊,其中包括基于日志信息挖掘和流量行為建模等方法.日志信息保留著攻擊者的攻擊痕跡,一般發(fā)現(xiàn)比較遲,攻擊者可能已經(jīng)成功入侵,所以采用挖掘日志信息來檢測(cè)攻擊行為的方法存在一定的滯后性.由于所有攻擊指令都需要在網(wǎng)絡(luò)上進(jìn)行交互,基于流量行為建模分析流量特征上細(xì)微變化攻擊行為,可以在攻擊者在入侵過程中發(fā)現(xiàn)并且采取相應(yīng)應(yīng)急措施.本文采用機(jī)器學(xué)習(xí)針對(duì)流量建立行為模型,對(duì)流量進(jìn)行實(shí)時(shí)檢測(cè),相比誤用檢測(cè),該方式具有檢測(cè)未知攻擊、訓(xùn)練過程簡(jiǎn)單、人工成本投入少以及可擴(kuò)展性好等優(yōu)點(diǎn),相比基于日志信息建模,可以提前識(shí)別攻擊過程中的攻擊行為.
基于機(jī)器學(xué)習(xí)的Web攻擊檢測(cè)已經(jīng)有不少研究成果:一些學(xué)者采用特征選擇來降低維度.Huang等人[1]選擇自組織映射(Self-Organizing Map,SOM)提取主成分作為“normal picture”的壓縮表示;Muhammad Hilmi Kamarudin等人[2]提出了一種基于異常的集成分類入侵檢測(cè)系統(tǒng)來檢測(cè)web服務(wù)器上未知攻擊的方法,該方法使用Filter和Wrapper結(jié)合遺傳搜索刪除無(wú)關(guān)的和冗余的特性,最終得到較小維度的特征子集;Chen等[3]利用最大信息系數(shù)(maximum information coefficient,MIC)對(duì)不相關(guān)屬性進(jìn)行過濾,提高分類精度;文獻(xiàn)[4,5]使用人工特征分析和SVM優(yōu)化相結(jié)合的方法進(jìn)行Web攻擊檢測(cè),但是檢測(cè)率并不高,大部分低于90%,對(duì)于實(shí)時(shí)檢測(cè)難以滿足要求;錢亞冠[6]等人針對(duì)通過篡改訓(xùn)練數(shù)據(jù)進(jìn)而誤導(dǎo)SVM的機(jī)器學(xué)習(xí)過程的新型攻擊方法,提出一種針對(duì)基于 SVM 入侵檢測(cè)系統(tǒng)的毒性攻擊方法;文獻(xiàn)[7]提出基于數(shù)據(jù)包大小檢查的Slow HTTP POST攻擊檢測(cè)方法,檢測(cè)僅使用少量攻擊流量的Slow HTTP POST攻擊;Gilberto Fernandes Jr等人[8]提取IP流進(jìn)行七維分析,包括每秒傳輸?shù)谋忍?、包和流等進(jìn)行描述,利用主成分析和蟻群優(yōu)化對(duì)網(wǎng)絡(luò)流量異常進(jìn)行檢測(cè);文獻(xiàn)[9]提出了一種基于流量預(yù)測(cè)和變化點(diǎn)檢測(cè)的網(wǎng)絡(luò)異常檢測(cè)方法,該方法針對(duì)DDOS取到了良好的效果;Malhotra P 等人[10]利用LSTM網(wǎng)絡(luò)對(duì)時(shí)間序列異常檢測(cè),此網(wǎng)絡(luò)雖然可以對(duì)時(shí)間序列的異常有較好的檢測(cè),但是如果網(wǎng)絡(luò)流量數(shù)據(jù)的模式?jīng)]有一定的周期,就不能很好地對(duì)實(shí)際流量數(shù)據(jù)進(jìn)行分類;田俊峰等人[11]采用卷積神經(jīng)網(wǎng)絡(luò)檢測(cè)異常,把Web請(qǐng)求流量映射成灰度圖,利用神經(jīng)網(wǎng)絡(luò)識(shí)別圖像的優(yōu)點(diǎn),對(duì)細(xì)微變化的流量有較好的檢測(cè)效果.其它諸如人工神經(jīng)網(wǎng)絡(luò)分類器[12]、傅立葉分析[13]和小波分析[14]在低維或單維環(huán)境中表現(xiàn)更好,但低維或單維無(wú)法完整挖掘流量中的信息,基于神經(jīng)網(wǎng)絡(luò)的方法復(fù)雜度較高,訓(xùn)練時(shí)間長(zhǎng).現(xiàn)階段基于流量檢測(cè)Web攻擊的檢測(cè)率仍然有待提高,且由于算法的適應(yīng)性以及流量特征的復(fù)雜性導(dǎo)致檢測(cè)效率低,無(wú)法滿足隨著網(wǎng)路流量的激增的檢測(cè)要求,較少關(guān)注正常和異常流量分布不均引起少數(shù)類攻擊檢測(cè)率低等問題.
針對(duì)上述現(xiàn)階段檢測(cè)方法仍存在的一些不足,本文提出基于SMOTE結(jié)合Tomek Links(下文稱SmoteTomek)和LightGBM算法的Web異常檢測(cè)框架.其中,采用SmoteTomek算法對(duì)少量攻擊數(shù)據(jù)進(jìn)行過采樣,解決正常與異常數(shù)據(jù)之間的不平衡問題;采取基于基尼系數(shù)的GBDT算法計(jì)算特征重要性,降低特征維度,提升后續(xù)算法的計(jì)算效率;采用基于LightGBM算法,對(duì)流量進(jìn)行二分類和多分類,最后利用真實(shí)流量數(shù)據(jù)UNSW-NB15進(jìn)行實(shí)驗(yàn).
SMOTE[15]的基本算法思想是在少數(shù)類樣本與其k個(gè)近鄰之間的連線上,利用隨機(jī)函數(shù)產(chǎn)生隨機(jī)數(shù)合成新樣本,從而增加了少數(shù)類樣本數(shù)量,達(dá)到對(duì)少數(shù)類樣本過采樣的目的,使分類器更好地對(duì)少數(shù)類樣本進(jìn)行預(yù)測(cè),有效地提高了分類精度.SMOTE新樣本生成過程如圖1所示.
圖1 生成新樣本
算法1.SMOTE算法生成新樣本
1.輸入數(shù)據(jù)集f,設(shè)置近鄰數(shù)K;
2.對(duì)于少數(shù)類中每一個(gè)樣本x,計(jì)算它到所屬類樣本集Smin中所有樣本的歐氏距離,得到該樣本k近鄰;
3.根據(jù)多數(shù)類與少數(shù)類不平衡比例設(shè)置一個(gè)采樣倍率N;
4.從少數(shù)類樣本x的k近鄰中隨機(jī)選擇個(gè)n樣本,假設(shè)選擇的近鄰為xi,其中1
5.對(duì)于每一個(gè)隨機(jī)選出的近鄰xi,分別與原樣本按照下式構(gòu)建新的樣本:
xnew=x+random(0,1)*|x-xi|
6.輸出:xnew
TOMEK在文獻(xiàn)[16]中提出Tomek Links算法,Tomek Links的算法思想如下:樣本x與樣本y來自于不同的類別,若不存在另外一個(gè)樣本z,使得d(x,z) 圖2 Tomek links對(duì) 在數(shù)據(jù)集D中,基尼系數(shù)表示隨機(jī)抽取兩個(gè)樣本類別不一致的概率,概率越小,集合就越純.在分類問題上,假設(shè)數(shù)據(jù)集D中有K個(gè)類別,其中Pk表示某個(gè)樣本屬于k類的概率,則可用基尼值來度量數(shù)據(jù)集D的純度: (1) 假設(shè)離散特征f有V種可能的取值f={f1,f2,…,fv},若使用f對(duì)樣本集D進(jìn)行劃分,則數(shù)據(jù)集D會(huì)產(chǎn)生V個(gè)分支,其中第v個(gè)分支包含了在f特征上取值為fv的所有樣本,我們標(biāo)記為Dv,將數(shù)據(jù)集D中特征f的基尼系數(shù)定義為: (2) 梯度提升決策樹(GBDT)[17]是基于加法模型,學(xué)習(xí)算法采用前向分步算法,以CART樹為基函數(shù),并且根據(jù)不同的回歸問題和分類問題取不同的損失函數(shù).本文中的GBDT算法采用損失函數(shù)負(fù)梯度作為殘差,并以該殘差的方向作為模型迭代的局部最優(yōu)方向,通過在迭代中擬合殘差實(shí)現(xiàn)弱學(xué)習(xí)器的訓(xùn)練,最后通過將訓(xùn)練得到的多棵決策樹累加進(jìn)行聯(lián)合決策. 算法2.梯度提升決策樹算法. 1.輸入訓(xùn)練集:S={(x1,y1),(x2,y2),…,(xn,yn)},可微損失函數(shù)L(y,f(x)),迭代次數(shù)M,回歸模型f(x),學(xué)習(xí)率ρ; 3.對(duì)m=1,2,…,M計(jì)算: a)計(jì)算殘差: b)使用CART回歸樹擬合數(shù)據(jù)(xi,rmi),得到第m棵樹的葉子結(jié)點(diǎn)區(qū)域rmj,其中j=1,2,…,Jm; c)對(duì)j=1,2,…,Jm計(jì)算: γm,j=argmin∑xi∈rj,mL(yi,fm-1(xi)+γ) d)更新模型: 4.輸出:fM(x) 單棵樹上特征的重要性定義為:特征在所有非葉節(jié)在分裂時(shí)加權(quán)不純度的減少,減少的越多說明特征越重要.Gini系數(shù)的計(jì)算公式如式(1)所示: (3) 其中,K表示K個(gè)類別,Pmk表示在節(jié)點(diǎn)m中類別k所占的比例.根據(jù)上述基尼系數(shù)的定義,可以表示為從節(jié)點(diǎn)m中隨機(jī)抽取兩個(gè)樣本類別標(biāo)記不同的概率. 考慮到各分支中所包含的樣本數(shù)不同對(duì)分支的影響不同,將各分支的基尼值乘以該分支的樣本數(shù)N,這樣可提高樣本數(shù)多的分支的影響,特征Xj在節(jié)點(diǎn)m的重要性可以表示為加權(quán)不純度的減少: (4) 其中,GIl和GIr分別表示分枝后兩個(gè)新節(jié)點(diǎn)的Gini系數(shù),Nm、Nl、Nr分別表示節(jié)點(diǎn)m、左孩子節(jié)點(diǎn)l和右孩子節(jié)點(diǎn)r的樣本數(shù). 如果在決策樹i中,決策樹節(jié)點(diǎn)集合為M,特征Xj所在的節(jié)點(diǎn)m在M中,那么Xj在第i棵樹的重要性為: (5) 假設(shè)有n棵樹,那么特征j在n棵樹的重要性之和為: (6) 對(duì)以上重要性評(píng)分做歸一化處理可得特征j的重要性: (7) 傳統(tǒng)的過采樣是基于有放回隨機(jī)采樣,以達(dá)到簡(jiǎn)單的復(fù)制增加少數(shù)類樣本的目的,但是該方法造成了數(shù)據(jù)的冗余,容易造成過擬合現(xiàn)象.于是本文采用SMOTE算法對(duì)少數(shù)類進(jìn)行過采樣,這樣可以在一定程度上避免放回隨機(jī)采樣存在大量重復(fù)樣本帶來的過擬合的現(xiàn)象. SMOTE方法是通過在兩個(gè)樣本之間的線性插值生成少數(shù)類樣本,在平衡類別分布的同時(shí)也使少數(shù)類的樣本空間擴(kuò)張到其它類的樣本空間,可能產(chǎn)生原本屬于多數(shù)類樣本的空間被少數(shù)類“入侵”(invade)的問題,如圖3所示,也會(huì)造成模型的過擬合.通過尋找Tomek Links對(duì)可以找到那些噪聲點(diǎn)或者邊界點(diǎn),直接刪除Tomek Links對(duì)就可以很好地解決“入侵”的問題. 圖3 SMOTE與Tomek Links結(jié)合 在剔除Tomek Links對(duì)時(shí),由于插值的隨機(jī)性,可能會(huì)出現(xiàn)大量新生成的數(shù)據(jù)被剔除,使得數(shù)據(jù)仍然存在嚴(yán)重的不平衡,針對(duì)該問題,本文根據(jù)數(shù)據(jù)的量級(jí)設(shè)置閾值,該閾值是控制多數(shù)類與少數(shù)類的數(shù)據(jù)量差,若大于該閾值,則進(jìn)行下一輪的采樣,直至滿足各類數(shù)據(jù)之間的平衡為止.雖然利用剔除Tomek Links會(huì)導(dǎo)致各類之間不能完全達(dá)到平衡狀態(tài),但是這種少許的差值對(duì)模型的訓(xùn)練結(jié)果不會(huì)產(chǎn)生太大的影響,在缺少大量的少數(shù)樣本的情況下依然可以很好解決少數(shù)類檢測(cè)問題. LightGBM[18]是一個(gè)實(shí)現(xiàn) GBDT 算法的框架,解決GBDT訓(xùn)練大量數(shù)據(jù)困難的問題,并且在訓(xùn)練過程進(jìn)行優(yōu)化,提升了訓(xùn)練的效率.傳統(tǒng)基于GBDT如Xgboost算法,是采用pre-sorted對(duì)特征進(jìn)行預(yù)排序,而LightGBM是采用直方圖算法(histogram).無(wú)論是pre-sorted算法還是histogram算法,都需要完整的遍歷整個(gè)數(shù)據(jù)集,所以尋找切分點(diǎn)的時(shí)間復(fù)雜度都為O(#data*#feature).在訓(xùn)練決策樹計(jì)算切分點(diǎn)的增益時(shí),預(yù)排序需要對(duì)每個(gè)樣本的切分位置計(jì)算,所以時(shí)間復(fù)雜度是O(#data),由于histogram將連續(xù)的特征值分桶(buckets)裝進(jìn)離散的箱子(bins),計(jì)算時(shí)將樣本離散化為直方圖后的直方圖切割位置的增益即可,時(shí)間復(fù)雜度為O(#bins),#bins遠(yuǎn)小于#data,從而大大降低時(shí)間復(fù)雜度和內(nèi)存的使用. LightGBM采用Leaf-wise的葉子生長(zhǎng)策略,Leaf-wise是從當(dāng)前所有的葉子中找分類增益最大的葉子結(jié)點(diǎn)進(jìn)行分裂,避免對(duì)很多分裂增益低的葉子結(jié)點(diǎn)的搜索和分裂,而level-wise對(duì)每一層的節(jié)點(diǎn)都進(jìn)行分割,相比level-wise更加高效.Leaf-wise采用最大深度限制,很好的限制了訓(xùn)練過程長(zhǎng)出較深的決策樹而產(chǎn)生的過擬合問題.計(jì)算某一節(jié)點(diǎn)的葉節(jié)點(diǎn)的直方圖,可以通過將該節(jié)點(diǎn)的父親節(jié)點(diǎn)直方圖與兄弟節(jié)點(diǎn)的直方圖做差得到,進(jìn)一步加速計(jì)算. 很多算法局限于對(duì)小批量的數(shù)據(jù)訓(xùn)練,本文采用基于histogram的LightGBM算法,降低了內(nèi)存的使用,解決大批量數(shù)據(jù)訓(xùn)練困難的問題,在訓(xùn)練效率上大大提高,能較好的滿足實(shí)時(shí)檢測(cè)的需求.同時(shí),LightGBM支持并行計(jì)算,有很好的擴(kuò)展性,可以較好適應(yīng)網(wǎng)絡(luò)流量急劇增加的趨勢(shì). 基于SmoteTomek和LightGBM的Web異常檢測(cè)訓(xùn)練模型如圖4、圖5所示,該模型由原始流量數(shù)據(jù)集、預(yù)處理模塊、特征選擇模塊、數(shù)據(jù)不平衡處理模塊和LightGBM分類器等組成.從數(shù)據(jù)庫(kù)獲取流量數(shù)據(jù),采用基于基尼系數(shù)和GBDT算法計(jì)算特征的重要性,并且對(duì)數(shù)據(jù)進(jìn)行歸一化,規(guī)范化數(shù)據(jù)格式,采用SmoteTomek算法對(duì)少數(shù)類攻擊數(shù)據(jù)進(jìn)行過采樣,解決數(shù)據(jù)不平衡問題,最終采用LightGBM算法訓(xùn)練分類器,訓(xùn)練正常與異常流量模型以及多Web攻擊類別模型,圖4所示二分類訓(xùn)練模型由于訓(xùn)練集正常與異常流量數(shù)據(jù)量相差不大,因此沒有進(jìn)行平衡處理,應(yīng)用時(shí)可根據(jù)實(shí)際需求作相應(yīng)處理. 圖4 二分類訓(xùn)練模型 Web異常檢測(cè)框架如圖6所示,其中包括實(shí)時(shí)數(shù)據(jù)采集單元、異常檢測(cè)單元、異常響應(yīng)單元和數(shù)據(jù)更新單元構(gòu)成.實(shí)時(shí)數(shù)據(jù)采集單元:從交換機(jī)采集鏡像流量數(shù)據(jù),把流量處理成會(huì)話形式,提取顯性和隱性特征;異常檢測(cè)單元:加載已訓(xùn)練好的模型,對(duì)實(shí)時(shí)數(shù)據(jù)采集單元傳輸過來的數(shù)據(jù)進(jìn)行檢測(cè);異常響應(yīng)單元:判斷異常檢測(cè)單元的檢測(cè)結(jié)果是否存在異常行為,若存在則發(fā)出警報(bào);數(shù)據(jù)更新單元:將檢測(cè)結(jié)果進(jìn)行詳細(xì)審核,對(duì)誤報(bào)的數(shù)據(jù)進(jìn)行標(biāo)簽更正,更新流量數(shù)據(jù)庫(kù). 圖5 多分類訓(xùn)練模型 采用公開數(shù)據(jù)集UNSW-NB15[19],該數(shù)據(jù)集2015年由澳大利亞網(wǎng)絡(luò)安全中心(ACCS)實(shí)驗(yàn)室采集真實(shí)的正常和異常流量數(shù)據(jù),共提取49個(gè)特征來反映網(wǎng)絡(luò)流量的性質(zhì).該數(shù)據(jù)混合了兩周內(nèi)的正?;顒?dòng)和攻擊活動(dòng),包括1種正常類型和9種攻擊類型,它反映了當(dāng)代網(wǎng)絡(luò)流量特征和新的低痕跡(low-footprint)攻擊場(chǎng)景,相比經(jīng)典的KDD99數(shù)據(jù)集,該數(shù)據(jù)比較貼合當(dāng)前網(wǎng)絡(luò)環(huán)境. 圖6 檢測(cè)模型 通過觀察,數(shù)據(jù)集中存在大量冗余數(shù)據(jù),訓(xùn)練分類器時(shí)容易造成過擬合,因此對(duì)數(shù)據(jù)進(jìn)行去冗余處理,只留下互不相同的樣本.訓(xùn)練集由10%的實(shí)例組成,其余90%用于構(gòu)建測(cè)試集(由于Worms類數(shù)據(jù)量太少,Worms類型訓(xùn)練集和測(cè)試集各取50%),如表1所示.該訓(xùn)練數(shù)據(jù)集共有45個(gè)特征,包含4個(gè)字符型特征(proto,service,state,attack_cat)和41個(gè)float和int型特征,去掉id和attack_cat,且通過實(shí)驗(yàn)證明對(duì)于proto、service和state這3個(gè)特征進(jìn)行獨(dú)熱編碼,SOMTE進(jìn)行過采樣時(shí)會(huì)造成維度災(zāi)難,大大降低訓(xùn)練效率,因此人為去掉這三個(gè)字符型特征,最后對(duì)數(shù)據(jù)進(jìn)行歸一化. 表1 UNSW-NB15數(shù)據(jù)集 Table 1 UNSW-NB15 dataset TypeTraining setTesting setNornal342030786Analysis45401Backdoors40306Dos1721546Exploits7606849Fuzzers4854353Generic3663291Reconnaisance2702433Shellcode40338Worms2222 本文取30%訓(xùn)練集,采用GBDT算法結(jié)合基尼系數(shù)計(jì)算特征重要性,部分結(jié)果如表2所示,經(jīng)實(shí)驗(yàn)采取重要性前10的特征. 表2 特征重要性 Table 2 Feature importance FeatureImportanceFeatureImportancesttl0.310dmean0.025ct_dst_sport_ltm0.284dttl0.023sbytes0.110synack0.020smean0.073dbytes0.019ct_srv_dst0.057dload0.018 由表1可以直觀地看出,數(shù)據(jù)的分布嚴(yán)重失衡,Normal數(shù)據(jù)有34206條,而Worms類只有44條,在訓(xùn)練模型時(shí)Worms類容易學(xué)習(xí)不完全,導(dǎo)致分類準(zhǔn)確率低.采用SmoteTomek算法對(duì)訓(xùn)練集的少數(shù)類進(jìn)行過采樣,均衡訓(xùn)練集中各個(gè)類分布,結(jié)果如表3所示. 表3 平衡結(jié)果 Table 3 Result of balanced CatNumCatNumNornal3394Analysis3407Fuzzers3395Generic3414Backdoors3408Dos3387Reconnaisance3404Shellcode3413Exploits3384Worms3420 TN(真反例):真實(shí)的攻擊流量且模型分類結(jié)果也為攻擊流量;FN(假反例):真實(shí)的正常流量但模型分類結(jié)果為攻擊流量;TP(真正例):真實(shí)的正常流量且模型分類結(jié)果也為正常流量;FP(假正例):真實(shí)的攻擊流量但模型分類結(jié)果為正常流量,分類結(jié)果混淆矩陣如表4所示. 表4 混淆矩陣 Table 4 confusion matrix Actual classPredicted classPositivesNegativesPositivesTPFNNegativesFPTN 本文采用Accuracy(準(zhǔn)確率)、Recall(召回率)、False Alarm Rate(FAR,誤報(bào)率包括FNR和FPR)等統(tǒng)計(jì)指標(biāo)來評(píng)價(jià)分類算法的性能. (8) (9) (10) (11) 本文提出的檢測(cè)方法在異常流量檢測(cè)率可以達(dá)到97.53%,實(shí)驗(yàn)結(jié)果如表5-表8所示.實(shí)驗(yàn)采取的數(shù)據(jù)量與文獻(xiàn)[20]相同,相比該文獻(xiàn)提出的Dendron方法,本文提出的方法不僅擁有更高的檢測(cè)率,并且在檢測(cè)的精度上也優(yōu)于該方法如表9所示. 表5 二分類混淆矩陣 Table 5 Confusion matrix of binary TypeNormalAnomalyNormal30261525Anomaly48319056 表6 二分類結(jié)果 Table 6 Results of binary TypeAccuracyRecallFARNormal98.43%98.30%2.47%Anomaly97.32%97.53%1.70% 表7 多分類結(jié)果 Table 7 Results of multiple TypeRecallAccuracyNornal98.10%96.69%Analysis55.56%24.46%Backdoors78.88%23.73%Dos48.58%48.59%Exploits75.57%90.07%Fuzzers74.20%87.30%Generic92.67%97.13%Reconnaisance84.46%85.00%Shellcode93.79%45.94%Worms95.45%48.84% 在數(shù)據(jù)不平衡的多分類問題中,由于算法傾向于選擇數(shù)據(jù)集的多數(shù)類,而少數(shù)類學(xué)習(xí)不完整,導(dǎo)致檢測(cè)過程中少數(shù)類的檢測(cè)率不高,使得檢測(cè)結(jié)果有較高的誤報(bào)率.本文采取SmoteTomek解決數(shù)據(jù)不平衡問題,由表8所示,經(jīng)過Smote-Tomek處理后,少數(shù)類的檢測(cè)率都有很大的提升.可以看出Worms等少數(shù)類的數(shù)量級(jí)遠(yuǎn)少于其他類型的數(shù)據(jù),然而召回率能達(dá)到95.45%,說明該方法適用于解決流量異常檢測(cè)數(shù)據(jù)不平衡問題.與此同時(shí),由于SmoteTomek均衡各類分布,增加了訓(xùn)練的樣本數(shù),會(huì)加大訓(xùn)練時(shí)間的開銷,本文提出基于基尼系數(shù)的GBDT的特征選擇,特征維度降低至10維,使得訓(xùn)練時(shí)間開銷(Cost)從32.78秒降到20.81秒和從57.56秒降到43.19秒. 表8 實(shí)驗(yàn)結(jié)果 Table 8 Results of experimental TypeLightGBMLightGBM+GBDTLightGBM+TomeksmoteLightGBM+Tomeksmote+GBDTNornal98.88%99.15%98.20%98.10%Analysis2.49%5.49%56.01%55.56%Backdoors8.82%10.46%66.01%78.88%Dos11.32%12.1%47.87%48.58%Exploits80.54%80.85%74.54%75.57%Fuzzers54.15%56.21%74.09%74.20%Generic80.8%82.13%92.16%92.67%Reconnaisance73.24%79.12%84.01%84.46%Shellcode31.07%39.05%93.49%93.49%Worms27.27%45.45%100%95.46% 表9 算法性能比較 Table 9 Comparison of performance algorithm MethodAccADRFARKNN78.33%58.44%3.77%Xgboost85.15%70.66%2.32%Dendron84.33%63.76%2.61%LightGBM89.90%77.12%1.9% 從實(shí)驗(yàn)結(jié)果可以看出,本文提出的方法在多分類問題上,Accuracy、Recall和FAR這3個(gè)指標(biāo)上都優(yōu)于Dendron[20]、Xgboost、KNN等方法如表9所示. 在本文中,我們?cè)O(shè)計(jì)并實(shí)現(xiàn)一種基于SmoteTomek和LightGBM的Web異常檢測(cè)模型,該模型首先采用基于基尼系數(shù)的GBDT算法進(jìn)行特征選擇,其次結(jié)合SMOTE和Tomek Links算法各自的優(yōu)點(diǎn),對(duì)少數(shù)類樣本進(jìn)行過采樣,最終利用LightGBM算法訓(xùn)練Web流量二分類器與多分類器.本文提出的模型在多分類問題上,具有高精度和高召回率,克服了攻擊流量數(shù)據(jù)量遠(yuǎn)少于正常流量的不足.同時(shí),我們采用GBDT算法對(duì)流量特征進(jìn)行約減,該方法可以很好的減少特征維度,在不損失訓(xùn)練精度的基礎(chǔ)上提升訓(xùn)練的效率.實(shí)驗(yàn)數(shù)據(jù)是近年來的流量數(shù)據(jù),說明本文提出的檢測(cè)模型可以很好的基于流量檢測(cè)Web異常.在可以滿足異常檢測(cè)需求的情況下,由于訓(xùn)練數(shù)據(jù)量與SmoteTomek算法本身的適應(yīng)性問題,檢測(cè)模型仍然存在少許誤差.下一步,我們將嘗試?yán)蒙窠?jīng)網(wǎng)絡(luò)解決數(shù)據(jù)不平衡,解決線性插值的不足,并且采集更多的數(shù)據(jù)來訓(xùn)練模型,提高檢測(cè)模型的檢測(cè)率和準(zhǔn)確率.3.3 基尼系數(shù)
3.4 GBDT算法
4 基于SmoteTomek和LightGBM的Web異常檢測(cè)模型
4.1 基于基尼系數(shù)的GBDT算法計(jì)算特征的重要性
4.2 SMOTE與Tomek Links結(jié)合
4.3 基于GBDT的LightGBM算法
4.4 Web異常檢測(cè)框架
5 實(shí)驗(yàn)及結(jié)果分析
5.1 數(shù)據(jù)集
5.2 數(shù)據(jù)預(yù)處理
5.3 特征選擇
5.4 數(shù)據(jù)平衡
5.5 評(píng)價(jià)指標(biāo)
5.6 實(shí)驗(yàn)結(jié)果分析
6 總結(jié)與展望