周顯春 肖衡 焦萍萍 鄒琴琴
摘? 要: 針對惡意軟件檢測的準確性和時間效率問題,提出一種基于最大頻繁子圖基因的模糊圖神經網絡檢測模型。首先利用SFFSM-SPIN-MGM方法挖掘惡意軟件函數調用圖的最大頻繁子圖,然后利用模糊圖神經網絡完成惡意軟件同源性檢測。實驗結果表明,該方法具有較強的泛化能力,能夠有效地檢測現有惡意軟件的變種測試集,平均準確率92.1%,平均誤報率4.3%、平均漏報率1.4%。
關鍵詞: 惡意軟件; 動態函數調用圖; 最大頻繁子圖基因; 模糊圖神經網絡
中圖分類號:TP309.5? ? ? ? ? 文獻標識碼:A? ? ? 文章編號:1006-8228(2023)09-14-04
Fuzzy graph neural network detection model based on maximum frequent subgraph genes
Zhou Xianchun, Xiao Heng, Jiao Pingping, Zou Qinqin
(School of Information and Intelligence Engineering, Sanya University, Sanya, Hainan 572022, China)
Abstract: Aiming at the accuracy and time efficiency of malware detection, a fuzzy graph neural network detection model based on the maximum frequent subgraph genes is proposed. It first utilizes the SFFSM-SPIN-MGM method to mine the maximum frequent subgraphs of malware function call graphs, and then uses the fuzzy graph neural network to complete malware homology detection. Experimental results show that this method has strong generalization ability and can effectively detect existing malware variant test sets. The average accuracy rate of this model reaches 92.1%, the average false alarm rate is 4.3%, and the average miss rate is 1.4%.
Key words: malware; dynamic function call graph; maximum frequent subgraph genes; fuzzy graph neural network
0 引言
隨著惡意軟件數量和種類不斷增加,用戶遭受的損失也在不斷加劇。因此,惡意軟件的識別和檢測已成為計算機安全領域的重要研究方向之一。
傳統的惡意軟件檢測方法主要有靜態和動態兩種。這兩種方法都有不足之處。靜態方法難以有效識別未知的變種和新的惡意軟件,動態方法難以獲取惡意軟件的行為信息。大部分的惡意軟件是由同一黑客組織或個人使用混淆技術[1]創建。由于這些惡意軟件通常具有固定的行為和特征,因此可以通過最大頻繁子圖挖掘算法對其進行分類和檢測[2],判斷他們是否屬于同一個惡意軟件家族。
傳統的頻繁子圖挖掘算法主要包括FFSM算法[3]、SPIN算法[4]和MGM算法[5],他們在惡意軟件檢測領域中得到了廣泛應用。FFSM算法基于gSpan算法[6],通過將子圖同構問題轉化為標準鄰接矩陣聯接和擴展操作,解決了同構測試次數和邊擴展算法復雜性問題。SPIN算法和MARGIN算法[7]是經典的頻繁子圖挖掘算法,但前者無法保證找到的最大頻繁子圖一定是全局最優解,且算法復雜度較高,后者則需要消耗大量時間和空間資源進行圖的預處理。
為了提高惡意軟件檢測的準確性和時間效率,本文提出了一種基于最大頻繁子圖基因的模糊圖神經網絡檢測模型。該模型采用SFFSM-SPIN-MGM方法挖掘惡意軟件函數調用圖的最大頻繁子圖,并應用于惡意軟件同源性檢測。與傳統方法不同,本文提出的方法能夠挖掘到全局最優的最大頻繁子圖,并利用模糊圖神經網絡進行惡意軟件同源性檢測,能夠提高惡意軟件檢測的準確性和時間效率。
1 惡意軟件基因的提取
1.1 最大頻繁子圖基因提取流程
最大頻繁子圖挖掘是在頻繁子圖挖掘的基礎上進行的。在該過程中,需要給定一個頻繁子圖集合,并對每個頻繁子圖進行大小計算和過濾。然后,采用CSP模型[8]計算子圖同構,并在Spark平臺上使用SPIN和MGM算法,找到一個不存在超圖的最大頻繁子圖。該流程如圖1所示。
1.2 最大頻繁子圖基因挖掘
首先,本文采用FFSM算法挖掘頻繁子圖。然后,在Spark平臺上改進SPIN-MGM算法,使其能夠并行化挖掘最大頻繁子圖。以下為具體實現步驟。
⑴ 對輸入的兩個圖進行預處理,得到他們的特征向量。
⑵ 將特征向量轉化為Spark RDD,利用Spark的并行計算能力對特征向量進行處理。
⑶ 利用Spark的map-reduce模型,將圖匹配問題轉化為CSP模型,并將CSP模型表示為Spark RDD。
⑷ 利用Spark的分布式計算能力,將CSP模型分發到不同的節點上進行求解。
⑸ 在每個節點上,利用SPIN算法進行局部搜索,并利用MGM算法進行全局搜索。
⑹ 利用Spark的reduce操作,將不同節點得到的結果進行合并,得到最終的解。
2 基于模糊圖神經網絡的子圖近似匹配方法[9]
模糊圖神經網絡(Fuzzy Graph Neural Network,簡稱FGNN)是一種基于模糊數學和神經網絡理論的圖像識別方法。FGNN的結構由四個主要階段組成,分別為S0、S1、S2和S3,如圖2所示。
⑴ 在S0階段,輸入圖形被轉化為帶權無向圖。
⑵ 在S1階段,利用高斯函數計算節點之間的相似度,并將其用鄰接矩陣表示。
⑶ 在S2階段,通過模糊聚類算法將圖像中的節點分為不同的聚類。
⑷ 在S3階段,利用圖神經網絡對每個聚類進行分類,得到最終的識別結果。
FGNN方法通過利用圖像的特征信息,在處理過程中考慮了像素之間的關系和上下文信息,從而提高了圖像識別的準確性。
3 實驗與分析
3.1 惡意軟件檢測模型
圖3展示了一種用于檢測惡意軟件同源性的模型。無論是Windows惡意軟件還是Android惡意軟件,首先通過挖掘惡意軟件的函數調用圖來獲取其特征,接著對特征進行向量轉換,并基于CPS模型創建FP-tree。然后,利用基于Spark框架的FFSM-SPIN-MGM算法(簡稱為SFFSM-SPIN-MGM)對惡意軟件函數調用圖進行處理,從中挖掘出最大頻繁子圖基因。在檢測惡意軟件時,使用模糊圖神經網絡對惡意軟件進行分類。
3.2 實驗數據
⑴ AMD(Android Malware Dataset)數據集是由丹麥奧爾堡大學的研究人員在2016年公開共享的安卓惡意軟件數據集,它是目前公開、共享的最大的安卓惡意軟件數據集之一。AMD數據集包含23,453個惡意軟件樣本和6,092個良性軟件樣本。實驗取樣惡意、正常樣本各2000個。
⑵ http://malware.lu確實是一個公認的惡意代碼樣本庫,一共有4,964,137個Windows惡意軟件樣本,其中包含各種類型的惡意代碼家族,大部分經過了混淆、加殼處理。實驗取樣Mytob、Netsky、Allaple、Bagle、Mydoom、Agobot/Gaobot各10000個。
3.3 實驗結果與分析
通過研究最小支持度、最大頻繁子圖和識別時間等因素與最佳參數值的關系,探討了SFFSM-SPIN-MGM算法中的參數優化問題。此外,我們還對比了四種不同算法在惡意軟件代碼識別方面的效果。
3.3.1 識別指標與最小支持度的關系
從圖4可以看出,當最小支持度在0.02與0.04之間,PR逐漸上升,FNR和率FPR都逐漸下降。這是因為支持度變大,Spark-SPIN-MGM方法挖掘出了惡意軟件最大頻繁子圖擁有更多的共同特征;當最小支持度接近0.04時,PR達到95.1%,FPR達到18.6%,FNR為29.2%;當最小支持度>0.05時,PR,FPR,FNR的值接近平穩。因此,根據分析可知,Spark-SPIN-MGM的最小支持度設置為0.05。
3.3.2 最大頻繁子圖與最小支持度的關系
從圖5可觀察到最小支持度對識別時間的影響程度。當最小支持度在0.02~0.07之間,間隔0.005,最大頻繁子圖數量隨最小支持度變化的趨勢。以0.045為分界點,在小于0.045是,隨著最小支持度的值變大,最大頻繁子圖的數量變小;大于等于0.045之后,最大頻繁子圖的數量基本穩定在208個。
3.3.3 識別時間與最小支持度、Spark架構的關系
從圖6發現最小支持度、Spark架構對識別時間的影響。隨著最小支持度變大,最大頻繁子圖識別時間逐漸減少,大于等于0.045之后,傳統的SPIN-MGM算法最大頻繁子圖識別時間穩定在410s左右,Spark-SPIN-MGM算法最大頻繁子圖識別時間穩定在50.2s。與傳統的算法對比,Spark-SPIN-MGM算法最大頻繁子圖識別時間僅為它的1/8,挖掘效率大幅提升。
3.3.4 算法的識別效果對比
根據準確率、誤報率和漏報率等性能指標對本文提出基于最大頻繁子圖基因的模糊圖神經網絡檢測模型的效果進行了評估,并將其與文獻[10-12]中提出的其他惡意代碼識別方法進行了比較。圖7、圖8顯示了這些方法的性能對比結果。
如圖7、圖8所示,對比與AcessMiner、chi-Squared、SVM 方法,Spark-SPIN-MGM方法平均準確率分別提高了16.5%、17.9%、2.6%,平均誤報率分別降低了0.8%、4.8%、-3.2%;平均漏報率分別降低了0.6%、1.8%、1.5%,不僅說明Spark-SPIN-MGM方法挖掘最大頻繁子圖可以作為惡意軟件的檢測特征,而且SFFSM-SPIN-MGM算法對惡意軟件的檢測效果很好,平均準確率達到92.1%,平均誤報率4.3%、平均漏報率1.4%。
4 結論與展望
本文提出了一種基于最大頻繁子圖基因的模糊圖神經網絡檢測模型。首先,利用Spark-SPIN-MGM對函數調用圖進行最大頻繁子圖挖掘,分別獲得不同惡意軟件且帶有行為信息的惡意軟件基因,接著,利用模糊圖神經網絡進行惡意軟件同源性檢測。實驗結果表明,與其他方法相比,該模型具有較強的泛化能力,能夠有效地識別和分類各種惡意軟件。該模型的平均準確率達到92.1%,平均誤報率4.3%、平均漏報率1.4%。下一步研究的重點是利用人工智能方法,增加函數調用的語義分析,改善子圖所攜帶的惡意軟件行為特征,進一步提升檢測的準確率。
參考文獻(References):
[1] 張宇嘉,張嘯川,龐建民.代碼混淆技術研究綜述[J].信息工程大學學報,2017,18(5):635-640.
[2] 郭方方,王欣悅,王慧強,等.基于最大頻繁子圖挖掘的動態污點分析方法[J].計算機研究與發展,2020,57(3):631-638.
[3] Yan X,Han J.gspan:Graph-based substructure pattern?mining[C]//2002 IEEE International Conference on Data Mining,2002.Proceedings,IEEE,2002:721-724.
[4] Huan J,Wang W,Prins J,et al.Spin:mining maximal?frequent subgraphs from graph databases[C]//Proceedings of the tenth ACM SIGKDD international conference on Knowledge discovery and data mining,2004:581-586.
[5] Yan J, Cho M, Zha H, et al. Multi-graph matching via
affinity optimization with graduated consistency regularization[J]. IEEE transactions on pattern analysis and machine intelligence,2015,38(6):1228-1242.
[6] Thomas L T,Valluri S R,Karlapalem K.Margin:Maximal?frequent subgraph mining[J].ACM Transactions on Knowledge Discovery from Data(TKDD),2010,4(3):1-42.
[7] Agrawal R,Srikant R.Fast algorithms for mining associationrules[C]//Proc. 20th int.conf.very large data bases,VLDB.1994,1215:487-499.
[8] 嚴玉良,董一鴻,何賢芒,等.FSMBUS:一種基于Spark的大規模頻繁子圖挖掘算法[J].計算機研究與發展,2015,52(8):1768-1783.
[9] Krle?a D, Fertalj K. Graph matching using hierarchical?fuzzy graph neural networks[J]. IEEE Transactions on Fuzzy Systems,2016,25(4):892-904.
[10] Fattori A, Lanzi A, Balzarotti D, et al. Hypervisor-based?malware protection with accessminer[J]. Computers & Security,2015,52:33-50.
[11] Toderici A H, Stamp M. Chi-squared distance and?metamorphic virus detection[J]. Journal of Computer Virology and Hacking Techniques,2013,9:1-14.
[12] 董理驊,劉強,陳海明,等.一種基于時間窗口的輕量級實時運動識別算法[J].計算機研究與發展,2017,54(12):2731-2740.