论文部分内容阅读
随着Android操作系统在移动设备上广泛应用,许多基于Android平台恶意软件也不断的出现,并且在近几年更是呈井喷式的增长,尽管已经有很多的恶意软件检测技术,但是由于恶意软件的多变性及其快速传播性,要想满足用户的要求还需要提出更加高效的恶意软件检测技术。现有的恶意软件的检测技术主要是从静态及动态两方面进行研究的。静态检测技术会受到混淆以及加壳技术的影响,动态检测方法可以实时的检测软件是否存在恶意行为,而且其不受静态检测技术约束条件的影响。Android API是Android官方提供给Android开发人员的接口,调用Android API可以实现许多功能。恶意软件开发人员若要实现恶意功能也必须通过调用Android API来实现,因此,通过研究Android软件的Android API调用情况对应用软件进行恶意性检测是个很好的方法。但是Android API调用的情况的相关信息较多,需要从中获取有用的数据。本课题对不同的调用信息进行了研究分析并且实现了基于Android API调用的恶意软件动态检测技术的研究。具体的研究方法如下:本文通过获取应用软件运行时产生的trace文件得到应用软件所调用Android API调用情况的信息,从每个实验样本的trace文件中获取Android API调用的时间、次数、序列三个方面进行研究,然后将其应用高阶马尔科夫降阶模型进行特征提取,并且利用不同的特征选择方法进行特征选择,特征选择的方法主要有卡方、信息增益以及改进的特征选择方法。然后利用机器学习方法进行恶意代码检测,同时将本课题选取的序列行为特征与敏感API及权限行为特征进行对比,应用不同的特征选择方法进行特征筛选;通过实验对比得出了Android API调用序列作为特征具有较好的分类效果并且验证了改进的特征选择方法的有效性。改进的特征选择方法避免了特征数量过多及高阶马尔科夫模型获取的特征稀疏性的缺陷以及常见特征选择方法对本课题特征选择的无效性,同时本课题也将基于高阶马尔科夫模型选择的实验特征与敏感API进行了结合,进一步的提高了实验分类效果。