最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

文檔的風險檢測方法和裝置、存儲介質(zhì)及電子設(shè)備與流程

文檔序號:41952510發(fā)布日期:2025-05-16 14:14閱讀:4來源:國知局
文檔的風險檢測方法和裝置、存儲介質(zhì)及電子設(shè)備與流程

本發(fā)明涉及系統(tǒng)安全,具體而言,涉及一種文檔的風險檢測方法和裝置、存儲介質(zhì)及電子設(shè)備。


背景技術(shù):

1、惡意軟件利用文檔文件的漏洞傳播惡意代碼。文檔類型的惡意軟件本身并不是一個可執(zhí)行文件,所以很容易繞過現(xiàn)有的安全程序,安全程序在檢測文檔類型的惡意軟件時有很高的誤報風險。最常見的惡意文檔類型是pdf(便攜式文檔格式)。javascript是pdf支持的最方便的靈活性之一。pdf中的javascript用于更改文檔內(nèi)容以響應某些事件并限制讀者的操作。例如,預先填寫某些表單字段或驗證輸入的表單字段值。然而,攻擊者可以利用pdf中的javascript將惡意軟件注入pdf文檔。

2、最早的惡意pdf文檔多針對adobe等pdf解析軟件的解析功能缺陷設(shè)計,比如cve-2009-4324就利用了adobe的zl?ib解壓縮功能的uaf漏洞達到代碼執(zhí)行的目的。所以早期的惡意pdf文檔多將其攻擊payload直接內(nèi)嵌在pdf文檔中或者進行簡單的編碼處理。但是隨著js混淆技術(shù)的發(fā)展,開源js混淆器不斷增加,直接對pdf內(nèi)容進行匹配來檢測漏洞利用等惡意pdf文檔類型的方案很容易被代碼混淆行為繞過。而且隨著js混淆器的廣泛使用,直接檢測pdf文檔中js代碼的混淆行為作為pdf惡意文檔的判斷依據(jù)很容易帶來誤報。

3、針對相關(guān)技術(shù)中通過檢測pdf文檔中的js代碼實現(xiàn)風險性檢測,導致對pdf文檔的風險性檢測的準確率比較低的問題,目前尚未提出有效的解決方案。


技術(shù)實現(xiàn)思路

1、本發(fā)明實施例提供了一種文檔的風險檢測方法和裝置、存儲介質(zhì)及電子設(shè)備,以至少解決相關(guān)技術(shù)中通過檢測pdf文檔中的js代碼實現(xiàn)風險性檢測,導致對pdf文檔的風險性檢測的準確率比較低的技術(shù)問題。

2、根據(jù)本發(fā)明實施例的一個方面,提供了一種文檔的風險檢測方法,包括:獲取待檢測的目標文檔,并對所述目標文檔進行結(jié)構(gòu)解析,得到抽象語法樹;依據(jù)所述抽象語法樹執(zhí)行所述目標文檔對應的目標代碼,得到目標執(zhí)行日志,其中,所述目標代碼用于在目標設(shè)備中顯示所述目標文檔;依據(jù)所述目標執(zhí)行日志對所述目標文檔的風險性進行預測,得到預測結(jié)果,其中,所述預測結(jié)果用于表征所述目標文檔是否存在風險。

3、進一步地,依據(jù)所述抽象語法樹執(zhí)行所述目標文檔對應的目標代碼,得到目標執(zhí)行日志包括:在依據(jù)所述抽象語法樹執(zhí)行所述目標文檔對應的目標代碼時,依據(jù)所述抽象語法樹對所述目標代碼進行分類,得到多個類別,其中,所述多個類別至少包括:第一類別、第二類別和第三類別,所述第一類別的目標代碼的風險性低于第二類別的目標代碼的風險性,所述第二類別的目標代碼的風險性低于所述第三類別的目標代碼的風險性;依據(jù)所述目標代碼中的代碼對應的類別,確定所述代碼的執(zhí)行方式,其中,所述執(zhí)行方式為以下之一:真實執(zhí)行,模擬執(zhí)行和推理執(zhí)行,所述推理執(zhí)行是指依據(jù)預設(shè)的推理策略執(zhí)行所述目標代碼中的分支代碼,所述推理策略用于確定待執(zhí)行的分支代碼;依據(jù)所述代碼的執(zhí)行方式和所述抽象語法樹執(zhí)行所述目標文檔對應的目標代碼,得到所述目標執(zhí)行日志。

4、進一步地,依據(jù)所述代碼對應的類別,確定所述代碼的執(zhí)行方式包括:若所述目標代碼中的第一代碼對應的類別為所述第一類別,則確定所述第一代碼的執(zhí)行方式為真實執(zhí)行;若所述目標代碼中的第二代碼對應的類別為所述第二類別,則確定所述第二代碼的執(zhí)行方式為模擬執(zhí)行;若所述目標代碼中的第三代碼對應的類別為所述第三類別,則確定所述第三代碼的執(zhí)行方式為推理執(zhí)行。

