一种基于图编辑距离的恶意软件检测方法技术

技术编号:24010957 阅读:35 留言:0更新日期:2020-05-02 01:43
本发明专利技术提出一种基于图编辑距离的恶意软件检测方法,在保证一定准确率的情况下,提升了图编辑距离的计算效率。该方法包括:从恶意软件的apk文件中提取静态的函数调用图;根据所述静态的函数调用图中的敏感API函数提取得到敏感子图;采用禁忌搜索算法计算所述敏感子图的图编辑距离;根据所述图编辑距离对软件进行检测。

A malware detection method based on graph editing distance

【技术实现步骤摘要】
一种基于图编辑距离的恶意软件检测方法
本专利技术属于恶意软件攻击
,具体涉及一种基于图编辑距离的恶意软件检测方法。
技术介绍
将函数调用图作为软件特征进行恶意软件的检测是近年来较为流行的方式,相比于其他方式更能准确代表软件的行为和意图。目前将函数调用图作为软件特征并进行检测主要分为如下几种:(1)函数调用图的整体信息。这是对函数调用图信息的简单提取,包括图的节点和边的数量等,作为应用软件的特征向量。LeeYR等使用二进制可执行文件中的函数调用图的结构信息,即将函数调用图看作是控制流图(CFG),采用CFG的四元组信息,即CFG的块总数,CFG中的边缘总数,引用其他函数的边的总数,以及函数的大小(函数中的指令数),作为函数调用图的结构信息进行调用图的函数匹配,并用软件家族内部和家族间的相似性对比实验验证了该特征的有效性。(2)函数调用图之间的图编辑距离。该方法将两个应用软件的函数调用图的编辑距离作为相似度。这种特征计算方法的优点是准确率比较高,缺点是直接计算图编辑距离是一个NP难题,因为要计算出所有图编辑操作组合的代价和,才能得到最小图编辑距离,这将使得该方法所需时间、空间资源都非常多,而且不符合现代恶意软件检测的实时性要求。因此,可以通过改善图编辑距离的计算效率,牺牲一定精确度的方式,合理使用图编辑距离作为应用软件的特征。Kostakis等使用模拟退火(SimulatedAnnealing,SA)的方法改善图编辑距离的计算效率,在对软件家族内部和软件家族之间的图编辑距离的计算中得到了非常好的计算效率和准确率。(3)函数调用图里某些特征的直方图。利用函数调用图中的某些特征,如函数结构等,可以获得函数的分布情况,作为函数调用图的特征参与到函数调用图之间相似度的计算中去。GasconH以进程为单位,将基于汇编代码的函数调用转换成直方图,并将n-gram、马尔可夫链结合作为特征,用最短图内核计算图之间的相似度,通过对比实验证明了使用图形的特征表示比使用向量的特征表示得到了更好的分类精度。(4)函数调用路径。该方法从某一特定节点出发,向下或向上查找另一特定节点的调用路径,将这些路径组合成一个应用软件的特征集。在进行两个应用软件的相似度比较时,可以使用字符编辑距离计算两个路径的距离。罗文塽以敏感API为中心,提取函数调用图中的非用户操作序列,得到了很好的召回率。(5)最大公共子图。该方法通过搜索两个应用软件函数调用图中的最大公共子图,并使用剪枝、设置步长等方法增加最大公共子图的容错性和适应性,以最大公共子图的规模作为两个应用软件之间的相似度。该计算方法也是NP难题,需要消耗许多资源。但是在进行软件家族的分类任务时效果较好。(6)最大频繁子图。该方法从函数调用图中提取出现频率较高的子图,作为应用软件的特征。AlirezaK使用图形挖掘算法,从汇编代码的操作码图中提取频繁子图作为程序的微签名,在检测已知软件家族的新成员的实验中获得了良好的效果。在现有的将函数调用图作为软件特征的实验中,大部分研究者都把精力放在了如何计算两个函数调用图之间的相似性方面。函数调用图相似性的计算方法有图编辑距离、频繁子图、最大公共子图、图的同构算法以及基于局部邻域和控制流图的匹配函数等。但图编辑距离和最大公共子图的计算都属于NP难题,在规模较大的图上运行算法会导致时间复杂度非常高。因此一些学者对图编辑距离进行了近似计算,另一些将语言模型n-gram应用于函数调用图的特征向量提取方法,虽然这些方法能提升计算效率,但是准确性会有所下降。在使用函数调用图进行距离计算时,最大的问题就是函数调用图的规模太大。通过以上分析可知,在多种使用图进行距离计算的方法中,图编辑距离的计算在恶意软件检测中效果较好,但是也有不足,即需要的时间和空间资源较多。虽然已经将应用软件的函数调用图进行了化简,但如果使用原始的图编辑距离的计算方法,计算起来仍然需要消耗很多资源。
技术实现思路
本专利技术针对上述问题,提出一种基于图编辑距离的恶意软件检测方法,使用禁忌搜索算法对图编辑距离进行了近似计算,在保证一定准确率的情况下,提升了图编辑距离的计算效率。本专利技术通过以下技术方案实现:一种基于图编辑距离的恶意软件检测方法,包括:从恶意软件的apk文件中提取静态的函数调用图;根据所述静态的函数调用图中的敏感API函数提取得到敏感子图;采用禁忌搜索算法计算所述敏感子图的图编辑距离;根据所述图编辑距离对软件进行检测。所述采用禁忌搜索算法计算所述敏感子图的图编辑距离,具体包括:①根据任意两张所述敏感子图的图编辑代价进行计算,得到代价矩阵;②根据所述代价矩阵构建初始解,并作为当前解的初始值;③交换所述当前解的初始值中随机两个位置的值来搜索邻居解;④根据所述代价矩阵计算所述邻居解的图编辑距离;⑤如果所述邻居解不在禁忌表中,并且它的图编辑距离比当前解的图编辑距离低,则将其作为新的当前解;⑥重复上述3-5步骤m次,m代表一个初始解最多产生邻居解的数量;⑦如果上述产生的当前解的图编辑距离优于全局最优解的图编辑距离,则更新解禁忌,将当前解加入到禁忌表中;⑧重复上述步骤③-⑦n次,n代表n个初始解,得到全局最优解的图编辑距离。本专利技术的有益效果:1、本专利技术基于敏感API函数的调用图化简方法,不仅能够突出程序的真实特征,提升恶意代码检测效率,而且在减少函数调用图规模以后使得计算图编辑距离也变得简单。2、本专利技术使用禁忌搜索算法来近似计算图的编辑距离,改进图编辑距离的计算效率。同时根据函数调用图的代价矩阵特点,构建禁忌搜索算法的初始解,实验结果证明该方法相比于随机初始解效率更高且更稳定。3、对于初始的可行解,传统禁忌搜素算法采用了随机生成的方法,以保证初始时对每一个可行解的公平选择。但是禁忌搜索对于禁忌表的维护规则使得该算法十分依赖于初始解的选择。因此本专利技术利用函数调用图的代价矩阵的特点,提出适合于函数调用图的初始解构造方法。附图说明图1为本专利技术一种基于图编辑距离的恶意软件检测方法流程图。具体实施方式下面结合附图对本专利技术的实施例进行详细的描述。如图1所示,本专利技术的一种基于图编辑距离的恶意软件检测方法,以安卓程序为例,具体包括:步骤一:从安卓恶意应用软件的apk文件中提取静态的函数调用图;本实施例所述的函数调用图是指一个应用软件启动后,在完成特定功能的同时会产生诸多的函数调用,将程序的函数调用按照特定规则连接起来,就形成了包含节点和边的函数调用图。其中,节点代表具体函数名称,边代表调用关系。安卓应用程序一般由三部分组成,分别是工程描述文件AndroidManifest.xml、Java源代码以及各种资源文件。基于此,在本实施例中该步骤具体包括:1、使用android.jar解压apk文件,通过反编译得到Manifest.xml和.dex文件;<本文档来自技高网
...

