999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于抽象語(yǔ)法樹和XGBoost 的jsp_webshell 檢測(cè)方法研究*

2020-12-23 06:12:26茅雨綺
通信技術(shù) 2020年10期
關(guān)鍵詞:特征檢測(cè)方法

茅雨綺,施 勇,薛 質(zhì)

(上海交通大學(xué) 電子信息與電氣工程學(xué)院,上海 200240)

0 引言

隨著互聯(lián)網(wǎng)應(yīng)用的不斷發(fā)展,在以瀏覽器/服務(wù)器(Browser/Server,B/S)架構(gòu)作為基礎(chǔ)的Web應(yīng)用逐漸成為主流的當(dāng)下,Web 安全面臨著更加嚴(yán)峻的考驗(yàn)。

國(guó)家互聯(lián)網(wǎng)應(yīng)急響應(yīng)中心(National Internet Emergency Center,CNCERT) 發(fā) 布 的《2019 年我國(guó)互聯(lián)網(wǎng)網(wǎng)絡(luò)安全態(tài)勢(shì)綜述》[1]報(bào)告中提到,2019 年國(guó)家信息安全漏洞共享平臺(tái)(China National Vulnerability Database,CNVD)收錄安全漏洞數(shù)量創(chuàng)下歷史新高,共計(jì)16 193 個(gè),其中Web 應(yīng)用漏洞排名第二,占18.7%。2019 年監(jiān)測(cè)到境內(nèi)外約4.5萬(wàn)個(gè)IP 地址對(duì)我國(guó)境內(nèi)約8.5 萬(wàn)個(gè)網(wǎng)站植入后門,較2018 年增長(zhǎng)超過(guò)2.59 倍。

Webshell 可以以多種語(yǔ)言編寫,包括php、asp以及jsp 等。由于php 語(yǔ)言不需要特殊的開發(fā)環(huán)境,被大多數(shù)系統(tǒng)支持,且php 語(yǔ)言的安全隱患較多,故基于php 的webshell 最常見。此外,使用jsp 開發(fā)的網(wǎng)站也越來(lái)越多,許多銀行、金融公司等均使用java 架構(gòu)進(jìn)行系統(tǒng)開發(fā)。在這種架構(gòu)中,攻擊者可以通過(guò)上傳jsp_webshell 來(lái)遠(yuǎn)程訪問(wèn)并控制web 服務(wù)器,包括上傳、下載、修改、刪除文件,操作數(shù)據(jù)庫(kù),執(zhí)行其他任意命令等,危害極大。因此,檢測(cè)jsp 類型的Webshell 是否存在,對(duì)防止攻擊者進(jìn)一步控制服務(wù)器、保障Web 服務(wù)器安全非常必要且急迫。本文提出了一種基于抽象語(yǔ)法樹和XGBoost 的jsp_webshell 檢測(cè)方法,首次將抽象語(yǔ)法樹序列特征和GloVe 詞嵌入算法應(yīng)用到Webshell檢測(cè),提取jsp 文件的java 抽象語(yǔ)法樹(Abstract Syntax Tree,AST)序列特征,通過(guò)GloVe 模型得到詞向量特征文本,最后使用XGBoost 分類器進(jìn)行jsp_webshell 檢測(cè)。

1 相關(guān)研究

Webshell 是在服務(wù)器上運(yùn)行的可執(zhí)行代碼,可以視為一種遠(yuǎn)程訪問(wèn)工具(Remote Access Tool,RAT)或后門特洛伊木馬文件。jsp_webshell 是用jsp 編寫的Webshell,文件可能非常小,只需要一行代碼,或者可以長(zhǎng)達(dá)數(shù)千行,具有各種功能。有些是自給自足的,包含所有必需的功能;有些則需要外部操作或由“命令與控制”(Command&Control,C & C)客戶端與之進(jìn)行交互。攻擊者上傳Webshell 的常用方法是利用網(wǎng)站中常見的漏洞(如SQL 注入、文件包含和上傳等)遠(yuǎn)程生成或安裝Webshell 文件。一旦成功安裝了Webshell,遠(yuǎn)程攻擊者就可以使用嵌入命令直接向Webshell 發(fā)出HTTP 請(qǐng)求。該命令將被執(zhí)行,就好像攻擊者具有對(duì)Web 服務(wù)器的本地訪問(wèn)權(quán)限一樣。

