?

基于圖神經網絡與深度學習的PDF文檔檢測模型

2024-02-22 07:44雷靖瑋
計算機工程與設計 2024年2期
關鍵詞:線程調用文檔

雷靖瑋,伊 鵬,陳 祥

(信息工程大學 信息技術研究所,河南 鄭州 450002)

0 引 言

2018年思科年度安全報告[1]指出,PDF文檔占同年電子郵件攻擊載體的14%。但這類安全問題并沒有引起人們足夠的重視。在人們的傳統觀念中,PDF文檔作為一種靜態文檔難于修改,因而在安全防護時往往忽視其存在。此外,PDF文檔規范的更新在豐富其功能性的同時也帶來了許多潛在風險。一方面,新的規范賦予PDF文檔更強的功能,包括進行網絡行為交互、腳本執行等,另一方面,新的規范也導致文檔閱讀器的設計愈發復雜,變相引入更多可利用漏洞。

目前針對惡意文檔的檢測手段主要可分為兩類,即靜態檢測和動態檢測。靜態檢測主要通過靜態解析文檔,判斷文檔中是否含有惡意負載從而完成檢測。這種方式的局限性在于攻擊者可以通過混淆等方式規避檢測。與靜態檢測相反,動態檢測主要通過執行部分或整個文檔并跟蹤其行為從而做出判斷。但這類方法往往因系統開銷較大而難以大規模應用。

本文提出了一個以系統調用為對象,結合圖神經網絡與深度學習技術的PDF文檔檢測模型。與傳統檢測方法相比,該模型不依賴于文檔本身的元數據和結構數據,因而具有更強的魯棒性與適應性。通過圖神經網絡以及深度學習技術對系統調用數據進行處理,能夠更加深入發掘文檔行為中的潛在特征。在此基礎上進一步設計了一種復合式的圖采樣技術有效降低模型的性能開銷??傊?,本文的主要貢獻在于:

(1)將圖神經網絡與深度學習技術融合,應用于惡意PDF文檔的檢測,通過圖卷積網絡學習系統調用間的潛在關聯,同時使用深度學習提取系統調用對的特征信息作為補充,最終以較低的訓練開銷取得了良好的檢測效果。

(2)提出了一種帶有匹配機制的有偏隨機游走方式,該采樣方法以H指數為基礎,能夠較好地保留圖的關鍵部分,在降低系統開銷的同時有效提高模型的檢測效率。

(3)在所收集數據的基礎上進行大量實驗,探究模型所選方法的有效性和可解釋性,同時對于模型部分參數的最佳設置進行了實驗研究。

1 惡意文檔檢測相關工作

目前常見的惡意文檔檢測方法主要是靜態分析檢測和動態分析檢測,本節將圍繞這兩種檢測方案介紹目前主流檢測手段與不足之處,同時陳述本文的寫作動機。

1.1 靜態檢測方案

靜態檢測主要依賴于文檔的結構和數據特征,大致上可以分為3類。第一類主要通過解析PDF文檔中嵌入的JavaScript代碼。Mao等[2]提出了一種基于主動學習的代碼檢測方式,在分析系統對象的數據流依賴方式的基礎上,提出了一種將程序訪問行為的異常度與相似性相結合的檢測方式。Jia等[3]提出了一種面向云的可疑程序自動監測系統。這些方法的一個共同問題在于攻擊者能夠通過混淆及動態代碼加載等方式逃避檢測。另外,由于文檔靜態解析器通常根據預定義的規則提取JavaScript腳本,因此攻擊者可以利用這些規則來確定隱藏惡意代碼的方式。

第二類則主要依賴于文檔的結構數據與元數據。Cohen等[4]提出了一種基于XML的Office文檔結構特征提取方式。Nissim等[5]在其基礎上特化了針對docx文檔格式的檢測能力。rndi等[6]將文檔的邏輯結構與其內容相結合,能同時適用于多種文檔類型的檢測。Azab等[7]則是將文件字節表示為音頻信號以完成檢測。以上方法在攻擊者可以隱藏攻擊模式或妨礙檢測器解析過程的情況下效果不夠理想。

第三類是基于簽名的檢測。YARA[8]幫助用戶為程序創建特定簽名與模式。OfficeCat[9]則通過掃描待檢測文檔與已有簽名的匹配情況進行檢測。這類方法的不足之處在于其難以處理使用了未知手段的攻擊方式,例如零日攻擊等,并且要求動態維護一個簽名數據庫。

1.2 動態檢測方案

