论文部分内容阅读
近年来,智能手机普及率急速增加,极大的方便了我们的生活,其中,Android已经成为了全球范围内市场份额占比最高的智能手机。但是由于Android系统的开放性以及用户安全意识薄弱,针对Android系统的恶意应用数量也急剧增加,因此Android恶意应用的检测成为了一个值得深入研究的课题。由于现有的部分恶意应用为了躲避静态方法的检测,采取了代码混淆以及运行时触发行为等技术,为了弥补这些缺陷,本文提出基于API调用序列的动态检测方法。通过构建动态提取模块,在应用运行过程中提取出API函数,组成完整的API调用序列作为特征对象。针对提取出的API调用序列,引入主题模型对调用序列进行建模。为了提高模型的预测能力及语义表达能力,加入N-gram模型对原始序列进行特征提取,针对构造的N-gram序列进行主题模型建模,并且进行实验对比。本文的主要工作和成果如下:(1)从安全角度对Android系统进行研究,利用Zygote进程孵化机制,构建基于Xposed框架的动态监控环境,对应用运行时的行为进行监控,通过事件触发器对待测应用进行行为触发,在不破坏系统的情况下获取调用行为及其参数等信息,从而构建API调用序列作为之后工作的特征对象。(2)对于动态提取出的API调用序列,直接对序列样本使用多种分类算法进行分类检测,并给出相应的检测结果。引入主题模型对其进行建模。采用LDA模型将序列映射到基于隐含主题的特征空间上,挖掘出潜在含义,采用Gibbs采样推导估计模型参数,最终获得序列的主题概率分布。使用多种分类算法对其进行分类实验,给出相应的检测结果,结果显示LDA-RF算法效果最佳。并且根据不同的参数对模型进行寻优实验。(3)在原始的API调用序列的基础上,通过N-gram方法进行特征扩展,加强前后调用函数的联系。再利用LDA模型对构造的N-gram序列进行建模,通过对比实验证明其有效性。并且增加样本数量,研究样本集大小对实验结果的影响。