專利名稱:一種檢測(cè)網(wǎng)馬的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,更具體地說S涉及.一種檢測(cè)網(wǎng)馬的方法及 裝置。
背景技術(shù):
在互連網(wǎng)領(lǐng)域中,網(wǎng)馬是指表面上偽裝成普通網(wǎng)^文件或者將惡意代碼 直接插入到正常的網(wǎng)頁文件中,當(dāng)用戶訪問該網(wǎng)頁時(shí),就會(huì)利用對(duì)方系統(tǒng)或 瀏覽器的漏洞自動(dòng)將配置好的木馬下載到訪問者的電腦上來自動(dòng)執(zhí)行,給用 戶的利益帶來極大的危害。
目前,現(xiàn)有技術(shù)中檢測(cè)網(wǎng)馬的方法主要包括以下,種 一種是文本特征碼匹配技術(shù),該技術(shù)通過分析大量網(wǎng)馬樣本,提取出關(guān) 鍵的網(wǎng)馬特征或特征組,在對(duì)網(wǎng)頁內(nèi)容進(jìn)行掃描的過程中,通過判斷該網(wǎng)頁 內(nèi)容是否能與所述提if又到的網(wǎng)碼特征或特征組相匹配,從而確定該檢測(cè)網(wǎng)頁 是否含網(wǎng)馬;
一種是采用蜜罐技術(shù),該技術(shù)利用存有漏洞的客戶端蜜罐系統(tǒng)(如 WinXP、 lE6.0或者有漏洞的軟件),同時(shí)基于可有效控制和恢復(fù)運(yùn)行的初始 狀態(tài)的虛擬機(jī)軟件構(gòu)建。并通過利用一些行為監(jiān)控軟件,通過手動(dòng)或自動(dòng)的 方式訪問待檢測(cè)網(wǎng)站,經(jīng)過2 3分鐘的交互后,.根據(jù)l控到的動(dòng)態(tài)行為,來 判定客戶端蜜罐系統(tǒng)是否已被攻擊并植入木馬。該行為特征主要包括是否下 載了可執(zhí)行文件,是否運(yùn)行了可執(zhí)行文件等。
在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)存在以下缺點(diǎn)(1) 采用文本特征碼匹配技術(shù)不能解決javascript腳本語句的變形問 題,如文本字符串分拆、用十六或十進(jìn)制來代替字符等,不會(huì)被執(zhí)行的變 形的文本字符串很可能被當(dāng)作網(wǎng)馬代碼特征檢出,所以存在嚴(yán)重的誤報(bào)情 況;針對(duì)javascript語句或html ( Hyper Text Mark-up Language,超文本標(biāo) i己i吾言)網(wǎng)頁的力口密問題也無法解決,^口 htmlship、 JScript.Encode力口 密、base64編碼、US—ASCII編碼等;
(2) 采用蜜罐技術(shù)在真實(shí)環(huán)境中執(zhí)行該網(wǎng)站的文件,雖能準(zhǔn)確獲得該 網(wǎng)站內(nèi)容的行為,但存在檢測(cè)版本的局限性。同一臺(tái)機(jī)器上安裝的各種軟件 只對(duì)應(yīng)一個(gè)版本,如果該網(wǎng)站利用某個(gè)軟件的其它版本的漏洞來設(shè)置網(wǎng)馬, 就檢測(cè)不到;雖然蜜罐技術(shù)對(duì)于網(wǎng)馬檢測(cè)具有針對(duì)性,大大減少了所要分析 的數(shù)據(jù),但在一定時(shí)間段內(nèi)只能針對(duì)一個(gè)網(wǎng)頁進(jìn)行檢測(cè),并發(fā)性程度不高, 導(dǎo)致檢測(cè)效率很低。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種檢測(cè)網(wǎng)馬的方法及裝置,解決了現(xiàn)有技術(shù)中網(wǎng) 馬檢測(cè)的局限性,能夠比較全面的對(duì)網(wǎng)頁中的網(wǎng)馬進(jìn)行檢測(cè),并且克服了現(xiàn) 有技術(shù)中依賴第三方軟件的檢測(cè)網(wǎng)馬的局限性問題。
本發(fā)明的技術(shù)方案如下
本發(fā)明提供了一種檢測(cè)網(wǎng)馬的方法,該方法包括 從網(wǎng)頁內(nèi)容中獲取html網(wǎng)頁腳本信息;
執(zhí)行所述html網(wǎng)頁腳本信息,并對(duì)執(zhí)行過程中產(chǎn)生的行為特征進(jìn)行記
錄;
將所述行為特征與保存的漏洞特征碼相匹配,當(dāng)匹配成功時(shí),確定該網(wǎng) 頁內(nèi)容含有網(wǎng)馬。 '
進(jìn)一步地,從網(wǎng)頁內(nèi)容中獲取htm網(wǎng)頁腳本信息,具體過程包括 通過對(duì)網(wǎng)頁內(nèi)容的解析,獲得html網(wǎng)頁腳本信息,并保存;所述html網(wǎng)頁腳本信息中包含html網(wǎng)頁腳本信息標(biāo)簽及對(duì)應(yīng)的語言類型 和內(nèi)容,以及包含帶有html網(wǎng)頁腳本代碼的標(biāo)簽名稱及對(duì)應(yīng)代碼和所述代碼 的語言類型。
進(jìn)一步地,執(zhí)行所述html網(wǎng)頁腳本信息,并對(duì)執(zhí)行過程中產(chǎn)生的行為特 征進(jìn)行記錄,具體過程包括
將所述html網(wǎng)頁腳本信息轉(zhuǎn)換為Javascript類型中的Javascript代碼;
對(duì)所述Javascript代碼執(zhí)行中引用的全局對(duì)象和默認(rèn)對(duì)象進(jìn)行定義,以 獲得所述全局對(duì)象和默認(rèn)對(duì)象所對(duì)應(yīng)的行為特征;
按照所述定義執(zhí)行所述Javascript代碼,并記錄所述全局對(duì)象和默認(rèn)對(duì) 象在執(zhí)行過程中所產(chǎn)生的行為特征;所述行為特征包括對(duì)象名、對(duì)象函數(shù) 名、函數(shù)參數(shù)值、屬性名和屬性值中的至少一項(xiàng)內(nèi)容。
進(jìn)一步地,所述方法還包括
當(dāng)匹配成功時(shí),將與該網(wǎng)馬對(duì)應(yīng)的匹配信息輸出;否則,反饋該網(wǎng)頁無 網(wǎng)馬的提示信息。
進(jìn)一步地,所述漏洞特征碼的生成過程具體包括
通過對(duì)大量網(wǎng)馬的樣本和漏洞的分析,將含有漏洞的控件名稱、關(guān)鍵函 數(shù)名及對(duì)應(yīng)的屬性名、關(guān)鍵函數(shù)參數(shù)及對(duì)應(yīng)的屬性值,作為漏洞特征碼,保 存在數(shù)據(jù)庫中。
本發(fā)明還提供了一種檢測(cè)網(wǎng)馬的裝置,包括 腳本信息獲取模塊,用于從網(wǎng)頁內(nèi)容中獲取html網(wǎng)頁腳本信息; 行為特征提取模塊,用于執(zhí)行所述腳本信息獲取模塊獲取的html網(wǎng)頁腳
本信息,并對(duì)4丸行過程中產(chǎn)生的行為特征進(jìn)行記錄;
網(wǎng)馬特征匹配才莫塊,用于將所述行為特征^是耳又;漠塊記錄的行為特征與保
存的漏洞特4正碼相匹配,當(dāng)匹配成功時(shí),確定該網(wǎng)頁內(nèi)容含有網(wǎng)馬。 優(yōu)選的,所述腳本信息獲取模塊具體過程包括網(wǎng)頁內(nèi)容解析單元,用于對(duì)所述網(wǎng)頁內(nèi)容的進(jìn)行解析,獲得html網(wǎng)頁腳 本信息;
腳本信息存儲(chǔ)單元,用于保存所述網(wǎng)頁內(nèi)^解析單元獲取的html網(wǎng)頁腳 本信息;所述html網(wǎng)頁腳本信息中包含html網(wǎng)頁腳本信息標(biāo)簽及對(duì)應(yīng)的語言 類型和內(nèi)容,以及包含帶有html網(wǎng)頁腳本代碼的標(biāo)簽名稱及對(duì)應(yīng)代碼和所述 代碼的語言類型。
優(yōu)選的,所述行為特征提取模塊具體包括
代碼轉(zhuǎn)換單元,用于將所述html網(wǎng)頁腳本信息轉(zhuǎn)換為Javascript類型中的 Javascript代碼;
對(duì)象定義單元,用于對(duì)所述代碼轉(zhuǎn)換單元轉(zhuǎn)換后的Javascript代碼在執(zhí)
行過程中引用的全局對(duì)象和默認(rèn)對(duì)象進(jìn)行定義',以獲得所述全局對(duì)象和默認(rèn)
對(duì)象所對(duì)應(yīng)的行為特征;
代碼執(zhí)行單元,用于根據(jù)所述對(duì)象定義單元對(duì)所述全局對(duì)象和默認(rèn)對(duì)象
的定義,執(zhí)行所述Javascript代碼,并記錄所述全局對(duì)象和默認(rèn)對(duì)象在執(zhí)行
過程中產(chǎn)生的行為特征;所述行為特征包括對(duì)'象名、對(duì)象函數(shù)名、函數(shù)參數(shù)
值、屬性名和屬性值中的至少一項(xiàng)內(nèi)容。
優(yōu)選的,所述網(wǎng)馬特征匹配模塊具體包括
特征匹配單元,用于將所述行為特征與漏洞特征碼進(jìn)行匹配;
結(jié)果處理單元,用于根據(jù)所述特征匹配單元的匹配結(jié)果,當(dāng)匹配成功
時(shí),確定該網(wǎng)頁內(nèi)容含有網(wǎng)馬,并將與該網(wǎng)馬對(duì)應(yīng)的匹配信息輸出;否則,
反饋該網(wǎng)頁無網(wǎng)馬的提示信息。
優(yōu)選的,網(wǎng)馬特征匹配模塊具體還包括
特征碼生成單元,用于通過對(duì)大量網(wǎng)馬的才羊本和漏洞的分析,將含有漏 洞的控件名稱、關(guān)鍵函數(shù)名及對(duì)應(yīng)的屬性名、關(guān)鍵函數(shù)參數(shù)及對(duì)應(yīng)的屬性 值,作為漏洞特征碼。采用本發(fā)明所述技術(shù)方案,通過獲取html scrip標(biāo)簽(網(wǎng)頁腳本標(biāo)簽)及 帶有scrip代碼的標(biāo)簽,解決了現(xiàn)有技術(shù)中對(duì)于Javascript語句的變形問題, 可以更全面地對(duì)網(wǎng)頁內(nèi)容進(jìn)行;險(xiǎn)測(cè);本發(fā)明通過將網(wǎng)頁腳本信息轉(zhuǎn)換為 Javascript類型下的Javascript代碼,解決了現(xiàn)有技術(shù)對(duì)于Javascript類型的
加密網(wǎng)頁不能進(jìn)行網(wǎng)馬檢測(cè)的問題;并且本發(fā)明所述的技術(shù)方案不需要第三 方的軟件來實(shí)現(xiàn),完全由程序自動(dòng)4企測(cè),更加高效。
圖1為本發(fā)明實(shí)施例 一種檢測(cè)網(wǎng)馬的方法的簡(jiǎn)要*:程圖; 圖2為本發(fā)明實(shí)施例一種檢測(cè)網(wǎng)馬的裝置的簡(jiǎn)要結(jié)構(gòu)圖; 圖3為本發(fā)明實(shí)施例1 一種;f企測(cè)網(wǎng)馬的方法的流程圖。
具體實(shí)施例方式
為了便于理解本發(fā)明所述的技術(shù)方案,下面結(jié)合具體實(shí)施例來進(jìn)行說明。
本發(fā)明實(shí)施例通過對(duì)網(wǎng)頁內(nèi)容的解析,獲得html script腳本(網(wǎng)頁腳 本,是可被瀏覽器執(zhí)行的腳本語言,主要類型包括javascript、 vbscript, JScript.Encode等),并將vbscript和JScript.Encode類型的腳本轉(zhuǎn)換為 javascript類型下的javascript代碼,然后模擬瀏覽器行為編譯、執(zhí)行 javascripti吾句,^爪取javascripti吾句的4亍為特4正。例如javascripH吾句利用 了哪些控件、控件函數(shù)名、控件屬性以及賦予的屬性植等,能夠較好的解決
文本特征碼匹配技術(shù)所遇到的問題;同時(shí),該方案不必安裝具有漏洞的第三
方軟件,完全由程序自動(dòng)完成檢測(cè), 一臺(tái)C2 (CPU型號(hào)-lntel四核Xeon X3210,2.13GHz,內(nèi)存容量-2G)機(jī)器一天可檢測(cè)30萬條url (Uniform Resource Locator,統(tǒng)一資源定位符),能夠較好的解決蜜罐技術(shù)所遇到的 問題。結(jié)合圖1,本發(fā)明提供了一種檢測(cè)網(wǎng)馬的方法,該方法可以包括
步驟101:從網(wǎng)頁內(nèi)容中獲取html網(wǎng)頁腳本信息;. 步驟102:執(zhí)行所述html網(wǎng)頁腳本信息,并對(duì)執(zhí)行過程中產(chǎn)生的行為特 征進(jìn)行記錄;
步驟103:將所述行為特征與保存的漏洞特征碼相匹配,當(dāng)匹配成功 時(shí),確定該網(wǎng)頁內(nèi)容含有網(wǎng)馬。
其中,步驟101的具體過程可以包括
通過對(duì)網(wǎng)頁內(nèi)容的解析,獲得html網(wǎng)頁腳本信息,并保存;
所述html網(wǎng)頁腳本信息中包含html網(wǎng)頁腳本信息標(biāo)簽及對(duì)應(yīng)的語言類型 和內(nèi)容,以及包含帶有html網(wǎng)頁腳本代碼的標(biāo)簽名稱及對(duì)應(yīng)代碼和所述代碼 的語言類型。
通過上述步驟101的具體過程,能夠解決現(xiàn)有技術(shù)中javascript語句的變 形問題,檢測(cè)范圍比較廣泛。
(Document Object Model, html文檔對(duì)象模型)來實(shí)現(xiàn)。對(duì)整個(gè)網(wǎng)頁內(nèi)容 中的每個(gè)字符進(jìn)行遍歷的掃描,可以依據(jù)html規(guī)范來獲取script標(biāo)簽(網(wǎng)頁腳 本標(biāo)簽),4夸該才示簽^"應(yīng)的i吾言類型(Jf口 javascript、 JScript.Encode, vbscript等)及腳本內(nèi)容,歸檔到dom樹中的script腳本隊(duì)列中去保存;同時(shí) 對(duì)其它標(biāo)簽進(jìn)行解析,將包含有script代碼的標(biāo)簽名稱、script代碼、sc「ipt代 碼的語言種類,歸檔到dom樹中的script腳本隊(duì)列中去保存。采用dom樹這種 方式來對(duì)網(wǎng)頁內(nèi)容進(jìn)行解析,解析范圍覆蓋面很廣泛,獲得的信息更加全 面。
具體地,步驟102的具體過程可以包括
步驟1021 :將所述html網(wǎng)頁腳本信息轉(zhuǎn)換為Javascript類型中的 Javascript代碼;
10步驟1022:對(duì)所述Javascript代碼執(zhí)行過程中引用的全局對(duì)象和默認(rèn)對(duì) 象進(jìn)行定義,以獲得所述全局對(duì)象和默認(rèn)對(duì)象所對(duì)應(yīng)的行為特征;
步驟1023:按照所述定義執(zhí)行所述Javascript代碼,并記錄所述全局對(duì) 象和默認(rèn)對(duì)象執(zhí)行過程中產(chǎn)生的行為特征;所述行為'特征包括對(duì)象名、對(duì)象 函數(shù)名、函凄t參凄t值、屬性名和屬性值中的至少一項(xiàng)內(nèi)容。
在上述步驟1021中,script腳本語言的類型主要包括vbscript、 JScript.Encode和javascript,本發(fā)明所述實(shí)施例是基于javascript類型的腳本 所提出的方法,通過將vbscript、 JScript.Encode類型'的腳本內(nèi)容轉(zhuǎn)換為功能 一致的javascript下的javascript代碼,并將轉(zhuǎn)換后的所有javascript代碼合并 成一份javascript代碼,才能執(zhí)行該腳本。
說明html網(wǎng)頁腳本信息中保存的腳本內(nèi)容可以是url或網(wǎng)頁內(nèi)容,如果 是url,需要下載該url的網(wǎng)頁內(nèi)容,下載完畢后再對(duì)該'網(wǎng)頁的腳本語言類型進(jìn) 行判斷后,再轉(zhuǎn)換。 '
在上述步驟1022和步驟1023中,由于本發(fā)明實(shí)施例釆用了具有 javascript代碼執(zhí)行功能的執(zhí)行引擎,可以執(zhí)行通過步驟1021獲得的 javascript代碼,對(duì)于加密網(wǎng)頁中的腳本內(nèi)容已經(jīng)轉(zhuǎn)換為javascript代碼,所 以同樣可以解碼執(zhí)行。本發(fā)明實(shí)施例優(yōu)選firefox的javascript執(zhí)行引擎 spidermonkey。采用這種方法能夠解決現(xiàn)有技術(shù)中對(duì)于加密網(wǎng)頁不能檢測(cè)網(wǎng) 馬的局限性問題。
所以在編譯、執(zhí)行javascript之前,預(yù)先定義了javascript執(zhí)行過程中需要引 用的多個(gè)全局對(duì)象,如window、 document、 location等。當(dāng)角罕析javascript語 句需要調(diào)用這些全局對(duì)象的函數(shù)、屬性時(shí),javascripf引擎將會(huì)執(zhí)行對(duì)這些對(duì) 象預(yù)先定義的函凄史和屬性。例如,當(dāng)javascript語句調(diào)用了document對(duì)象的 write函數(shù)動(dòng)態(tài)生成網(wǎng)頁時(shí),自定義的函數(shù)將會(huì)獲取網(wǎng)頁內(nèi)容,做下一步的內(nèi)容解析。此外,通過定義默認(rèn)對(duì)象,當(dāng)javascript語句調(diào)用了未定義對(duì)象以及 該對(duì)象的函數(shù)、屬性時(shí),javascript引擎將會(huì)執(zhí)行預(yù)先定義的默認(rèn)對(duì)象的屬性 和函數(shù),此時(shí),在預(yù)先定義的函數(shù)中可記錄行為特征,主要包括所有的對(duì)象 名、對(duì)象函數(shù)名、屬性名以及函數(shù)參數(shù)值、屬性值等內(nèi)容,同時(shí)將這些行為 特征加入到行為列表中去。 '
雖然本發(fā)明與現(xiàn)有技術(shù)中的蜜罐技術(shù)均是通過從網(wǎng)頁上獲得腳本信息并 運(yùn)行,獲得對(duì)應(yīng)的行為信息來檢測(cè)網(wǎng)馬。但是蜜罐技術(shù)更依賴于第三方具有 漏洞的軟件的版本內(nèi)容,當(dāng)網(wǎng)頁上存在通過其他版本軟件設(shè)置的網(wǎng)馬時(shí),就 檢測(cè)不到;本發(fā)明通過對(duì)腳本信息在運(yùn)行過程中運(yùn)用到的全局對(duì)象進(jìn)行定 義,獲得全局對(duì)象在執(zhí)行過程中的行為信息;通過采用預(yù)先定義默認(rèn)對(duì)象的 方式,對(duì)在執(zhí)行過程中用到的未定義對(duì)象進(jìn)行處理,同樣可以獲得該對(duì)象對(duì) 應(yīng)的行為特征,通過將獲得的行為特征與漏洞特征庫中的特征相匹配的方式 來檢測(cè)網(wǎng)馬,更加通用,不受第三方軟件的局限。
具體地,步驟103的具體過程可以包括
當(dāng)匹配成功時(shí),將與該網(wǎng)馬對(duì)應(yīng)的匹配信息輸出;否則,反饋該網(wǎng)頁無
網(wǎng)馬的提示信息。
具體地i兌,所述漏洞特征碼的生成過程具體可以包括 通過對(duì)大量網(wǎng)馬的樣本和漏洞的分析,將含有漏洞的控件名稱、關(guān)鍵函
數(shù)名及對(duì)應(yīng)的屬性名、關(guān)鍵函數(shù)參數(shù)及對(duì)應(yīng)的屬性值,作為漏洞特征碼,保
存在數(shù)據(jù)庫中。
通過上述本發(fā)明實(shí)施例所述技術(shù)方案,在對(duì)多個(gè)業(yè)務(wù)提供url掛馬檢測(cè), 包括第三方鏈接檢測(cè)、即時(shí)通信消息中的url檢測(cè)中,目前可檢測(cè)40種控件漏 洞掛馬,至今未發(fā)現(xiàn)一例誤報(bào)。
結(jié)合圖2,本發(fā)明實(shí)施例4是供了一種檢測(cè)網(wǎng)馬的裝置,該裝置包括腳本信息獲取模塊11,用于從網(wǎng)頁內(nèi)容中獲取html網(wǎng)頁腳本信息;
行為特征提取模塊12,用于執(zhí)行所述腳本信息獲取模塊11獲取的html網(wǎng) 頁腳本信息,并對(duì)執(zhí)行過程中產(chǎn)生的行為特征進(jìn)行記錄;
網(wǎng)馬特征匹配模塊13,用于將所述行為特征提取模塊記錄的行為特征與 保存的漏洞特^正碼相匹配,當(dāng)匹配成功時(shí),確定該網(wǎng)頁內(nèi)容含有網(wǎng)馬。
具體的,所述腳本信息獲取^^莫塊11具體可以包括
網(wǎng)頁內(nèi)容解析單元111,用于對(duì)所述網(wǎng)頁內(nèi)容的進(jìn)行解析,獲得html網(wǎng) 頁腳本信息;
腳本信息存儲(chǔ)單元112,用于保存所述網(wǎng)頁內(nèi)容解析單元獲取的html網(wǎng) 頁腳本信息;所述html網(wǎng)頁腳本信息中包含html網(wǎng)頁腳本信息標(biāo)簽及對(duì)應(yīng)的 語言類型和內(nèi)容,以及包含帶有html網(wǎng)頁腳本代碼的標(biāo)簽名稱及對(duì)應(yīng)代碼和 所述代碼的語言類型。
具體的,所述行為特征提取模塊12具體可以包括
代碼轉(zhuǎn)換單元121 ,用于將所述html網(wǎng)頁腳本信,爭(zhēng)轉(zhuǎn)換為Javascript類型 中的Javascript代碼;
對(duì)象定義單元122,用于對(duì)所述代碼轉(zhuǎn)換單元轉(zhuǎn)換后的Javascript代碼執(zhí) 行過程中引用的全局對(duì)象和默認(rèn)對(duì)象進(jìn)行定義,以獲得所述全局對(duì)象和默認(rèn) 對(duì)象所對(duì)應(yīng)的行為特征;
代碼執(zhí)行單元123,用于按照所述對(duì)象定義單元對(duì)所述全局對(duì)象和默認(rèn) 對(duì)象的定義,執(zhí)行所述Javascript代碼,并記錄所述全局對(duì)象和默認(rèn)對(duì)象所 對(duì)應(yīng)的行為特征;所述^f亍為特征包括對(duì)象名、對(duì)象函數(shù)名、函數(shù)參數(shù)值、屬 性名和屬性值中的至少 一項(xiàng)內(nèi)容。 .
具體地,所述網(wǎng)馬特征匹配模塊13具體可以包括
特征匹配單元132,用于將所述行為特征與漏洞特征碼進(jìn)行匹配;
結(jié)果處理單元133,用于才艮據(jù)所述特征匹配單元的匹配結(jié)果,當(dāng)匹配成 功時(shí),確定該網(wǎng)頁內(nèi)容含有網(wǎng)馬,并將與該網(wǎng)馬對(duì)承的匹配信息輸出;否則,反饋該網(wǎng)頁無網(wǎng)馬的提示信息。
優(yōu)選的,網(wǎng)馬特征匹配模塊13具體還包括
特征碼生成單元131,用于通過對(duì)大量網(wǎng)馬的樣本和漏洞的分析,將含 有漏洞的控件名稱、關(guān)4定函數(shù)名及對(duì)應(yīng)的屬性^、關(guān)鍵函數(shù)參數(shù)及對(duì)應(yīng)的屬 性值,作為漏洞特征碼。
上述圖2所示的本發(fā)明實(shí)施例所述裝置與上述圖1所述的本發(fā)明實(shí)施例所 述方法實(shí)施例中涉及的4支術(shù)方案相同,具體內(nèi)容可參照上述實(shí)施例,在此不 作贅述。
為了更好的對(duì)本發(fā)明所述技術(shù)方案進(jìn)行理解,下面結(jié)合具體實(shí)例進(jìn)行說 明。結(jié)合圖3所示。
步驟501:對(duì)所要檢測(cè)網(wǎng)馬的網(wǎng)頁內(nèi)容進(jìn)行解析,'獲得html網(wǎng)頁腳本信 息,并根據(jù)所述htm網(wǎng)頁腳本信息生成dom樹;
將解析獲得的script標(biāo)簽信息(包括該標(biāo)簽的語言類型和腳本內(nèi)容)以及 包含script代碼的其它標(biāo)簽信息(包括標(biāo)簽名稱、對(duì)應(yīng)代碼和所述代碼的語言 類型),存入dom樹中的script腳本對(duì)象隊(duì)列中;
步驟502:判斷當(dāng)前dom樹中的所有script腳本信息,如果所有腳本信息 均為Javascript類型下的Javascript代碼,則轉(zhuǎn)到步驟507,否則轉(zhuǎn)到步驟 503;
步驟503:對(duì)當(dāng)前script腳本內(nèi)容進(jìn)行判斷,'當(dāng)所述內(nèi)容為url轉(zhuǎn)到步驟 504,否則轉(zhuǎn)到步驟505;
步驟504:根據(jù)url下載腳本;
步驟505:如果當(dāng)前scrip保卩本的語言類型為Javascript,則轉(zhuǎn)到步驟 502,否則轉(zhuǎn)到步驟506;
步驟506:將script腳本語言類型為JScript.Encode和vbscript的內(nèi)容轉(zhuǎn)換 為Javascript類型下的Javascript代碼;轉(zhuǎn)換完畢后返回步驟502;
14步驟507:將所有Javascript腳本合并為 一份目標(biāo)Javascript腳本; 步驟508:編譯、對(duì)執(zhí)行目標(biāo)Javascript腳本中涉及到的全局對(duì)象和默認(rèn) ,十象進(jìn)4亍予貞先定義,長(zhǎng)口location、 window、 document等,以i^更當(dāng)^^亍目才示 Javascript腳本時(shí),具有執(zhí)行Javascript腳本功能的執(zhí)行引擎會(huì)調(diào)用這些全局 對(duì)象的自定義函數(shù)和屬性;
步驟509:編譯、執(zhí)行目標(biāo)Javascript腳本;
步驟510:在執(zhí)行Javascrip係卩本的過程中,記錄語句中的所有的對(duì)象產(chǎn) 生的行為特征,包括對(duì)象名、對(duì)象函數(shù)名、函數(shù)參數(shù)值、屬性名、屬性值 等內(nèi)容,將這些行為特征加入到行為列表中去;.
步驟511:將行為列表中的元素與行為特征碼庫進(jìn)行匹配,如果有一條或 多條的行為特征匹配成功,則輸出匹配到的網(wǎng)馬的詳細(xì)信息,否則反饋該網(wǎng) 頁無網(wǎng)馬的信息4是示。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不 局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明搞露的技術(shù)范圍內(nèi),可 輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明 的保護(hù)范圍應(yīng)該以權(quán)利要求書的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1、一種檢測(cè)網(wǎng)馬的方法,其特征在于,包括從網(wǎng)頁內(nèi)容中獲取html網(wǎng)頁腳本信息;執(zhí)行所述html網(wǎng)頁腳本信息,并對(duì)執(zhí)行過程中產(chǎn)生的行為特征進(jìn)行記錄;將所述行為特征與保存的漏洞特征碼相匹配,當(dāng)匹配成功時(shí),確定該網(wǎng)頁內(nèi)容含有網(wǎng)馬。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,從網(wǎng)頁內(nèi)容中獲取html網(wǎng) 頁腳本信息,具體過程包括通過對(duì)網(wǎng)頁內(nèi)容的解析,獲得html網(wǎng)頁腳本信息,'并保存; 所述html網(wǎng)頁腳本信息中包含html網(wǎng)頁腳本信息標(biāo)簽及對(duì)應(yīng)的語言類型和內(nèi)容,以及包含帶有html網(wǎng)頁腳本代碼的標(biāo)簽名稱及對(duì)應(yīng)代碼和所述代碼的語言類型。
3、 根據(jù)權(quán)利要求1所述的方法,其特征在于,執(zhí)行所述html網(wǎng)頁腳本信 息,并對(duì)執(zhí)行過程中產(chǎn)生的行為特征進(jìn)行記錄,具體過程包括將所述html網(wǎng)頁腳本信息轉(zhuǎn)換為Javascript.類型中的Javascript代碼; 對(duì)所述Javascript代碼執(zhí)行中引用的全局對(duì)象和默認(rèn)對(duì)象進(jìn)行定義,以獲得所述全局對(duì)象和默認(rèn)對(duì)象所對(duì)應(yīng)的行為特征;按照所述定義執(zhí)行所述JavascrJpt代碼,并記錄所述全局對(duì)象和默認(rèn)對(duì)象在執(zhí)行過程中所產(chǎn)生的行為特征;所述行為特征包括對(duì)象名、對(duì)象函數(shù)名、函數(shù)參數(shù)值、屬性名和屬性值中的至少一項(xiàng)內(nèi)容。
4、 根據(jù)權(quán)利要求1所述的方法,其特征在于,該方法還包括 當(dāng)匹配成功時(shí),將與該網(wǎng)馬對(duì)應(yīng)的匹配信息輸出;否則,反饋該網(wǎng)頁無網(wǎng)馬的l^示信息。
5、 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述漏洞特征碼的生成過程具體包括通過對(duì)大量網(wǎng)馬的樣本和漏洞的分析,將含有漏洞的控件名稱、關(guān)鍵函 數(shù)名及對(duì)應(yīng)的屬性名、關(guān)鍵函數(shù)參數(shù)及對(duì)應(yīng)的屬性值,作為漏洞特征碼,保 存在數(shù)據(jù)庫中。
6、 一種檢測(cè)網(wǎng)馬的裝置,其特征在于,包括 腳本信息獲取模塊,用于從網(wǎng)頁內(nèi)容中獲取html網(wǎng)頁腳本信息; 行為特征提取模塊,用于執(zhí)行所述腳本信息獲取模塊獲取的html網(wǎng)頁腳本信息,并對(duì)執(zhí)行過程中產(chǎn)生的行為特征進(jìn)行記錄;網(wǎng)馬特征匹配模塊,用于將所述行為特征提取模塊記錄的行為特征與保 存的漏洞特4正碼相匹配,當(dāng)匹配成功時(shí),確定ii網(wǎng)頁內(nèi)容含有網(wǎng)馬。
7、 根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述腳本信息獲取模塊具 體過程包括網(wǎng)頁內(nèi)容解析單元,用于對(duì)所述網(wǎng)頁內(nèi)容的進(jìn)行解析,獲得html網(wǎng)頁腳 本信息;腳本信息存儲(chǔ)單元,用于保存所述網(wǎng)頁內(nèi)容解析單元獲取的html網(wǎng)頁腳 本信息;所述html網(wǎng)頁腳本信息中包含html網(wǎng)頁腳本信息標(biāo)簽及對(duì)應(yīng)的語言 類型和內(nèi)容,以及包含帶有html網(wǎng)頁腳本代碼的標(biāo)簽名稱及對(duì)應(yīng)代碼和所述 代碼的語言類型。
8、 根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述行為特征提取模塊具 體包括代碼轉(zhuǎn)換單元,用于將所述html網(wǎng)頁腳本佶息轉(zhuǎn)換為Javascript類型中的 Javascript代碼;對(duì)象定義單元,用于對(duì)所述代碼轉(zhuǎn)換單元轉(zhuǎn)換后的Javascript代碼,在 執(zhí)行過程中引用的全局對(duì)象和默認(rèn)對(duì)象進(jìn)行定義,以獲得所述全局對(duì)象和默認(rèn)對(duì)象所對(duì)應(yīng)的行為特征; -代碼執(zhí)行單元,用于根據(jù)所述對(duì)象定義單元對(duì)全局對(duì)象和默認(rèn)對(duì)象的定 義,執(zhí)行所述Javascript代碼,并記錄在執(zhí)行過程中所述全局對(duì)象和默認(rèn)對(duì) 象所產(chǎn)生的行為特征;所述行為特征包括對(duì)象名、對(duì)象函數(shù)名、函數(shù)參數(shù) 值、屬性名和屬性值中的至少一項(xiàng)內(nèi)容。
9、 根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述網(wǎng)馬特征匹配模塊具 體包括特征匹配單元,用于將所述行為特征與漏洞特征碼進(jìn)行匹配; 結(jié)果處理單元,用于根據(jù)所述特征匹配單元的匹配結(jié)果,當(dāng)匹配成功時(shí),確定該網(wǎng)頁內(nèi)容含有網(wǎng)馬,并將與該網(wǎng)馬對(duì)應(yīng)的'匹配信息輸出;否則,反饋該網(wǎng)頁無網(wǎng)馬的提示信息。
10、 根據(jù)權(quán)利要求9所述的裝置,其特征在于,網(wǎng)馬特征匹配模塊具體 還包括特征碼生成單元,用于通過對(duì)大量網(wǎng)馬的樣本和漏洞的分析,將含有漏 洞的控件名稱、關(guān)鍵函數(shù)名及對(duì)應(yīng)的屬性名、關(guān)鍵函數(shù)參數(shù)及對(duì)應(yīng)的屬性 值,作為漏洞特征碼。
全文摘要
本發(fā)明公開了一種檢測(cè)網(wǎng)馬的方法和裝置,技術(shù)方案包括從網(wǎng)頁內(nèi)容中獲取html網(wǎng)頁腳本信息;執(zhí)行所述html網(wǎng)頁腳本信息,并對(duì)執(zhí)行過程中產(chǎn)生的行為特征進(jìn)行記錄;將所述行為特征與保存的漏洞特征碼相匹配,當(dāng)匹配成功時(shí),確定該網(wǎng)頁內(nèi)容含有網(wǎng)馬。本發(fā)明所述裝置包括腳本信息獲取模塊、行為特征提取模塊和網(wǎng)馬特征匹配模塊。采用本發(fā)明所述技術(shù)方案能夠比較全面的對(duì)網(wǎng)頁中的網(wǎng)馬進(jìn)行檢測(cè),并且克服了現(xiàn)有技術(shù)中依賴第三方軟件的檢測(cè)局限性問題。
文檔編號(hào)G06F17/30GK101562618SQ20091013371
公開日2009年10月21日 申請(qǐng)日期2009年4月8日 優(yōu)先權(quán)日2009年4月8日
發(fā)明者季昕華, 張海清, 勇 楊, 林世飛 申請(qǐng)人:深圳市騰訊計(jì)算機(jī)系統(tǒng)有限公司