動態檢測主要通過在受監視環境中動態運行文檔或其中嵌入的JavaScript代碼并跟蹤文檔行為進行檢測。大致可分為以下兩類。

第一類方法主要通過跟蹤文檔解釋器行為。Scofield等[10]根據文檔運行時解釋器行為訓練其文檔分類器完成檢測。Xu等[11]利用平臺異構性在不同平臺上執行相同文檔并比較文檔運行時解釋器行為的異同。這類方法面臨的主要困難在于檢測器分類規則的制定。

第二類方法是通過執行文檔中嵌入的JavaScript代碼。Carmony等[12]在文檔解釋器執行代碼的同時,不斷掃描其內存空間尋找已知形式的攻擊代碼與惡意的操作碼序列。Liu等[13]提出了兩層解混淆的方法,實現了對惡意Powershell更加準確的檢測效果。Lux0r[14]通過檢查JavaScript代碼在運行時產生的API調用,并利用機器學習進行分類。而為應對基于Javascript腳本的混淆攻擊,文獻[15,16]提出了相應的反混淆檢測技術??傊?,這類方法的主要問題在于難以識別未知的惡意行為,并且要求隨著新型攻擊方式的出現而動態更新自身的檢測模式。

1.3 寫作動機

當前基于圖的惡意軟件檢測和分類方法主要集中于靜態分析,主要方法包括利用函數調用圖[17-18]或控制流圖[19,20]來識別惡意軟件。此外,在惡意文檔檢測方向上基于機器學習的方法主要運用于靜態檢測的研究當中,多與文檔的結構數據與元數據相結合,而在動態檢測方面的應用還存在較大空白。

本文模型借助動態檢測方法,收集文檔運行時產生的系統調用數據,而后構建基于圖神經網絡與深度學習的檢測模型。相比其它研究對象,系統調用的優勢在于:首先,其作為操作系統內核的活動產物沒有經過任何的過濾、解釋與處理。換言之,攻擊者沒有辦法通過修改或刪除等操作破壞系統調用數據的完整性。其次,系統調用作為操作系統內核向上層程序提供服務的接口,其數據能夠間接反映程序的行為特征。與傳統的檢測方法相比,模型使用基于系統調用圖的動態檢測方式,同時結合圖卷積神經網絡以及深度學習技術最終實現文檔的檢測。與傳統基于圖的模型相比,傳統模型更加關注節點的屬性特征,相比之下本模型在關注節點屬性的基礎上充分挖掘邊緣屬性特征,將圖中的節點表示與邊緣信息充分融合。

總的來說,本文旨在探究一種基于圖神經網絡與深度學習的PDF文檔檢測模型,通過圖卷積神經網絡以及深度學習技術對傳統動態檢測方式進行改進。除了惡意文檔檢測的工作之外,本模型也可考慮用于其它領域如入侵檢測或惡意流量識別等相關研究當中。

2 模型架構與問題陳述

2.1 模型基本假設

為避免引起不必要的爭議,實驗中不考慮利用社會工程學手段引導用戶點擊文檔內鏈接下載并運行惡意負載等方式,即不考慮文檔本身未攜帶惡意負載的間接攻擊模式。這種攻擊方式不會導致PDF閱讀器產生惡意的系統調用數據。

另外,實驗中不考慮使用的PDF閱讀器以及用于收集系統調用數據的工具本身的問題,即實驗環境完全可信,同時也不考慮收集到的數據被惡意篡改的情況,保證數據的完整性。

2.2 模型設計

本文模型架構如圖1所示。

(1)預處理模塊:對收集到的系統調用數據按照線程進行劃分,如執行渲染功能、字體加載功能的線程所產生的系統調用數據應當分屬不同類別,線程劃分的目的在于保證劃分后的系統調用序列在功能邏輯上具有一致性與連貫性。而后將根據劃分后的系統調用序列生成對應的系統調用圖。

(2)圖采樣模塊:根據所提出的基于H指數的圖采樣策略提取系統調用圖中的關鍵部分,縮減后續需處理的數據規模。

(3)圖嵌入模塊:將經過圖采樣后的子圖中的節點號以及邊緣的特征信息映射為對應的向量。

(4)前向傳播模塊:使用圖卷積網絡生成更新節點的向量表示,同時使用深度學習充分提取邊緣特征中的關鍵信息。

(5)信息融合模塊:將前向傳播模塊輸出邊緣特征向量與節點向量進行拼接。

(6)預測模塊:綜合圖中全部的節點信息對系統調用子圖的性質進行預測,以完成文檔的檢測工作。

