自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

基于機(jī)器學(xué)習(xí)的web異常檢測(cè)

安全 應(yīng)用安全
本文管中窺豹式的介紹了機(jī)器學(xué)習(xí)用于web異常檢測(cè)的幾個(gè)思路。

Web防火墻是信息安全的第一道防線。隨著網(wǎng)絡(luò)技術(shù)的快速更新,新的黑客技術(shù)也層出不窮,為傳統(tǒng)規(guī)則防火墻帶來(lái)了挑戰(zhàn)。傳統(tǒng)web入侵檢測(cè)技術(shù)通過(guò)維護(hù)規(guī)則集對(duì)入侵訪問(wèn)進(jìn)行攔截。一方面,硬規(guī)則在靈活的黑客面前,很容易被繞過(guò),且基于以往知識(shí)的規(guī)則集難以應(yīng)對(duì)0day攻擊;另一方面,攻防對(duì)抗水漲船高,防守方規(guī)則的構(gòu)造和維護(hù)門(mén)檻高、成本大。

基于機(jī)器學(xué)習(xí)技術(shù)的新一代web入侵檢測(cè)技術(shù)有望彌補(bǔ)傳統(tǒng)規(guī)則集方法的不足,為web對(duì)抗的防守端帶來(lái)新的發(fā)展和突破。機(jī)器學(xué)習(xí)方法能夠基于大量數(shù)據(jù)進(jìn)行自動(dòng)化學(xué)習(xí)和訓(xùn)練,已經(jīng)在圖像、語(yǔ)音、自然語(yǔ)言處理等方面廣泛應(yīng)用。然而,機(jī)器學(xué)習(xí)應(yīng)用于web入侵檢測(cè)也存在挑戰(zhàn),其中最大的困難就是標(biāo)簽數(shù)據(jù)的缺乏。盡管有大量的正常訪問(wèn)流量數(shù)據(jù),但web入侵樣本稀少,且變化多樣,對(duì)模型的學(xué)習(xí)和訓(xùn)練造成困難。因此,目前大多數(shù)web入侵檢測(cè)都是基于無(wú)監(jiān)督的方法,針對(duì)大量正常日志建立模型(Profile),而與正常流量不符的則被識(shí)別為異常。這個(gè)思路與攔截規(guī)則的構(gòu)造恰恰相反。攔截規(guī)則意在識(shí)別入侵行為,因而需要在對(duì)抗中“隨機(jī)應(yīng)變”;而基于profile的方法旨在建模正常流量,在對(duì)抗中“以不變應(yīng)萬(wàn)變”,且更難被繞過(guò)。

基于機(jī)器學(xué)習(xí)的web異常檢測(cè)

基于異常檢測(cè)的web入侵識(shí)別,訓(xùn)練階段通常需要針對(duì)每個(gè)url,基于大量正常樣本,抽象出能夠描述樣本集的統(tǒng)計(jì)學(xué)或機(jī)器學(xué)習(xí)模型(Profile)。檢測(cè)階段,通過(guò)判斷web訪問(wèn)是否與Profile相符,來(lái)識(shí)別異常。

通過(guò)判斷web訪問(wèn)是否與Profile相符,來(lái)識(shí)別異常

一、對(duì)于Profile的建立,主要有以下幾種思路:

1. 基于統(tǒng)計(jì)學(xué)習(xí)模型

基于統(tǒng)計(jì)學(xué)習(xí)的web異常檢測(cè),通常需要對(duì)正常流量進(jìn)行數(shù)值化的特征提取和分析。特征例如,URL參數(shù)個(gè)數(shù)、參數(shù)值長(zhǎng)度的均值和方差、參數(shù)字符分布、URL的訪問(wèn)頻率等等。接著,通過(guò)對(duì)大量樣本進(jìn)行特征分布統(tǒng)計(jì),建立數(shù)學(xué)模型,進(jìn)而通過(guò)統(tǒng)計(jì)學(xué)方法進(jìn)行異常檢測(cè)。

2. 基于文本分析的機(jī)器學(xué)習(xí)模型

