《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于深度學習和半監督學習的webshell檢測方法
基于深度學習和半監督學習的webshell檢測方法
吳斌,趙力
(北京網思科平科技有限公司,北京 100089)
摘要: 半監督學習是一種重要的機器學習方法,能同時使用有標記樣本和無標記樣本進行學習。在webshell檢測領域,有標記樣本少、形式靈活多變、易混淆,基于特征匹配的方式很難進行準確檢測。針對標記樣本較少的現狀,提出一種基于深度學習和半監督學習的webshell檢測方法,先使用卡方檢驗和深度學習方法獲取樣本的文本向量,然后分別使用單分類和增量學習方式訓練,提高分類性能。使用github公開數據集進行訓練和測試,實驗結果驗證該方法能夠有效改善webshell檢測的漏報率和誤報率。
中圖分類號:TP399
文獻標識碼:A
DOI: 10.19358/j.issn.2096-5133.2018.08.005
中文引用格式:吳斌,趙力.基于深度學習和半監督學習的webshell檢測方法[J].信息技術與網絡安全,2018,37(8):19-22.
Webshell detection method based on deep learning and semi-supervised learning
Wu Bin,Zhao Li
(Beijing Onescorpion Technology Co.,Ltd.,Beijing 100089,China)
Abstract: Semi-supervised learning is an important machine learning method,which can use both labeled and unlabeled samples for learning.In the field of webshell detection,it is difficult to detect webshell accurately based on feature matching,because of few labeled samples,flexible forms and easy to be confused.A webshell detection method based on deep learning and semi-supervised learning is proposed in this paper,which firstly uses chi-square test and deep learning method to obtain the document vector of samples,and then uses one-class classification and incremental learning method respectively to improve classification performance.The open source data set in github is used for training and testing,and the experimental results show that this method could improve the rate of flase negative and false positive of webshell detection effectively.
Key words : deep learning;semi-supervised learning;webshell detection;one-class classification;incremental learning

0      引言

 

隨著互聯網的發展,基于B/S架構的Web應用迅速普及,包括應用在政府、銀行、運營商、電商以及各大門戶網站。由于不同的Web系統研發人員水平差異,在設計過程中難免對安全問題欠缺考慮,造成Web安全問題頻發。常見的安全威脅有:SQL注入漏洞、上傳文件漏洞、提交表單漏洞、跨站腳本攻擊等。入侵者在獲得Web系統漏洞后,會通過上傳webshell來獲得Web服務器的操作權限。對于入侵者來說,webshell就是一個后門程序,通常是ASP、PHP、JSP等網頁腳本。入侵實施后,首先在網頁服務器的Web目錄下面放置腳本文件,然后可以通過Web頁面對網站服務器進行控制[2]。由于webshell操作不會在系統安全日志中留下記錄,并且與正常網頁文件混在一起,一般管理員很難看出入侵痕跡[3]。

 

在Web安全檢測領域,由于缺少樣本,很難建立精準的監督學習模型,而無監督學習會造成誤報率高的問題,需要大量的安全工程師分析過濾機器學習的警告,分析結果存在人工誤差。由于Web攻擊方式多變,傳統的預測方式難以應對復雜的真實環境。本文利用深度學習提取特征完備性高的特點,結合半監督學習,將機器學習應用于webshell本地檢測,使用github公開樣本數據[4-5],采用單分類增量學習方式,不斷優化模型,經過多次試驗效果證明,本文方法能夠有效降低誤報率和提高檢測率。

 

1 深度學習

 

在機器學習領域,學者公認“數據和特征決定了機器學習的上限,而模型和算法只是逼近這個上限而已”。本文webshell檢測的測試數據來源于github上整理的webshell樣本,具有一定的代表性。特征選擇使用卡方檢驗和神經網絡相結合,先用卡方檢驗選取前K個重要特征,過濾測試文本,進一步使用神經網絡算法,獲得每一個樣本的文本向量。

 

1.1 卡方檢驗

 

卡方檢驗是一種常見的特征選擇方法。其基本思想是根據樣本數據推斷總體的分布與期望分布是否有顯著差異,或者推斷兩個分類變量是否相關。

 

一般可以設原假設為H0:觀察頻數與期望頻數沒有差異,或者兩個變量相互獨立不相關。實際應用中,先假設H0成立,計算出χ2值。根據χ2分布、χ2統計量以及自由度,可以確定在H0成立的情況下獲得當前統計量的概率P。如果P很小,說明觀察值與理論值的偏離程度大,應該拒絕原假設。否則不能拒絕原假設。

 

