0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

攜程信息安全部在web攻擊識(shí)別方面的機(jī)器學(xué)習(xí)實(shí)踐之路

8g3K_AI_Thinker ? 2018-01-16 10:24 ? 次閱讀

背景

通俗地講,任何一個(gè)的機(jī)器學(xué)習(xí)問題都可以等價(jià)于一個(gè)尋找合適變換函數(shù)的問題。例如語(yǔ)音識(shí)別,就是在求取合適的變換函數(shù),將輸入的一維時(shí)序語(yǔ)音信號(hào)變換到語(yǔ)義空間;而近來引發(fā)全民關(guān)注的圍棋人工智能AlphaGo則是將輸入的二維布局圖像變換到?jīng)Q策空間以決定下一步的最優(yōu)走法;相應(yīng)的,人臉識(shí)別也是在求取合適的變換函數(shù),將輸入的二維人臉圖像變換到特征空間,從而唯一確定對(duì)應(yīng)人的身份。

在web應(yīng)用攻擊檢測(cè)的發(fā)展歷史中,到目前為止,基本是依賴于規(guī)則的黑名單檢測(cè)機(jī)制,無論是web應(yīng)用防火墻或ids等等,主要依賴于檢測(cè)引擎內(nèi)置的正則,進(jìn)行報(bào)文的匹配。雖說能夠抵御絕大部分的攻擊,但我們認(rèn)為其存在以下幾個(gè)問題:

規(guī)則庫(kù)維護(hù)困難,人員交接工作,甚至?xí)r間一長(zhǎng),原作者都很難理解當(dāng)初寫的規(guī)則,一旦有誤報(bào)發(fā)生,上線修改都很困難。

規(guī)則寫的太寬泛易誤殺,寫的太細(xì)易繞過。

例如一條檢測(cè)sql注入的正則語(yǔ)句如下:

Stringinj_str = “’|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare|;|or|-|+|,”;

一條正常的評(píng)論,“我在selected買的襯衫臟了”,遭到誤殺。

正則引擎嚴(yán)重影響性能,尤其是正則條數(shù)過多時(shí),比如我們之前就遇到kafka中待檢測(cè)流量嚴(yán)重堆積的現(xiàn)象。

那么該如何解決以上問題呢?尤其在大型互聯(lián)網(wǎng)公司,如何在海量請(qǐng)求中又快又準(zhǔn)地識(shí)別出惡意攻擊請(qǐng)求,成為擺在我們面前的一道難題。

近來機(jī)器學(xué)習(xí)在信息安全方面的應(yīng)用引起了人們的大量關(guān)注,我們認(rèn)為信息安全領(lǐng)域任何需要對(duì)數(shù)據(jù)進(jìn)行處理,做出分析預(yù)測(cè)的地方都可以用到機(jī)器學(xué)習(xí)。本文將介紹攜程信息安全部在web攻擊識(shí)別方面的機(jī)器學(xué)習(xí)實(shí)踐之路。

惡意攻擊檢測(cè)系統(tǒng)nile架構(gòu)介紹

攜程信息安全部在web攻擊識(shí)別方面的機(jī)器學(xué)習(xí)實(shí)踐之路

圖1: 攜程nile 攻擊檢測(cè)系統(tǒng)架構(gòu)第一版

