国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于序列注意力機制的卷積神經(jīng)網(wǎng)絡(luò)異常檢測

2019-04-12 06:38王國胤李智星王化明姚鐘毓梁馨元
關(guān)鍵詞:集上注意力卷積

李 苑,王國胤,李智星,王化明,周 政,姚鐘毓,梁馨元

(重慶郵電大學(xué) 計算機科學(xué)與技術(shù)學(xué)院 計算智能重慶市重點實驗室 重慶 400065)

0 引言

互聯(lián)網(wǎng)為人們提供了優(yōu)質(zhì)的工作與生活環(huán)境,但同時也給人們帶來了一定的安全隱患.WordPress SEO by Yoast插件在2015年被曝出有高危的SQL注入漏洞,該漏洞導(dǎo)致了大量敏感信息的泄露.2016年,2.7億的Gmail、Yahoo和Hotmail賬號遭到泄露,黑客將竊取得到的數(shù)據(jù)進(jìn)行交易.2017年,GitHub企業(yè)版被曝出具有SQL注入漏洞,本次漏洞的產(chǎn)生是由文件中內(nèi)置的對象關(guān)系映射造成的.

為了解決這些攻擊造成的威脅,越來越多的學(xué)者在網(wǎng)絡(luò)異常檢測這一領(lǐng)域開展了科學(xué)研究.文獻(xiàn)[1]指出大多數(shù)的攻擊是通過惡意的統(tǒng)一資源定位符(unified resource locator,URL)所發(fā)出的請求造成的.Vishnu等人[2]采用機器學(xué)習(xí)方法如貝葉斯、支持向量機等來預(yù)測跨站腳本攻擊(XSS攻擊).文獻(xiàn)[3]利用人工審核的方式對一些PHP源代碼進(jìn)行分類.然而,現(xiàn)存的這些方法在研究的過程中大多數(shù)是使用人工特征工程進(jìn)行的,因此它們?nèi)匀挥幸恍﹩栴}亟待解決.首先,人工選擇特征和一些先驗知識的方式是無法適應(yīng)網(wǎng)絡(luò)的迅猛發(fā)展和極速演變的.例如在MySQL 5.0之后的版本中,/*!50000 select */中的select會被當(dāng)作是一個關(guān)鍵字來被執(zhí)行,而在MySQL 5.0以前的版本中,select是被當(dāng)作注釋而不被執(zhí)行的.其次,惡意代碼通常是隱藏在攻擊者發(fā)出的看似正常的請求中,但是現(xiàn)有的大多數(shù)基于機器學(xué)習(xí)的研究方法只能識別并判斷出這些網(wǎng)絡(luò)請求是否為異常,但無法對異常請求中的惡意代碼區(qū)域進(jìn)行定位.例如URL中/search.html?kw=../../../../winnt/win.ini $%$00.htm.它包含的“../”這一小部分是用于嘗試訪問敏感系統(tǒng)文件路徑的.

文獻(xiàn)[4]在短文本分類任務(wù)的研究工作中使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行文本分類.文獻(xiàn)[5]嘗試使用聚類、主成分分析和關(guān)聯(lián)規(guī)則挖掘?qū)θ罩具M(jìn)行分析來檢測網(wǎng)絡(luò)中的異常情況.隨著深度學(xué)習(xí)的迅猛發(fā)展,深度學(xué)習(xí)也被應(yīng)用于異常檢測中.文獻(xiàn)[6]將3個神經(jīng)網(wǎng)絡(luò)組合進(jìn)而對URL進(jìn)行分類檢測,他們首先使用第1個神經(jīng)網(wǎng)絡(luò)生成一些URL,隨后利用第2個神經(jīng)網(wǎng)絡(luò)來對其進(jìn)行分類,最后利用第3個神經(jīng)網(wǎng)絡(luò)來檢驗給定的URL是否為惡意的URL.文獻(xiàn)[7]提出了DeepLog方法,該方法結(jié)合深度學(xué)習(xí),可以從日志本身正常執(zhí)行的數(shù)據(jù)中進(jìn)行學(xué)習(xí),得到相應(yīng)的日志模式.面對復(fù)雜且多變的網(wǎng)絡(luò)環(huán)境,我們需要能夠有效監(jiān)測未知攻擊的方法.

Conneau[8]提出一個新的VD-CNN方法,該方法可以隨著網(wǎng)絡(luò)層深度的增加,利用小規(guī)模的卷積神經(jīng)網(wǎng)絡(luò)和池化操作來完成文本分類的工作.卷積神經(jīng)網(wǎng)絡(luò)能夠進(jìn)行特征自學(xué)習(xí),可以有效地避免人工特征工程所帶來的弊端[9],但是這些方法無法對惡意代碼片段進(jìn)行定位.神經(jīng)網(wǎng)絡(luò)中的注意力機制最初是起源于人類的視覺注意力機制[10],目前注意力機制被成功地應(yīng)用于很多任務(wù)中,例如閱讀理解[11]、摘要總結(jié)[12]和句子表示[13]等.Xu等人[14]提出了將卷積神經(jīng)網(wǎng)絡(luò)與長短期記憶網(wǎng)絡(luò)(long-short term memory,LSTM)相結(jié)合使用的方法.