5、進一步地,依據(jù)所述代碼的執(zhí)行方式和所述抽象語法樹執(zhí)行所述目標文檔對應的目標代碼,得到所述目標執(zhí)行日志包括:通過所述真實執(zhí)行的執(zhí)行方式和所述抽象語法樹執(zhí)行所述第一代碼,得到第一執(zhí)行日志;通過所述模擬執(zhí)行的執(zhí)行方式和所述抽象語法樹執(zhí)行所述第二代碼,得到第二執(zhí)行日志;通過所述推理執(zhí)行的執(zhí)行方式和所述抽象語法樹執(zhí)行所述第三代碼中的代碼,得到第三執(zhí)行日志;依據(jù)所述第一執(zhí)行日志、所述第二執(zhí)行日志和所述第三執(zhí)行日志,得到所述目標執(zhí)行日志。

6、進一步地,在通過所述推理執(zhí)行的執(zhí)行方式和所述抽象語法樹執(zhí)行所述第三代碼中的代碼,得到第三執(zhí)行日志之前,所述方法還包括:依據(jù)所述目標代碼中的函數(shù)和類的實現(xiàn)環(huán)境搭建所述目標代碼的上下文執(zhí)行環(huán)境;依據(jù)所述抽象語法樹的語言語法搭建所述目標代碼的語法環(huán)境,其中,在所述上下文執(zhí)行環(huán)境和所述語法環(huán)境下執(zhí)行所述目標代碼。

7、進一步地,通過所述推理執(zhí)行的執(zhí)行方式和所述抽象語法樹執(zhí)行所述第三代碼中的代碼,得到第三執(zhí)行日志包括:依據(jù)所述抽象語法樹,確定所述第三代碼中的分支代碼和非分支代碼;依據(jù)所述推理執(zhí)行的執(zhí)行方式執(zhí)行所述分支代碼中的代碼,得到所述分支代碼對應的執(zhí)行日志;依據(jù)所述抽象語法樹執(zhí)行所述非分支代碼,得到所述非分支代碼對應的執(zhí)行日志;依據(jù)所述分支代碼對應的執(zhí)行日志和所述非分支代碼對應的執(zhí)行日志,得到所述第三執(zhí)行日志。

8、進一步地,依據(jù)所述推理執(zhí)行的執(zhí)行方式執(zhí)行所述分支代碼中的代碼,得到所述分支代碼對應的執(zhí)行日志包括:依據(jù)所述預設(shè)的推理策略確定所述分支代碼中需要執(zhí)行的目標分支代碼;確定所述目標分支代碼對應的觸發(fā)條件;依據(jù)所述預設(shè)的推理策略將所述觸發(fā)條件置為真,以執(zhí)行所述目標分支代碼,得到所述分支代碼對應的執(zhí)行日志。

9、進一步地,在依據(jù)所述抽象語法樹執(zhí)行所述目標文檔對應的目標代碼,得到目標執(zhí)行日志之前,所述方法還包括:確定所述目標代碼所涉及的多個函數(shù)和多個類;從所述多個函數(shù)中確定目標函數(shù)以及從所述多個類中確定目標類,其中,所述目標函數(shù)的風險值高于預設(shè)閾值,所述目標類的風險值高于所述預設(shè)閾值;對所述目標函數(shù)和所述目標類進行重寫,得到重寫后的目標函數(shù)和重寫后的目標類,其中,在依據(jù)所述抽象語法樹執(zhí)行所述目標文檔對應的目標代碼時,所述目標代碼通過調(diào)用所述重寫后的目標函數(shù)和所述重寫后的目標類實現(xiàn)所述目標代碼對應的功能。

10、進一步地,對所述目標文檔進行結(jié)構(gòu)解析,得到抽象語法樹包括:對所述目標文檔進行結(jié)構(gòu)解析,得到所述目標文檔對應的目標代碼;通過目標引擎對所述目標代碼進行解析,得到所述目標代碼對應的操作碼信息;依據(jù)所述操作碼信息生成所述抽象語法樹。

11、進一步地,依據(jù)所述目標執(zhí)行日志對所述目標文檔的風險性進行預測,得到預測結(jié)果包括:對所述目標文檔進行結(jié)構(gòu)解析,得到所述目標文檔對應的版本信息和所述目標文檔對應的流信息;依據(jù)目標神經(jīng)網(wǎng)絡模型對所述目標執(zhí)行日志,所述版本信息和所述流信息進行特征提取,得到目標特征信息;通過所述目標神經(jīng)網(wǎng)絡模型基于所述目標特征信息進行風險預測,得到所述預測結(jié)果。