目前,國(guó)內(nèi)外對(duì)于Webshell 檢測(cè)的研究主要側(cè)重于php 類型的Webshell,使用的方法主要有基于靜態(tài)特征的檢測(cè)、基于流量特征的檢測(cè)、基于行為特征的檢測(cè)以及基于日志的檢測(cè)方法。

基于流量和行為特征的檢測(cè)屬于動(dòng)態(tài)檢測(cè)方法。Yang J 等人[2]提出了一種語(yǔ)義感知方法,通過(guò)分析Web 訪問(wèn)流量,提取URL 資源和URL 查詢來(lái)檢測(cè)惡意Web 流量。王應(yīng)軍等人[3]通過(guò)提取Webshell 流量中HTTP 請(qǐng)求的參數(shù)名和參數(shù)值作為特征,并使用機(jī)器學(xué)習(xí)模型對(duì)Webshell 進(jìn)行檢測(cè)。杜海章等人[4]針對(duì)php 類型的Webshell 進(jìn)行實(shí)時(shí)動(dòng)態(tài)的檢測(cè),在php 擴(kuò)展中對(duì)php 代碼編譯和運(yùn)行的過(guò)程進(jìn)行監(jiān)控,從而檢測(cè)并阻止惡意的php_webshell。Wrench 等人[5]也提出了動(dòng)態(tài)檢測(cè)方法,通過(guò)去混淆和相似度矩陣分析方法提高了召回率,但誤報(bào)率較高。Canali D 等人[6]通過(guò)構(gòu)建蜜罐網(wǎng)站進(jìn)行實(shí)時(shí)監(jiān)測(cè),解析惡意代碼的行為,建立惡意行為庫(kù)檢測(cè)Webshell,但需要消耗大量資源,部署難度大,且只能檢測(cè)處于活動(dòng)狀態(tài)的Webshell。

基于日志的檢測(cè)方法可用于系統(tǒng)被入侵失陷后進(jìn)行排查,通過(guò)區(qū)分正常Web 網(wǎng)頁(yè)和Webshell 在日志文件中的不同特征檢測(cè)是否存在Webshell。石劉洋等人[7]分析服務(wù)器的日志文本,通過(guò)文本特征、統(tǒng)計(jì)特征和頁(yè)面關(guān)聯(lián)特征的匹配進(jìn)行檢測(cè),區(qū)分Webshell 和正常網(wǎng)頁(yè)文件的日志文本。潘杰[8]使用單分類支持向量機(jī)和神經(jīng)網(wǎng)絡(luò)算法對(duì)日志進(jìn)行了聚類,并通過(guò)遺傳算法優(yōu)化模型,提高了模型的準(zhǔn)確率。Miao Xie 等人[9]通過(guò)K 最鄰近(K-Nearest Neighbor,KNN)算法檢測(cè)日志中的疑似Webshell行為。Yixin Wu 等人[10]從Web 日志中的原始序列數(shù)據(jù)中提取特征,通過(guò)基于時(shí)間間隔的統(tǒng)計(jì)方法識(shí)別會(huì)話,發(fā)現(xiàn)基于LSTM 的模型保持了較高的召回率和準(zhǔn)確性,但基于日志檢測(cè)的方法可能會(huì)產(chǎn)生大量誤報(bào),且由于日志數(shù)量龐大,大量的讀寫日志很可能會(huì)對(duì)服務(wù)器的性能造成影響。

