999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

自動(dòng)下載行為檢測(cè)

2016-07-19 19:17:09黃吉鯤龔偉剛游偉秦波石文昌梁彬
計(jì)算機(jī)應(yīng)用 2016年7期
關(guān)鍵詞:頁(yè)面利用用戶(hù)

黃吉鯤 龔偉剛 游偉 秦波 石文昌 梁彬

摘要:目前,很多惡意網(wǎng)頁(yè)僅利用常規(guī)的Web編程技術(shù)使得瀏覽器自動(dòng)下載木馬等惡意軟件并誘騙用戶(hù)執(zhí)行。這種惡意行為被稱(chēng)為自動(dòng)下載。瀏覽器中現(xiàn)有的防御機(jī)制并不能有效地識(shí)別這種攻擊。針對(duì)此類(lèi)惡意行為,提出了一種防御方法。該方法通過(guò)監(jiān)控網(wǎng)頁(yè)中能導(dǎo)致自動(dòng)下載的操作,并在下載實(shí)際發(fā)生時(shí)判斷是否由用戶(hù)觸發(fā),來(lái)識(shí)別自動(dòng)下載行為并加以阻斷。此防御方法已經(jīng)在WebKitGtk+2.8.0和Chromium 38.0.2113.1兩個(gè)瀏覽器中實(shí)現(xiàn),并進(jìn)行了評(píng)估:兩個(gè)檢測(cè)防御系統(tǒng)針對(duì)現(xiàn)存的攻擊樣本均無(wú)誤報(bào)和漏報(bào),額外的性能開(kāi)銷(xiāo)分別為1.26%和7.79%。實(shí)驗(yàn)結(jié)果表明,該方法能夠有效地監(jiān)測(cè)并阻斷自動(dòng)下載攻擊且性能開(kāi)銷(xiāo)較小。

關(guān)鍵詞:

惡意網(wǎng)頁(yè);惡意軟件;自動(dòng)下載檢測(cè);用戶(hù)交互

中圖分類(lèi)號(hào): TP309.5 文獻(xiàn)標(biāo)志碼:A

0引言

目前,很多惡意網(wǎng)頁(yè)都存在將攻擊者的木馬自動(dòng)下載到用戶(hù)主機(jī)的行為,并在下載后誘騙用戶(hù)執(zhí)行攻擊者的木馬。本文將這種攻擊稱(chēng)為自動(dòng)下載。在2014年12月至2015年3月收集到的68296條惡意網(wǎng)頁(yè)攻擊記錄中,有58425條攻擊記錄包含自動(dòng)下載行為,占所有攻擊記錄的85.55%。

與DrivebyDownload[1]攻擊相比,自動(dòng)下載型攻擊雖然不能在惡意軟件下載后自動(dòng)運(yùn)行,但是攻擊頁(yè)面通常會(huì)誘騙用戶(hù),讓用戶(hù)相信下載下來(lái)的惡意軟件是用戶(hù)需要的、正常的軟件或插件,誘使用戶(hù)執(zhí)行。

例如,圖1是一個(gè)包含自動(dòng)下載行為的惡意網(wǎng)頁(yè),在網(wǎng)頁(yè)打開(kāi)后3s,會(huì)自動(dòng)下載一個(gè)名為“microsoft xps document writer__3039_i1755271595_il358621.exe”的文件。用戶(hù)根據(jù)如圖1網(wǎng)頁(yè)中所給的信息以為自己下載的是一個(gè)虛擬打印程序;但實(shí)際上,這是一個(gè)惡意應(yīng)用。用戶(hù)點(diǎn)擊運(yùn)行這個(gè)程序的時(shí)候,并不能像用戶(hù)期望的那樣安裝虛擬打印機(jī),而是在用戶(hù)的主機(jī)上運(yùn)行了一個(gè)木馬程序,讓用戶(hù)主機(jī)成為攻擊者僵尸網(wǎng)絡(luò)中的一臺(tái)“肉機(jī)”。

此類(lèi)攻擊并沒(méi)有利用任何瀏覽器漏洞,僅利用瀏覽器的正常機(jī)制和現(xiàn)有的Web技術(shù)就能夠?qū)⒐粽叩哪抉R下載到用戶(hù)本地,并誘使用戶(hù)執(zhí)行。盡管并非所有的用戶(hù)都會(huì)運(yùn)行自動(dòng)下載的惡意應(yīng)用;但是其廣泛撒網(wǎng)的方式,仍然使攻擊者能夠獲得大量的“肉機(jī)”。

自動(dòng)下載為用戶(hù)的計(jì)算機(jī)安全帶來(lái)了很大的威脅;但是,瀏覽器現(xiàn)有的安全機(jī)制并不足以抵御自動(dòng)下載攻擊。

