基于图节点关系和图压缩识别Android恶意软件的方法及系统

文档序号:30522705发布日期:2022-06-25 05:31阅读:108来源:国知局
基于图节点关系和图压缩识别Android恶意软件的方法及系统
基于图节点关系和图压缩识别android恶意软件的方法及系统
技术领域
1.本发明涉及计算机技术领域,特别涉及软件分析中的android恶意软件识别方法。具体一种基于图节点关系和图压缩识别android恶意软件的方法及系统,通过静态分析获取被测试android apk中api的调用关系,并基于api调用关系进行被测试android apk间关联关系的综合深度挖掘,最终基于被测试android apk间的关系并结合gcn来实现被测试android apk的分类。


背景技术:

2.android操作系统在全球已得到广泛普及,目前被25亿台移动设备广泛使用,到2021年第二季度,android的全球市场份额已经达到了83.8%。随着android在全球范围的市场急速扩张,它也成为不法分子植入恶意软件的主要目标。cic通过捕获android恶意软件,估算出每天有近12000个新的android恶意软件实例。android恶意软件应用的主要目的是破坏设备的功能或获得未经授权的访问,这将严重侵犯用户的合法权益,甚至给用户和社会带来巨大的利益损失。因此,针对android恶意软件的检测与分类已成为急需解决的问题。
3.在android恶意软件的检测与分类中,学者通常采用动态分析与静态分析两种分析方式。动态分析能捕获程序运行时的动态信息,例如系统调用,敏感api调用等,但在动态分析的程序执行过程中,由于仿真时间与随机事件个数的限制,导致程序的路径覆盖并不完全且时间消耗过多,造成检测准确率与速率降低。静态分析通过反汇编等方式对程序代码进行分析,不需要在程序运行就能提取程序的整体特征进行分析。目前,选取api调用作为android特征进行安卓恶意软件静态分析是当今研究的热点,同时对于基于静态特征的恶意软件检测与家族分类任务而言,使用神经网络的方法总体效果是更优的。由于只需要少量有带标签的样本和大量无标签的样本,半监督学习更适用于现实世界中的应用。gcn作为近年来兴起的热门半监督神经网络分类方法之一,因其在分类精度和效率方面优于其余半监督学习方法的优势,现已有效运用于许多领域与场景之中。近几年,出现了基于图结构并使用gcn分类模型的安卓恶意软件检测与分类方法,例如研究人员gao等人所开发的gdroid:通过将apk与api抽象为图节点,apk与api的调用关系,api与api的共现特征作为关系分别抽象为两种类型的边来构建大型的异构图,最终将该异构图输入gcn模型中进行图节点分类,实现安卓恶意软件检测与分类。但是这些类似的方法普遍存在如下技术问题:
4.1.异构图中存在大量apk之外的节点(例如gdroid中的api节点),这些节点并不用于最终的分类,但它们的存在大量增加了计算复杂度,从而造成了较大的时间消耗与内存空间消耗,即造成计算速率低等问题;
5.2.图中的高阶关系信息被忽略,目前类似的研究中,异构图中所存在的高阶关系信息并没有被有效的提取并合理地表达,从而影响最终的检测分类准确率;
6.3.gcn是处理同构图的模型,当输入为异构网络图时,逻辑结构与图模型不匹配,
使得最终的分类效果受到影响,即造成分类精确率度低的问题;
7.4.在异构图的图结构中,任意两个apk节点间都没有边,所以apk之间的关系度或相似度没有得到直接精确的衡量与表达,同时这不利于gcn模型通过一阶邻域捕获所有apk节点的空间特征,同样会造成gcn分类精确率度低的问题。


技术实现要素:

8.本发明的目的在于提供一种基于图节点关系和图压缩识别android恶意软件的方法及系统,解决现有技术将异构图输入gcn模型进行恶意软件检测与分类,其检测和分类精度低,以及计算速度慢的问题。
9.为了实现上述目的,本发明采用的技术方案为:
10.一种基于图节点关系和图压缩识别android恶意软件的方法,包括如下步骤:
11.步骤1:对被测试android apk文件进行反编译来获取被测试android apk中所调用的api,所有api或选取敏感api构成api列表,其中,android apk表示安卓安装包,api表示应用程序编程接口;
12.步骤2:基于每个android apk对api列表中所有api的调用情况来构造被测试android apk与api间的异构关系图,得到apk-api异构图;
13.步骤3:基于可达关系挖掘的图压缩方法gcrr对apk-api异构图进行节点间关系提取与综合实现维度压缩与异构图到同质图转化,得到apk-apk小型带权同质图的关系矩阵;
14.步骤4:基于android apk对api调用构建android apk的特征矩阵x和apk-apk小型带权同质图的关系矩阵,使用gcn模型对apk-apk小型带权同质图中未打标签的android apk节点进行检测和分类。
15.进一步,所述步骤1的具体步骤为:
16.通过反编译工具,对被测试android apk进行反编译处理得到smali文件;
17.读取smali文件中的smali源码,从而获取被测试android apk中所调用的api,所有api或选取敏感api构成api列表。
18.进一步,所述步骤2的具体步骤为:
19.将api列表中的api和所有被测试android apk映射为大型异构图的节点;
20.节点映射后,根据步骤1反编译获取的api调用信息确立android apk与api的调用关系,并将调用关系映射为异构图的边,构建一个大型的无权重无向大型异构图,即得到apk-api异构图,其中,apk-api异构图包括android apk节点和api节点。
21.进一步,所述步骤3的具体步骤为:
22.步骤3.1:以apk-api异构图中节点之间的可达路径作为可达关系,可达关系的阶数等于可达路径的长度,基于邻接矩阵的无穷幂级数对apk-api异构图中任意一对节点之间的所有可达关系进行提取并综合,即将apk-api异构图转换为异构带权完全图的关系矩阵,即转化为小型带权完全同质图的关系矩阵;
23.步骤3.2:将步骤3.1得到的带权完全图中所有api节点删除,即实现图维度压缩,得到apk-apk小型带权完全同质图的关系矩阵。
24.进一步,所述邻接矩阵的无穷幂级数的公式为:
[0025][0026]
其中,a为apk-api异构图的邻接矩阵,v为apk-api异构图的总节点数,i为单位矩阵,为带自环图的邻接矩阵:a+i;a^代表apk-api异构图转换得到的异构带权完全图的关系矩阵。
[0027]
进一步,所述步骤3.1中每一阶可达关系的权重随阶数的递增而呈指数式递减,即n+1阶可达关系所对应的权重为n阶可达关系所对应的权重的v分之1。
[0028]
一种基于图节点关系和图压缩识别android恶意软件的系统,包括:
[0029]
反编译模块:对被测试android apk文件进行反编译来获取被测试android apk中所调用的api,所有api或选取敏感api构成api列表,其中,android apk表示安卓安装包,api表示应用程序编程接口;
[0030]
构造模块:基于每个android apk对api列表中所有api的调用情况来构造被测试android apk与api间的异构关系图,得到apk-api异构图;
[0031]
转化及压缩模块:基于可达关系挖掘的图压缩方法gcrr对apk-api异构图进行节点间关系提取与综合实现维度压缩与异构图到同质图转化,得到apk-apk小型带权同质图的关系矩阵;
[0032]
分类模块:基于android apk对api调用构建android apk的特征矩阵x和apk-apk小型带权同质图的关系矩阵,使用gcn模型对apk-apk小型带权同质图中未打标签的android apk节点进行检测和分类。
[0033]
进一步,所述反编译模块的具体实现为:
[0034]
通过apktool反编译工具,对被测试android apk进行反编译处理得到smali文件;
[0035]
读取smali文件中的smali源码,从而获取被测试android apk中所调用的api,所有api或选取敏感api构成api列表。
[0036]
进一步,所述构造模块的具体实现为:
[0037]
将api列表中的api和所有被测试android apk映射为大型异构图的节点;
[0038]
节点映射后,根据反编译获取的api确立android apk与api的调用关系,并将调用关系映射为异构图的边,构建一个大型的无权重无向大型异构图,即得到apk-api异构图,其中,apk-api异构图包括android apk节点和api节点。
[0039]
进一步,所述转化及压缩模块的具体实现为:
[0040]
步骤3.1:以apk-api异构图中节点之间的可达路径作为可达关系,可达关系的阶数等于可达路径的长度,基于邻接矩阵的无穷幂级数对apk-api异构图中任意一对节点之间的所有可达关系进行提取并综合,即将apk-api异构图转换为异构带权完全图的关系矩阵,即转化为小型带权完全同质图的关系矩阵;其中,每一阶可达关系的权重随阶数的递增而呈指数式递减,即n+1阶可达关系所对应的权重为n阶可达关系所对应的权重的v分之1。
[0041]
所述邻接矩阵的无穷幂级数的公式为:
[0042][0043]
其中,a为apk-api异构图的邻接矩阵,v为apk-api异构图的总节点数,i为单位矩阵,为带自环图的邻接矩阵:a+i;a^代表apk-api异构图转换得到的异构带权完全图的关系矩阵;
[0044]
步骤3.2:将步骤3.1得到的带权完全图中所有api节点删除,即实现图维度压缩,得到apk-apk小型带权完全同质图的关系矩阵。
[0045]
与现有技术相比,本发明的优点在于:
[0046]
一、本发明提出了gcrr图处理方法(即图压缩方法gcrr),该方法挖掘并综合了apk-api异构图中所有的apk可达关系信息,对其合理进行表征,并且实现了图维度的压缩与图类型的转化,在提升检测与分类精度的同时,实现了任务规模与时间内存消耗的大幅度减小,并且以gcrr为核心步骤设计了一种基于图节点关系和图压缩识别android恶意软件的方法及系统(即安卓恶意软件检测与分类方法gcdroid);实验表明,与现有类似的方法gdroid相比,我们的方法检测准确率从98.07%增长至99.28%,(在明显增长较为困难的情况下,检测精度已明显增长),模型训练等时间消耗仅为现有技术的1/10;
[0047]
二、本发明提出的图压缩方法gcrr可以实现图节点间关系衡量,图压缩,异构图到同质图的转化,该方法以相应的数学理论(主要为矩阵理论)作为基础,具有普适性,同时我们对其也有相关的理论证明作为支撑,所以可以将gcrr拓展到其他具有类似图类性质问题的领域的运用中:如社交网络,知识图谱,推荐系统研究等。
[0048]
三、以图压缩方法gcrr为核心的安卓恶意软件检测与分类方法gcdroid提取了apk之间更高阶的关系,即增强了相似关联度较低的apk之间的关系程度表征,使得检测分类模型的泛化能力与抗老化性得到提升。
附图说明
[0049]
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应该看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0050]
图1为本发明的流程示意图,其中,method表示安卓程序代码中所包含的函数块,w
ii
表示i,j两点间边的权重,class a、class b、class c、class d分别表示android apk所属类别为a、b、c、d。
具体实施方式
[0051]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员
在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0052]
本发明图压缩方法gcrr方法对可达路径进行挖掘并综合android apk节点之间从1至无穷阶数的可达关系信息,考虑了更多更丰富的android apk节点的高阶信息,并通过可达关系信息来对任意一对android apk节点之间的关联程度(相似度)进行了直接有效的表达,同时在对异构图信息进行提取之后,因为任意一对android apk节点之间关系程度信息已经得到表征,便可删除大量android apk之外的节点,完成大型图的压缩,并且实现异构图到同构图的转化,我们的贡献在于,通过开发的图压缩方法gcrr进行图压缩使得安卓恶意软件检测分类的时间消耗骤降,同时压缩得到的小型同构图因为提取并综合了更为丰富的关系信息,反而使得检测分类精度更高,即我们使用更小的图表征了更多更丰富的信息。具体为:
[0053]
一种基于图节点关系和图压缩识别android恶意软件的方法,包括如下步骤:
[0054]
步骤1:对被测试android apk文件进行反编译来获取被测试android apk中所调用的api,所有api或选取敏感api构成api列表,其中,android apk表示安卓安装包,api表示应用程序编程接口;
[0055]
具体步骤为:
[0056]
通过apktool等反编译工具,对被测试android apk进行反编译处理得到smali文件;
[0057]
读取smali文件中的smali源码,从而获取被测试android apk中所调用的api,所有api构成api列表,api列表是参考安卓开发者官网的系统api,或依据构建敏感函数列表来构建的。
[0058]
步骤2:基于每个android apk对api列表中所有api的调用情况来构造被测试android apk与api间的异构关系图,得到apk-api异构图;
[0059]
具体步骤为:
[0060]
将api列表中的api和所有被测试android apk映射为大型异构图的节点;
[0061]
节点映射后,根据步骤1反编译获取的api调用信息确立android apk与api的调用关系,并将调用关系映射为异构图的边,构建一个大型的无权重无向大型异构图,即得到apk-api异构图,其中,apk-api异构图包括android apk节点和api节点。
[0062]
步骤3:基于可达关系挖掘的图压缩方法gcrr对apk-api异构图进行节点间关系提取与综合实现维度压缩与异构图到同质图转化,得到apk-apk小型带权同质图的关系矩阵;
[0063]
具体步骤为:
[0064]
步骤3.1:步骤3.1:以apk-api异构图中节点之间的可达路径作为可达关系,可达关系的阶数等于可达路径的长度,基于邻接矩阵的无穷幂级数对apk-api异构图中任意一对节点之间的所有可达关系进行提取并综合,即将apk-api异构图转换为异构带权完全图的关系矩阵,即转化为小型带权完全同质图的关系矩阵;其中,每一阶可达关系的权重随阶数的递增而呈指数式递减,即n+1阶可达关系所对应的权重为n阶可达关系所对应的权重的v分之1。
[0065]
所述邻接矩阵的无穷幂级数的公式为:
[0066][0067]
其中,a为apk-api异构图的邻接矩阵,v为apk-api异构图的总节点数,i为单位矩阵,为带自环图的邻接矩阵:a+i;a^代表apk-api异构图转换得到的异构带权完全图的关系矩阵。
[0068]
步骤3.2:将步骤3.1得到的带权完全图中所有api节点删除,即实现图维度压缩,得到apk-apk小型带权完全同质图的关系矩阵。即去除a^中api所在的行和列,从而实现维度压缩与异构图到同构图的转化。得到的矩阵为最终apk-apk小型带权同质图所对应的关系矩阵。
[0069]
步骤4:使用gcn模型(采用的是kipf与welling所设计的gcn模型)对apk-apk小型带权同构图中的android apk节点进行检测和分类。即根据android apk对api调用构建android apk的特征矩阵x,特征矩阵x中的元素值为0或1,元素a
ij
表示apki是否含有apij,有则为1,无则为0,将步骤3.2得到的apk-apk小型带权同质图的关系矩阵与android apk的特征矩阵x作为gcn模型的输入,利用图节点的空间特征聚合邻近信息,根据最终嵌入情况对apk-apk小型带权同质图中未打标签的android apk进行检测与分类。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1