基于文件特征的檢測(cè)屬于靜態(tài)檢測(cè)方法,通過(guò)文件的靜態(tài)特征對(duì)Webshell 進(jìn)行檢測(cè),檢測(cè)速度較快,而且能夠在攻擊者利用Webshell 代碼執(zhí)行前進(jìn)行檢測(cè),是目前檢測(cè)Webshell 的最常見方法。Truong 等人[11]提出了基于最佳閾值的方法來(lái)識(shí)別包含來(lái)自Web 應(yīng)用程序的惡意代碼文件。利用統(tǒng)計(jì)學(xué)方法統(tǒng)計(jì)Webshell 文件中出現(xiàn)的惡意函數(shù)、命令執(zhí)行函數(shù)等頻率,但易被加密混淆的Webshell繞過(guò)。易楠等人[12]提出了一種基于語(yǔ)義分析的Webshell 檢測(cè)方法,通過(guò)構(gòu)建抽象語(yǔ)法樹,使用節(jié)點(diǎn)評(píng)分表對(duì)語(yǔ)法樹進(jìn)行風(fēng)險(xiǎn)評(píng)估,對(duì)危險(xiǎn)節(jié)點(diǎn)進(jìn)行污點(diǎn)子樹定位,最終通過(guò)構(gòu)建風(fēng)險(xiǎn)模型進(jìn)行匹配評(píng)估,實(shí)現(xiàn)對(duì)Webshell 的檢測(cè),但該方法對(duì)于變種的Webshell 的檢測(cè)效果并不理想。隨著機(jī)器學(xué)習(xí)模型的不斷成熟,機(jī)器學(xué)習(xí)的方法被廣泛運(yùn)用于Webshell 的檢測(cè)來(lái)提高有效性和準(zhǔn)確性。文獻(xiàn)[13]使用word2vec 模型將HTTP 請(qǐng)求中的每個(gè)單詞表示為一個(gè)向量,并將Web 請(qǐng)求表示為固定大小的矩陣。使用基于CNN 的模型來(lái)對(duì)惡意Webshell 和普通Webshell 進(jìn)行分類,實(shí)現(xiàn)了較高的精度。文獻(xiàn)[14]使用了fastText 文本分類器和隨機(jī)森林算法來(lái)構(gòu)建php_webshell 的檢測(cè)模型。文獻(xiàn)[15-16]使用php 操作碼序列作為特征,分別結(jié)合TF-IDF、Word2Vec和多層感知器(Multi-Layer Perceptron,MLP)神經(jīng)網(wǎng)絡(luò)對(duì)Webshell 進(jìn)行檢測(cè)。

2 基于抽象語(yǔ)法樹和XGBoost 的jsp-webshell檢測(cè)模型

目前,基于靜態(tài)特征和機(jī)器學(xué)習(xí)的檢測(cè)模型的研究主要針對(duì)php_webshell。為研究針對(duì)jsp 類型的Webshell 檢測(cè)方法,本文提出了基于抽象語(yǔ)法樹和XGBoost 的jsp_webshell 檢測(cè)模型,訓(xùn)練框架如圖1所示。本節(jié)先介紹jsp_webshell 的特征和jsp 代碼的編譯過(guò)程,獲得jsp 文件執(zhí)行的java 代碼,然后介紹java 抽象語(yǔ)法樹的特征提取及其對(duì)Webshell 檢測(cè)的作用,闡述提取語(yǔ)法樹詞向量的GloVe 算法,最后介紹本文使用的XGBoost 算法。

圖1 基于抽象語(yǔ)法樹和XGBoost 的jsp_webshell 檢測(cè)模型訓(xùn)練框架

2.1 jsp_webshell 原理與特征

2.1.1 攻擊原理