2.3 問題陳述

本模型將惡意PDF文檔的檢測問題轉換為圖的二分類問題。通過系統調用圖建立系統調用之間的聯系,并使用圖神經網絡以及深度學習技術學習其中的隱藏特征。最終文檔的性質通過圖的性質進行判斷,而圖的性質則由迭代后節點的向量表示所決定。模型的設計重點在于圖中邊緣特征向量的特征提取方式以及圖中節點向量的迭代更新機制,此外考慮到傳統的圖神經網絡所引起的巨額系統負擔,必須設計一種行之有效的優化策略避免實際應用中產生難以承受的性能開銷。

3 模型介紹

3.1 模型概況

系統調用圖作為系統調用的符號表示,其邊緣屬性能夠有效反映特定時間范圍內系統調用之間的上下文關聯。與線性結構相比,圖結構提供了更豐富的關系表示,能更加深入地學習數據間的隱藏聯系。因此,本文以系統調用圖為基礎進行模型構建,結合圖神經網絡以及深度學習領域的相關技術,設計了一種較為完備的惡意文檔檢測模型。

3.2 相關定義

模型的部分相關定義如下。

3.2.1 系統調用序列

文檔運行時會產生多個線程,系統調用序列由三元組組成,同時記錄了系統調用的發生時刻以及相應線程。seq={(thread1,syscall1,time1),…,(threadn,syscalln,timen)} 其中threadi表示系統調用所屬線程號,timei表示系統調用產生的時間。

3.2.2 系統調用圖

根據系統調用序列可以構建相應的系統調用圖G=〈V,E〉, 其中V與E分別表示圖中節點與邊的集合。此外圖中單個節點表示某系統調用,而邊則用以表示相鄰兩次系統調用所組成的系統調用對,形式上記為e=(src,dst,time), 其中src,dst分別表示系統調用對中源系統調用和目的系統調用,time則表示此次切換發生的時刻,亦即目的系統調用的產生時間。需注意的是,在建立系統調用圖之前通常將系統調用序列按照線程劃分為短序列。

3.3 預處理

3.3.1 線程劃分

在構造系統調用圖之前,從收集的數據中按照系統調用所屬線程對每一文檔產生的系統調用數據進行劃分,其過程如圖2所示。此步驟的必要性在于操作系統的并行機制:文檔運行時往往會產生多個線程,不同線程具有不同分工,包括文檔的渲染、字體加載、圖片載入等操作。如單純按照時間順序對系統調用進行排序,則序列中前后相鄰的系統調用可能分屬不同線程,由此導致邏輯層面的混亂。

圖2 系統調用數據按線程劃分

而線程級的數據預處理能夠在邏輯上對系統調用數據依據各線程的任務及功能進行區分,保證相鄰系統調用的邏輯連貫性,防止模型捕捉錯誤的數據特征,進而提高后續模型的檢測效果。

3.3.2 系統調用圖構建

對于不同線程的系統調用序列,以單個系統調用作為節點,以系統調用對作為節點之間關聯邊,建立系統調用圖。需注意的是文檔在運行時往往會產生多個線程,其性質需各綜合線程的系統調用圖決定。線程劃分工作與系統調用圖構建在預處理算法中同時完成。預處理步驟的算法如下:

算法:預處理算法

輸入:某文檔運行時的系統調用序列seq

輸出:系統調用圖集合Gtotal

(1)Gtotal,Tdtotal←?

(2)for eachs=(thread,syscall,time) inseqdo

(3)ifthread?Tdtotalthen

(4)Tdtotal←Tdtotal∪{thread}

(5)Vthread,Ethread←?

(6)Vthread←Vthread∪{syscall}

(7) ifpre==Null then

(8)pre←syscall

(9)continue

(10)Ethread←Ethread∪{(pre,syscall,time)}

(11)pre←syscall

(12)for eachthreadinTdtotaldo

(13)Gthread←(Vthread,Ethread)

(14)Gtotal←Gtotal∪Gthread

算法的輸入部分是文檔運行產生的系統調用序列,輸出是系統調用圖集合。通過線程號將系統調用作為節點加入到相應的節點集,同時將系統調用對作為邊加入到相應的邊集。文檔的性質將綜合其所有線程的系統調用圖進行判斷。

3.4 基于H指數的有偏游走采樣

