欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于ragel狀態(tài)機(jī)的惡意腳本檢測方法及系統(tǒng)與流程

文檔序號:12669985閱讀:351來源:國知局
一種基于ragel狀態(tài)機(jī)的惡意腳本檢測方法及系統(tǒng)與流程

本發(fā)明涉及計算機(jī)網(wǎng)絡(luò)安全領(lǐng)域,特別涉及一種基于ragel狀態(tài)機(jī)的惡意腳本檢測方法及系統(tǒng)。



背景技術(shù):

現(xiàn)有已知惡意腳本一般為javascript、Visual Basic Script、HTML、python、java等,這些惡意代碼往往對代碼進(jìn)行加密混淆處理,還原真實腳本后,一般多為下載木馬等操作。惡意腳本不同于傳統(tǒng)的病毒,它具有變形簡單的特點,通過多樣化的混淆機(jī)制隱藏自己,它還能動態(tài)創(chuàng)建內(nèi)嵌鏈接,并編碼鏈接內(nèi)容。

ragel是個有限狀態(tài)機(jī)編譯器,可將基于正則表達(dá)式(ragel正則表達(dá)式類似于一般的正則表達(dá)式,但是語法有少量區(qū)別)的狀態(tài)機(jī)編譯成傳統(tǒng)語言(如C,C++,D,Java,Ruby等)的解析器。ragel不僅僅可以用來解析字節(jié)流,它實際上可以解析任何可以用正則表達(dá)式表達(dá)出來的內(nèi)容,而且可以很方便的將解析代碼嵌入到傳統(tǒng)語言中。

現(xiàn)有對于惡意腳本的檢測方法主要是采用特征匹配檢測或采用機(jī)器學(xué)習(xí)的方法進(jìn)行檢測。

采用特征碼進(jìn)行惡意腳本檢測主要是根據(jù)已知惡意腳本樣本庫程序代碼本身的特點來檢測未知腳本程序是否為惡意腳本程序,主要是對腳本進(jìn)行解析,提取腳本中惡意代碼特征,并將這些特征和篩選出的特征集進(jìn)行比較,若代碼特征相匹配則將腳本程序定義為惡意腳本,反之則為普通腳本程序。其缺陷是提取的特征碼往往是腳本中某一段字符串的HASH或提取一段正則特征,由于腳本是文本形式,其特征匹配往往需要對全文進(jìn)行搜索匹配,隨著特征量的增加,檢測需要耗費較長時間。

采用機(jī)器學(xué)習(xí)的方法進(jìn)行惡意腳本檢測的缺點是需要對大量惡意腳本進(jìn)行學(xué)習(xí),不斷迭代,誤報率相對較高。



技術(shù)實現(xiàn)要素:

本發(fā)明提出一種基于ragel狀態(tài)機(jī)的惡意腳本檢測方法及系統(tǒng),解決了現(xiàn)有腳本檢測方法效率低,誤報率高的問題,實現(xiàn)了對腳本文件的快速檢測。

本發(fā)明首先提出了一種基于ragel狀態(tài)機(jī)的惡意腳本檢測方法,包括:

解析已知惡意腳本文件,提取惡意字符串ragel正則表達(dá)式;

將提取到的惡意字符串ragel正則表達(dá)式組成檢測特征庫源文件;

將所述檢測特征庫源文件編譯為待檢測腳本文件的語言;

將編譯后的檢測特征庫源文件集成到待檢測腳本文件的檢測模塊中;

獲取并加載待檢測腳本文件;

利用ragel正則狀態(tài)機(jī)檢測待檢測腳本文件;

判斷待檢測腳本文件與檢測特征庫源文件中的惡意字符串ragel正則表達(dá)式是否匹配,如果是,則所述待檢測腳本文件為惡意,否則所述待檢測腳本文件為普通文件。

所述的方法中,解析已知惡意腳本文件,提取惡意字符串ragel正則表達(dá)式具體為:按照惡意代碼家族或變種分類解析惡意腳本文件,去除非惡意代碼部分,保留惡意代碼部分;并根據(jù)惡意代碼家族或變種具有共性的惡意代碼部分,提取一條或多條ragel正則表達(dá)式。