首先我們簡(jiǎn)單介紹一下攜程攻擊檢測(cè)系統(tǒng)nile的最初架構(gòu),如上圖1所示,我們?cè)诹髁窟M(jìn)入規(guī)則引擎(這里指正則匹配引擎)之前,先用白名單過濾掉大于97%的正常流量(我們認(rèn)為如http://ctrip.com/flight?Search?key=value,只要value參數(shù)值里面沒有英文標(biāo)點(diǎn)和控制字符的都是“正常流量”,另外還有攜程的出口ip流量等等)。

剩下的3%流量過正則規(guī)則引擎,如果結(jié)果為黑(惡意攻擊),就會(huì)發(fā)到漏洞自動(dòng)化驗(yàn)證系統(tǒng)hulk(hulk介紹可以參考https://zhuanlan.zhihu.com/p/28115732),例如調(diào)用sqlmap去重放流量,復(fù)驗(yàn)攻擊者能否真的攻擊成功。

目前nile系統(tǒng)我們改進(jìn)到了第五版,架構(gòu)如下圖2,其中最重要的改變是在規(guī)則引擎之前加入了spark機(jī)器學(xué)習(xí)引擎,目前使用的是spark mllib庫(kù)來建模和預(yù)測(cè)。如果機(jī)器學(xué)習(xí)引擎為黑,則會(huì)繼續(xù)拋給正則規(guī)則引擎做二次檢查,若復(fù)驗(yàn)依然為黑,則會(huì)拋給hulk漏洞驗(yàn)證系統(tǒng)。

攜程信息安全部在web攻擊識(shí)別方面的機(jī)器學(xué)習(xí)實(shí)踐之路

圖2:攜程nile 攻擊檢測(cè)系統(tǒng)架構(gòu)最新版

這么做帶來了以下好處:

機(jī)器學(xué)習(xí)的處理速度比較快,能夠過濾掉大部分流量再扔給正則引擎。解決了過去正則導(dǎo)致kafka堆積嚴(yán)重的問題(即使是原始流量中的3%也存在此問題)。

可以對(duì)比正則引擎和機(jī)器學(xué)習(xí)引擎的結(jié)果,互相查缺補(bǔ)漏。例如我們可以發(fā)現(xiàn)正則的漏報(bào)或誤報(bào),手工修改或補(bǔ)充已有的正則庫(kù)。若是機(jī)器學(xué)習(xí)誤報(bào),白流量識(shí)別為黑,首先想到的是否黑樣本不純,另外就是特征提取有問題。

如果機(jī)器學(xué)習(xí)漏報(bào),那怎么辦呢?按圖2的流程我們根本不知道我們漏報(bào)了哪些。最直接的想法就是并列機(jī)器學(xué)習(xí)引擎和正則引擎,來查缺補(bǔ)漏,但這樣違背了我們追求效率的前提。

最近的一個(gè)版本我們加入了動(dòng)態(tài)ip黑名單,時(shí)間窗口內(nèi)多次命中的的高風(fēng)險(xiǎn)ip重點(diǎn)關(guān)注,直接忽略storm白名單。在實(shí)踐中,我們借鑒了此部分黑ip的流量來補(bǔ)充我們的學(xué)習(xí)樣本(黑ip的流量99%以上都是攻擊流量),我們發(fā)現(xiàn)了referer,ua注入等,其他還發(fā)現(xiàn)了其他邏輯攻擊的痕跡,比如訂單遍歷等等。

有人可能會(huì)問,根據(jù)上面的架構(gòu),如果對(duì)方拿新流出的攻擊poc來攻擊你,只攻擊1次,那不是檢測(cè)不出來了么?首先如果poc中還是有很多的特殊英文標(biāo)點(diǎn)和敏感單詞的話,我們還是能檢測(cè)出來的;另一種情況如果真的漏了,那怎么辦,這時(shí)候只能人肉寫新的正則加入檢測(cè)邏輯中,如圖2中我們加入了“規(guī)則引擎(新上規(guī)則)”直接進(jìn)行檢測(cè),經(jīng)過不斷的打標(biāo)簽吐到es日志,新型攻擊的日志又可以作為學(xué)習(xí)用的黑樣本了,如此循環(huán)。

加入機(jī)器學(xué)習(xí)前后的效果對(duì)比:kafka消費(fèi)流量:1萬/分鐘->400萬+,白名單之后的檢測(cè)量:1萬/分鐘->10萬+。

我們?cè)O(shè)置了一分鐘一個(gè)批次消費(fèi),每分鐘有10萬+數(shù)據(jù)從storm過來,只花了10秒鐘左右處理完,所以如果我們縮短消費(fèi)批次窗口,理論上還可以提高5-6倍的吞吐,如下圖3。

攜程信息安全部在web攻擊識(shí)別方面的機(jī)器學(xué)習(xí)實(shí)踐之路

圖3:新架構(gòu)下storm處理速度

我們先看一個(gè)機(jī)器學(xué)習(xí)的識(shí)別結(jié)果,如下圖4:

攜程信息安全部在web攻擊識(shí)別方面的機(jī)器學(xué)習(xí)實(shí)踐之路

圖4:機(jī)器學(xué)習(xí)es記錄日志

rule_result標(biāo)簽是正則的識(shí)別結(jié)果,由于當(dāng)時(shí)我們沒有添加struts2攻擊的正則,但是由ES日志結(jié)果可知,機(jī)器學(xué)習(xí)引擎依然檢測(cè)出了攻擊。

介紹了完了架構(gòu),回歸機(jī)器學(xué)習(xí)本身,下面將介紹如何建立一個(gè)web攻擊檢測(cè)的機(jī)器學(xué)習(xí)模型。而一般來講,應(yīng)用機(jī)器學(xué)習(xí)解決實(shí)際問題分為以下4個(gè)步驟:

定義目標(biāo)問題

收集數(shù)據(jù)和特征工程

訓(xùn)練模型和評(píng)估模型效果

線上應(yīng)用和持續(xù)優(yōu)化

定義目標(biāo)問題

核心的目標(biāo)問題:

二分類問題,預(yù)測(cè)流量是攻擊或者正常

漏報(bào)率必須<10%以上(在這里,我們認(rèn)為漏報(bào)比誤報(bào)問題更嚴(yán)重,誤報(bào)我們還可以通過第二層的正則引擎去糾正)

模型預(yù)測(cè)速度必須快,例如knn最近鄰這種帶排序的算法被我們剔除在外

機(jī)器學(xué)習(xí)應(yīng)用于信息安全領(lǐng)域,第一道難關(guān)就是標(biāo)簽數(shù)據(jù)的缺乏,得益于我們的ES日志中已有正則打上標(biāo)簽的真實(shí)生產(chǎn)流量,所以這里我們決定使用基于監(jiān)督學(xué)習(xí)的二分類來建模。監(jiān)督學(xué)習(xí)的目的是通過學(xué)習(xí)許多有標(biāo)簽的樣本,然后對(duì)新的數(shù)據(jù)做出預(yù)測(cè)。當(dāng)然也有人提出過無監(jiān)督的思路,建立正常流量模型,不符合模型的都識(shí)別為惡意,比如使用聚類分析,本文不做進(jìn)一步討論。

沒有一個(gè)機(jī)器學(xué)習(xí)模型可以解決所有的問題, 我們可以借鑒前人的經(jīng)驗(yàn),比如貝葉斯適用垃圾郵件識(shí)別,HMM適用語(yǔ)音識(shí)別。具體的算法對(duì)比可參考https://s3-us-west-2.amazonaws.com/mlsurveys/54.pdf

明確了我們需要達(dá)到的目標(biāo),下面開始考慮“收集數(shù)據(jù)和特征工程 ”,也是我們認(rèn)為模型成敗最關(guān)鍵的一步。

收集數(shù)據(jù)和特征工程

我們寫段腳本,分別按天分時(shí)間段取ES黑白數(shù)據(jù),并將其分開存儲(chǔ),再加上自研waf的告警日志,以及網(wǎng)上收集的poc,至此我們的訓(xùn)練原始材料準(zhǔn)備好了 。另外特別需要注意的是:get請(qǐng)求和post請(qǐng)求我們分開提取特征,分開建模,至于為什么請(qǐng)讀者自行思考。

一開始本地實(shí)驗(yàn)時(shí),我是選用的python的sklearn庫(kù),訓(xùn)練樣本黑白數(shù)據(jù)分別為10w+條數(shù)據(jù),達(dá)到1比1的平衡占比。項(xiàng)目上線的時(shí)候,我們采用的是spark mllib來做的。本文為了介紹方便,還是以python+sklean來進(jìn)行介紹。

再來聊聊“特征工程”。我們認(rèn)為“特征工程”是機(jī)器模型中最重要的一部分,其更像是一門藝術(shù),往往依賴于專家的“直覺”和專業(yè)領(lǐng)域經(jīng)驗(yàn),更甚者有人調(diào)侃機(jī)器學(xué)習(xí)其實(shí)就是特征工程。你能相信一個(gè)從來不看NBA的人建模出來的NBA總決賽預(yù)測(cè)結(jié)果模型么?

限于篇幅,這里主要介紹我們認(rèn)為項(xiàng)目中比較重要的“特征工程”的步驟:

特征提煉:

核心需求:從訓(xùn)練數(shù)據(jù)中提取哪些有效信息,需要這些信息如何組織?

我們觀察一下ES日志中攻擊語(yǔ)句和正常語(yǔ)句的區(qū)別,如下:

攻擊語(yǔ)句:flights.ctrip.com/Process/checkinseat/index?tpl_content=&name=test404.php&dir=index/../../../..¤t_dir=tpl

正常語(yǔ)句:flights.ctrip.com/Process/checkinseat/index?tpl_content=hello,world!

明顯我們看到攻擊語(yǔ)句里面最明顯的特征是,含有eval, ../等字符、標(biāo)點(diǎn),而正常語(yǔ)句我們看到含有英文逗號(hào),感嘆號(hào)等等,所以我們可以將例如eval的個(gè)數(shù)列出來作為一個(gè)特征維度。在實(shí)際處理中我們忽略了uri,只取value參數(shù)中的值來提特征。比如上面的2條語(yǔ)句flights.ctrip.com/Process/checkinseat/index?tpl_content部分都被我們忽略了。

defget_evil_eval(url):

returnlen(re.findall("(eval)",url,re.IGNORECASE))

如果不存在value,例如是敏感目錄猜測(cè)攻擊,那怎么辦,我們的做法是分開對(duì)待,剔除掉例如flights.ctrip.com等無效數(shù)據(jù),取整個(gè)uri來提特征。

假設(shè)我們規(guī)定取5種特征,分別是script,eval,單引號(hào),雙引號(hào),左括號(hào)的個(gè)數(shù),那么上面攻擊語(yǔ)句就轉(zhuǎn)換為[0,1,0,0,2]

最后我們得到一個(gè)攻擊語(yǔ)句的特征是5維的,打上標(biāo)簽label=1 ,正常流量label=0做區(qū)分。這樣,一個(gè)請(qǐng)求就轉(zhuǎn)換成一個(gè)1*n的矩陣,m個(gè)訓(xùn)練樣本就是m*n的輸入建模。

但是上線了第一版后,雖然消息隊(duì)列消費(fèi)速度大幅提升,識(shí)別率也基本都還可以,但我們還是放棄了這種正則匹配語(yǔ)句的特征提取方法,這里說下原因:

這樣用正則來提取特征,總會(huì)有遺漏的關(guān)鍵詞,又會(huì)陷入查缺補(bǔ)漏的怪圈

優(yōu)化特征較麻煩,例如加上某個(gè)特征維度后,會(huì)增加誤報(bào),去掉后又會(huì)增加漏報(bào)

預(yù)測(cè)的時(shí)候,還是要將請(qǐng)求語(yǔ)句過一遍正則,轉(zhuǎn)化為數(shù)字向量特征,降低了引擎效率

我們得到了使用機(jī)器學(xué)習(xí)來做情感二分類的啟發(fā),查證了資料1https://github.com/jeonglee/ML后,決定替換掉正則提取特征的方式,采用tfidf來提取特征。

我們認(rèn)為本質(zhì)上情感二分類和黑白流量分類是比較相似的問題,前者是給出一句話例如“Tom,you are not a good boy!”來判斷是否正面評(píng)價(jià),而我們的語(yǔ)句中沒那么多正面或負(fù)面的情感詞,更多的是英文標(biāo)點(diǎn)和和一些疑似高危詞語(yǔ)如select,那我們概念替換一下,高危英文標(biāo)點(diǎn)是否就像是負(fù)面情感詞,其他詞就像是中性詞,從而我們的問題就變成了二分類“中性語(yǔ)句和惡意語(yǔ)句”。

這里簡(jiǎn)單介紹下tfidf,更詳盡的可以參考https://en.wikipedia.org/wiki/Tfidf。

例如我們有1000條get請(qǐng)求語(yǔ)句,第一條語(yǔ)句共計(jì)10個(gè)單詞,其中單引號(hào)有3個(gè),from也有3個(gè)。1000條語(yǔ)句中有10條語(yǔ)句包含單引號(hào),100條包含from,tfidf計(jì)算如下(在進(jìn)行tfidf計(jì)算之前,我們需要對(duì)句子中的標(biāo)點(diǎn)和特殊字符做處理,比如轉(zhuǎn)為string類型,具體參考資料1):

攜程信息安全部在web攻擊識(shí)別方面的機(jī)器學(xué)習(xí)實(shí)踐之路

計(jì)算結(jié)果:?jiǎn)我?hào)的tfidf=0.587 > from的tfidf=0.3318