一直以來,如何篩選出可疑性較高的系統調用都是研究者重點關注的問題。在惡意文檔檢測的研究領域中,文檔的惡意行為通常隱藏在大量的良性行為當中,即便是文檔運行時產生的惡意線程也并非單純進行惡意活動。而系統調用作為用戶與內核交互活動的產物能夠有效反映出程序的行為特征,在惡意軟件的行為活動中,這種特征通常表現為用以完成惡意活動的系統調用出現頻率較低,傳統的基于系統調用頻率的檢測技術正是基于此特征而展開的。這種特征反映在圖上則表現為執行惡意活動的系統調用節點的中心性較低。

節點度是衡量一個節點中心性的最簡單方式且應用最為廣泛。而核數作為衡量節點影響能力的評價指標也已得到了廣泛認可[21]。節點的核數通過k核分解進行計算:首先從不包含孤立節點的圖中刪除度為1的節點及其相鄰邊,重復此過程直到沒有節點被刪除,則被刪除的部分組成1階殼。而后對剩余部分刪除度數為2的節點及其鄰邊,后續重復此類操作,直到刪除圖中所有節點。而節點的核數等于其所屬殼的階數。

H指數雖然因提出時間較晚在實際運用中較前者而言更稀少,但節點中心性度量仍非常有效。在圖中某節點的H指數為p的實際含義為該節點最多有p個度數不小于p的鄰居節點。

顯然節點度、H指數、核數三者的計算開銷是依次遞增的,計算節點度只需要節點周圍非常局部的拓撲信息、計算核數則需要圖的全局拓撲信息,H指數則介于二者之間。事實上三者間可通過H算子進行互相轉換。

定義算子H,當其作用在一組有限實數 (x1,x2,…,xn) 上時,其返回值y表示滿足條件y=H(x1,x2,…,xn)=max{k|xl1,xl2,…,xlm≥k,m≥k,k∈N} 時k的最大值。

對于圖G=〈V,E〉, 節點i的度數記為ki, 其鄰居的度數分別為dj1,dj2,…,djs, 則節點i的H指數為

hi=H(dj1,dj2,…,djs)

(1)

(2)

(3)

(4)

綜合以上因素,文中提出了一種基于H指數的圖采樣策略。采樣策略是一種基于H指數的有偏隨機游走方式,并且引入一種新的匹配機制。

(5)

(6)

(7)

(8)

為求解遞推關系式,定義向量Xn|t如式(9)所示

(9)

在游走的過程中額外進行鄰域擴展操作,此操作并不會影響有偏隨機游走過程,如圖3所示。

圖3 圖采樣過程

總的來說算法通過基于H指數的匹配機制進行有偏隨機游走,同時將隨機游走過程中經過的每一節點以及節點的N跳(示意圖中為1跳)鄰居節點加入到采樣子圖中,依此策略縮減數據規模,提高模型的檢測效率。

3.5 圖嵌入層

此步驟將系統調用圖的信息輸入模型。

3.5.1 節點嵌入

(10)

節點嵌入向量為初始狀態,通過前向傳播進行迭代更新以更好地表達其內含的節點關聯關系。

3.5.2 邊緣嵌入

系統調用圖中的各邊均有唯一對應的特征向量。對于邊緣e=(src,dst,time) 而言,典型的一些特征包括起點終點系統調用在圖中的度,同一系統調用相鄰兩次出現的最長以及最短間隔數與間隔時間,兩系統調用在序列中各自出現的次數,以及系統調用對 (src,dst) 目前的重復次數等等。根據以上特征構建的特征向量將作為邊緣信息的初步表征。受到自然語言處理方面的啟發,實驗中考慮將邊緣信息的各類特征視為單詞,將整條特征信息視為一個完整句子,并將其輸入BERT[22]模型之中進行預訓練,通過訓練將特征信息進行融合。假設圖中共有M條邊,各邊的典型特征信息有SN條,每條特征信息的長度為SL,BERT模型的輸出向量維度為c,則圖中節點i與節點j邊之間的嵌入向量si∈SN×SL×c, 類似的全部邊緣嵌入向量的集合為s∈M×SN×SL×c, 即

s=[s1,s2,…,sM]

(11)

3.6 前向傳播層

前向傳播層分為兩個并行部分,通過圖卷積神經網絡對節點間的關聯關系進行學習,以及通過深度學習對邊緣信息進行學習。

3.6.1 節點關聯信息獲取

對于系統調用圖G,系統調用的關聯關系迭代更新參考了LightGCN的方式。對于節點i,其嵌入向量在圖卷積網絡中的1跳更新結果為

(12)

