基于全局异构图的安卓恶意应用检测方法技术

技术编号:38848814 阅读:12 留言:0更新日期:2023-09-17 09:58
本发明专利技术公开了一种基于全局异构图的安卓恶意应用检测方法,该方法首先进行敏感API调用识别,然后将这些敏感API和数据集中的APK作为异构图中的两类重要节点,根据调用关系构建全局异构图;在该图中主要存在两种类型的边,通过对APK

【技术实现步骤摘要】
FORENSICS AND SECURITY,2017,12(8):1772

1785.)是一种通过敏感子图分析检测恶意应用的方法,该方法生成了敏感子图来描述安卓应用的最可疑行为,然后从敏感子图中构建五个特征用于描述调用模式,最后通过机器学习算法完成检测。HinDroid(Hou S,Ye Y,Song Y,et al.HinDroid:An Intelligent Android Malware Detection System Based on Structured Heterogeneous Information Network[C]//the 23rd ACM SIGKDD International Conference.ACM,2017.)是一种基于异构信息网络对APK、API及其关系进行建模的安卓恶意应用检测方法。该方法建立了三种关系,分别为APK和API的调用关系、API之间的相对位置关系(即是否共存于同一代码块)以及API是否具有相同的包名和方法名。然后,通过元路径计算基于路径的相似度来度量安卓应用之间的相似度,并通过支持向量机进行分类。这种方法的缺点在于构建的特征关系比较表层,基于异构网络中的路径来度量相似度,无法充分挖掘图中的信息。且该方法对所有API进行了分析,而绝大多数API对安卓应用的分类并不具有区分度,通过简单的特征降维来筛选API的解决方法具有局限性。

技术实现思路

[0006]本专利技术的目的在于提供一种基于全局异构图的安卓恶意应用检测方法
[0007]实现本专利技术目的的技术解决方案为:第一方面,本专利技术提供一种基于全局异构图的安卓恶意应用检测方法,包括以下步骤:
[0008]步骤1,生成安卓应用的敏感API调用识别,过程如下:
[0009]给定一个包含恶意安卓应用和良性安卓应用的训练样本集合A,分析安卓API获得一个敏感API候选集合S;利用逆向工程工具将所有安卓应用反编译为安卓字节码文件,对smali文件进行解析,得到安卓应用中的系统API调用情况,并将结果与敏感API候选集合进行匹配,识别每个安卓应用样本中的敏感API调用;
[0010]步骤2,构建一个基于APK和敏感API节点的全局异构图,过程如下:
[0011]图中包含两类节点,APK节点和敏感API节点,反映安卓应用对敏感API的调用;通过调整节点之间的边的权重关系,在图上反映安卓应用的行为模式,设计APK

API边权算法和API

API边权算法,对全局敏感异构图上的边进行权重调整,挖掘安卓应用关于API的行为模式;
[0012]步骤3,构建基于邻居采样的图神经网络和训练模型分类器,过程如下:
[0013]采用基于邻居采样的图神经网络,通过聚合多层网络中的节点嵌入进行迭代更新;在全局异构图中基于目标节点进行多阶邻居采样得到一组邻居节点,将图中针对APK

API,API

API构建的权重分别作为邻居APK节点和邻居API节点的特征,用于初始化图中的嵌入,然后在多层网络中对目标节点的嵌入进行迭代更新,经过训练得到一个可用于恶意应用检测的分类器;
[0014]步骤4,识别恶意安卓应用,过程如下:
[0015]对于待预测的安卓恶意应用进行敏感API调用识别,然后在全局图中新增待检测的APK节点以及一组API调用的边;经过邻居采样将特征输入步骤3获得的分类器模型,即可得到一个分类结果。
[0016]第二方面,本专利技术提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的方法的
步骤。
[0017]第三方面,本专利技术提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的方法的步骤。
[0018]本专利技术与现有的技术相比,其优点在于:(1)综合考虑安卓应用的API语义信息和全局调用图结构信息,具有高可解释性;(2)从全局视角出发,在全局异构图上增加APK与API之间的调用关系特征,并引入敏感系数δ,补充敏感程度信息,减少在良性和恶意应用中都频繁出现的敏感API的干扰因素;(3)从局部视角出发,通过分布式嵌入方法获得API嵌入,并通过嵌入的相似度来衡量API对的共现频率,并将该特征添加到全局异构图中;(4)使用基于邻居采样的图神经网络算法,解决了图神经网络对异构图中节点分类的缺陷,且通过迭代性聚合使得模型保持优秀的检测率。
[0019]下面结合附图对本专利技术作进一步详细描述。
附图说明
[0020]图1是本专利技术基于全局异构图的安卓恶意应用检测的框架流程图。
[0021]图2是在全局异构图上进行邻居采样的示意图。
[0022]图3是基于邻居采样的图神经网络模型的训练过程示意图。
[0023]图4是识别未知恶意安卓应用的示意图。
具体实施方式
[0024]为了充分利用基于图的结构信息分析的优点,并且解决同构图结构复杂分析效率低问题和异构图难以泛化新样本的问题,本专利技术提出一种基于全局异构图的安卓恶意应用检测方法,这种方法能构建以敏感API和APK为节点的异构图,实现面向API的依赖关系建模,并且采用一种基于邻居采样策略改进的图神经网络算法,达到了优于其他方法的检测正确率,是一种具有显著优越性的算法。
[0025]与同构图的方法相比,本专利技术的方法基于一张全局异构图,因此只需进行一张图的构建,过程简化,效率得到了提高;与其他异构图的方法相比,本专利技术基于图神经网络,可以更好地捕获图中的信息,且改进了异构图进入图神经网络的致命缺陷,使其更好地适应实际应用场景。
[0026]本专利技术提出的方法基于异构图,且只关注敏感API调用,因此可以将全局异构图的规模控制在一定的数量级内,不仅避免了大量普通API的无效信息干扰,还简化了计算过程,优化了模型效率。该方法构建以敏感API和APK为节点的异构图,实现面向API的依赖关系建模。分别基于调用关系和API共现模式构建图中APK

API和API

API边的权重,采用一种基于邻居采样策略改进的图神经网络算法,通过迭代聚合计算对图中的APK节点进行嵌入和分类。本专利技术补充了全局视角中APK与API的具体调用关系,通过一种分布式学习算法挖掘局部的API与API之间的特征,且对于单个APK来说这是一种轻量级的精确图构建方法,在保证高检测率的同时还保持了高检测效率。最后,通过邻居采样策略解决了异构图用于安卓恶意应用检测时难以泛化到训练时未出现的样本上的问题,在实际应用场景也能保持令人满意的性能。
[0027]结合图1,一种基于全局异构图的安卓恶意应用检测方法,包括以下步骤:
[0028]步骤1,生成安卓应用的敏感API调用识别,具体步骤如下:
[0029]步骤1.1,给定一个包含恶意安卓应用和良性安卓应用的训练样本集合A={apk1,apk2,a本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于全局异构图的安卓恶意应用检测方法,其特征在于,包括以下步骤:步骤1,生成安卓应用的敏感API调用识别,过程如下:给定一个包含恶意安卓应用和良性安卓应用的训练样本集合A,分析安卓API获得一个敏感API候选集合S;利用逆向工程工具将所有安卓应用反编译为安卓字节码文件,对smali文件进行解析,得到安卓应用中的系统API调用情况,并将结果与敏感API候选集合进行匹配,识别每个安卓应用样本中的敏感API调用;步骤2,构建一个基于APK和敏感API节点的全局异构图,过程如下:图中包含两类节点,APK节点和敏感API节点,反映安卓应用对敏感API的调用;通过调整节点之间的边的权重关系,在图上反映安卓应用的行为模式,设计APK

API边权算法和API

API边权算法,对全局敏感异构图上的边进行权重调整,挖掘安卓应用关于API的行为模式;步骤3,构建基于邻居采样的图神经网络和训练模型分类器,过程如下:采用基于邻居采样的图神经网络,通过聚合多层网络中的节点嵌入进行迭代更新;在全局异构图中基于目标节点进行多阶邻居采样得到一组邻居节点,将图中针对APK

API,API

API构建的权重分别作为邻居APK节点和邻居API节点的特征,用于初始化图中的嵌入,然后在多层网络中对目标节点的嵌入进行迭代更新,经过训练得到一个可用于恶意应用检测的分类器;步骤4,识别恶意安卓应用,过程如下:对于待预测的安卓恶意应用进行敏感API调用识别,然后在全局图中新增待检测的APK节点以及一组API调用的边;经过邻居采样将特征输入步骤3获得的分类器模型,即可得到一个分类结果。2.根据权利要求1所述的基于全局异构图的安卓恶意应用检测方法,其特征在于,步骤1生成安卓应用的敏感API调用识别的具体步骤如下:步骤1.1,给定一个包含恶意安卓应用和良性安卓应用的训练样本集合A={apk1,apk2,apk3,

,apk
m
};步骤1.2,利用SuSi和PScout两种工具对安卓应用进行分析,获得两个敏感API的集合,合并两个工具的结果,作为敏感API候选集合S={s1,s2,s3,

,s
n
};步骤1.3,利用逆向工程工具将所有安卓应用反编译为安卓字节码文件,对smali文件夹下所有的smali文件进行遍历,利用.method指令可位程序中的调用方法,然后通过invoke

*指令提取方法中调用的API;将API调用结果与敏感API集合进行匹配,识别每个安卓应用样本中的敏感API调用。3.根据权利要求2所述的基于全局异构图的安卓恶意应用检测方法,其特征在于,步骤2构建一个基于APK和敏感API节点的全局异构图的具体步骤如下:步骤2.1,构建一个全局异构图来保存APK、API及其之间的依赖关系;图中的节点有两种类型:APK节点和API节点,节点的集合为A∪S,边的类型有两种:APK

API以及API

API,分别表示节点之间的调用关...

【专利技术属性】
技术研发人员:徐建沈丽娜
申请(专利权)人:南京理工大学
类型:发明
国别省市:

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

1