基于API调用序列的安卓恶意软件检测方法技术

技术编号:21035195 阅读:108 留言:0更新日期:2019-05-04 05:45
本发明专利技术公开一种基于API调用序列的安卓恶意软件检测方法,主要解决现有技术中无法识别混淆后的应用程序编程接口API、提取的特征无法使用适应API版本的更替、API种类多和计算量大的缺点。其方法步骤为:(1)生成训练样本集和测试样本集;(2)生成smali文件;(3)生成应用程序编程接口API的调用序列集合;(4)用包名替代应用程序编程接口API;(5)生成特征矩阵;(6)检测恶意软件。本发明专利技术利用基础包名、混淆包名和自定义包名来替代应用程序编程接口API调用序列中的API,既能极大减少了API种类,降低计算复杂度和提高恶意软件识别检测效率,又能适应API版本的更替。

【技术实现步骤摘要】
基于API调用序列的安卓恶意软件检测方法
本专利技术属于计算机
,更进一步涉及互联网网络
中的一种基于应用程序编程接口API(ApplicationInterface)调用序列的安卓恶意软件检测方法。本专利技术可利用安卓应用软件的应用软件编程接口API调用序列,来判断安卓应用软件是否为恶意软件,用于对安卓应用软件的安全分析。
技术介绍
安卓恶意软件静态检测的研究源于移动终端应用安全的研究工作,其特点是利用安卓应用软件文件中权限信息和应用程序编程接口API信息,分析权限的变化和应用程序编程接口API之间的调用关系,进行分类特征的提取并通过机器学习来对恶意软件的识别。目前,已有的安卓恶意软件静态检测的方法基本是从权限和应用程序编程接口API两方面进行展开的,而这种方法存在以下不足:第一,由于API数量多,包含安卓官方提供的API、第三方组织提供的API和自定义API,导致依赖API特征的分类算法计算量较大;第二,随着安卓安全技术的不断提高,安卓应用软件均通过代码混淆技术来防止安卓应用软件被反编译,这样就导致对混淆后的安卓应用软件分析变得困难;第三,目前现有的安卓恶意软件静态检本文档来自技高网...

【技术保护点】
1.一种基于API调用序列的安卓恶意软件检测方法,其特征在于,利用基础包名、混淆包名和自定义包名来替代应用程序编程接口API调用序列中的应用程序编程接口API;该方法的具体步骤包括如下:(1)生成训练样本集和测试样本集:(1a)从应用软件库中提取已知的1600个安卓恶意应用软件和已知的2400个安卓正常应用软件,组成训练样本集;(1b)将700个待检测的安卓应用软件,组成测试样本集;(2)生成smali文件;(2a)利用安卓反编译工具,对训练样本集中每个安卓应用软件进行反编译,得到每个安卓应用软件对应的smali文件;(3)生成应用程序编程接口API的调用序列集合:(3a)利用深度优先遍历算法...

【技术特征摘要】
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后存入到调用序列集合中;(4e)判断是否选完调用序列中的所有应用程序编程接口API,若是,执行步骤(4f),否则,执行步骤(4b);(4f)判断是否选择完调用序列集合中的所有调用序列,若是,执行步骤(5),否则,执行步骤(4a);(5)生成特征矩阵:(5a)构建一个n行m列的特征矩阵,其中n表示调用序列的总数,m表示在基础包名、混淆包名和自定义包名中两两组合的总数;(5b)从调用序列集合中任意选择一个未选过的调用序列;(5c)按照下式,计算所选的调用序列中两两组合中的应用程序编程接口API的包名的组合概率,将组合概率存入特征矩阵中:其中,Pkij表示所选的第k个调用序列中两两组合中的第i个应用程序编程接口API的包名,与第j个应用程...

【专利技术属性】
技术研发人员:崔艳鹏颜波胡建伟
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西,61

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

1