论文部分内容阅读
随着移动互联网的快速发展,Android系统占据了移动平台的大部分市场份额,同时Android应用发布数量也呈爆发式增长。伴随而来的是Android恶意应用数量的激增,恶意扣费、隐私窃取和强推广告等行为给Android用户带来巨大的威胁。由于Android应用的市场前景广阔,Android应用的安全问题越来越受到关注,如何对应用的行为做出安全性评估,有效地识别应用的恶意行为成为研究的热门方向。 目前Android恶意软件检测有静态分析与动态分析两种思路。静态分析不运行恶意软件,而是通过分析安装包的特性,反编译分析源代码等方式来得到分析结果;动态分析则是通过实际运行测试恶意软件的各种指标行为以及对系统的影响来进行判断。本文结合机器学习算法提出了一种新的动态分析思路,并以此思路设计了恶意应用检测系统。该系统利用自动化测试技术,通过对恶意软件的行为和系统调用的记录,结合机器学习算法构建检测模型,实现对恶意行为的检测。 本文首先从Android系统的架构出发,利用Hook劫持技术与Android应用开发技术,实现对Android系统对外提供关键接口调用的监控与记录,使得每个Android程序在运行期间调用的系统服务能形成记录日志并被导出。其次,本文结合静态解析Android安装包与Android自动化测试技术,使用Python构建了自动化测试的框架,利用该框架实现了批量自动化测试Android应用和收集程序运行记录的功能,并实际测试了1000个正常应用与500个恶意应用。最后,本文通过统计接口是否被调用来提取每个程序运行记录的特征向量,对数据划分训练集与测试集,利用决策树、KNN、SVM等有监督的分类机器学习的算法训练分类器,并使用集成算法对分类器的精度进行改进,对检测结果进行分析,验证了系统的有效性。