TFIDF的主要思想是:如果某個(gè)詞或短語(yǔ)在一篇文章中出現(xiàn)的頻率,并且在其他文章中很少出現(xiàn),則認(rèn)為此詞或者短語(yǔ)具有很好的類別區(qū)分能力,適合用來分類。這里和我們的大腦判斷基本一致,單引號(hào)的tfidf值對(duì)比之下更大,比from更能代表一句話是否是攻擊語(yǔ)句。

代碼demo如下:

攜程信息安全部在web攻擊識(shí)別方面的機(jī)器學(xué)習(xí)實(shí)踐之路

之所以取ngram_range={1,3},是因?yàn)槲覀兿氡4媲昂髥卧~間的順序關(guān)系作為特征的一部分,例如前面的“Tom,you are not a good boy!”中的一個(gè)維度特征是[not, a , good],然后計(jì)算得到這個(gè)“集合詞”的tfidf 。當(dāng)然你可以基于char來取特征,具體的參數(shù)取值寬度都需要實(shí)驗(yàn)來證明哪一種效果最好。至于去停用詞,標(biāo)點(diǎn)怎么轉(zhuǎn)換等等,大家可以參考https://github.com/jeonglee/ML/blob/master/spark/NaiveBayes/src/main/java/WordParser.java,這里就不贅述。