主流瀏覽器對(duì)惡意網(wǎng)頁(yè)的防御方法是黑名單機(jī)制。以Chrome瀏覽器為例,其在加載網(wǎng)頁(yè)前,先檢測(cè)此網(wǎng)址是否在預(yù)設(shè)的黑名單中。如果在,則認(rèn)為其是惡意網(wǎng)頁(yè);否則認(rèn)為其是正常網(wǎng)頁(yè)。這種黑名單機(jī)制實(shí)現(xiàn)簡(jiǎn)單、效率高,對(duì)用戶(hù)體驗(yàn)的影響非常低;但是,利用黑名單機(jī)制來(lái)檢測(cè)網(wǎng)頁(yè)自動(dòng)下載行為并不完全有效。黑名單列表需要及時(shí)更新來(lái)保證結(jié)果的準(zhǔn)確性。對(duì)于新出現(xiàn)的未知惡意網(wǎng)頁(yè)這種方法存在可被攻擊者利用的時(shí)延窗口。

瀏覽器的反彈窗機(jī)制也對(duì)自動(dòng)下載有一定的攔截效果;但遺憾的是,這種防御機(jī)制只能攔截利用自動(dòng)彈窗觸發(fā)的下載,并不能攔截所有的自動(dòng)下載方式。

當(dāng)前的安全工具對(duì)于此類(lèi)攻擊的檢測(cè),通常是在下載完成后,通過(guò)掃描文件是否包含惡意程序的特征碼來(lái)判斷下載文件是否是惡意軟件,并不能在事前就阻止自動(dòng)下載的發(fā)生。而且,這種方法對(duì)于未知木馬的檢測(cè)往往無(wú)能為力。

在惡意網(wǎng)頁(yè)研究領(lǐng)域,目前也沒(méi)有研究者專(zhuān)門(mén)對(duì)此類(lèi)利用瀏覽器正常機(jī)制和Web技術(shù)來(lái)將木馬在未經(jīng)用戶(hù)同意的情況下自動(dòng)下載到用戶(hù)主機(jī)上的行為進(jìn)行研究。

為此,本文提出了一種檢測(cè)方法,以應(yīng)對(duì)網(wǎng)頁(yè)中的自動(dòng)下載行為。

自動(dòng)下載的關(guān)鍵特征在于不經(jīng)用戶(hù)交互就觸發(fā)下載操作。通過(guò)在瀏覽器中加入相應(yīng)的檢測(cè)模塊,基于瀏覽器的用戶(hù)交互機(jī)制判斷下載操作或?qū)е孪螺d的方法是否由用戶(hù)觸發(fā),從而判斷該下載行為是否是自動(dòng)下載。本文在WebKitGtk+2.8.0和Chromium 38.0.2113.1中實(shí)現(xiàn)了相應(yīng)的原型系統(tǒng)。實(shí)驗(yàn)證明本文提出的方法可以有效識(shí)別出自動(dòng)下載,針對(duì)現(xiàn)存的攻擊樣本無(wú)誤報(bào)和漏報(bào),額外的性能開(kāi)銷(xiāo)分別為1.26%和7.79%,完全在可接受范圍內(nèi)。

本文的主要工作如下:1)系統(tǒng)地界定了目前瀏覽器中可被利用的自動(dòng)下載方式;2)提出了一種針對(duì)性的基于用戶(hù)交互判斷的自動(dòng)下載檢測(cè)方法;3)在WebKitGtk+2.8.0和Chromium 38.0.2113.1瀏覽器中實(shí)現(xiàn)了對(duì)自動(dòng)下載行為的檢測(cè)與攔截,驗(yàn)證了此方法的有效性。

1相關(guān)工作

自動(dòng)下載行為是惡意網(wǎng)頁(yè)的攻擊方式之一。本章從基于行為、基于統(tǒng)計(jì)或機(jī)器學(xué)習(xí)以及其他三個(gè)方面介紹相關(guān)的惡意網(wǎng)頁(yè)檢測(cè)工作,并分別分析用這些方法檢測(cè)自動(dòng)下載行為的可行性。

1.1基于行為的檢測(cè)

基于行為的檢測(cè)方法主要是客戶(hù)端蜜罐:建立一個(gè)虛擬環(huán)境,通過(guò)檢測(cè)和監(jiān)聽(tīng)異常行為、運(yùn)行時(shí)參數(shù)來(lái)檢測(cè)攻擊。例如:2006年,微軟研究院的HoneyMonkey項(xiàng)目[2]以及華盛頓大學(xué)Moshchuk等[3]的SpyCrawler采用該方法均發(fā)現(xiàn)了一定數(shù)量的惡意網(wǎng)頁(yè)。此外,還有一些開(kāi)源的高交互式客戶(hù)端蜜罐,如HoneyClient[4]以及國(guó)際蜜網(wǎng)項(xiàng)目組新西蘭小組的CaptureHPC[5];但是,基于行為的檢測(cè)方法并未關(guān)注此類(lèi)僅利用正常瀏覽器機(jī)制和Web編程技術(shù)的自動(dòng)下載行為。

1.2基于統(tǒng)計(jì)或機(jī)器學(xué)習(xí)的檢測(cè)

