• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于多層神經(jīng)網(wǎng)絡(luò)的Webshell改進(jìn)檢測方法研究*

      2019-01-23 11:49:46涵,薛質(zhì),施
      通信技術(shù) 2019年1期
      關(guān)鍵詞:向量神經(jīng)網(wǎng)絡(luò)矩陣

      張 涵,薛 質(zhì),施 勇

      (上海交通大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,上海 200240)

      0 引 言

      隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,越來越多的企業(yè)和政府機(jī)關(guān)等都開始普及使用互聯(lián)網(wǎng)的各種相關(guān)技術(shù)和應(yīng)用,由此而來的針對網(wǎng)絡(luò)、服務(wù)器的攻擊日趨頻繁。如今,國家和企業(yè)面臨著網(wǎng)絡(luò)安全方面的嚴(yán)峻威脅和挑戰(zhàn)。我國出臺了網(wǎng)絡(luò)安全法,加強(qiáng)了對這一領(lǐng)域的監(jiān)管力度。針對服務(wù)器的攻擊中,Webshell是一種常見的入侵和操控網(wǎng)站后臺的管理工具,通常由網(wǎng)頁腳本語言編寫。一旦Webshell被成功植入網(wǎng)站后臺,入侵者就可以獲得網(wǎng)站后臺的部分甚至管理員權(quán)限以操控整個(gè)網(wǎng)站,進(jìn)而有可能獲得該服務(wù)器的所有權(quán)限。中國國家互聯(lián)網(wǎng)站中心(簡稱CNCERT)發(fā)布的《2017年中國互聯(lián)網(wǎng)網(wǎng)絡(luò)安全報(bào)告》[1]中指出,2017年度內(nèi)29 236個(gè)(去重后)網(wǎng)站被植入后門,其中政府網(wǎng)站有1 339個(gè)。所以,針對Webshell的識別檢測對服務(wù)器和網(wǎng)站安全十分關(guān)鍵。因?yàn)閃ebshell編寫十分靈活,變體眾多,所以傳統(tǒng)的基于特征的靜態(tài)檢測手段無法適應(yīng)現(xiàn)在的攻擊環(huán)境。本文將PHP格式的Webshell文件通過word2vector算法轉(zhuǎn)化為詞向量,使用多層神經(jīng)網(wǎng)絡(luò)(MLP)算法得到基于多層神經(jīng)網(wǎng)絡(luò)的Webshell改進(jìn)檢測算法。

      1 相關(guān)研究

      Webshell是一種以網(wǎng)頁形式存在的命令執(zhí)行腳本文件。針對Webshell的傳統(tǒng)檢測主要有靜態(tài)檢測、動(dòng)態(tài)檢測和日志分析三種方式。

      傳統(tǒng)檢測方法主要通過對文件進(jìn)行特征檢測識別,對文件中的一些特征字符串進(jìn)行匹配識別。例如,調(diào)用系統(tǒng)功能的高危函數(shù)eval()、system()等,結(jié)合關(guān)鍵詞、文件修改的時(shí)間、文件權(quán)限、文件的所有者等字段進(jìn)行判斷檢測。這種檢測方法具有快速檢測、快速定位的優(yōu)點(diǎn),缺點(diǎn)是漏報(bào)率、誤報(bào)率高,無法查找0day型Webshell,且由于對高危函數(shù)、關(guān)鍵詞等特殊字符串的識別一般采用正則表達(dá)式匹配實(shí)現(xiàn),所以通過變種加密的方式容易被繞過。

      動(dòng)態(tài)分析在腳本運(yùn)行時(shí)進(jìn)行。傳統(tǒng)檢測方法主要通過分析腳本執(zhí)行過程中的動(dòng)態(tài)特性檢測惡意腳本,如Webshell運(yùn)行時(shí)采用HTTP協(xié)議,采集其特有的響應(yīng)和請求特征,在IDS中進(jìn)行檢測;對正常不會調(diào)用到的文件進(jìn)行讀寫操作等。該類方法能有效識別各類未知樣本、變形樣本、加密樣本等,但也存在誤報(bào)率高等問題。

      日記分析方式是指shell腳本運(yùn)行后在網(wǎng)站的Web日志中會留下Webshell頁面的訪問數(shù)據(jù)和數(shù)據(jù)提交記錄,可通過大量的日志文件建立請求模型對其進(jìn)行分析,從而檢測出異常文件。石劉洋、方勇[2]等通過分析Web服務(wù)器日志文件檢測惡意腳本,如利用頁面請求特征、訪問統(tǒng)計(jì)特征和頁面關(guān)聯(lián)特征等進(jìn)行檢測。這種檢測方法存在一定誤報(bào),在訪問日志數(shù)據(jù)量很大的情況下,檢測工具的處理能力和效率會降低。易楠等[3]提出了一種基于語義分析的Webshell檢測模型,通過構(gòu)建抽象語法樹,對惡意行為使用匹配算法進(jìn)行計(jì)算,得到文件的風(fēng)險(xiǎn)值。若風(fēng)險(xiǎn)值超出設(shè)定的閾值,即說明該文件很大概率為Webshell。這種方法對已知類型的Webshell檢測準(zhǔn)確率較高,但對于未知類型的Webshell檢出效果大大降低,對于變種混淆后的Webshell檢出效果也不佳。

      傳統(tǒng)檢測方法大都存在誤報(bào)率、漏報(bào)率高且對未知類型或經(jīng)過變種加密混淆后的Webshell檢出效果不好的問題。所以,需要使用新的手段,從新的角度設(shè)計(jì)對Webshell的檢測方案。目前,機(jī)器學(xué)習(xí)和大數(shù)據(jù)分析技術(shù)將廣泛應(yīng)用于Webshell檢測等網(wǎng)絡(luò)安全領(lǐng)域[4]。戴樺、李景等[5]提出一種基于矩陣分解的機(jī)器學(xué)習(xí)Webshell檢測方法,通過對PHP文件的靜態(tài)頁面特征進(jìn)行提取,然后使用一種矩陣分解的算法處理轉(zhuǎn)化特征,最后進(jìn)行機(jī)器學(xué)習(xí)訓(xùn)練。但是,他們采用的樣本容量較小且比例不平衡,仍需要進(jìn)一步改進(jìn)。賈文超、戚蘭蘭[6]等采用基于隨機(jī)森林的Webshell檢測方法,通過改進(jìn)隨機(jī)森林特征選取方法,降低了樹間相關(guān)度,提高了算法性能,但該算法使用的樣本中Webshell和正常頁面比例過于小,而且仍是基于頁面的一些基本特征,所以仍然無法對新的未知類型的Webshell進(jìn)行檢測,同時(shí)誤報(bào)率較高。胥小波、聶小明等[7]采用TF-IDF計(jì)算詞頻矩陣,并在此基礎(chǔ)上篩選特征得到訓(xùn)練樣本集的特征矩陣,最后通過多層神經(jīng)網(wǎng)絡(luò)(MLP)訓(xùn)練得到檢測模型,提高了各項(xiàng)性能指標(biāo)。

      2 基于多層神經(jīng)網(wǎng)絡(luò)的Webshell改進(jìn)檢測算法

      為了解決Webshell檢測中的相關(guān)問題,本文提出了基于多層神經(jīng)網(wǎng)絡(luò)的Webshell改進(jìn)檢測算法。本節(jié)將首先介紹與Webshell檢測相關(guān)的對檢測很有意義的靜態(tài)文本特征;其次,介紹對PHP源代碼的處理,獲得更加具有參考價(jià)值的opcode代碼集合;再次,介紹對代碼集合進(jìn)行詞向量轉(zhuǎn)化的word2vec算法;最后,介紹本文使用的多層神經(jīng)網(wǎng)絡(luò)算法。

      2.1 PHP文本靜態(tài)特征

      NeoPi[8]是一個(gè)開源的基于靜態(tài)檢測的Webshell檢測工具。它主要檢測的幾個(gè)基于Webshell文件文本的字段值得參考。

      2.1.1 最長字符的長度

      一些Webshell采用加密和編碼的方式進(jìn)行混淆,可以繞開一些簡單的使用正則匹配的靜態(tài)檢測手段,但可能會導(dǎo)致某些字符長度異常。所以,認(rèn)為最長字符長度這一特征對Webshell的檢測很有意義。

      2.1.2 信息熵

      信息熵最早由香農(nóng)提出[9],定義為離散隨機(jī)事件的出現(xiàn)概率。體現(xiàn)在文本中,即文本的無序性和不確定性越高,這段文本的信息熵就越大。為了繞開檢測,攻擊者會采用添加無用的不可讀的注釋和將一些調(diào)用的系統(tǒng)函數(shù)進(jìn)行加密編碼等方式進(jìn)行文本混淆。但是,這些手段都會增大文本的信息熵。信息熵的計(jì)算公式如下:

      2.1.3 重合指數(shù)

      重合指數(shù)由William F F提出[10],是指從給定文本中隨機(jī)選擇兩個(gè)字母找到兩個(gè)相同字母的概率。IC的計(jì)算公式如下:

      其中,N是文本的總長度,c是文本中不同字符的總數(shù),ni是字符i在文本中出現(xiàn)的頻率。

      2.1.4 高危函數(shù)調(diào)用數(shù)量

      Webshell通常會調(diào)用一些正常頁面不會使用的系統(tǒng)函數(shù)、編碼函數(shù)等,如eval、base64_decode、exec等。對文件中包含這類高危函數(shù)進(jìn)行統(tǒng)計(jì),對Webshell的檢測有很大的幫助。

      2.2 PHP opcode

      opcode是一種介于高級語言和機(jī)器底層語言之間的機(jī)器語言指令,由編譯器對高級語言代碼進(jìn)行詞法分析轉(zhuǎn)換而來。在PHP語言中,Zend引擎讀取文件后進(jìn)行詞法分析,將PHP代碼逐詞轉(zhuǎn)化為“token”,然后對token的列表進(jìn)行處理整理,得到opcode。

      例如,有一段簡單的示例代碼:

      <?php

      echo’Hello World’;

      $a=1+1;

      echo $a;

      ?>

      經(jīng)過PHP的VLD拓展項(xiàng),在不直接運(yùn)行PHP代碼的情況下,可以獲得如下的opcode:

      ZEND_ECHO’Hello World’

      ZEND_ADD~0 1 1

      ZEND_ASSIGN!0 ~ 0

      ZEND_ECHI~0

      本文是將采集到的PHP文件轉(zhuǎn)化為opcode再進(jìn)行詞向量轉(zhuǎn)化,以避免Webshell中為了繞開靜態(tài)檢測惡意添加的無用注釋的干擾。對于一些加密和編碼混淆的手段,可以采集到初步編譯后的特定opcode代碼序列,便于檢測Webshell。這種基于底層opcode代碼的特征采集,使得所提模型對未知類型但仍然會應(yīng)用到常見混淆手段的Webshell也有一定的檢出能力,提高了模型的泛化性能。

      2.3 word2Vec算法

      在Webshell檢測領(lǐng)域內(nèi),對于文本的詞向量轉(zhuǎn)換,胥小波、聶小明等是采用n-gram模型,即將文本中相鄰的n個(gè)詞劃分為1個(gè)詞組,然后使用TF-IDF算法統(tǒng)計(jì)計(jì)算詞頻,得到文本的詞向量特征矩陣。

      本文采用的word2vec是一種較新的將文本轉(zhuǎn)化為詞向量的算法,簡單來說,是將一個(gè)單獨(dú)的詞轉(zhuǎn)換為一個(gè)向量。word2vec已經(jīng)廣泛應(yīng)用于自然語言處理領(lǐng)域。word2vec使用兩種模型即跳字模型(skip-gram)[11]和連續(xù)詞袋模型(CBOW),使用層次 softmax(hierarchical softmax)[12]算法,對給定的文本集合進(jìn)行處理,計(jì)算得到每個(gè)詞對應(yīng)的詞向量。對word2vec具體處理樣本后的結(jié)果進(jìn)行如下說明:對于一個(gè)給定的單詞i,其對應(yīng)的詞向量xi∈Rd,d是在計(jì)算過程中設(shè)定的嵌入詞向量空間的維數(shù)。一個(gè)包含n個(gè)詞的句子n表示為一個(gè)n×d的矩陣。

      為了保持輸入矩陣的形狀一致,設(shè)置了句子長度閾值n。當(dāng)句子長度大于n時(shí),會截取矩陣只保留前n的詞;當(dāng)句子長度小于n時(shí),會將矩陣進(jìn)行填充,在句子的末位插入足夠多的0向量。

      2.4 多層神經(jīng)網(wǎng)絡(luò)模型

      多層神經(jīng)網(wǎng)絡(luò)(MLP)是一種前向結(jié)構(gòu)的人工神經(jīng)網(wǎng)絡(luò),是一種前向結(jié)構(gòu)的人工神經(jīng)網(wǎng)絡(luò)。MLP是一個(gè)有向圖,由多個(gè)節(jié)點(diǎn)層組成。除輸入節(jié)點(diǎn)之外,每個(gè)節(jié)點(diǎn)都是一個(gè)帶有非線性激活函數(shù)的神經(jīng)元(或稱處理單元)。多層神經(jīng)網(wǎng)絡(luò)通常使用的監(jiān)督學(xué)習(xí)方法反向傳播算法進(jìn)行訓(xùn)練。MLP可以對任意復(fù)雜度的非線性關(guān)系進(jìn)行擬合,并且擁有強(qiáng)大的泛化能力。

      本次實(shí)驗(yàn)采用的MLP模型共包含3個(gè)隱含層,第一層有5個(gè)節(jié)點(diǎn),第二層有3個(gè)節(jié)點(diǎn),第三層有2個(gè)節(jié)點(diǎn)。網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。

      圖1 多層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)

      3 實(shí)驗(yàn)及結(jié)果分析

      在Webshell領(lǐng)域,由于PHP語言使用最為廣泛,所以本算法針對于PHP語言。訓(xùn)練樣本集大小為4 500,其中Webshell樣本大小為2 000,主要來源于github中公開的Webshell收集項(xiàng)目;正常頁面樣本有2 500個(gè),主要來源于wordpress、phpcms、yii等開源的PHP內(nèi)容管理系統(tǒng)(CMS)。CMS系統(tǒng)在某些功能表現(xiàn)上類似于Webshell,所以選取這類PHP文件作為白樣本,可以使檢測更加準(zhǔn)確、有效。

      本次實(shí)驗(yàn)word2vec的參數(shù)設(shè)置中,詞向量的維數(shù)被設(shè)置為100,其余參數(shù)全部采用默認(rèn)值。多層神經(jīng)網(wǎng)絡(luò)(MLP)中的參數(shù),α設(shè)置為1e-5。本次實(shí)驗(yàn)采用10折交叉驗(yàn)證的方法,每次隨機(jī)將樣本集中的一部分作為訓(xùn)練集,其余部分作為驗(yàn)證集,10次隨機(jī)抽取樣本,最終測試結(jié)果各項(xiàng)性能指標(biāo)取10次結(jié)果的平均值。

      測試結(jié)果的評價(jià),采用3個(gè)指標(biāo)作為標(biāo)準(zhǔn),分別是準(zhǔn)確率(Accuracy)、召回率(Recall)和f1-score。準(zhǔn)確率是指驗(yàn)證集中算法預(yù)測結(jié)果正確的比例,召回率是所有被模型判定為Webshell的樣本中預(yù)測正確的比例。f1-score又被稱為平衡F分?jǐn)?shù)(Balanced F Score),是精確率和召回率的調(diào)和平均數(shù)。

      對照試驗(yàn)中,幾種機(jī)器學(xué)習(xí)算法使用的是相同的訓(xùn)練樣本集。分別采用樸素貝葉斯算法、支持向量機(jī)(SVM)算法、對opcode進(jìn)行傳統(tǒng)TF-IDF進(jìn)行的多層神經(jīng)網(wǎng)絡(luò)(MLP)算法。樸素貝葉斯算法和支持向量機(jī)算法中,加入了前文提到的靜態(tài)特征豐富樣本的特征,提高了算法的檢測性能。在參數(shù)設(shè)置上,支持向量機(jī)算法采用線性擬合,參數(shù)c設(shè)置為10;多層神經(jīng)網(wǎng)絡(luò)(MLP)算法,隱含層設(shè)置為3層,每層節(jié)點(diǎn)分別為5、3、2,與本文采用的結(jié)構(gòu)相同,詞袋參數(shù)中設(shè)置為2-gram,最大特征數(shù)為200。

      表1展示了幾種不同的Webshell檢測算法的指標(biāo)。可以看出,基于多層神經(jīng)網(wǎng)絡(luò)的Webshell檢測算法,在準(zhǔn)確率、召回率和f1-score指標(biāo)性能上都有提升,證明了所提算法具有良好的準(zhǔn)確性、泛化性和對未知類型樣本的檢測能力。

      表1 測試實(shí)驗(yàn)結(jié)果各項(xiàng)指標(biāo)

      4 結(jié) 語

      本文介紹了Webshell檢測領(lǐng)域中的傳統(tǒng)檢測方法和一些應(yīng)用機(jī)器學(xué)習(xí)相關(guān)算法的檢測方法,例如決策樹、線性回歸svm、隨機(jī)森林等算法,單純的基于簡單的文本特征,限制了算法的準(zhǔn)確性、精度等指標(biāo),并且對于未知類型的Webshell不具備較強(qiáng)的泛化能力。本文提出的基于卷積神經(jīng)網(wǎng)絡(luò)的Webshell檢測算法,使用了在自然語言處理應(yīng)用較為廣泛的word2vec算法對php文件的代碼編譯后的opcode進(jìn)行處理,并提取特征,有效提高對于未知類型文件的檢出能力。下一步工作是引入Webshell攻擊時(shí)的流量和日志信息,同時(shí)改進(jìn)模型結(jié)構(gòu),以繼續(xù)提高算法的各項(xiàng)指標(biāo)能力表現(xiàn)。

      猜你喜歡
      向量神經(jīng)網(wǎng)絡(luò)矩陣
      向量的分解
      聚焦“向量與三角”創(chuàng)新題
      神經(jīng)網(wǎng)絡(luò)抑制無線通信干擾探究
      電子制作(2019年19期)2019-11-23 08:42:00
      初等行變換與初等列變換并用求逆矩陣
      向量垂直在解析幾何中的應(yīng)用
      基于神經(jīng)網(wǎng)絡(luò)的拉矯機(jī)控制模型建立
      向量五種“變身” 玩轉(zhuǎn)圓錐曲線
      復(fù)數(shù)神經(jīng)網(wǎng)絡(luò)在基于WiFi的室內(nèi)LBS應(yīng)用
      矩陣
      南都周刊(2015年4期)2015-09-10 07:22:44
      矩陣
      南都周刊(2015年3期)2015-09-10 07:22:44
      邹城市| 建平县| 安龙县| 昂仁县| 蒙阴县| 宜兰市| 屏边| 永泰县| 张掖市| 新泰市| 吕梁市| 廉江市| 清镇市| 调兵山市| 长寿区| 青海省| 溧阳市| 鹤壁市| 枣庄市| 临武县| 宜昌市| 沅江市| 山东省| 临澧县| 辰溪县| 嘉荫县| 汪清县| 永嘉县| 福鼎市| 宁化县| 东宁县| 竹溪县| 孙吴县| 嘉峪关市| 建瓯市| 盘锦市| 赞皇县| 盈江县| 恩平市| 福贡县| 内江市|