LIRL與文本均是由字符序列組成,并且包含語義信息,因此本文考慮將惡意URL檢測任務(wù)轉(zhuǎn)化成為一個文本分類任務(wù),提出了一種基于序列注意力機制的卷積神經(jīng)網(wǎng)絡(luò)(sequential attention based CNN,SA-CNN).為了能夠有效地尋找到惡意代碼區(qū)域,我們在卷積層與池化層中間引入一個新的注意力層.注意力層用來對單詞(token)的區(qū)分度進(jìn)行編碼.因為惡意代碼通常是由較小區(qū)域內(nèi)的相鄰單詞構(gòu)成,所以這些相鄰的單詞之間往往又具有一些相似的區(qū)分度.因此,本文在注意力層又增加了一個外部語言模型,來對這些較小區(qū)域內(nèi)的相鄰單詞進(jìn)行建模分析.

1 基于序列注意力機制的卷積神經(jīng)網(wǎng)絡(luò)模型

進(jìn)行網(wǎng)頁瀏覽和網(wǎng)絡(luò)服務(wù)調(diào)用都需要使用到URL,因此很多攻擊者選擇了URL作為攻擊的入口.受文獻(xiàn)[4]的啟發(fā),本文提出一種全新的異常檢測方法:基于序列注意力機制的卷積神經(jīng)網(wǎng)絡(luò)模型.

1.1 問題定義

1.2 方法概述

區(qū)別于文獻(xiàn)[4,15]中的網(wǎng)絡(luò)結(jié)構(gòu),SA-CNN模型的結(jié)構(gòu)框架如圖1所示.它是由5層網(wǎng)絡(luò)結(jié)構(gòu)組成,分別為詞嵌入層、卷積層、注意力層、池化層和全連接層,其中還包括了一個特殊的注意力層.

圖1 SA-CNN結(jié)構(gòu)框架Fig.1 The framework of SA-CNN

1.3 具體結(jié)構(gòu)介紹