12、根據(jù)本發(fā)明實施例的另一方面,還提供了一種文檔的風險檢測方法,包括:獲取客戶端上傳的待檢測的目標文檔;在云服務器中對所述目標文檔進行結(jié)構(gòu)解析,得到抽象語法樹;依據(jù)所述抽象語法樹執(zhí)行所述目標文檔對應的目標代碼,得到目標執(zhí)行日志,其中,所述目標代碼用于在目標設(shè)備中顯示所述目標文檔;依據(jù)所述目標執(zhí)行日志對所述目標文檔的風險性進行預測,得到預測結(jié)果,其中,所述預測結(jié)果用于表征所述目標文檔是否存在風險;將所述預測結(jié)果返回至所述客戶端。

13、根據(jù)本發(fā)明實施例的另一方面,還提供了一種文檔的風險檢測裝置,包括:獲取單元,用于獲取待檢測的目標文檔,并對所述目標文檔進行結(jié)構(gòu)解析,得到抽象語法樹;執(zhí)行單元,用于依據(jù)所述抽象語法樹執(zhí)行所述目標文檔對應的目標代碼,得到目標執(zhí)行日志,其中,所述目標代碼用于在目標設(shè)備中顯示所述目標文檔;預測單元,用于依據(jù)所述目標執(zhí)行日志對所述目標文檔的風險性進行預測,得到預測結(jié)果,其中,所述預測結(jié)果用于表征所述目標文檔是否存在風險。

14、進一步地,執(zhí)行單元包括:分類子單元,用于在依據(jù)所述抽象語法樹執(zhí)行所述目標文檔對應的目標代碼時,依據(jù)所述抽象語法樹對所述目標代碼進行分類,得到多個類別,其中,所述多個類別至少包括:第一類別、第二類別和第三類別,所述第一類別的目標代碼的風險性低于第二類別的目標代碼的風險性,所述第二類別的目標代碼的風險性低于所述第三類別的目標代碼的風險性;確定子單元,用于依據(jù)所述目標代碼中的代碼對應的類別,確定所述代碼的執(zhí)行方式,其中,所述執(zhí)行方式為以下之一:真實執(zhí)行,模擬執(zhí)行和推理執(zhí)行,所述推理執(zhí)行是指依據(jù)預設(shè)的推理策略執(zhí)行所述目標代碼中的分支代碼,所述推理策略用于確定待執(zhí)行的分支代碼;執(zhí)行子單元,用于依據(jù)所述代碼的執(zhí)行方式和所述抽象語法樹執(zhí)行所述目標文檔對應的目標代碼,得到所述目標執(zhí)行日志。

15、進一步地,確定子單元包括:第一確定模塊,用于若所述目標代碼中的第一代碼對應的類別為所述第一類別,則確定所述第一代碼的執(zhí)行方式為真實執(zhí)行;第二確定模塊,用于若所述目標代碼中的第二代碼對應的類別為所述第二類別,則確定所述第二代碼的執(zhí)行方式為模擬執(zhí)行;第三確定模塊,用于若所述目標代碼中的第三代碼對應的類別為所述第三類別,則確定所述第三代碼的執(zhí)行方式為推理執(zhí)行。

16、進一步地,執(zhí)行子單元包括:第一執(zhí)行模塊,用于通過所述真實執(zhí)行的執(zhí)行方式和所述抽象語法樹執(zhí)行所述第一代碼,得到第一執(zhí)行日志;第二執(zhí)行模塊,用于通過所述模擬執(zhí)行的執(zhí)行方式和所述抽象語法樹執(zhí)行所述第二代碼,得到第二執(zhí)行日志;第三執(zhí)行模塊,用于通過所述推理執(zhí)行的執(zhí)行方式和所述抽象語法樹執(zhí)行所述第三代碼中的代碼,得到第三執(zhí)行日志;第四確定模塊,用于依據(jù)所述第一執(zhí)行日志、所述第二執(zhí)行日志和所述第三執(zhí)行日志,得到所述目標執(zhí)行日志。

17、進一步地,所述裝置還包括:第一搭建單元,用于在通過所述推理執(zhí)行的執(zhí)行方式和所述抽象語法樹執(zhí)行所述第三代碼中的代碼,得到第三執(zhí)行日志之前,依據(jù)所述目標代碼中的函數(shù)和類的實現(xiàn)環(huán)境搭建所述目標代碼的上下文執(zhí)行環(huán)境;第二搭建單元,用于依據(jù)所述抽象語法樹的語言語法搭建所述目標代碼的語法環(huán)境,其中,在所述上下文執(zhí)行環(huán)境和所述語法環(huán)境下執(zhí)行所述第三代碼。

