论文部分内容阅读
随着现代信息和互联网技术的进步和飞速发展,人们的日常工作、学习和生活越来越离不开互联网(Internet)。而恶意软件(malware)已成为Internet安全的主要威胁之一,甚至威胁到国家的安全。恶意软件作者使用的混淆技术的流行导致恶意软件及其变种的数量呈现爆炸式的增长。但是,传统基于静态特征码的恶意软件检测方法早已变得无法有效应对这些复杂的情况。于是安全数据分析研究人员的研究重点转向基于动态行为特征的恶意软件检测。应用程序接口(Application Programming Interface,API)是一个应用程序与操作系统之间的调用接口,通常,这个应用程序是通过调用API来完成对系统资源的操作。因此基于API的动态行为是一种十分优秀的特征。在恶意软件检测系统中,恶意软件的特征提取技术成为制约恶意软件检测效果的一个关键性因素。随着恶意软件检测技术的发展,恶意软件分析人员开始关注恶意软件的动态行为特征提取。因此基于API的动态行为特征提取是当前的研究热点。本文围绕着Windows API的恶意软件动态行为特征提取关键技术展开研究,同时对机器学习算法、集成学习算法和深度神经网络算法在恶意软件检测中的应用进行了研究,旨在提高检测效果。具体研究内容和主要贡献如下所述。(1)基于API调用顺序的恶意软件变长行为特征提取技术研究针对传统基于特征码检测技术对代码混淆恶意软件检测失效的问题进行研究。目前比较流行的行为特征提取方法之一是从API调用序列中提取出固定长度的n-gram表示程序行为特征,但其容易遗漏部分优秀特征,且容易受到API插入攻击。在对恶意软件API调用顺序研究分析后,提出了一种利用变长N-gram算法从恶意软件API调用序列中提取不同长度的API n-gram构建其动态行为的特征提取方法,然后依据信息增益进行降维。在此基础上,提出了一种基于朴素贝叶斯的恶意软件动态行为检测算法。实验数据表明,基于变长的API n-gram恶意软件动态行为检测算法对系统的性能有一定的提升。(2)基于API数据依赖关系的恶意软件分类行为特征提取技术研究目前最流行的应用程序行为特征提取方法是基于API数据依赖关系图的特征提取方法,针对程序API行为图的构建比较困难,同时检测对比时图匹配算法的时间和空间复杂度较大的问题,通过对恶意软件的API调用进行分析研究,将API分类并利用API之间的数据依赖关系,首次提出一种分类行为图(Classified Behavior Graph,CBG)的特征提取方法。为了验证提取的CBG对恶意软件分类检测的有效性和扩展性,设计基于传统机器学习算法的恶意软件变种检测模型。实验结果表明,构建的基于API CBG和SVM的恶意软件行为检测系统喜鹊(Magpie)能够实现对恶意软件变种的检测。在提取恶意软件的动态分类行为特征之后,行为检测研究的核心就变成了基于动态行为特征的恶意软件检测与分类算法设计。针对恶意软件检测系统检测率的问题,研究集成学习算法来提高恶意软件变种分类的准确率。实验证明基于集成学习的恶意软件动态分类行为检测系统能在降低误报率的同时提高了恶意软件变种分类检测的准确率。(3)基于分类行为间相关性的恶意软件特征提取技术研究针对提取出的分类行为特征之间的相关性进行研究,提出基于CBG n-gram的恶意软件家族动态行为特征提取技术,找到更多的恶意软件家族分类行为特征,来提高检测系统对恶意软件及其变种的检测率。同时对深度神经网络分类算法进行研究,提出一种基于深度学习算法的恶意软件动态行为检测算法,构建检测系统模型喜鹊II(Magpie II)。实验表明基于深度神经网络和API CBG n-gram的恶意软件家族检测系统能大幅提高分类检测的准确率。