所述的方法中,所述將提取到的惡意字符串ragel正則表達(dá)式組成檢測特征庫源文件具體為:采用ragel狀態(tài)機(jī)語法格式構(gòu)造檢測特征庫源文件。

所述的方法中,所述檢測特征庫源文件的檢測接口的輸入為待檢測腳本文件的buf及大小,輸出為檢測結(jié)果及病毒名。

所述的方法中,所述判斷待檢測腳本文件與檢測特征庫源文件中的ragel正則表達(dá)式是否匹配,具體為,判斷待檢測腳本文件與檢測特征庫源文件中是否有一條或多條ragel正則表達(dá)式相同,如果是則匹配。

本發(fā)明還同時提出一種基于ragel狀態(tài)機(jī)的惡意腳本檢測系統(tǒng),包括:

解析模塊,用于解析已知惡意腳本文件,提取惡意字符串ragel正則表達(dá)式;

生成庫模塊,用于將提取到的惡意字符串ragel正則表達(dá)式組成檢測特征庫源文件;

編譯模塊,用于將所述檢測特征庫源文件編譯為待檢測腳本文件的語言;

集成模塊,用于將編譯后的檢測特征庫源文件集成到待檢測腳本文件的檢測模塊中;

獲取模塊,用于獲取并加載待檢測腳本文件;

檢測模塊,用于利用ragel正則狀態(tài)機(jī)檢測待檢測腳本文件;

判斷模塊,用于判斷待檢測腳本文件與檢測特征庫源文件中的惡意字符串ragel正則表達(dá)式是否匹配,如果是,則所述待檢測腳本文件為惡意,否則所述待檢測腳本文件為普通文件。

所述的系統(tǒng)中,解析已知惡意腳本文件,提取惡意字符串ragel正則表達(dá)式具體為:按照惡意代碼家族或變種分類解析惡意腳本文件,去除非惡意代碼部分,保留惡意代碼部分;并根據(jù)惡意代碼家族或變種具有共性的惡意代碼部分,提取一條或多條ragel正則表達(dá)式。

所述的系統(tǒng)中,所述將提取到的惡意字符串ragel正則表達(dá)式組成檢測特征庫源文件具體為:采用ragel狀態(tài)機(jī)語法格式構(gòu)造檢測特征庫源文件。

所述的系統(tǒng)中,所述檢測特征庫源文件的檢測接口的輸入為待檢測腳本文件的buf及大小,輸出為檢測結(jié)果及病毒名。

所述的系統(tǒng)中,所述判斷待檢測腳本文件與檢測特征庫源文件中的ragel正則表達(dá)式是否匹配,具體為,判斷待檢測腳本文件與檢測特征庫源文件中是否有一條或多條ragel正則表達(dá)式相同,如果是則匹配。

本發(fā)明的關(guān)鍵在于,通過提取惡意腳本不同家族的ragel正則表達(dá)式,組建立由ragel正則表達(dá)式組成的檢測特征庫,通過ragel有限狀態(tài)機(jī)編譯器將惡意腳本的檢測特征庫編譯為目標(biāo)文件語言,通過集成該檢測特征庫,即可利用有限狀態(tài)機(jī)進(jìn)行腳本文件的檢測。本發(fā)明優(yōu)勢在于,由于基于正則狀態(tài)機(jī)進(jìn)行檢測,無需每條特征都對待檢測腳本文件進(jìn)行全文搜索,也無需對大量惡意腳本進(jìn)行聚類訓(xùn)練,其檢測速度比普通特征匹配檢測和機(jī)器學(xué)習(xí)檢測方法都快很多。另外與其他腳本檢測方法相比,利用ragel狀態(tài)機(jī)編譯器,可生成不同目標(biāo)語言下的惡意腳本檢測源文件,可集成在任何不同語言編寫的腳本檢測模塊中,適用面也因此更加廣泛。

本發(fā)明提出了一種提取惡意腳本ragel正則特征碼,通過ragel狀態(tài)機(jī)編譯器編譯為所需編程語言的惡意腳本檢測源文件,利用該原文件可對惡意腳本進(jìn)行快速檢測,其檢測速度遠(yuǎn)高于僅僅依靠特征碼進(jìn)行字符串匹配或正則匹配的惡意腳本檢測方法,同時本方法可快速下發(fā)ragel正則特征碼,并且對惡意腳本檢測的誤報率比較低。另外本方法在提取惡意腳本ragel特征時,并不局限于提取某一條正則特征,而是可以對同一個家族提取多個ragel正則表達(dá)式。

