论文部分内容阅读
随着移动互联网大时代的到来,各种智能手机的发展非常迅猛,Android作为当前市场占有率最高的智能手机操作系统,其相应的应用程序也是数量惊人。而由于其开源的特性,导致应用程序开发的门槛降低,同时开发者拥有更大的自由开发空间,另外,一些应用市场对应用程序的审核不到位,因而产生了大量在Android架构下的恶意应用程序。在未来几年间,应用程序数量预计将爆炸式增长,恶意代码的对抗手段也越来越高。而与爆炸式发展的移动应用技术及层出不穷快速翻新的恶意攻击手段相比,传统的恶意代码检测技术反应略显滞后,常常在危害发生之后才研究出应对措施,而无法主动监测新的恶意代码。面对这些威胁,本课题设计了一种基于后验概率SVM的恶意代码分类模型,这是一种基于统计学的自动发掘数据规律的方法,能通过分析海量样本的统计规律建立判别模型,从而让攻击者难以掌握免杀的规律,同时具有较强的泛化能力,对新的未知应用有较强的检测能力。本模型目前已在安天实验室正式上线使用,为安全分析人员提供参考,实现智能化的查杀手段。本课题以SVM为技术基础,以恶意代码检测为目的,实现对恶意代码家族粒度的判别模型。本文的主要内容包括数据预处理、行为规则库的构建以及分类模型的训练三个过程。首先介绍了Android操作系统的基本架构,并分析了应用程序的构成,其中包括META-INF目录、res目录、Android Manifest.xml文件,并详细介绍了classes.dex文件的基本结构和特征提取方法。其次,通过实验对比了信息增益、卡方统计量、文档频率三种特征选择算法,发现信息增益的效果最好。本模型选择信息增益值前5000名的特征项,通过TF-IDF计算这5000个特征项的权值,并构建特征字典,通过特征字典,可将任一APK的classes.dex文件映射为数值型特征向量。最后针对85个活跃家族样本,基于后验概率的SVM模型构建了85个二分类模型,并根据应用场景增加了阈值调控模块。另外,为提高模型的可靠性,分别利用样本的权限和行为信息的频繁项集构建了规则库。最后,投入真实场景使用,并根据第三方平台的反馈结果不断更新模型。本模型运行在Linux服务器上,全过程使用Python编写。实验结果验证了本模型的有效性,目前已正式部署在安天实验室,供安全分析人员使用。