通過(guò)提取惡意網(wǎng)頁(yè)相對(duì)于正常網(wǎng)頁(yè)的特征,利用機(jī)器學(xué)習(xí)對(duì)網(wǎng)頁(yè)進(jìn)行分類(lèi)。Seifert[6]、Canali[7]、Cova[8]、Heiderich等[9]提取頁(yè)面中的靜態(tài)或動(dòng)態(tài)特征進(jìn)行機(jī)器學(xué)習(xí)來(lái)對(duì)頁(yè)面進(jìn)行分類(lèi)。例如Heidertich等[9]的IceShield通過(guò)動(dòng)態(tài)插樁的方式包裹document.write()等危險(xiǎn)方法,在網(wǎng)頁(yè)渲染時(shí)動(dòng)態(tài)提取危險(xiǎn)標(biāo)簽、可疑的Unicode字符等特征,為網(wǎng)頁(yè)評(píng)分。通過(guò)機(jī)器學(xué)習(xí)在大量的樣本中得到一個(gè)合適的閾值,利用此閾值對(duì)網(wǎng)頁(yè)進(jìn)行分類(lèi):網(wǎng)頁(yè)評(píng)分大于該閾值的,被分類(lèi)為惡意網(wǎng)頁(yè);小于等于的,被認(rèn)為是正常網(wǎng)頁(yè)。此類(lèi)檢測(cè)方法同樣未關(guān)注自動(dòng)下載行為。

1.3其他防御機(jī)制

BLADE[10]對(duì)操作系統(tǒng)作一定的安全擴(kuò)展,阻斷所有不是通過(guò)瀏覽器的圖形用戶(hù)界面(Graphical User Interface, GUI)進(jìn)行的下載行為,將所有通過(guò)瀏覽器進(jìn)程下載的可執(zhí)行文件放入一個(gè)虛擬的、權(quán)限受限的隔離存儲(chǔ)空間,并在每一個(gè)文件被放到隔離空間中后向用戶(hù)發(fā)起確認(rèn),只有經(jīng)過(guò)用戶(hù)確認(rèn)的下載文件才會(huì)被轉(zhuǎn)移到真實(shí)的文件系統(tǒng)中。這種方式雖然阻止了下載文件到文件系統(tǒng)中;但是阻斷了那些不經(jīng)過(guò)瀏覽器進(jìn)程下載的任務(wù),為用戶(hù)帶來(lái)了很大的不便。

JShield[11]的團(tuán)隊(duì)收集了2007年至2014年所有關(guān)于瀏覽器JavaScript引擎以及PDF文件的相關(guān)漏洞,并提取了這些漏洞的操作碼特征,使用確定有限自動(dòng)機(jī)(Deterministic Finite Automaton, DFA)在操作碼級(jí)別匹配漏洞特征,從而檢測(cè)Drivebydownload,但是本文關(guān)注的自動(dòng)下載沒(méi)有利用任何漏洞。

總體而言,目前惡意網(wǎng)頁(yè)檢測(cè)研究領(lǐng)域的研究忽略了此類(lèi)僅利用正常瀏覽器機(jī)制和Web技術(shù)的自動(dòng)下載行為,沒(méi)有對(duì)其進(jìn)行有效的檢測(cè)和防御。

2系統(tǒng)概述

本文提出的自動(dòng)下載行為檢測(cè)方法如圖2所示。首先,監(jiān)控所有可能導(dǎo)致自動(dòng)下載的觸發(fā)點(diǎn),并在其被觸發(fā)時(shí)進(jìn)行交互判斷。非用戶(hù)觸發(fā)的可疑下載的統(tǒng)一資源定位符(Uniform Resource Locator, URL)將被收集到一個(gè)可疑列表中。同時(shí),監(jiān)聽(tīng)下載操作以在瀏覽器建立下載任務(wù)時(shí)進(jìn)行檢查,如果觸發(fā)下載任務(wù)沒(méi)有經(jīng)過(guò)用戶(hù)交互(下載操作的源地址在可疑列表中),則認(rèn)為這是一個(gè)自動(dòng)下載,并進(jìn)行阻斷;反之,認(rèn)為是由用戶(hù)觸發(fā)的,允許下載。

此方法的關(guān)鍵在于找出盡可能全面地自動(dòng)下載的觸發(fā)點(diǎn),插入檢測(cè)代碼,進(jìn)行用戶(hù)交互判斷,從而獲取可疑列表。

3自動(dòng)下載方式界定

為了選取合適的檢測(cè)點(diǎn)插入檢測(cè)代碼,需要了解當(dāng)前瀏覽器有哪些下載方式可以被利用來(lái)實(shí)現(xiàn)自動(dòng)下載。

本文通過(guò)分析瀏覽器內(nèi)核代碼、HTML協(xié)議以及JavaScript對(duì)象、方法來(lái)找出當(dāng)前瀏覽器中可以被攻擊者利用來(lái)實(shí)現(xiàn)自動(dòng)下載的方式。

首先,分析瀏覽器內(nèi)核源代碼(以Chromium為例)。在Chromium瀏覽器內(nèi)核源碼中找到了實(shí)現(xiàn)下載的方法DownloadItemView::OnDownloadUpdated(),并利用靜態(tài)代碼分析工具Understand[12]遍歷所有調(diào)用此方法的路徑。本文將下載分成兩大類(lèi):一類(lèi)是頁(yè)面請(qǐng)求導(dǎo)致的下載。瀏覽器在向服務(wù)器發(fā)起頁(yè)面請(qǐng)求(打開(kāi)新頁(yè)面或頁(yè)面重定向)后,發(fā)現(xiàn)返回資源的多用途互聯(lián)網(wǎng)郵件擴(kuò)展類(lèi)型(Multipurpose Internet Mail Extensions, MIME)并不是其所支持的類(lèi)型時(shí),瀏覽器會(huì)將返回資源下載到用戶(hù)本地。另一類(lèi)是利用瀏覽器的資源保存機(jī)制下載文件。例如,利用FileSystem API(Application Programming Interface)可以將指定資源保存到用戶(hù)主機(jī)中。