利用一階迭代的更新規則,可以在網絡中堆疊多層圖卷積以學習系統調用之間的高階關聯關系。對于系統調用i其第k+1跳的更新結果與第k跳的更新結果在前向傳播過程中有如下關系

(13)

(14)

vi∈h×d,h視為可以調整的超參數,⊕表示拼接操作。為更好地學習系統調用之間的關聯關系,引入注意力機制對每一跳嵌入向量的重要程度進行建模。對于系統調用i, 圖神經網絡的注意力ami∈1×h的定義與計算方式如下

ami=[ami(0),ami(1),…,ami(h)]

(15)

ami=softmax(ω1tanh(ω2(vi)T))

(16)

其中,ω1∈1×t,ω2∈t×d且t視為可調整超參數。ami(0),…,ami(h)表示各層嵌入表達的權重。tanh引入非線性關聯,而softmax函數用以將各權重進行歸一化。

結合注意力機制,最終使用vi與ami進行加權求和可得到最終系統調用i的關聯關系表達

(17)

3.6.2 邊緣特征信息提取

對于邊緣嵌入向量si∈SN×SL×c, 假定卷積核的數量為m, 每個卷積核Ki∈ks×ks, 其中ks視為可調整的卷積核寬度。對于邊緣嵌入向量經過卷積操作

gi=ELU(reshape(si)*Ki+μi)

(18)

其中,reshape表示將嵌入向量si的維度轉換為二階張量使得reshape(si)∈(SN×SL)×c,*表示卷積操作,μi為誤差。激活函數ELU作為ReLU的改進型其計算公式如下

(19)

由于存在m個卷積核,對于卷積層的輸出進行最大池化操作,最終輸出W∈m

wi=max{gi1,gi2,…,gi(SN×SL)-ks+1}

(20)

W=[w1,w2,…,wm]

(21)

池化層輸出W輸入全連接層,同時引入隨機失活機制如式(23)以防過擬合。隨機失活向量ui∈m

ui~B(m,γ)

(22)

s′i=ELU(ω3?(uiW)+pi)

(23)

其中,ω3∈d×m,d與節點嵌入向量的維度相同。pi∈m為偏差值。

3.7 信息融合層

對于前向傳播層的輸出,使用平均池化操作對節點的相鄰邊緣嵌入向量進行聚合,以節點i為例即

(24)

而后使用聚合向量在此更新節點向量,如式(25)所示

oi=v′i⊕bi

(25)

⊕表示拼接操,拼接后節點的嵌入向量oi∈2d。

3.8 預測層

為完成異常檢測,提出了一個基于潛在空間超球面的判斷方式,其核心思想是通過訓練將大多數的正常實例投影到超球面內,并將異常實例投影到超球面之外。模型損失函數定義為

(26)

其中,ηi∈2d表示一個潛在的超球面中心。初始化方式為計算信息融合層輸出嵌入向量的平均池化結果,并且在之后的計算過程中保持不變。最終,文檔的性質由其運行時各線程產生的系統調用圖進行綜合判斷。

4 實驗分析

4.1 實驗設置

實驗機器使用英特爾酷睿i7-10875H CPU以及16 GB RAM存儲器,操作系統為Windows 7 SP1。所有PDF樣本在Adobe Acrobat DC上運行2分鐘后關閉,運行期間產生的系統調用數據使用NtTracer進行收集。此外,為驗證模型是否足以區分惡意文檔和良性文檔,選擇了4種具有不同歸納偏置的基線算法進行比較,包括RBF核函數的支持向量機(support vector machine,SVM)、k-最近鄰分類器(k-nearest neighbor,KNN)、決策樹(decision tree,DT)、隨機森林(random forest,RF)。同時選擇部分現有的檢測方法[11,23]與檢測工具[24,25]進行對比。

4.2 實驗樣本

本節將說明實驗使用的樣本來源。

4.2.1 良性樣本

良性樣本來源包含3部分:一部分通過編寫爬蟲程序指定Bing搜索引擎的搜索類型為PDF文件進行批量下載,這部分包括357例PDF文檔。但由于這部分文檔可能缺少PDF高級規范中的特征比如嵌入JavaScript腳本、使用PDF增量更新功能等。因此從PDF學習網站[25]上額外下載了30例包含PDF高級功能的樣本。另從Contagio數據集[26]中隨機選取120例良性PDF文檔。所有文檔在使用前均已放入沙箱中進行檢測,確認無惡意行為產生。

4.2.2 惡意樣本