Web異常檢測(cè)歸根結(jié)底還是基于日志文本的分析,因而可以借鑒NLP中的一些方法思路,進(jìn)行文本分析建模。這其中,比較成功的是基于隱馬爾科夫模型(HMM)的參數(shù)值異常檢測(cè)。

3. 基于單分類(lèi)模型

由于web入侵黑樣本稀少,傳統(tǒng)監(jiān)督學(xué)習(xí)方法難以訓(xùn)練。基于白樣本的異常檢測(cè),可以通過(guò)非監(jiān)督或單分類(lèi)模型進(jìn)行樣本學(xué)習(xí),構(gòu)造能夠充分表達(dá)白樣本的最小模型作為Profile,實(shí)現(xiàn)異常檢測(cè)。

4. 基于聚類(lèi)模型

通常正常流量是大量重復(fù)性存在的,而入侵行為則極為稀少。因此,通過(guò)web訪問(wèn)的聚類(lèi)分析,可以識(shí)別大量正常行為之外,小搓的異常行為,進(jìn)行入侵發(fā)現(xiàn)。

基于聚類(lèi)模型

二、基于統(tǒng)計(jì)學(xué)習(xí)模型

基于統(tǒng)計(jì)學(xué)習(xí)模型的方法,首先要對(duì)數(shù)據(jù)建立特征集,然后對(duì)每個(gè)特征進(jìn)行統(tǒng)計(jì)建模。對(duì)于測(cè)試樣本,首先計(jì)算每個(gè)特征的異常程度,再通過(guò)模型對(duì)異常值進(jìn)行融合打分,作為最終異常檢測(cè)判斷依據(jù)。

這里以斯坦福大學(xué)CS259D: Data Mining for CyberSecurity課程[1]為例,介紹一些行之有效的特征和異常檢測(cè)方法。

特征1:參數(shù)值value長(zhǎng)度

模型:長(zhǎng)度值分布,均值μ,方差σ2,利用切比雪夫不等式計(jì)算異常值p

參數(shù)值value長(zhǎng)度

特征2:字符分布

模型:對(duì)字符分布建立模型,通過(guò)卡方檢驗(yàn)計(jì)算異常值p

字符分布

特征3:參數(shù)缺失

模型:建立參數(shù)表,通過(guò)查表檢測(cè)參數(shù)錯(cuò)誤或缺失

特征4:參數(shù)順序

模型:參數(shù)順序有向圖,判斷是否有違規(guī)順序關(guān)系

參數(shù)順序

特征5:訪問(wèn)頻率(單ip的訪問(wèn)頻率,總訪問(wèn)頻率)

模型:時(shí)段內(nèi)訪問(wèn)頻率分布,均值μ,方差σ2,利用切比雪夫不等式計(jì)算異常值p

特征6:訪問(wèn)時(shí)間間隔

模型:間隔時(shí)間分布,通過(guò)卡方檢驗(yàn)計(jì)算異常值p

最終,通過(guò)異常打分模型將多個(gè)特征異常值融合,得到最終異常打分:

三、基于文本分析的機(jī)器學(xué)習(xí)模型

URL參數(shù)輸入的背后,是后臺(tái)代碼的解析,通常來(lái)說(shuō),每個(gè)參數(shù)的取值都有一個(gè)范圍,其允許的輸入也具有一定模式。比如下面這個(gè)例子:

基于文本分析的機(jī)器學(xué)習(xí)模型

例子中,綠色的代表正常流量,紅色的代表異常流量。由于異常流量和正常流量在參數(shù)、取值長(zhǎng)度、字符分布上都很相似,基于上述特征統(tǒng)計(jì)的方式難以識(shí)別。進(jìn)一步看,正常流量盡管每個(gè)都不相同,但有共同的模式,而異常流量并不符合。在這個(gè)例子中,符合取值的樣本模式為:數(shù)字_字母_數(shù)字,我們可以用一個(gè)狀態(tài)機(jī)來(lái)表達(dá)合法的取值范圍:

對(duì)文本序列模式的建模,相比較數(shù)值特征而言,更加準(zhǔn)確可靠。其中,比較成功的應(yīng)用是基于隱馬爾科夫模型(HMM)的序列建模,這里僅做簡(jiǎn)單的介紹,具體請(qǐng)參考推薦文章[2]。