webshell 典型的功能包括文件操作、目錄操作、對(duì)數(shù)據(jù)庫(kù)的操作、端口掃描、注冊(cè)表操作、查看系統(tǒng)信息、掛馬功能、執(zhí)行系統(tǒng)函數(shù)以及加密函數(shù)等敏感操作。圖2 是一個(gè)簡(jiǎn)單的jsp_webshell 的源代碼,其中的java 代碼部分是將request 請(qǐng)求中的“cmd”參數(shù)的值作為系統(tǒng)命令執(zhí)行的參數(shù)。攻擊者可以通過(guò)GET 請(qǐng)求構(gòu)造惡意的請(qǐng)求注入cmd 參數(shù),從而實(shí)現(xiàn)遠(yuǎn)程調(diào)用服務(wù)器端的控制臺(tái),達(dá)到任意命令執(zhí)行的目的。

2.1.2 靜態(tài)特征

jsp_webshell的靜態(tài)特征包括兩個(gè)方面。一方面,危險(xiǎn)函數(shù)的調(diào)用,如圖2 所示的Webshell 代碼中調(diào)用的getRuntime().exec(),可將函數(shù)內(nèi)的命令行參數(shù)作為系統(tǒng)命令執(zhí)行。為了繞過(guò)一些傳統(tǒng)的靜態(tài)特征檢測(cè)機(jī)制,Webshell 會(huì)進(jìn)行編碼或加密,可能用到base64_decode 等函數(shù),而這些都是正常頁(yè)面文件很少用到的函數(shù),可作為Webshell 檢測(cè)的一個(gè)特征。另一方面,最長(zhǎng)字符的長(zhǎng)度,即文件中最長(zhǎng)不間斷字符串的長(zhǎng)度。由于一些Webshell 會(huì)使用base64等編碼或加密函數(shù)來(lái)進(jìn)行混淆,從而繞過(guò)簡(jiǎn)單的特征碼匹配檢測(cè)方式,因此會(huì)產(chǎn)生較長(zhǎng)的無(wú)空格間斷的字符串,而正常的頁(yè)面文件在對(duì)參數(shù)進(jìn)行命名時(shí)幾乎不會(huì)產(chǎn)生這樣的字符串。因此,通過(guò)獲取文本的最長(zhǎng)字符串長(zhǎng)度,也可以作為Webshell 檢測(cè)的一個(gè)特征。

圖2 jsp_webshell 源代碼

由于jsp_webshell 主要通過(guò)嵌入其中的java 語(yǔ)句實(shí)現(xiàn)其功能,因此首先對(duì)jsp 文件進(jìn)行預(yù)處理,將其轉(zhuǎn)化為對(duì)應(yīng)的java 文件后對(duì)其進(jìn)行語(yǔ)法分析,剝離token、注釋、字符串、變量以及語(yǔ)言結(jié)構(gòu),得到抽象語(yǔ)法樹序列,包含了函數(shù)調(diào)用的名稱、參數(shù)名以及參數(shù)類型等特征。為了避免一些Webshell為繞過(guò)檢測(cè)而添加一些無(wú)用的不可讀注釋,通過(guò)語(yǔ)法樹提取刪除無(wú)用注釋,最終得到了語(yǔ)法樹結(jié)構(gòu)序列特征。

圖3 jsp 文件編譯與執(zhí)行流程

2.2 jsp 編譯與執(zhí)行

為提取java 抽象語(yǔ)法樹特征,需要對(duì)jsp 源代碼進(jìn)行轉(zhuǎn)換,得到對(duì)應(yīng)的java 文件。jsp 文件無(wú)法直接運(yùn)行,需要經(jīng)過(guò)如圖3 所示的編譯與執(zhí)行流程。當(dāng)客戶端訪問(wèn)jsp 文件時(shí),jsp 引擎會(huì)將jsp 文件中的HTML 代碼和Java 代碼全部轉(zhuǎn)換為java 代碼,并編譯生成class 文件。編譯后的class 對(duì)象被加載到容器中,根據(jù)用戶的請(qǐng)求生成HTML 格式的響應(yīng)頁(yè)面返回給客戶端。

2.3 抽象語(yǔ)法樹(AST)特征提取