樣本數(shù)據(jù)清洗:

雖然我們已經(jīng)明確了如何提取特征,建模貌似也ok了,這時(shí)我們問自己一個(gè)問題:訓(xùn)練數(shù)據(jù)覆蓋率怎么樣,原始訓(xùn)練數(shù)據(jù)的標(biāo)簽是否準(zhǔn)確?如果我們本身的訓(xùn)練樣本就不純凈,結(jié)果一定也不盡如人意。下面說一下我們?cè)跇颖厩逑粗凶鲞^的工作:

優(yōu)化已有的檢測(cè)正則:當(dāng)打開white.txt和black.txt,我們?nèi)庋塾^察了一下,發(fā)現(xiàn)不少的錯(cuò)誤歸類,所以說明我們的正則引擎本身就存在優(yōu)化的需要。

加入動(dòng)態(tài)ip黑名單,收集其攻擊日志,加入黑樣本。經(jīng)過我們觀察,發(fā)現(xiàn)這種持續(xù)拿掃描器掃描的ip,其黑流量占比99%以上

關(guān)于白樣本,我們可以直接按時(shí)間段取原始流量作為白樣本數(shù)據(jù),因?yàn)楫吘拱讟颖菊肩R像流量的99.99%以上

樣本去重,相同請(qǐng)求內(nèi)容語(yǔ)句進(jìn)行去重