任何頁(yè)面請(qǐng)求和資源保存的方式都有可能導(dǎo)致下載,但是攻擊者要在網(wǎng)頁(yè)中實(shí)現(xiàn)自動(dòng)下載,只能利用頁(yè)面中的超文本標(biāo)記語(yǔ)言(Hyper Text Markup Language, HTML)元素和JavaScript對(duì)象方法,因此,本文分析了HTML標(biāo)準(zhǔn)和JavaScript對(duì)象方法,通過(guò)查找頁(yè)面請(qǐng)求和保存資源的方法,找出了6種可繞開(kāi)瀏覽器安全防御機(jī)制導(dǎo)致自動(dòng)下載的方法。window.locaion、HTML5的History API、標(biāo)簽、標(biāo)簽和超文本傳輸協(xié)議(HyperText Transfer Protocol, HTTP)的重定向返回碼等頁(yè)面請(qǐng)求方法都可以用來(lái)導(dǎo)致自動(dòng)下載,如表1所示。而利用資源保存來(lái)實(shí)現(xiàn)自動(dòng)下載的方式只有HTML5的FileSystem API一種。

3.1window.location

window.location對(duì)象[13]用于獲得當(dāng)前頁(yè)面的地址,或把瀏覽器重定向到新的頁(yè)面。

程序前

window.location="http://www.abc.com/malware.exe"

程序后

上面的JavaScript指令會(huì)發(fā)起一個(gè)頁(yè)面請(qǐng)求,但由于服務(wù)器返回的資源malware.exe不能被瀏覽器渲染,瀏覽器會(huì)將malware.exe保存到用戶(hù)本地文件系統(tǒng)中。

攻擊者可以利用window.location自動(dòng)下載惡意軟件,如代碼1。

代碼1利用window.location自動(dòng)下載。

程序前

程序后

3.2History API

window.history對(duì)象[14]用于回到瀏覽器歷史列表中的網(wǎng)頁(yè)。其中history.go()方法可以用來(lái)向服務(wù)器重新發(fā)起頁(yè)面請(qǐng)求,刷新頁(yè)面。

HTML5推出后,新增了History API[15],推出了兩個(gè)新的方法:history.pushState()和history.replaceState()。前者將給定的數(shù)據(jù)、給定的標(biāo)題和URL推送到歷史記錄中去。而后者用參數(shù)中給定的數(shù)據(jù)、標(biāo)題和URL更新當(dāng)前保存的那條歷史記錄。

利用History API的兩個(gè)新方法替換當(dāng)前歷史記錄,然后用history.go()刷新頁(yè)面,可實(shí)現(xiàn)當(dāng)前頁(yè)面向任意同源頁(yè)面的跳轉(zhuǎn)。當(dāng)服務(wù)器返回的頁(yè)面跳轉(zhuǎn)請(qǐng)求資源不能被瀏覽器渲染時(shí),瀏覽器會(huì)將資源下載到用戶(hù)的文件系統(tǒng)中。代碼2中的頁(yè)面利用History API實(shí)現(xiàn)了惡意軟件的自動(dòng)下載。

代碼2使用History API實(shí)現(xiàn)自動(dòng)下載。

程序前

程序后

3.3標(biāo)簽

Anchor對(duì)象表示HTML超鏈接[16]。在HTML文檔中標(biāo)簽每出現(xiàn)一次,就會(huì)創(chuàng)建Anchor對(duì)象。Anchor可用于創(chuàng)建指向另一個(gè)頁(yè)面的鏈接(href屬性)。

如果標(biāo)簽中href屬性的值指向?yàn)g覽器不能渲染的文件的URL地址,瀏覽器就會(huì)將對(duì)應(yīng)文件下載、保存到用戶(hù)的文件系統(tǒng)中。例如下面語(yǔ)句中,點(diǎn)擊download link會(huì)導(dǎo)致malware.exe被下載:

程序前

download link

程序后

攻擊者可以利用JavaScript指令模擬用戶(hù)點(diǎn)擊標(biāo)簽實(shí)現(xiàn)自動(dòng)下載。如代碼3。

代碼3腳本模擬點(diǎn)擊標(biāo)簽實(shí)現(xiàn)自動(dòng)下載。

程序前

link

程序后

3.4標(biāo)簽

元素[17]可提供有關(guān)頁(yè)面的元信息(metainformation)。標(biāo)簽的屬性定義了與文檔相關(guān)聯(lián)的名稱(chēng)/值。如果標(biāo)簽的httpequiv屬性值為“refresh”,則可以使頁(yè)面自動(dòng)重定向到content屬性中的URL頁(yè)面中。

如果content中URL的值是一個(gè)不能被瀏覽器解析的文件的網(wǎng)絡(luò)地址,則瀏覽器會(huì)自動(dòng)將此文件下載到用戶(hù)本地文件系統(tǒng)中。

