一種惡意文檔檢測方法及裝置與流程
2023-06-03 02:10:06 1

本發明涉及計算機技術領域,具體涉及一種惡意文檔檢測方法及裝置。
背景技術:
惡意文檔在正常的文檔中寫入惡意代碼,利用文檔解析程序的漏洞使惡意代碼執行的文檔。惡意文檔能夠實現攻擊行為是因為:為豐富文檔的展示效果並實現對多種功能的支持,文檔中支持嵌入腳本代碼,允許執行系統調用。惡意文檔檢測起始於對Office文檔宏病毒的檢測。目前,對微軟Office文檔(word、ppt、excel等)和pdf文檔檢測是惡意文檔檢測的重點研究內容。
目前針對惡意文檔的檢測主要通過:提取文檔中的惡意shellcode代碼,利用已有的shellcode代碼特徵庫進行匹配。提取文檔中嵌入的腳本代碼,對腳本代碼中的系統調用進行檢測。在仿真環境下(如沙箱系統)使用文檔閱讀軟體打開文檔,檢測系統狀態和閱讀器軟體的進程行為等。現有的惡意文檔檢測方法中,提取文檔中的結構特徵和元數據特徵,利用機器學習方法訓練出檢測模型,利用訓練出的檢測模型對待測文檔進行檢測。文檔的結構特徵反映了文檔中資源的分布情況,圖1是現有的pdf文檔結構示意圖,圖2是現有的word文檔結構示意圖。元數據特徵包括文檔中嵌入的腳本語言、文檔大小、文檔的生成軟體、文檔中是否有壓縮內容等一系列的屬性特徵。
由於不同文檔的文檔結構不同,並且文檔中支持嵌入的腳本語言也不同(如Office中為VBScript,pdf中為JavaScript)。現有的惡意文檔檢測方法檢測的文檔類型單一,只針對某一特定類型的文檔進行檢測。如果只是組合各種已有的文檔檢測模型來實現多種文檔的統一檢測,需要提取的特徵太多,利用機器學習建立模型或更新模型都需要耗費大量的時間,文檔檢測效率低。
技術實現要素:
本發明實施例提供一種惡意文檔檢測方法及裝置,用於解決現有的惡意文檔檢測方法只能對特定類型的文檔進行檢測的問題。
本發明實施例提供了一種惡意文檔檢測方法,包括:
根據統一化處理後的各個文檔類型的文檔的結構特徵和元數據特徵建立機器學習模型;
獲取待檢測文檔的結構特徵和元數據特徵;
採用通用的結構特徵模型表示所述待檢測文檔的結構特徵,採用通用的元數據特徵模型表示所述待檢測文檔的元數據特徵;
採用所述機器學習模型根據所述待檢測文檔的結構特徵和元數據特徵對所述待檢測文檔進行檢測。
可選地,在所述根據統一化處理後的各個文檔類型的文檔的結構特徵和元數據特徵建立機器學習模型之前,所述方法還包括:
獲取多種文檔類型的文檔對應的結構特徵,將不同文檔類型的相同屬性的結構特徵進行統一命名;
採用通用的結構特徵模型表示各個文檔類型的文檔對應的結構特徵;
獲取多種文檔類型的文檔對應的元數據特徵,將不同文檔類型的相同屬性的元數據特徵進行統一命名;
採用通用的元數據特徵模型表示各個文檔類型的文檔對應的元數據特徵。
可選地,所述獲取待檢測文檔的結構特徵和元數據特徵,包括:
判斷待檢測文檔的文檔類型,根據所述待檢測文檔的文檔類型提取待檢測文檔的結構特徵和元數據特徵。
可選地,所述採用通用的結構特徵模型表示所述待檢測文檔的結構特徵,包括:
採用有向圖表示所述待檢測文檔的結構,使用矩陣表示所述有向圖;
其中,所述矩陣的列表示所述有向圖的各個節點的起點,所述矩陣的行表示所述有向圖的各個節點的終點,用1表示起點到終點可達,用0表示起點到終點不可達。
可選地,所述採用通用的元數據特徵模型表示所述待檢測文檔的元數據特徵,包括:
將所述待檢測文檔中的腳本語言轉換為通用的元數據特徵模型中的中間語言。
本發明實施例提供了一種惡意文檔檢測裝置,包括:
機器學習模型建立單元,用於根據統一化處理後的各個文檔類型的文檔的結構特徵和元數據特徵建立機器學習模型;
特徵獲取單元,用於獲取待檢測文檔的結構特徵和元數據特徵;
特徵統一化單元,用於採用通用的結構特徵模型表示所述待檢測文檔的結構特徵,採用通用的元數據特徵模型表示所述待檢測文檔的元數據特徵;
檢測單元,用於採用所述機器學習模型根據所述待檢測文檔的結構特徵和元數據特徵對所述待檢測文檔進行檢測。
可選地,還包括:
統一化處理單元,用於獲取多種文檔類型的文檔對應的結構特徵,將不同文檔類型的相同屬性的結構特徵進行統一命名;
採用通用的結構特徵模型表示各個文檔類型的文檔對應的結構特徵;
獲取多種文檔類型的文檔對應的元數據特徵,將不同文檔類型的相同屬性的元數據特徵進行統一命名;
採用通用的元數據特徵模型表示各個文檔類型的文檔對應的元數據特徵。
可選地,所述特徵獲取單元進一步用於:
判斷待檢測文檔的文檔類型,根據所述待檢測文檔的文檔類型提取待檢測文檔的結構特徵和元數據特徵。
可選地,所述特徵統一化單元進一步用於:
採用有向圖表示所述待檢測文檔的結構,使用矩陣表示所述有向圖;
其中,所述矩陣的列表示所述有向圖的各個節點的起點,所述矩陣的行表示所述有向圖的各個節點的終點,用1表示起點到終點可達,用0表示起點到終點不可達。
可選地,所述特徵統一化單元進一步用於:
將所述待檢測文檔中的腳本語言轉換為通用的元數據特徵模型中的中間語言。
本發明實施例提供的惡意文檔檢測方法及裝置,根據統一化處理後的各個文檔類型的文檔的結構特徵和元數據特徵建立機器學習模型;獲取待檢測文檔的結構特徵和元數據特徵;採用通用的結構特徵模型表示所述待檢測文檔的結構特徵,採用通用的元數據特徵模型表示所述待檢測文檔的元數據特徵;根據所述機器學習模型對所述待檢測文檔進行檢測。本發明實施例通過將待檢測文檔採用通用的模型進行特徵表示,可以實現對不同類型的文檔的統一檢測,無需針對每一種類型的文檔建立機器學習模型,從而提高了文檔檢測的效率。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是現有的pdf文檔結構示意圖;
圖2是現有的word文檔結構示意圖;
圖3是本發明一個實施例的惡意文檔檢測方法的流程示意圖;
圖4是本發明一個實施例的有向圖的示意圖;
圖5是本發明一個實施例的矩陣的示意圖;
圖6是本發明一個實施例的惡意文檔檢測裝置的結構示意圖。
具體實施方式
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整的描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
圖3是本發明一個實施例的惡意文檔檢測方法的流程示意圖。如圖3所示,該實施例的方法包括:
S31:根據統一化處理後的各個文檔類型的文檔的結構特徵和元數據特徵建立機器學習模型;
需要說明的是,不同文檔類型的文檔具有各自的結構特徵和元數據特徵。本發明實施例將各個文檔類型的文檔結構和元數據進行統一化處理,並根據統一化處理後的結構特徵和元數據特徵建立機器學習模型,無需對每種文檔類型的文檔建立機器學習模型。
S32:獲取待檢測文檔的結構特徵和元數據特徵;
S33:採用通用的結構特徵模型表示所述待檢測文檔的結構特徵,採用通用的元數據特徵模型表示所述待檢測文檔的元數據特徵;
本發明實施例對待檢測文檔也進行特徵的統一化處理,能夠通過同一個機器學習模型高效的實現對多種文檔類型的待檢測文檔的檢測大幅減少建模和模型更新的時間成本。
S34:採用所述機器學習模型根據所述待檢測文檔的結構特徵和元數據特徵對所述待檢測文檔進行檢測。
本發明實施例提供的惡意文檔檢測方法,通過將待檢測文檔採用通用的模型進行特徵表示,可以實現對不同文檔類型的文檔的檢測,無需針對各種文檔類型建立機器學習模型,提高了文檔檢測的效率。
進一步地,在所述根據統一化處理後的各個文檔類型的文檔的結構特徵和元數據特徵建立機器學習模型之前,所述方法還包括:
獲取多種文檔類型的文檔對應的結構特徵,將不同文檔類型的相同屬性的結構特徵進行統一命名;
採用通用的結構特徵模型表示各個文檔類型的文檔對應的結構特徵;
獲取多種文檔類型的文檔對應的元數據特徵,將不同文檔類型的相同屬性的元數據特徵進行統一命名;
採用通用的元數據特徵模型表示各個文檔類型的文檔對應的元數據特徵。
需要說明的是,本發明實施例提取文檔的結構分布,並進行統一命名表示。舉例來說,圖1中的pdf文檔中的Catlog和圖2中的word文檔中的Content_Types為不同文檔類型中相同屬性的結構特徵,將pdf文檔和word文檔中相同屬性的結構特徵均進行統一命名,可得到圖4中的有向圖結構。可以使用矩陣(如圖5所示)表示文檔的結構特徵,圖5中矩陣的列表示所述有向圖的各個節點的起點,所述矩陣的行表示所述有向圖的各個節點的終點,用1表示起點到終點可達,用0表示起點到終點不可達,由此實現了文檔結構統一化處理。
本發明實施例還對多種文檔類型的文檔對應的元數據特徵進行了統一化處理。在實際應用中,將不同文檔類型的相同屬性的元數據特徵進行統一命名,將不同文檔類型對應文檔中的腳本語言轉換為通用的元數據特徵模型中的中間語言。
具體地,所述獲取待檢測文檔的結構特徵和元數據特徵,包括:
判斷待檢測文檔的文檔類型,根據所述待檢測文檔的文檔類型提取待檢測文檔的結構特徵和元數據特徵。
可理解的是,對於不同文檔類型的待檢測文檔,特徵提取的方法不同,所以要先判斷待檢測文檔的類型。
具體地,所述採用通用的結構特徵模型表示所述待檢測文檔的結構特徵,包括:
採用有向圖表示所述待檢測文檔的結構,使用矩陣表示所述有向圖;
其中,所述矩陣的列表示所述有向圖的各個節點的起點,所述矩陣的行表示所述有向圖的各個節點的終點,用1表示起點到終點可達,用0表示起點到終點不可達。
具體地,所述採用通用的元數據特徵模型表示所述待檢測文檔的元數據特徵,包括:
將所述待檢測文檔中的腳本語言轉換為通用的元數據特徵模型中的中間語言。
在實際應用中,對於文檔中的腳本語言,使用同一種中間語言來表示語義。利用編譯原理中語法分析的方法,將不同的腳本語言用同一種中間語言來表示語義。例如JavaScript腳本代碼:
fuction1(『var theval=ev』+『al;』);
fuction2(『var shellcode=this.info』+z(「%46%21%6b%61)+『erss』)。
圖6是本發明一個實施例的惡意文檔檢測裝置的結構示意圖。如圖6所示,本發明實施例的裝置包括機器學習模型建立單元61、特徵獲取單元62、特徵統一化單元63和檢測單元64,具體地:
機器學習模型建立單元61,用於根據統一化處理後的各個文檔類型的文檔的結構特徵和元數據特徵建立機器學習模型;
特徵獲取單元62,用於獲取待檢測文檔的結構特徵和元數據特徵;
特徵統一化單元63,用於採用通用的結構特徵模型表示所述待檢測文檔的結構特徵,採用通用的元數據特徵模型表示所述待檢測文檔的元數據特徵;
檢測單元64,用於採用所述機器學習模型根據所述待檢測文檔的結構特徵和元數據特徵對所述待檢測文檔進行檢測。
本發明實施例提供的惡意文檔檢測裝置,通過將待檢測文檔採用通用的模型進行特徵表示,可以實現對不同文檔類型的文檔的檢測,無需針對各種文檔類型建立機器學習模型,提高了文檔檢測的效率。
可選地,還包括:
統一化處理單元,用於獲取多種文檔類型的文檔對應的結構特徵,將不同文檔類型的相同屬性的結構特徵進行統一命名;
採用通用的結構特徵模型表示各個文檔類型的文檔對應的結構特徵;
獲取多種文檔類型的文檔對應的元數據特徵,將不同文檔類型的相同屬性的元數據特徵進行統一命名;
採用通用的元數據特徵模型表示各個文檔類型的文檔對應的元數據特徵。
特徵獲取單元62進一步用於:
判斷待檢測文檔的文檔類型,根據所述待檢測文檔的文檔類型提取待檢測文檔的結構特徵和元數據特徵。
特徵統一化單元63進一步用於:
採用有向圖表示所述待檢測文檔的結構,使用矩陣表示所述有向圖;
其中,所述矩陣的列表示所述有向圖的各個節點的起點,所述矩陣的行表示所述有向圖的各個節點的終點,用1表示起點到終點可達,用0表示起點到終點不可達。
特徵統一化單元63進一步用於:
將所述待檢測文檔中的腳本語言轉換為通用的元數據特徵模型中的中間語言。
本發明實施例的惡意文檔檢測裝置可以用於執行上述方法實施例,其原理和技術效果類似,此處不再贅述。
本發明實施例提供的惡意文檔檢測方法及裝置,根據統一化處理後的各個文檔類型的文檔的結構特徵和元數據特徵建立機器學習模型;獲取待檢測文檔的結構特徵和元數據特徵;採用通用的結構特徵模型表示所述待檢測文檔的結構特徵,採用通用的元數據特徵模型表示所述待檢測文檔的元數據特徵;根據所述機器學習模型對所述待檢測文檔進行檢測。本發明實施例通過將待檢測文檔採用通用的模型進行特徵表示,可以實現對不同文檔類型的文檔的檢測,無需針對各種文檔類型建立機器學習模型,提高了文檔檢測的效率。
本領域內的技術人員應明白,本發明的實施例可提供為方法、系統、或電腦程式產品。因此,本發明可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本發明可採用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限於磁碟存儲器、CD-ROM、光學存儲器等)上實施的電腦程式產品的形式。
本發明是參照根據本發明實施例的方法、設備(系統)、和電腦程式產品的流程圖和/或方框圖來描述的。應理解可由電腦程式指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些電腦程式指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
需要說明的是術語「包括」、「包含」或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句「包括一個……」限定的要素,並不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
本發明的說明書中,說明了大量具體細節。然而能夠理解的是,本發明的實施例可以在沒有這些具體細節的情況下實踐。在一些實例中,並未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。類似地,應當理解,為了精簡本發明公開並幫助理解各個發明方面中的一個或多個,在上面對本發明的示例性實施例的描述中,本發明的各個特徵有時被一起分組到單個實施例、圖、或者對其的描述中。然而,並不應將該公開的方法解釋呈反映如下意圖:即所要求保護的本發明要求比在每個權利要求中所明確記載的特徵更多的特徵。更確切地說,如權利要求書所反映的那樣,發明方面在於少於前面公開的單個實施例的所有特徵。因此,遵循具體實施方式的權利要求書由此明確地併入該具體實施方式,其中每個權利要求本身都作為本發明的單獨實施例。
以上實施例僅用於說明本發明的技術方案,而非對其限制;儘管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特徵進行等同替換;而這些修改或替換,並不使相應技術方案的本質脫離本發明各實施例技術方案的精神和範圍。