专利名称:一种基于虚拟执行的病毒检测系统的制作方法
技术领域:
本发明涉及计算机系统领域,尤其涉及一种基于虚拟执行的病毒检测系统。
背景技术:
当前计算机系统的安全防护很大程度上依赖于商用反病毒产品的病毒库更新,SP所谓特征码扫描。这种方法的主要思想是,分析出病毒的特征病毒码并集中存放于病毒代码库文件中,在扫描时将扫描对象与特征代码库比较,如果匹配则判断为染上病毒。该技术实现简单有效,安全彻底,但是存在以下问题:(1)查杀病毒总是滞后于病毒的流行;(2)庞大的特征码库会造成查毒速度下降。当前,智能引擎技术已经解决了查毒速度下降的问题,使得病毒扫描速度不随病毒库的增大而减慢,但是查杀病毒滞后的问题仍然无法解决。对未知病毒的查杀是反病毒行业的持久课题,目前国内外多家公司都宣布自己的产品可以对未知病毒进行查杀,但事实上,国内外的产品中只有少数可以对未知病毒进行预警,更无法做到彻底清除。为了能赶上病毒编写者的步伐,反病毒软件开始依赖于病毒自动分析工具。然而病毒分析面临一些隐藏技术,例如多态(polymorphism)和模糊(obfuscation)等时变得束手无策。这些隐藏技术尤其对字节级内容分析和静态病毒分析特别奏效。相对静态分析而言,运行时的动态二进制分析可以监测病毒的执行行为,而这些执行行为是无法隐藏的。目前国际上很多研究工作开始向这方面转移。对于动态分析技术而言,可疑程序的潜在破坏性是一个令人头疼的问题,故而迫切需要一种基于虚拟执行的病毒检测系统,其既可以执行可疑程序,又能保证程序的执行不会给系统带来任何破坏性的后果。
发明内容
本发明所要解决的技术问题之一是需要提供一种能够解决可疑程序的潜在破坏性的病毒检测系统。为了解决上述技术问题,本发明提供了一种基于虚拟执行的病毒检测系统,包括:病毒样本收集器,其收集未知病毒;虚拟机,其执行所述未知病毒,并获取执行所述未知病毒时的执行行为报告;行为分析器,其根据已知病毒的病毒行为模式,对执行所述未知病毒时的执行行为报告进行分析,以判断所述未知病毒是否为病毒。进一步,所述病毒样本收集器还收集已知病毒;所述虚拟机执行所述已知病毒,并获取执行所述已知病毒时的执行行为报告;所述行为分析器进一步包括:特征提取和格式转换模块,其根据设定函数,从执行所述已知病毒时的执行行为报告中提取出病毒特征向量,并将所述病毒特征向量转换成与所使用的分类器构造算法相对应的格式;分类器构造模块,其利用分类器构造算法,基于转换格式后的病毒特征向量来构造出包含病毒行为模式的病毒分类器;
分类器模块,其包括所述病毒分类器,所述病毒分类器根据病毒行为模式,对执行所述未知病毒时的执行行为报告进行分析,以判断未知病毒是否为病毒。
进一步,所述虚拟机执行预定义的用户行为操作,并获取执行所述用户行为操作时的执行行为报告;所述行为分析器各个模块进一步用于:
特征提取和格式转换模块,其根据设定函数,从执行所述用户行为操作时的执行行为报告中提取出用户特征向量,并将所述用户特征向量转换成与所使用的分类器构造算法相对应的格式;
分类器构造模块,其利用分类器构造算法,基于转换格式后的用户特征向量来构造出包含用户行为模式的用户行为分类器;
分类器模块,其包括所述用户行为分类器,所述用户行为分类器根据用户行为模式,对实时监控得到的用户操作信息进行分析,以判断所述用户操作信息是否异常。
进一步,所述特征提取和格式转换模块所利用的设定函数如下,嵌入函数0:0是X到I |f| I维实空间的映射,其中,F表示特征字符串集合,I |f| I是集合F的模,表示特征字符串的个数,X表示执行行为报告的集合,对于特征字符串s,s e F,以及执行行为报告X,X e X,记映射函数f (X, s)为s在X中出现的频率。
进一步,所述分类器构造模块所利用的分类器构造算法为支持向量机算法。
进一步,利用蜜罐作为所述病毒样本收集器。
进一步,所述虚拟机根据其内部设置的监控模块来获取执行行为报告,所述监控模块获取关于注册表、文件系统、进程和网络连接的执行行为信息来作为执行行为报告。
进一步,所述监控模块通过API Hooking方法来获取关于注册表、文件系统、进程和网络连接的执行行为信息。
进一步,所述虚拟机还包括筛选模块,其对获取的执行行为信息进行筛选,以得到最终的执行行为报告。
进一步,所述虚拟机采用轻量级虚拟机。
与现有技术相比,本发明的一个或多个实施例可以具有如下优点:
本发明通过在当前的病毒分析技术的基础上,将虚拟执行技术应用进来,为病毒分析提供病毒执行行为信息,既能获取病毒执行行为,又保证不对系统构成危害,同时,以针对用户正常行为模式的主动防御策略来改进当前的病毒分析和检测算法。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
图1是根据本发明第一实施例的病毒检测系统的结构示意图2是根据本发明第一实施例的病毒检测系统中虚拟机20的内部结构示意图3是根据本发明第一实施例的病毒检测系统中行为分析器30的内部结构示意图4 (a)和(b)分别是利用本发明第一实施例的病毒检测系统中行为分析器的构造和利用行为分析器进行病毒检测的流程图;图5是根据本发明第二实施例的病毒检测系统的结构示意图;图6是根据本发明第二实施例的针对用户正常行为模式的主动防御策略的示意图。
具体实施例方式以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。第一实施例图1是根据本发明第一实施例的病毒检测系统的结构示意图,下面参考图1来详细说明本系统各个组成部分和功能。如图1所示,本系统包括病毒样本收集器10、虚拟机20和行为分析器30。其中,病毒样本收集器10的功能是收集病毒样本(包括训练样本和测试样本,即已知病毒和未知病毒);虚拟机20的功能是对收集到的病毒样本进行虚拟执行,获取执行该病毒样本时的执行行为信息,并生成执行行为报告。行为分析器30的功能包括两个方面,一是对训练样本虚拟执行后生成的报告进行分析,生成分类器,二是对测试样本虚拟执行后生成的报告进行分析,生成检测报告。下面进一步详细说明对各个部分的设计和各个部分具体功能的实现。在本实施例中,优先利用蜜罐(honeypot)作为病毒收集工具,构造一个病毒样本收集器10。需要说明的是,蜜罐是一种安全资源,其价值在于被扫描、攻击和攻陷,能够实现对这些攻击活动进行监视、检测和分析,因此它可以用于病毒收集。该病毒样本收集器10具有两部分的功能,一方面,收集已知病毒,所谓已知病毒,就是已经存在与病毒引擎或商用杀毒软件的病毒库中,能为其所识别的病毒。这些已知病毒在收集到之后被贴上所属病毒家族标签,它们将作为行为分析的训练样本。另一方面,病毒样本收集器10还负责收集未知病毒,也就是病毒引擎或商用杀毒软件还未能识别的病毒,不能识别它们的所属家族,这些未知病毒将用来作为测试样本。由于恶意程序(即病毒)在其执行过程中会表现出与正常程序不同的行为特征,例如:创建或关闭进程、创建、修改、复制或删除文件、修改注册以及网络活动等。这些特征行为就是识别它们的根本依据。动态分析首先需要通过程序的动态执行获取其执行信息。这个过程可以通过虚拟执行技术来实现。因此,本实施例建立一个虚拟执行环境,在这个环境中,病毒可以得到执行,而且通过一定的手段获取病毒的执行行为信息,而同时又能保证不对系统产生破坏性的后果。
因此,虚拟执行环境包括两部分,一部分供程序虚拟执行的虚拟机20,另一部分是嵌在虚拟机中的获取程序执行行为信息的监控模块。
虚拟机20在不影响宿主机(host)系统的基础上为用户模拟一个虚拟机器,让用户感觉到为其提供了 CPU、内存和IO等硬件支持,而事实上却不对host产生影响。由于在该病毒检测系统中,不需要虚拟机提供其它服务,因此,为了降低虚拟执行的开销,本实施例采用轻量级的开源虚拟机作为虚拟执行环境的基础。
为了能够获取虚拟执行的程序(上述未知病毒和已知病毒)的执行行为信息,系统需要在虚拟机中嵌入程序执行行为信息获取模块,称为监控模块。
图2是根据本发明第一实施例的病毒检测系统中虚拟机20的内部结构示意图,病毒样本是该虚拟机20的输入,病毒的执行行为报告(也可称为病毒行为报告)是其输出,因此,虚拟机20的功能实际上就是将病毒样本进行虚拟执行,获得病毒行为报告。
虚拟机20的内部包括进程监控模块201、文件系统监控模块202、注册表监控模块203、网络连接监控模块204和筛选模块205。其中,进程监控模块201、文件系统监控模块202、注册表监控模块203和网络连接监控模块204分别实现病毒在虚拟执行时对进程、文件系统、注册表和网络连接四个方面的系统API调用情况的监控,同时获取并保存这些信息,而筛选模块205则是对这些信息进行筛选,选出与病毒相关的部分,形成病毒行为报告。
这些信息是通过API Hooking的方式截获的,其中,
程序的进程相关操作包括:
打开进程(openprocess)、关闭进程(close process)、创建进程(createprocess)等。
程序对文件系统的执行操作包括:
访问信息(queryinformation)、设置信息(set information)、打开文件(open)、关闭文件(close)、读文件(read)、写文件(write)。
程序对注册表的执行操作包括:
打开注册表(open key)、关闭注册表(close key)、访问注册表值(query value)、创建注册表(create key)、列举注册表值(enumerate value)、删除注册表值(deletevalue key)、修改注册表值(set value)。
程序的网络连接相关操作包括:IRC绑定(outbound IRC)、ping扫描(ping scan)坐寸ο
以下表程序行为为例,需要截获的程序API函数对应为:
权利要求
1.一种基于虚拟执行的病毒检测系统,其特征在于,包括: 病毒样本收集器,其收集未知病毒; 虚拟机,其执行所述未知病毒,并获取执行所述未知病毒时的执行行为报告; 行为分析器,其根据已知病毒的病毒行为模式,对执行所述未知病毒时的执行行为报告进行分析,以判断所述未知病毒是否为病毒。
2.根据权利要求1所述的病毒检测系统,其特征在于, 所述病毒样本收集器还收集已知病毒; 所述虚拟机执行所述已知病毒,并获取执行所述已知病毒时的执行行为报告; 所述行为分析器进一步包括: 特征提取和格式转换模块,其根据设定函数,从执行所述已知病毒时的执行行为报告中提取出病毒特征向量,并将所述病毒特征向量转换成与所使用的分类器构造算法相对应的格式; 分类器构造模块,其利用分类器构造算法,基于转换格式后的病毒特征向量来构造出包含病毒行为模式的病毒分类器; 分类器模块,其包括所述病毒分类器,所述病毒分类器根据病毒行为模式,对执行所述未知病毒时的执行行为报告进行分析,以判断未知病毒是否为病毒。
3.根据权利要求2所述的病毒检测系统,其特征在于,` 所述虚拟机执行预定义的用户行为操作,并获取执行所述用户行为操作时的执行行为 艮告; 所述行为分析器各个模块进一步用于: 特征提取和格式转换模块,其根据设定函数,从执行所述用户行为操作时的执行行为报告中提取出用户特征向量,并将所述用户特征向量转换成与所使用的分类器构造算法相对应的格式; 分类器构造模块,其利用分类器构造算法,基于转换格式后的用户特征向量来构造出包含用户行为模式的用户行为分类器; 分类器模块,其包括所述用户行为分类器,所述用户行为分类器根据用户行为模式,对实时监控得到的用户操作信息进行分析,以判断所述用户操作信息是否异常。
4.根据权利要求2或3所述的病毒检测系统,其特征在于,所述特征提取和格式转换模块所利用的设定函数如下, 嵌入函数0:0是X到I |f| I维实空间的映射, 其中,F表示特征字符串集合,IlFlI是集合F的模,表示特征字符串的个数,X表示执行行为报告的集合,对于特征字符串S,S e F,以及执行行为报告X,X e X,记映射函数f(X, S)为S在X中出现的频率。
5.根据权利要求2或3所述的病毒检测系统,其特征在于, 所述分类器构造模块所利用的分类器构造算法为支持向量机算法。
6.根据权利要求1所述的病毒检测系统,其特征在于, 利用蜜罐作为所述病毒样本收集器。
7.根据权利要求1至6中任一项所述的病毒检测系统,其特征在于, 所述虚拟机根据其内部设置的监控模块来获取执行行为报告,所述监控模块获取关于注册表、文件系统、进程和网络连接的执行行为信息来作为执行行为报告。
8.根据权利要求7所述的病毒检测系统,其特征在于, 所述监控模块通过API Hooking方法来获取关于注册表、文件系统、进程和网络连接的执行行为信息。
9.根据权利要求8所述的病毒检测系统,其特征在于,所述虚拟机还包括筛选模块,其对获取的执行行为信息进行筛选,以得到最终的执行行为报告。
10.根据权利要求1所述的病毒检测系统,其特征在于, 所述虚拟机采用轻 量级虚拟机。
全文摘要
本发明公开了一种采用虚拟执行技术的病毒检测系统,包括病毒样本收集器,其收集未知病毒;虚拟机,其执行所述未知病毒,并获取执行所述未知病毒时的执行行为报告;行为分析器,其根据已知病毒的病毒行为模式,对执行所述未知病毒时的执行行为报告进行分析,以判断所述未知病毒是否为病毒。本发明通过在当前的病毒分析技术的基础上,将虚拟执行技术应用进来,为病毒分析提供病毒执行行为信息,既能获取病毒执行行为,又保证不对系统构成危害,同时,以针对用户正常行为模式的主动防御策略来改进当前的病毒分析和检测算法。
文档编号G06F9/455GK103150509SQ20131008454
公开日2013年6月12日 申请日期2013年3月15日 优先权日2013年3月15日
发明者任双春 申请人:长沙文盾信息技术有限公司