程序前

程序后

例如,頁(yè)面中如果包含以上代碼,會(huì)在用戶(hù)加載完頁(yè)面2s后,自動(dòng)下載malware.exe文件。

3.5HTTP重定向碼

在服務(wù)器返回的HTTP報(bào)文中,HTTP狀態(tài)碼為客戶(hù)端提供了一種理解事務(wù)處理的便捷方式。HTTP狀態(tài)碼被分成了五大類(lèi)。其中300~399的重定向狀態(tài)碼[18]要么告知客戶(hù)端使用替代位置來(lái)訪問(wèn)它們所感興趣的資源,要么就是提供一個(gè)可替代的響應(yīng)而不是資源的內(nèi)容。如果資源已經(jīng)被移動(dòng),可以發(fā)送一個(gè)重定向狀態(tài)碼和一個(gè)可選的Location首部來(lái)告知客戶(hù)端資源已被移走,以及現(xiàn)在可以在哪里找到它。這樣瀏覽器就可以在不打擾使用者的情況下,透明地轉(zhuǎn)入新的位置了。

和其他頁(yè)面請(qǐng)求操作一樣,如果服務(wù)器返回的資源不能被瀏覽器渲染,瀏覽器會(huì)將該資源保存到用戶(hù)的文件系統(tǒng)中。

3.6利用FileSystem API自動(dòng)下載

為了給Web應(yīng)用程序提供一個(gè)永久保存數(shù)據(jù)的空間,HTML5新增了FileSystem API,通過(guò)使用該API,用戶(hù)可以將數(shù)據(jù)保存在磁盤(pán)上的文件系統(tǒng)中,從而得到一個(gè)永久保存數(shù)據(jù)的空間。

HTML5的這個(gè)新特性導(dǎo)致了新的下載方式的產(chǎn)生——利用FileSystem實(shí)現(xiàn)下載[19]:首先,獲取要保存的文件內(nèi)容,將其轉(zhuǎn)換成blob對(duì)象;然后,利用FileSystem API將其寫(xiě)入沙箱隔離環(huán)境文件中;最后,將下載到沙箱隔離環(huán)境中的文件看成下載源[20],利用腳本自動(dòng)觸發(fā)頁(yè)面請(qǐng)求,將文件從沙箱隔離環(huán)境中移入(下載)到用戶(hù)的本地文件系統(tǒng)中,如圖3所示。

同window.location、History API類(lèi)似,F(xiàn)ileSystem API也可以在未經(jīng)用戶(hù)交互的情況下被調(diào)用來(lái)實(shí)現(xiàn)自動(dòng)下載。

攻擊者可以利用以上6種方式繞開(kāi)瀏覽器現(xiàn)有的安全防御機(jī)制實(shí)現(xiàn)自動(dòng)下載。

4系統(tǒng)實(shí)現(xiàn)

本文分別在WebKitGtk+2.8.0和Chromium 38.0.2113.1瀏覽器中實(shí)現(xiàn)了對(duì)自動(dòng)下載行為的檢測(cè)與攔截。

4.1WebKitGtk+ 2.8.0

Webkit是一個(gè)開(kāi)源的瀏覽器引擎,目前市面上很多瀏覽器都使用Webkit的內(nèi)核。Gnome領(lǐng)導(dǎo)的WebKitGtk+[21]是一個(gè)基于Gtk+的WebKit渲染引擎接口,也是目前Linux下最受矚目的WebKit開(kāi)源項(xiàng)目之一。

4.1.1檢測(cè)點(diǎn)

在WebKitGtk+中,UserGestureIndicator對(duì)象負(fù)責(zé)記錄用戶(hù)操作,并提供了一個(gè)名為processingUserGesture()的方法判斷用戶(hù)交互。processingUserGesture()方法具有時(shí)效性,在下載時(shí)的返回值都是false(無(wú)用戶(hù)交互),因此,在自動(dòng)下載觸發(fā)方式的對(duì)應(yīng)內(nèi)核方法中進(jìn)行用戶(hù)交互判斷,而不是在下載發(fā)生時(shí)才進(jìn)行。

由于WebKitGtk+的FileSystem API功能實(shí)現(xiàn)不完全,F(xiàn)ileSystem API導(dǎo)致的自動(dòng)下載在WebKitGtk+中不能正常進(jìn)行,因此,在WebKitGtk中,只關(guān)注window.location、History API、、和HTTP重定向返回碼導(dǎo)致的自動(dòng)下載。

4.1.2檢測(cè)流程

WebKitGtk+支持的5種自動(dòng)下載方式都是頁(yè)面請(qǐng)求操作觸發(fā)的??梢酝ㄟ^(guò)判斷導(dǎo)致下載的頁(yè)面請(qǐng)求是否由用戶(hù)觸發(fā)來(lái)對(duì)這種類(lèi)型的下載行為進(jìn)行分類(lèi):自動(dòng)下載或正常下載。

在WebKitGtk+2.8.0中對(duì)自動(dòng)下載行為的檢測(cè)流程如下。

1)獲取可疑URL列表。