χ2的計算公式為:

 

1536574111(1).jpg

其中,A為實際值,T為理論值。

 

在本文的github樣本中,使用卡方檢驗剔除與webshell攻擊相關性較小的詞,例如:“is”、“the”、“是”等。選取前500個特征詞,例如“shell”、“package”等。

 

1.2 神經網絡

 

深度學習是機器學習的重要分支,目前深度學習在圖像、語音、自然語言等取得巨大突破。在文本分析領域,word2vec[6]和doc2vec是深度學習的重要研究成果,doc2vec與word2vec相似,只是word2vec在基于詞的語義分析基礎上,添加基于上下文的語義分析能力。

doc2vec是將詞表征為實數值向量的一種高效的算法模型,利用深度學習的思想,構建兩層神經網絡,即輸入層-隱藏層-輸出層,通過訓練,把對文本內容的處理簡化為K維向量空間中的向量運算。其訓練和預測過程如圖1所示。

 

wb1_副本.jpg

 

圖 1   文檔向量學習框架圖

 

在本文的測試樣本中,經過卡方檢驗篩選之后,運用doc2vec模型,訓練得到樣本的文本向量:[-2.083 977 50×10-2,-4.902 341 22×10-2,-2.033 572 83×10-2,-7.650 934 16×10-2,…]。

 

2  半監督學習

 

傳統的機器學習通常分為有監督學習和無監督學習。有監督學習是通過訓練標記的樣本,盡可能正確地對訓練之外的未標記樣本進行預測;無監督學習是通過訓練無標記的樣本,以發現未標記樣本之間的內部特征。半監督學習是介于有監督學習和無監督學習之間的機器學習方式,同時運用標記樣本和無標記樣本,訓練機器學習模型。

 

在實際應用中,有標記的webshell樣本數量極少,人為手動標記代價大,少量有標記的webshell樣本極其珍貴,而樣本中未標記的樣本大量存在。本文的webshell檢測模型,由于正常樣本數量相對于webshell樣本數量占絕對優勢,因此首先把未標記的樣本全部當作正常樣本,使用無監督方式訓練單分類SVDD模型;再運用有標記的樣本,修正單分類SVDD模型,達到增量學習的目的。

 

本文充分運用現有少量有標記的webshell和大量無標記的樣本數據,使用半監督學習,利用先驗單分類SVDD模型信息和新的標記樣本更新模型,一方面能夠繼承先前學習到的知識,讓整個學習具有可積累性;另一方面可以實現在線學習,不斷更新webshell檢測模型。

 

2.1 單分類SVDD模型

 

支持向量數據描述(Support Vector Domain Description,SVDD)是由TAX D M J和DUIN R PW[7]提出并發展起來的一種單值分類算法,標準的SVDD模型屬于無監督學習,把要描述的對象作為一個整體,建立一個封閉而緊湊的超球體,使得描述對象全部或盡可能多地包在這個球體內。

 

 

wb3_副本.jpg

圖 2   單分類SVDD模型圖


假設訓練數據集為微信截圖_20180911093419.pngSVDD的優化目標是在T中,找到最小半徑R。最優超球體的求解可以轉化為以下優化問題:


微信截圖_20180911093448.png

其中,R為待求的球的最小半徑,C為懲罰系數,ξi為懲罰項,a為超球體的球心。

 

訓練結束后,需要判斷新的數據點Z是否屬于這個類,即:

 

 

(z-a)T(z-a)≤R2                               (3)

 

至此已經用未標記樣本訓練了單分類SVDD模型,對于測試數據可以用該模型直接進行判斷。但是未標記樣本中存在少量的webshell攻擊樣本,直接使用單分類SVDD模型存在一定誤差。接下來使用標記樣本,通過有監督學習方式增量訓練SVDD模型,修正已經訓練好的單分類SVDD模型。

 

2.2 增量學習SVDD模型

 

webshell攻擊方式多變,腳本更新速度快,攻擊的特征也不是一成不變的。使用當前的webshell樣本訓練單分類SVDD模型,難以適應webshell入侵方式不斷更新的現狀。而增量學習是一種在線學習方式,指的是一個學習系統能不斷地從新樣本中學習新的知識,并能保存大部分以前已經學習到的知識。準確地說,增量學習并不是一種模型,而是一種模型的訓練更新方式。

 