一些加密請(qǐng)求,根據(jù)參數(shù)名稱,從樣本中剔除

自建黑詞庫(kù),放到白樣本去中去匹配是否命中詞庫(kù)內(nèi)容,查找標(biāo)簽明顯錯(cuò)誤的樣本。舉個(gè)例子,建立一個(gè)黑詞庫(kù)[base64_decode, onglcontext, img script, struts2....],然后放到白樣本里去查找匹配中的句子,剔除之。其實(shí)這種方法可應(yīng)用的地方很多,例如旅游業(yè)的機(jī)器人客服,就可以用酒店的關(guān)鍵詞去火車票的樣本中去清洗數(shù)據(jù),我們也是受此啟發(fā)。

特征清洗大概占我們工作量的60%以上,也是不可避免的持續(xù)優(yōu)化的過程,屬于體力活,無法避免。

特征歸一化:由于這里我們采取了tfidf,所以這里就沒有使用歸一化處理了,因?yàn)樵~頻tf就帶了防止偏向長(zhǎng)句子的歸一化效果。這里再提一下,如果用第一版正則取特征的方式就必須使用特征歸一化,具體原因和歸一化介紹請(qǐng)參考http://blog.csdn.net/leiting_imecas/article/details/54986045 。

訓(xùn)練模型和評(píng)估模型效果

初步評(píng)判sklearn訓(xùn)練模型很簡(jiǎn)單,這里我們交叉訓(xùn)練下,拿50%的數(shù)據(jù)訓(xùn)練,50%的數(shù)據(jù)做測(cè)試,看下效果是否符合預(yù)期。

如果此時(shí)交叉訓(xùn)練的結(jié)果不盡如人意,一般原因有3個(gè),且一般是下列第一、二種原因?qū)е缕x預(yù)期結(jié)果較遠(yuǎn),我們認(rèn)為算法只是錦上添花,特征工程和樣本的質(zhì)量才是準(zhǔn)確率高低的關(guān)鍵。

特征提取有問題,這個(gè)沒辦法,完全基于個(gè)人特定范圍的知識(shí)領(lǐng)域經(jīng)驗(yàn)

訓(xùn)練樣本有問題,錯(cuò)誤標(biāo)簽較多,或者樣本不平衡

算法和選取的訓(xùn)練參數(shù)需要優(yōu)化

前面2個(gè)都介紹過了,下面我們講一下參數(shù)如何優(yōu)化,這里我們介紹使用sklearn里面的GridSearchCV,其基本原理是系統(tǒng)地遍歷多種參數(shù)組合,通過交叉驗(yàn)證確定最佳效果參數(shù),參考官方使用示例http://scikit-learn.org/dev/modules/generated/sklearn.grid_search.GridSearchCV.html。