首先,在window.location等5種自動(dòng)下載觸發(fā)方式對(duì)應(yīng)的瀏覽器源碼方法中插入用戶(hù)交互檢測(cè)代碼。監(jiān)聽(tīng)網(wǎng)頁(yè)中的頁(yè)面請(qǐng)求操作,并利用processingUserGesture()方法對(duì)頁(yè)面請(qǐng)求操作進(jìn)行交互判斷。如果processingUserGesture()的返回值為false,則認(rèn)為此網(wǎng)頁(yè)的頁(yè)面請(qǐng)求操作不是用戶(hù)觸發(fā)的。包含非用戶(hù)觸發(fā)的頁(yè)面請(qǐng)求操作的網(wǎng)頁(yè)被認(rèn)為有潛在自動(dòng)下載意圖。獲取其頁(yè)面請(qǐng)求的目的URL,將此目的URL放入可疑跳轉(zhuǎn)URL列表specious_urls中。

2)監(jiān)聽(tīng)下載識(shí)別自動(dòng)下載。

在內(nèi)核中實(shí)現(xiàn)下載的對(duì)應(yīng)方法中插入檢測(cè)代碼。監(jiān)聽(tīng)頁(yè)面是否含有下載操作,并獲取下載源的URL地址download_url。如果下載源地址download_url包含在可疑跳轉(zhuǎn)URL列表specious_urls中,則認(rèn)為當(dāng)前的下載行為是由頁(yè)面請(qǐng)求觸發(fā)的自動(dòng)下載行為。

4.2Chromium 38.0.2113.1

Chrome瀏覽器是對(duì)HTML5和CSS3等推出的新特性支持得最為全面的瀏覽器。本文中界定的6種自動(dòng)下載方式都能正常攻擊。

其開(kāi)發(fā)版Chromium和WebKitGtk+一樣,包含UserGestureIndicator對(duì)象,并提供判斷用戶(hù)交互的processingUserGesture()方法。除此之外,Chromium對(duì)每一個(gè)下載任務(wù)建立一個(gè)DownloadItem對(duì)象,并將processingUserGesture()的值傳遞給DownloadItem對(duì)象的方法——HasUserGesture(),標(biāo)識(shí)此下載任務(wù)是否是由用戶(hù)觸發(fā)。

雖然在下載時(shí)UserGestureIndicator記錄的用戶(hù)動(dòng)作已經(jīng)失效,processingUserGesture()方法不能區(qū)分正常下載和自動(dòng)下載;但Chromium中DownloadItem::HasUserGesture的存在使本文可以利用此方法直接判斷下載操作是否是自動(dòng)下載,而不需要像WebKitGtk+2.8.0中一樣,需要在所有可以導(dǎo)致自動(dòng)下載的觸發(fā)方法中插入檢測(cè)代碼。

但是利用FileSystem API進(jìn)行的下載使用了JavaScript自動(dòng)觸發(fā)頁(yè)面請(qǐng)求來(lái)將文件從沙箱隔離環(huán)境移到用戶(hù)本地文件系統(tǒng)中。這導(dǎo)致對(duì)于利用FileSystem API實(shí)現(xiàn)的正常下載,其DownloadItem對(duì)象HasUserGesture()返回的值也會(huì)是false——非用戶(hù)觸發(fā),因此,需要單獨(dú)對(duì)利用FileSystem API進(jìn)行的下載單獨(dú)進(jìn)行檢測(cè),并排除誤報(bào)。

4.2.1檢測(cè)頁(yè)面請(qǐng)求類(lèi)型的自動(dòng)下載

Chromium中DownloadItem對(duì)象的HasUserGesture()可以直接在下載發(fā)生時(shí)對(duì)頁(yè)面請(qǐng)求觸發(fā)的下載進(jìn)行交互判斷,因此,在Chromium中檢測(cè)自動(dòng)下載行為比WebKitGtk+2.8.0更方便,只需要在瀏覽器為下載任務(wù)建立DownloadItem對(duì)象時(shí)判斷下載是否是由用戶(hù)觸發(fā),而不需要在所有觸發(fā)點(diǎn)插入檢測(cè)代碼。

但是,用戶(hù)觸發(fā)FileSystem API進(jìn)行下載的過(guò)程包括一個(gè)自動(dòng)頁(yè)面請(qǐng)求(將文件從沙箱隔離環(huán)境中移動(dòng)到本地文件系統(tǒng)中)。這會(huì)導(dǎo)致由用戶(hù)觸發(fā)的利用FileSystem API進(jìn)行的下載也被判斷成自動(dòng)下載,造成誤報(bào)。

