本技術涉及深度學習,具體涉及一種惡意代碼檢測方法、裝置、設備及存儲介質。
背景技術:
1、對于以瀏覽器和網(wǎng)頁作為傳播渠道的惡意代碼的檢測,早期多從語法、語義層面理解程序行為,采用的檢測方法主要是與惡意代碼庫的源程序或二進制碼進行掃描匹配。但惡意代碼的數(shù)量和種類越來越多,且隨著代碼混淆、代碼變異和加密技術的發(fā)展與應用,使得對惡意代碼的收集、分類、錄入、分析及評估的工作量日漸增加,對惡意代碼檢測的研究方向也逐漸轉移到自動化或半自動化的方式上。目前較為流行的方式包括兩大類,分別是基于操作碼序列特征的機器學習方法,以及通過反編譯得到的十進制整型數(shù)據(jù)構成的灰度圖,采用圖像特征提取技術進行預測與分類的方法。但兩類方法皆僅考慮了操作碼序列特征或者圖像紋理特征,特征維度單一,不能體現(xiàn)內(nèi)部信息壓縮和加密等對預測結果的影響。此外,深度學習模型本身的“黑盒性”導致模型的輸入數(shù)據(jù)與預測結果之間因果無法推理的問題,從而使得深度學習模型基于單一維度特征得到的預測結果不具有可解釋性,只能檢測源代碼中是否包含惡意代碼,以及包含的惡意代碼的類型,而無法確定哪些屬于惡意操作的代碼,從而無法估計檢測結果的有效性和可靠性。
技術實現(xiàn)思路
1、本技術實施例提供一種惡意代碼檢測方法、裝置、設備及存儲介質,用以解決現(xiàn)有的深度學習模型對惡意代碼的檢測不具有可解釋性,只能給出檢測到的惡意代碼的類型,而無法確定源代碼中哪些屬于惡意代碼,導致對檢測結果的有效性和可靠性無法估計的技術問題。
2、第一方面,本技術實施例提供一種惡意代碼檢測方法,包括:
3、獲取待檢測的源代碼,并對所述源代碼進行格式轉化,得到所述源代碼對應的灰度圖像;
4、將所述灰度圖像輸入到經(jīng)過預訓練的代碼檢測模型中,獲取所述代碼檢測模型對所述灰度圖像的預測結果;
5、對所述預測結果進行反向傳播,計算所述代碼檢測模型中任意兩個相鄰的特征層之間的相關分數(shù)矩陣;
6、根據(jù)所述相關分數(shù)矩陣,檢測所述源代碼中的惡意代碼。
7、在一個實施例中,所述對所述預測結果進行反向傳播,計算所述代碼檢測模型中任意相鄰的兩個特征層之間的相關分數(shù)矩陣,包括:
8、對所述預測結果進行反向傳播,在反向傳播方向上從所述代碼檢測模型的各特征層中按照順序確定第一特征層;
9、計算所述第一特征層中的第一目標神經(jīng)元與第二特征層中各第二目標神經(jīng)元的相關分數(shù),根據(jù)所述相關分數(shù)得到所述第一特征層和所述第二特征層之間的相關分數(shù)矩陣;
10、其中,所述第一目標神經(jīng)元是所述第一特征層中的任意一個,所述第二目標神經(jīng)元是所述第二特征層中的任意一個;所述第二特征層與所述第一特征層相鄰,且在所述反向傳播方向上,所述第二特征層是所述第一特征層的后一層;
11、將所述第二特征層作為第一特征層,返回并執(zhí)行所述計算所述第一特征層中的第一目標神經(jīng)元與第二特征層中各第二目標神經(jīng)元的相關分數(shù)的步驟,直到所述第一特征層是所述代碼檢測模型的輸入層為止。
12、在一個實施例中,所述計算所述第一特征層中的第一目標神經(jīng)元與第二特征層中各第二目標神經(jīng)元的相關分數(shù),包括:
13、獲取所述第一特征層中的第一目標神經(jīng)元的第一輸出值、所述第一特征層的第一參數(shù)矩陣和所述第二特征層的參數(shù)矩陣;所述第一參數(shù)矩陣包括所述第一特征層中神經(jīng)元的權重值,所述第二參數(shù)矩陣包括所述第二特征層中各神經(jīng)元的權重值;
14、基于所述第二參數(shù)矩陣,計算所述第一輸出值與所述第二特征層中各第二目標神經(jīng)元的權重值的乘積,得到第一特征值;
15、基于所述第一參數(shù)矩陣,計算所述第一特征層中各神經(jīng)元的輸出值的加權和,得到第二特征值;
16、根據(jù)所述第一特征值與所述第二特征值的比值,確定所述第一目標神經(jīng)元與各所述第二目標神經(jīng)元之間的相關分數(shù)。
17、在一個實施例中,所述根據(jù)所述相關分數(shù)矩陣,檢測所述源代碼中的惡意代碼,包括:
18、對所述相關分數(shù)矩陣進行標準化處理,并基于標準化處理后的相關分數(shù)矩陣構建所述灰度圖像對應的相關分數(shù)圖;
19、根據(jù)所述相關分數(shù)圖確定所述灰度圖像中對所述預測結果貢獻度最高的目標區(qū)域;
20、根據(jù)所述目標區(qū)域對所述源代碼進行索引,確定所述源代碼中的惡意代碼。
21、在一個實施例中,所述根據(jù)所述相關分數(shù)矩陣,檢測所述源代碼中的惡意代碼之后,還包括:
22、根據(jù)所述預測結果確定所述灰度圖像的目標類別;
23、獲取所述目標類別對應的模板圖像,以及所述模板圖像對應的相關分數(shù)矩陣;所述模板圖像是基于對所述代碼檢測模型的訓練結果,從訓練樣本中選取的在所述目標類別下的預測概率最高的樣本圖像;
24、計算所述灰度圖像對應的相關分數(shù)矩陣與所述模板圖像的相關分數(shù)矩陣之間的海塞向量積,以確定所述灰度圖像與所述模板圖像的相似度;
25、對所述灰度圖像中的第一對照區(qū)域進行標記,得到對所述灰度圖像的對照解釋信息;其中,所述第一對照區(qū)域與所述模板圖像中的第二對照區(qū)域的相似度高于預設閾值。
26、在一個實施例中,所述對所述源代碼進行格式轉化,得到所述源代碼對應的灰度圖像,包括:
27、對所述源代碼進行反編譯,生成所述源代碼對應的二進制文件;
28、對所述二進制文件進行提取,并以預設字節(jié)數(shù)為一組,將提取的二進制數(shù)據(jù)轉化為十進制數(shù)據(jù);
29、基于預設寬度對應的字節(jié)數(shù),將所述十進制數(shù)據(jù)對應的一維向量轉化為二維矩陣;
30、基于所述二維矩陣生成所述源代碼對應的灰度圖像。
31、在一個實施例中,所述惡意代碼檢測方法,還包括:
32、獲取樣本代碼文件;所述樣本代碼文件包括惡意代碼文件,所述惡意代碼文件中的源代碼包含已知的惡意代碼;所述樣本代碼文件包含標簽數(shù)據(jù),所述標簽數(shù)據(jù)用于表征所述樣本代碼文件的類別;
33、生成所述樣本代碼文件的散列值,基于所述樣本代碼文件和所述散列值構建代碼文件庫,基于所述散列值和所述樣本代碼文件的標簽數(shù)據(jù)構建標記數(shù)據(jù)庫;
34、基于所述代碼文件庫對所述樣本代碼文件進行格式轉化,得到所述樣本代碼文件對應的樣本灰度圖像;
35、基于所述樣本灰度圖像和所述標記數(shù)據(jù)庫構建樣本數(shù)據(jù)集,并利用所述樣本數(shù)據(jù)集對預設的基礎檢測模型進行迭代訓練,得到第一檢測模型;
36、對所述第一檢測模型進行重參數(shù)化處理,得到經(jīng)過預訓練的代碼檢測模型。
37、第二方面,本技術實施例提供一種惡意代碼檢測裝置,包括:
38、轉化模塊,用于獲取待檢測的源代碼,并對所述源代碼進行格式轉化,得到所述源代碼對應的灰度圖像;
39、預測模塊,用于將所述灰度圖像輸入到經(jīng)過預訓練的代碼檢測模型中,獲取所述代碼檢測模型對所述灰度圖像的預測結果;
40、解釋模塊,用于對所述預測結果進行反向傳播,計算所述代碼檢測模型中任意兩個相鄰的特征層之間的相關分數(shù)矩陣;
41、檢測模塊,用于根據(jù)所述相關分數(shù)矩陣,檢測所述源代碼中的惡意代碼。
42、第三方面,本技術實施例提供一種電子設備,包括處理器和存儲有計算機程序的存儲器,所述處理器執(zhí)行所述程序時實現(xiàn)第一方面所述的惡意代碼檢測方法的步驟。
43、第四方面,本技術實施例提供一種非暫態(tài)的計算機可讀存儲介質,其上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)第一方面所述的惡意代碼檢測方法的步驟。
44、第五方面,本技術實施例提供一種計算機程序產(chǎn)品,包括計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)第一方面所述的惡意代碼檢測方法的步驟。
45、本技術實施例提供的惡意代碼檢測方法、裝置、設備及存儲介質,通過獲取待檢測的源代碼,并對所述源代碼進行格式轉化,得到源代碼對應的灰度圖像并將其輸入到經(jīng)過預訓練的代碼檢測模型中,得到對灰度圖像的預測結果;對該預測結果進行反向傳播,計算代碼檢測模型中任意兩個相鄰的特征層之間的相關分數(shù)矩陣;根據(jù)得到的相關分數(shù)矩陣,檢測源代碼中的惡意代碼。通過對預測結果進行反向傳播,不僅可以對源代碼中包含的惡意代碼及其類型進行檢測,還可以對檢測過程進行解釋,確定與檢測結果相關性較高的部分,通過反向索引對惡意代碼進行定位,從而確定源代碼中哪些屬于惡意操作的代碼,確保檢測結果的可靠性和有效性。