交叉訓(xùn)練達(dá)到心理預(yù)期之后,我們就將訓(xùn)練得到的本地模型存儲(chǔ)到硬盤上,方便下次直接load使用。

訓(xùn)練和在線預(yù)測(cè)的demo代碼如下,首先我們將黑白樣本存儲(chǔ)在trainData.csv,分別存在uri和label標(biāo)簽下,

攜程信息安全部在web攻擊識(shí)別方面的機(jī)器學(xué)習(xí)實(shí)踐之路

圖5:訓(xùn)練樣本數(shù)據(jù)csv存儲(chǔ)格式

攜程信息安全部在web攻擊識(shí)別方面的機(jī)器學(xué)習(xí)實(shí)踐之路

此時(shí),如果用已知標(biāo)簽的驗(yàn)證數(shù)據(jù)來評(píng)估我們的機(jī)器學(xué)習(xí)模型,我們推薦使用混淆矩陣作為評(píng)判標(biāo)準(zhǔn),

#expected是標(biāo)簽值,predicted是模型預(yù)測(cè)的結(jié)果

print("Confusionmatrix:\n%s"%metrics.confusion_matrix(expected,predicted))

輸出:

Confusion matrix:

[[ 1 0]

[ 4226 65867]]

大概解釋下混淆矩陣的結(jié)果:

真實(shí)情況 預(yù)測(cè)結(jié)果
正例 反例
正例 TP,實(shí)際為正預(yù)測(cè)為正 FN,實(shí)際為正預(yù)測(cè)為負(fù)
反例 FP,實(shí)際為負(fù)預(yù)測(cè)為正 TN,實(shí)際為負(fù)預(yù)測(cè)為負(fù)

由于此次我們的驗(yàn)證數(shù)據(jù)集只有1條正常流量,所以我們看到FN為0 。我們更關(guān)心惡意流量被識(shí)別為正常流量的情況(漏報(bào)),我們看到這里漏報(bào)達(dá)到4226條,如果要計(jì)算漏報(bào)率,可以使用以下指標(biāo)

print("Classificationreportforclassifier%s:\n%s\n"%(model,metrics.classification_report(expected,predicted)))

輸出:

召回率:Recall=TP/ (TP+FN)

準(zhǔn)確率:Accuracy=(TP+TN)/ (TP+FP+TN+FN)

精準(zhǔn)率:Precision=TP/ (TP+FP) ,

f1-score是召回率和準(zhǔn)確率的調(diào)和平均數(shù),并假設(shè)兩者一樣重要,計(jì)算公式:

f1-score=(2*Recall*Accuracy) / (Recall+Accuracy)

很明顯,我們這里的召回率0.94,代表我們的漏報(bào)率為6%,勉強(qiáng)屬于可接納的范圍內(nèi),還需持續(xù)優(yōu)化。

線上應(yīng)用和持續(xù)優(yōu)化

線上應(yīng)用,也就是將建好的模型嵌入到我們已有的nile框架中去,且需要設(shè)置好一鍵開關(guān)機(jī)器學(xué)習(xí)引擎,還有正則的一鍵開關(guān),對(duì)于某些經(jīng)常漏報(bào)的就直接先進(jìn)正則引擎了,當(dāng)然正則個(gè)數(shù)需要約束,不然又走回了正則檢測(cè)的死胡同了。后面我們就需要持續(xù)的觀察輸出,不斷的自動(dòng)化補(bǔ)充規(guī)則,自動(dòng)訓(xùn)練新的模型。

參考前面提到的nile框架,目前遇到的最大的問題:我們?nèi)绾蚊鎸?duì)遺漏了的攻擊流量,是否可接受這部分風(fēng)險(xiǎn)。目前還沒有想到一個(gè)好的方案。

歸根結(jié)底,我們還是認(rèn)為特征提取是對(duì)模型準(zhǔn)確率影響最大的因素,特征工程是一個(gè)臟活累活,花在上面的時(shí)間遠(yuǎn)遠(yuǎn)大于其他步驟,對(duì)工程師的要求更高,往往要求大量的專業(yè)知識(shí)經(jīng)驗(yàn)和敏銳的直覺,外加一些“靈感”??梢赃@樣說,好特征即使配上較差的算法或參數(shù),依然可以獲得較好的結(jié)果。因?yàn)楹玫奶卣骶鸵馕吨x現(xiàn)實(shí)問題的本質(zhì)更加接近。另外就缺一個(gè)勤勤懇懇洗數(shù)據(jù)的工程師了。

