[发明专利]基于敏感子图的安卓恶意软件检测方法及系统在审
申请号: | 202110781344.0 | 申请日: | 2021-07-11 |
公开(公告)号: | CN113626810A | 公开(公告)日: | 2021-11-09 |
发明(设计)人: | 徐建;欧帆 | 申请(专利权)人: | 南京理工大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06K9/62 |
代理公司: | 南京理工大学专利中心 32203 | 代理人: | 陈鹏 |
地址: | 210094 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 敏感 恶意 软件 检测 方法 系统 | ||
1.一种基于敏感子图的安卓恶意软件检测方法,其特征在于,包括以下步骤:
步骤1,生成安卓应用的敏感函数调用图,过程如下:
给定一个包含恶意安卓应用和良性安卓应用的训练样本集合A,分析安卓API的权重分数获得一个敏感API集合S,利用逆向工程工具将所有安卓应用反编译为安卓字节码文件,构造安卓应用的函数调用图,标记图中的敏感API,分别获得每个安卓应用样本的敏感函数调用图;
步骤2,挖掘敏感函数调用图中的敏感子图,过程如下:
获取每个安卓应用函数调用图中每个节点的邻居节点,以敏感函数调用图的一个敏感函数节点为起点深度搜索得到一个初始化子图,根据初始化子图深度搜索周围的邻居子图集合得到敏感子图集合;
步骤3,提取敏感子图的特征和训练分类器,过程如下:
将挖掘出来的敏感子图利用改进的VF2算法进行异构分析,得到互相异构的敏感子图集合特征,映射每个安卓样本挖掘到的敏感子图集合到敏感子图集合特征生成每个安卓样本的0/1特征,并得到一个包含所有安卓样本的特征向量,使用随机森林机器学习算法对安卓应用的特征进行训练得到分类器;
步骤4,识别恶意安卓应用,过程如下:
将待预测的安卓恶意应用按照生成安卓应用的敏感函数调用图,挖掘敏感函数调用图中的敏感子图,提取敏感子图的特征,使用步骤3得到的分类器检测安卓应用。
2.根据权利要求1所述的基于敏感子图的安卓恶意软件检测方法,其特征在于,步骤1生成安卓应用的敏感函数调用图的具体步骤如下:
步骤1.1,给定一个包含恶意安卓应用和良性安卓应用的训练样本集合A={apk1,apk2,apk3,...,apkm};
步骤1.2,利用Pscout和SuSi工具分析计算安卓API的权重分数获得一个敏感API集合S={s1,s2,s3,...,sn};
步骤1.3,利用逆向工程工具apktool将所有安卓应用反编译为安卓字节码文件,构造安卓应用的函数调用图,标记图中的敏感API,得到敏感函数调用图其中FS表示敏感函数调用图包含的敏感API集合为步骤1.2得到的敏感API函数集合的子集,N表示图中的节点集合,E表示图中的边集合,将每个安卓训练样本构造敏感函数调用图得到敏感函数调用图集合SSFCG={SFCG1,SFCG2,SFCG3,...,SFCGm},每个敏感函数调用图与安卓训练样本为一一映射关系
3.根据权利要求1所述的基于敏感子图的安卓恶意软件检测方法,其特征在于,步骤2挖掘敏感函数调用图中的敏感子图的具体步骤如下:
步骤2.1,获取每个安卓应用函数调用图中每个节点v的邻居节点neigh(v)={v1,v2,v3,...,vn};
步骤2.2,以敏感函数调用图的一个敏感API节点为起点深度搜索得到一个初始化SSG子图,其中敏感子图SSG是一个SFCG的嵌入式子图,表示如下公式所示,其中SS为敏感子图的敏感API集合,为其所属的SFCG的敏感API集合的子集,SN为敏感子图的节点集合,为其所属的SFCG的节点子集,SE为敏感子图的边集合,为其所属的SFCG的边集合的子集
步骤2.3,根据初始化子图深度搜索周围的邻居子图集合,当最后搜索到的敏感子图节点的邻居子图均已经访问过且没有前继节点则搜索停止,这个过程中搜索到的所有x个SSG子图作为安卓应用a的敏感子图集合SSG(apki)={SSG1,SSG2,SSG3,...,SSGx|1≤i≤m}。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京理工大学,未经南京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110781344.0/1.html,转载请声明来源钻瓜专利网。