附圖說明

為了更清楚地說明本發(fā)明或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明中記載的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1為本發(fā)明一種基于ragel狀態(tài)機(jī)的惡意腳本檢測方法實施例流程圖;

圖2為本發(fā)明一種基于ragel狀態(tài)機(jī)的惡意腳本檢測系統(tǒng)實施例結(jié)構(gòu)示意圖。

具體實施方式

為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明實施例中的技術(shù)方案,并使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖對本發(fā)明中技術(shù)方案作進(jìn)一步詳細(xì)的說明。

本發(fā)明提出一種基于ragel狀態(tài)機(jī)的惡意腳本檢測方法及系統(tǒng),解決了現(xiàn)有腳本檢測方法效率低,誤報率高的問題,實現(xiàn)了對腳本文件的快速檢測。

本發(fā)明首先提出了一種基于ragel狀態(tài)機(jī)的惡意腳本檢測方法,如圖1所示,包括:

S101:解析已知惡意腳本文件,提取惡意字符串ragel正則表達(dá)式;

S102:將提取到的惡意字符串ragel正則表達(dá)式組成檢測特征庫源文件;

S103:將所述檢測特征庫源文件編譯為待檢測腳本文件的語言;如將檢測特征庫源文件編譯為C語言編寫的檢測特征庫源文件;當(dāng)然還包括其他傳統(tǒng)語言,如C++、D、Java、Ruby、python等等;

S104:將編譯后的檢測特征庫源文件集成到待檢測腳本文件的檢測模塊中;

S105:獲取并加載待檢測腳本文件;將待檢測腳本文件加載到內(nèi)存中;

S106:利用ragel正則狀態(tài)機(jī)檢測待檢測腳本文件;利用集成了檢測特征庫源文件的檢測模塊,利用ragel正則狀態(tài)機(jī),對加載在內(nèi)存中的待檢測腳本文件進(jìn)行快速檢測;

S107:判斷待檢測腳本文件與檢測特征庫源文件中的惡意字符串ragel正則表達(dá)式是否匹配,如果是,則所述待檢測腳本文件為惡意,否則所述待檢測腳本文件為普通文件。

所述的方法中,解析已知惡意腳本文件,提取惡意字符串ragel正則表達(dá)式具體為:按照惡意代碼家族或變種分類解析惡意腳本文件,去除非惡意代碼部分,保留惡意代碼部分,如加密混淆的惡意代碼部分;并根據(jù)惡意代碼家族或變種具有共性的惡意代碼部分,提取一條或多條ragel正則表達(dá)式。提取多條ragel正則表達(dá)式主要防止誤報,多條正則表達(dá)式可以組成正則表達(dá)式特征組,在腳本文件中同時匹配到多條正則表達(dá)式時,才可判定為惡意。

所述的方法中,所述將提取到的惡意字符串ragel正則表達(dá)式組成檢測特征庫源文件具體為:采用ragel狀態(tài)機(jī)語法格式構(gòu)造檢測特征庫源文件。

所述的方法中,所述檢測特征庫源文件的檢測接口的輸入為待檢測腳本文件的buf及大小,輸出為檢測結(jié)果及病毒名。

所述的方法中,所述判斷待檢測腳本文件與檢測特征庫源文件中的ragel正則表達(dá)式是否匹配,具體為,判斷待檢測腳本文件與檢測特征庫源文件中是否有一條或多條ragel正則表達(dá)式相同,如果是則匹配。

本發(fā)明還同時提出一種基于ragel狀態(tài)機(jī)的惡意腳本檢測系統(tǒng),如圖2所示,包括:

解析模塊201,用于解析已知惡意腳本文件,提取惡意字符串ragel正則表達(dá)式;

生成庫模塊202,用于將提取到的惡意字符串ragel正則表達(dá)式組成檢測特征庫源文件;

編譯模塊203,用于將所述檢測特征庫源文件編譯為待檢測腳本文件的語言;

集成模塊204,用于將編譯后的檢測特征庫源文件集成到待檢測腳本文件的檢測模塊中;