實(shí)驗(yàn)發(fā)現(xiàn),向服務(wù)器提出頁(yè)面請(qǐng)求導(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進(jìn)行的正常下載和頁(yè)面請(qǐng)求導(dǎo)致的自動(dòng)下載,在確認(rèn)自動(dòng)觸發(fā)的頁(yè)面請(qǐng)求導(dǎo)致了下載操作后,還需要判斷download_url的格式,如果download_url不以“filesystem”開(kāi)頭(不是filesystem API類(lèi)型的下載),才認(rèn)為此次下載是自動(dòng)下載。檢測(cè)流程見(jiàn)圖4。

4.2.2檢測(cè)利用FileSystem API的自動(dòng)下載

如圖3中所示,利用FileSystem API下載的文件是保存在沙箱隔離環(huán)境中的,如果要將此文件放入用戶(hù)的文件系統(tǒng)中,還需要利用頁(yè)面請(qǐng)求類(lèi)型的下載方法,以沙箱隔離環(huán)境中保存的路徑為跳轉(zhuǎn)目的地址,將其下載到本地目錄中。如果將檢測(cè)點(diǎn)放在文件從沙箱隔離環(huán)境中移入本地文件系統(tǒng)時(shí),會(huì)導(dǎo)致所有利用FileSystem API進(jìn)行的下載都會(huì)被認(rèn)為是自動(dòng)下載,因此,只能在利用FileSystem API寫(xiě)入沙箱隔離環(huán)境的過(guò)程中利用processingUserGesture()方法檢查用戶(hù)交互,以檢測(cè)由FileSystem API觸發(fā)的下載是否是自動(dòng)下載。

在網(wǎng)頁(yè)獲取FileSystem權(quán)限以后,所有的FileSystem API相關(guān)操作都會(huì)進(jìn)入瀏覽器子線(xiàn)程中進(jìn)行操作。所有非主線(xiàn)程中的行為都被processingUserGesture()認(rèn)為是非用戶(hù)操作。如果將檢測(cè)點(diǎn)放在獲取權(quán)限之后,會(huì)導(dǎo)致所有由FileSystem API觸發(fā)的下載行為都被判定成非用戶(hù)操作。所以,本文在瀏覽器獲取FileSystem API權(quán)限時(shí)進(jìn)行檢測(cè),所有自動(dòng)獲取FileSystem API權(quán)限的操作都被判定為危險(xiǎn)操作,并進(jìn)行阻斷和攔截,這樣就可以阻止FileSystem API類(lèi)型的自動(dòng)下載。

WebKitGtk+2.8.0和Chromium 38.0.2113.1都是基于WebKit內(nèi)核的,在這兩個(gè)瀏覽器基礎(chǔ)上的原型系統(tǒng)實(shí)現(xiàn)是基本一致的。其不同點(diǎn)在于,Chromium對(duì)每一個(gè)下載任務(wù)建立一個(gè)DownloadItem對(duì)象,并判斷其是否由用戶(hù)觸發(fā)。這一特性使該檢測(cè)方法在Chromium系列的瀏覽器中實(shí)現(xiàn)時(shí)可以統(tǒng)一在建立下載任務(wù)時(shí)進(jìn)行檢測(cè)、攔截,而不是像WebKitGtk+2.8.0一樣,需要在每一個(gè)下載觸發(fā)點(diǎn)插入用戶(hù)交互檢測(cè)代碼。

5實(shí)驗(yàn)

本文在插入檢測(cè)代碼后的WebKitGtk+2.8.0和Chromium 38.0.2113.1瀏覽器中進(jìn)行了功能和性能測(cè)試。

5.1功能測(cè)試

將Alexa網(wǎng)站公布的前500個(gè)網(wǎng)站主頁(yè)認(rèn)為是正常網(wǎng)頁(yè),從惡意樣本中選取3052個(gè)網(wǎng)頁(yè)。然后,使用加入了自動(dòng)下載檢測(cè)功能的Chromium 38.0.2113.1及WebKitGtk+2.8.0瀏覽器去訪問(wèn)Alexa網(wǎng)站公布的前500個(gè)網(wǎng)頁(yè)以及52個(gè)自動(dòng)下載類(lèi)型的惡意網(wǎng)頁(yè),以檢測(cè)準(zhǔn)確率。

如表2所示,無(wú)論是在Chromium 38.0.2113.1還是WebKitGtk+2.8.0中,500個(gè)正常網(wǎng)頁(yè)都沒(méi)有被誤報(bào),誤報(bào)率為0。在Chromium 38.0.2113.1中,52個(gè)網(wǎng)頁(yè)的自動(dòng)下載行為都被檢測(cè)并攔截了,漏報(bào)率為0。在WebKitGtk+2.8.0中,由于WebKitGtk+不支持由FileSystem API導(dǎo)致的自動(dòng)下載,有2個(gè)網(wǎng)頁(yè)在WebKitGtk+2.8.0上不能自動(dòng)下載,但剩下的50個(gè)惡意網(wǎng)頁(yè)的自動(dòng)下載行為也都能被成功檢測(cè),漏報(bào)率為0。

通過(guò)測(cè)試說(shuō)明:本文提出的檢測(cè)方法能夠有效地檢測(cè)并攔截自動(dòng)下載行為。

5.2性能測(cè)試

谷歌的OctaneBenchmark[22]是網(wǎng)頁(yè)渲染速度測(cè)試通常使用的測(cè)試方法。通過(guò)Google官方的JavaScript腳本測(cè)試集,全面檢測(cè)瀏覽器的JavaScript性能。此測(cè)試分?jǐn)?shù)越高代表瀏覽器性能越好。通過(guò)OctaneBenchmark分別對(duì)插入檢測(cè)代碼前后的WebKitGtk+2.8.0和Chromium 38.0.2113.1進(jìn)行了測(cè)試,以評(píng)估插入代碼對(duì)瀏覽器性能影響。

