首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】基于敏感子图的安卓恶意软件检测方法及系统_南京理工大学_202110781344.0 

申请/专利权人:南京理工大学

申请日:2021-07-11

公开(公告)日:2024-06-18

公开(公告)号:CN113626810B

主分类号:G06F21/56

分类号:G06F21/56;G06F18/2431;G06F18/214

优先权:

专利状态码:有效-授权

法律状态:2024.06.18#授权;2021.11.26#实质审查的生效;2021.11.09#公开

摘要:本发明公开了一种基于敏感子图的安卓恶意软件检测方法及系统,检测方法包括:生成安卓应用的敏感函数调用图;挖掘敏感函数调用图中的敏感子图;提取敏感子图特征,训练分类器;识别恶意安卓应用。本发明能从安卓应用的代码调用流程中准确分离出与恶意行为相关的函数调用子图,利用机器学习算法检测恶意安卓应用;这种方法能同时结合安卓应用程序的语义信息和结构信息进行分析,有效提升了恶意安卓应用检测的准确率。

主权项:1.一种基于敏感子图的安卓恶意软件检测方法,其特征在于,包括以下步骤:步骤1,生成安卓应用的敏感函数调用图,过程如下:给定一个包含恶意安卓应用和良性安卓应用的训练样本集合A,分析安卓API的权重分数获得一个敏感API集合S,利用逆向工程工具将所有安卓应用反编译为安卓字节码文件,构造安卓应用的函数调用图,标记图中的敏感API,分别获得每个安卓应用样本的敏感函数调用图;生成安卓应用的敏感函数调用图的具体步骤如下:步骤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},每个敏感函数调用图与安卓训练样本为一一映射关系步骤2,挖掘敏感函数调用图中的敏感子图,过程如下:获取每个安卓应用函数调用图中每个节点的邻居节点,以敏感函数调用图的一个敏感函数节点为起点深度搜索得到一个初始化子图,根据初始化子图深度搜索周围的邻居子图集合得到敏感子图集合;挖掘敏感函数调用图中的敏感子图的具体步骤如下:步骤2.1,获取每个安卓应用函数调用图中每个节点v的邻居节点neighv={v1,v2,v3,...,vn};步骤2.2,以敏感函数调用图的一个敏感API节点为起点深度搜索得到一个初始化SSG子图,其中敏感子图SSG是一个SFCG的嵌入式子图,表示如下公式所示,其中SS为敏感子图的敏感API集合,为其所属的SFCG的敏感API集合的子集,SN为敏感子图的节点集合,为其所属的SFCG的节点子集,SE为敏感子图的边集合,为其所属的SFCG的边集合的子集 步骤2.3,根据初始化子图深度搜索周围的邻居子图集合,当最后搜索到的敏感子图节点的邻居子图均已经访问过且没有前继节点则搜索停止,这个过程中搜索到的所有x个SSG子图作为安卓应用a的敏感子图集合SSGapki={SSG1,SSG2,SSG3,...,SSGx|1≤i≤m};步骤3,提取敏感子图的特征和训练分类器,过程如下:将挖掘出来的敏感子图利用改进的VF2算法进行异构分析,得到互相异构的敏感子图集合特征,映射每个安卓样本挖掘到的敏感子图集合到敏感子图集合特征生成每个安卓样本的01特征,并得到一个包含所有安卓样本的特征向量,使用随机森林机器学习算法对安卓应用的特征进行训练得到分类器;提取敏感子图的特征和训练分类器,步骤如下:步骤3.1,将所有安卓应用样本中挖掘出来的敏感子图利用改进的VF2算法进行异构分析,对于任意两个敏感子图SSG1,SSG2,应用五种语义规则检查敏感子图的异构性Mstc:MstcSSG1,SSG2=Rpre∧Rsuc∧Rin∧Rout∧Rnew其中规则Rpre和Rsuc检查两个敏感子图映射点对的一致性,规则Rin和Rout剪枝两个敏感子图的节点,规则Rnew对两个敏感子图进行第二轮剪枝,五个规则一起用于检查敏感子图的异构性;步骤3.2,由步骤3.1算法对所有的敏感子图进行异构分析,得到互相异构的敏感子图集合特征y为所有异构的敏感子图个数;步骤3.3,映射每个安卓样本挖掘到的敏感子图集合到敏感子图集合特征生成每个安卓样本的01特征,安卓应用类型表示为Typeapk={0|1},0表示良性安卓应用,1表示恶意安卓应用,安卓样本apki|1≤i≤m的特征为综合所有安卓样本的特征,合并得到一个包含m个安卓应用的特征向量矩阵步骤3.4,使用随机森林二元分类算法对步骤3.3得到的特征向量矩阵进行训练得到分类器Classifier;步骤4,识别恶意安卓应用,过程如下:将待预测的安卓恶意应用按照生成安卓应用的敏感函数调用图,挖掘敏感函数调用图中的敏感子图,提取敏感子图的特征,使用步骤3得到的分类器检测安卓应用;识别恶意安卓应用,具体步骤如下:步骤4.1,将待预测的安卓应用样本apkunknown按照生成安卓应用的敏感函数调用图,挖掘敏感函数调用图中的敏感子图,提取敏感子图的特征步骤4.2,使用步骤3.3得到的分类器检测待预测的安卓恶意应用apkunknown的类型为恶意或者良性。

全文数据:

权利要求:

百度查询: 南京理工大学 基于敏感子图的安卓恶意软件检测方法及系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。

相关技术
相关技术
相关技术
相关技术