本文提出的增量學習SVDD模型,在單分類SVDD模型的基礎上,運用有標記的樣本,更新單分類SVDD模型,達到增量學習的目的。在這個過程中,以前處理過的大部分樣本不需要重復處理,只選取作為支持向量的樣本,結合新的有標記的樣本,重新學習并更新SVDD模型,一旦學習完成之后,訓練的樣本被丟棄。學習系統沒有關于整個訓練樣本的先驗知識。

 

3  基于深度學習和半監督學習的webshell檢測算法

 

3.1 webshell檢測算法流程

 

基于深度學習和半監督學習的webshell檢測算法主要包含卡方檢驗、深度學習、半監督學習、單分類SVDD、增量學習SVDD等。其中算法結構如圖3所示。

 

3.2 webshell檢測算法描述

 

本文運用深度學習和半監督學習相關算法,對于有標記樣本集{(X1,Y1),(X2,Y2),…,(Xn,Yn)},其中Yi=微信截圖_20180911094128.png為對應樣本Xi=微信截圖_20180911094135.png的標記向量,以及無標記樣本{Z1,Z2,Z3,…,Zm}進行webshell建模分析。其中webshell檢測算法具體流程如下:

(1)對有標記樣本進行分詞處理,再用卡方檢驗分析各個特征詞與樣本標記之間的相關性,選擇前K個重要特征詞作為篩選特征詞;

(2)對于未標記樣本,用(1)中獲取的篩選特征詞獲得未標記樣本特征;

 

wb4_副本.jpg

圖 3   webshell檢測算法流程圖


(3)對于(2)中獲取的未標記樣本特征,使用神經網絡訓練獲得各個未標記樣本的文本向量及doc2vec;

(4)利用(3)中獲取的文本向量,使用無監督學習方法訓練單分類SVDD模型,最小化超球體半徑,最大情況包含未標記樣本; 

(5)對于新的標記樣本,運用在線學習方式訓練增量學習SVDD模型,修正單分類SVDD模型,提高現有模型的識別能力。

 

4  實驗與分析

 

為了驗證本文中基于深度學習和半監督學習的webshell算法檢測性能,使用github中數據進行實驗,數據樣本分布情況如下表1所示。

表1數據的類別分布表

微信截圖_20180911095059.png


4.1 數據預處理

 

原始的webshell訓練樣本是直接在github上下載的webshell腳本文件,在進行樣本訓練之前,需要進行數據預處理。為了獲得高質量的特征集,在所有的數據集合中選取有標記樣本作為卡方訓練樣本,其中選取增量訓練集W1中50份樣本,增量訓練集W2中50份樣本,正常測試集W3中50份樣本,webshell樣本集W4中50份樣本,組合成200份有標記卡方訓練樣本。

經過卡方檢驗之后,選取前500個特征作為樣本的重要特征,其中前7個特征結果如表2所示。

表2前7個卡方檢驗特征表

微信截圖_20180911095254.png


 通過卡方檢驗選擇的特征是與標記樣本相關性較高的特征詞。為簡化樣本復雜程度,需要進一步使用卡方檢驗獲取的前500個特征值,過濾初始訓練集W0。然后使用神經網絡訓練過濾后的樣本,獲取訓練樣本的文本向量,即doc2vec。其中最終獲得文本向量示例如下

 

X1=[-2.083 977 50×10-2,-4.902 341 22×10-2,-2.033 572 83×10-2,-7.650 934 16×10-2,…]

X2=[0.340 425 997 972,-0.016 084 445 640 4,

-0.757 030 189 037,0.497 053 474 188,…] 

X3=[0.256 792 724 133,0.113 478 787 243,

-0.708 586 812 019,0.289 009 481 668,…]

 

4.2 實驗結果和分析

 

在有少量有標記樣本和大量無標記樣本情況下,半監督學習是能夠同時兼顧訓練樣本和提高訓練結果的學習方法。在無監督學習階段,本文使用初始訓練集W0獲得的文本向量訓練單分類SVDD模型M0。在有監督學習階段,首先在單分類SVDD模型M0的基礎上,使用增量訓練集W1訓練增量SVDD模型M1;然后在增量SVDD模型M1的基礎上,使用增量訓練集W2訓練增量SVDD模型M2。對于每個模型,均使用正常測試集W3和webshell樣本集W4樣本混合測試。對于本文的webshell檢測方法,使用漏報率和誤報率來驗證模型分類效果,測試結果如表3所示。

表3測試結果表 

