徐國(guó)天
(中國(guó)刑事警察學(xué)院,沈陽(yáng) 110854)
基于Referer字段遞歸分析的網(wǎng)頁(yè)掛馬檢驗(yàn)方法研究
徐國(guó)天
(中國(guó)刑事警察學(xué)院,沈陽(yáng) 110854)
目的研究網(wǎng)頁(yè)掛馬案件的檢驗(yàn)方法,為有效打擊此類犯罪,維護(hù)信息網(wǎng)絡(luò)安全提供技術(shù)支持。方法在染毒主機(jī)端重新瀏覽可疑網(wǎng)頁(yè),使用wireshark捕獲通信數(shù)據(jù),借助wireshark提供的文件還原功能從通信數(shù)據(jù)中還原出所有文件,再利用主流殺毒引擎對(duì)這些文件進(jìn)行病毒掃描,記錄下木馬程序的名稱和下載路徑。之后利用本文的Referer字段遞歸分析方法還原木馬完整的種植過(guò)程,找出被掛馬網(wǎng)站和相應(yīng)的頁(yè)面,提取出網(wǎng)頁(yè)中被植入的惡意代碼。結(jié)果獲得了被掛馬網(wǎng)站的相關(guān)信息,準(zhǔn)確地定位出惡意代碼的存儲(chǔ)位置,提示網(wǎng)站管理員除去惡意代碼并增強(qiáng)保護(hù)措施,從源頭阻斷木馬的傳播途徑。根據(jù)黑客種植惡意代碼過(guò)程中在被掛馬網(wǎng)站遺留的入侵痕跡,對(duì)掛馬網(wǎng)站進(jìn)行檢驗(yàn)分析,獲得黑客的相關(guān)線索。結(jié)論應(yīng)用本文提出的Referer字段遞歸分析方法可以有效檢驗(yàn)網(wǎng)頁(yè)掛馬類案件,獲取相關(guān)線索。
Referer;遞歸分析;網(wǎng)頁(yè)掛馬;檢驗(yàn);GZIP
網(wǎng)頁(yè)掛馬不是一種具體的木馬程序,而是一種傳播木馬的途徑,它是指通過(guò)非法手段在網(wǎng)頁(yè)源文件中植入惡意代碼,當(dāng)用戶瀏覽這類站點(diǎn)時(shí),如果其計(jì)算機(jī)系統(tǒng)存在相應(yīng)的安全漏洞,那么網(wǎng)頁(yè)中的這些惡意代碼就會(huì)誘使用戶主機(jī)下載并運(yùn)行相應(yīng)的木馬程序[1],從而竊取該計(jì)算機(jī)的機(jī)密信息、篡改重要數(shù)據(jù)、監(jiān)聽語(yǔ)音視頻通信,甚至可完全控制該染毒計(jì)算機(jī)。目前網(wǎng)頁(yè)掛馬已成為木馬傳播的主要途徑,因此研究網(wǎng)頁(yè)掛馬的檢驗(yàn)方法,對(duì)有效打擊此類犯罪,維護(hù)信息網(wǎng)絡(luò)安全有重要意義。
目前網(wǎng)頁(yè)掛馬類案件主要是對(duì)木馬程序進(jìn)行檢驗(yàn)分析,常用的檢驗(yàn)方法有逆向分析和數(shù)據(jù)包監(jiān)聽兩種。逆向分析是對(duì)木馬程序文件進(jìn)行反匯編,通過(guò)閱讀匯編代碼了解程序的執(zhí)行邏輯,并從中提取出黑客的相關(guān)線索,如IP地址、端口號(hào)、登錄口令等等。但是這種分析方法需要具備較深的計(jì)算機(jī)基礎(chǔ)知識(shí),若只是短期培訓(xùn)難以掌握。而木馬程序通常采用加殼、加密、運(yùn)行后自銷毀等保護(hù)措施,故單憑逆向分析方法也很難獲得相關(guān)線索,甚至無(wú)法定位木馬程序。另一種基于數(shù)據(jù)包監(jiān)聽的方法是捕獲染毒主機(jī)與外界的通信數(shù)據(jù),再?gòu)闹刑崛〕瞿抉R的相關(guān)線索,如黑客主機(jī)的IP地址、傳遞的監(jiān)控畫面等等。這種方法對(duì)遠(yuǎn)程控制類木馬效果較好,原因是遠(yuǎn)程控制木馬通常會(huì)主動(dòng)聯(lián)系黑客主機(jī),很容易捕獲其發(fā)出的通信數(shù)據(jù),并從中提取出有關(guān)線索。但是盜號(hào)類木馬通常不會(huì)主動(dòng)與外界通信,只有在盜取到敏感信息后,才會(huì)在特定的時(shí)間點(diǎn)發(fā)送竊取信息。由于不能確定這類木馬何時(shí)與外界通信,因此很難準(zhǔn)確捕獲相應(yīng)的通信報(bào)文,致使無(wú)法獲取相關(guān)線索。
除上述問(wèn)題,目前的檢驗(yàn)方法也不能阻斷木馬程序傳播的源頭,即未對(duì)掛馬網(wǎng)站進(jìn)行相應(yīng)處理,而使廣大用戶避免感染木馬的風(fēng)險(xiǎn)。針對(duì)這些問(wèn)題,本文進(jìn)行了研究,設(shè)計(jì)了對(duì)應(yīng)檢驗(yàn)方法。
網(wǎng)頁(yè)掛馬案件的入侵流程如圖1所示。首先,黑客會(huì)利用網(wǎng)絡(luò)攻擊技術(shù)入侵某些有安全漏洞的網(wǎng)站,從而獲得這些站點(diǎn)的控制權(quán)[2]。通常一些中等規(guī)模的站點(diǎn)易成為攻擊對(duì)象,例如政府機(jī)關(guān)、企事業(yè)單位、高等院校的門戶網(wǎng)站。黑客會(huì)在入侵網(wǎng)站的主頁(yè)文件中植入一個(gè)掛馬代碼。當(dāng)用戶瀏覽“被掛馬”網(wǎng)站時(shí),若其所用IE瀏覽器存在相應(yīng)的安全漏洞,木馬就會(huì)被植入并運(yùn)行而使相關(guān)主機(jī)淪為受控“肉雞”,盜取敏感信息(如網(wǎng)銀帳號(hào)),以及向其他主機(jī)發(fā)起DDOS攻擊等。
圖1 網(wǎng)頁(yè)掛馬的入侵流程Fig.1 Intrusion course of webpage Trojan
1.1 入侵網(wǎng)站
目前最流行的攻擊技術(shù)是“SQL注入攻擊”和“緩沖區(qū)溢出攻擊”?!癝QL注入攻擊”是由于開發(fā)網(wǎng)站的技術(shù)人員疏于防范,未對(duì)用戶提交的參數(shù)嚴(yán)格檢查,就直接提交給后臺(tái)數(shù)據(jù)庫(kù)運(yùn)行。若這些參數(shù)含有黑客提交的惡意指令并執(zhí)行時(shí),黑客就可達(dá)到完全控制網(wǎng)站的目的?!熬彌_區(qū)溢出攻擊”是由于應(yīng)用程序未對(duì)經(jīng)網(wǎng)絡(luò)接收的數(shù)據(jù)長(zhǎng)度進(jìn)行檢查,就直接存放于緩沖區(qū)而導(dǎo)致了“緩沖區(qū)溢出”。黑客通過(guò)精心構(gòu)造溢出代碼,可實(shí)現(xiàn)其控制目的。
1.2 為網(wǎng)站主頁(yè)掛馬
用戶訪問(wèn)網(wǎng)站,通常是先進(jìn)入網(wǎng)站主頁(yè),然后再通過(guò)主頁(yè)上的鏈接進(jìn)入到自己感興趣的頁(yè)面。故主頁(yè)是訪問(wèn)頻率最高的頁(yè)面,黑客為達(dá)到快速傳播木馬的目的,通常選擇主頁(yè)作為掛馬的對(duì)象[3]。
下面是一段典型的掛馬代碼,將這句代碼加入到被掛馬網(wǎng)站主頁(yè)文件的任何一處位置,即可實(shí)現(xiàn)網(wǎng)站掛馬,具體語(yǔ)句為:。這是一種框架掛馬方式,用戶訪問(wèn)主頁(yè)之后,會(huì)自動(dòng)到包含木馬程序的服務(wù)器上下載并瀏覽1.html,這個(gè)1.html會(huì)利用IE瀏覽器漏洞誘使用戶主機(jī)自動(dòng)下載并運(yùn)行木馬程序(例如1.exe),由于這里將框架的高度、寬度和邊框粗細(xì)均設(shè)置為0,因此受害者在瀏覽主頁(yè)時(shí)不會(huì)察覺到任何變化。故黑客不需要將1.html和1.exe上傳到被掛馬網(wǎng)站,只須修改被掛馬網(wǎng)站的主頁(yè)文件,就可實(shí)現(xiàn)網(wǎng)站掛馬,因而具備很強(qiáng)的隱蔽性。
1.3 植入并運(yùn)行木馬
瀏覽“掛馬”網(wǎng)站時(shí),若用戶使用的IE瀏覽器存在相應(yīng)的安全漏洞,用戶主機(jī)就會(huì)被植入木馬并運(yùn)行。目前黑客廣泛采用的木馬種類有“盜號(hào)木馬”和“遠(yuǎn)程控制木馬”。
“盜號(hào)木馬”可以竊取用戶在登錄窗口內(nèi)輸入的敏感信息,如用戶名、密碼等。這類木馬會(huì)造成網(wǎng)絡(luò)用戶的QQ密碼、網(wǎng)上銀行帳號(hào)信息丟失,等等。例如“紅蜘蛛鍵盤記錄木馬”記錄到敏感信息(如電子郵箱帳戶信息)后,會(huì)將這些信息通過(guò)電子郵件發(fā)送到黑客指定的郵箱里。遠(yuǎn)程控制木馬可以遠(yuǎn)程操作一臺(tái)“肉雞”,對(duì)其實(shí)施完全控制。
相對(duì)而言exe類型木馬容易被殺毒軟件查殺,且易被定位追蹤。為了提高木馬的生存幾率,黑客會(huì)采用fash動(dòng)畫、語(yǔ)音、視頻、圖片等類型文件作為木馬的載體。本節(jié)對(duì)網(wǎng)頁(yè)木馬的檢驗(yàn)方法進(jìn)行介紹。
2.1 網(wǎng)頁(yè)木馬的檢驗(yàn)流程
如圖2所示,以1.12.4版wireshark作分析檢測(cè)。首先,在疑遭木馬攻擊的網(wǎng)頁(yè)主機(jī)端運(yùn)行wireshark,獲取通信數(shù)據(jù)后,瀏覽可疑網(wǎng)頁(yè),要盡量關(guān)閉不必要的網(wǎng)絡(luò)通信程序,減少通信流量。利用wireshark提供的數(shù)據(jù)還原功能從通信數(shù)據(jù)中提取出所有數(shù)據(jù)文件,檢測(cè)其中是否有木馬程序,該步可使用現(xiàn)有殺毒軟件的掃描功能實(shí)現(xiàn),宜多選幾種殺毒軟件,以降低錯(cuò)漏率;或可將可疑文件上傳到專門的檢測(cè)網(wǎng)站,如“金山火眼”,深入分析程序的執(zhí)行功能。若發(fā)現(xiàn)木馬程序文件,可以對(duì)應(yīng)的數(shù)據(jù)包為起點(diǎn),進(jìn)行遞歸分析,獲取完整的控制鏈條,形成檢驗(yàn)結(jié)果。如果還有其它可疑頁(yè)面,重復(fù)分析過(guò)程。
圖2 網(wǎng)頁(yè)掛馬檢驗(yàn)流程Fig.2 Investigation course of webpage Trojan
2.2 基于Referer字段的遞歸分析方法
任何類型的網(wǎng)頁(yè)木馬都是在瀏覽網(wǎng)頁(yè)過(guò)程中通過(guò)HTTP協(xié)議傳遞到受害者主機(jī)端。而HTTP請(qǐng)求報(bào)文首部攜帶了一個(gè)Referer字段,這個(gè)字段表明當(dāng)前數(shù)據(jù)包是由哪個(gè)URL鏈接跳轉(zhuǎn)過(guò)來(lái)的。通過(guò)這個(gè)字段逐一進(jìn)行遞歸分析,可以獲得網(wǎng)頁(yè)木馬完整的控制鏈條。圖3為舉例說(shuō)明。
圖3 利用Referer字段遞歸還原通信鏈條Fig.3 Recursive analysis of referer feld to show the communication chain
圖3中,先后瀏覽新浪、網(wǎng)易和搜狐的主頁(yè)。第三個(gè)請(qǐng)求報(bào)文是客戶訪問(wèn)搜狐主頁(yè)時(shí)發(fā)出的HTTP-GET數(shù)據(jù)包,其Host字段表明當(dāng)前訪問(wèn)服務(wù)器的域名為www.sohu.com。Referer字段表明上一個(gè)URL鏈接為news.163.com/,表示客戶瀏覽了網(wǎng)易的新聞主頁(yè)之后跳轉(zhuǎn)于此。利用此辦法可遞歸分析出用戶瀏覽的次序?yàn)樾吕恕⒕W(wǎng)易、搜狐。圖4顯示利用Referer字段還原網(wǎng)頁(yè)木馬的整個(gè)種植流程。調(diào)查人員首先定位到惡意文件的起始數(shù)據(jù)包,這個(gè)步驟可以使用殺毒軟件和wireshark實(shí)現(xiàn),具體介紹見后。通過(guò)這個(gè)報(bào)文的Referer字段向前搜索,可依次定位到每個(gè)觸發(fā)報(bào)文,并同時(shí)還原出對(duì)應(yīng)的網(wǎng)頁(yè)文件。再?gòu)闹刑崛〕鰫阂獯a,直至完成整個(gè)分析工作。
圖4 遞歸還原控制鏈條Fig.4 Recursive restoration of control chain
2.3 GZIP壓縮數(shù)據(jù)文件手工還原方法
HTTP協(xié)議采用兩種方式進(jìn)行數(shù)據(jù)傳輸。一種是不壓縮的傳輸方式,將原始文件分為若干塊直接傳輸,如html、圖片、動(dòng)畫文件等,它適合體積較小文件的傳輸。另一種是壓縮傳輸方式,適合語(yǔ)音、視頻的實(shí)時(shí)傳輸,如即時(shí)語(yǔ)音、視頻聊天等,這類數(shù)據(jù)傳輸之前并不知道其文件的大小,但通常較大,發(fā)送方對(duì)每一個(gè)數(shù)據(jù)塊先壓縮再傳送。接收方收到后,需解壓才能得到原始數(shù)據(jù)。目前HTTP協(xié)議常用的壓縮算法是GZIP。GZIP最早由Jean-loup Gailly和Mark Adler創(chuàng)建,用于UNIX系統(tǒng)的文件壓縮。在Linux中經(jīng)常會(huì)看到后綴為.gz的文件,這些文件就是GZIP格式的?,F(xiàn)在已經(jīng)成為Internet上使用非常普遍的一種數(shù)據(jù)壓縮格式。HTTP協(xié)議上的GZIP編碼是一種用來(lái)改進(jìn)web應(yīng)用程序性能的技術(shù)。大流量的web站點(diǎn)常常使用GZIP壓縮技術(shù),此為WWW服務(wù)器安裝的一個(gè)功能,當(dāng)訪問(wèn)這臺(tái)服務(wù)器上的主頁(yè)時(shí),其網(wǎng)頁(yè)內(nèi)容經(jīng)壓縮后再傳遞給客戶主機(jī),一般純文本內(nèi)容可以壓縮到原大小的40 %左右。傳輸過(guò)程中,原始數(shù)據(jù)塊被壓縮為若干個(gè)GZIP數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊首部均有一個(gè)長(zhǎng)度字段,用以說(shuō)明這個(gè)GZIP數(shù)據(jù)塊的大小。使用wireshark不能直接查看捕獲的GZIP數(shù)據(jù)內(nèi)容,需要借助第三方軟件對(duì)其進(jìn)行解碼還原才行。圖5顯示了GZIP數(shù)據(jù)的手工還原過(guò)程。首先利用wireshark的TCP follow stream功能跟蹤特定的TCP數(shù)據(jù)流,提取出完整的通信流數(shù)據(jù),注意這里只提取單方向通信數(shù)據(jù)。若兩個(gè)方向交互傳遞數(shù)據(jù),則分別提取。而后使用winhex提取出組合后的GZIP數(shù)據(jù)。這些數(shù)據(jù)塊首部攜帶長(zhǎng)度值,需要去除,否則壓縮文件無(wú)法解壓。編制一個(gè)軟件自動(dòng)去掉這些長(zhǎng)度字段,或以手工方式實(shí)現(xiàn)。調(diào)整之后的壓縮數(shù)據(jù)可以直接進(jìn)行解壓,得到原始數(shù)據(jù)內(nèi)容。
圖5 GZIP壓縮數(shù)據(jù)手工還原過(guò)程Fig.5 Reduction of GZIP-compressed data
某臺(tái)計(jì)算機(jī)疑遭網(wǎng)頁(yè)木馬攻擊,使用1.12.4版wireshark抓取此主機(jī)瀏覽可疑網(wǎng)頁(yè)過(guò)程中產(chǎn)生的通信數(shù)據(jù)并作分析,確定是否存在惡意木馬程序,還原完整的木馬種植流程。取證軟件winhex用作輔助分析,具體步驟如下:
第一步 利用wireshark自動(dòng)還原所有文件。使用wireshark打開捕獲數(shù)據(jù)包,選擇數(shù)據(jù)自動(dòng)還原功能,從捕獲的HTTP通信數(shù)據(jù)中自動(dòng)還原出所有的數(shù)據(jù)文件,包括網(wǎng)頁(yè)、圖片、語(yǔ)音、動(dòng)畫,等等。Wireshark自動(dòng)還原功能的分析結(jié)果包括多行記錄,每行記錄代表一個(gè)可還原文件。例如記錄“102 www. bing.com text/xml 960bytes lsp.aspx”,其第一個(gè)字段代表當(dāng)前文件的起始數(shù)據(jù)包編號(hào)為102,第二個(gè)字段表示文件是從域名為www.bing.com的服務(wù)器傳出,第三個(gè)字段表示文件類型為文本數(shù)據(jù),第四個(gè)字段表示文件大小為960字節(jié),第五個(gè)字段表示文件名稱為lsp.aspx。若還原單個(gè)文件,可以選中對(duì)應(yīng)記錄,單擊Save as,將文件保存到特定位置。如還原所有文件,則單擊Save All,wireshark自動(dòng)將所有文件保存到特定位置。
第二步 利用wireshark和winhex手工還原GZIP壓縮數(shù)據(jù)。Wireshark雖能識(shí)別出多個(gè)GZIP壓縮數(shù)據(jù)塊,但是它無(wú)法將這些數(shù)據(jù)塊組合、還原為原始數(shù)據(jù)文件,需要進(jìn)行手工提取、還原。
(1)提取傳輸GZIP文件的TCP數(shù)據(jù)流。在wireshark自動(dòng)還原結(jié)果中任選一個(gè)GZIP數(shù)據(jù)包,wireshark將對(duì)其自動(dòng)命中。在起始報(bào)文上單擊鼠標(biāo)右鍵,選擇Follow TCP Stream。圖6是彈出的分析結(jié)果,其只顯示所有通信數(shù)據(jù)包的應(yīng)用層數(shù)據(jù)內(nèi)容,并按ASCII碼解析。橫線上面是客戶機(jī)發(fā)出的HTTP-GET請(qǐng)求報(bào)文,表明客戶當(dāng)前訪問(wèn)服務(wù)器名稱為stand.***.com,具體域名用*代替??蛻艨梢越邮誫zip和defate類型傳輸編碼。Referer字段表明用戶之前訪問(wèn)的是http://*** shop.com網(wǎng)站主頁(yè)。
圖6 確定傳輸類型Fig.6 Determining the types of data
橫線下面是服務(wù)器返回的HTTP應(yīng)答數(shù)據(jù),表明服務(wù)器類型、訪問(wèn)時(shí)間、傳輸與編碼類型等。顯示的通信是雙方互傳數(shù)據(jù),共497936字節(jié)。
(2)提取服務(wù)器向客戶機(jī)單方向傳輸?shù)耐ㄐ艛?shù)據(jù)。GZIP壓縮通信數(shù)據(jù)雖可以雙向傳遞,但是在客戶瀏覽網(wǎng)頁(yè)過(guò)程中,通常是由服務(wù)器向客戶機(jī)單方向傳遞。因此只需要提取這個(gè)方向的通信數(shù)據(jù),再去除頭尾雜質(zhì)數(shù)據(jù)即可。
(3)去除文件首尾的雜質(zhì)數(shù)據(jù),提取GZIP數(shù)據(jù)。如圖7,GZIP文件的起始標(biāo)志是0X1F8B,使用winhex打開上一步提取出的數(shù)據(jù)文件,搜索關(guān)鍵詞0X1F8B,命中位置為GZIP文件的起始位置,將0X1F字節(jié)標(biāo)記為起始位置[4]。
圖7 定位GZIP文件的起始和結(jié)束位置Fig.7 The starting and ending positions of GZIP-drawn data
從起始位置向后搜索ASCII字符串HTTP,可以定位到下一個(gè)文件的起始位置,在它之前會(huì)出現(xiàn)若干個(gè)0X0D0A標(biāo)記,從后向前搜索到最前面一個(gè)0X0D0A,這里就是GZIP文件的結(jié)束位置。將0X00字節(jié)標(biāo)記為結(jié)束位置,將選中的數(shù)據(jù)塊內(nèi)容拷貝出來(lái),保存到新文件中, GZIP數(shù)據(jù)提取完成。
(4)去除GZIP數(shù)據(jù)中夾雜的長(zhǎng)度數(shù)據(jù)。每個(gè)GZIP壓縮數(shù)據(jù)塊的起始位置均有一個(gè)長(zhǎng)度值,這個(gè)數(shù)值前后固定是0X0D0A,中間用ASCII表示十六進(jìn)制的長(zhǎng)度。如圖8,第一個(gè)GZIP數(shù)據(jù)塊的長(zhǎng)度為0X32 30 30 30,對(duì)應(yīng)ASCII碼為2000,轉(zhuǎn)換為十進(jìn)制數(shù)為8192,即第一個(gè)壓縮數(shù)據(jù)塊長(zhǎng)度為8192字節(jié)。
圖8 去除GZIP數(shù)據(jù)中夾雜的長(zhǎng)度值Fig.8 Impurity removal from GZIP-drawn data
利用winhex的十六進(jìn)制搜索功能查找0X0D0A,可以將所有長(zhǎng)度值依次搜索出來(lái)。選中長(zhǎng)度值和其前后的0X0D0A,將其剪切掉,去除所有的長(zhǎng)度標(biāo)志。將得到的數(shù)據(jù)文件擴(kuò)展名修改為.gz,再使用winrar軟件對(duì)其進(jìn)行解壓縮,就還原出一個(gè)原始數(shù)據(jù)文件。在本例中觀察還原出的數(shù)據(jù),確定其應(yīng)為一個(gè)html文件,核心程序代碼經(jīng)過(guò)加密處理,疑似存在惡意代碼,需要通過(guò)進(jìn)一步分析才能確定,這里將其名稱修改為主頁(yè).html。
第三步 檢測(cè)是否存在惡意木馬程序。將還原出的所有文件都放置在一個(gè)文件夾內(nèi),使用“安全管家”對(duì)該文件夾進(jìn)行掃描,在本例中發(fā)現(xiàn)存在三個(gè)惡意程序文件,分別是一個(gè)swf文件、一個(gè)jar文件和之前還原的“主頁(yè).html”。前兩個(gè)文件為非exe類型的溢出類程序,黑客可以利用其入侵計(jì)算機(jī)系統(tǒng)。第三個(gè)文件是一段網(wǎng)頁(yè)木馬程序,可在用戶未察覺的情況下竊取個(gè)人資料、破壞計(jì)算機(jī)系統(tǒng)。“金山火眼”系統(tǒng)可以分析特定類型程序文件的執(zhí)行功能[5],支持html代碼分析,將“主頁(yè).html”上傳到“金山火眼”分析,其點(diǎn)評(píng)是創(chuàng)建互斥體的惡意行為。
第四步 利用Referer字段遞歸還原控制鏈條。通過(guò)上面分析,初步確定jar和swf為可疑木馬程序文件,“主頁(yè).html”為惡意腳本文件。下面舉例說(shuō)明以swf文件為起點(diǎn),反向分析其完整的控制鏈條。
(1)提取傳輸swf文件的TCP通信數(shù)據(jù)流。在wireshark的自動(dòng)分析結(jié)果中選擇swf文件所在記錄,選擇Follow TCP Stream,提取出對(duì)應(yīng)的TCP數(shù)據(jù)流。
(2)還原倒數(shù)第二步URL鏈接。從提取的TCP數(shù)據(jù)流中單擊fnd,搜索關(guān)鍵詞swf,可以命中一個(gè)結(jié)果。這是客戶主機(jī)發(fā)出的HTTP-GET請(qǐng)求報(bào)文,請(qǐng)求下載swf文件。在本例中,這個(gè)HTTPGET請(qǐng)求報(bào)文的Host字段表明當(dāng)前服務(wù)器的域名為stand.***.com。Referer字段表明前一個(gè)URL地址為http://stand.***.com/?PHPSSESID=njrMNruDMhvJFI PGKuXDSKVbM07PThnJko2ahe6JVg | ZDJiZjZiZjI-5Yzc5OTg3MzE1MzJkMmExN2M4NNruDMh,正是此URL鏈接,客戶主機(jī)才發(fā)出了HTTP-GET請(qǐng)求,下載swf文件。
(3)還原倒數(shù)第三步URL鏈接。以前一步獲得的Referer字段作為關(guān)鍵詞,在整個(gè)TCP數(shù)據(jù)流中進(jìn)行搜索。命中一個(gè)HTTP-GET請(qǐng)求報(bào)文。報(bào)文的Host字段表明這個(gè)HTTP-GET請(qǐng)求仍是發(fā)送給stand.***.com服務(wù)器。通過(guò)前面分析可知,這里請(qǐng)求下載的正是“主頁(yè).html”,就是在這個(gè)惡意網(wǎng)頁(yè)的作用下,才促使客戶主機(jī)自動(dòng)下載swf文件。Referer字段表明前一個(gè)URL鏈接為http://*** shop.com/,用戶恰是瀏覽了這個(gè)網(wǎng)站的主頁(yè)后,才觸發(fā)了該步HTTP-GET請(qǐng)求報(bào)文。
(4)還原倒數(shù)第四步URL鏈接。由于目標(biāo)服務(wù)器由stand.***.com切換到***shop.com,因此不能在之前的TCP數(shù)據(jù)流中進(jìn)行搜索,需要找出客戶訪問(wèn)***shop.com服務(wù)器主頁(yè)的TCP數(shù)據(jù)流。通過(guò)wireshark提供的自動(dòng)還原功能可以定位到瀏覽***shop. com主頁(yè)的起始數(shù)據(jù)包。在該數(shù)據(jù)包上選擇Follow TCP Stream,在提取出的TCP數(shù)據(jù)流中搜索關(guān)鍵詞/,命中一個(gè)HTTP-GET請(qǐng)求報(bào)文。報(bào)文的Host字段表明當(dāng)前訪問(wèn)的是***shop.com服務(wù)器,GET / 表示當(dāng)前瀏覽的是服務(wù)器主頁(yè)。在這個(gè)主頁(yè)中攜帶了一條
(5)還原倒數(shù)第五步URL鏈接。利用wireshark的文件還原功能可以確定瀏覽www.***.nl主頁(yè)的起始數(shù)據(jù)包。在該報(bào)文上選擇Follow TCP Stream。在提取出的TCP數(shù)據(jù)流中搜索關(guān)鍵詞/,命中一個(gè)HTTP-GET請(qǐng)求報(bào)文。報(bào)文的Host字段表明當(dāng)前訪問(wèn)的是www.***.nl服務(wù)器,GET / 表示當(dāng)前瀏覽的是服務(wù)器主頁(yè)。其中攜帶了一條
var js_kod2 = document.createElement(‘iframe’); // 框 架 語(yǔ) 句js_kod2.src = ‘http://*** shop.com’; // 觸 發(fā)的目標(biāo)URL js_kod2.width = ‘180px’; js_ kod2.height = ‘200px’; js_kod2.setAttribute(‘style’,’visibility:hidden’)。這條指令會(huì)觸發(fā)客戶去瀏覽http://*** shop.com主頁(yè),在這條指令的作用下,客戶才發(fā)出了上一步的HTTP-GET請(qǐng)求報(bào)文。Referer字 段 值 為 http://www.bing.com/search?q=***. nl&qs=ds&form=QBLH,表示客戶訪問(wèn)了微軟公司搜索引擎www.bing.com,搜索了關(guān)鍵詞***.nl之后,點(diǎn)擊了對(duì)應(yīng)的URL鏈接,而發(fā)出了當(dāng)前HTTPGET請(qǐng)求報(bào)文。以這個(gè)Referer字段作為搜索關(guān)鍵詞,在通信數(shù)據(jù)包中沒有命中記錄,遞歸分析環(huán)節(jié)至此結(jié)束。
第五步 形成檢驗(yàn)結(jié)論。將前面反向分析結(jié)果變成正向次序,得到圖9分析結(jié)果。用戶首先訪問(wèn)了微軟搜索引擎www.bing.com,搜索關(guān)鍵詞www.***. nl,在返回結(jié)果中直接單擊相應(yīng)URL鏈接,訪問(wèn)www.***.nl服務(wù)器主頁(yè)。在這個(gè)主頁(yè)文件中存在一條框架掛馬語(yǔ)句,代碼見前面第四步(5),由其作用,客戶主機(jī)自動(dòng)訪問(wèn)***shop.com服務(wù)器主頁(yè)。
圖9 完整的控制鏈條Fig.9 Complete intrusion process by controllong
***shop.com服務(wù)器主頁(yè)中存在框架掛馬指令,受其作用客戶自動(dòng)訪問(wèn)stand.***.com服務(wù)器的主頁(yè)。該主頁(yè)誘使客戶主機(jī)自動(dòng)下載jar和swf木馬程序文件。從通信數(shù)據(jù)中可以提取出各臺(tái)服務(wù)器使用的域名和IP地址信息,圖9隱去了IP地址信息。
根據(jù)上述分析結(jié)果,辦案人員可以通知跳板1、跳板2的網(wǎng)站管理員除去主頁(yè)文件中的框架掛馬指令,從源頭阻斷木馬的傳播。惡意網(wǎng)站上存儲(chǔ)了swf、jar等木馬程序文件和惡意網(wǎng)頁(yè)文件,若將它們放在托管服務(wù)器上,可能會(huì)遭受殺毒軟件查殺,通常這類站點(diǎn)由黑客直接維護(hù),通過(guò)網(wǎng)絡(luò)技術(shù)可以確定黑客的相關(guān)信息,進(jìn)而鎖定其在現(xiàn)實(shí)社會(huì)中的具體位置。黑客通常是利用網(wǎng)絡(luò)入侵手段在跳板網(wǎng)頁(yè)中植入框架掛馬指令[6],故通過(guò)對(duì)跳板主機(jī)的系統(tǒng)日志、Web服務(wù)器日志、數(shù)據(jù)庫(kù)日志等進(jìn)行檢驗(yàn)分析就可以獲得黑客的入侵痕跡并對(duì)其鎖定。
本文提出的Referer字段遞歸分析方法可還原網(wǎng)頁(yè)木馬完整的種植過(guò)程,找出被掛馬網(wǎng)站和相應(yīng)的頁(yè)面,提取出網(wǎng)頁(yè)中被植入的惡意代碼。利用這種檢驗(yàn)方法能夠獲得被掛馬網(wǎng)站的相關(guān)信息,準(zhǔn)確定位惡意代碼的存儲(chǔ)位置,通知網(wǎng)站管理員除去惡意代碼,增強(qiáng)保護(hù)措施,從源頭阻斷木馬的傳播途徑。另一方面,根據(jù)黑客在種植惡意代碼過(guò)程中在被掛馬網(wǎng)站遺留下的入侵痕跡,通過(guò)對(duì)被掛馬網(wǎng)站進(jìn)行檢驗(yàn)分析,就可以獲得黑客的相關(guān)線索。
惡意網(wǎng)頁(yè)通常被植入大量注釋語(yǔ)句,用以改變特征值,躲避殺毒軟件的查殺。惡意網(wǎng)站也會(huì)使用編碼技術(shù)來(lái)對(duì)惡意代碼進(jìn)行保護(hù)。今后將研究通過(guò)程序設(shè)計(jì)的方式編寫軟件自動(dòng)去除惡意網(wǎng)頁(yè)中的注釋語(yǔ)句,并對(duì)惡意網(wǎng)頁(yè)進(jìn)行解碼,還原其原始內(nèi)容。
[1] 張慧林.網(wǎng)頁(yè)木馬機(jī)理與防御技術(shù)[J].軟件學(xué)報(bào),2013,21(2):23-25.
[2] 徐國(guó)天.基于“行為模擬”的木馬線索調(diào)查方法[J].刑事技術(shù),2014(2):19-20.
[3] 徐國(guó)天.基于網(wǎng)絡(luò)抓包的盜號(hào)木馬線索調(diào)查方法研究[J].刑事技術(shù),2014(6):22-24.
[4] 戴士劍,涂彥暉.?dāng)?shù)據(jù)恢復(fù)技術(shù)(第二版)[M].北京:電子工業(yè)出版社,2005.
[5] 一種基于網(wǎng)絡(luò)行為分析的HTTP木馬檢測(cè)模型[J].北京化工大學(xué)學(xué)報(bào),2014(5):32-33.
[6] 遠(yuǎn)控型木馬通信三階段流量行為特征分析[J].信息網(wǎng)絡(luò)安全,2015(3):18-20.
Forensic Detection of Webpage Trojan Based on Recursive Analysis of Referer Field
XU Guotian
(Department of Network Criminal Investigation, National Police University of China, Shenyang 110854, China)
ObjectiveTo explore the method for detection of Webpage Trojan.MethodsThe suspicious webpages are reviewed and checked with Wireshark to capture the relevant data from which all of the involving files are restored. The mainstream anti-virus tools are used to scan the obtained fles so that the Trojan viruses are kept with their names and downloaded paths. Through recursive analysis of referer felds, the Trojans can be completely exposed of their transmission route, the infected websites will be located, the corresponding pages defined, and the malicious codes extracted as well.ResultsThe relevant information of the infected sites has been obtained together with their accurate storage locations and malicious codes. Thus, the website administrators can take the information to remove the Trojans and enhance the protection measures to block the viruses’ intrusion and spread. On the other hand, based on the footprints left in the process of planting malicious codes of Trojans, the hackers can be traced to reveal themselves according to relevant clues.ConclusionThe recursive analysis of referer fields can effectively detect the Trojans concealed in webpage, therefore making the clues of related cases gained.
referer; recursive analysis; webpage Trojan; forensic; GZIP
DF793.2
A
1008-3650(2016)06-0431-06
2015-10-09
格式:徐國(guó)天. 基于Referer字段遞歸分析的網(wǎng)頁(yè)掛馬檢驗(yàn)方法研究[J]. 刑事技術(shù),2016,41(6):431-436.
10.16467/j.1008-3650.2016.06.001
公安部技術(shù)研究計(jì)劃項(xiàng)目(No.2014JSYJB033);公安部應(yīng)用創(chuàng)新計(jì)劃課題(No.2014YYCXXJXY055);遼寧省教育科學(xué)‘十二五’規(guī)劃立項(xiàng)課題《“能力導(dǎo)向”的網(wǎng)絡(luò)安全與執(zhí)法專業(yè)實(shí)踐教學(xué)研究》(No.JG14db440);遼寧省自然科學(xué)基金課題(No.2015010091-301)
徐國(guó)天(1978—),男,遼寧沈陽(yáng)人,副教授,碩士,研究方向?yàn)殡娮游镒C和網(wǎng)絡(luò)安全。E-mail:459536384@qq.com