基于操作码N―GramWindows恶意软件检测.docVIP

  • 55
  • 0
  • 约5.13千字
  • 约 11页
  • 2018-08-29 发布于福建
  • 举报

基于操作码N―GramWindows恶意软件检测.doc

基于操作码N―GramWindows恶意软件检测

基于操作码N―GramWindows恶意软件检测   摘要:由于传统的检测方法必须获得恶意软件的签名之后才能对这类恶意软件进行检测,不能检测新型的恶意软件。本文用软件逆向分析技术反汇编软件样本,使用N-Gram算法提取操作码特征,再用信息增益算法选取操作码特征,最后利用数据挖掘和机器学习技术建立检测模型。根据建立的检测模型可以对未知的软件进行检测,避免了传统检测方法的弊端。   关键词:N-Gram 操作码 恶意软件 机器学习 数据挖掘   1 研究背景   随着社会的发展,计算机的普及率不断增加。由于Window操作系统使用简单、方便、用户体验良好,Windows操作系统成为最受欢迎的PC操作系统。众多的用户数量也让Windows操作系统成为了黑客最爱攻击的对象。恶意软件是对病毒、特洛伊木马和蠕虫等的总称,恶意软件具有强制安装、难以卸载、恶意捆绑等特征。随着互联网的发展和技术的不断更新换代,恶意软件的攻击手段和种类越来越丰富。当前的恶意软件相比传统的恶意软件有了很多的变种,更加难以检测。全球每年因为恶意软件入侵给个人用户和企业带来了大量的经济损失,而且这种损失每年都在增长。   恶意软件的检测已经成为当前热门的领域之一。文献[1]研究基于N-Gram 系统调用序列的恶意代码静态检测,通过N-Gram算法提取API函数序列作为特征建立检测模型来检测恶意软件;文献[2]是基于数据挖掘和机器学习的恶意代码检测技术研究,利用N-Gram算法选取代码字节序列作为特征,使用数据挖掘和机器学习技术训练分类器检测恶意软件;文献[3]研究恶意软件检测中的特征选择问题,介绍了恶意软件检测领域选择特征的原则和方法;文献[4]研究恶意软件鉴别技术及其应用,提出了鉴别恶意软件的几种方法;文献[5]基于权限的朴素贝叶斯Android恶意软件检测研究,分析恶意软件特有的权限作为检测的依据;文献[6]研究一种恶意软件行为分析系统的设计与实现,对恶意软件的行为进行分析,建立检测系统实现对恶意软件的检测。文献[7]研究基于PE静态结构特征的恶意软件检测方法;文献[8]介绍了软件逆向工程的内容。   传统的恶意软件检测方法必须获得该恶意软件的签名之后才能对恶意软件进行检测,这个缺点使得计算机感染新型恶意软件的概率增加并且检测到恶意软件很困难。本文在当前研究的基础上,对Windows操作系统上的PE文件(PE(Portable Executable)文件是运行在Windows操作系统上的可执行文件)进行反汇编,利用N-Gram算法提取操作码特征,使用信息增益算法选取操作码特征,用数据挖掘和机器学习技术建立用于检测恶意软件的模型。   2 实验过程   2.1 概述   图1是基于N-Gram操作码恶意软件的检测流程图。该流程图主要分为两个部分:第一部分,通过对PE文件进行分析训练分类器;第二部分,利用测试集来测试分类器检测恶意软件的结果。   从图1可以看出实验过程主要包含以下内容:①通过对良性PE文件和恶意PE文件反汇编得到汇编文件,用N-Gram算法提取汇编文件中的操作码特征;②选取特征利用数据挖掘和机器学习技术对建立分类模型,训练分类器;③利用测试集对训练好的分类器进行检测,区分出恶意软件和良性软件。下文将依次对每个步骤进行详细的介绍。   2.2 反汇编PE文件   本文采用了交互式反汇编器专业版(Interactive Disassembler Professional)即IDA Pro以下简称IDA。使用IDA反汇编PE文件得到很多信息如流程图、函数调用图、依赖图等。我们可以根据这些信息,分析软件的功能、执行过程、内部结构等。本文利用IDC脚本,从反汇编的许多信息中把汇编代码提取出来(IDC脚本主要用于动态调试IDA,获取IDA运行过程中的各种信息的代码)。   2.3 N-Gram提取操作码特征   N-Gram算法经常用于恶意软件检测,自然语言处理等领域。N-Gram算法假设第m个词的出现只与前面的m-1个词相关。假设操作码序列为ABCDEFGH,2-gram提取的操作码特征[{AB},{BC},{CD},{DE},{EF},{FG},{GH}];3-gram提取的操作码特征[{ABC},{BCD},{CDE},{DEF},{EFG},{FGH}];4-gram提取的操作码特征[{ABCD},{BCDE},{CDEF},{DEFG},{EFGH}];5-gram提取的操作码特征[{ABCDE},{BCDEF},{CDEFG},{DEFGH}]。   2.4 选取特征   从上文可以看出使用N-Gram算法提取操作码特征虽然不会遗漏某个特征但是有个明显的缺点,即如果操作码个数太多,所提取的操作码特征序列冗余多

文档评论(0)

1亿VIP精品文档

相关文档