亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于近鄰成分分析的WebShell特征處理算法研究

        2021-08-19 10:57:44周愛君努爾布力肖中正
        關(guān)鍵詞:特征選擇準(zhǔn)確率分類

        周愛君,努爾布力,艾 壯,肖中正

        1.新疆大學(xué) 信息科學(xué)與工程學(xué)院,烏魯木齊830046

        2.新疆大學(xué) 網(wǎng)絡(luò)中心,烏魯木齊830046

        隨著互聯(lián)網(wǎng)的快速發(fā)展,Web應(yīng)用系統(tǒng)越來越多,這也進(jìn)一步滋生了黑色產(chǎn)業(yè)。黑客通過入侵網(wǎng)站,在網(wǎng)站植入大量的廣告推廣頁面或者其他鏈接,這無形中增加了網(wǎng)站性能風(fēng)險(xiǎn),對用戶造成使用隱患。國家互聯(lián)網(wǎng)應(yīng)急中心(National Internet Emergency Center,CNCERT)發(fā)布的《2019年上半年我國互聯(lián)網(wǎng)網(wǎng)絡(luò)安全態(tài)勢》中指出,CNCERT監(jiān)測到我國境內(nèi)有2.6萬個(gè)網(wǎng)站被惡意植入后門,近4萬個(gè)網(wǎng)站被篡改。根據(jù)Internet Live Status 2018年1月的數(shù)據(jù)[1],全球每天大概有100 618個(gè)網(wǎng)站被攻擊。360發(fā)布的《2017中國網(wǎng)站安全形勢分析報(bào)告》指出360網(wǎng)站衛(wèi)士攔截漏洞攻擊中,WebShell排第二位,攔截高達(dá)21 615.1萬次。由于WebShell能夠?qū)崿F(xiàn)對各種關(guān)鍵功能的遠(yuǎn)程訪問,如執(zhí)行任意命令查看和修改任意文件、提升訪問權(quán)限、發(fā)送垃圾郵件等,黑客通常會(huì)通過在網(wǎng)站植入WebShell,達(dá)到植入廣告、篡改頁面、控制Web服務(wù)等目的,因此WebShell的檢測及查殺就顯得尤為重要。WebShell常常隱藏在正常網(wǎng)站文件下,針對不同的網(wǎng)站編寫方法其檢測方法存在差異。W3Techs在2020年4月的調(diào)查報(bào)告中顯示,php是網(wǎng)站編寫中最常用的語言,使用率高達(dá)78.3%。本文考慮對php編寫的WebShell展開研究。

        常見的WebShell檢測方法主要分為靜態(tài)檢測和動(dòng)態(tài)檢測。由于動(dòng)態(tài)檢測是通過檢測代碼執(zhí)行過程中的流量變化、系統(tǒng)指令等敏感行為特征實(shí)現(xiàn)WebShell檢測的,且該方法系統(tǒng)資源占用大,檢測周期長,無法實(shí)現(xiàn)大批量檢測,甚至?xí)eb系統(tǒng)性能造成影響,本文考慮從靜態(tài)檢測方法展開研究。目前針對WebShell的靜態(tài)檢測方法主要專注于分類器的優(yōu)化,而針對WebShell特征指標(biāo)模型的研究相對較少。WebShell和普通Web頁面特征幾乎一致,容易逃避傳統(tǒng)防火墻和殺毒軟件的檢測。隨著各種反檢測特征混淆隱藏技術(shù)應(yīng)用到WebShell上,使得WebShell的檢測難度進(jìn)一步增加。傳統(tǒng)基于特征碼匹配的檢測方式很難及時(shí)檢測出新的變種。為避免WebShell中的加密、壓縮及混淆問題,通常將問題轉(zhuǎn)化為對WebShell編譯結(jié)果層opcode序列的研究。WebShell的opcode序列特征向量維度非常高,容易出現(xiàn)“維度災(zāi)難”問題,因此尋求最具代表性的WebShell特征子空間有助于進(jìn)一步提高WebShell檢測性能。

        為了提高檢測模型的準(zhǔn)確率,需要更好地利用樣本之間的聯(lián)系,本文考慮將近鄰成分分析[2]應(yīng)用到WebShell特征處理過程中,通過樣本學(xué)習(xí)一種有效的距離測度方式,更好表示樣本間的相似度。近鄰成分分析的目的就是針對特定任務(wù),根據(jù)樣本學(xué)習(xí)一種使得分類損失最小的距離測度方式,更好地表示樣本間的某種相似度。近年來,基于近鄰成分分析的特征處理方法已經(jīng)在很多領(lǐng)域得到成功應(yīng)用,包括語音識(shí)別、人臉識(shí)別等。借鑒其他領(lǐng)域,本文將近鄰成分分析應(yīng)用到WebShell特征處理過程,實(shí)驗(yàn)證明,相比傳統(tǒng)的WebShell靜態(tài)檢測方法,該算法的檢測效率、正確率更高,同時(shí)也能以一定概率檢測出新型的WebShell。

        1 相關(guān)工作

        互聯(lián)網(wǎng)中網(wǎng)頁惡意代碼攻擊網(wǎng)絡(luò)事件給眾多的瀏覽用戶帶來了極大的危害,Web安全形勢變得越來越嚴(yán)峻,基于此種環(huán)境,國內(nèi)外的學(xué)者們針對網(wǎng)頁惡意代碼的檢測方法進(jìn)行了深入的研究。

        1.1 WebShell特征處理研究現(xiàn)狀

        2012年胡建康等人[3]提出基于決策樹的WebShell檢測方法,選取最長單詞、加解密函數(shù)、字符串操作、文本操作等16個(gè)特征作為分類方法,利用決策樹算法進(jìn)行判斷,檢測的效率及準(zhǔn)確率都比較高,但召回率還有提升的空間。Hagen等人利用統(tǒng)計(jì)學(xué)的方法,使用信息熵、最長單詞、重合指數(shù)、特征碼、文件壓縮比五種方法編寫了NeoPi[4]這款檢測工具,依據(jù)以上五個(gè)指標(biāo)能發(fā)現(xiàn)可疑文件,但沒有給出相應(yīng)閾值判斷文件是否為混淆文件。2014年Truong等人[5]利用統(tǒng)計(jì)學(xué)方法對WebShell使用的函數(shù),比如惡意函數(shù)、命令執(zhí)行函數(shù)等,對這些函數(shù)出現(xiàn)的頻率進(jìn)行統(tǒng)計(jì),根據(jù)統(tǒng)計(jì)分類來判斷是否是WebShell。2015年王超[6]通過使用針對WebShell監(jiān)測的解析引擎,解析WebShell的行為,建立惡意行為庫,以此來分析是否為WebShell,但這類檢測方式需要大量的資源,部署實(shí)施難度較大;同年葉飛等人[7]提出基于支持向量機(jī)的WebShell黑盒檢測方法,通過分析WebShell的HTML特征,使用支持向量機(jī)(Support Vector Machine,SVM)方法進(jìn)行檢測;2015年朱魏魏等人[8]提出基于NN-SVM的WebShell檢測方法,該方法是在NeoPi的6個(gè)特征的基礎(chǔ)上,使用NN-SVM算法進(jìn)行檢測。2016年Thornton[9]開發(fā)了WebShell detector,由于其使用了非常多的特征庫,對WebShell檢測的準(zhǔn)確率很高,但對混淆加密的準(zhǔn)確率有待提高。2016年胡必偉[10]提出基于貝葉斯理論的WebShell檢測方法,該方法通過分析混淆加密的WebShell與正常WebShell的區(qū)別,再使用樸素貝葉斯分類進(jìn)行檢測。2017年Tian等人[11]結(jié)合行為分析,檢測WebShell的通信特征,并測試不同的機(jī)器學(xué)習(xí)算法,最后利用Word2Vec進(jìn)行文本特征提取,使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)方法進(jìn)行訓(xùn)練檢測。2018年賈文超等人[12]提出采用隨機(jī)森林改進(jìn)算法的WebShell檢測方法,該方法通過對比不同類型WebShell的特征構(gòu)建特征庫,根據(jù)度量Fisher比對特征進(jìn)行分類劃分,以此來提高決策樹的分類強(qiáng)度。

        綜上所述,基于靜態(tài)WebShell檢測有各自的優(yōu)點(diǎn),也存在各自的不足,不難發(fā)現(xiàn)關(guān)于WebShell的特征研究,大多數(shù)停留在統(tǒng)計(jì)特征和腳本內(nèi)容特征層面。隨著WebShell檢測工具的性能提升,攻擊者經(jīng)常使用混淆加密的方法隱藏WebShell以躲避檢測。opcode是php腳本編譯后的中間語言,類似Java的ByteCode,機(jī)器通過opcode獲悉執(zhí)行指令,處理提供的數(shù)據(jù)。由于opcode只關(guān)心操作指令,不關(guān)心函數(shù)名、定義等,可以有效地檢測一些加密、混淆的代碼。本文為解決混淆加密技術(shù)導(dǎo)致的檢測準(zhǔn)確率低的問題,將從WebShell編譯結(jié)果層opcode序列展開研究。

        1.2 近鄰成分分析研究現(xiàn)狀

        特征空間中學(xué)習(xí)距離度量可以極大地提高分類器的性能,在實(shí)際應(yīng)用中具有重要意義。近鄰成分分析就是一種與KNN相關(guān)聯(lián)的距離測度學(xué)習(xí)算法,通過最大化訓(xùn)練數(shù)據(jù)中留一法(Leave One Out,LOO)分類精度來搜索線性變換矩陣,利用得到的低秩矩陣,將高維訓(xùn)練數(shù)據(jù)嵌入低維空間。這種方法已經(jīng)被應(yīng)用在許多領(lǐng)域,例如文本分類、語音識(shí)別和面部識(shí)別。

        劉叢山等人提出k近鄰元分析分類算法k-NCA,通過引入k近鄰思想實(shí)現(xiàn)文本分類器功能[13]。Nguyen等人提出了一種新的人臉識(shí)別距離度量學(xué)習(xí)方法——間接鄰域成分分析(Indirect Neighborhood Component Analysis,INCA)。INCA是一次性相似性學(xué)習(xí)和近鄰成分分析方法的結(jié)合,測試發(fā)現(xiàn)即使在非常低的維度上也能取得較好的結(jié)果[14]。Wang等人為可靠識(shí)別嘈雜的人臉圖像,引入一種新穎的空間平滑正則化器(Spatially Smooth Regularizer,SSR)改進(jìn)了快速鄰域成分分析(Fast Neighborhood Component Analysis,F(xiàn)NCA)模型,從而建立了具有更高識(shí)別精度的FNCA-SSR模型[15]。Ferdinando等人探討了使用近鄰成分分析(Neighborhood Component Analysis,NCA)進(jìn)行降維處理能增強(qiáng)心電圖(Electrocardiogram,ECG)對三種類型的情感識(shí)別性能[16]。Singhmiller等人將近鄰成分分析方法應(yīng)用于語音識(shí)別器中的聲學(xué)建模,將高維聲學(xué)表示投影到低維空間中,提高了最近鄰分類器的分類精度[17]。Jin等人提出的具有NCA特征的增強(qiáng)樹模型能夠有效預(yù)測阿爾茨海默氏病不同階段,優(yōu)于主成分分析(Principal Component Analysis,PCA)、序列前向選擇(Sequential Forward Selection,SFS)等特征選擇策略[18]。Malan等人將正則化近鄰成分分析的特征選擇算法應(yīng)用于運(yùn)動(dòng)圖像的腦機(jī)接口信號(hào)分析中,增強(qiáng)了運(yùn)動(dòng)圖像信號(hào)的分類性能[19]。李雪晴等人提出基于近鄰元分析的半監(jiān)督流行學(xué)習(xí)算法能夠充分利用樣本點(diǎn)的標(biāo)簽信息[20]。Wang等人基于NCA提出一種新穎的貝葉斯度量學(xué)習(xí)算法,該算法在小型數(shù)據(jù)集或有錯(cuò)誤標(biāo)簽的訓(xùn)練集中可學(xué)習(xí)可靠的度量標(biāo)準(zhǔn)[21]。

        本文提出一種靜態(tài)的基于近鄰成分分析的WebShell特征處理方法,以字節(jié)碼向量庫作為樣本特征,使用近鄰成分分析算法構(gòu)建opcode向量庫的低維測度空間,為樣本創(chuàng)造最佳分類距離。為避免NCA過于依賴總體訓(xùn)練樣本,使用同樣根據(jù)距離作為分類標(biāo)準(zhǔn)的ReliefF特征選擇方法,從局部鄰域相似度的角度進(jìn)一步優(yōu)化特征提取性能,提高分類器檢測能力。

        2 基于近鄰成分分析的WebShell特征處理算法流程

        不同于其他的WebShell特征處理方法,本文提出一種靜態(tài)的基于近鄰成分分析的WebShell特征處理算法,使用WebShell的opcode序列特征,適合于不同種類的WebShell,且能夠有效避免混淆加密對檢測的干擾。另外,使用近鄰成分分析算法能夠在完成最大化分類準(zhǔn)確率任務(wù)的同時(shí)實(shí)現(xiàn)特征降維,不僅能解決因opcode序列特征向量維度過高引起的“維度災(zāi)難”問題,還能提升分類準(zhǔn)確率。ReliefF算法的加入,可以進(jìn)一步精簡特征,確保處理后的特征具有較高的類別區(qū)分能力,達(dá)到提高WebShell檢測結(jié)果的準(zhǔn)確率的目的。

        本文基于近鄰成分分析的WebShell特征處理算法的設(shè)計(jì)思路如圖1所示。WebShell特征處理分為兩個(gè)階段,php腳本處理和opcode文本向量處理。php腳本處理主要包括php去重,提取opcode操作碼,生成opcode文本向量。為避免重復(fù)樣本對訓(xùn)練模型造成影響,采用MD5對收集到的php文件進(jìn)行去重,刪除冗余文件。opcode是操作碼的縮寫,一條指令可以包含一個(gè)或多個(gè)操作碼。本文使用插件VLD進(jìn)行源碼和opcode的轉(zhuǎn)換,將去重后得到的每一個(gè)php腳本經(jīng)過詞法分析、語法分析、靜態(tài)編譯過程后最終得到一個(gè)opcode序列,如圖2所示。采用正則表達(dá)式的方式對齊opcode所在列,按序?qū)⒚恳粋€(gè)opcode保存下來。分別提取正樣本和負(fù)樣本的opcode序列,將結(jié)果分別保存在兩個(gè)文件下以便后續(xù)數(shù)據(jù)處理。為有效利用opcode序列的上下文關(guān)系,突出opcode序列片段的重要性,本文采用N-gram模型生成opcode詞袋。N-gram算法將一個(gè)語料片段出現(xiàn)的可能性歸結(jié)于它之前的n個(gè)語料片段,將opcode序列庫中所有的opcode序列分割成長度為n的語料片段,構(gòu)成opcode詞袋??紤]到opcode序列片段在單個(gè)php腳本及整個(gè)php數(shù)據(jù)集中的重要程度,采用TF-IDF為opcode詞袋構(gòu)建所需文本向量庫。TF-IDF算法通過詞頻(Term Frequency,TF)和逆向文件頻率(Inverse Document Frequency,IDF),即某一個(gè)opcode序列片段在給定某一php腳本對應(yīng)的opcode序列中出現(xiàn)的次數(shù),和該序列片段在所有php腳本對應(yīng)的opcode序列中出現(xiàn)的頻率,來衡量一個(gè)opcode序列片段的重要性。

        圖1 算法流程圖Fig.1 Algorithm flow chart

        圖2 opcode提取過程Fig.2 opcode extraction process

        opcode文本向量處理階段,主要解決opcode文本向量出現(xiàn)的“維數(shù)災(zāi)難”問題。本文為避免樣本不均衡問題采用smote上采樣增強(qiáng)訓(xùn)練樣本。近鄰成分分析是2005年Hinton等人提出的一種度量學(xué)習(xí)方法[2],目的是采用自適應(yīng)的方法學(xué)習(xí)一個(gè)使KNN分類正確率盡可能高的距離度量,在距離學(xué)習(xí)過程中完成高維向低維的轉(zhuǎn)化。本文利用NCA可以獲得一個(gè)使得分類正確率高的低維空間。為進(jìn)一步加強(qiáng)低維空間下特征的分類能力,緩解NCA過于依賴總體訓(xùn)練樣本,忽略局部信息帶來的問題,本文借鑒了ReliefF計(jì)算近鄰距離評(píng)估特征分類價(jià)值的方法。對低維空間下的特征按照權(quán)重大小排序,找出最具類別區(qū)分能力的特征作為KNN分類器的輸入,預(yù)測模型分類結(jié)果?;谑褂媒彸煞址治鏊惴ㄍ瓿蒾pcode文本向量處理這一過程在文中簡稱為NCA_ReliefF。NCA_ReliefF主要分為兩部分:構(gòu)建低維空間和特征選擇。NCA_ReliefF通過最大化訓(xùn)練集的留一法識(shí)別精度期望來學(xué)習(xí)變換矩陣,以完成低維空間的構(gòu)建,通過比較特征權(quán)重完成特征選擇。

        2.1 NCA_ReliefF算法流程描述

        輸入:訓(xùn)練數(shù)據(jù)集Xn×D,NCA特征提取保留的特征數(shù)量d(目標(biāo)維數(shù)),ReliefF抽樣次數(shù)m,鄰居個(gè)數(shù)re_k,最終特征保留數(shù)量s,s

        步驟1對訓(xùn)練數(shù)據(jù)集Xn×D進(jìn)行NCA特征提取,迭代次數(shù)選擇默認(rèn)值100,返回低維矩陣Ad×D;

        步驟2將訓(xùn)練數(shù)據(jù)集Xn×D嵌入低維空間中,返回?cái)?shù)據(jù)集

        步驟3從Xn×d中隨機(jī)選擇一個(gè)樣本,找出re_k個(gè)同類近鄰樣本和re_k個(gè)不同類近鄰樣本;

        步驟4更新每一個(gè)特征α的權(quán)值Wα;

        步驟5重復(fù)步驟3~步驟4過程m次,返回特征權(quán)重向量W;

        步驟6根據(jù)特征權(quán)值對特征進(jìn)行從大到小排序。

        輸出:輸出權(quán)值最大的前s個(gè)加權(quán)處理過的特征矩陣

        步驟1和步驟2的目的是利用NCA算法迭代計(jì)算出一個(gè)低維矩陣Ad×D,將訓(xùn)練集Xn×D由原本的D維空間轉(zhuǎn)化為d維(D>d),進(jìn)而避免因“維數(shù)災(zāi)難”導(dǎo)致的檢測準(zhǔn)確率不高的問題;步驟3~步驟5的主要工作是利用ReliefF特征選擇方法計(jì)算出d維空間下各個(gè)特征對分類標(biāo)簽的重要程度,最終得到一個(gè)長度為d的特征權(quán)重向量W;步驟6描述特征再選擇過程,先對權(quán)重向量W進(jìn)行排序,再篩選出前s個(gè)分類價(jià)值最大的特征,以確保特征矩陣的輸入對分類結(jié)果有積極影響。

        2.2 近鄰成分分析

        近鄰成分分析(NCA)算法采用迭代的方式自動(dòng)化完成距離矩陣的測度學(xué)習(xí),也是在這個(gè)過程中完成降維。給定n個(gè)帶標(biāo)簽的樣本(x1,x2,…,xn)∈RD,相對應(yīng)的類標(biāo)為C1,C2,…,Cn。人們希望獲得使最近鄰分類效果最優(yōu)的低維矩陣。由于數(shù)據(jù)的真實(shí)分布情況處于未知狀態(tài),將問題轉(zhuǎn)化為求訓(xùn)練數(shù)據(jù)上的留一化效果最優(yōu)。限定馬氏距離變換矩陣Q是一個(gè)對稱半正定矩陣,即Q=ATA,那么兩個(gè)樣本之間的馬氏距離為:

        式中,pij表示樣本點(diǎn)xi隨機(jī)選擇另外一個(gè)樣本點(diǎn)xj為近鄰,且最終xi繼承xj標(biāo)簽Cj的概率。那么,將樣本點(diǎn)xi正確分類的概率為:

        其中,Ci={j|Ci=Cj}。目標(biāo)函數(shù)要使得正確分類點(diǎn)的數(shù)目最大,因此定義為:

        f(A)是一個(gè)連續(xù)可微的矩陣函數(shù),算法就是要最大化目標(biāo)函數(shù)。由于這是一個(gè)無約束優(yōu)化問題,使用收斂速度快,內(nèi)存消耗小的梯度下降算法LBFGS求出A。其梯度表達(dá)式如式(5)所示,其中xij=xi-xj。

        最大化目標(biāo)函數(shù)f(A)等同于最小化真實(shí)類別分布和隨機(jī)類別分布之間的L1范數(shù)。當(dāng)A是d×D的非方陣,便可將樣本降到Rd空間。從NCA算法理論上看,其計(jì)算成本主要取決于最優(yōu)化過程的梯度計(jì)算,即式(5),每一次迭代的計(jì)算復(fù)雜度為O(dDn2),由此可知,當(dāng)數(shù)據(jù)集過大時(shí),該算法的計(jì)算效率較低。由于參照樣本是隨機(jī)選擇的,在分類時(shí)很難體現(xiàn)局部信息的優(yōu)勢,易導(dǎo)致分類結(jié)果不理想。

        2.3 ReliefF算法

        為緩解NCA過于依賴總體訓(xùn)練樣本,忽略局部信息帶來的問題,使用ReliefF計(jì)算各個(gè)特征權(quán)值。ReliefF算法中特征和類別的相關(guān)性是基于特征對近距離樣本的區(qū)分能力。從訓(xùn)練集中隨機(jī)選擇一個(gè)樣本xi,從和xi同類的樣本中尋找最近鄰樣本H,從和xi不同類的樣本中尋找最近鄰樣本M,若xi和H在特征?上的距離小于xi和M上的距離,則說明特征?對區(qū)分同類和不同類起正面作用,則增加特征?的權(quán)重;反之,則降低特征?的權(quán)重。將該過程重復(fù)m次,最后得到各個(gè)特征的平均權(quán)重。ReliefF算法偽代碼如下所示。

        算法ReliefF

        輸入:訓(xùn)練集Xn×d,抽樣次數(shù)m,最近鄰樣本個(gè)數(shù)re_k。

        輸出:d個(gè)特征的特征權(quán)重W。

        步驟1置所有特征權(quán)重為0,W為空集。

        步驟2fori=1 tom

        從Xn×d中隨機(jī)選擇一個(gè)樣本xi;

        從xi的同類樣本中找到re_k個(gè)最近鄰Hj,從不同類樣本集中找到re_k個(gè)最近鄰Mj(C),j=1,2,…,re_k;

        步驟3forα=1 tod(all features)

        End

        Return當(dāng)前特征權(quán)重向量W

        步驟3是ReliefF算法的核心部分,其中diff(?,xi,Hj)表示計(jì)算樣本xi和最近鄰?fù)悩颖綡j在特征?上的差,如式(6)所示:

        diff(?,xi,Mj(C))表示計(jì)算樣本xi和最近鄰非同類樣本Mj(C)在特征?上的差,Mj(C)表示類C?class(xi)中第j個(gè)最近鄰樣本。p(C)表示出現(xiàn)樣本標(biāo)簽為C的概率,p(class(xi))表示出現(xiàn)樣本和xi同類的概率。WebShell檢測是二分類問題,此時(shí):

        將步驟3重復(fù)m次,最后輸出各個(gè)特征的平均權(quán)重。特征權(quán)重越大表示該特征分類能力越強(qiáng),特征權(quán)重越小表示分類的能力越弱。通過對權(quán)重排序可將相關(guān)性強(qiáng)的特征保留,去除不相關(guān)的特征。

        綜上,ReliefF能夠利用鄰域衡量各特征和類別的相關(guān)性,有效找出具有類別區(qū)分能力的特征。ReliefF算法的運(yùn)行時(shí)間與樣本的抽樣次數(shù)m、特征數(shù)量d、樣本數(shù)量n相關(guān),可得出結(jié)論,ReliefF的計(jì)算復(fù)雜度為Θ(dmn)。

        本文將經(jīng)過NCA特征提取得到的矩陣Ad×D作為變換矩陣,通過計(jì)算樣本Xn×D在空間Ad×D中的投影,得到一個(gè)d維空間的樣本Xn×D。將Xn×D作為ReliefF的輸入,此時(shí)ReliefF計(jì)算Xn×D中d個(gè)特征的權(quán)值,得到權(quán)重向量W。為增加局部信息的效能,對特征進(jìn)行重新篩選,最終可得到一個(gè)s維的樣本,至此便完成了對整個(gè)數(shù)據(jù)集的預(yù)處理。為驗(yàn)證特征處理的有效性,提高模型對WebShell的檢測性能,選擇準(zhǔn)確率、召回率作為評(píng)價(jià)指標(biāo)。

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

        3.1 實(shí)驗(yàn)數(shù)據(jù)

        本實(shí)驗(yàn)所用的計(jì)算機(jī)配置如下Intel?CoreTMi3-3227U CPU@1.9 GHz,8.00 GB內(nèi)存,軟件開發(fā)環(huán)境為Windows10,編程語言是Python3,主要調(diào)用機(jī)器學(xué)習(xí)庫Sklearn。本文所使用的數(shù)據(jù)集,由Github收集項(xiàng)目經(jīng)過MD5去重篩選后得到,由566個(gè)惡意WebShell和5 378個(gè)正常php腳本構(gòu)成,如表1所示。隨機(jī)選取樣本集中80%樣本作為訓(xùn)練集,用于生成檢測模型,剩余數(shù)據(jù)作為測試集,用于檢測模型的測試。

        表1 WebShell樣本Table 1 WebShell sample

        將去重后得到的php文件進(jìn)行opcode編碼,每一個(gè)php文件經(jīng)過編碼后得到一個(gè)opcode編碼串。用TFIDF構(gòu)建詞向量模型,計(jì)算該詞組TF-IDF值,得到編譯結(jié)果層基于opcode序列的詞頻矩陣,將其作為特征向量。為提高整個(gè)模型的運(yùn)行效率,選取出現(xiàn)頻數(shù)最高的1 000個(gè)片段生成詞袋模型,通過五折交叉驗(yàn)證發(fā)現(xiàn)opcode序列片段長度n∈[]2,4時(shí),分類準(zhǔn)確率和召回率均超過95%,如圖3所示。

        圖3 語法模型參數(shù)選擇Fig.3 Syntax model parameter selection

        3.2 評(píng)估準(zhǔn)則

        實(shí)驗(yàn)中,將WebShell標(biāo)記為1,正常樣本標(biāo)記為0。分類結(jié)果混淆矩陣如表2所示。本文采用準(zhǔn)確率、召回率、F1值3個(gè)指標(biāo)評(píng)估特征選擇方法性能。

        表2 分類結(jié)果混淆矩陣Table 2 Confusion matrix of classification results

        (1)準(zhǔn)確率(acc):所有被正確判斷類別的測試樣本數(shù)量與測試樣本數(shù)量的比值。

        (2)召回率(rec):所有被正確判斷為正常事件數(shù)量與所有正常事件數(shù)量的比值。

        (3)F1值:分類問題的一個(gè)衡量指標(biāo),是精確率和召回率的調(diào)和平均數(shù),能夠反映檢測的綜合效果。

        3.3 參數(shù)選擇

        實(shí)驗(yàn)參數(shù)一共有4個(gè),NCA降維空間維度d、ReliefF迭代次數(shù)m、ReliefF鄰居個(gè)數(shù)re_k和ReliefF的特征保留數(shù)量s。

        NCA與ReliefF在計(jì)算過程中都采用了距離度量,在參數(shù)選擇過程中,本文選擇KNN分類器來衡量模型的檢測效果。近鄰計(jì)算中若k值選擇過小,得到的近鄰數(shù)過少,不僅會(huì)降低分類精度,也會(huì)放大噪聲數(shù)據(jù)的干擾;而如果k值選擇過大,對于訓(xùn)練集中數(shù)據(jù)量較少的異常樣本在選擇k個(gè)近鄰的時(shí)候,容易將并不相似的數(shù)據(jù)包含進(jìn)來,造成噪聲增加,導(dǎo)致分類效果的降低。本文采用五折交叉驗(yàn)證選取恰當(dāng)?shù)膋值,選擇k=5,在此情況下,KNN分類的召回率較高。

        NCA降維過程中,提取的特征數(shù)量對最終分類結(jié)果有很大影響,模型僅需少量的樣本就可以得到較高的預(yù)測準(zhǔn)確率。理想狀態(tài)下,期望選擇盡可能少的子特征,同時(shí)保證模型的效果不會(huì)顯著下降,類別分布盡可能地接近真實(shí)的類別分布。實(shí)驗(yàn)對比了保留100維,200維,…,900維情況下的分類性能,如圖4所示。實(shí)驗(yàn)表明,當(dāng)提取特征為200時(shí),分類準(zhǔn)確率、召回率均超過98%,F(xiàn)1值超過93%。在此基礎(chǔ)上增加提取數(shù)量時(shí),F(xiàn)1值明顯下降。為保證模型效果的前提下,最終選擇提取200個(gè)特征,d=200。

        圖4 NCA特征提取數(shù)量對分類性能影響Fig.4 Influence of number of NCA feature extractions on classification performance

        為進(jìn)一步降低存儲(chǔ)空間,提高分類速率,采用ReliefF特征選擇方法進(jìn)一步約減特征空間,獲得最優(yōu)子空間。ReliefF算法的參數(shù)m、re_k、s的確定如下:

        (1)m值的實(shí)驗(yàn)測定。s固定為100時(shí),m取值范圍[1,1 000],從中均勻取出10個(gè)值,統(tǒng)計(jì)準(zhǔn)確率、召回率、F1值。其中m=100時(shí),準(zhǔn)確率、召回率、F1值都超過了95%,召回率高達(dá)99%。

        (2)re_k值的實(shí)驗(yàn)測定。固定已經(jīng)選擇的m值為100,n固定為100時(shí),選取re_k=1,3,…,19等10種情況,如圖5所示。re_k對檢測結(jié)果的影響較小,當(dāng)近鄰數(shù)量為9時(shí),分類效果最佳,如表3所示。在此基礎(chǔ)上繼續(xù)增加近鄰數(shù)量,re_k=11時(shí),檢測效率無顯著提升。

        圖5 ReliefF近鄰數(shù)量對分類的影響Fig.5 Influence of number of ReliefF neighbors on classification performance

        (3)s的實(shí)驗(yàn)測定。固定選擇好的m=100,re_k=9時(shí),選取s=10,20,…,130,如圖6所示。統(tǒng)計(jì)準(zhǔn)確率、召回率、F1值,結(jié)果如表4所示。分類性能隨著特征選擇數(shù)量的增加逐漸穩(wěn)定,當(dāng)s=70時(shí),達(dá)到分類性能最佳,如表4所示。

        圖6 特征數(shù)量s對分類的影響Fig.6 Influence of number of features s on classification performance

        表4 特征數(shù)量s對分類性能的影響Table 4 Influence of number of features s on classification performance

        綜上,ReliefF參數(shù)已確定,迭代次數(shù)m=100,鄰居數(shù)量re_k=9,特征保留數(shù)量s=70。在這組參數(shù)設(shè)置下,可將原本1 000維的空間縮小至70,且達(dá)到的分類效果最佳,準(zhǔn)確率和召回率均超過95%,將該70維的子空間視為最優(yōu)子空間。

        現(xiàn)從準(zhǔn)確率、召回率、F1值、運(yùn)行時(shí)間四方面對基于決策樹(DT)、K近鄰(KNN)、隨機(jī)森林(RF)、支持向量機(jī)(SVM)、樸素貝葉斯(NB)五種分類器進(jìn)行比較,結(jié)果如圖7所示。

        圖7 不同分類算法對WebShell檢測性能的影響Fig.7 Influence of different classification algorithms on WebShell detection performance

        在不同的評(píng)價(jià)標(biāo)準(zhǔn)上,有的分類器在某一方面表現(xiàn)非常優(yōu)秀。由表5所示,K近鄰和隨機(jī)森林在準(zhǔn)確率、召回率和F1值方面表現(xiàn)較佳,但考慮運(yùn)行效率,基于KNN算法的WebShell檢測方法更有優(yōu)勢。

        表5 不同分類算法對WebShell檢測性能的影響Table 5 Influence of different classification algorithms on WebShell detection performance

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

        本文提出的NCA_ReliefF特征處理方法能有效檢測WebShell樣本,且在一定程度上解決了NCA特征選擇方法易忽略局部信息的問題。實(shí)驗(yàn)對比了文本向量特征、單獨(dú)使用NCA算法、單獨(dú)使用ReliefF算法和采用NCA_ReliefF算法四種處理特征方法對WebsShell檢測模型的影響。由表6可知,NCA_ReliefF綜合了NCA和ReliefF兩種算法的優(yōu)點(diǎn),在保證準(zhǔn)確率的同時(shí)提高了召回率,準(zhǔn)確率達(dá)到96%,召回率達(dá)到95%。

        表6 特征處理方法對比結(jié)果統(tǒng)計(jì)Table 6 Comparison results statistics of feature processing methods

        特征降維方法分為特征選擇和特征提取兩種,目前常用的特征提取方法有主成分分析(Principal Component Analysis,PCA)、獨(dú)立成分分析(Independent Component Analysis,ICA)、等距特征映射(Isometric Mapping,ISOMAP)。常用的特征選擇方法有互信息、相關(guān)系數(shù)、卡方檢驗(yàn)。表7對比了特征維度保持在70維時(shí),不同特征處理方法的檢測效果。由表可知,特征提取的三種方法的召回率和準(zhǔn)確率均超過93%,其中PCA耗時(shí)最短,僅需4 s。特征選擇的三種方法在召回率上表現(xiàn)欠佳,不超過90%。其中卡方檢驗(yàn)耗時(shí)最短,運(yùn)行時(shí)間不超過3 s。本文提出的NCA_ReliefF特征處理方法在準(zhǔn)確率、召回率和F1值上都優(yōu)于以上特征處理方法,但其運(yùn)行時(shí)間較長。

        表7 常見特征處理方法的檢測結(jié)果統(tǒng)計(jì)Table 7 Test results statistics of common feature processing methods

        表8 對比了最新提出的WebShell檢測模型,即基于多層感知器的檢測模型[22]、組合層面基于Fisher特征選擇和隨機(jī)森林的檢測模型[23]和本文基于近鄰成分分析的檢測模型。三種模型都是基于編譯結(jié)果層完成檢測任務(wù)。綜合對比,基于多層感知器的檢測模型能得到一個(gè)維度小的子空間,縮短了模型檢測時(shí)間,但準(zhǔn)確率和召回率均低于95%。組合層面基于Fisher特征選擇和隨機(jī)森林的WebShell檢測模型整體性能最佳,其準(zhǔn)確率和F1值均超過94%,但其特征數(shù)量較大,數(shù)據(jù)存在冗余,增加了模型的計(jì)算量。理想的WebShell檢測模型是準(zhǔn)確找出所有的異常樣本,其對召回率的期望值較高。本文提出的基于近鄰成分分析的檢測模型NCA和ReliefF方法的結(jié)合,在保證準(zhǔn)確率的同時(shí)能有效提高WebShell檢測的召回率。

        表8 各種模型檢測結(jié)果統(tǒng)計(jì)Table 8 Test results statistics of various models

        4 結(jié)束語

        本文為解決WebShell樣本的特征維度過高、檢測效果差的問題,提出了一種基于近鄰成分分析算法的WebShell特征處理算法。該算法從源碼編譯結(jié)果層出發(fā),通過NCA自動(dòng)化學(xué)習(xí)字節(jié)碼序列特征的投影矩陣,在保留全局信息的同時(shí)完成高維特征空間的約減。為避免過于依賴總體訓(xùn)練樣本,采用ReliefF特征選擇方法從局部信息的角度進(jìn)一步優(yōu)化特征處理性能。實(shí)驗(yàn)結(jié)果表明,該算法能夠減少數(shù)據(jù)維數(shù),且在保證準(zhǔn)確率的情況下,有效提高WebShell檢測的召回率。由于NCA降維算法采用留一驗(yàn)證法,計(jì)算成本較大,如何減少NCA時(shí)間復(fù)雜度,是下一步的研究重點(diǎn)。

        猜你喜歡
        特征選擇準(zhǔn)確率分類
        分類算一算
        乳腺超聲檢查診斷乳腺腫瘤的特異度及準(zhǔn)確率分析
        健康之家(2021年19期)2021-05-23 11:17:39
        不同序列磁共振成像診斷脊柱損傷的臨床準(zhǔn)確率比較探討
        2015—2017 年寧夏各天氣預(yù)報(bào)參考產(chǎn)品質(zhì)量檢驗(yàn)分析
        分類討論求坐標(biāo)
        高速公路車牌識(shí)別標(biāo)識(shí)站準(zhǔn)確率驗(yàn)證法
        數(shù)據(jù)分析中的分類討論
        教你一招:數(shù)的分類
        Kmeans 應(yīng)用與特征選擇
        電子制作(2017年23期)2017-02-02 07:17:06
        聯(lián)合互信息水下目標(biāo)特征選擇算法
        校园春色人妻激情高清中文字幕| 日韩中文在线视频| 日本熟妇精品一区二区三区| 最近中文字幕精品在线| 一边摸一边抽搐一进一出口述 | 国产伦精品一区二区三区免费| 久久国产热精品波多野结衣av| 亚洲天堂一区二区精品| 久久久国产精品123| 精品无码久久久久久国产| 99久久久久国产| 日本一区二区三区的免费视频观看| 国产亚洲熟妇在线视频| 少妇人妻精品一区二区三区| 欧美日韩亚洲精品瑜伽裤| 免费国人成人自拍视频| 日本a级一级淫片免费观看| 亚洲国产av玩弄放荡人妇系列| 91高清国产经典在线观看| 91亚洲国产成人久久精品网站| 久久国内精品自在自线| 亚洲美腿丝袜 欧美另类| 亚洲精品aⅴ无码精品丝袜足| 亚洲福利一区二区不卡| 无套内内射视频网站| 日本乱子人伦在线视频| 美女黄频视频免费国产大全| 亚洲女同av在线观看| av免费观看在线网站| 国产精品黑丝高跟在线粉嫩| 欧美另类高清zo欧美| 国产精品午夜波多野结衣性色| 少妇被躁到高潮和人狍大战| 初尝人妻少妇中文字幕| 日韩欧美亚洲综合久久影院d3| 成人影院免费观看在线播放视频 | 免费久久99精品国产| 成人h视频在线观看| 精品国产性色av网站| 蜜桃视频羞羞在线观看| 国产福利视频一区二区|