抽象語(yǔ)法樹是程序編譯的中間表示形式,使用樹狀的形式直觀標(biāo)示出源程序的語(yǔ)法結(jié)構(gòu),具有較高的存儲(chǔ)效率,在語(yǔ)義分析、程序分析等領(lǐng)域具有廣泛應(yīng)用。Java 語(yǔ)言的抽象語(yǔ)法樹會(huì)把java 源代碼中的各種元素,如類、屬性、方法、代碼塊以及注釋等定義成相應(yīng)的對(duì)象。由于java 是一種強(qiáng)制類型的語(yǔ)言,與php 等弱數(shù)據(jù)類型語(yǔ)言相比,數(shù)據(jù)類型和語(yǔ)法結(jié)構(gòu)定義更嚴(yán)格,因此通過(guò)提取java 文件的語(yǔ)法樹序列特征,可以更好地表征jsp 執(zhí)行的java代碼結(jié)構(gòu),保留了代碼的上下文語(yǔ)境信息,避免無(wú)意義的注釋等Webshell 逃逸方法,從而分析其是否執(zhí)行了惡意代碼。

為了獲取java 語(yǔ)法樹的特征,需要對(duì)java 代碼進(jìn)行解析,包括詞法和語(yǔ)法分析,得到j(luò)ava 抽象語(yǔ)法樹。遍歷該抽象語(yǔ)法樹對(duì)其進(jìn)行分詞和過(guò)濾,刪除對(duì)檢測(cè)Webshell 無(wú)用的節(jié)點(diǎn),如注釋、html 語(yǔ)句等,得到抽象語(yǔ)法樹的序列特征,其中包括調(diào)用函數(shù)名稱、參數(shù)名稱以及參數(shù)類型等。一個(gè)簡(jiǎn)單的helloworld 代碼得到的語(yǔ)法樹序列特征如圖4 所示。

圖4 helloworld 語(yǔ)法樹序列特征

2.4 GloVe 模型

學(xué)習(xí)詞向量表示的方法主要有以下兩種。一是基于全局矩陣分解的方法,如LSA,對(duì)詞匯-文本矩陣進(jìn)行奇異值分解構(gòu)造潛在語(yǔ)義空間,并得到文本在語(yǔ)義空間的表示。該方法雖有效利用了全局統(tǒng)計(jì)信息,但是在詞匯類比方面能力較差。二是局部上下文窗口的方法,如Mikolov 在2013 年提出來(lái)的Word2Vec 算法,包括CBOW 和skip-gram 兩種模型,能夠較好地進(jìn)行詞匯類比,但未有效利用全局統(tǒng)計(jì)信息。為了結(jié)合以上兩種方法的優(yōu)點(diǎn)、克服其缺陷,2014 年Jeffrey Pennington 等人提出了一種新的基于詞共現(xiàn)矩陣?yán)碚摰腉loVe 模型[17]。該模型基于全局詞匯共現(xiàn)的統(tǒng)計(jì)信息來(lái)學(xué)習(xí)詞向量,從而結(jié)合了全局統(tǒng)計(jì)信息與局部上下文窗口方法的優(yōu)點(diǎn),提升了應(yīng)用效果。

使用GloVe 模型進(jìn)行訓(xùn)練時(shí),會(huì)將每個(gè)詞降維表示為詞向量。對(duì)于給定的特征詞i,其詞向量vi可以表示為:

其中,n為向量的維度,wj是特征詞i的第j個(gè)維度。GloVe 模型構(gòu)造了一個(gè)詞共現(xiàn)矩陣的近似矩陣X。矩陣中的每一個(gè)元素Xij表示詞匯j出現(xiàn)在詞匯i的窗口大小固定的上下文中的次數(shù)總和。GloVe 模型使用的損失函數(shù)J如下:

(1)f(0)=0,當(dāng)詞匯共現(xiàn)的次數(shù)為0 時(shí),此時(shí)對(duì)應(yīng)的權(quán)重應(yīng)該為0;

