陳本剛,宋禮鵬
中北大學(xué) 大數(shù)據(jù)學(xué)院 大數(shù)據(jù)與網(wǎng)絡(luò)安全研究所,太原030051
攻擊者通過網(wǎng)絡(luò)釣魚、垃圾郵件投放和惡意下載等方式欺詐用戶,這些活動會在用戶不知情的情況下訪問攻擊者提供的網(wǎng)頁以達(dá)到攻擊目的,這些網(wǎng)頁被稱為惡意網(wǎng)頁[1]。為了避免用戶訪問惡意網(wǎng)頁,及時有效地檢測出惡意網(wǎng)頁非常重要。
Ma J 等人[2]提出了基于URL 特征的大規(guī)模在線學(xué)習(xí)檢測惡意網(wǎng)頁方法,在平衡數(shù)據(jù)集上實現(xiàn)高達(dá)99%的分類準(zhǔn)確度。李夢玉等人[3]提出了基于URL 的高斯混合聚類惡意網(wǎng)頁檢測方法,達(dá)到了較高的準(zhǔn)確度。但以上方法都未考慮攻擊者利用縮短服務(wù)隱藏攻擊意圖的問題。縮短服務(wù)是將長URL 映射為短URL 的服務(wù),訪問短鏈接即可重定向到原始的URL。被縮短后的URL不再具有原始URL 常見的特征,使得基于URL 特征相關(guān)特征失效,攻擊者利用縮短服務(wù)隱藏攻擊意圖,從而導(dǎo)致僅依賴URL特征的學(xué)習(xí)方法。
目前存在許多針對惡意網(wǎng)頁檢測的研究方法,如黑名單[4]和啟發(fā)式方法[5],隨數(shù)據(jù)規(guī)模擴(kuò)大和時效性要求提升,傳統(tǒng)方法面臨無法檢測出新出現(xiàn)威脅的問題。因此,研究者提出機(jī)器學(xué)習(xí)的檢測方法。樸楊鶴然等人[6]提出一種基于stacking 的惡意網(wǎng)頁集成檢測方法,獲得了98.12%的高準(zhǔn)確率。但未考慮實際惡意網(wǎng)頁檢測任務(wù)的高度類別不均衡問題,在惡意遠(yuǎn)小于良性網(wǎng)頁數(shù)量的不均衡數(shù)據(jù)集上,簡單將所有網(wǎng)頁都預(yù)測為良性的分類器能達(dá)到很高的準(zhǔn)確率。簡單的優(yōu)化分類準(zhǔn)確率以及僅用準(zhǔn)確率作為評價指標(biāo)不適用于實際的惡意網(wǎng)頁檢測任務(wù)。
為了解決上述問題,本文提出了一種融合網(wǎng)頁內(nèi)容層次語義樹特征的成本敏感學(xué)習(xí)的檢測方法,考慮到URL縮短服務(wù)導(dǎo)致被縮短后的URL不再具有原始URL特征,通過構(gòu)建網(wǎng)頁內(nèi)容鏈接層次語義樹,并提取相應(yīng)特征,這類特征在縮短服務(wù)前后具有不可變性,不受URL 縮短服務(wù)的影響,解決了利用URL 縮短服務(wù)導(dǎo)致檢測失效的問題。通過優(yōu)化兩種成本敏感度量的目標(biāo)函數(shù),并構(gòu)建成本敏感學(xué)習(xí)模型,解決惡意網(wǎng)頁檢測任務(wù)中數(shù)據(jù)類別不均衡問題。實驗表明,與現(xiàn)有方法相比在檢測性能和效率上都有所提升。
融合網(wǎng)頁內(nèi)容層次語義樹特征的成本敏感學(xué)習(xí)惡意網(wǎng)頁檢測方法框架如圖1 所示。在問題分析模塊中給出了惡意網(wǎng)頁檢測中存在的兩類問題:利用縮短服務(wù)躲避檢測、惡意和良性數(shù)據(jù)類別不均衡。在解決方案模塊中分別從特征工程角度和學(xué)習(xí)模型角度解決了上述兩個問題。
URL縮短服務(wù)使得被縮短后的URL不再具有原始URL 常見的特征,導(dǎo)致僅依賴于URL 特征的檢測方法失效,攻擊者可利用URL 縮短服務(wù)的這類特性躲避檢測。針對這一問題,從特征工程角度,構(gòu)建網(wǎng)頁內(nèi)容鏈接層次語義樹并提取相關(guān)特征,與網(wǎng)頁其他相關(guān)特征一并歸類為結(jié)構(gòu)、語義和統(tǒng)計特征,確保在URL縮短時部分特征仍然有效。
在學(xué)習(xí)模型的構(gòu)建過程中,常規(guī)的監(jiān)督學(xué)習(xí)方法不適用于數(shù)據(jù)類別不均衡的惡意網(wǎng)頁檢測任務(wù)。針對這一問題,從學(xué)習(xí)模型的角度,通過優(yōu)化兩類成本敏感的目標(biāo)函數(shù),提升惡意網(wǎng)頁的誤判代價,解決了簡單將所有網(wǎng)頁判定為良性網(wǎng)頁即可獲取高準(zhǔn)確率的問題。
基于上述相關(guān)特征和所構(gòu)建的成本敏感學(xué)習(xí)模型組成了融合網(wǎng)頁內(nèi)容層次語義樹特征的成本敏感學(xué)習(xí)惡意網(wǎng)頁檢測方法。使用帶標(biāo)簽數(shù)據(jù)集訓(xùn)練模型,分別在帶標(biāo)簽和不帶標(biāo)簽的測試數(shù)據(jù)上評估了方法的性能。
針對縮短服務(wù)導(dǎo)致僅基于URL特征的惡意網(wǎng)頁檢測方法失效的問題,惡意網(wǎng)頁特征從URL(如圖2)和HTML 源文件中提取相關(guān)特征。并對網(wǎng)頁內(nèi)容中的超鏈接及相應(yīng)的錨文本進(jìn)行語義分析,并對網(wǎng)頁內(nèi)容中的超鏈接及相應(yīng)的錨文本進(jìn)行語義分析,構(gòu)建層次語義樹描述網(wǎng)頁中的超鏈接行為。受到相關(guān)工作[7]的啟發(fā),共提取了513維均屬于輕量級靜態(tài)特征,不依賴于預(yù)先計算、先驗知識以及特定自然語言,只需從單條原始數(shù)據(jù)中提取特征向量,擺脫了傳統(tǒng)方法需要上下文信息的特征,適用于在線學(xué)習(xí)檢測任務(wù),且不損失檢測準(zhǔn)確性。
圖1 融合網(wǎng)頁內(nèi)容鏈接層次語義樹特征的成本敏感學(xué)習(xí)檢測方法框架
圖2 特征提取URL源
便于惡意網(wǎng)頁特征的特征選擇和貢獻(xiàn)度分析,從惡意網(wǎng)頁目標(biāo)、行為表現(xiàn)以及屬性的角度,將特征歸類為結(jié)構(gòu)特征、語義特征和統(tǒng)計特征,特征值的類型包括離散型(binary)、比值型(rational)、整型(integer)和向量型(vector),并對部分特征的領(lǐng)域知識和相關(guān)因素統(tǒng)計分析和描述。從特征貢獻(xiàn)度的角度分析這三類特征,并根據(jù)貢獻(xiàn)度進(jìn)行特征選擇,所提出的特征具有較強(qiáng)的辨識度,其中語義類特征的貢獻(xiàn)度相對高于統(tǒng)計特征和結(jié)構(gòu)特征,特征預(yù)處理和貢獻(xiàn)度分析的具體過程在3.2節(jié)中。
2.1.1 結(jié)構(gòu)特征
結(jié)構(gòu)特征側(cè)重于提取原始數(shù)據(jù)中的結(jié)構(gòu)信息,包含URL、HTML 源文件以及源文件中的JS 片段的結(jié)構(gòu)特征。結(jié)構(gòu)特征中的包含IP地址、查詢鍵值對數(shù)、JS最長字符串長為新增加的特征。部分結(jié)構(gòu)特征的列舉如表1和領(lǐng)域知識的分析如下。
(#1)URL長度。攻擊者使用長URL隱藏地址欄的可疑部分。目前無可靠URL長度閾值區(qū)分惡意和良性網(wǎng)頁,文獻(xiàn)[8]中給出良性長度為75,但未給出證明。為了確保特征的準(zhǔn)確性,計算數(shù)據(jù)集中的良性和惡意的URL 長度的均值。分析得出,若URL 的長度小于或等于54,則被歸為良性,若大于74,則URL 被歸為惡意。其中URL長度大于等于54的實例有1 220個,占48.8%。
(#2)包含IP 地址。若用IP 地址替代URL 中的域名,例如http://125.98.3.123/fake.html,則幾乎可確定該網(wǎng)頁試圖竊取個人信息。統(tǒng)計數(shù)據(jù)集顯示,570個URL使用IP地址作為域名。
(#3)查詢的鍵值對數(shù)。URL 可分解成通用格式如圖2,包括協(xié)議、域名、路徑、query和fragment,其中query由鍵值對組成。攻擊者可能修改任意一個部分以發(fā)起攻擊。當(dāng)前特征主要關(guān)注惡意修改query部分的攻擊的執(zhí)行情況。
表1 部分結(jié)構(gòu)特征的描述
(#4)JS片段占HTML文件比。JS腳本相對于HTML源文件總體的大小。源文件中JS 腳本越多,實際可見內(nèi)容越少,執(zhí)行越多,更易用JS發(fā)起攻擊。
(#5)JS最長字符串長。惡意JS通常使用混淆隱藏攻擊意圖?;煜齁S 代碼通常包含長字符串,它表示編碼或者加密,用于像eval 函數(shù)的參數(shù)。有很長(例如超過350個字符[9])的字符串的腳本更有可能被混淆。圖3的混淆代碼中包含814個字符,計算最長字符串大小。
圖3 混淆的JS代碼
2.1.2 語義特征
側(cè)重于從惡意網(wǎng)頁領(lǐng)域知識的語義角度提取特征,包括對URL、HTML 源文件以及JS 片段進(jìn)行語義分析提取的特征。另外,受DOM結(jié)構(gòu)樹的啟發(fā),對超鏈接及錨文本進(jìn)行語義分析,分析鏈接關(guān)系來描述超鏈接跳轉(zhuǎn)行為。語義特征中的URL使用縮短服務(wù)和層次語義樹新增加的特征。部分特征的詳細(xì)描述如表2。
表2 部分語義特征的描述
(#1)使用縮短服務(wù)。攻擊者通常使用縮短服務(wù)隱藏URL 中的攻擊意圖,長的URL 通過縮短服務(wù)映射到短地址,是通過短域名的“HTTP重定向”實現(xiàn)的,該域名鏈接到長URL 的網(wǎng)頁。例如,http://portal.hud.ac.uk/可縮短為bit.ly/19DXSk4,通過特定域名后綴判定。
(#2)使用”-”分割增加域名前后綴。下劃線符號很少用于合法網(wǎng)址。網(wǎng)絡(luò)釣魚者傾向于將“-”分隔的前綴或后綴添加到域名中,給用戶一種合法網(wǎng)頁的視覺欺騙。例如http://www.Confirme-paypal.com/。
(#3)URL子域名和多重子域名。假設(shè)有以下鏈接:http://www.nuc.edu.cn/students/。域名可能包括頂級域名,edu.cn稱為二級域,“nuc”是實際域名。先從URL中去掉(www.),刪除頂級域名(如果存在),計算剩余的點數(shù)。若大于1,則URL為可疑,因為有一個子域。但是,如果點大于2,則將其歸類為惡意,因為有多個子域。否則,若URL無子域,則為良性。
圖4 網(wǎng)頁鏈接層次語義樹
(#4)網(wǎng)頁內(nèi)容鏈接的層次語義樹特征。對數(shù)據(jù)集的超鏈接及其錨文本進(jìn)行語義分析,發(fā)現(xiàn)惡意網(wǎng)頁多個鏈接指向同一外域,對錨文本語義拆分后提取關(guān)鍵詞發(fā)現(xiàn)同一批字符同時出現(xiàn)的概率高。通過構(gòu)建網(wǎng)頁鏈接層次語義樹,描述網(wǎng)頁的超鏈接的跳轉(zhuǎn)行為:(1)先提取網(wǎng)頁中的所有超鏈接以及相應(yīng)的錨文本;(2)鏈接及其錨文本作為語義樹的節(jié)點,鏈接如圖4的層次結(jié)構(gòu)的語義解析;(3)利用鏈接的層次結(jié)構(gòu)將多個節(jié)點構(gòu)造成語義樹,從語義樹提取特征。語義樹每節(jié)點為一個三元組,定義為集合{URL|(x,y,z)},其中x y z 參數(shù)分別表示鏈接層次字符、鏈接對應(yīng)的錨文本、鏈接頻次,例如圖4中的/password/節(jié)點取值為{URL|(“/password/”,“重設(shè)密碼”,11)}。以URL 作為根節(jié)點,提取語義樹的相關(guān)特征,例如圖4中鏈接層次語義樹的特征向量(樹深,樹寬,總節(jié)點數(shù),葉節(jié)點數(shù),子樹數(shù),子樹深,外域子樹數(shù))的取值為(4,15,22,15,6,2,5)。結(jié)合這類特征以及網(wǎng)頁內(nèi)容相關(guān)特征,可解決縮短服務(wù)導(dǎo)致地址欄URL特征失效的問題。
2.1.3 統(tǒng)計特征
側(cè)重于統(tǒng)計分布特征,描述統(tǒng)計分布規(guī)律,如URL的域名部分的n-gram 字符頻率分布,HTML 源文件和JS片段的信息熵等,其中域名1-gram為新增加的特征,如表3所示。
表3 部分統(tǒng)計特征的描述
(#1)域名1-gram。用N-gram[10]模型對域名提取字符序列特征,N-gram 假設(shè)序列中第N 個字符只與其前的N-1 個字符有關(guān),與其他字符無關(guān)。1-gram表示每個字符獨立,提取域名的字符頻率分布。正常域名都會偏向選取可讀性好的字母或拼音組合,抽象成數(shù)學(xué)語言,即為英文的元音字母的比例較高。而惡意網(wǎng)頁域名這方面特性不明顯。
(#2)HTML 熵值。熵值是信息內(nèi)容不確定性的指標(biāo),被用來分析不同文本的字符分布,一般惡意網(wǎng)頁比良性網(wǎng)頁具有更小的熵值。
(#3)JS熵值。與HTML-熵值的計算方式類似?;煜a包含重復(fù)字串,所以混淆JS 代碼一般具有比正常JS 代碼更低的熵值,統(tǒng)計表明混淆JS 代碼的熵值小于1.2,而正常JS代碼為1.2~2.1。
2.2.1 成本敏感學(xué)習(xí)方法
圖5 成本敏感學(xué)習(xí)的流程
成本敏感學(xué)習(xí)的惡意網(wǎng)頁檢測流程如圖5,對訓(xùn)練數(shù)據(jù)提取第2.1 節(jié)中的結(jié)構(gòu)、語義和統(tǒng)計特征,在3.2 節(jié)中分析其貢獻(xiàn)度并證明有效性。訓(xùn)練成本敏感及其他學(xué)習(xí)模型,在帶標(biāo)簽數(shù)據(jù)和不帶標(biāo)簽測試集中評估各模型的性能,訓(xùn)練好的模型用來檢測新出現(xiàn)的網(wǎng)頁。該檢測方法分別從特征工程和模型構(gòu)建的角度解決了實際的惡意網(wǎng)頁檢測任務(wù)中出現(xiàn)的縮短服務(wù)及數(shù)據(jù)類別不均衡問題。
實際的惡意網(wǎng)頁檢測任務(wù)中,惡意網(wǎng)頁數(shù)量遠(yuǎn)小于良性網(wǎng)頁的數(shù)據(jù)不均衡問題極其嚴(yán)重,使得模型偏向于預(yù)測為良性網(wǎng)頁或者出現(xiàn)簡單將所有網(wǎng)頁都預(yù)測為良性的分類器能達(dá)到很高的準(zhǔn)確率的情況。與常見的有監(jiān)督學(xué)習(xí)相比,成本敏感學(xué)習(xí)更適用于實際的惡意網(wǎng)頁檢測任務(wù)。針對惡意網(wǎng)頁數(shù)據(jù)類別不均衡問題設(shè)計算法時必須考慮不同類別實例的誤報代價,在目標(biāo)函數(shù)的構(gòu)建過程中,通過優(yōu)化兩個成本度量解決不均衡問題。并引入擴(kuò)展性好的在線學(xué)習(xí),可隨網(wǎng)頁的到達(dá)頻繁更新有效應(yīng)對新出現(xiàn)的威脅;通過主動學(xué)習(xí)在傳入網(wǎng)頁的分類置信度低或正確預(yù)測存在高度不確定性時才會主動查詢標(biāo)簽,節(jié)省了大量數(shù)據(jù)的標(biāo)注成本?;诔杀久舾袑W(xué)習(xí)惡意網(wǎng)頁檢測流程如圖5。方法旨在解決兩個問題:(1)分類器必須決定何時該查詢傳入網(wǎng)頁實例的標(biāo)簽;(2)如何有效地更新分類器。探索主動學(xué)習(xí)解決第一個問題,研究成本敏感的在線學(xué)習(xí)策略解決第二個問題。
2.2.2 成本敏感度量的定義
使用xt∈?d表示第t 輪傳入網(wǎng)頁特征向量,wt∈?d是前t-1 訓(xùn)練樣本學(xué)習(xí)得到的模型。使用=sign(wt?xt)表示t 輪實例的預(yù)測結(jié)果, ||wt?xt表示預(yù)測置信度。 xt相應(yīng)實例的真實標(biāo)簽為yt∈{ }-1,+1 ,若,則模型誤判。
假設(shè)網(wǎng)頁集合(x1,y1),(x2,y2),…,(xT,yT) 訓(xùn)練惡意網(wǎng)頁在線檢測模型,其中標(biāo)簽yt的顯示取決于該網(wǎng)頁是否需要查詢標(biāo)簽。訓(xùn)練過程中,常規(guī)的監(jiān)督學(xué)習(xí)方法優(yōu)化準(zhǔn)確率,對數(shù)據(jù)集類別不均衡的惡意網(wǎng)頁檢測任務(wù)不適用。因此優(yōu)化更合適的性能指標(biāo),如敏感度(sensitivity)和特異性(specificity)的線性加權(quán),即:
其中,0 ≤ηp,ηn≤1 分別為惡意和良性實例的正確識別的權(quán)重參數(shù),且ηp+ηn=1,其中sensitivity 為所有惡意網(wǎng)頁中被正確識別的比例,specificity 為所有良性網(wǎng)頁中被正確識別的比例。當(dāng)ηp=ηn=1/2 時,sum 為平衡精度。sum 越大,模型性能越好。另一合適的評價指標(biāo)為模型錯分總代價cost,即:
其中,Mp和Mn分別為正樣本和負(fù)樣本的誤判數(shù)量,0 ≤cp,cn≤1 分別為惡意和良性實例的誤判代價參數(shù),且cp+cn=1。cost 越小,模型性能越好。
2.2.3 成本敏感學(xué)習(xí)算法
通過優(yōu)化上述的sum 和cost 兩個成本敏感度量[11],構(gòu)建在線惡意網(wǎng)頁檢測模型。介紹算法之前,需要證明嵌入成本敏感度量的目標(biāo)函數(shù)。為了解決成本敏感分類問題,優(yōu)化目標(biāo)sum 最大化或cost 最小化等價于以下目標(biāo)函數(shù)最小化:
其中,ρ 為成本敏感因子,當(dāng)ρ=ηpTn/ηnTp時,上述目標(biāo)函數(shù)最小化表示sum最大化。當(dāng)ρ=cp/cn時,上述目標(biāo)函數(shù)的最小化表示cost 最小化。||(s)為指標(biāo)函數(shù),滿足條件s 時值為1 否則為0,其他變量描述如2.2.2 節(jié)。兩類成本敏感度量的目標(biāo)函數(shù)的證明過程如下:
其中,Tp和Tn分別為訓(xùn)練集中惡意網(wǎng)頁的數(shù)量和良性網(wǎng)頁的數(shù)量,其他變量的描述如2.2.2節(jié),上述需要優(yōu)化的目標(biāo)函數(shù)為非凸函數(shù),轉(zhuǎn)化為凸優(yōu)化問題,改進(jìn)后的hinge損失為:
在線學(xué)習(xí)原始目標(biāo)函數(shù)如下:
算法中懲罰系數(shù)C 和偏差系數(shù)ρ 設(shè)置為C=ρ=Tn/Tp,sum 優(yōu)化目標(biāo)中的正確識別權(quán)重參數(shù)以及cost優(yōu)化目標(biāo)中的誤判代價參數(shù)設(shè)置為ηp=cp=Tn/(Tp+Tn),ηn=cp=Tp/(Tp+Tn),為了保證訓(xùn)練初期需要更多的訓(xùn)練實例,采樣因子δ 的初始設(shè)置為0.5。算法描述如下:
算法 成本敏感在線主動學(xué)習(xí)
輸入懲罰系數(shù)C,偏差系數(shù)ρ 和采樣因子δ。
初始化w1=0
for t=1,2,…,T do
傳入網(wǎng)頁實例xt∈?d
if Zt=1 then
查詢標(biāo)簽yt∈{ }
-1,+1
wt+1=wt+τtytxt
else
wt+1=wt+τtytxts.t.τt=0
end if
end for
訓(xùn)練模型所用數(shù)據(jù)集包含帶標(biāo)簽的網(wǎng)頁4萬條,惡意與良性網(wǎng)頁的比例為78.8∶1。測試實際模型泛化能力的數(shù)據(jù)集包含不帶標(biāo)簽網(wǎng)頁25萬條。數(shù)據(jù)集中的一部分為2017 網(wǎng)絡(luò)信息安全對抗賽[14],均為真實的URL及其網(wǎng)頁源代碼,一部分來自于Phishtank[15]發(fā)布的惡意網(wǎng)頁黑名單,還有一部分是從Alexa中收集到的良性網(wǎng)頁。
第2 章中提取的惡意網(wǎng)頁檢測相關(guān)特征共513 維,所有特征均為靜態(tài)輕量級特征。將這些特征歸類為結(jié)構(gòu)、語義和統(tǒng)計三類,做特征選擇和貢獻(xiàn)度的分析,尤其對新提出的鏈接層次語義特征貢獻(xiàn)度進(jìn)行分析,特征選擇流程如圖6。
圖6 特征處理流程圖
使用feature_important[16]對特征選擇之后的114 個特征做貢獻(xiàn)度分析,計算并平均每個特征的基尼雜質(zhì)的減少,根據(jù)此值排序特征的貢獻(xiàn)度。貢獻(xiàn)度top20 的特征如表4,分?jǐn)?shù)為每個特征對分類的貢獻(xiàn)度。結(jié)果顯示,新提出的鏈接層次語義樹特征貢獻(xiàn)度分?jǐn)?shù)相對較高。語義類特征的貢獻(xiàn)度相對高于統(tǒng)計特征和結(jié)構(gòu)特征。
測試提取的特征和成本敏感在線主動學(xué)習(xí)方法在惡意網(wǎng)頁檢測任務(wù)中的有效性,考慮了SVM、RF和XGBoost 算法。使用默認(rèn)的參數(shù)配置這些分類器,詳細(xì)介紹這些分類器超出本文范圍,成本敏感在線主動學(xué)習(xí)方法也在第2章中詳細(xì)介紹過,所以僅提供簡介如下:
表4 特征貢獻(xiàn)度top20
RF:使用多個決策樹訓(xùn)練一個非概率分類器,多數(shù)投票預(yù)測類別。
SVM:訓(xùn)練幾何間隔最大化的最優(yōu)分類超平面,通過核函數(shù)解決線性不可分問題。
XGBoost:梯度提升決策樹的一種變體,引入正則項防過擬合,對損失函數(shù)二階泰勒展開使目標(biāo)函數(shù)更精確收斂到全局最優(yōu)。使用可并行近似直方圖算法,高效生成候選分割點。
成本敏感在線主動學(xué)習(xí):構(gòu)建優(yōu)化兩類成本敏感度量目標(biāo)函數(shù)。訓(xùn)練過程中,對每個傳入的實例采用主動學(xué)習(xí)判斷是否查詢標(biāo)簽,然后決定是否用該實例更新模型。不僅適用于類別不均衡數(shù)據(jù)集,且模型只需一定數(shù)量的訓(xùn)練數(shù)據(jù)即可達(dá)到使用所有訓(xùn)練樣本的常規(guī)監(jiān)督學(xué)習(xí)的性能,更適用于解決惡意網(wǎng)頁檢測任務(wù)。
評估本文方法和現(xiàn)有方法的效率和性能,從訓(xùn)練數(shù)據(jù)集中提取上述特征向量,訓(xùn)練上述四個分類器。在帶標(biāo)記的數(shù)據(jù)集中,對各分類器的性能和效率進(jìn)行了評估。另外,測試模型實際泛化能力,訓(xùn)練好的分類器在25萬條無標(biāo)簽數(shù)據(jù)集中檢測惡意網(wǎng)頁。
3.4.1 帶標(biāo)簽數(shù)據(jù)集上的評估
評估分類器在帶標(biāo)簽測試數(shù)據(jù)集上分類效率和性能,避免在訓(xùn)練集測試集的隨機(jī)分區(qū)中可能引入錯誤,采用10折交叉驗證策略訓(xùn)練上述分類器??紤]到數(shù)據(jù)集類別不均衡對準(zhǔn)確率的影響,除了accur(準(zhǔn)確率),表5中還引入了sens(sensitivity,靈敏度)、spec(specificity,特異性)及query(訓(xùn)練所需數(shù)據(jù)占訓(xùn)練集的比例)和time(預(yù)測耗時)等評價指標(biāo),計算公式如下:
表5 各學(xué)習(xí)方法的性能對比
其中TP FP TN FN 分別表示真正、假正、真負(fù)、假負(fù)網(wǎng)頁數(shù)。除了time 和query,以上評價指標(biāo)值越大則分類器性能越好。
各學(xué)習(xí)方法在帶標(biāo)簽數(shù)據(jù)集表現(xiàn)如表5,使用特征選擇后的114 維特征訓(xùn)練分類器。上述各分類器整體分類準(zhǔn)確率超過了94%。
成本敏感指標(biāo)最好的分類器為成本敏感在線主動學(xué)習(xí),其靈敏度為97.9%,特異性為96.7%,本文方法在靈敏度和特異性上均優(yōu)于其他監(jiān)督學(xué)習(xí)方法。通過主動學(xué)習(xí),僅使用21.4%訓(xùn)練數(shù)據(jù)的分類器,即可達(dá)到較好檢測性能,能在保持檢測效果的同時節(jié)省大量數(shù)據(jù)標(biāo)注成本。
為了對比減少訓(xùn)練數(shù)據(jù)對其他監(jiān)督學(xué)習(xí)方法性能的影響,正負(fù)樣本分層隨機(jī)選取訓(xùn)練數(shù)據(jù)中的21.4%,訓(xùn)練SVM、RF 和XGBoost 模型,在帶標(biāo)簽的數(shù)據(jù)集表現(xiàn)如表6,顯示減少訓(xùn)練數(shù)據(jù)會極大地降低其他有監(jiān)督學(xué)習(xí)模型的性能。
表6 各學(xué)習(xí)方法的性能對比(隨機(jī)選取21.4%訓(xùn)練數(shù)據(jù)) %
3.4.2 無標(biāo)簽數(shù)據(jù)集上的評估
評估上述分類器從無標(biāo)簽數(shù)據(jù)集中檢測惡意的網(wǎng)頁的實際泛化能力,使用主流反病毒工具VirusTotal 和人驗證方式做進(jìn)一步驗證。人工驗證方法為從攻擊者角度進(jìn)行,先找出該網(wǎng)頁的仿制對象,再采用人工對比確認(rèn)其是否為惡意網(wǎng)頁。實驗結(jié)果如表7 所示,其中malicious 為分類器檢測為惡意的網(wǎng)頁數(shù),rest 為未被VirusTotal所驗證出網(wǎng)頁數(shù),manual為rest中被人工驗證為惡意網(wǎng)頁數(shù),即VirusTotal所漏報的惡意網(wǎng)頁。
表7 各學(xué)習(xí)方法在25萬條無標(biāo)簽數(shù)據(jù)集的表現(xiàn)
如表7顯示,本文方法從25萬條無標(biāo)簽數(shù)據(jù)中檢測出875個惡意網(wǎng)頁,VirusTotal僅驗證其中470個為惡意網(wǎng)頁,人工驗證剩余的405 條中的386 為惡意網(wǎng)頁。結(jié)果顯示本文方法優(yōu)于反病毒工具VirusTotal和常規(guī)監(jiān)督學(xué)習(xí)方法。
3.4.3 評估集成為惡意檢測插件的潛力
目前存在瀏覽器插件的惡意網(wǎng)頁檢測方法,為了評估本文方法作為瀏覽器插件的在線實時檢測器的潛力,分析惡意網(wǎng)頁檢測中每一步的耗時。網(wǎng)頁特征向量提取耗時與分類器的預(yù)測耗時總和為單個網(wǎng)頁的檢測時間,表5 中最差的分類器SVM 平均單個網(wǎng)頁預(yù)測耗時只需要0.006 ms,相比于網(wǎng)頁特征向量提取耗時,預(yù)測耗時可忽略不計。平均每個網(wǎng)頁的特征向量提取耗時78 ms 可作為集成為瀏覽器插件檢測惡意網(wǎng)頁的真實時間開銷。
本文提出的網(wǎng)頁鏈接層次語義樹特征可有效解決URL縮短服務(wù)帶來的威脅,與常規(guī)監(jiān)督學(xué)習(xí)方法相比成本敏感在線學(xué)習(xí)解決了惡意網(wǎng)頁檢測任務(wù)中數(shù)據(jù)類別不均衡問題。本文方法在惡意網(wǎng)頁檢測中優(yōu)于主流的反病毒工具VirusTotal。未來研究中將嘗試成本敏感多分類惡意檢測方法和基于瀏覽器插件的惡意網(wǎng)頁檢測的集成。