《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于深度學習和半監督學習的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亚洲国产精品_日韩亚洲一区二区
欧美日韩亚洲综合| 亚洲日韩中文字幕在线播放| 欧美精品观看| 久久三级视频| 久久国产精品99国产| 亚洲欧美日韩视频一区| 亚洲香蕉视频| 亚洲一区三区电影在线观看| 一区二区三区日韩精品| 在线亚洲成人| 亚洲伊人一本大道中文字幕| 亚洲免费视频观看| 亚洲一区免费在线观看| 中文欧美在线视频| 亚洲一区二区三区在线视频| 亚洲线精品一区二区三区八戒| 一区二区欧美精品| 亚洲午夜久久久| 亚洲欧美日韩电影| 香蕉av福利精品导航| 香蕉av777xxx色综合一区| 欧美主播一区二区三区| 久久九九精品| 久久综合色综合88| 亚洲精选久久| 中文网丁香综合网| 午夜精品视频在线| 久久精品国产精品亚洲| 久久久水蜜桃| 免费一级欧美片在线播放| 欧美二区在线播放| 欧美日韩精品免费看| 国产精品高清网站| 国产日韩欧美在线播放| 红桃视频国产精品| 亚洲第一精品夜夜躁人人躁| 亚洲免费成人av| 中文在线一区| 欧美在线免费| 亚洲精品小视频| 亚洲字幕一区二区| 久久久999精品| 欧美精品日本| 国产精品久久777777毛茸茸| 国产香蕉久久精品综合网| 在线播放一区| 在线亚洲伦理| 久久成人18免费观看| 日韩午夜黄色| 性欧美xxxx视频在线观看| 久久久www成人免费毛片麻豆| 免费亚洲一区二区| 国产精品成人免费视频 | 一区二区三区国产精华| 亚洲欧美日韩综合aⅴ视频| 亚洲欧洲日本mm| 亚洲男人的天堂在线aⅴ视频| 久久精品视频在线播放| 欧美日韩免费观看一区二区三区| 国产乱码精品一区二区三区av| 伊甸园精品99久久久久久| 99热这里只有成人精品国产| 欧美在线免费视频| 中日韩美女免费视频网站在线观看| 久久精品国产99精品国产亚洲性色 | 国产午夜精品久久| 亚洲欧洲日产国产网站| 午夜久久99| 99视频在线观看一区三区| 久久精品99久久香蕉国产色戒| 欧美激情1区| 国产亚洲a∨片在线观看| 99精品99| 亚洲三级电影全部在线观看高清| 性欧美xxxx大乳国产app| 欧美精品日韩综合在线| 国产一区二区久久| 亚洲婷婷免费| 99国内精品| 久久久水蜜桃| 国产精品老女人精品视频| 亚洲国产一区在线| 欧美一区2区视频在线观看| 中文在线资源观看网站视频免费不卡| 欧美自拍丝袜亚洲| 国产精品成人一区二区三区夜夜夜| 一区二区三区在线视频播放| 午夜国产精品影院在线观看| 亚洲调教视频在线观看| 欧美国产高清| 激情欧美亚洲| 欧美伊人久久大香线蕉综合69| 亚洲在线中文字幕| 欧美精品一区在线发布| 激情久久综艺| 欧美一区二视频| 欧美一区二区视频在线| 欧美视频一区二区三区在线观看| 亚洲青涩在线| 亚洲精品色图| 猛干欧美女孩| 韩国精品在线观看| 欧美中文字幕第一页| 欧美一区二区三区视频在线观看 | 在线午夜精品自拍| 一区二区欧美日韩| 欧美美女操人视频| 亚洲国产另类久久精品| 亚洲盗摄视频| 老司机午夜精品| 狠狠入ady亚洲精品| 欧美在线免费| 久久久福利视频| 国产一区二区黄| 欧美一区二区三区在线观看| 欧美一区二区三区婷婷月色 | 国产亚洲一级| 欧美一进一出视频| 久久精品国产一区二区三区免费看 | 亚洲日产国产精品| 日韩视频在线观看国产| 欧美精品久久久久久久久老牛影院| 亚洲第一精品福利| 亚洲日本乱码在线观看| 欧美高清视频在线| 亚洲精品久久久久中文字幕欢迎你 | 亚洲无玛一区| 欧美一区成人| 国产自产精品| 亚洲高清不卡在线观看| 免费成人黄色片| 91久久精品日日躁夜夜躁国产| 日韩亚洲国产精品| 欧美日韩精品一二三区| 一本综合精品| 久久av在线| 曰韩精品一区二区| 99精品视频免费观看| 国产精品大片免费观看| 亚洲欧洲av一区二区三区久久| 久久精品系列| 在线高清一区| 一区二区三区**美女毛片| 国产精品美女xx| 欧美一区三区三区高中清蜜桃| 久久夜色精品国产亚洲aⅴ| 1769国内精品视频在线播放| 日韩亚洲欧美成人| 国产精品老牛| 久久精品免费看| 欧美精品免费在线观看| 亚洲一区二区三区涩| 久久久亚洲综合| 亚洲精品久久久久| 欧美一级久久久| 在线免费观看视频一区| 一卡二卡3卡四卡高清精品视频| 国产精品毛片大码女人| 亚洲第一黄色网| 欧美日韩人人澡狠狠躁视频| 亚洲欧美精品在线观看| 男人的天堂亚洲在线| 在线一区欧美| 久久在线免费观看视频| 日韩视频永久免费| 久久精品中文字幕免费mv| 亚洲人永久免费| 欧美一级片一区| 亚洲黄色在线| 欧美一区永久视频免费观看| 亚洲激情一区| 欧美一区午夜精品| 亚洲黄色成人网| 欧美与欧洲交xxxx免费观看| 亚洲经典视频在线观看| 欧美一区国产二区| 最新日韩av| 久久久久久久综合色一本| 日韩亚洲欧美中文三级| 久久精品视频在线看| 日韩视频一区二区三区在线播放| 久久精品123| 日韩一级黄色大片| 麻豆精品在线观看| 亚洲欧美国产精品专区久久| 欧美黑人国产人伦爽爽爽| 欧美一区二区三区在线观看| 欧美日韩三级视频| 91久久久在线| 国产永久精品大片wwwapp| 亚洲欧美电影院| 91久久久亚洲精品| 久久久久久久一区二区| 在线一区二区视频| 欧美人在线观看| 亚洲国产成人不卡| 国产啪精品视频| 亚洲无限av看| 亚洲黄网站黄| 久久视频一区|