APP下载

一种基于最大频繁子图基因的模糊图神经网络检测模型

2023-09-25周显春肖衡焦萍萍邹琴琴

计算机时代 2023年9期

周显春 肖衡 焦萍萍 邹琴琴

摘  要: 针对恶意软件检测的准确性和时间效率问题,提出一种基于最大频繁子图基因的模糊图神经网络检测模型。首先利用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.