測(cè)試結(jié)果如表3所示,在WebKitGtk+2.8.0和Chromium 38.0.2113.1瀏覽器中插入了檢測(cè)代碼后,其性能開(kāi)銷(xiāo)分別增加了1.26%和7.79%,對(duì)用戶(hù)體驗(yàn)幾乎沒(méi)有影響。

通過(guò)實(shí)驗(yàn)證明:本文提出的自動(dòng)下載檢測(cè)方法可以非常準(zhǔn)確地檢測(cè)網(wǎng)頁(yè)的自動(dòng)下載行為;同時(shí),其造成的額外開(kāi)銷(xiāo)非常小,不影響用戶(hù)瀏覽正常網(wǎng)頁(yè)時(shí)的體驗(yàn)。

6結(jié)語(yǔ)

本文總結(jié)了目前攻擊者可以利用的所有自動(dòng)下載方式,并提出了一種新的針對(duì)于惡意網(wǎng)頁(yè)自動(dòng)下載行為的檢測(cè)方法,利用現(xiàn)有瀏覽器中已存在的用戶(hù)交互判別機(jī)制來(lái)檢測(cè)惡意網(wǎng)頁(yè)的自動(dòng)下載行為,能夠有效阻止惡意程序的自動(dòng)下載。實(shí)驗(yàn)證明,這種檢測(cè)方法準(zhǔn)確度高,對(duì)瀏覽器性能幾乎沒(méi)有影響,可以對(duì)惡意網(wǎng)頁(yè)進(jìn)行實(shí)時(shí)檢測(cè),具有很強(qiáng)的應(yīng)用性;但是,隨著Web技術(shù)的發(fā)展,觸發(fā)自動(dòng)下載的方式也會(huì)增加。以后將繼續(xù)關(guān)注HTML5及CSS3等新的Web技術(shù),跟蹤新的自動(dòng)下載方式,進(jìn)行檢測(cè)、攔截。

參考文獻(xiàn):

[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版.北京:機(jī)械工業(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實(shí)現(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.

猜你喜歡
頁(yè)面利用用戶(hù)
大狗熊在睡覺(jué)
刷新生活的頁(yè)面
利用min{a,b}的積分表示解決一類(lèi)絕對(duì)值不等式
利用一半進(jìn)行移多補(bǔ)少
利用數(shù)的分解來(lái)思考
Roommate is necessary when far away from home
關(guān)注用戶(hù)
關(guān)注用戶(hù)
關(guān)注用戶(hù)
如何獲取一億海外用戶(hù)
主站蜘蛛池模板: 国产美女免费| 亚洲一区二区三区国产精华液| 国产精品短篇二区| 欧美a在线| 国产成在线观看免费视频 | 午夜不卡视频| 国产乱人伦AV在线A| 亚洲第一成年网| 国产情精品嫩草影院88av| 99热这里只有免费国产精品| 久久久精品久久久久三级| 国产欧美精品专区一区二区| 亚洲狼网站狼狼鲁亚洲下载| 四虎精品黑人视频| 72种姿势欧美久久久大黄蕉| 国产精品无码翘臀在线看纯欲| 狠狠v日韩v欧美v| 国产精品刺激对白在线| 亚洲成a人片| 97国产在线观看| 麻豆国产精品一二三在线观看| 一级毛片不卡片免费观看| 精品少妇三级亚洲| h视频在线播放| 2048国产精品原创综合在线| 欧美v在线| 中文字幕2区| 97在线免费| 亚洲欧美另类日本| 国产成人永久免费视频| 亚洲中文字幕日产无码2021| 日韩欧美国产综合| 99在线视频精品| 亚洲一级毛片免费看| 乱系列中文字幕在线视频| 成人在线第一页| 亚洲色图欧美一区| 尤物视频一区| 欧美亚洲日韩中文| 国产麻豆福利av在线播放| 日韩无码真实干出血视频| 国产高清不卡| 国产美女无遮挡免费视频网站| 国产丝袜精品| 呦女亚洲一区精品| 视频在线观看一区二区| 国产精品无码翘臀在线看纯欲| 亚洲三级色| 成人日韩欧美| 国产国拍精品视频免费看| 色老二精品视频在线观看| 91人妻在线视频| 日韩中文欧美| 国产区人妖精品人妖精品视频| 国产免费精彩视频| 亚洲成aⅴ人在线观看| 91午夜福利在线观看| 一级片一区| 亚洲国产精品不卡在线| 爆操波多野结衣| 免费AV在线播放观看18禁强制| 手机永久AV在线播放| 就去吻亚洲精品国产欧美| 国产精品久久自在自2021| 538国产视频| 日韩成人在线一区二区| 亚洲综合久久成人AV| 国产日本视频91| 国产精品99一区不卡| 欧美午夜小视频| 日韩毛片免费观看| 国产精品女主播| 91av成人日本不卡三区| 在线日韩日本国产亚洲| 69精品在线观看| 久久无码av三级| 亚洲av无码成人专区| 色婷婷在线播放| 中文字幕资源站| 国产成人免费| 亚洲精品另类| 91精品伊人久久大香线蕉|