1.3.1URL預(yù)處理 通常情況下,URL是由一個字符序列構(gòu)成的.本文定義了一組特殊字符,并使用它們作為劃分URL的依據(jù).利用空格對其分割,這些特殊字符集合為{() [ ] | @ + -=: /;,^ <>* ! ? { } # &.“”’ %}.根據(jù)這些特殊字符,所有的URL可以被劃分為一系列的單詞(token).我們以一條真實的URL解釋token劃分方式和char劃分方式的區(qū)別.

原始URL: /account/?action=file:∥/etc/passwd.

token劃分: / account / ? action=file: / / / etc / passwd.

char劃分: / a c c o u n t / ? a c t i o n=f i l e: / / / e t c / p a s s w d.

char劃分方式比較簡單,它將一些具有意義的字符串拆開了,比如“file”、“etc”、“passwd”.但是token劃分方式并未將這些字符分割開,保持了這些字符的連續(xù)性.

1.3.2詞嵌入層 為方便計算,集合當(dāng)中的每一條URL,即xi可以通過谷歌研發(fā)的word2vec模型[16]將單詞轉(zhuǎn)換為詞向量,即xi=[v1,v2,…,vk,…].本文所提出的SA-CNN采用的是word2vec中的CBOW模型.將訓(xùn)練得到的詞向量作為下一層的輸入.

1.3.3卷積層 卷積層接受詞嵌入層的詞向量作為輸入.一個卷積層中可以包含多個大小不同的滑動窗口.使用這些滑動窗口來提取特征并且以此方式來防止過擬合.每一個滑動窗口對應(yīng)著一個卷積濾波器.H=[h1,h2,…,hk,…]表示的是不同大小的卷積濾波器.我們重新定義了一個連接符號⊕的操作,v1,k:m,k=v1,k⊕v2,k…⊕vm,k.假定卷積濾波器f,對應(yīng)的滑動窗口大小為h,在xi中第k個特征是通過ci,k=Wf·(vi,k⊕vi,k+1⊕…⊕vi,k+h-1)+bf產(chǎn)生.將所有的特征連接起來,可以得到一個特征圖ci=[ci,1⊕ci,2⊕…].

1.3.4注意力層 本文采用上下文注意力機制和語言模型(LSTM/ Markov)相結(jié)合的方式來進(jìn)行異常檢測.注意力層位于卷積層與池化層之間.該模型可以給惡意代碼區(qū)域賦予更高的注意力值,以便于能夠有較大的可能性被池化層選擇處理,以備后續(xù)異常檢測使用.本文嘗試對當(dāng)前單詞的3個上下文(SA-CNN-3)和5個上下文(SA-CNN-5)使用序列注意力機制.此處以3個上下文為例說明注意力層的工作原理.

2 實驗

2.1 實驗數(shù)據(jù)

為了驗證本文所提出的SA-CNN模型的有效性,我們在TREC、20NG這兩個公開短文數(shù)據(jù)集上和一個URL數(shù)據(jù)集上進(jìn)行實驗.其中,URL數(shù)據(jù)集來自于知名互聯(lián)網(wǎng)安全公司,數(shù)據(jù)集信息總結(jié)如表1所示(其中CN表示類別的數(shù)量).

表1 數(shù)據(jù)集信息匯總Tab.1 Summary of datasets 個

TREC[18]數(shù)據(jù)集是一個問題分類的數(shù)據(jù)集,它主要包含人、地點、數(shù)字等6個類別的問題.20NG數(shù)據(jù)集是著名的文本分類數(shù)據(jù)集,本文從中選取了每個文檔的Subject這一項作為短文本分類的數(shù)據(jù)進(jìn)行分析實驗.URL數(shù)據(jù)集是由正常的URL和本地文件包含、SQL注入、跨站腳本攻擊和命令注入攻擊這4種攻擊類型共同組成.

2.2 參數(shù)設(shè)置

詞嵌入的大小設(shè)定為128,卷積層使用的是多卷積核方式,卷積濾波器大小分別為3、4、5,且每種濾波器個數(shù)為64個.批處理大小設(shè)定為32,epoch的數(shù)目設(shè)為200,采用dropout技術(shù)以防止過擬合產(chǎn)生.

2.3 實驗結(jié)果與分析

SA-CNN與原始CNN[4]方法在URL數(shù)據(jù)集上效果基本持平;SA-CNN優(yōu)于機器學(xué)習(xí)方法中的DT和LR的效果.本文所提出的SA-CNN可以很好地定位惡意代碼區(qū)域,并對其進(jìn)行可視化展示,在該方面SA-CNN要遠(yuǎn)遠(yuǎn)優(yōu)于原始CNN[4]方法.

2.3.1token劃分和char劃分 圖2所示為原始CNN[4]和SA-CNN3(LSTM)在URL數(shù)據(jù)集上的實驗結(jié)果.由于惡意URL在通常情況下僅僅是URL當(dāng)中的一小部分,而如果此時采用accuracy作為評估指標(biāo)并不適用,因此本文采用F1對URL的實驗結(jié)果進(jìn)行評估.我們可以看到,使用token劃分方式的結(jié)果要優(yōu)于使用char劃分方式的結(jié)果.這說明對URL檢測時,使用token劃分的方式是行之有效的.相比于原始CNN[4]方法,SA-CNN在F1評估指標(biāo)[19]下沒有表現(xiàn)出較大的優(yōu)勢,可能是原始的CNN[4]本身的性能就很高,極難對其進(jìn)行改進(jìn).

表2所示是SA-CNN在兩個短文本數(shù)據(jù)集上的實驗結(jié)果, 表明SA-CNN的性能要優(yōu)于原始CNN方法[4].

圖2 惡意URL數(shù)據(jù)的F1結(jié)果Fig.2 TheF1on malicious URLs data

表2 在TREC和20NG上的實驗結(jié)果Tab.2 Accuracies on TREC and 20NG %

圖3 SA-CNN 3種結(jié)構(gòu)token劃分結(jié)果Fig.3 The result of three stuctures on token division

我們也使用貝葉斯、邏輯斯特回歸、KNN、GBDT等方法在TREC和20NG數(shù)據(jù)集上進(jìn)行實驗對比.相比于這些機器學(xué)習(xí)的方法,SA-CNN表現(xiàn)出更好的性能.這說明序列注意力機制不僅在URL數(shù)據(jù)集上有效果,同樣在短文本數(shù)據(jù)集上也有良好的表現(xiàn).

2.3.2LSTM模型和Markov模型 針對SA-CNN模型本身,本文也進(jìn)行了相關(guān)研究和實驗.圖3為SA-CNN在token劃分方式下分別使用LSTM和Markov語言模型在URL數(shù)據(jù)集上的實驗結(jié)果.從圖3中可知,SA-CNN-3(LSTM)更加適合使用token劃分方式進(jìn)行異常檢測,它的F1值遠(yuǎn)高于SA-CNN-5(LSTM)和SA-CNN-3(Markov).考慮到URL的長度限制和單詞之間的相關(guān)性,URL檢測任務(wù)推薦使用SA-CNN-3(LSTM).

2.3.3上下文長度影響 表3所示SA-CNN在兩個短文本數(shù)據(jù)集上的實驗結(jié)果,TREC數(shù)據(jù)集的平均長度為10,20NG的平均長度為5.我們由表3可以觀察到,SA-CNN-5(LSTM)在TREC數(shù)據(jù)上的表現(xiàn)優(yōu)于其他的方式,因此文本的平均長度對于模型選擇是具有一定影響的.

結(jié)合上文所述的token劃分方式,影響URL異常檢測的結(jié)果除了劃分方式以外,URL的長度也是一個可能的原因.當(dāng)URL的長度較短時,我們可以考慮使用SA-CNN-3(LSTM)來進(jìn)行異常檢測.通過研究SA-CNN本身,我們可知SA-CNN-3(LSTM)和SA-CNN-5(LSTM)更適用于長度稍長的URL數(shù)據(jù)檢測,并且兩個模型可以達(dá)到較好的檢測效果.當(dāng)URL長度較短時,URL本身也并不能為異常檢測提供較多的信息,因此也限制了模型對其進(jìn)行檢測的效果.所以不論是在異常檢測上,還是在文本分類問題上,我們都需要對文本的長度進(jìn)行考慮,隨后再選擇合適的模型進(jìn)行嘗試.

表3 TREC和20NG的結(jié)果Tab.3 The result of TREC and 20NG %

2.3.4可視化結(jié)果分析 為了簡單起見,本文提供了一些具體例子來更加直觀地說明結(jié)果.如圖4所示,顏色越深,則表示注意力的值越高.通過比較顏色深淺,我們可以很容易知道哪些部分是惡意代碼區(qū)域.如圖中第2條所示,本地包含文件攻擊嘗試通過代碼“../”訪問服務(wù)器上的敏感文件.在第3條中的char(106)則是測試服務(wù)器是否可以執(zhí)行SQL函數(shù)的語句.由于passwd、script、 (;)和passw都是惡意的URL中具有攻擊性的部分,所以它們都具有很高的注意力值.而html 和 com11的注意力值較為低,因為它們是正常代碼區(qū)域中的一部分.有一個很有趣的事實是:當(dāng)“.”這個token位于正常的URL中時,它具有較低的注意力值,此時它的周圍是oo4xccc和html,惡意代碼區(qū)域的“.”則具有很高的注意力值.而此時,它的上下文是“/”和“./”.這也就是說由外部的語言模型(LSTM/Markov)所產(chǎn)生的上下文信息是有效且有意義的.

圖4 中文圖題惡意URL注意力值可視化結(jié)果Fig.4 Visualization of attention on malicious URLs

3 總結(jié)

本文提出了一種基于序列注意力機制的卷積神經(jīng)網(wǎng)絡(luò)(SA-CNN)來檢測惡意URL.該方法不僅可以檢測URL是否為正常的,同時也可以幫助定位惡意代碼區(qū)域.在真實的URL數(shù)據(jù)集上的實驗表明:(1) 本文所提出的劃分URL的方式是行之有效的.(2) SA-CNN具有極高的檢測率,同時可以成功定位惡意代碼區(qū)域.(3) SA-CNN在短文分類任務(wù)中也是一個有效的方法.在未來的工作中,我們的研究將主要集中于兩個方面:首先,嘗試對更多類型的攻擊進(jìn)行檢測;其次是基于詞匯和注意力方面的研究.我們將針對如何對URL劃分進(jìn)行探索,該劃分能使它的每一塊具有全部功能的信息,而不是每塊只具有單獨的關(guān)鍵詞.

猜你喜歡
集上注意力卷積
讓注意力“飛”回來
關(guān)于短文本匹配的泛化性和遷移性的研究分析
基于3D-Winograd的快速卷積算法設(shè)計及FPGA實現(xiàn)
基于互信息的多級特征選擇算法
如何培養(yǎng)一年級學(xué)生的注意力
卷積神經(jīng)網(wǎng)絡(luò)的分析與設(shè)計
從濾波器理解卷積
基于傅里葉域卷積表示的目標(biāo)跟蹤算法
A Beautiful Way Of Looking At Things
師如明燈,清涼溫潤
射洪县| 利川市| 年辖:市辖区| 衡阳县| 永泰县| 潞城市| 武冈市| 福州市| 保山市| 庄河市| 景泰县| 宣城市| 桑植县| 聂荣县| 和硕县| 阿拉善盟| 兴山县| 黄龙县| 闻喜县| 汉沽区| 宁河县| 南开区| 伊吾县| 洛南县| 中山市| 宁德市| 运城市| 道孚县| 胶州市| 垣曲县| 昭通市| 晋中市| 淮南市| 江川县| 屏东市| 柘荣县| 黎平县| 珲春市| 望江县| 泰宁县| 玉环县|