實驗使用的惡意樣本包含兩部分:一部分為從VirusTotal收集的280例惡意PDF文檔,從中將部分有明顯錯誤的17例剔除(明顯錯誤例如含有CVE編號但上傳年份早于CVE中年份,類型為zip文件或圖像文件);另一部分來自Contagio數據集中隨機挑選的40例惡意PDF文檔。所有文檔在使用前放入沙箱監視其執行情況,確定均有惡意行為產生。

4.3 評價標準

實驗所使用的評價指標包括真陽性率(true positive rate,TPR)、假陽性率(false positive rate,FPR)、真陰性率(true negative rate,TNR)、假陰性率(false negative rate,FNR)以及工作特征曲線下面積(area under the receiver operating characteristic,AUROC)。各評價指標的定義如下

TPR=TP/(TP+FN)

FPR=FP/(TN+FP)

TNR=TN/(TN+FP)

FNR=FN/(TP+FN)

AUROC值等于分類器隨機選擇的陽性實例排序高于隨機選擇的陰性實例的概率。具體來說TP(true positives)表示樣本為陽性,模型預測也為陽性的樣本數,即被模型正確識別為惡意的惡意樣本數量。FP(false positives)表示樣本為陰性,模型預測為陽性的樣本數,即實際為良性卻被錯誤識別為惡意的良性樣本數量。TN(true negetives)表示樣本為陰性,模型預測也為陰性的樣本數,這里表示被正確識別的良性樣本數量。FN(false negetives)表示樣本為陽性,模型預測為陰性的樣本數,即實際為惡意文檔卻被錯誤識別為良性的樣本數量。表1為這4項指標的具體含義。

表1 評價指標具體含義

4.4 實驗方法

由于Adobe Acrobat DC閱讀器沒有定時打開與關閉多個PDF文檔的功能,但留有部分用于操作PDF文檔的cmd指令。因此編寫批處理程序循環執行cmd命令以完成相關操作。在使用閱讀器依次打開PDF文檔的同時,使用NtTracer追蹤產生的系統調用數據,每個文檔在運行2 min后關閉。收集到的系統調用數據存入MySQL數據庫中。之后編寫程序對系統調用數據按照線程劃分,并構造相應的系統調用圖。進一步地對各系統調用圖使用所提出圖采樣策略保留關鍵信息,而后借助pytorch框架編寫圖神經網絡以及深度學習相應程序進行模型的訓練與檢測。實驗中的爬蟲程序、系統調用圖構建程序、圖采樣程序以及模型的訓練與檢測程序均使用python編寫,代碼量約為15 K行。而批處理程序則使用DOS命令,系統調用數據存取以及按照線程進行劃分時使用SQL語言完成相應功能。在訓練與檢測過程中,記錄了模型各階段的用時情況用于后續性能評估。

4.5 惡意文檔檢測實驗

作為異常檢測模型,實驗中的訓練數據均為良性樣本,即僅使用正常PDF文檔進行訓練。模型的參數設置見表2。

表2 模型參數

最終根據測試結果對各方法進行評估,結果見表3。實驗中各方法均使用相應庫中默認參數。性能評估時使用TPR、FPR、TNR、FNR以及AUROC作為評價標準,記錄不同方法的訓練用時,并對產生誤報的樣本進行深入分析。

表3 不同方法的檢測結果與訓練開銷

從表3中可以看出DGNN的訓練時間略長于RF和RBF算法,但總體上相較于其它對比算法仍有明顯優勢。此外模型在TPR、FPR以及AUROC等指標上相較于其它算法有著更好的表現,一方面這得益于圖神經網絡的數據擬合和刻畫能力,另一方面也得益于深度學習模塊對于邊緣信息的特征提取能力。4種基線算法在訓練用時上具有顯著優勢,除RF算法之外其余基線算法的AUROC等指標均不夠理想。SFEM[4]作為一種基于文檔結構路徑特征的靜態檢測方法,通過深入分析PDF的結構特征,豐富文檔的判別特征,最終取得較高的AUROC值,但目前存在較多的針對基于結構特征檢測的繞過手段。PLATPAL[11]借助異構冗余的思想設置多種系統環境并進行文檔行為對比以完成檢測,取得0.9238的AUROC值,但這種方式也不可避免地造成較高的系統開銷。PJScan[23]與QuickSand[24]作為目前較為流行的文檔檢測工具雖然有著較小的訓練開銷,但由于PJScan[23]主要檢測嵌入JavaScript的惡意PDF文檔,其檢測效果仍有待提升。而QuickSand[24]的訓練用時為89.41 s,AUROC值為0.8983,相較于DGNN仍有明顯差距。