獲取模塊205,用于獲取并加載待檢測腳本文件;

檢測模塊206,用于利用ragel正則狀態(tài)機(jī)檢測待檢測腳本文件;

判斷模塊207,用于判斷待檢測腳本文件與檢測特征庫源文件中的惡意字符串ragel正則表達(dá)式是否匹配,如果是,則所述待檢測腳本文件為惡意,否則所述待檢測腳本文件為普通文件。

所述的系統(tǒng)中,解析已知惡意腳本文件,提取惡意字符串ragel正則表達(dá)式具體為:按照惡意代碼家族或變種分類解析惡意腳本文件,去除非惡意代碼部分,保留惡意代碼部分;并根據(jù)惡意代碼家族或變種具有共性的惡意代碼部分,提取一條或多條ragel正則表達(dá)式。

所述的系統(tǒng)中,所述將提取到的惡意字符串ragel正則表達(dá)式組成檢測特征庫源文件具體為:采用ragel狀態(tài)機(jī)語法格式構(gòu)造檢測特征庫源文件。

所述的系統(tǒng)中,所述檢測特征庫源文件的檢測接口的輸入為待檢測腳本文件的buf及大小,輸出為檢測結(jié)果及病毒名。

所述的系統(tǒng)中,所述判斷待檢測腳本文件與檢測特征庫源文件中的ragel正則表達(dá)式是否匹配,具體為,判斷待檢測腳本文件與檢測特征庫源文件中是否有一條或多條ragel正則表達(dá)式相同,如果是則匹配。

本發(fā)明的關(guān)鍵在于,通過提取惡意腳本不同家族的ragel正則表達(dá)式,組建立由ragel正則表達(dá)式組成的檢測特征庫,通過ragel有限狀態(tài)機(jī)編譯器將惡意腳本的檢測特征庫編譯為目標(biāo)文件語言,通過集成該檢測特征庫,即可利用有限狀態(tài)機(jī)進(jìn)行腳本文件的檢測。本發(fā)明優(yōu)勢在于,由于基于正則狀態(tài)機(jī)進(jìn)行檢測,無需每條特征都對待檢測腳本文件進(jìn)行全文搜索,也無需對大量惡意腳本進(jìn)行聚類訓(xùn)練,其檢測速度比普通特征匹配檢測和機(jī)器學(xué)習(xí)檢測方法都快很多。另外與其他腳本檢測方法相比,利用ragel狀態(tài)機(jī)編譯器,可生成不同目標(biāo)語言下的惡意腳本檢測源文件,可集成在任何不同語言編寫的腳本檢測模塊中,適用面也因此更加廣泛,如javascript、Visual Basic Script、HTML、pthon、java等各種類型。

本發(fā)明提出了一種提取惡意腳本ragel正則特征碼,通過ragel狀態(tài)機(jī)編譯器編譯為所需編程語言的惡意腳本檢測源文件,利用該原文件可對惡意腳本進(jìn)行快速檢測,其檢測速度遠(yuǎn)高于僅僅依靠特征碼進(jìn)行字符串匹配或正則匹配的惡意腳本檢測方法,同時本方法可快速下發(fā)ragel正則特征碼,并且對惡意腳本檢測的誤報率比較低。另外本方法在提取惡意腳本ragel特征時,并不局限于提取某一條正則特征,而是可以對同一個家族提取多個ragel正則表達(dá)式。

雖然通過實施例描繪了本發(fā)明,本領(lǐng)域普通技術(shù)人員知道,本發(fā)明有許多變形和變化而不脫離本發(fā)明的精神,希望所附的權(quán)利要求包括這些變形和變化而不脫離本發(fā)明的精神。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
乌鲁木齐市| 吐鲁番市| 永昌县| 宜川县| 静安区| 邢台市| 长顺县| 罗定市| 诏安县| 巧家县| 利川市| 额尔古纳市| 宁都县| 榆中县| 长治市| 南城县| 江安县| 府谷县| 南京市| 错那县| 三原县| 蛟河市| 健康| 寻乌县| 乌恰县| 吴堡县| 抚远县| 曲阳县| 东阿县| 巧家县| 泗洪县| 邹平县| 富平县| 石林| 苏州市| 洮南市| 德钦县| 宁远县| 汨罗市| 桐庐县| 夏河县|