【技术实现步骤摘要】
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]实现本专利技术目的的技术 ...
【技术保护点】
【技术特征摘要】
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,分别表示节点之间的调用关...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。