(2)f(x)必須是一個(gè)非遞減函數(shù),目的是保證當(dāng)詞匯共現(xiàn)的次數(shù)增大時(shí),權(quán)重不會(huì)出現(xiàn)下降的情況;

(3)f(x)的值應(yīng)較小,使得對(duì)于頻繁的共現(xiàn)組合也不會(huì)賦予很大的值,從而防止過(guò)度加權(quán)。

綜合以上3 點(diǎn)特性,提出了下面的權(quán)重函數(shù):

試驗(yàn)發(fā)現(xiàn)xmax=100、α=3/4 時(shí)效果較好。

本文設(shè)定維度n=100,特征詞閾值m=800,將提取到的AST 特征文本進(jìn)行分詞,并視為一個(gè)句子s。若句子s中的特征詞數(shù)量少于m,則取前m個(gè)特征詞;若少于m,則以0 補(bǔ)全。使用GloVe 模型對(duì)語(yǔ)法樹序列特征文本進(jìn)行詞向量提取,得到的m×n的特征矩陣如下:

2.5 XGBoost

梯度提升樹(Gradient Boosting Decision Tree,GBDT)是Friedman 等人在2001 年提出的一種boosting 算法[18],采用加法模型(即基函數(shù)的線性組合),通過(guò)多輪迭代,不斷減小學(xué)習(xí)過(guò)程產(chǎn)生的殘差,從而對(duì)數(shù)據(jù)進(jìn)行分類或回歸。XGBoost(eXreme Gradient Bosoting)[19]是Tianqi Chen 在GBDT 的基礎(chǔ)上提出的改進(jìn)算法。與傳統(tǒng)的GBDT相比,XGBoost 對(duì)損失函數(shù)進(jìn)行優(yōu)化,保留了二階泰勒展開,并對(duì)樹的復(fù)雜度項(xiàng)增加了一個(gè)L2 正則化項(xiàng),還引入了縮減因子和列抽樣,避免了過(guò)擬合。同時(shí),該算法在尋找最優(yōu)分割點(diǎn)的算法上加以改進(jìn),提高了分類的精確度。本文試驗(yàn)了KNN、支持向量機(jī)、隨機(jī)森林和XGBoost 等幾種機(jī)器學(xué)習(xí)算法對(duì)jsp_webshell 檢測(cè)的性能,最終選取性能最優(yōu)的XGBoost 算法作為機(jī)器學(xué)習(xí)檢測(cè)模型的算法。

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

3.1 實(shí)驗(yàn)數(shù)據(jù)與過(guò)程

本文收集的jsp_webshell 樣本和正常樣本均來(lái)自github 等開源網(wǎng)站,共收集了2 137 個(gè)樣本,其中Webshell 樣本507 個(gè),正常樣本1 630 個(gè)。

對(duì)照實(shí)驗(yàn)中,分別選取KNN、支持向量機(jī)、隨機(jī)森林和XGBoost 這4 種機(jī)器學(xué)習(xí)算法,并選取了Word2Vec 和TF-IDF 兩種詞特征提取方法和GloVe方法進(jìn)行對(duì)比。具體實(shí)驗(yàn)過(guò)程如圖5 所示,先將正常樣本和Webshell 樣本進(jìn)行預(yù)處理,得到j(luò)ava 文件,并對(duì)其進(jìn)行AST 特征提??;使用Word2Vec 和TFIDF 算法與GloVe 算法進(jìn)行對(duì)比,提取詞特征矩陣;為了驗(yàn)證XGBoost 算法的性能,分別使用python 的sklearn 模塊中的KNN、支持向量機(jī)以及隨機(jī)森林算法與XGBoost 算法進(jìn)行對(duì)照實(shí)驗(yàn)。

3.2 模型訓(xùn)練與參數(shù)選擇

