黃吉鯤 龔偉剛 游偉 秦波 石文昌 梁彬
摘要:目前,很多惡意網(wǎng)頁僅利用常規(guī)的Web編程技術(shù)使得瀏覽器自動下載木馬等惡意軟件并誘騙用戶執(zhí)行。這種惡意行為被稱為自動下載。瀏覽器中現(xiàn)有的防御機制并不能有效地識別這種攻擊。針對此類惡意行為,提出了一種防御方法。該方法通過監(jiān)控網(wǎng)頁中能導(dǎo)致自動下載的操作,并在下載實際發(fā)生時判斷是否由用戶觸發(fā),來識別自動下載行為并加以阻斷。此防御方法已經(jīng)在WebKitGtk+2.8.0和Chromium 38.0.2113.1兩個瀏覽器中實現(xiàn),并進行了評估:兩個檢測防御系統(tǒng)針對現(xiàn)存的攻擊樣本均無誤報和漏報,額外的性能開銷分別為1.26%和7.79%。實驗結(jié)果表明,該方法能夠有效地監(jiān)測并阻斷自動下載攻擊且性能開銷較小。
關(guān)鍵詞:
惡意網(wǎng)頁;惡意軟件;自動下載檢測;用戶交互
中圖分類號: TP309.5 文獻標志碼:A
0引言
目前,很多惡意網(wǎng)頁都存在將攻擊者的木馬自動下載到用戶主機的行為,并在下載后誘騙用戶執(zhí)行攻擊者的木馬。本文將這種攻擊稱為自動下載。在2014年12月至2015年3月收集到的68296條惡意網(wǎng)頁攻擊記錄中,有58425條攻擊記錄包含自動下載行為,占所有攻擊記錄的85.55%。
與DrivebyDownload[1]攻擊相比,自動下載型攻擊雖然不能在惡意軟件下載后自動運行,但是攻擊頁面通常會誘騙用戶,讓用戶相信下載下來的惡意軟件是用戶需要的、正常的軟件或插件,誘使用戶執(zhí)行。
例如,圖1是一個包含自動下載行為的惡意網(wǎng)頁,在網(wǎng)頁打開后3s,會自動下載一個名為“microsoft xps document writer__3039_i1755271595_il358621.exe”的文件。用戶根據(jù)如圖1網(wǎng)頁中所給的信息以為自己下載的是一個虛擬打印程序;但實際上,這是一個惡意應(yīng)用。用戶點擊運行這個程序的時候,并不能像用戶期望的那樣安裝虛擬打印機,而是在用戶的主機上運行了一個木馬程序,讓用戶主機成為攻擊者僵尸網(wǎng)絡(luò)中的一臺“肉機”。
此類攻擊并沒有利用任何瀏覽器漏洞,僅利用瀏覽器的正常機制和現(xiàn)有的Web技術(shù)就能夠?qū)⒐粽叩哪抉R下載到用戶本地,并誘使用戶執(zhí)行。盡管并非所有的用戶都會運行自動下載的惡意應(yīng)用;但是其廣泛撒網(wǎng)的方式,仍然使攻擊者能夠獲得大量的“肉機”。
自動下載為用戶的計算機安全帶來了很大的威脅;但是,瀏覽器現(xiàn)有的安全機制并不足以抵御自動下載攻擊。
主流瀏覽器對惡意網(wǎng)頁的防御方法是黑名單機制。以Chrome瀏覽器為例,其在加載網(wǎng)頁前,先檢測此網(wǎng)址是否在預(yù)設(shè)的黑名單中。如果在,則認為其是惡意網(wǎng)頁;否則認為其是正常網(wǎng)頁。這種黑名單機制實現(xiàn)簡單、效率高,對用戶體驗的影響非常低;但是,利用黑名單機制來檢測網(wǎng)頁自動下載行為并不完全有效。黑名單列表需要及時更新來保證結(jié)果的準確性。對于新出現(xiàn)的未知惡意網(wǎng)頁這種方法存在可被攻擊者利用的時延窗口。
瀏覽器的反彈窗機制也對自動下載有一定的攔截效果;但遺憾的是,這種防御機制只能攔截利用自動彈窗觸發(fā)的下載,并不能攔截所有的自動下載方式。
當前的安全工具對于此類攻擊的檢測,通常是在下載完成后,通過掃描文件是否包含惡意程序的特征碼來判斷下載文件是否是惡意軟件,并不能在事前就阻止自動下載的發(fā)生。而且,這種方法對于未知木馬的檢測往往無能為力。
在惡意網(wǎng)頁研究領(lǐng)域,目前也沒有研究者專門對此類利用瀏覽器正常機制和Web技術(shù)來將木馬在未經(jīng)用戶同意的情況下自動下載到用戶主機上的行為進行研究。
為此,本文提出了一種檢測方法,以應(yīng)對網(wǎng)頁中的自動下載行為。
自動下載的關(guān)鍵特征在于不經(jīng)用戶交互就觸發(fā)下載操作。通過在瀏覽器中加入相應(yīng)的檢測模塊,基于瀏覽器的用戶交互機制判斷下載操作或?qū)е孪螺d的方法是否由用戶觸發(fā),從而判斷該下載行為是否是自動下載。本文在WebKitGtk+2.8.0和Chromium 38.0.2113.1中實現(xiàn)了相應(yīng)的原型系統(tǒng)。實驗證明本文提出的方法可以有效識別出自動下載,針對現(xiàn)存的攻擊樣本無誤報和漏報,額外的性能開銷分別為1.26%和7.79%,完全在可接受范圍內(nèi)。
本文的主要工作如下:1)系統(tǒng)地界定了目前瀏覽器中可被利用的自動下載方式;2)提出了一種針對性的基于用戶交互判斷的自動下載檢測方法;3)在WebKitGtk+2.8.0和Chromium 38.0.2113.1瀏覽器中實現(xiàn)了對自動下載行為的檢測與攔截,驗證了此方法的有效性。
1相關(guān)工作
自動下載行為是惡意網(wǎng)頁的攻擊方式之一。本章從基于行為、基于統(tǒng)計或機器學(xué)習(xí)以及其他三個方面介紹相關(guān)的惡意網(wǎng)頁檢測工作,并分別分析用這些方法檢測自動下載行為的可行性。
1.1基于行為的檢測
基于行為的檢測方法主要是客戶端蜜罐:建立一個虛擬環(huán)境,通過檢測和監(jiān)聽異常行為、運行時參數(shù)來檢測攻擊。例如:2006年,微軟研究院的HoneyMonkey項目[2]以及華盛頓大學(xué)Moshchuk等[3]的SpyCrawler采用該方法均發(fā)現(xiàn)了一定數(shù)量的惡意網(wǎng)頁。此外,還有一些開源的高交互式客戶端蜜罐,如HoneyClient[4]以及國際蜜網(wǎng)項目組新西蘭小組的CaptureHPC[5];但是,基于行為的檢測方法并未關(guān)注此類僅利用正常瀏覽器機制和Web編程技術(shù)的自動下載行為。
1.2基于統(tǒng)計或機器學(xué)習(xí)的檢測
通過提取惡意網(wǎng)頁相對于正常網(wǎng)頁的特征,利用機器學(xué)習(xí)對網(wǎng)頁進行分類。Seifert[6]、Canali[7]、Cova[8]、Heiderich等[9]提取頁面中的靜態(tài)或動態(tài)特征進行機器學(xué)習(xí)來對頁面進行分類。例如Heidertich等[9]的IceShield通過動態(tài)插樁的方式包裹document.write()等危險方法,在網(wǎng)頁渲染時動態(tài)提取危險標簽、可疑的Unicode字符等特征,為網(wǎng)頁評分。通過機器學(xué)習(xí)在大量的樣本中得到一個合適的閾值,利用此閾值對網(wǎng)頁進行分類:網(wǎng)頁評分大于該閾值的,被分類為惡意網(wǎng)頁;小于等于的,被認為是正常網(wǎng)頁。此類檢測方法同樣未關(guān)注自動下載行為。
1.3其他防御機制
BLADE[10]對操作系統(tǒng)作一定的安全擴展,阻斷所有不是通過瀏覽器的圖形用戶界面(Graphical User Interface, GUI)進行的下載行為,將所有通過瀏覽器進程下載的可執(zhí)行文件放入一個虛擬的、權(quán)限受限的隔離存儲空間,并在每一個文件被放到隔離空間中后向用戶發(fā)起確認,只有經(jīng)過用戶確認的下載文件才會被轉(zhuǎn)移到真實的文件系統(tǒng)中。這種方式雖然阻止了下載文件到文件系統(tǒng)中;但是阻斷了那些不經(jīng)過瀏覽器進程下載的任務(wù),為用戶帶來了很大的不便。
JShield[11]的團隊收集了2007年至2014年所有關(guān)于瀏覽器JavaScript引擎以及PDF文件的相關(guān)漏洞,并提取了這些漏洞的操作碼特征,使用確定有限自動機(Deterministic Finite Automaton, DFA)在操作碼級別匹配漏洞特征,從而檢測Drivebydownload,但是本文關(guān)注的自動下載沒有利用任何漏洞。
總體而言,目前惡意網(wǎng)頁檢測研究領(lǐng)域的研究忽略了此類僅利用正常瀏覽器機制和Web技術(shù)的自動下載行為,沒有對其進行有效的檢測和防御。
2系統(tǒng)概述
本文提出的自動下載行為檢測方法如圖2所示。首先,監(jiān)控所有可能導(dǎo)致自動下載的觸發(fā)點,并在其被觸發(fā)時進行交互判斷。非用戶觸發(fā)的可疑下載的統(tǒng)一資源定位符(Uniform Resource Locator, URL)將被收集到一個可疑列表中。同時,監(jiān)聽下載操作以在瀏覽器建立下載任務(wù)時進行檢查,如果觸發(fā)下載任務(wù)沒有經(jīng)過用戶交互(下載操作的源地址在可疑列表中),則認為這是一個自動下載,并進行阻斷;反之,認為是由用戶觸發(fā)的,允許下載。
此方法的關(guān)鍵在于找出盡可能全面地自動下載的觸發(fā)點,插入檢測代碼,進行用戶交互判斷,從而獲取可疑列表。
3自動下載方式界定
為了選取合適的檢測點插入檢測代碼,需要了解當前瀏覽器有哪些下載方式可以被利用來實現(xiàn)自動下載。
本文通過分析瀏覽器內(nèi)核代碼、HTML協(xié)議以及JavaScript對象、方法來找出當前瀏覽器中可以被攻擊者利用來實現(xiàn)自動下載的方式。
首先,分析瀏覽器內(nèi)核源代碼(以Chromium為例)。在Chromium瀏覽器內(nèi)核源碼中找到了實現(xiàn)下載的方法DownloadItemView::OnDownloadUpdated(),并利用靜態(tài)代碼分析工具Understand[12]遍歷所有調(diào)用此方法的路徑。本文將下載分成兩大類:一類是頁面請求導(dǎo)致的下載。瀏覽器在向服務(wù)器發(fā)起頁面請求(打開新頁面或頁面重定向)后,發(fā)現(xiàn)返回資源的多用途互聯(lián)網(wǎng)郵件擴展類型(Multipurpose Internet Mail Extensions, MIME)并不是其所支持的類型時,瀏覽器會將返回資源下載到用戶本地。另一類是利用瀏覽器的資源保存機制下載文件。例如,利用FileSystem API(Application Programming Interface)可以將指定資源保存到用戶主機中。
任何頁面請求和資源保存的方式都有可能導(dǎo)致下載,但是攻擊者要在網(wǎng)頁中實現(xiàn)自動下載,只能利用頁面中的超文本標記語言(Hyper Text Markup Language, HTML)元素和JavaScript對象方法,因此,本文分析了HTML標準和JavaScript對象方法,通過查找頁面請求和保存資源的方法,找出了6種可繞開瀏覽器安全防御機制導(dǎo)致自動下載的方法。window.locaion、HTML5的History API、標簽、標簽和超文本傳輸協(xié)議(HyperText Transfer Protocol, HTTP)的重定向返回碼等頁面請求方法都可以用來導(dǎo)致自動下載,如表1所示。而利用資源保存來實現(xiàn)自動下載的方式只有HTML5的FileSystem API一種。
3.1window.location
window.location對象[13]用于獲得當前頁面的地址,或把瀏覽器重定向到新的頁面。
程序前
window.location="http://www.abc.com/malware.exe"
程序后
上面的JavaScript指令會發(fā)起一個頁面請求,但由于服務(wù)器返回的資源malware.exe不能被瀏覽器渲染,瀏覽器會將malware.exe保存到用戶本地文件系統(tǒng)中。
攻擊者可以利用window.location自動下載惡意軟件,如代碼1。
代碼1利用window.location自動下載。
程序前
function jump(){
window.location="http://www.evil.com/malware.exe";
}
程序后
3.2History API
window.history對象[14]用于回到瀏覽器歷史列表中的網(wǎng)頁。其中history.go()方法可以用來向服務(wù)器重新發(fā)起頁面請求,刷新頁面。
HTML5推出后,新增了History API[15],推出了兩個新的方法:history.pushState()和history.replaceState()。前者將給定的數(shù)據(jù)、給定的標題和URL推送到歷史記錄中去。而后者用參數(shù)中給定的數(shù)據(jù)、標題和URL更新當前保存的那條歷史記錄。
利用History API的兩個新方法替換當前歷史記錄,然后用history.go()刷新頁面,可實現(xiàn)當前頁面向任意同源頁面的跳轉(zhuǎn)。當服務(wù)器返回的頁面跳轉(zhuǎn)請求資源不能被瀏覽器渲染時,瀏覽器會將資源下載到用戶的文件系統(tǒng)中。代碼2中的頁面利用History API實現(xiàn)了惡意軟件的自動下載。
代碼2使用History API實現(xiàn)自動下載。
程序前
history.pushState({},"","./malware.exe ");
history.go(0);
程序后
3.3標簽
Anchor對象表示HTML超鏈接[16]。在HTML文檔中標簽每出現(xiàn)一次,就會創(chuàng)建Anchor對象。Anchor可用于創(chuàng)建指向另一個頁面的鏈接(href屬性)。
程序前
程序后
攻擊者可以利用JavaScript指令模擬用戶點擊標簽實現(xiàn)自動下載。如代碼3。
代碼3腳本模擬點擊標簽實現(xiàn)自動下載。
程序前
程序后
3.4標簽
元素[17]可提供有關(guān)頁面的元信息(metainformation)。標簽的屬性定義了與文檔相關(guān)聯(lián)的名稱/值。如果標簽的httpequiv屬性值為“refresh”,則可以使頁面自動重定向到content屬性中的URL頁面中。
如果content中URL的值是一個不能被瀏覽器解析的文件的網(wǎng)絡(luò)地址,則瀏覽器會自動將此文件下載到用戶本地文件系統(tǒng)中。
程序前
程序后
例如,頁面中如果包含以上代碼,會在用戶加載完頁面2s后,自動下載malware.exe文件。
3.5HTTP重定向碼
在服務(wù)器返回的HTTP報文中,HTTP狀態(tài)碼為客戶端提供了一種理解事務(wù)處理的便捷方式。HTTP狀態(tài)碼被分成了五大類。其中300~399的重定向狀態(tài)碼[18]要么告知客戶端使用替代位置來訪問它們所感興趣的資源,要么就是提供一個可替代的響應(yīng)而不是資源的內(nèi)容。如果資源已經(jīng)被移動,可以發(fā)送一個重定向狀態(tài)碼和一個可選的Location首部來告知客戶端資源已被移走,以及現(xiàn)在可以在哪里找到它。這樣瀏覽器就可以在不打擾使用者的情況下,透明地轉(zhuǎn)入新的位置了。
和其他頁面請求操作一樣,如果服務(wù)器返回的資源不能被瀏覽器渲染,瀏覽器會將該資源保存到用戶的文件系統(tǒng)中。
3.6利用FileSystem API自動下載
為了給Web應(yīng)用程序提供一個永久保存數(shù)據(jù)的空間,HTML5新增了FileSystem API,通過使用該API,用戶可以將數(shù)據(jù)保存在磁盤上的文件系統(tǒng)中,從而得到一個永久保存數(shù)據(jù)的空間。
HTML5的這個新特性導(dǎo)致了新的下載方式的產(chǎn)生——利用FileSystem實現(xiàn)下載[19]:首先,獲取要保存的文件內(nèi)容,將其轉(zhuǎn)換成blob對象;然后,利用FileSystem API將其寫入沙箱隔離環(huán)境文件中;最后,將下載到沙箱隔離環(huán)境中的文件看成下載源[20],利用腳本自動觸發(fā)頁面請求,將文件從沙箱隔離環(huán)境中移入(下載)到用戶的本地文件系統(tǒng)中,如圖3所示。
同window.location、History API類似,F(xiàn)ileSystem API也可以在未經(jīng)用戶交互的情況下被調(diào)用來實現(xiàn)自動下載。
攻擊者可以利用以上6種方式繞開瀏覽器現(xiàn)有的安全防御機制實現(xiàn)自動下載。
4系統(tǒng)實現(xiàn)
本文分別在WebKitGtk+2.8.0和Chromium 38.0.2113.1瀏覽器中實現(xiàn)了對自動下載行為的檢測與攔截。
4.1WebKitGtk+ 2.8.0
Webkit是一個開源的瀏覽器引擎,目前市面上很多瀏覽器都使用Webkit的內(nèi)核。Gnome領(lǐng)導(dǎo)的WebKitGtk+[21]是一個基于Gtk+的WebKit渲染引擎接口,也是目前Linux下最受矚目的WebKit開源項目之一。
4.1.1檢測點
在WebKitGtk+中,UserGestureIndicator對象負責記錄用戶操作,并提供了一個名為processingUserGesture()的方法判斷用戶交互。processingUserGesture()方法具有時效性,在下載時的返回值都是false(無用戶交互),因此,在自動下載觸發(fā)方式的對應(yīng)內(nèi)核方法中進行用戶交互判斷,而不是在下載發(fā)生時才進行。
由于WebKitGtk+的FileSystem API功能實現(xiàn)不完全,F(xiàn)ileSystem API導(dǎo)致的自動下載在WebKitGtk+中不能正常進行,因此,在WebKitGtk中,只關(guān)注window.location、History API、、和HTTP重定向返回碼導(dǎo)致的自動下載。
4.1.2檢測流程
WebKitGtk+支持的5種自動下載方式都是頁面請求操作觸發(fā)的??梢酝ㄟ^判斷導(dǎo)致下載的頁面請求是否由用戶觸發(fā)來對這種類型的下載行為進行分類:自動下載或正常下載。
在WebKitGtk+2.8.0中對自動下載行為的檢測流程如下。
1)獲取可疑URL列表。
首先,在window.location等5種自動下載觸發(fā)方式對應(yīng)的瀏覽器源碼方法中插入用戶交互檢測代碼。監(jiān)聽網(wǎng)頁中的頁面請求操作,并利用processingUserGesture()方法對頁面請求操作進行交互判斷。如果processingUserGesture()的返回值為false,則認為此網(wǎng)頁的頁面請求操作不是用戶觸發(fā)的。包含非用戶觸發(fā)的頁面請求操作的網(wǎng)頁被認為有潛在自動下載意圖。獲取其頁面請求的目的URL,將此目的URL放入可疑跳轉(zhuǎn)URL列表specious_urls中。
2)監(jiān)聽下載識別自動下載。
在內(nèi)核中實現(xiàn)下載的對應(yīng)方法中插入檢測代碼。監(jiān)聽頁面是否含有下載操作,并獲取下載源的URL地址download_url。如果下載源地址download_url包含在可疑跳轉(zhuǎn)URL列表specious_urls中,則認為當前的下載行為是由頁面請求觸發(fā)的自動下載行為。
4.2Chromium 38.0.2113.1
Chrome瀏覽器是對HTML5和CSS3等推出的新特性支持得最為全面的瀏覽器。本文中界定的6種自動下載方式都能正常攻擊。
其開發(fā)版Chromium和WebKitGtk+一樣,包含UserGestureIndicator對象,并提供判斷用戶交互的processingUserGesture()方法。除此之外,Chromium對每一個下載任務(wù)建立一個DownloadItem對象,并將processingUserGesture()的值傳遞給DownloadItem對象的方法——HasUserGesture(),標識此下載任務(wù)是否是由用戶觸發(fā)。
雖然在下載時UserGestureIndicator記錄的用戶動作已經(jīng)失效,processingUserGesture()方法不能區(qū)分正常下載和自動下載;但Chromium中DownloadItem::HasUserGesture的存在使本文可以利用此方法直接判斷下載操作是否是自動下載,而不需要像WebKitGtk+2.8.0中一樣,需要在所有可以導(dǎo)致自動下載的觸發(fā)方法中插入檢測代碼。
但是利用FileSystem API進行的下載使用了JavaScript自動觸發(fā)頁面請求來將文件從沙箱隔離環(huán)境移到用戶本地文件系統(tǒng)中。這導(dǎo)致對于利用FileSystem API實現(xiàn)的正常下載,其DownloadItem對象HasUserGesture()返回的值也會是false——非用戶觸發(fā),因此,需要單獨對利用FileSystem API進行的下載單獨進行檢測,并排除誤報。
4.2.1檢測頁面請求類型的自動下載
Chromium中DownloadItem對象的HasUserGesture()可以直接在下載發(fā)生時對頁面請求觸發(fā)的下載進行交互判斷,因此,在Chromium中檢測自動下載行為比WebKitGtk+2.8.0更方便,只需要在瀏覽器為下載任務(wù)建立DownloadItem對象時判斷下載是否是由用戶觸發(fā),而不需要在所有觸發(fā)點插入檢測代碼。
但是,用戶觸發(fā)FileSystem API進行下載的過程包括一個自動頁面請求(將文件從沙箱隔離環(huán)境中移動到本地文件系統(tǒng)中)。這會導(dǎo)致由用戶觸發(fā)的利用FileSystem API進行的下載也被判斷成自動下載,造成誤報。
實驗發(fā)現(xiàn),向服務(wù)器提出頁面請求導(dǎo)致的下載,其下載地址是正常的網(wǎng)絡(luò)URL格式:“http(s)://www.website.com/malware.exe”,而FileSystem API觸發(fā)下載的下載地址是“filesystem:http(s)://www.website.com/temporary(或者persistent)/malware.exe”的格式。
為了區(qū)分利用FileSystem API進行的正常下載和頁面請求導(dǎo)致的自動下載,在確認自動觸發(fā)的頁面請求導(dǎo)致了下載操作后,還需要判斷download_url的格式,如果download_url不以“filesystem”開頭(不是filesystem API類型的下載),才認為此次下載是自動下載。檢測流程見圖4。
4.2.2檢測利用FileSystem API的自動下載
如圖3中所示,利用FileSystem API下載的文件是保存在沙箱隔離環(huán)境中的,如果要將此文件放入用戶的文件系統(tǒng)中,還需要利用頁面請求類型的下載方法,以沙箱隔離環(huán)境中保存的路徑為跳轉(zhuǎn)目的地址,將其下載到本地目錄中。如果將檢測點放在文件從沙箱隔離環(huán)境中移入本地文件系統(tǒng)時,會導(dǎo)致所有利用FileSystem API進行的下載都會被認為是自動下載,因此,只能在利用FileSystem API寫入沙箱隔離環(huán)境的過程中利用processingUserGesture()方法檢查用戶交互,以檢測由FileSystem API觸發(fā)的下載是否是自動下載。
在網(wǎng)頁獲取FileSystem權(quán)限以后,所有的FileSystem API相關(guān)操作都會進入瀏覽器子線程中進行操作。所有非主線程中的行為都被processingUserGesture()認為是非用戶操作。如果將檢測點放在獲取權(quán)限之后,會導(dǎo)致所有由FileSystem API觸發(fā)的下載行為都被判定成非用戶操作。所以,本文在瀏覽器獲取FileSystem API權(quán)限時進行檢測,所有自動獲取FileSystem API權(quán)限的操作都被判定為危險操作,并進行阻斷和攔截,這樣就可以阻止FileSystem API類型的自動下載。
WebKitGtk+2.8.0和Chromium 38.0.2113.1都是基于WebKit內(nèi)核的,在這兩個瀏覽器基礎(chǔ)上的原型系統(tǒng)實現(xiàn)是基本一致的。其不同點在于,Chromium對每一個下載任務(wù)建立一個DownloadItem對象,并判斷其是否由用戶觸發(fā)。這一特性使該檢測方法在Chromium系列的瀏覽器中實現(xiàn)時可以統(tǒng)一在建立下載任務(wù)時進行檢測、攔截,而不是像WebKitGtk+2.8.0一樣,需要在每一個下載觸發(fā)點插入用戶交互檢測代碼。
5實驗
本文在插入檢測代碼后的WebKitGtk+2.8.0和Chromium 38.0.2113.1瀏覽器中進行了功能和性能測試。
5.1功能測試
將Alexa網(wǎng)站公布的前500個網(wǎng)站主頁認為是正常網(wǎng)頁,從惡意樣本中選取3052個網(wǎng)頁。然后,使用加入了自動下載檢測功能的Chromium 38.0.2113.1及WebKitGtk+2.8.0瀏覽器去訪問Alexa網(wǎng)站公布的前500個網(wǎng)頁以及52個自動下載類型的惡意網(wǎng)頁,以檢測準確率。
如表2所示,無論是在Chromium 38.0.2113.1還是WebKitGtk+2.8.0中,500個正常網(wǎng)頁都沒有被誤報,誤報率為0。在Chromium 38.0.2113.1中,52個網(wǎng)頁的自動下載行為都被檢測并攔截了,漏報率為0。在WebKitGtk+2.8.0中,由于WebKitGtk+不支持由FileSystem API導(dǎo)致的自動下載,有2個網(wǎng)頁在WebKitGtk+2.8.0上不能自動下載,但剩下的50個惡意網(wǎng)頁的自動下載行為也都能被成功檢測,漏報率為0。
通過測試說明:本文提出的檢測方法能夠有效地檢測并攔截自動下載行為。
5.2性能測試
谷歌的OctaneBenchmark[22]是網(wǎng)頁渲染速度測試通常使用的測試方法。通過Google官方的JavaScript腳本測試集,全面檢測瀏覽器的JavaScript性能。此測試分數(shù)越高代表瀏覽器性能越好。通過OctaneBenchmark分別對插入檢測代碼前后的WebKitGtk+2.8.0和Chromium 38.0.2113.1進行了測試,以評估插入代碼對瀏覽器性能影響。
測試結(jié)果如表3所示,在WebKitGtk+2.8.0和Chromium 38.0.2113.1瀏覽器中插入了檢測代碼后,其性能開銷分別增加了1.26%和7.79%,對用戶體驗幾乎沒有影響。
通過實驗證明:本文提出的自動下載檢測方法可以非常準確地檢測網(wǎng)頁的自動下載行為;同時,其造成的額外開銷非常小,不影響用戶瀏覽正常網(wǎng)頁時的體驗。
6結(jié)語
本文總結(jié)了目前攻擊者可以利用的所有自動下載方式,并提出了一種新的針對于惡意網(wǎng)頁自動下載行為的檢測方法,利用現(xiàn)有瀏覽器中已存在的用戶交互判別機制來檢測惡意網(wǎng)頁的自動下載行為,能夠有效阻止惡意程序的自動下載。實驗證明,這種檢測方法準確度高,對瀏覽器性能幾乎沒有影響,可以對惡意網(wǎng)頁進行實時檢測,具有很強的應(yīng)用性;但是,隨著Web技術(shù)的發(fā)展,觸發(fā)自動下載的方式也會增加。以后將繼續(xù)關(guān)注HTML5及CSS3等新的Web技術(shù),跟蹤新的自動下載方式,進行檢測、攔截。
參考文獻:
[1]
PROVOS N, MCNAMEE D, MAVROMMATIS P, et al. The ghost in the browser analysis of Webbased malware [C]// HotBots07: Proceedings of the First Conference on First Workshop on Hot Topics in Understanding Botnets. Berkeley, CA: USENIX Association, 2007: 4-4.
[2]
WANG Y, BECK D, JIANG X, et al. Automated Web patrol with strider honey monkeys: finding Web sites that exploit browser vulnerabilities [C]// NDSS 2006: Proceedings of the 2006 Network and Distributed System Security Symposium. Reston: The Internet Society, 2006: 35-49.
[3]
MOSHCHUK A, BRAGIN T, GRIBBLE SD, et al. A crawlerbased study of spyware on the Web [EB/OL]. [20151112]. http://homes.cs.washington.edu/~gribble/papers/spycrawler.pdf.
[4]
CPAN. Mitre honeyclient project [EB/OL]. [20151120]. http://search.cpan.org/~mitrehc/.
[5]
The Honeynet Project. CaptureHPC [EB/OL]. [20151120]. http://projects.honeynet.org/capturehpc.
[6]
SEIFERT C, WELCH I, KOMISARCZUK P, et al. Identification of malicious Web pages with static heuristics [C]// Proceedings of the 2008 Australasian Telecommunication Networks and Applications Conference. Piscataway, NJ: IEEE, 2008: 91-96.
[7]
CANALI D, COVA M, VIGNA G, et al. Prophiler: a fast filter for the largescale detection of malicious Web pages [C]// WWW11: Proceedings of the 20th International Conference on World Wide Web. New York: ACM, 2011: 197-206.
[8]
COVA M, KRUEGEL C, VIGNA G. Detection and analysis of drivebydownload attacks and malicious JavaScript code [C]// Proceedings of the 19th International Conference on World Wide Web. New York: ACM, 2010: 281-290.
[9]
HEIDERICH M, FROSCH T, HOLZ T. IceShield: detection and mitigation of malicious websites with a frozen DOM [C]// RAID11: Proceedings of the 14th International Conference on Recent Advances in Intrusion Detection. Berlin: Springer, 2011: 281-300.
[10]
LU L, YEGNESWARAN V, PORRAS P, et al. BLADE: an attackagnostic approach for preventing driveby malware infections [C]// Proceedings of the 17th ACM Conference on Computer and Communications Security. New York: ACM, 2010: 440-450.
[11]
CAO Y, PAN X, CHEN Y, et al. JShield: towards complete deobfuscation and realtime detection of complex driveby download attacks [C]// Proceedings of the 30th Annual Computer Security Applications Conference. New York: ACM, 2014: 466-475.
[12]
SCITOOLS TEAM. Understand? static code analysis tool [EB/OL]. [20151120]. https://scitools.com/.
[13]
W3CSCHOOL. JavaScript window location [EB/OL]. [20151120]. http://www.w3school.com.cn/js/js_window_location.asp.
[14]
W3CSCHOOL. JavaScript window history [EB/OL]. [20151120]. http://www.w3school.com.cn/js/js_window_history.asp.
[15]
陸凌牛.HTML5和CSS3權(quán)威指南[M].2版.北京:機械工業(yè)出版社,2013:177-192.(LU L N. HTML5 and CSS3: the Definitive Guide [M]. 2nd ed. Beijing: China Machine Press, 2013: 177-192.)
[16]
W3CSCHOOL. HTML DOM anchor object [EB/OL]. [20151120]. http://www.w3school.com.cn/jsref/dom_obj_anchor.asp.
[17]
W3CSCHOOL. HTML[EB/OL]. [20151120]. http://www.w3school.com.cn/tags/tag_meta.asp.
[18]
GOURLEY D, TOTTY B, SAYER M,等.HTTP權(quán)威指南[M].陳娟,趙振平,譯.北京:人民郵電出版社,2012:64-68.(GOURLEY D, TOTTY B, SAYER M, et al. HTTP: The Definitive Guide [M]. CHEN J, ZHAO Z P, translated. Beijing: Posts and Telecom Press, 2012: 64-68.)
[19]
QU J.用FileSystem API實現(xiàn)文件下載器[EB/OL]. [20151120]. http://imququ.com/post/adownloaderwithfilesystemapi.html.(QU J. Use FileSystem API to implement a document download machine [EB/OL]. [20151120]. http://imququ.com/post/adownloaderwithfilesystemapi.html.)
[20]
如何利用HTML5的filesystem技術(shù)下載沙盒里的文件[EB/OL]. [20151120]. http://www.zhihu.com/question/21462396.(How to download file in the sand box by using filesystem API of HTML5 [EB/OL]. [20151120]. http://www.zhihu.com/question/21462396.)
[21]
Gnome. the WebKitGtk+ project [EB/OL]. [20151120]. http://webkitgtk.org/.
[22]
Google. OctaneBenchmark [EB/OL]. [20151120]. http://octanebenchmark.googlecode.com/svn/latest/index.html.