未來展望

目前我們?cè)跈C(jī)器學(xué)習(xí)方面的信息安全應(yīng)用還存在以下可以更進(jìn)一步的地方:

對(duì)非標(biāo)準(zhǔn)的json,xml數(shù)據(jù)包的判斷,因?yàn)檫@些數(shù)據(jù)中內(nèi)容長(zhǎng),標(biāo)點(diǎn)多,且有的是非標(biāo)準(zhǔn)結(jié)構(gòu),例如json結(jié)構(gòu)體無法順利拆開,造成預(yù)測(cè)結(jié)果有誤差。

加入多分類,可以識(shí)別出不同web攻擊的類型,從而更好的和hulk結(jié)合。

在其他方面的應(yīng)用,例如隨機(jī)域名檢測(cè),ugc惡意評(píng)論,色情圖片識(shí)別等等,目前這方面我們也已經(jīng)陸續(xù)展開了實(shí)踐。

將spark mllib庫(kù)替換為spark ml庫(kù)。

最后一句話總結(jié),路才剛剛開始。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Web
    Web
    +關(guān)注

    關(guān)注

    2

    文章

    1284

    瀏覽量

    70887
  • 安防
    +關(guān)注

    關(guān)注

    10

    文章

    2276

    瀏覽量

    63770
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8493

    瀏覽量

    134161

原文標(biāo)題:機(jī)器學(xué)習(xí)在web攻擊檢測(cè)中的應(yīng)用實(shí)踐