本文通過(guò)4 折交叉法,將訓(xùn)練數(shù)據(jù)分為4 個(gè)子集。每次訓(xùn)練將其中一個(gè)子集作為測(cè)試集,剩余子集作為訓(xùn)練集。隨機(jī)抽樣訓(xùn)練4 次,取4 次訓(xùn)練的平均準(zhǔn)確率作為參考指標(biāo)進(jìn)行模型參數(shù)的選擇。最后,選取參數(shù)如下:KNN的鄰居數(shù)n_neighbors 設(shè)為3;支持向量機(jī)的懲罰系數(shù)C 設(shè)為10;隨機(jī)森林的決策樹個(gè)數(shù)n_estimators 為200,最大深度max_depth 為37;XGBoost 的決策樹的個(gè)數(shù)n_estimators 為125,最大深度max_depth 為5;TF-IDF 的最大特征數(shù)為500;Word2vec 和GloVe 的窗口大小為100。

3.3 實(shí)驗(yàn)結(jié)果與分析

使用機(jī)器學(xué)習(xí)算法進(jìn)行二分類時(shí),會(huì)產(chǎn)生4 種結(jié)果,即正樣本被判定為正樣本(True Positive,TP)、正樣本被判定為負(fù)樣本(False Negative,F(xiàn)N)、負(fù)樣本被判定為負(fù)樣本(True Negative,TN)和負(fù)樣本被判定為正樣本(False Positive,F(xiàn)P)。本文將Webshell文件定為正樣本,將正常文件定為負(fù)樣本。

圖5 實(shí)驗(yàn)過(guò)程

本文選擇機(jī)器學(xué)習(xí)中的準(zhǔn)確率(accuracy)、精度(precision)、召回率(recall)以及F1 值(F1-score)4 個(gè)指標(biāo)進(jìn)行模型評(píng)價(jià)。其中,準(zhǔn)確率表示預(yù)測(cè)正確的樣本數(shù)占所有樣本的比例;精度表示被預(yù)測(cè)為Webshell 的樣本中實(shí)際為Webshell的比例;召回率表示W(wǎng)ebshell 樣本中被正確預(yù)測(cè)為Webshell 的比例,召回率越高,意味著漏報(bào)率越低;F1 值是精度和召回率的調(diào)和平均值。由于精度和召回率的度量角度是矛盾的,F(xiàn)1 值綜合了兩者的度量,因此F1 值是一個(gè)很好的綜合性評(píng)價(jià)指標(biāo),能更好地表示模型的檢測(cè)性能。以上4 種指標(biāo)的計(jì)算方式如下:

使用4 折交叉驗(yàn)證法對(duì)以上4 種指標(biāo)計(jì)算平均值,實(shí)驗(yàn)結(jié)果如表1 所示。

表1 jsp_webshell 檢測(cè)模型的實(shí)驗(yàn)結(jié)果

從實(shí)驗(yàn)結(jié)果可得,使用GloVe 算法提取詞向量特征比使用TF-IDF 算法和Word2Vec 算法的性能更優(yōu)。在機(jī)器學(xué)習(xí)算法選取上,KNN 算法的性能最差;支持向量機(jī)和隨機(jī)森林算法雖然精度很高,但是召回率較低,綜合性能不高;XGBoost 算法雖然在精度上略低于隨機(jī)森林算法和支持向量機(jī)算法,但在召回率、準(zhǔn)確率和綜合性能上均優(yōu)于其他算法。綜合以上結(jié)果,使用GloVe 算法提取詞向量特征,結(jié)合XGBoost 分類器進(jìn)行檢測(cè),綜合性能最優(yōu),尤其在召回率方面,相比其他算法具有顯著優(yōu)勢(shì),對(duì)jsp 類型的Webshell 有更好的檢測(cè)效果,準(zhǔn)確率高達(dá)98.73%。

4 結(jié)語(yǔ)