基于HMM的狀態(tài)序列建模,首先將原始數(shù)據(jù)轉(zhuǎn)化為狀態(tài)表示,比如數(shù)字用N表示狀態(tài),字母用a表示狀態(tài),其他字符保持不變。這一步也可以看做是原始數(shù)據(jù)的歸一化(Normalization),其結(jié)果使得原始數(shù)據(jù)的狀態(tài)空間被有效壓縮,正常樣本間的差距也進(jìn)一步減小。

基于HMM的狀態(tài)序列建模

緊接著,對(duì)于每個(gè)狀態(tài),統(tǒng)計(jì)之后一個(gè)狀態(tài)的概率分布。例如,下圖就是一個(gè)可能得到的結(jié)果。“^”代表開(kāi)始符號(hào),由于白樣本中都是數(shù)字開(kāi)頭,起始符號(hào)(狀態(tài)^)轉(zhuǎn)移到數(shù)字(狀態(tài)N)的概率是1;接下來(lái),數(shù)字(狀態(tài)N)的下一個(gè)狀態(tài),有0.8的概率還是數(shù)字(狀態(tài)N),有0.1的概率轉(zhuǎn)移到下劃線,有0.1的概率轉(zhuǎn)移到結(jié)束符(狀態(tài)$),以此類(lèi)推。

利用這個(gè)狀態(tài)轉(zhuǎn)移模型,我們就可以判斷一個(gè)輸入序列是否符合白樣本的模式:

判斷一個(gè)輸入序列是否符合白樣本的模式

正常樣本的狀態(tài)序列出現(xiàn)概率要高于異常樣本,通過(guò)合適的閾值可以進(jìn)行異常識(shí)別。

四、基于單分類(lèi)模型

在二分類(lèi)問(wèn)題中,由于我們只有大量白樣本,可以考慮通過(guò)單分類(lèi)模型,學(xué)習(xí)單類(lèi)樣本的最小邊界,邊界之外的則識(shí)別為異常。

單分類(lèi)模型

這類(lèi)方法中,比較成功的應(yīng)用是單類(lèi)支持向量機(jī)(one-class SVM)。這里簡(jiǎn)單介紹該類(lèi)方法的一個(gè)成功案例McPAD的思路,具體方法關(guān)注文章[3]。

McPAD系統(tǒng)首先通過(guò)N-Gram將文本數(shù)據(jù)向量化,對(duì)于下面的例子,

McPAD系統(tǒng)首先通過(guò)N-Gram將文本數(shù)據(jù)向量化

首先通過(guò)長(zhǎng)度為N的滑動(dòng)窗口將文本分割為N-Gram序列,例子中,N取2,窗口滑動(dòng)步長(zhǎng)為1,可以得到如下N-Gram序列。

N-Gram序列

下一步要把N-Gram序列轉(zhuǎn)化成向量。假設(shè)共有256種不同的字符,那么會(huì)得到256*256種2-GRAM的組合(如aa, ab, ac … )。我們可以用一個(gè)256*256長(zhǎng)的向量,每一位one-hot的表示(有則置1,沒(méi)有則置0)文本中是否出現(xiàn)了該2-GRAM。由此得到一個(gè)256*256長(zhǎng)的0/1向量。進(jìn)一步,對(duì)于每個(gè)出現(xiàn)的2-Gram,我們用這個(gè)2-Gram在文本中出現(xiàn)的頻率來(lái)替代單調(diào)的“1”,以表示更多的信息:

至此,每個(gè)文本都可以通過(guò)一個(gè)256*256長(zhǎng)的向量表示。

現(xiàn)在我們得到了訓(xùn)練樣本的256*256向量集,現(xiàn)在需要通過(guò)單分類(lèi)SVM去找到最小邊界。然而問(wèn)題在于,樣本的維度太高,會(huì)對(duì)訓(xùn)練造成困難。我們還需要再解決一個(gè)問(wèn)題:如何縮減特征維度。特征維度約減有很多成熟的方法,McPAD系統(tǒng)中對(duì)特征進(jìn)行了聚類(lèi)達(dá)到降維目的。

