[发明专利]基于API调用序列的安卓恶意软件检测方法有效
申请号: | 201811600760.0 | 申请日: | 2018-12-26 |
公开(公告)号: | CN109711163B | 公开(公告)日: | 2021-07-27 |
发明(设计)人: | 崔艳鹏;颜波;胡建伟 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56 |
代理公司: | 陕西电子工业专利中心 61205 | 代理人: | 田文英;王品华 |
地址: | 710071 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 api 调用 序列 恶意 软件 检测 方法 | ||
1.一种基于API调用序列的安卓恶意软件检测方法,其特征在于,利用基础包名、混淆包名和自定义包名来替代应用程序编程接口API调用序列中的应用程序编程接口API;该方法的具体步骤包括如下:
(1)生成训练样本集和测试样本集:
(1a)从应用软件库中提取已知的1600个安卓恶意应用软件和已知的2400个安卓正常应用软件,组成训练样本集;
(1b)将700个待检测的安卓应用软件,组成测试样本集;
(2)生成smali文件;
(2a)利用安卓反编译工具,对训练样本集中每个安卓应用软件进行反编译,得到每个安卓应用软件对应的smali文件;
(3)生成应用程序编程接口API的调用序列集合:
(3a)利用深度优先遍历算法DFS,生成每个smali文件中所有应用程序编程接口API组成的调用序列;
(3b)将所有smali文件的调用序列存入到调用序列集合中;
(4)用包名替代应用程序编程接口API:
(4a)从调用序列集合中任意选择一个未选过的调用序列;
(4b)从调用序列中任意选择一个未选过的应用程序编程接口API;
(4c)判断基础包名集合中是否有所选的应用程序编程接口API的包名,若有,则用该基础包名替代应用程序编程接口API后存入到调用序列集合中,执行步骤(4b),否则,执行步骤(4d);
(4d)对符合反域名命名规则的包名,以字符串“insensitive-defined”替代应用程序编程接口API后存入到调用序列集合中,其余的用字符串“obfuscated”替代应用程序编程接口API后存入到调用序列集合中;所述的字符串“insensitive-defined”表示自定义包名,字符串“obfuscated”表示混淆包名;
(4e)判断是否选完调用序列中的所有应用程序编程接口API,若是,执行步骤(4f),否则,执行步骤(4b);
(4f)判断是否选择完调用序列集合中的所有调用序列,若是,执行步骤(5),否则,执行步骤(4a);
(5)生成特征矩阵:
(5a)构建一个n行m列的特征矩阵,其中n表示调用序列的总数,m表示在基础包名、混淆包名和自定义包名中两两组合的总数;
(5b)从调用序列集合中任意选择一个未选过的调用序列;
(5c)按照下式,计算所选的调用序列中两两组合中的应用程序编程接口API的包名的组合概率,将组合概率存入特征矩阵中:
其中,Pkij表示所选的第k个调用序列中两两组合中的第i个应用程序编程接口API的包名,与第j个应用程序编程接口API的包名的组合概率,Cij表示所选的第k个调用序列中两两组合中的第i个应用程序编程接口API的包名,与第j个应用程序接口API的包名的组合个数,∑表示求和操作,t表示所选的调用序列中应用程序编程接口API的总数;
(5d)判断是否选择完调用序列集合中的所有调用序列,若是,执行步骤(6),否则,执行步骤(5b);
(6)检测恶意软件:
(6a)将训练样本集中的安卓恶意应用软件的特征矩阵和安卓正常应用软件的特征矩阵,输入到随机森林分类器RandomForest中,对随机森林分类器训练;
(6b)将测试样本集中的待检测的安卓应用软件进行反编译,分别生成smali文件、应用程序编程接口API的调用序列集合、以包名表示的应用程序编程接口API、特征矩阵;
(6c)将待检测的安卓应用软件的特征矩阵,输入到训练好的随机森林分类器RandomForest中,对每个测试样本进行分类,输出所属类别的预测值;
(6d)将预测值为1的待检测的安卓应用软件判定为恶意应用软件,预测值为0的待检测的安卓应用软件判定为正常应用软件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811600760.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于区块链的安全应用方法及系统
- 下一篇:信息处理装置和篡改检测方法