此外,為研究以H指數作為有偏游走轉移概率計算依據的有效性,使用節點度以及核數在原模型基礎上作為新的偏置計算依據展開對比實驗。實驗中同樣使用匹配機制,確保以更大概率優先選擇節點度或核數較小的點作為游走的轉移節點,這部分的原因和原策略中傾向于選擇H指數較小的節點轉移節點的原因一樣,符合惡意活動中系統調用的頻率特性。實驗中同樣測試了不同數量的訓練樣本下模型的檢測效果結果如圖4所示。

圖4 3種采樣策略的AUROC值

從圖4中可以看出,當選用核數作為偏置計算依據時,模型的AUROC值與選擇H指數作為偏執計算依據時的值差距很小,但當使用節點度作為替換時,模型的AUROC值均未超過80%,這與度的適應性有關,盡管度仍作為衡量節點中心性的重要估計指標,但實際上節點度在諸多場合下并非量化節點影響的精確中心性度量。

為進一步衡量3種指標分別作為有偏游走偏置計算依據時的系統開銷,記錄了3種方式下的模型的圖采樣時間見表4。

表4 不同檢測方式的檢測結果與訓練開銷

結合圖4以及表4可以看出,盡管核數作為偏置依據時其檢測效果與H指數相近,甚至略優于以H指數為依據的采樣方式。但相比于H指數,核數由于在計算時需要全局拓撲信息,其計算開銷遠遠超過H指數的計算開銷。綜合以上討論,最終選擇H指數作為游走偏置的計算依據用以完成圖采樣工作。

4.6 消融實驗

本文根據模型的不同部分設置了3種變體以展開消融實驗,以驗證模型的有效性。各變體的對比實驗結果如圖5所示。

圖5 消融實驗對比分析

(1)DGNN-1:模型不使用邊緣特征信息,僅使用圖卷積神經網絡中節點向量表示用以完成檢測工作。此情況下將式(25)改為oi=v′i, 其余部分保持不變。

(3)DGNN-3:模型僅使用邊緣特征信息完成檢測工作。此情況下將式(25)改為oi=bi, 其余部分保持不變。

實驗使用TPR、FPR、TNR、FNR作為評價指標,同時對3種變體以及原模型的檢測結果進行對比。從圖5中可以看出,DGNN-1相比DGNN-2加入了注意力機制,并且檢測結果優于后者,這說明模型中引入的注意力機制對于文檔的檢測效果提升是有效的。DGNN-3僅使用深度學習技術利用邊緣特征信息完成檢測,未與圖卷積神經網絡中的節點嵌入信息相結合,實驗檢測效果相比于前兩者略低。而DGNN-1僅使用了圖卷積網絡的節點嵌入,沒有使用邊緣特征進行深度學習,效果與DGNN相比仍存在明顯差距。DGNN-1、DGNN-3與DGNN的實驗結果共同說明了模型將圖卷積網絡與深度學習相結合策略的有效性。

4.7 部分參數最佳設置

在圖采樣過程中,鄰域擴展距離的選擇對于后續模型訓練與檢測效果影響巨大。適當的擴展距離能夠在有效控制采樣規模的基礎上盡量保留圖的關鍵信息。實驗中同樣對于不同距離的鄰域擴展策略進行了比較,其中的距離均以跳數為單位,結果見表5。

表5 不同擴展距離的檢測結果

當擴展距離為2時,模型的AUROC達到0.9734,此后繼續增大距離AUROC值并無明顯提升,并且需要注意的是當擴展距離過大時會導致采樣圖過于龐大,訓練效率低下,且由于引入大量冗余信息,干擾特征學習過程,影響最終的檢測效果。經過實驗分析,最終認定將模型的鄰域擴展距離設置為2時較為合適。

而在模型的訓練與檢測過程中,圖卷積迭代次數是影響最終檢測效果的一個關鍵參數。如果模型訓練時圖卷積的迭代次數過少,則可能無法學習到系統調用之間的潛在聯系,進而導致檢測效果不理想。但如果層數過多,則可能產生難以負擔的系統開銷,所以必須選擇適當的層數以維持開銷與模型準確率之間的平衡。在實驗中選取了1次到7次的迭代次數展開測試。

