论文部分内容阅读
随着Android应用程序的普及,Android恶意程序的产生和传播呈爆发式增长,从而引起人们对Android应用程序安全性的高度关注,迫切需要开发有效的解决方案来防御恶意攻击。目前常用的解决方法有基于数据流的污点分析方法和基于机器学习的恶意性检测方法。由于基于数据流的污点分析方法要对程序恶意行为的机理进行分析,因此具有复杂度高的缺点。而基于机器学习的检测方法通过对程序特征进行统计分析,建立特征与行为的映射模型,从而对程序的恶意性进行判断,具有简单、高效等优点。但现有的机器学习工作仍存在以下问题:①由于特征的选择和生成是影响此方法的主要因素,而现有大多数工作在没有完全检查程序体系结构的情况下选择特征,因此丢失了与特征相关的重要语义信息,导致检测准确率低;②该方法将恶意软件检测视为二元分类问题,只能判断出程序是否为恶意,无法让用户了解到具体的恶意行为。因此,本文提出了基于多上下文特征的Android恶意程序检测和家族分类方法,主要研究内容如下:(1)基于多上下文特征的恶意性判别。为了解决传统基于机器学习的检测方法丢失了程序语义信息的问题,本文选择敏感权限,广义敏感API和敏感系统广播作为原始特征,并将原始特征与其上下文结合形成程序特征,从而将程序的语义信息考虑在内,最终采用机器学习算法进行分类。另外,为了有效提取特征,构造了基于回调函数的iCFG,并定义了一组应用于该图的约简规则,能够在不丢失图信息的基础上降低图规模;(2)基于文本分析技术的恶意家族分类。将文本分析技术应用于恶意程序的家族分类问题,首先分析每个恶意软件家族中程序的行为特性,然后为每个家族构造家族特征向量,最后构造家族分类器,对(1)中判断为恶意但未知家族的程序进行家族预测;(3)基于人工分析的安全摘要生成。首先提取Android恶意软件家族中应用程序的共同行为,将该行为作为家族产生的恶意类别,然后对提取出的共同行为进行人工分析,为每个家族生成一个安全摘要,最后在(2)预测出恶意程序所属家族的基础上,通过家族的安全摘要给出恶意程序的安全摘要。