18、進一步地,第三執(zhí)行模塊包括:第一確定子模塊,用于依據(jù)所述抽象語法樹,確定所述第三代碼中的分支代碼和非分支代碼;第一執(zhí)行子模塊,用于依據(jù)所述推理執(zhí)行的執(zhí)行方式執(zhí)行所述分支代碼中的代碼,得到所述分支代碼對應的執(zhí)行日志;第二執(zhí)行子模塊,用于依據(jù)所述抽象語法樹執(zhí)行所述非分支代碼,得到所述非分支代碼對應的執(zhí)行日志;第二確定子模塊,用于依據(jù)所述分支代碼對應的執(zhí)行日志和所述非分支代碼對應的執(zhí)行日志,得到所述第三執(zhí)行日志。

19、進一步地,第一執(zhí)行子模塊包括:第一確定次子模塊,用于依據(jù)所述預設(shè)的推理策略確定所述分支代碼中需要執(zhí)行的目標分支代碼;第二確定次子模塊,用于確定所述目標分支代碼對應的觸發(fā)條件;設(shè)置次子模塊,用于依據(jù)所述預設(shè)的推理策略將所述觸發(fā)條件置為真,以執(zhí)行所述目標分支代碼,得到所述分支代碼對應的執(zhí)行日志。

20、進一步地,所述裝置還包括:第一確定單元,用于在依據(jù)所述抽象語法樹執(zhí)行所述目標文檔對應的目標代碼,得到目標執(zhí)行日志之前,確定所述目標代碼所涉及的多個函數(shù)和多個類;第二確定單元,用于從所述多個函數(shù)中確定目標函數(shù)以及從所述多個類中確定目標類,其中,所述目標函數(shù)的風險值高于預設(shè)閾值,所述目標類的風險值高于所述預設(shè)閾值;重寫單元,用于對所述目標函數(shù)和所述目標類進行重寫,得到重寫后的目標函數(shù)和重寫后的目標類,其中,在依據(jù)所述抽象語法樹執(zhí)行所述目標文檔對應的目標代碼時,所述目標代碼通過調(diào)用所述重寫后的目標函數(shù)和所述重寫后的目標類實現(xiàn)所述目標代碼對應的功能。

21、進一步地,獲取單元包括:第一解析子單元,用于對所述目標文檔進行結(jié)構(gòu)解析,得到所述目標文檔對應的目標代碼;第二解析子單元,用于通過目標引擎對所述目標代碼進行解析,得到所述目標代碼對應的操作碼信息;生成子單元,用于依據(jù)所述操作碼信息生成所述抽象語法樹。

22、進一步地,預測單元包括:第三解析子單元,用于對所述目標文檔進行結(jié)構(gòu)解析,得到所述目標文檔對應的版本信息和所述目標文檔對應的流信息;提取子單元,用于依據(jù)目標神經(jīng)網(wǎng)絡模型對所述目標執(zhí)行日志,所述版本信息和所述流信息進行特征提取,得到目標特征信息;預測子單元,用于通過所述目標神經(jīng)網(wǎng)絡模型基于所述目標特征信息進行風險預測,得到所述預測結(jié)果。

23、根據(jù)本發(fā)明實施例的另一方面,還提供了一種計算機可讀存儲介質(zhì),所述存儲介質(zhì)存儲程序,其中,在所述程序運行時控制所述存儲介質(zhì)所在設(shè)備執(zhí)行上述任意一項所述的文檔的風險檢測方法。

24、根據(jù)本發(fā)明實施例的另一方面,還提供了一種電子設(shè)備,包括存儲器,存儲有可執(zhí)行程序;處理器,用于運行所述程序,其中,所述程序運行時執(zhí)行上述任意一項所述的文檔的風險檢測方法。

25、在本發(fā)明實施例中,采用獲取待檢測的目標文檔,并對目標文檔進行結(jié)構(gòu)解析,得到抽象語法樹;依據(jù)抽象語法樹執(zhí)行目標文檔對應的目標代碼,得到目標執(zhí)行日志,其中,目標代碼用于在目標設(shè)備中顯示目標文檔;依據(jù)目標執(zhí)行日志對目標文檔的風險性進行預測,得到預測結(jié)果,其中,預測結(jié)果用于表征目標文檔是否存在風險的步驟,解決了相關(guān)技術(shù)中通過檢測pdf文檔中的js代碼實現(xiàn)風險性檢測,導致對pdf文檔的風險性檢測的準確率比較低的技術(shù)問題。在本方案中,在確定需要進行風險檢測時,對目標文檔進行結(jié)構(gòu)解析以得到抽象語法樹,然后根據(jù)抽象語法樹執(zhí)行目標文檔的代碼,能夠?qū)崿F(xiàn)對可疑代碼執(zhí)行路徑全覆蓋,并且能夠精準檢測使用加殼、加密、混淆等對抗手段的目標文檔的風險性,進而達到提高對pdf文檔的風險性檢測的準確率的效果。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1