本文提出的基于抽象語(yǔ)法樹和XGBoost 的jsp_webshell 檢測(cè)方法,首次針對(duì)jsp 類型的Webshell進(jìn)行語(yǔ)法樹特征提取,并首次使用了在自然語(yǔ)言處理中較為新穎的詞向量訓(xùn)練方法GloVe,對(duì)jsp 文件預(yù)處理后提取的java 語(yǔ)法樹序列特征進(jìn)行詞向量提取,結(jié)合XGBoost 分類器進(jìn)行有監(jiān)督的學(xué)習(xí),從而檢測(cè)jsp_webshell。通過(guò)與傳統(tǒng)的機(jī)器學(xué)習(xí)模型和其他詞向量特征提取方法進(jìn)行對(duì)比實(shí)驗(yàn),結(jié)果表明提出的jsp_webshell 檢測(cè)模型性能得到了提升。后續(xù)工作是擴(kuò)大訓(xùn)練數(shù)據(jù)的規(guī)模,并加入字節(jié)碼的特征,使用深度學(xué)習(xí)算法改進(jìn)模型的檢測(cè)性能,并將該方法用于其他惡意代碼的檢測(cè)。

猜你喜歡
特征檢測(cè)方法
“不等式”檢測(cè)題
“一元一次不等式”檢測(cè)題
“一元一次不等式組”檢測(cè)題
如何表達(dá)“特征”
不忠誠(chéng)的四個(gè)特征
抓住特征巧觀察
小波變換在PCB缺陷檢測(cè)中的應(yīng)用
用對(duì)方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
主站蜘蛛池模板: 精品久久蜜桃| 激情国产精品一区| 精品国产香蕉伊思人在线| 久久精品无码一区二区国产区| 欧美一道本| 亚洲资源站av无码网址| 亚洲精品成人7777在线观看| 亚洲最大在线观看| 亚洲人成日本在线观看| 成人无码一区二区三区视频在线观看 | 欧美色视频网站| 国产小视频a在线观看| 精品视频在线观看你懂的一区| 国产极品粉嫩小泬免费看| 亚洲av无码久久无遮挡| 色综合网址| 国产亚洲欧美在线视频| 中文字幕人妻av一区二区| 日韩黄色在线| 国产午夜福利在线小视频| 日韩午夜福利在线观看| 日本午夜视频在线观看| 国内老司机精品视频在线播出| 操美女免费网站| 国产精品白浆无码流出在线看| 天天操精品| 伊人欧美在线| 色悠久久综合| 日韩国产综合精选| jizz在线观看| 久久免费精品琪琪| 亚洲一区黄色| 亚洲欧美日韩另类在线一| 中文字幕波多野不卡一区| 高清久久精品亚洲日韩Av| 亚洲国产亚综合在线区| 日本道中文字幕久久一区| 亚洲成人77777| 亚洲一道AV无码午夜福利| 91在线精品麻豆欧美在线| 国产91高清视频| 九色视频线上播放| 成人午夜亚洲影视在线观看| 天天躁夜夜躁狠狠躁躁88| 在线观看国产小视频| 国产第一福利影院| 毛片免费视频| 谁有在线观看日韩亚洲最新视频| 日韩人妻精品一区| 亚洲成综合人影院在院播放| 欧美激情网址| 欧美日韩国产一级| 国产真实乱子伦视频播放| 国产sm重味一区二区三区| 好吊色妇女免费视频免费| 一本大道无码日韩精品影视| 欧美午夜网| 久久综合五月婷婷| 国产精品手机在线观看你懂的| 久草美女视频| 青青青国产免费线在| 国产呦视频免费视频在线观看| 91九色国产porny| 亚洲国产中文综合专区在| 国产91色在线| 亚洲精品福利网站| 亚洲一区无码在线| 欧美午夜理伦三级在线观看| 日韩欧美一区在线观看| 精品在线免费播放| 久久无码av三级| 97国产精品视频自在拍| 自偷自拍三级全三级视频| 99精品免费在线| 欧亚日韩Av| 成人综合在线观看| 亚洲a级毛片| 色欲色欲久久综合网| 成人一区专区在线观看| 黄色网页在线播放| 2021国产精品自产拍在线观看| 91精品国产情侣高潮露脸|