微信截圖_20180911095648.png


從實驗結果可以看出,對于相同的W3+W4測試樣本,使用增量SVDD訓練的模型在漏報率和誤報率上均優于單分類SVDD模型,并且使用增量樣本修正的次數越多,模型的效果越好。說明基于深度學習和半監督學習方法在webshell檢測中的優越性,充分利用少量有標記樣本,使用在線學習方法訓練增量SVDD模型,不斷優化最終模型,降低檢測的漏報率和誤報率。

 

5  結論

 

經過多次的實驗結果可知,本文提出的基于深度學習和半監督學習webshell檢測方法,在webshell檢測中一定程度上改善了系統的性能,有效降低了漏報率和誤報率,并在增量學習框架下,通過不斷學習新增標記樣本,能夠持續優化系統。在深度學習領域,本文使用文本向量的方式獲得樣本特征,此后的重點研究方向在于如何獲取更有價值的樣本特征。在半監督學習領域,本文使用單分類SVDD模型和增量SVDD模型,此后的重點研究方向在于如何優化模型提高漏報率和誤報率。

 

參考文獻

 

 [1] QUINLAN J R.C4.5:programs for machine learning[M].San Francisco:Morgan Kaufmann,1993.

 

[2] 胡建康,徐震,馬多賀,等.基于決策樹的Webshell檢測方法研究[J].網絡新媒體技術.2012,1(6):15-19.

 

[3] 龍嘯,方勇,黃誠,等.Webshell研究綜述:檢測與逃逸之間的博弈[J].網絡空間安全,2018,9(1):62-68.

 

[4] https://github.com/tanjiti/webshellSample

 

[5] https://github.com/tennc/webshell

 

[6] MIKOLOV T, LE Q V, SUTSKEVER I.Exploiting similarities among languages for machine translation [J] arXiv, arXiv1309.4168,2013.

 

[7] TAX D M J, DUIN R P W.Support vector data description[J].Pattern Recognition Letters,1999,20(11-13):1191-1199.

 

(收稿日期:2018-07-10)

 

 

作者簡介:

 

吳斌(1991-),通信作者,男,碩士,大數據分析師,主要研究方向:數據挖掘、機器學習。E-mail:wubin@onescorpion.com。 

趙力(1990-),女,碩士,大數據分析師,主要研究方向:數據挖掘、機器學習。

 

 


