一種基于支持向量機(jī)的惡意腳本靜態(tài)檢測(cè)方法
【專利摘要】基于支持向量機(jī)的惡意腳本檢測(cè)方法,包括以下步驟:1)從互聯(lián)網(wǎng)抓取網(wǎng)頁(yè),獲得網(wǎng)頁(yè)鏈接;2)獲取鏈接對(duì)應(yīng)的Javascript腳本內(nèi)容;3)對(duì)基于腳本的web入侵如SQL注入等進(jìn)行分析,得到入侵相關(guān)的特征,并根據(jù)入侵特征對(duì)獲取的腳本內(nèi)容進(jìn)行特征提取,將每個(gè)腳本轉(zhuǎn)化成基于特征的特征向量;4)利用分類算法SVM獲得最佳分類模型,并利用該模型對(duì)獲得的特征向量進(jìn)行分類,判斷該腳本是否惡意腳本以做相關(guān)后續(xù)處理。
【專利說(shuō)明】一種基于支持向量機(jī)的惡意腳本靜態(tài)檢測(cè)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及惡意腳本測(cè)量技術(shù),尤其是惡意Javascript的靜態(tài)檢測(cè)方法。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)信息化的飛速發(fā)展,信息安全問(wèn)題越來(lái)越受到重視。計(jì)算機(jī)病毒、木馬、惡意腳本代碼是計(jì)算機(jī)網(wǎng)絡(luò)最主要的安全威脅。惡意腳本通過(guò)構(gòu)造特殊的網(wǎng)頁(yè),其中包含木馬,病毒,蠕蟲或攻擊性程序,在用戶訪問(wèn)這些網(wǎng)頁(yè)時(shí)傳播到用戶計(jì)算機(jī)中。
[0003]惡意腳本是隱藏在腳本語(yǔ)言中的特殊代碼,如js文件等,由于具有規(guī)范的腳本語(yǔ)言的格式,語(yǔ)法等,我們?nèi)菀椎玫轿募o態(tài)特征的大量信息,從中分析惡意腳本與良性腳本間的區(qū)別。
[0004]JavaScript是一種輕量級(jí)的基于對(duì)象和事件驅(qū)動(dòng)的腳本語(yǔ)言。在HTML基礎(chǔ)上使用JavaScript可以開(kāi)發(fā)交互式Web網(wǎng)頁(yè),使得網(wǎng)頁(yè)與用戶實(shí)現(xiàn)實(shí)時(shí)的,動(dòng)態(tài)的交互。但是,JavaScript也容易被用于惡意攻擊,如跨站腳本攻擊,SQL注入攻擊及被動(dòng)下載攻擊等。
[0005]JavaScript有兩個(gè)特點(diǎn):第一,JavaScript是一種像文件一樣的描述語(yǔ)言,通過(guò)瀏覽器就可以直接執(zhí)行;其二、JavaScript編寫在HTML文件中,直接查看網(wǎng)頁(yè)的原始碼,就可以看到JavaScript程序,所以沒(méi)有保護(hù),任何人都可以通過(guò)HTML文件復(fù)制程序。這兩個(gè)特點(diǎn)使JavaScript容易成為惡意程序的載體。
[0006]根據(jù)惡意腳本的執(zhí)行狀態(tài)可將目前的檢測(cè)方法分為靜態(tài)分析方法和動(dòng)態(tài)分析方法:
[0007]1、動(dòng)態(tài)檢測(cè)則是在可控的環(huán)境中運(yùn)行惡意腳本,通過(guò)觀測(cè)執(zhí)行狀態(tài),進(jìn)程等來(lái)判別惡意腳本,如監(jiān)視系統(tǒng)端口,網(wǎng)絡(luò)連接,注冊(cè)表,系統(tǒng)配置文件調(diào)動(dòng)等,來(lái)檢測(cè)異常程序進(jìn)行。該方法得運(yùn)行惡意代碼,增加了系統(tǒng)的風(fēng)險(xiǎn),而且效率不高。
[0008]2、靜態(tài)檢測(cè)是在不運(yùn)行惡意腳本的情況下,根據(jù)惡意腳本的特征,結(jié)構(gòu)等來(lái)識(shí)別,如統(tǒng)計(jì)惡意特征碼,利用判斷矩陣法對(duì)不同的統(tǒng)計(jì)方法加權(quán),然后加權(quán)幾何平均法得出檢測(cè)結(jié)果。該方法雖然檢測(cè)效率高,但是對(duì)于特征要求明顯,且并不善于檢測(cè)未知惡意代碼。
[0009]因此,由于靜態(tài)方法具有檢測(cè)效率高、資源消耗小等特點(diǎn),將基于機(jī)器學(xué)習(xí)的特征選擇和智能檢測(cè)方法用于惡意腳本檢測(cè)將具有較明顯的優(yōu)勢(shì)。
【發(fā)明內(nèi)容】
[0010]為了克服現(xiàn)有技術(shù),尤其是靜態(tài)檢測(cè)技術(shù),對(duì)于惡意腳本攻擊無(wú)法識(shí)別未知惡意腳本的問(wèn)題,本發(fā)明提出了一種檢測(cè)效率高,未知惡意腳本檢測(cè)準(zhǔn)確性良好的基于SVM的惡意腳本靜態(tài)檢測(cè)方法。該方法結(jié)合分類技術(shù)以及靜態(tài)檢測(cè)技術(shù),結(jié)合分析對(duì)惡意腳本進(jìn)行特征提取后,運(yùn)用機(jī)器學(xué)習(xí)技術(shù)SVM進(jìn)行分類。
[0011]基于支持向量機(jī)的惡意腳本檢測(cè)方法,包括以下步驟:
[0012]I)、從互聯(lián)網(wǎng)抓取網(wǎng)頁(yè),獲得網(wǎng)頁(yè)鏈接;
[0013]2)、獲取鏈接對(duì)應(yīng)的Javascript腳本內(nèi)容;[0014]3)、對(duì)基于腳本的web入侵如SQL注入等進(jìn)行分析,得到入侵相關(guān)的特征,并根據(jù)入侵特征對(duì)獲取的腳本內(nèi)容進(jìn)行特征提取,將每個(gè)腳本轉(zhuǎn)化成基于特征的特征向量;
[0015]4)、利用分類算法SVM獲得最佳分類模型,并利用該模型對(duì)獲得的特征向量進(jìn)行分類,判斷該腳本是否惡意腳本以做相關(guān)后續(xù)處理。
[0016]進(jìn)一步,詳述步驟3)中所述分析提取的特征,根據(jù)JavaScript的一些基本常規(guī)的特征,并從惡意腳本的角度,選擇了如表1所示的27個(gè)特征。
[0017]其中,惡意JavaScript和良性JavaScript特殊關(guān)鍵字的使用頻率不同,如JavaScript為了編碼而經(jīng)常使用escape函數(shù)。因此我們提出eval函數(shù)數(shù)量,setTimeout等函數(shù)數(shù)量,DOM修正函數(shù)數(shù)量等特征,提取特殊函數(shù),關(guān)鍵字的特征。JavaScript經(jīng)常使用混淆技術(shù)來(lái)規(guī)避這些特征的提取,為了減少混淆的影響,提取了如空白符占總字符長(zhǎng)度比例,字符串最大熵,整體腳本的熵等特征。
[0018]表1測(cè)試樣本的27個(gè)特征值
[0019]
【權(quán)利要求】
1.基于支持向量機(jī)的惡意腳本檢測(cè)方法,包括以下步驟:1)、從互聯(lián)網(wǎng)抓取網(wǎng)頁(yè),犾得網(wǎng)頁(yè)鏈接;2)、獲取鏈接對(duì)應(yīng)的Javascript腳本內(nèi)容;3)、對(duì)基于腳本的web入侵如SQL注入等進(jìn)行分析,得到入侵相關(guān)的特征,并根據(jù)入侵特征對(duì)獲取的腳本內(nèi)容進(jìn)行特征提取,將每個(gè)腳本轉(zhuǎn)化成基于特征的特征向量;4)、利用分類算法SVM獲得最佳分類模型,并利用該模型對(duì)獲得的特征向量進(jìn)行分類, 判斷該腳本是否惡意腳本以做相關(guān)后續(xù)處理。
2.如權(quán)利要求1所述的方法,其特征在于:步驟3)中所述分析提取的特征,根據(jù) JavaScript的一些基本常規(guī)的特征,并從惡意腳本的角度,選擇了如表1所示的27個(gè)特征,表1測(cè)試樣本的27個(gè)特征值
3.如權(quán)利要求1或2所述的方法,其特征在于:步驟4)中所述SVM分類方法,利用機(jī)器學(xué)習(xí)中公知的SVM技術(shù),歸納出已知惡意JavaScript的識(shí)別知識(shí),用以發(fā)現(xiàn)未知惡意 JavaScripto
【文檔編號(hào)】G06F21/56GK103577755SQ201310537462
【公開(kāi)日】2014年2月12日 申請(qǐng)日期:2013年11月1日 優(yōu)先權(quán)日:2013年11月1日
【發(fā)明者】王衛(wèi)紅, 秦緒佳, 呂銀均 申請(qǐng)人:浙江工業(yè)大學(xué)