文章出處:【微信號(hào):AI_Thinker,微信公眾號(hào):人工智能頭條】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 0人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    用防火墻封阻應(yīng)用攻擊的八項(xiàng)指標(biāo)

    信息未加密的前提下通過網(wǎng)絡(luò)傳輸,你就需要在流量發(fā)送到Web服務(wù)器之前重新進(jìn)行加密的解決方案。   URL過濾   一旦應(yīng)用流量呈明文格式,就必須檢測(cè)HTTP請(qǐng)求的URL部分,尋找惡意攻擊
    發(fā)表于 06-09 09:44

    專家呼吁:網(wǎng)絡(luò)安全建設(shè)亟需開放與合作

    際組織合作方面的一大進(jìn)步,同時(shí)也為提高國(guó)內(nèi)站點(diǎn)防范能力跨出了一大步。有業(yè)內(nèi)專家認(rèn)為,防范和應(yīng)對(duì)來自國(guó)際上的威脅時(shí),與國(guó)際組織的合作更是明智的選擇。 “網(wǎng)絡(luò)安全的責(zé)任需要大家來承擔(dān)?;ヂ?lián)網(wǎng)信息
    發(fā)表于 09-29 00:04

    針對(duì)非接觸式安全微控制器的攻擊方式及防范措施

    進(jìn)行存取操作。這一被稱作“存儲(chǔ)器轉(zhuǎn)儲(chǔ)”的方法,已經(jīng)發(fā)展成故障攻擊的一種有趣的變體。受到故障誘導(dǎo)攻擊之后,安全控制器不僅給出非保密的識(shí)別數(shù)據(jù)
    發(fā)表于 12-05 09:54

    AI:對(duì)物聯(lián)網(wǎng)安全的影響

    的對(duì)抗性示例。對(duì)抗性示例是有效的輸入數(shù)據(jù),它將導(dǎo)致機(jī)器學(xué)習(xí)模型誤解。例如,如果我們安全危急情況下考慮道路標(biāo)志分類,這種看似良性的攻擊可能會(huì)
    發(fā)表于 05-29 10:47

    決策樹機(jī)器學(xué)習(xí)的理論學(xué)習(xí)實(shí)踐

    決策樹機(jī)器學(xué)習(xí)的理論學(xué)習(xí)實(shí)踐
    發(fā)表于 09-20 12:48

    的 Dubbo 之路

    新服務(wù)框架,第一步就是解決服務(wù)治理和監(jiān)控這兩個(gè)問題。服務(wù)治理服務(wù)治理這方面,現(xiàn)有的 SOA 框架已經(jīng)有了一套完整的服務(wù)注冊(cè)中心和服務(wù)治理系統(tǒng)。對(duì)于服務(wù)注冊(cè)中心,大家比較常用的可能
    發(fā)表于 10-12 15:05

    關(guān)于Docker的實(shí)踐分析

    從去年底開始,開始計(jì)劃把Docker引入到的云平臺(tái),這是系統(tǒng)研發(fā)部一部分的工作任務(wù),
    發(fā)表于 10-11 15:39 ?0次下載
    關(guān)于<b class='flag-5'>攜</b><b class='flag-5'>程</b>Docker的<b class='flag-5'>實(shí)踐</b>分析

    機(jī)器學(xué)習(xí)簡(jiǎn)單運(yùn)用方面的基礎(chǔ)知識(shí)

    了有關(guān)他們機(jī)器學(xué)習(xí)(Machine Learning)方面的戰(zhàn)略,以及在哪些方面運(yùn)用了機(jī)器
    發(fā)表于 11-15 11:41 ?1503次閱讀
    <b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>簡(jiǎn)單運(yùn)用<b class='flag-5'>方面的</b>基礎(chǔ)知識(shí)

    Web應(yīng)用安全評(píng)估

    相關(guān)資源軟件攻擊面的形式化描述方法,構(gòu)造了基于軟件攻擊面的攻擊圖模型,在此基礎(chǔ)上,實(shí)現(xiàn)對(duì)Web應(yīng)用的安全評(píng)估。本文構(gòu)造的
    發(fā)表于 12-06 15:03 ?0次下載
    <b class='flag-5'>Web</b>應(yīng)用<b class='flag-5'>安全</b>評(píng)估

    報(bào)告:美國(guó)國(guó)土安全部無人機(jī)數(shù)據(jù)易受黑客攻擊和內(nèi)部威脅

    美國(guó)國(guó)土安全部監(jiān)察長(zhǎng)辦公室的一份報(bào)告中公布,海關(guān)與邊境保護(hù)局(CBP)未能采取適當(dāng)?shù)谋U洗胧﹣肀!Wo(hù)使用無人機(jī)系統(tǒng)(UAS)收集的監(jiān)控信息在審計(jì)之后,監(jiān)察長(zhǎng)辦公室發(fā)現(xiàn),根據(jù)國(guó)土安全部
    的頭像 發(fā)表于 09-29 10:21 ?6703次閱讀

    英國(guó)情報(bào)安全部門已允許華為參與當(dāng)?shù)?G網(wǎng)絡(luò)建設(shè)

    今日,環(huán)球時(shí)報(bào)援引英國(guó)《每日郵報(bào)》消息稱,盡管存在安全方面的擔(dān)憂,但英國(guó)情報(bào)安全部門已向首相鮑里斯·約翰遜(Boris Johnson)“開綠燈”,允許華為參與當(dāng)?shù)?G網(wǎng)絡(luò)建設(shè),提供“非核心”部件。
    發(fā)表于 12-30 10:43 ?819次閱讀

    機(jī)器學(xué)習(xí)安全方面有怎樣的用例

    原則上來說,機(jī)器學(xué)習(xí)可以幫助企業(yè)組織更好地分析威脅,并響應(yīng)攻擊安全事件。
    發(fā)表于 04-12 21:36 ?747次閱讀

    美國(guó)國(guó)土安全部測(cè)試面部識(shí)別技術(shù),系統(tǒng)的最高準(zhǔn)確率達(dá)96%

    美國(guó)國(guó)土安全部(DHS)測(cè)試了面部識(shí)別技術(shù),該技術(shù)可以表面上高精度地識(shí)別戴著面具的人。據(jù)本周發(fā)布的一份新聞稿透露,美國(guó)國(guó)土安全部科學(xué)與技術(shù)理事會(huì)(ST)
    的頭像 發(fā)表于 01-07 16:33 ?2566次閱讀

    關(guān)于5G網(wǎng)的安全部署探討

    關(guān)于對(duì)5G網(wǎng)的安全部署探討。
    發(fā)表于 03-18 16:58 ?7次下載

    美國(guó)國(guó)土安全部將為輸油管道公司發(fā)布強(qiáng)制性網(wǎng)絡(luò)安全規(guī)則

    美國(guó)國(guó)土安全部(Department of Homeland Security)正著手發(fā)布首份輸送管道行業(yè)網(wǎng)絡(luò)安全監(jiān)管法規(guī),旨在防止之前科洛尼爾公司(Colonial)遭遇重大攻擊事件所引發(fā)的東海岸
    的頭像 發(fā)表于 05-31 11:37 ?2049次閱讀

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品