国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > WEB開發(fā) > 正文

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

2024-04-27 15:14:55
字體:
供稿:網(wǎng)友

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

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

基于異常檢測(cè)的web入侵識(shí)別,訓(xùn)練階段通常需要針對(duì)每個(gè)url,基于大量正常樣本,抽象出能夠描述樣本集的統(tǒng)計(jì)學(xué)或機(jī)器學(xué)習(xí)模型(Profile)。檢測(cè)階段,通過判斷web訪問是否與Profile相符,來識(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ù)值長度的均值和方差、參數(shù)字符分布、URL的訪問頻率等等。接著,通過對(duì)大量樣本進(jìn)行特征分布統(tǒng)計(jì),建立數(shù)學(xué)模型,進(jìn)而通過統(tǒng)計(jì)學(xué)方法進(jìn)行異常檢測(cè)。

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

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

3. 基于單分類模型

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

4. 基于聚類模型

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

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

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

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

特征1:參數(shù)值value長度 模型:長度值分布,均值μ,方差σ2,利用切比雪夫不等式計(jì)算異常值p

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

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

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

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

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

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

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

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

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

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

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

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

基于單分類模型

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

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

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

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

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

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

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

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

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

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

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

本文管中窺豹式的介紹了機(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é)。

2017阿里聚安全算法挑戰(zhàn)賽將收集從網(wǎng)上真實(shí)訪問流量中提取的URL,經(jīng)過脫敏和混淆處理,讓選手利用機(jī)器學(xué)習(xí)算法提高檢測(cè)精度,真實(shí)體驗(yàn)這一過程。并有機(jī)會(huì)獲得30萬元獎(jiǎng)金,奔赴加拿大參加KDD—-國際最負(fù)盛名的數(shù)據(jù)挖掘會(huì)議!

報(bào)名地址:https://tianchi.shuju.aliyun.com/mini/alibabajaq.htm

推薦閱讀 1. CS259D: Data Mining for CyberSecurity, 課程網(wǎng)址:http://web.stanford.edu/class/cs259d/ 2. 楚安,數(shù)據(jù)科學(xué)在Web威脅感知中的應(yīng)用,http://www.jianshu.com/p/942d1beb7fdd 3. McPAD : A Multiple Classifier System for Accurate Payload-based Anomaly Detection, Roberto Perdisci 4. AI2 : Training a big data machine to defend, Kalyan Veeramachaneni

作者:七雨@阿里聚安全,更多阿里安全類技術(shù)文章,請(qǐng)?jiān)L問阿里聚安全博客


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 平潭县| 甘孜| 邹平县| 富民县| 阿拉善盟| 山阳县| 万州区| 双柏县| 阳曲县| 道孚县| 金川县| 天气| 兴和县| 山阴县| 密云县| 安国市| 台湾省| 广元市| 祥云县| 上犹县| 革吉县| 天全县| 驻马店市| 威海市| 会泽县| 垦利县| 定日县| 武宣县| 岳阳市| 浮山县| 高邮市| 唐山市| 东乡族自治县| 湘乡市| 清河县| 无锡市| 楚雄市| 进贤县| 郯城县| 乐业县| 西城区|