另一個關系到模型性能的重要參數就是節點向量的維度選擇了。高維度的向量可能承載更多的信息,但是會嚴重影響訓練和檢測效率,低維度向量雖然有更小的開銷,但可能在檢測準確率上略有不足。實驗中節點向量維度范圍為2維至128維。分別以圖卷積迭代次數與節點向量維度為軸,繪制出的結果如圖6所示。

圖6 節點向量維度與圖卷積迭代次數對檢測結果的影響

實驗中以AUROC值作為依據衡量檢測效果,以訓練時間衡量模型的開銷情況。圖6(a)中當節點向量的維度設置為32維,圖卷積迭代次數設置為4次時模型的AUROC值有最大值0.9753。這可能是由于模型中絕大部分的節點存在3跳至4跳的路徑,因而AUROC值最高。但綜合考慮訓練時間的影響,最終選擇節點向量的維度設置為16維,圖卷積迭代次數設置為2次,此時相較于AUROC值最大的參數設置而言模型的檢測效果并沒有明顯降低,并且結合圖6(b)中結果來看,選擇該參數設置能夠大幅節省模型的訓練開銷。

4.8 性能分析

在性能測試方面,分別測試了模型在訓練和檢測兩種模式下的不同階段用時情況。

訓練用時主要包括:系統調用序列按線程劃分的處理用時、構建系統調用圖用時、圖采樣用時、迭代更新圖信息用時。而檢測用時除了包括以上部分還包括了綜合各系統調用圖完成文檔性質的判斷的用時。兩階段下各部分的平均用時見表6。

表6 各階段時間開銷

文檔依據其運行時產生線程數的不同則可能有不同數量的系統調用圖與之對應,但在檢測時認定只要產生被判斷為惡意的系統調用圖的文檔即為惡意文檔。需注意的是,雖然訓練和檢測時均有迭代更新圖中信息的需要,但是在訓練階段需要額外對模型的參數進行優化,所以用時更長,但是這部分的系統開銷是一次性的,在后續的檢測時不需要額外花費時間。此外,當前模型的檢測為單線程任務,后續可以考慮使用并行技術進一步縮短模型的檢測用時。

5 討 論

雖然模型在惡意PDF文檔檢測方面取得了良好效果,但實際上該模型仍受以下幾方面因素的限制:

(1)間接攻擊手段。如攻擊者未使用包含惡意有效負載的文檔,而是借助社交工程學等手段來吸引用戶通過文檔內的鏈接下載真正的惡意程序或僅使用PDF文檔完成攻擊鏈中的部分準備工作,此類攻擊方式可能導致檢測失敗。

(2)交互式驅動攻擊。模型僅收集文檔運行時2 min以內產生的系統調用數據,若文檔在限定時間內未接收攻擊指令并且沒有產生惡意行為一樣會使檢測失效。

(3)版本限制。不同的PDF閱讀器和版本也影響著檢測效果,尤其是利用特定版本PDF閱讀器漏洞的惡意文檔攻擊。若文檔所利用的漏洞與運行的閱讀器不符,則會導致攻擊活動失敗,因而不會產生用于執行惡意行為的系統調用數據。

(4)離線檢測。作為一種離線檢測手段,雖然其訓練開銷是一次性的,同樣不需要動態更新或再次訓練,但作為一種離線檢測方式也注定無法動態地提升模型的檢測性能。

6 結束語

本文設計了一種以系統調用圖作為輸入,結合圖神經網絡以及深度學習技術的PDF文檔檢測模型。該模型借助圖神經網絡與深度學習的強大表征能力和學習能力,以系統調用為研究對象,完成文檔檢測工作。同時提出了一種基于H指數及有偏游走策略的圖采樣方式對模型的性能開銷進行優化,將匹配機制引入隨機游走過程中。與傳統的惡意文檔檢測技術相比,本文使用的PDF文檔檢測模型能夠更好地捕捉文檔運行時的特征,具有更高的綜合性能。

后續將針對各類型各版本PDF文檔閱讀器展開進一步實驗,提升模型兼容性與穩定性,進一步降低檢測開銷,同時未來還將探究對模型進行改進以用于實時監測的可能性。

猜你喜歡
線程調用文檔
淺談Matlab與Word文檔的應用接口
有人一聲不吭向你扔了個文檔
核電項目物項調用管理的應用研究
LabWindows/CVI下基于ActiveX技術的Excel調用
淺談linux多線程協作
基于系統調用的惡意軟件檢測技術研究
基于RI碼計算的Word復制文檔鑒別
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
基于上下文定界的Fork/Join并行性的并發程序可達性分析*
利用RFC技術實現SAP系統接口通信
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合