【技术保护点】
1.一种基于图编辑距离的恶意软件检测方法,其特征在于,包括:/n从恶意软件的apk文件中提取静态的函数调用图;/n根据所述静态的函数调用图中的敏感API函数提取得到敏感子图;/n采用禁忌搜索算法计算所述敏感子图的图编辑距离;/n根据所述图编辑距离对软件进行检测。/n

【技术特征摘要】
1.一种基于图编辑距离的恶意软件检测方法,其特征在于,包括:
从恶意软件的apk文件中提取静态的函数调用图;
根据所述静态的函数调用图中的敏感API函数提取得到敏感子图;
采用禁忌搜索算法计算所述敏感子图的图编辑距离;
根据所述图编辑距离对软件进行检测。


2.如权利要求1所述一种基于图编辑距离的恶意软件检测方法,其特征在于,所述从恶意软件的apk文件中提取静态的函数调用图,具体包括:
2.1、使用android.jar解压apk文件,通过反编译得到Manifest.xml和.dex文件;
2.2、对所述Manifest.xml和.dex文件的生命周期进行模拟和建模,分析所有可能的函数调用路径,构造虚拟主函数dummymain函数;
2.3、建立所述dummymain函数调用的控制流图,并将所述控制流图转化成静态函数调用图。


3.如权利要求2所述一种基于图编辑距离的恶意软件检测方法,其特征在于,使用FlowDroid工具建立所述dummymain函数调用的控制流图。


4.如权利要求2或3所述一种基于图编辑距离的恶意软件检测方法,其特征在于,所述根据所述静态的函数调用图中的敏感API函数提取得到敏感子图,具体包括:
4.1查找所述函数调用图中的dummymain;
4.2从所述dummymain开始,循环迭代寻找所述dummymain下的子树,并记录节点和调用边信息;
4.3将包含敏感API函数的子树加入函数调用图中,得到敏感子图。


5.如权利要求1或2或3所述一...

【专利技术属性】
技术研发人员:张继王勇胡吉双刘振岩彭图林灵
申请(专利权)人:北京理工大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1