亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于系統(tǒng)調(diào)用和數(shù)據(jù)溯源的PDF文檔檢測(cè)模型

        2022-12-18 08:11:16雷靖瑋
        計(jì)算機(jī)應(yīng)用 2022年12期
        關(guān)鍵詞:線程調(diào)用文檔

        雷靖瑋,伊 鵬,陳 祥,王 亮,毛 明

        (中國(guó)人民解放軍戰(zhàn)略支援部隊(duì)信息工程大學(xué),鄭州 450001)

        0 引言

        長(zhǎng)期以來(lái),安全人員傾向于認(rèn)為相比電子郵件和網(wǎng)絡(luò)鏈接,PDF 文檔作為靜態(tài)文件難以更改,對(duì)圍繞其展開(kāi)的各類(lèi)攻擊疏于防范。事實(shí)上,隨著時(shí)間推移,PDF 規(guī)范已產(chǎn)生巨大變化,新增的PDF 腳本功能使其可像可執(zhí)行文件一樣用于開(kāi)展網(wǎng)絡(luò)活動(dòng)、或與其他文件或程序進(jìn)行交互等,從而給攻擊者預(yù)留了更多可利用空間,攻擊者可以更加方便地將惡意負(fù)載隱藏為圖像、字體和Flash 內(nèi)容。與此同時(shí),PDF 規(guī)范的變化也增加了與其相適應(yīng)的文檔解釋器的復(fù)雜性,變相導(dǎo)致各種漏洞的產(chǎn)生。僅Adobe Acrobat Reader(AAR)就在2015年、2016 年相繼發(fā)布了137 和227 個(gè)通用漏洞披露(Common Vulnerabilities and Exposures,CVE)漏 洞。圖1 為Adobe Reader 中典型的CVE-2010-2883 漏洞的利用示意圖。

        圖1 CVE-2010-2883漏洞利用示意圖Fig.1 Schematic diagram of exploiting CVE-2010-2883 vulnerability

        Adobe Reader 的CopyType.dll 文件中strcat 函數(shù)未檢查參數(shù)src 是否會(huì)超過(guò)est 定義的數(shù)組長(zhǎng)度,由此形成棧溢出漏洞。目前遭曝光的Adobe 產(chǎn)品漏洞大多可造成較嚴(yán)重的危害,如任意代碼執(zhí)行和內(nèi)存泄漏等。

        表1 給出了近年來(lái)AAR 被曝光的一些典型漏洞信息。AAR 除本身存在大量漏洞易被攻擊者利用外,還是目前使用率非常高的PDF 文檔解釋器,因此已成為攻擊者的首要目標(biāo)之一[1]。根據(jù)近年來(lái)的數(shù)據(jù)統(tǒng)計(jì),它受攻擊者青睞程度僅次于瀏覽器和操作系統(tǒng)內(nèi)核,必須承認(rèn),當(dāng)前惡意文檔檢測(cè)形勢(shì)嚴(yán)峻。近年來(lái)研究者已提出多種解決方案用于檢測(cè)文檔攜帶的惡意負(fù)載,這些技術(shù)大致可分為靜態(tài)分析與動(dòng)態(tài)分析兩類(lèi)。靜態(tài)分析,即基于簽名的檢測(cè)[2-9]主要是靜態(tài)解析文檔并搜索惡意負(fù)載標(biāo)志,如是否存在惡意代碼或與已知惡意軟件相似性是否超過(guò)閾值。動(dòng)態(tài)分析,即基于執(zhí)行[10-11]的檢測(cè)技術(shù),通過(guò)運(yùn)行部分或整個(gè)文檔尋找可能的惡意行為,如是否存在易受攻擊的應(yīng)用程序編程接口(Application Programming Interface,API)調(diào)用或返 回導(dǎo)向編程(Return Oriented Programming,ROP)。Carmony 等[12]的研究表明,這些解決方案中使用的PDF 解析工具可能在設(shè)計(jì)時(shí)過(guò)度簡(jiǎn)化了PDF 規(guī)范,即未能充分考慮目前PDF 規(guī)范的復(fù)雜性,可能導(dǎo)致惡意負(fù)載提取不完整或分析失敗。另有研究[13-15]表明,基于機(jī)器學(xué)習(xí)的檢測(cè)可能會(huì)被遵照某種規(guī)則設(shè)計(jì)的行為成功規(guī)避。此外,許多解決方案只關(guān)注PDF 文檔中的JavaScript 部分,而忽略了其與其他PDF 組件在發(fā)起攻擊時(shí)的協(xié)同作用。部分方案則采用類(lèi)似于黑名單的方式,即使用已知的惡意行為模式對(duì)JavaScript 腳本進(jìn)行匹配,泛化性較弱,即使是對(duì)已知惡意模式進(jìn)行細(xì)微修改都可能逃避檢測(cè),更無(wú)法有效應(yīng)對(duì)0day 攻擊等威脅。

        表1 近年AAR漏洞信息列表Tab.1 List of AAR vulnerabilities in recent years

        本文提出了一種惡意文檔的檢測(cè)模型NtProvenancer。不同于以往的靜態(tài)檢測(cè)和動(dòng)態(tài)檢測(cè),該模型未以JavaScript腳本或PDF 元數(shù)據(jù)作為重點(diǎn)研究對(duì)象,而是借鑒基于系統(tǒng)調(diào)用的主機(jī)異常檢測(cè)技術(shù),并以數(shù)據(jù)溯源思想構(gòu)建系統(tǒng)調(diào)用級(jí)的數(shù)據(jù)溯源圖,利用溯源圖結(jié)構(gòu)特征提取特征序列,而后將它與良性特征庫(kù)中調(diào)用片段進(jìn)行比對(duì)以完成檢測(cè)。該模型設(shè)計(jì)主要基于以下的觀點(diǎn):

        1)針對(duì)惡意軟件攻擊的異常檢測(cè)也應(yīng)能夠?qū)δ壳靶乱?guī)范下的PDF 文檔進(jìn)行檢測(cè)。

        2)數(shù)據(jù)溯源圖的結(jié)構(gòu)特征可用于提取系統(tǒng)調(diào)用序列中的特征部分。

        對(duì)于觀點(diǎn)1),可利用系統(tǒng)調(diào)用追蹤工具生成系統(tǒng)調(diào)用日志,并利用調(diào)用數(shù)據(jù)構(gòu)建檢測(cè)模型進(jìn)行檢測(cè),通過(guò)模型最終的檢測(cè)結(jié)果驗(yàn)證其可行性;對(duì)于觀點(diǎn)2),可在建立系統(tǒng)調(diào)用級(jí)的數(shù)據(jù)溯源圖的基礎(chǔ)上對(duì)提取出的特征序列進(jìn)行分析和驗(yàn)證。事實(shí)上,要使模型真正發(fā)揮作用,需要解決兩個(gè)關(guān)鍵問(wèn)題:一是怎樣有效提取特征,文檔運(yùn)行時(shí)產(chǎn)生的系統(tǒng)調(diào)用數(shù)據(jù)量過(guò)于巨大,并且惡意行為所對(duì)應(yīng)的系統(tǒng)調(diào)用往往僅占其中一小部分;二是怎樣進(jìn)行特征部分的提取和比較,以檢測(cè)文檔的惡意負(fù)載。需注意,本文模型與當(dāng)前惡意軟件分析工具有本質(zhì)區(qū)別:一是當(dāng)前分析工具主要采用黑白名單的方法進(jìn)行檢測(cè),黑名單方法適用于檢測(cè)已知的惡意行為,但難以應(yīng)對(duì)利用0day 漏洞的PDF 攻擊,白名單方法則可能導(dǎo)致較高的誤報(bào)率;二是本文模型基于攻擊者無(wú)法修改或刪除系統(tǒng)調(diào)用數(shù)據(jù)的客觀事實(shí),因此這部分?jǐn)?shù)據(jù)可為PDF 文檔檢測(cè)提供可靠信息。實(shí)驗(yàn)過(guò)程使用394 個(gè)良性樣本進(jìn)行特征提取,相關(guān)樣本覆蓋了PDF 規(guī)范中的各種特征,然后使用134 個(gè)良性測(cè)試樣本進(jìn)行評(píng)估,產(chǎn)生7 例誤報(bào);而對(duì)于320 個(gè)惡意樣本,模型能夠?qū)崿F(xiàn)正確檢測(cè)。

        本文主要工作為:使用基于系統(tǒng)調(diào)用的異常檢測(cè)技術(shù),結(jié)合數(shù)據(jù)溯源思想,提出了新的特征提取算法,并且以較低的性能開(kāi)銷(xiāo)完成文檔檢測(cè)。評(píng)估證明,NtProvenancer 有著較低的誤報(bào)率和漏報(bào)率,能夠有效檢測(cè)出惡意文檔中的行為異常。

        1 惡意文檔檢測(cè)相關(guān)工作

        目前常見(jiàn)的惡意文檔檢測(cè)方法主要是靜態(tài)分析檢測(cè)和動(dòng)態(tài)分析檢測(cè),本章將圍繞這兩種檢測(cè)方案介紹目前常見(jiàn)的一些檢測(cè)手段與不足之處,同時(shí)陳述本文的寫(xiě)作動(dòng)機(jī)。

        1.1 靜態(tài)檢測(cè)方案

        靜態(tài)分析檢測(cè)大致可以分為兩類(lèi)。

        第一類(lèi)注重分析PDF 文檔中的JavaScript 腳本,原因有二:首先,JavaScript 能夠完成許多PDF 高級(jí)功能;其次,根據(jù)文獻(xiàn)[11],超過(guò)90%的惡意文檔使用JavaScript 完成攻擊。PJScan 分析器[3]從詞法編碼風(fēng)格出發(fā),利用變量名、括號(hào)和運(yùn)算符的數(shù)量來(lái)區(qū)分良性和惡意的JavaScript 代碼。Lux0r[2]分別構(gòu)建了在良性和惡意文檔的API 引用模式,并使用這些模式對(duì)惡意文檔進(jìn)行分類(lèi)。MPScan 分析器[4]與其他JavaScript 靜態(tài)分析器有著顯著不同,它關(guān)聯(lián)AAR 并動(dòng)態(tài)提取JavaScript 代碼;然而,因?yàn)槠浯a分析仍然是靜態(tài)執(zhí)行的,仍將它視為一種靜態(tài)分析技術(shù)。以上所有方法的一個(gè)共同缺點(diǎn)是可以通過(guò)大量混淆技術(shù)和動(dòng)態(tài)代碼加載來(lái)規(guī)避檢測(cè)(除了MPScan 分析器[4],因?yàn)樗谶\(yùn)行時(shí)與AAR 進(jìn)行關(guān)聯(lián)),因?yàn)殪o態(tài)解析器根據(jù)預(yù)定義的規(guī)則提取JavaScript,攻擊者可以利用這些規(guī)則決定JavaScript 代碼可以放置或隱藏的位置。鑒于PDF 規(guī)范的靈活性,能否成功隱藏代碼實(shí)際上取決于攻擊者的創(chuàng)造力。文獻(xiàn)[16-17]中提出了針對(duì)JavaScript 代碼的反混淆檢測(cè)方法,但這種方法還需手工才能完成,沒(méi)有實(shí)現(xiàn)自動(dòng)化檢測(cè),并且存在著誤報(bào)率較高的問(wèn)題。

        另一類(lèi)檢測(cè)則是側(cè)重于檢查PDF 文件的元數(shù)據(jù),而不是其實(shí)際內(nèi)容。這是因?yàn)榛煜夹g(shù)傾向于惡意利用PDF 規(guī)范的靈活性,并通過(guò)改變正常的PDF 結(jié)構(gòu)來(lái)隱藏惡意代碼。PDF Malware Slayer[5]使用特定PDF 元素(例如,/JS,/Page 等)的線性 化路徑 來(lái)構(gòu)建 惡意文 檔分類(lèi) 器。?rndi? 等[9]和Maiorca 等[13]更進(jìn)一步,也使用分級(jí)結(jié)構(gòu)進(jìn)行分類(lèi)。PDFrate[8]則囊括了另一組檢測(cè)指標(biāo),如字體數(shù)量、流的平均長(zhǎng)度等,以提高檢測(cè)能力。Liu 等[7]利用文件的熵序列并結(jié)合機(jī)器學(xué)習(xí)進(jìn)行文檔檢測(cè)。Maiorca 等[6]則同時(shí)利用JavaScript 代碼和PDF 元數(shù)據(jù),將上述許多啟發(fā)式方法融合到一個(gè)檢測(cè)過(guò)程中,以提高文檔檢測(cè)的規(guī)避難度。

        1.2 動(dòng)態(tài)檢測(cè)方案

        大多數(shù)的動(dòng)態(tài)分析技術(shù)只關(guān)注嵌入的JavaScript 代碼,而不是整個(gè)文檔。MDScan[11]在定制的SpiderMonkey 解釋器上執(zhí)行提取的JavaScript 代碼,解釋器在其內(nèi)存空間上不斷掃描已知形式的惡意代碼或惡意操作碼序列。Jiang 等[18]提出了一種新型字典檢測(cè)模型NFDD,該模型引入一種基于詞嵌入的神經(jīng)網(wǎng)絡(luò),同時(shí)與動(dòng)態(tài)分析技術(shù)相結(jié)合。ShellOS[10]是一個(gè)輕量級(jí)操作系統(tǒng),旨在運(yùn)行JavaScript 代碼并記錄其內(nèi)存訪問(wèn)模式。在執(zhí)行過(guò)程中,如果內(nèi)存訪問(wèn)序列匹配已知的惡意模式(例如返回導(dǎo)向編程(Return-oriented Programming,ROP)、關(guān)鍵系統(tǒng)調(diào)用或函數(shù)調(diào)用等),則該腳本被視為惡意的。雖然這些技術(shù)檢測(cè)惡意負(fù)載較為準(zhǔn)確,但其共性問(wèn)題在于腳本環(huán)境不兼容。此外,惡意負(fù)載可以被編碼為文檔中的字體或圖像等對(duì)象[19],既不會(huì)被提取也不會(huì)被檢測(cè)到。文獻(xiàn)[20]中提出了一種基于JavaScript 的動(dòng)態(tài)污點(diǎn)跟蹤技術(shù),但此技術(shù)建立在能夠獲取源代碼的基礎(chǔ)上,獲取難度較大。某些攻擊還可能利用內(nèi)存布局知識(shí),例如在AAR 及其相關(guān)庫(kù)中存在某些函數(shù)和ROP gadget 工具,這部分情況很難通過(guò)外部手段進(jìn)行模擬和分析。Liu 等[21]沒(méi)有模擬JavaScript 執(zhí)行環(huán)境,而是用上下文監(jiān)控代碼來(lái)檢測(cè)PDF 文檔,并使用AAR 自己的執(zhí)行環(huán)境來(lái)執(zhí)行JavaScript 代碼,因此不受兼容性問(wèn)題的影響;然而,該方法只會(huì)監(jiān)控較為常見(jiàn)且已知的惡意行為模式,如網(wǎng)絡(luò)訪問(wèn)、堆噴和動(dòng)態(tài)鏈接庫(kù)(Dynamic Link Library,DLL)注入等,這些模式不是完全通用的,當(dāng)出現(xiàn)新的反惡意代碼檢測(cè)手段時(shí),必須對(duì)檢測(cè)模型進(jìn)行擴(kuò)展。

        1.3 寫(xiě)作動(dòng)機(jī)

        鑒于以上兩類(lèi)檢測(cè)方法的不足,試圖找到滿足以下三點(diǎn)要求的檢測(cè)方法。

        1)能夠在不需要惡意行為的先驗(yàn)知識(shí)的基礎(chǔ)上有效應(yīng)對(duì)未知攻擊。

        2)使用不依賴于機(jī)器學(xué)習(xí)的檢測(cè)方法。

        3)對(duì)惡意文檔檢測(cè)技術(shù)進(jìn)行進(jìn)一步補(bǔ)充,提高攻擊者的攻擊難度。

        本文提出了一種新的解決策略,即利用主機(jī)異常檢測(cè)中的檢測(cè)技術(shù)對(duì)惡意文檔進(jìn)行檢測(cè)。目前來(lái)說(shuō),主機(jī)異常檢測(cè)的一個(gè)熱點(diǎn)研究方向是利用系統(tǒng)調(diào)用數(shù)據(jù)進(jìn)行檢測(cè)。系統(tǒng)調(diào)用數(shù)據(jù)之所以會(huì)是主機(jī)異常檢測(cè)研究的重點(diǎn)選擇,是因?yàn)樗遣僮飨到y(tǒng)內(nèi)核級(jí)活動(dòng)的主要產(chǎn)物。換言之,系統(tǒng)調(diào)用數(shù)據(jù)是沒(méi)有經(jīng)過(guò)過(guò)濾、解釋或處理的,攻擊者無(wú)法進(jìn)行修改或刪除等操作,由此可確保所收集數(shù)據(jù)的完整性。通常來(lái)說(shuō),基于系統(tǒng)調(diào)用的檢測(cè)方法有不同的研究方向,包括利用系統(tǒng)調(diào)用的順序特征、頻率特征等進(jìn)行建模從而完成異常檢測(cè)。本文試圖在保證檢測(cè)的準(zhǔn)確性同時(shí)盡量降低檢測(cè)的性能開(kāi)銷(xiāo),綜合利用系統(tǒng)調(diào)用的順序和頻率特征。另外,鑒于依靠機(jī)器學(xué)習(xí)的檢測(cè)可能會(huì)被攻擊者按某些規(guī)則進(jìn)行規(guī)避[13-15],且檢測(cè)開(kāi)銷(xiāo)巨大,所以本文使用不依賴于機(jī)器學(xué)習(xí)的檢測(cè)方法。

        根據(jù)以上需求,受Wang 等[22]研究的啟發(fā),本文提出了NtProvenancer 模型。該模型使用了基于系統(tǒng)調(diào)用的異常檢測(cè)技術(shù)。文獻(xiàn)[22]中,數(shù)據(jù)溯源圖是用于表示進(jìn)程間交互行為的一種有向圖,目的是檢測(cè)隱藏的惡意軟件攻擊。NtProvenancer 模型將此溯源圖的結(jié)構(gòu)用于內(nèi)核級(jí)的系統(tǒng)調(diào)用,用于描述系統(tǒng)調(diào)用間的行為特征,以檢測(cè)惡意文檔的攻擊行為。

        2 本文模型設(shè)計(jì)與問(wèn)題陳述

        本章主要介紹本文模型的有關(guān)定義及設(shè)計(jì)思路。

        2.1 模型基本假設(shè)

        首先,本文模型利用文檔執(zhí)行時(shí)產(chǎn)生的系統(tǒng)調(diào)用進(jìn)行惡意文檔檢測(cè),故不考慮使用隱式流(側(cè)信道)執(zhí)行的攻擊手段。這類(lèi)攻擊繞過(guò)了系統(tǒng)調(diào)用接口,無(wú)法被系統(tǒng)調(diào)用追蹤工具捕獲進(jìn)而生成有效的系統(tǒng)調(diào)用日志。

        此外,由于本文檢測(cè)模型需要部署在主機(jī)上,實(shí)驗(yàn)中認(rèn)定執(zhí)行PDF 程序的Adobe Reader 以及收集系統(tǒng)調(diào)用信息NtTracer 均為良性且可信的,且攻擊者無(wú)法對(duì)系統(tǒng)調(diào)用日志進(jìn)行操作,收集的系統(tǒng)調(diào)用數(shù)據(jù)具備良好的完整性。

        2.2 相關(guān)定義

        2.2.1 系統(tǒng)調(diào)用

        系統(tǒng)調(diào)用v∈A,其中A是系統(tǒng)調(diào)用的集合。

        2.2.2 調(diào)用事件

        調(diào)用事件e=(src,dst,time)是由源調(diào)用號(hào)(src)、目的調(diào)用號(hào)(dst)、目的調(diào)用產(chǎn)生時(shí)間(time)所組成的三元組,并且src,dst∈A,源調(diào)用及目的調(diào)用用于表明相鄰兩個(gè)系統(tǒng)調(diào)用的前后文關(guān)系,time則記錄此次事件的時(shí)間。需要注意的是,由于系統(tǒng)調(diào)用可能會(huì)出現(xiàn)重復(fù)情況,源、目的調(diào)用所組成的二元組也會(huì)產(chǎn)生大量重復(fù),故需加入時(shí)間屬性對(duì)不同事件進(jìn)行區(qū)分。

        2.2.3 線程調(diào)用序列

        對(duì)系統(tǒng)調(diào)用日志中的數(shù)據(jù)按照線程進(jìn)行劃分,提取各線程相對(duì)應(yīng)的系統(tǒng)調(diào)用序列。對(duì)于某線程,其線程調(diào)用序列l(wèi)=(v1,v2,…,vn),其中vi表示該線程的第i個(gè)系統(tǒng)調(diào)用;并且l∈T_Entity_Seq,其中T_Entity_Seq表示l所屬文檔下各線程調(diào)用序列的集合。

        2.2.4 線程事件序列

        線程調(diào)用序列中,相鄰兩系統(tǒng)調(diào)用間的調(diào)用事件組成線程事件序列。對(duì)于某線程調(diào)用序列l(wèi)=(v1,v2,…,vn),其對(duì)應(yīng)線程事 件序列H=(e1,2,e2,3,…,en,n+1),其中ei,i+1=表示由vi,vi+1以及vi+1所發(fā)生的時(shí)刻組成的調(diào)用事件;并且H∈T_Event_Seq,其中T_Event_Seq表示H所屬文檔下各線程事件序列的集合。

        2.2.5 調(diào)用溯源圖

        在Wang 等[22]的溯源模型PROVDETECTOR 中,溯源數(shù)據(jù)以溯源圖的形式用以標(biāo)識(shí)不同進(jìn)程間的交互信息,通過(guò)分析進(jìn)程與交互信息組成的序列以完成檢測(cè)。受此啟發(fā),針對(duì)每一個(gè)需要分析的PDF 樣本生成其相應(yīng)的系統(tǒng)調(diào)用溯源圖。對(duì)于某個(gè)樣本p,其對(duì)應(yīng)的調(diào)用溯源圖定義為其中V={v1,v2,…,vm}是系統(tǒng)調(diào)用的集合,E={e1,e2,…,em}是調(diào)用事件的集合。對(duì)于調(diào)用溯源圖而言,V表示圖中節(jié)點(diǎn)的集合,集合E表示圖中有向邊的集合。

        2.2.6 特征序列

        根據(jù)溯源圖結(jié)構(gòu)特征,結(jié)合特征提取算法從某線程調(diào)用序列l(wèi)中提取出特征序列{SpSeq1,SpSeq2,…,SpSeqn},對(duì)于任意特征序列SpSeqi均有SpSeqi?l。特征序列在訓(xùn)練階段用以構(gòu)造良性特征庫(kù),在檢測(cè)階段用以完成文檔檢測(cè)。

        2.3 問(wèn)題陳述

        結(jié)合以上定義,本文將對(duì)文檔的檢測(cè)轉(zhuǎn)化為對(duì)其相應(yīng)調(diào)用溯源圖的檢測(cè),即檢測(cè)文檔p所對(duì)應(yīng)的溯源圖G(p)是否包含惡意特征序列。為便于后文論述,本文將不含惡意特征序列的調(diào)用溯源圖稱為良性溯源圖,把包含惡意特征序列的調(diào)用溯源圖稱為惡意溯源圖。

        2.4 模型設(shè)計(jì)

        本文模型如圖2 所示,主要包含3 個(gè)部分。

        圖2 本文檢測(cè)模型架構(gòu)Fig.2 Framework of the proposed detection model

        1)系統(tǒng)調(diào)用追蹤模塊:完成系統(tǒng)調(diào)用的追蹤與收集工作。包括收集系統(tǒng)調(diào)用名稱、產(chǎn)生時(shí)間以及對(duì)應(yīng)的線程號(hào)等信息。

        2)符號(hào)化模塊:負(fù)責(zé)將收集的系統(tǒng)調(diào)用數(shù)據(jù)進(jìn)行符號(hào)化處理。這一步主要是便于核心部分進(jìn)行溯源圖構(gòu)造與特征片段提取等處理工作。

        3)模型核心部分:將符號(hào)化的系統(tǒng)調(diào)用數(shù)據(jù)進(jìn)行溯源圖的構(gòu)造和特征片段提取,并完成良性特征庫(kù)的構(gòu)造與異常檢測(cè)。

        3 模型介紹

        3.1 模型概要

        本文模型的特征如下:

        1)采用基于異常檢測(cè)的技術(shù),即只學(xué)習(xí)良性樣本特征。

        2)利用調(diào)用溯源圖中的特征序列進(jìn)行檢測(cè)。

        分別解釋對(duì)模型進(jìn)行以上設(shè)計(jì)的原因:首先,本文模型基于異常檢測(cè)技術(shù),通過(guò)收集良性文檔執(zhí)行時(shí)的系統(tǒng)調(diào)用特征構(gòu)建特征庫(kù),能較為有效地應(yīng)對(duì)利用未知技術(shù)的惡意文檔攻擊。其次,僅使用溯源圖中的特征序列完成檢測(cè),這是因?yàn)閻阂馕臋n在執(zhí)行過(guò)程中各線程產(chǎn)生的調(diào)用序列并非都是惡意的,且對(duì)于某個(gè)產(chǎn)生惡意行為的線程,其相應(yīng)的線程調(diào)用序列也并非完全惡意的;因此需要找到其中的特征部分,用以區(qū)分良性文檔和惡意文檔。再者,僅使用長(zhǎng)度較短的特征序列進(jìn)行學(xué)習(xí)和檢測(cè)能夠有效提高模型的檢測(cè)性能,避免因粒度過(guò)細(xì)影響模型的檢測(cè)效果。

        檢測(cè)工作的主要流程如圖3 所示。流程主要包括5 個(gè)部分:數(shù)據(jù)收集與預(yù)處理、線程調(diào)用序列提取、圖構(gòu)建、特征序列提取、異常檢測(cè)。

        圖3 文檔檢測(cè)流程Fig.3 Flow chart of document detection

        3.2 數(shù)據(jù)收集與預(yù)處理

        數(shù)據(jù)收集過(guò)程中使用爬蟲(chóng)程序爬取良性PDF 文檔,這部分文檔均上傳至VirusTotal 經(jīng)由各家反病毒軟件進(jìn)行檢測(cè)篩查,確定為良性文檔。而后從VirusTotal 中下載惡意PDF 文檔作為實(shí)驗(yàn)使用的惡意樣本,同時(shí)從PDF 學(xué)習(xí)網(wǎng)站選擇一些使用PDF 高級(jí)功能的樣本作為良性樣本的補(bǔ)充,使收集的樣本足以覆蓋PDF 規(guī)范中的各項(xiàng)功能。完成收集工作后在Adobe Reader 閱讀器上運(yùn)行并使用NtTracer 追蹤系統(tǒng)調(diào)用并記錄,而后編寫(xiě)數(shù)據(jù)符號(hào)化的處理程序結(jié)束預(yù)處理工作。

        3.3 線程調(diào)用序列提取

        對(duì)于每一個(gè)文檔來(lái)說(shuō),其運(yùn)行時(shí)每分鐘都會(huì)產(chǎn)生數(shù)十萬(wàn)次的系統(tǒng)調(diào)用記錄,且其中產(chǎn)生的系統(tǒng)調(diào)用存在大量重復(fù)的情況。另外需要注意的是,使用Adobe Reader 運(yùn)行文檔時(shí)會(huì)創(chuàng)建多個(gè)線程,分別負(fù)責(zé)字體加載、渲染等各項(xiàng)工作。如果不按照線程將這些系統(tǒng)調(diào)用進(jìn)行劃分,則可能會(huì)出現(xiàn)因線程間的并行導(dǎo)致記錄中前后系統(tǒng)調(diào)用的行為特征不一致的情況,所以應(yīng)當(dāng)對(duì)這些系統(tǒng)調(diào)用按線程進(jìn)行區(qū)分。由于NtTracer 在收集系統(tǒng)調(diào)用數(shù)據(jù)時(shí)能夠根據(jù)輸入選項(xiàng)標(biāo)識(shí)出每一系統(tǒng)調(diào)用所對(duì)應(yīng)的線程號(hào),通過(guò)將收集到的系統(tǒng)調(diào)用數(shù)據(jù)根據(jù)線程號(hào)進(jìn)行整理,可生成各線程相應(yīng)的調(diào)用序列。

        3.4 溯源圖構(gòu)建

        對(duì)于文檔p,通過(guò)利用其線程調(diào)用序列集合T_Entity_Seq中的數(shù)據(jù),可以構(gòu)建文檔相應(yīng)的調(diào)用溯源圖其中集合V是系統(tǒng)調(diào)用的集合,集合E是調(diào)用事件集合。調(diào)用事件e=(src,dst,time)用以表示相鄰兩次系統(tǒng)調(diào)用的前后關(guān)系及產(chǎn)生后一調(diào)用的時(shí)刻。調(diào)用溯源圖G(p)=構(gòu)建的算法設(shè)計(jì)如下。

        算法1 溯源圖構(gòu)造算法。

        通過(guò)算法1 將同一文檔下的多個(gè)線程調(diào)用序列進(jìn)行整合,生成調(diào)用溯源圖,為后文尋找線程調(diào)用序列中的特征片段,即特征序列做準(zhǔn)備。

        3.5 特征序列提取

        Wang 等[22]從操作系統(tǒng)原生的事件跟蹤日志中收集系統(tǒng)事件序列用以構(gòu)建溯源圖,而后結(jié)合其提出的路徑稀有度算法選取稀有度較高的系統(tǒng)事件序列作為圖的特征部分。參考其思路,本文對(duì)系統(tǒng)調(diào)用序列構(gòu)建溯源圖,并給出圖中節(jié)點(diǎn)的稀有度定義。對(duì)于某文檔運(yùn)行時(shí)生成的線程調(diào)用序列中的系統(tǒng)調(diào)用v,其稀有度定義為:

        其中:N(v)表示該文檔下所有包含系統(tǒng)調(diào)用v的線程調(diào)用序列的集合,N則是該文檔下所有線程調(diào)用序列的集合,因此|N(v)|/|N|表示包含系統(tǒng)調(diào)用v的線程調(diào)用序列占該文檔全部線程調(diào)用序列的比例。

        而TF(v)定義為:

        其中:n(v)表示系統(tǒng)調(diào)用v在此線程調(diào)用序列中出現(xiàn)的次數(shù),L表示此線程調(diào)用序列的長(zhǎng)度,其值等于該線程調(diào)用序列包含的系統(tǒng)調(diào)用數(shù)。TF(v)的實(shí)際含義是系統(tǒng)調(diào)用v在此線程調(diào)用序列內(nèi)出現(xiàn)的頻率。

        進(jìn)一步地,OUT(v)定義為:

        其中FROM(v)定義為:

        FROM(v)表示對(duì)于任意以系統(tǒng)調(diào)用v為源調(diào)用的調(diào)用事件中,目的調(diào)用的集合。對(duì)于調(diào)用溯源圖|FROM(v)|即為圖中節(jié)點(diǎn)v的出度。K表示該文檔下所有線程調(diào)用序列中包含的系統(tǒng)調(diào)用的集合。

        類(lèi)似地,給出IN(v)的定義:

        其中TO(v)定義為:

        IN(v)表示對(duì)于任意以系統(tǒng)調(diào)用v為目的調(diào)用的調(diào)用事件中,源調(diào)用的集合。對(duì)于調(diào)用溯源圖|IN(v)|即為圖中節(jié)點(diǎn)v的入度。

        與文獻(xiàn)[22]中提出的稀有度定義相比,本文的定義中額外引入了系統(tǒng)調(diào)用的局部頻率TF(v)。本文認(rèn)為,頻率本身作為一項(xiàng)能夠直觀反映稀有性的指標(biāo)符合本文稀有度的定義要求,并且TF(v)的計(jì)算不依賴于圖結(jié)構(gòu),能夠?yàn)樗菰磮D中節(jié)點(diǎn)本身賦予一定的稀有度權(quán)重;另一方面,系統(tǒng)調(diào)用頻率在傳統(tǒng)入侵檢測(cè)領(lǐng)域中發(fā)揮的作用已得到充分驗(yàn)證,研究表明,目前已提出的諸多基于系統(tǒng)調(diào)用頻率設(shè)計(jì)的檢測(cè)模型均有良好的檢測(cè)效果。

        通過(guò)以上定義完成系統(tǒng)調(diào)用v的稀有度的計(jì)算,之后根據(jù)線程調(diào)用序列中各系統(tǒng)調(diào)用的稀有度進(jìn)行排序,尋找稀有度數(shù)值最大的系統(tǒng)調(diào)用。根據(jù)Bridges 等[23]的研究,傳統(tǒng)入侵檢測(cè)領(lǐng)域中使用由6~8 個(gè)系統(tǒng)調(diào)用組成的短序列進(jìn)行訓(xùn)練和檢測(cè)的N-Gram 模型往往能取得較優(yōu)的檢測(cè)結(jié)果。受此啟發(fā),本文實(shí)驗(yàn)中選擇各個(gè)線程調(diào)用序列中稀有度值最大的K個(gè)系統(tǒng)調(diào)用及其前后文組成長(zhǎng)度為7 的K條短序列作為特征序列,用以后續(xù)的檢測(cè)。由于各線程調(diào)用序列長(zhǎng)度不同,K的取值根據(jù)記錄線程調(diào)用序列的文件大小Size進(jìn)行設(shè)定,對(duì)應(yīng)關(guān)系如表2 所示。

        表2 K值選取方法Tab.2 Selection method of K-value

        3.6 異常檢測(cè)

        在完成對(duì)線程調(diào)用序列的特征片段提取后,利用特征片段中各系統(tǒng)調(diào)用的稀有度值進(jìn)行檢測(cè)。定義P(SpSeqtest)為特征序列SpSeqtest的測(cè)試結(jié)果,計(jì)算方式為:

        其中:S是所有良性特征庫(kù)中特征序列的集合,Y(SpSeqtest,SpSeqbenign)表示計(jì)算待測(cè)序列SpSeqtest與良性特征序列SpSeqbenign的余弦相似度。計(jì)算方法為:

        具體地,使用待測(cè)樣本的特征片段的稀有度值依次與所有良性特征庫(kù)中的特征片段稀有度值計(jì)算余弦相似度(實(shí)驗(yàn)中n=7),并將計(jì)算的最大值作為檢測(cè)指標(biāo)值。選取最大值作為檢測(cè)指標(biāo)值,是因?yàn)橹恍璐郎y(cè)樣本與某一良性特征序列有較高相似度,即可認(rèn)為其為良性的。最終通過(guò)設(shè)置閾值,最終判斷待測(cè)樣本是否為惡意文檔。

        4 實(shí)驗(yàn)與結(jié)果分析

        4.1 實(shí)驗(yàn)設(shè)置

        實(shí)驗(yàn)機(jī)器搭載了Intel Core i7-2.30 GHz 的CPU 與16 GB RAM 存儲(chǔ)器,系統(tǒng)為Windows 7 專(zhuān)業(yè)版SP1。每個(gè)樣本在執(zhí)行2 min 后關(guān)閉。所有樣本均使用版本號(hào)為11.0.0 的Adobe Reader XI 閱讀器運(yùn)行,同時(shí)使用NtTracer 追蹤并收集系統(tǒng)調(diào)用數(shù)據(jù)。

        4.2 樣本收集

        4.2.1 良性樣本

        良性樣本收集方面首先利用Bing 搜索引擎,通過(guò)指定文件類(lèi)型為PDF 格式,使用爬蟲(chóng)程序爬取了511 個(gè)良性樣本。然而這類(lèi)并沒(méi)有常見(jiàn)惡意樣本的特性,比如包含JavaScript腳本和在文檔中嵌入字體等;因此從PDF 學(xué)習(xí)網(wǎng)站上收集了17 個(gè)使用了PDF 高級(jí)功能的樣本,所有樣本都提交VirusTotal 并經(jīng)過(guò)掃描,均被識(shí)別為良性文檔。

        4.2.2 惡意樣本

        從VirusTotal 收集了320 個(gè)PDF 文檔并放進(jìn)沙箱執(zhí)行,確定其均有惡意行為產(chǎn)生。

        4.3 實(shí)驗(yàn)方法

        首先,在Adobe Reader 閱讀器上執(zhí)行文檔,同時(shí)運(yùn)行NtTracer 追蹤系統(tǒng)調(diào)用,將數(shù)據(jù)存入SQL Server 2008 數(shù)據(jù)庫(kù)中。然后,編寫(xiě)符號(hào)化程序提取系統(tǒng)調(diào)用相關(guān)信息,并按所屬線程進(jìn)行劃分,生成線程調(diào)用序列。進(jìn)一步地,使用線程調(diào)用序列完成調(diào)用溯源圖的構(gòu)建,并依據(jù)所提稀有度算法提取特征片段。最后,通過(guò)特征片段相應(yīng)的稀有度值進(jìn)行余弦相似度計(jì)算,并采用設(shè)置閾值的方法判斷文檔性質(zhì)。實(shí)驗(yàn)中的爬蟲(chóng)程序、符號(hào)化程序、溯源圖構(gòu)建程序以及實(shí)現(xiàn)稀有度計(jì)算與異常檢測(cè)的檢測(cè)程序均使用Python 編寫(xiě),代碼量約為12 000 行。在性能方面,記錄了從數(shù)據(jù)采集到完成異常檢測(cè)各部分的用時(shí),并進(jìn)行了性能評(píng)估。

        4.4 實(shí)驗(yàn)結(jié)果與分析

        對(duì)于基于系統(tǒng)調(diào)用頻率的異常檢測(cè)而言,一種較為常見(jiàn)的特征提取方法是使用詞頻-逆文檔頻率(Term Frequency-Inverse Document Frequency,TF-IDF)算法,即將每個(gè)系統(tǒng)調(diào)用視為一個(gè)單詞,統(tǒng)計(jì)各個(gè)系統(tǒng)調(diào)用的詞頻和逆文本頻率來(lái)篩選特征片段用于檢測(cè)。在實(shí)驗(yàn)的第4 步,即特征序列的提取過(guò)程中,使用TF-IDF 以及PROVDETECTOR 中的稀有度算法作為本文算法的代替算法來(lái)進(jìn)行對(duì)照實(shí)驗(yàn)。

        此外,本文實(shí)驗(yàn)采用精確率(precision,pre)、召回率(recall,rec)和F1 分?jǐn)?shù)(F1)這3 個(gè)指標(biāo)衡量模型的檢測(cè)效果。F1 分?jǐn)?shù)是精確率和召回率的調(diào)和平均值,即:

        其中:TP(True Positives)表示樣本標(biāo)簽為真,模型預(yù)測(cè)也為真的樣本數(shù),這里表示樣本標(biāo)簽為惡意,模型預(yù)測(cè)也為惡意的樣本數(shù)量。FP(False Positives)表示樣本標(biāo)簽為假,模型預(yù)測(cè)為真的樣本數(shù),即被錯(cuò)誤預(yù)測(cè)為惡意的樣本數(shù)量。TN(True Negetives)表示樣本標(biāo)簽為假,模型預(yù)測(cè)也為假的樣本數(shù),這里表示樣本標(biāo)簽為良性,模型預(yù)測(cè)也為良性的樣本數(shù)量。FN(False Negetives)表示樣本標(biāo)簽為真,模型預(yù)測(cè)為假的樣本數(shù),即被錯(cuò)誤預(yù)測(cè)為良性的樣本數(shù)量。表3 為這4 個(gè)評(píng)價(jià)指標(biāo)的直觀具體含義。

        表3 評(píng)價(jià)指標(biāo)具體含義Tab.3 Specific meanings of evaluation indicators

        4.4.1 TF-IDF算法檢測(cè)結(jié)果

        1)良性樣本檢測(cè)結(jié)果。實(shí)驗(yàn)中使用Adobe Reader 執(zhí)行待測(cè)的良性樣本,并使用TF-IDF 算法作為模型第4 步中稀有度算法的代替策略進(jìn)行實(shí)驗(yàn)。在閾值設(shè)定為0.98 時(shí)F1 分?jǐn)?shù)最高,此時(shí)134 個(gè)良性待測(cè)樣本(其中17 個(gè)為利用了PDF 高級(jí)功能的樣本)里有42 個(gè)被認(rèn)定為惡意樣本(包括10 個(gè)利用了PDF 高級(jí)功能的樣本)。

        2)惡意樣本檢測(cè)結(jié)果。實(shí)驗(yàn)共有320 個(gè)惡意樣本,在閾值為0.98 時(shí)F1 分?jǐn)?shù)最高,此時(shí)311 個(gè)惡意文檔被認(rèn)定為惡意樣本。

        4.4.2 PROVDETECTOR 中稀有度算法檢測(cè)結(jié)果

        1)良性樣本檢測(cè)結(jié)果。使用Wang 等[22]模型中的稀有度算法作為模型第4 步中稀有度算法的代替策略進(jìn)行實(shí)驗(yàn)。在閾值設(shè)定為0.96 時(shí)F1 分?jǐn)?shù)最高,此時(shí)134 個(gè)良性待測(cè)樣本(其中17 個(gè)為利用了PDF 高級(jí)功能的樣本)里有15 個(gè)被認(rèn)定為惡意樣本(包括6 個(gè)利用了PDF 高級(jí)功能的樣本)。

        2)惡意樣本檢測(cè)結(jié)果。實(shí)驗(yàn)共有320 個(gè)惡意樣本,在F1分?jǐn)?shù)最高即閾值設(shè)定為0.96 時(shí),此時(shí)318 個(gè)惡意文檔被認(rèn)定為惡意樣本。

        4.4.3 NtProvenancer模型檢測(cè)結(jié)果

        1)良性樣本檢測(cè)結(jié)果。使用Adobe Reader 執(zhí)行待測(cè)樣本,在模型的第4 步中使用本文所提出的稀有度算法進(jìn)行實(shí)驗(yàn)。在閾值設(shè)定為0.96 時(shí)F1 分?jǐn)?shù)最高,此時(shí)134 個(gè)良性待測(cè)樣本里有7 個(gè)被認(rèn)定為惡意樣本(包括5 個(gè)利用了PDF 高級(jí)功能的樣本)。

        2)惡意樣本檢測(cè)結(jié)果。當(dāng)閾值設(shè)定為0.96 時(shí)F1 分?jǐn)?shù)最高,為0.989,此時(shí)320 個(gè)惡意文檔均被識(shí)別為惡意樣本。詳細(xì)的檢測(cè)結(jié)果如圖4 所示。

        圖4 三種算法的模型檢測(cè)結(jié)果比較Fig.4 Model detection result comparison of three algorithms

        實(shí)驗(yàn)中三種方式下測(cè)試結(jié)果的精確率、召回率和F1 分?jǐn)?shù)詳細(xì)結(jié)果如表4 所示。為便于描述,表中PROVDETECTOR 及NtProvenancer 代表各自模型的路徑篩選算法。

        由表4 可以看到,NtProvenancer 模型在閾值為0.96 時(shí)取得最大F1 分?jǐn)?shù)0.989,而TF-IDF 算法置換后的模型在閾值為0.98 時(shí)取得最大值0.924,PROVDETECTOR 中的稀有度算法置換后的模型在閾值為0.96 時(shí)取得最大值0.974。從結(jié)果來(lái)看本文模型明的檢測(cè)結(jié)果明顯優(yōu)于TF-IDF 算法置換后的模型,略優(yōu)于PROVDETECTOR 中算法置換后的模型。取得這一結(jié)果的原因是TF-IDF 算法在進(jìn)行特征提取時(shí),只是基于系統(tǒng)調(diào)用的頻率來(lái)挑選更加具有類(lèi)別區(qū)分能力的系統(tǒng)調(diào)用;而本文模型的特征提取算法則綜合考慮了系統(tǒng)調(diào)用的頻率、出現(xiàn)類(lèi)別所占比例,并加入了圖論領(lǐng)域的入度與出度等概念對(duì)特征提取算法進(jìn)行了進(jìn)一步優(yōu)化,引入了系統(tǒng)調(diào)用的上下文信息。這一方式同時(shí)結(jié)合了系統(tǒng)調(diào)用的頻率特征和順序特征,所以能夠取得更好的檢測(cè)效果。相較于本文所提出的稀有度定義而言,PROVDETECTOR 中的定義由于缺少了系統(tǒng)調(diào)用在同一線程中出現(xiàn)的頻率,對(duì)系統(tǒng)調(diào)用序列中頻率特征提取不夠完備,由此導(dǎo)致檢測(cè)效果上略有不足。

        表4 三種評(píng)價(jià)指標(biāo)的對(duì)比結(jié)果Tab.4 Comparison results of three evaluation indicators

        實(shí)驗(yàn)過(guò)程中發(fā)現(xiàn),可考慮直接使用稀有度的值作為評(píng)判標(biāo)準(zhǔn),通過(guò)識(shí)別包含較低稀有度的系統(tǒng)調(diào)用序列,進(jìn)而完成惡意文檔檢測(cè)。為此展開(kāi)進(jìn)一步實(shí)驗(yàn)。

        在根據(jù)稀有度提取特征序列后,計(jì)算序列中各系統(tǒng)調(diào)用稀有度的均值,并設(shè)定閾值用以判斷序列惡意與否。此時(shí)惡意序列判斷標(biāo)準(zhǔn)為:稀有度均值低于設(shè)定閾值的特征序列視為惡意的,生成惡意序列的對(duì)應(yīng)文檔也同樣認(rèn)定為惡意的。同樣在320 例惡意樣本和134 例良性樣本上進(jìn)行實(shí)驗(yàn),并計(jì)算不同閾值下該方法的精確率、召回率和F1 分?jǐn)?shù),生成如圖5 所示的曲線圖。

        圖5 稀有度均值法下模型的檢測(cè)結(jié)果Fig.5 Model detection results under rarity mean method

        從圖5 中可以看到,閾值在0.001 5 之后的測(cè)試中,召回率不斷提高,但是精確率卻降低了。后經(jīng)分析發(fā)現(xiàn)隨著閾值的不斷增大,產(chǎn)生誤報(bào)的良性樣本數(shù)在模型識(shí)別出的惡意樣本中所占比例也不斷提高,導(dǎo)致檢測(cè)效果并不理想。

        為探究誤報(bào)數(shù)量增多的原因,對(duì)實(shí)驗(yàn)所使用的所有良性樣本和惡意樣本線程調(diào)用序列中的系統(tǒng)調(diào)用的稀有度值進(jìn)行了調(diào)查,結(jié)果如圖6 所示。

        圖6 線程調(diào)用序列中的系統(tǒng)調(diào)用稀有度分布Fig.6 System call rarity distribution in sequences of thread calls

        通過(guò)將各線程調(diào)用序列中系統(tǒng)調(diào)用的最大稀有度值和最小稀有度值組成二元組繪制出圖6 所示的散點(diǎn)圖。從圖6中點(diǎn)的分布情況可以看出,無(wú)論是對(duì)于良性測(cè)試文檔還是惡意測(cè)試文檔的線程調(diào)用序列,其序列中系統(tǒng)調(diào)用的最大稀有度和最小稀有度的分布情況均較為相似;雖然總體上惡意序列中的系統(tǒng)調(diào)用在低稀有度處的分布會(huì)更加集中,當(dāng)然這里只是用最大值-最小值近似表示各線程調(diào)用序列中稀有度數(shù)據(jù)的分布,近似地認(rèn)為各序列稀有度在極值相近時(shí)其序列中的稀有度值分布情況也應(yīng)是相近的。由圖6 可知,無(wú)法根據(jù)稀有度均值設(shè)定閾值將圖6 中兩類(lèi)點(diǎn)進(jìn)行有效分離,即無(wú)法根據(jù)特征序列的稀有度值有效區(qū)分惡意序列和良性序列。實(shí)際上,無(wú)論是惡意文檔還是良性文檔,都會(huì)存在稀有度很低的系統(tǒng)調(diào)用,也都會(huì)存在稀有度較高的系統(tǒng)調(diào)用。換言之,單純使用稀有度值無(wú)法有效地進(jìn)行惡意文檔檢測(cè),所以必須考慮結(jié)合上下文特征進(jìn)行改進(jìn),這與本文模型的設(shè)計(jì)思想是一致的。

        為說(shuō)明進(jìn)行特征片段提取的必要性,選擇了兩組良性與惡意的線程調(diào)用序列進(jìn)行比較實(shí)驗(yàn)。利用滑動(dòng)窗口,將每個(gè)系統(tǒng)調(diào)用及其后6 個(gè)調(diào)用組成長(zhǎng)度為7 的系統(tǒng)調(diào)用片段,而后對(duì)每一片段計(jì)算其與良性特征庫(kù)中特征片段的相似度。圖7 是兩組序列中的片段與良性特征庫(kù)中片段的相似度情況。

        從圖7 中可以發(fā)現(xiàn),惡意線程調(diào)用序列相較于良性線程會(huì)出現(xiàn)更多的低相似度片段;但即使是惡意線程,其大部分的短序列與良性特征庫(kù)中的特征序列都有較高的相似度。這說(shuō)明對(duì)于文檔攻擊而言,大部分惡意行為都是隱藏在大量良性行為活動(dòng)中;同時(shí)也說(shuō)明了挑選具有代表性的短序列片段,即特征片段進(jìn)行檢測(cè)的合理性。通過(guò)檢測(cè)特征序列可以有效減少惡意良性行為被掩蓋導(dǎo)致無(wú)法正確檢測(cè)的情況出現(xiàn),并且能夠降低性能開(kāi)銷(xiāo)。值得注意的是,部分良性線程也會(huì)出現(xiàn)一些相似度較低的片段,這可能是因?yàn)橛靡圆杉夹蕴卣鞯牧夹詷颖緮?shù)量稍有不足,沒(méi)有完全覆蓋所有的良性行為特征,需要進(jìn)一步地增加用以采集良性特征的良性樣本數(shù)量。

        圖7 兩例惡意線程與良性線程的系統(tǒng)調(diào)用片段相似度比較Fig.7 Two examples of similarity among system call fragments between malicious thread and benign one

        4.5 性能分析

        在最佳參數(shù)設(shè)置下進(jìn)行性能測(cè)試,此時(shí)系統(tǒng)調(diào)用短序列長(zhǎng)度設(shè)置為7,模型閾值設(shè)置為0.96。分別測(cè)試了模型在訓(xùn)練和檢測(cè)兩種模式下的用時(shí)情況。

        4.5.1 訓(xùn)練用時(shí)

        訓(xùn)練用時(shí)主要包括以下幾部分:提取線程調(diào)用序列用時(shí)、構(gòu)建調(diào)用溯源圖用時(shí)、提取特征序列用時(shí)、構(gòu)建良性的特征序列庫(kù)用時(shí)。在實(shí)驗(yàn)中,對(duì)于394 個(gè)文檔共計(jì)45 733 138條系統(tǒng)調(diào)用記錄進(jìn)行線程調(diào)用序列的提取,共提取線程調(diào)用序列6 880 條,提取特征序列15 493 條,提取單個(gè)線程調(diào)用序列的平均用時(shí)為19.11 ms;對(duì)每一個(gè)訓(xùn)練樣本而言構(gòu)建調(diào)用溯源圖的平均用時(shí)為7.93 ms,平均每個(gè)調(diào)用溯源圖包含17.46 條線程調(diào)用序列的信息;對(duì)于一個(gè)線程調(diào)用序列,提取其特征序列的平均用時(shí)為26.50 ms,最終構(gòu)建良性特征庫(kù)并存入15 493 條特征序列信息總用時(shí)104 s。

        4.5.2 檢測(cè)用時(shí)

        檢測(cè)用時(shí)主要包括以下幾部分:提取線程調(diào)用序列用時(shí)、構(gòu)建調(diào)用溯源圖用時(shí)、提取特征序列用時(shí)、異常檢測(cè)用時(shí)。在檢測(cè)時(shí),對(duì)于454 個(gè)文檔(包含134 個(gè)良性文檔與320個(gè)惡意文檔)共計(jì)50 776 144 條系統(tǒng)調(diào)用記錄進(jìn)行線程調(diào)用序列的提取,共提取線程調(diào)用序列7 778 條,提取單個(gè)線程調(diào)用序列的平均用時(shí)為17.83 ms。對(duì)每一個(gè)待測(cè)樣本而言構(gòu)建調(diào)用溯源圖的平均用時(shí)為5.84 ms,平均每個(gè)系統(tǒng)調(diào)用溯源圖包含17.13 條線程調(diào)用序列的信息。在第4 步的提取特征序列階段中,提取單個(gè)線程調(diào)用序列的特征序列的平均用時(shí)為23.57 ms。最終文檔的異常檢測(cè)平均用時(shí)為13.31 ms。訓(xùn)練與檢測(cè)用時(shí)具體情況如表5 所示。

        表5 訓(xùn)練與檢測(cè)階段的用時(shí)情況 單位:msTab.5 Time cost of training and detection stages unit:ms

        此外,由于本模型只需要單線程的執(zhí)行方式即可完成全部工作,后續(xù)可以采取多核并行的方式進(jìn)一步減少檢測(cè)用時(shí)。

        5 結(jié)語(yǔ)

        本文設(shè)計(jì)了一種基于系統(tǒng)調(diào)用與數(shù)據(jù)溯源技術(shù)的惡意文檔檢測(cè)模型。該模型結(jié)合基于系統(tǒng)調(diào)用頻率與順序特征的異常檢測(cè)技術(shù)特點(diǎn),同時(shí)利用溯源技術(shù)完成系統(tǒng)調(diào)用級(jí)溯源圖的構(gòu)造,并提出一種基于圖的特征提取算法用于篩選特征片段完成檢測(cè)。與其他檢測(cè)系統(tǒng)相比,本文提出的檢測(cè)模型漏報(bào)率、誤報(bào)率較低,能夠有效全面地完成惡意文檔檢測(cè)。但該模型也存在著一定的提升空間,如攻擊者可能會(huì)根據(jù)稀有度算法設(shè)計(jì)出稀有度很高的攻擊序列來(lái)規(guī)避檢測(cè),后續(xù)還應(yīng)在此方面進(jìn)行改進(jìn)。

        未來(lái)可能會(huì)考慮利用異構(gòu)技術(shù)對(duì)模型檢測(cè)效果進(jìn)行進(jìn)一步完善,如利用不同文檔閱讀器下堆棧、庫(kù)依賴項(xiàng)、文件系統(tǒng)語(yǔ)義以及系統(tǒng)調(diào)用及其參數(shù)的差異性來(lái)進(jìn)一步完善模型的檢測(cè)機(jī)制,提高系統(tǒng)的檢測(cè)性能。

        猜你喜歡
        線程調(diào)用文檔
        有人一聲不吭向你扔了個(gè)文檔
        核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        淺談linux多線程協(xié)作
        基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
        基于RI碼計(jì)算的Word復(fù)制文檔鑒別
        Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
        利用RFC技術(shù)實(shí)現(xiàn)SAP系統(tǒng)接口通信
        Linux線程實(shí)現(xiàn)技術(shù)研究
        不讓他人隨意下載Google文檔
        電腦迷(2012年4期)2012-04-29 06:12:13
        国产国语一级免费黄片| 国产亚洲精品久久777777| 老师脱了内裤让我进去| 免费人成在线观看播放国产| 噜噜噜色97| 成年男女免费视频网站点播| 91色老久久偷偷精品蜜臀懂色| 亚洲av无码一区东京热| 亚洲精品92内射| 欧美伊人亚洲伊人色综| 激情人妻中出中文字幕一区| 国产精品一区二区夜色不卡| 日韩乱码人妻无码系列中文字幕| 48久久国产精品性色aⅴ人妻| 少妇内射高潮福利炮| 国产在视频线精品视频二代| 色综合中文字幕综合网| 91在线视频在线视频| av鲁丝一区鲁丝二区鲁丝三区| 一本大道色婷婷在线| av手机在线天堂网| 人妻少妇中文字幕专区| 人妻少妇中文字幕在线| 免费看美女被靠的网站| 又爽又黄无遮挡高潮视频网站| 日本av一区二区播放| 国产一区二区三区免费av| 亚洲av乱码一区二区三区林ゆな| 丰满熟妇乱子伦| 国产成人av在线影院无毒| av在线不卡一区二区三区| 蜜桃尤物在线视频免费看| 色综合色狠狠天天综合色| 免费无码肉片在线观看| 久久久精品人妻一区二| 玖玖资源站亚洲最大的网站| 成人免费无码视频在线网站| 综合无码一区二区三区| 九九99久久精品在免费线97| 亚洲女人毛茸茸的视频| 日韩精品无码一区二区三区四区|