此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲一区二区三区中文字幕在线| 欧美亚洲综合久久| 国产精品有限公司| 欧美体内谢she精2性欧美| 美日韩丰满少妇在线观看| 久久精品国产精品| 欧美有码在线观看视频| 欧美亚洲系列| 亚洲欧美综合精品久久成人 | 亚洲人成网站999久久久综合| 午夜精品电影| 亚洲一区二区三区欧美| 亚洲视频欧洲视频| 亚洲视频第一页| 一本色道久久| 亚洲一区二区在线播放| 亚洲一区二区在线免费观看视频 | 中国女人久久久| 亚洲深夜影院| 亚洲网站视频福利| 亚洲欧美成人综合| 欧美一区二区三区免费在线看 | 欧美亚洲在线| 性久久久久久久久| 欧美中文在线字幕| 久久久欧美一区二区| 久久久www成人免费毛片麻豆| 久久精品国产在热久久| 久久天天躁狠狠躁夜夜爽蜜月| 久久婷婷一区| 欧美肥婆在线| 欧美色中文字幕| 国产精品视频不卡| 国产在线日韩| 91久久精品一区二区别| 一区二区久久| 欧美在线黄色| 亚洲美女啪啪| 亚洲一二三区精品| 久久电影一区| 美女诱惑一区| 欧美日韩免费观看中文| 国产精品美女午夜av| 国产亚洲福利| 亚洲区欧美区| 亚洲自拍都市欧美小说| 久久精品国产久精国产爱| 亚洲裸体在线观看| 亚洲欧美日韩在线| 久久青草福利网站| 欧美精品一区在线观看| 国产精品视频观看| 激情丁香综合| 亚洲最新色图| 欧美一区二区三区在线免费观看 | 欧美在线黄色| 美日韩精品免费观看视频| 欧美电影在线观看| 国产精品视频免费观看| 一区精品在线播放| 日韩视频中文| 欧美一区二区日韩一区二区| 亚洲精品一级| 欧美在线一二三四区| 欧美激情国产高清| 国产乱码精品一区二区三区av| 在线免费观看视频一区| 亚洲先锋成人| 亚洲精品日本| 午夜在线一区二区| 欧美福利视频网站| 国产日韩一区欧美| 99热这里只有精品8| 亚洲高清视频一区二区| 亚洲先锋成人| 女仆av观看一区| 国产乱人伦精品一区二区| 最新国产乱人伦偷精品免费网站 | 毛片av中文字幕一区二区| 欧美视频不卡中文| 狠狠入ady亚洲精品| 一本久道久久综合婷婷鲸鱼| 亚洲高清一区二区三区| 午夜精品久久久久久久白皮肤| 欧美高清在线| 国产在线欧美| 亚洲欧美电影院| 亚洲午夜av| 欧美激情综合网| 黑人一区二区| 新狼窝色av性久久久久久| 亚洲天堂免费观看| 欧美激情精品久久久久久黑人| 国产日韩精品在线观看| 一区二区三区精品视频在线观看| 亚洲区一区二区三区| 久久久久国产精品麻豆ai换脸| 国产精品久久久久久亚洲毛片| 亚洲人精品午夜在线观看| 亚洲高清资源| 久久久久久久激情视频| 久久久欧美精品| 欧美伊久线香蕉线新在线| 亚洲一区二区三区在线视频| 欧美xart系列高清| 极品少妇一区二区三区精品视频| 亚洲影音先锋| 亚洲免费一在线| 欧美日韩亚洲视频| 亚洲精品一区二区在线| 亚洲精品日韩在线观看| 麻豆av福利av久久av| 国产一区二区中文| 性伦欧美刺激片在线观看| 亚洲欧美日韩区| 国产精品激情电影| 亚洲天堂av电影| 亚洲一区二区黄| 国产精品sss| 亚洲无玛一区| 亚洲欧美久久久久一区二区三区| 欧美日韩视频不卡| 99热这里只有成人精品国产| 一本色道久久综合一区| 欧美日韩国产成人在线91| 亚洲精品一二三区| 一区二区三区久久| 欧美日韩另类一区| 99国产精品99久久久久久粉嫩| 99在线热播精品免费| 欧美日韩国产探花| 99视频在线精品国自产拍免费观看| 亚洲精品美女久久久久| 欧美精品一区在线观看| 99国产精品自拍| 亚洲一区二区三区涩| 国产精品第2页| 亚洲免费一在线| 久久久国产午夜精品| 韩国欧美一区| 日韩天天综合| 欧美天天在线| 亚洲欧美中文另类| 久久久久欧美精品| 亚洲国产精品久久久久秋霞不卡| 亚洲乱码国产乱码精品精可以看 | 欧美一区二区精品| 另类尿喷潮videofree| 亚洲激精日韩激精欧美精品| 夜色激情一区二区| 国产精品户外野外| 欧美一区二区免费视频| 母乳一区在线观看| aa亚洲婷婷| 欧美综合国产| 在线 亚洲欧美在线综合一区| 日韩视频不卡中文| 国产精品美女久久久久久2018| 欧美在线视频日韩| 欧美激情精品久久久久久黑人| 一本一道久久综合狠狠老精东影业 | 亚洲婷婷综合久久一本伊一区| 欧美在线黄色| 亚洲国产精品成人一区二区| 中国成人亚色综合网站| 国产乱码精品一区二区三区五月婷| 久久精品99国产精品日本| 欧美日韩国产综合新一区| 亚洲欧美日韩国产精品| 美腿丝袜亚洲色图| 在线一区二区三区四区| 久久久久亚洲综合| 亚洲毛片网站| 久久蜜臀精品av| 亚洲毛片在线观看| 久久aⅴ乱码一区二区三区| 亚洲区中文字幕| 欧美一区在线直播| 亚洲国产精品久久久久久女王| 亚洲欧美日韩一区在线观看| 极品尤物久久久av免费看| 亚洲一区二区三区四区中文| 国模 一区 二区 三区| av成人激情| 国内精品久久久久久影视8| 中国日韩欧美久久久久久久久| 好吊成人免视频| 亚洲欧美国产高清va在线播| 亚洲福利视频二区| 欧美在线综合视频| 亚洲另类一区二区| 久久字幕精品一区| 亚洲影音一区| 欧美日韩播放| 亚洲福利在线看| 国产美女在线精品免费观看| 亚洲免费观看视频| 狠狠色丁香久久婷婷综合丁香 | 国产一区二区三区在线免费观看| 一区二区三区日韩|