周顯春 肖衡 焦萍萍 鄒琴琴
摘? 要: 針對惡意軟件檢測的準(zhǔn)確性和時(shí)間效率問題,提出一種基于最大頻繁子圖基因的模糊圖神經(jīng)網(wǎng)絡(luò)檢測模型。首先利用SFFSM-SPIN-MGM方法挖掘惡意軟件函數(shù)調(diào)用圖的最大頻繁子圖,然后利用模糊圖神經(jīng)網(wǎng)絡(luò)完成惡意軟件同源性檢測。實(shí)驗(yàn)結(jié)果表明,該方法具有較強(qiáng)的泛化能力,能夠有效地檢測現(xiàn)有惡意軟件的變種測試集,平均準(zhǔn)確率92.1%,平均誤報(bào)率4.3%、平均漏報(bào)率1.4%。
關(guān)鍵詞: 惡意軟件; 動(dòng)態(tài)函數(shù)調(diào)用圖; 最大頻繁子圖基因; 模糊圖神經(jīng)網(wǎng)絡(luò)
中圖分類號:TP309.5? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼: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 引言
隨著惡意軟件數(shù)量和種類不斷增加,用戶遭受的損失也在不斷加劇。因此,惡意軟件的識(shí)別和檢測已成為計(jì)算機(jī)安全領(lǐng)域的重要研究方向之一。
傳統(tǒng)的惡意軟件檢測方法主要有靜態(tài)和動(dòng)態(tài)兩種。這兩種方法都有不足之處。靜態(tài)方法難以有效識(shí)別未知的變種和新的惡意軟件,動(dòng)態(tài)方法難以獲取惡意軟件的行為信息。大部分的惡意軟件是由同一黑客組織或個(gè)人使用混淆技術(shù)[1]創(chuàng)建。由于這些惡意軟件通常具有固定的行為和特征,因此可以通過最大頻繁子圖挖掘算法對其進(jìn)行分類和檢測[2],判斷他們是否屬于同一個(gè)惡意軟件家族。
傳統(tǒng)的頻繁子圖挖掘算法主要包括FFSM算法[3]、SPIN算法[4]和MGM算法[5],他們在惡意軟件檢測領(lǐng)域中得到了廣泛應(yīng)用。FFSM算法基于gSpan算法[6],通過將子圖同構(gòu)問題轉(zhuǎn)化為標(biāo)準(zhǔn)鄰接矩陣聯(lián)接和擴(kuò)展操作,解決了同構(gòu)測試次數(shù)和邊擴(kuò)展算法復(fù)雜性問題。SPIN算法和MARGIN算法[7]是經(jīng)典的頻繁子圖挖掘算法,但前者無法保證找到的最大頻繁子圖一定是全局最優(yōu)解,且算法復(fù)雜度較高,后者則需要消耗大量時(shí)間和空間資源進(jìn)行圖的預(yù)處理。
為了提高惡意軟件檢測的準(zhǔn)確性和時(shí)間效率,本文提出了一種基于最大頻繁子圖基因的模糊圖神經(jīng)網(wǎng)絡(luò)檢測模型。該模型采用SFFSM-SPIN-MGM方法挖掘惡意軟件函數(shù)調(diào)用圖的最大頻繁子圖,并應(yīng)用于惡意軟件同源性檢測。與傳統(tǒng)方法不同,本文提出的方法能夠挖掘到全局最優(yōu)的最大頻繁子圖,并利用模糊圖神經(jīng)網(wǎng)絡(luò)進(jìn)行惡意軟件同源性檢測,能夠提高惡意軟件檢測的準(zhǔn)確性和時(shí)間效率。
1 惡意軟件基因的提取
1.1 最大頻繁子圖基因提取流程
最大頻繁子圖挖掘是在頻繁子圖挖掘的基礎(chǔ)上進(jìn)行的。在該過程中,需要給定一個(gè)頻繁子圖集合,并對每個(gè)頻繁子圖進(jìn)行大小計(jì)算和過濾。然后,采用CSP模型[8]計(jì)算子圖同構(gòu),并在Spark平臺(tái)上使用SPIN和MGM算法,找到一個(gè)不存在超圖的最大頻繁子圖。該流程如圖1所示。
1.2 最大頻繁子圖基因挖掘
首先,本文采用FFSM算法挖掘頻繁子圖。然后,在Spark平臺(tái)上改進(jìn)SPIN-MGM算法,使其能夠并行化挖掘最大頻繁子圖。以下為具體實(shí)現(xiàn)步驟。
⑴ 對輸入的兩個(gè)圖進(jìn)行預(yù)處理,得到他們的特征向量。
⑵ 將特征向量轉(zhuǎn)化為Spark RDD,利用Spark的并行計(jì)算能力對特征向量進(jìn)行處理。
⑶ 利用Spark的map-reduce模型,將圖匹配問題轉(zhuǎn)化為CSP模型,并將CSP模型表示為Spark RDD。
⑷ 利用Spark的分布式計(jì)算能力,將CSP模型分發(fā)到不同的節(jié)點(diǎn)上進(jìn)行求解。
⑸ 在每個(gè)節(jié)點(diǎn)上,利用SPIN算法進(jìn)行局部搜索,并利用MGM算法進(jìn)行全局搜索。
⑹ 利用Spark的reduce操作,將不同節(jié)點(diǎn)得到的結(jié)果進(jìn)行合并,得到最終的解。
2 基于模糊圖神經(jīng)網(wǎng)絡(luò)的子圖近似匹配方法[9]
模糊圖神經(jīng)網(wǎng)絡(luò)(Fuzzy Graph Neural Network,簡稱FGNN)是一種基于模糊數(shù)學(xué)和神經(jīng)網(wǎng)絡(luò)理論的圖像識(shí)別方法。FGNN的結(jié)構(gòu)由四個(gè)主要階段組成,分別為S0、S1、S2和S3,如圖2所示。
⑴ 在S0階段,輸入圖形被轉(zhuǎn)化為帶權(quán)無向圖。
⑵ 在S1階段,利用高斯函數(shù)計(jì)算節(jié)點(diǎn)之間的相似度,并將其用鄰接矩陣表示。
⑶ 在S2階段,通過模糊聚類算法將圖像中的節(jié)點(diǎn)分為不同的聚類。
⑷ 在S3階段,利用圖神經(jīng)網(wǎng)絡(luò)對每個(gè)聚類進(jìn)行分類,得到最終的識(shí)別結(jié)果。
FGNN方法通過利用圖像的特征信息,在處理過程中考慮了像素之間的關(guān)系和上下文信息,從而提高了圖像識(shí)別的準(zhǔn)確性。
3 實(shí)驗(yàn)與分析
3.1 惡意軟件檢測模型
圖3展示了一種用于檢測惡意軟件同源性的模型。無論是Windows惡意軟件還是Android惡意軟件,首先通過挖掘惡意軟件的函數(shù)調(diào)用圖來獲取其特征,接著對特征進(jìn)行向量轉(zhuǎn)換,并基于CPS模型創(chuàng)建FP-tree。然后,利用基于Spark框架的FFSM-SPIN-MGM算法(簡稱為SFFSM-SPIN-MGM)對惡意軟件函數(shù)調(diào)用圖進(jìn)行處理,從中挖掘出最大頻繁子圖基因。在檢測惡意軟件時(shí),使用模糊圖神經(jīng)網(wǎng)絡(luò)對惡意軟件進(jìn)行分類。
3.2 實(shí)驗(yàn)數(shù)據(jù)
⑴ AMD(Android Malware Dataset)數(shù)據(jù)集是由丹麥奧爾堡大學(xué)的研究人員在2016年公開共享的安卓惡意軟件數(shù)據(jù)集,它是目前公開、共享的最大的安卓惡意軟件數(shù)據(jù)集之一。AMD數(shù)據(jù)集包含23,453個(gè)惡意軟件樣本和6,092個(gè)良性軟件樣本。實(shí)驗(yàn)取樣惡意、正常樣本各2000個(gè)。
⑵ http://malware.lu確實(shí)是一個(gè)公認(rèn)的惡意代碼樣本庫,一共有4,964,137個(gè)Windows惡意軟件樣本,其中包含各種類型的惡意代碼家族,大部分經(jīng)過了混淆、加殼處理。實(shí)驗(yàn)取樣Mytob、Netsky、Allaple、Bagle、Mydoom、Agobot/Gaobot各10000個(gè)。
3.3 實(shí)驗(yàn)結(jié)果與分析
通過研究最小支持度、最大頻繁子圖和識(shí)別時(shí)間等因素與最佳參數(shù)值的關(guān)系,探討了SFFSM-SPIN-MGM算法中的參數(shù)優(yōu)化問題。此外,我們還對比了四種不同算法在惡意軟件代碼識(shí)別方面的效果。
3.3.1 識(shí)別指標(biāo)與最小支持度的關(guān)系
從圖4可以看出,當(dāng)最小支持度在0.02與0.04之間,PR逐漸上升,F(xiàn)NR和率FPR都逐漸下降。這是因?yàn)橹С侄茸兇?,Spark-SPIN-MGM方法挖掘出了惡意軟件最大頻繁子圖擁有更多的共同特征;當(dāng)最小支持度接近0.04時(shí),PR達(dá)到95.1%,F(xiàn)PR達(dá)到18.6%,F(xiàn)NR為29.2%;當(dāng)最小支持度>0.05時(shí),PR,F(xiàn)PR,F(xiàn)NR的值接近平穩(wěn)。因此,根據(jù)分析可知,Spark-SPIN-MGM的最小支持度設(shè)置為0.05。
3.3.2 最大頻繁子圖與最小支持度的關(guān)系
從圖5可觀察到最小支持度對識(shí)別時(shí)間的影響程度。當(dāng)最小支持度在0.02~0.07之間,間隔0.005,最大頻繁子圖數(shù)量隨最小支持度變化的趨勢。以0.045為分界點(diǎn),在小于0.045是,隨著最小支持度的值變大,最大頻繁子圖的數(shù)量變??;大于等于0.045之后,最大頻繁子圖的數(shù)量基本穩(wěn)定在208個(gè)。
3.3.3 識(shí)別時(shí)間與最小支持度、Spark架構(gòu)的關(guān)系
從圖6發(fā)現(xiàn)最小支持度、Spark架構(gòu)對識(shí)別時(shí)間的影響。隨著最小支持度變大,最大頻繁子圖識(shí)別時(shí)間逐漸減少,大于等于0.045之后,傳統(tǒng)的SPIN-MGM算法最大頻繁子圖識(shí)別時(shí)間穩(wěn)定在410s左右,Spark-SPIN-MGM算法最大頻繁子圖識(shí)別時(shí)間穩(wěn)定在50.2s。與傳統(tǒng)的算法對比,Spark-SPIN-MGM算法最大頻繁子圖識(shí)別時(shí)間僅為它的1/8,挖掘效率大幅提升。
3.3.4 算法的識(shí)別效果對比
根據(jù)準(zhǔn)確率、誤報(bào)率和漏報(bào)率等性能指標(biāo)對本文提出基于最大頻繁子圖基因的模糊圖神經(jīng)網(wǎng)絡(luò)檢測模型的效果進(jìn)行了評估,并將其與文獻(xiàn)[10-12]中提出的其他惡意代碼識(shí)別方法進(jìn)行了比較。圖7、圖8顯示了這些方法的性能對比結(jié)果。
如圖7、圖8所示,對比與AcessMiner、chi-Squared、SVM 方法,Spark-SPIN-MGM方法平均準(zhǔn)確率分別提高了16.5%、17.9%、2.6%,平均誤報(bào)率分別降低了0.8%、4.8%、-3.2%;平均漏報(bào)率分別降低了0.6%、1.8%、1.5%,不僅說明Spark-SPIN-MGM方法挖掘最大頻繁子圖可以作為惡意軟件的檢測特征,而且SFFSM-SPIN-MGM算法對惡意軟件的檢測效果很好,平均準(zhǔn)確率達(dá)到92.1%,平均誤報(bào)率4.3%、平均漏報(bào)率1.4%。
4 結(jié)論與展望
本文提出了一種基于最大頻繁子圖基因的模糊圖神經(jīng)網(wǎng)絡(luò)檢測模型。首先,利用Spark-SPIN-MGM對函數(shù)調(diào)用圖進(jìn)行最大頻繁子圖挖掘,分別獲得不同惡意軟件且?guī)в行袨樾畔⒌膼阂廛浖?,接著,利用模糊圖神經(jīng)網(wǎng)絡(luò)進(jìn)行惡意軟件同源性檢測。實(shí)驗(yàn)結(jié)果表明,與其他方法相比,該模型具有較強(qiáng)的泛化能力,能夠有效地識(shí)別和分類各種惡意軟件。該模型的平均準(zhǔn)確率達(dá)到92.1%,平均誤報(bào)率4.3%、平均漏報(bào)率1.4%。下一步研究的重點(diǎn)是利用人工智能方法,增加函數(shù)調(diào)用的語義分析,改善子圖所攜帶的惡意軟件行為特征,進(jìn)一步提升檢測的準(zhǔn)確率。
參考文獻(xiàn)(References):
[1] 張宇嘉,張嘯川,龐建民.代碼混淆技術(shù)研究綜述[J].信息工程大學(xué)學(xué)報(bào),2017,18(5):635-640.
[2] 郭方方,王欣悅,王慧強(qiáng),等.基于最大頻繁子圖挖掘的動(dòng)態(tài)污點(diǎn)分析方法[J].計(jì)算機(jī)研究與發(fā)展,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] 嚴(yán)玉良,董一鴻,何賢芒,等.FSMBUS:一種基于Spark的大規(guī)模頻繁子圖挖掘算法[J].計(jì)算機(jī)研究與發(fā)展,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] 董理驊,劉強(qiáng),陳海明,等.一種基于時(shí)間窗口的輕量級實(shí)時(shí)運(yùn)動(dòng)識(shí)別算法[J].計(jì)算機(jī)研究與發(fā)展,2017,54(12):2731-2740.