2-Gram

上左矩陣中黑色表示0,紅色表示非零。矩陣的每一行,代表一個(gè)輸入文本(sample)中具有哪些2-Gram。如果換一個(gè)角度來(lái)看這個(gè)矩陣,則每一列代表一個(gè)2-Gram有哪些sample中存在,由此,每個(gè)2-Gram也能通過(guò)sample的向量表達(dá)。從這個(gè)角度我們可以獲得2-Gram的相關(guān)性。對(duì)于2-Gram的向量進(jìn)行聚類(lèi),指定的類(lèi)別數(shù)K即為約減后的特征維數(shù)。約減后的特征向量,再投入單類(lèi)SVM進(jìn)行進(jìn)一步模型訓(xùn)練。

再進(jìn)一步,McPAD采用線性特征約減加單分類(lèi)SVM的方法解決白模型訓(xùn)練的過(guò)程,其實(shí)也可以被深度學(xué)習(xí)中的深度自編碼模型替代,進(jìn)行非線性特征約減。同時(shí),自編碼模型的訓(xùn)練過(guò)程本身就是學(xué)習(xí)訓(xùn)練樣本的壓縮表達(dá),通過(guò)給定輸入的重建誤差,就可以判斷輸入樣本是否與模型相符。

我們還是沿用McPAD通過(guò)2-Gram實(shí)現(xiàn)文本向量化的方法,直接將向量輸入到深度自編碼模型,進(jìn)行訓(xùn)練。測(cè)試階段,通過(guò)計(jì)算重建誤差作為異常檢測(cè)的標(biāo)準(zhǔn)。

McPAD通過(guò)2-Gram實(shí)現(xiàn)文本向量化的方法

基于這樣的框架,異常檢測(cè)的基本流程如下,一個(gè)更加完善的框架可以參見(jiàn)文獻(xiàn)[4]。

異常檢測(cè)的基本流程

 

本文管中窺豹式的介紹了機(jī)器學(xué)習(xí)用于web異常檢測(cè)的幾個(gè)思路。web流量異常檢測(cè)只是web入侵檢測(cè)中的一環(huán),用于從海量日志中撈出少量的“可疑”行為,但是這個(gè)“少量”還是存在大量誤報(bào),只能用于檢測(cè),還遠(yuǎn)遠(yuǎn)不能直接用于WAF直接攔截。一個(gè)完備的web入侵檢測(cè)系統(tǒng),還需要在此基礎(chǔ)上進(jìn)行入侵行為識(shí)別,以及告警降誤報(bào)等環(huán)節(jié)。

責(zé)任編輯:趙寧寧 來(lái)源: 黑吧安全網(wǎng)
相關(guān)推薦

2018-09-17 15:30:05

機(jī)器學(xué)習(xí)密度異常值

2019-06-25 10:09:42

Web攻擊機(jī)器學(xué)習(xí)網(wǎng)絡(luò)攻擊

2024-06-06 08:00:00

2020-05-13 11:10:32

安全 機(jī)器學(xué)習(xí)數(shù)據(jù)

2022-09-21 23:41:40

機(jī)器學(xué)習(xí)開(kāi)源數(shù)據(jù)

2020-07-24 10:52:45

人工智能

2023-06-09 13:07:56

Web機(jī)器學(xué)習(xí)瀏覽器

2021-10-22 09:40:59

開(kāi)源技術(shù) 工具

2013-10-29 15:17:41

2022-10-26 15:41:38

深度學(xué)習(xí)Deepfake機(jī)器學(xué)習(xí)

2018-08-30 14:58:12

機(jī)器學(xué)習(xí)磁盤(pán)故障

2012-11-02 11:37:28

2024-02-29 13:12:30

2019-12-30 09:41:59

機(jī)器學(xué)習(xí)人工智能計(jì)算機(jī)

2015-10-12 10:37:42

學(xué)習(xí)算法檢測(cè)

2024-11-04 08:14:48

2017-05-02 15:50:49

2017-04-14 08:33:47

2023-09-27 07:56:25

2022-05-16 12:06:00

機(jī)器學(xué)習(xí)深度學(xué)習(xí)模型
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)