沙箱虚拟化的检测方法及检测装置与流程

文档序号:12467725阅读:385来源:国知局
本发明涉及计算机
技术领域
:,具体而言,本发明涉及一种沙箱虚拟化的检测方法,及一种沙箱虚拟化的检测装置。
背景技术
::随着计算机技术的发展,各种功能强大的终端操作系统及终端应用程序不断涌现,为用户带来了更加便捷的体验,各终端应用程序的功能涉及到当今社会各领域的方方面面,由于存在不法分子通过计算机技术实现对非法获取的信息进行窃取、修改、破坏等的不法行为,导致终端设备在运行过程中存在着许多的安全隐患,因此,需要先进的检测手段来排除这些潜在的威胁。随着APT(AdvancedPersistentThreat,高级持续性威胁)攻击的流行,静态检测已经无法对APT进行有效地检测监控,因此,动态检测技术也在日益发展,弥补静态检测的不足,从而更加有效地对抗高级威胁。沙箱(Sandbox)是一种动态检测解决方案,用来在隔离的环境中运行未知或不受信任的应用程序或文件,并获取对应的信息。虚拟化是沙箱的关键,直接影响沙箱的功能性、稳定性以及性能。但是现有技术中,每次检测都需要在沙箱中启动一台全新的虚拟机,以保证检测环境未受污染,检测完成后关闭该虚拟机,从而导致需要不停地启动和关闭虚拟机,当待检测的样本数量较多时,该检测方式将耗费大量的系统资源,从而降低虚拟化性能和虚拟化的稳定性,同时,降低了检测的效率,因此,需要一种在保证虚拟化性能的前提下,实现高效的沙箱虚拟化的检测方法。技术实现要素:为克服上述技术问题或者至少部分地解决上述技术问题,特提出以下技术方案:本发明的实施例提出了一种沙箱虚拟化的检测方法,包括:检测到虚拟机启动指令时,依据启动指令启动相应操作系统运行环境的虚拟机;在已启动的虚拟机中载入预定的检测引擎及待检测样本,并运行检测引擎;通过检测引擎检测待检测样本,并生成待检测样本在虚拟机中运行的动态行为信息;通过分析动态行为信息,生成针对待检测样本的检测报告。优选地,检测到虚拟机启动指令时,依据启动指令启动相应操作系统运行环境的虚拟机,包括:检测到多条虚拟机启动指令时,依据各个启动指令依次启动相应操作系统运行环境的虚拟机。优选地,依据启动指令启动相应操作系统运行环境的虚拟机,具体包括:确定与启动指令相应操作系统运行环境的虚拟机的系统镜像及对应的快照;基于系统镜像及对应的快照,在待启动的虚拟机中建立相应操作系统运行环境。可选地,该方法还包括:预先生成与多种操作系统运行环境分别对应的虚拟机的系统镜像及对应的快照。优选地,预先生成与多种操作系统运行环境分别对应的虚拟机的系统镜像及对应的快照,具体包括:创建与预定操作系统运行环境对应的虚拟机的逻辑分区和逻辑卷,并设置逻辑分区和逻辑卷;配置虚拟机的配置文件;启动虚拟机,并在虚拟机中安装预定操作系统的镜像文件,以生成该预定操作系统运行环境对应的虚拟机的系统镜像;依据虚拟机的系统镜像,生成相应的快照;其中,配置的虚拟机的配置文件,包括以下任一项:配置预定操作系统运行环境;配置虚拟机的名称;配置虚拟机的内存大小;配置虚拟机的磁盘信息。可选地,该方法还包括:设置启动指令的执行时间和检测单个待检测样本的执行时间;依据启动指令和检测单个待检测样本的执行时间,确定待启动虚拟机的最大启动数量;其中,多条虚拟机启动指令的指令数量不超过最大启动数量。可选地,该方法还包括:检测到任一台虚拟机启动后,通过桥接网络建立预定网段的局域网;通过预定局域网的网络协议,为任一台虚拟机分配预定网段的网络地址;基于已分配的预定网段的网络地址,任一台虚拟机通过预定的源地址转换机制访问外网。优选地,操作系统运行环境包括以下至少一项:操作系统的类型;操作系统的架构;操作系统的软件环境;操作系统的安全补丁环境;操作系统的语言。优选地,待检测样本在虚拟机中运行的动态行为信息,包括以下至少一项:网络行为信息;访问的文件信息;访问的注册表信息;创建的进程信息。本发明的另一实施例提出了一种沙箱虚拟化的检测装置,包括:检测及启动模块,用于检测到虚拟机启动指令时,依据启动指令启动相应操作系统运行环境的虚拟机;载入及运行模块,用于在已启动的虚拟机中载入预定的检测引擎及待检测样本,并运行检测引擎;检测及生成模块,用于通过检测引擎检测待检测样本,并生成待检测样本在虚拟机中运行的动态行为信息;分析及生成模块,用于通过分析动态行为信息,生成针对待检测样本的检测报告。优选地,检测及启动模块,包括:检测及启动单元,用于检测到多条虚拟机启动指令时,依据各个启动指令依次启动相应操作系统运行环境的虚拟机。优选地,检测及启动模块,具体包括:确定单元,用于确定与启动指令相应操作系统运行环境的虚拟机的系统镜像及对应的快照;建立单元,用于基于系统镜像及对应的快照,在待启动的虚拟机中建立相应操作系统运行环境。可选地,该装置还包括:生成模块,用于预先生成与多种操作系统运行环境分别对应的虚拟机的系统镜像及对应的快照。优选地,生成模块,具体包括:创建及设置单元,用于创建与预定操作系统运行环境对应的虚拟机的逻辑分区和逻辑卷,并设置逻辑分区和逻辑卷;配置单元,用于配置虚拟机的配置文件;启动及安装单元,用于启动虚拟机,并在虚拟机中安装预定操作系统的镜像文件,以生成该预定操作系统运行环境对应的虚拟机的系统镜像;生成单元,用于依据虚拟机的系统镜像,生成相应的快照;其中,配置的虚拟机的配置文件,包括以下任一项:配置预定操作系统运行环境;配置虚拟机的名称;配置虚拟机的内存大小;配置虚拟机的磁盘信息。可选地,该装置还包括:设置模块,用于设置启动指令的执行时间和检测单个待检测样本的执行时间;确定模块,用于依据启动指令和检测单个待检测样本的执行时间,确定待启动虚拟机的最大启动数量;其中,多条虚拟机启动指令的指令数量不超过最大启动数量。可选地,该装置还包括:检测及建立模块,用于检测到任一台虚拟机启动后,通过桥接网络建立预定网段的局域网;分配模块,用于通过预定局域网的网络协议,为任一台虚拟机分配预定网段的网络地址;访问模块,用于基于已分配的预定网段的网络地址,任一台虚拟机通过预定的源地址转换机制访问外网。优选地,操作系统运行环境包括以下至少一项:操作系统的类型;操作系统的架构;操作系统的软件环境;操作系统的安全补丁环境;操作系统的语言。优选地,待检测样本在虚拟机中运行的动态行为信息,包括以下至少一项:网络行为信息;访问的文件信息;访问的注册表信息;创建的进程信息。本发明的实施例中,提出了一种沙箱虚拟化的检测方案,检测到虚拟机启动指令时,依据启动指令启动相应操作系统运行环境的虚拟机,实现了在沙箱中动态建立与启动指令相匹配的虚拟化运行环境,为后续实现对待检测样本在该虚拟运行环境中进行检测提供了必要的前提保证;在已启动的虚拟机中载入预定的检测引擎及待检测样本,并运行检测引擎,实现了在新启动的沙箱虚拟化运行环境中通过预定检测引擎检测待检测样本,在保证检测环境未受污染的前提下进行检测,从而保证了检测结果的高准确性;通过检测引擎检测待检测样本,并生成待检测样本在虚拟机中运行的动态行为信息,通过分析动态行为信息,生成针对待检测样本的检测报告,提高了检测结果的完整性及准确性,同时,检测报告为管理员对待检测样本进行判断提供了重要的参考依据,极大的提高了检测效率。本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。附图说明本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1为本发明中一个实施例的沙箱虚拟化的检测方法的流程图;图2为本发明中一个优选实施例的多个虚拟机的网络关系示意图;图3为本发明中另一实施例的沙箱虚拟化的检测装置的结构示意图。具体实施方式下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。本
技术领域
:技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。本
技术领域
:技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。需要说明的是,本领域的技术人员可以了解到,Sandbox又叫沙箱、沙盘,即是一个虚拟系统程序,允许在沙箱环境中运行浏览器或其他程序,因此运行所产生的变化可以随后删除,不会对主机产生任何影响。它创造了一个独立作业环境,在其内部运行的程序并不能对硬盘产生永久性的影响。其为一个独立的虚拟环境,沙箱的动态检测解决方案,可以用来在隔离的环境中运行测试未知或不受信任的应用程序或文件,并获取对应的信息。虚拟化是沙箱的关键,直接影响沙箱的功能性、稳定性以及性能。本领域的技术人员还可以了解到,Xen(开源虚拟化技术)是一个开放源代码虚拟机监视器。它可实现在单个计算机上运行多达100个操作系统,其中各个操作系统均具备操作系统的所有特征,操作系统特征如并发、共享、异步和虚拟等。操作系统必须进行显式地修改(“移植”)以在Xen上运行(但是提供对用户应用的兼容性),这使得Xen无需特殊硬件支持,就能达到高性能的虚拟化。本发明的实施例中,在沙箱构建的虚拟环境中对待检测样本进行检测,均基于Xen平台之上实现。图1为本发明中一个实施例的沙箱虚拟化的检测方法的流程图。本发明的实施例中,各步骤所执行的内容概述如下:步骤S110:检测到虚拟机启动指令时,依据启动指令启动相应操作系统运行环境的虚拟机;步骤S120:在已启动的虚拟机中载入预定的检测引擎及待检测样本,并运行检测引擎;步骤S130:通过检测引擎检测待检测样本,并生成待检测样本在虚拟机中运行的动态行为信息;步骤S140:通过分析动态行为信息,生成针对待检测样本的检测报告。本发明的实施例中,提出了一种沙箱虚拟化的检测方法,检测到虚拟机启动指令时,依据启动指令启动相应操作系统运行环境的虚拟机,实现了在沙箱中动态建立与启动指令相匹配的虚拟化运行环境,为后续实现对待检测样本在该虚拟运行环境中进行检测提供了必要的前提保证;在已启动的虚拟机中载入预定的检测引擎及待检测样本,并运行检测引擎,实现了在新启动的沙箱虚拟化运行环境中通过预定检测引擎检测待检测样本,在保证检测环境未受污染的前提下进行检测,从而保证了检测结果的高准确性;通过检测引擎检测待检测样本,并生成待检测样本在虚拟机中运行的动态行为信息,通过分析动态行为信息,生成针对待检测样本的检测报告,提高了检测结果的完整性及准确性,同时,检测报告为管理员对待检测样本进行判断提供了重要的参考依据,极大的提高了检测效率。本发明可以应用于网络安全、终端安全、云安全、应用安全、安全管理和安全服务等多个领域。产品包括高中低端下一代防火墙、入侵防御系统、DDoS攻击防御系统、虚拟综合业务网关、沙箱、大数据安全分析系统等产品,以及相应的针对传统威胁及未知威胁的解决方案。以下针对各个步骤的具体实现做进一步的说明:步骤S110:检测到虚拟机启动指令时,依据启动指令启动相应操作系统运行环境的虚拟机。具体地,检测到虚拟机启动指令时,依据启动指令中的相关信息,启动相应操作系统运行环境的虚拟机。其中,操作系统运行环境包括以下至少一项:1)操作系统的类型,例如,WindowsXP、Windows7、Windows10等。2)操作系统的架构,例如,x86和x64等。3)操作系统的软件环境,例如,该操作系统中安装的软件,Office2007、Flash17和QQ2012等。4)操作系统的安全补丁环境,例如,Windows7SP1以及Windows3等。5)操作系统的语言,例如,英文和简体中文等。例如,在Xen平台的沙箱虚拟运行环境中,当检测到虚拟机启动指令时,该启动指令名称如“start001”,根据启动指令start001中包含的相关信息确定待启动虚拟机的标识信息,如“vm001”,以及该待启动虚拟机vm001的操作系统运行环境为Windows7,随后,启动名为“vm001”、操作系统为Windows7的虚拟机。优选地,步骤S110进一步包括步骤S111;步骤S111:检测到多条虚拟机启动指令时,依据各个启动指令依次启动相应操作系统运行环境的虚拟机。例如,在Xen平台的沙箱虚拟运行环境中,检测到虚拟机的启动指令start001和start002,根据启动指令start001中包含的相关信息确定待启动虚拟机的标识信息为“vm001”以及待启动虚拟机vm001的操作系统运行环境为Windows7,并根据启动指令start002中包含的相关信息确定待启动虚拟机的标识信息为“vm002”以及待启动虚拟机vm002的操作系统运行环境为Windows10,随后,依次启动操作系统为Windows7的虚拟机vm001和操作系统为Windows10的虚拟机vm002。优选地,步骤S110进一步包括步骤S112和步骤S113;步骤S112:确定与启动指令相应操作系统运行环境的虚拟机的系统镜像及对应的快照;步骤S113:基于系统镜像及对应的快照,在待启动的虚拟机中建立相应操作系统运行环境。例如,在Xen平台的沙箱虚拟运行环境中,检测到虚拟机的启动指令start001,根据启动指令start001中包含的相关信息确定待启动虚拟机的标识信息为“vm001”以及待启动虚拟机vm001的操作系统运行环境为Windows7,随后确定与启动指令start001相应操作系统运行环境为Windows7的虚拟机vm001的系统镜像,如“ISO-vm001”,及ISO-vm001对应的快照,如“Snapshot001”,随后,在待启动虚拟机vm001中通过系统镜像ISO-vm001创建操作系统运行环境为Windows7的虚拟机vm001,并通过ISO-vm001对应的快照Snapshot001,启动虚拟机vm001。通过本实施例,避免了在多次检测时,每次检测都启动一台全新虚拟机并在每次检测完成时关闭虚拟机所耗费的系统资源,极大的提高了虚拟化的性能,同时,通过快照的方式启动虚拟机,可快速的启动虚拟机,从而节约了启动虚拟机的时间,提高了检测的效率。步骤S120:在已启动的虚拟机中载入预定的检测引擎及待检测样本,并运行检测引擎。例如,在Xen平台的沙箱虚拟运行环境中,在已启动的虚拟机vm001中载入预定的检测引擎,如检测引擎A,及待检测样本,如一个URL的地址“www.XXXX.com”,随后运行检测引擎A,并在检测引擎A中运行该URL地址以进行相应的检测。具体地,例如,在接收到威胁检测任务后,通过Xen平台将威胁检测任务分发给分布式集群系统,为了进一步提升威胁数据检测的安全性,本发明中分布式集群系统可具体为分布式沙箱集群系统或分布式蜜罐系统(蜜罐是近年来发展起来的一门主动安全技术);分布式沙箱集群系统采用沙箱技术进行检测分析,沙箱为可疑样本日志提供了一个封闭的运行环境,这样,即使可疑样本日志对应的检测样本确实存在漏洞,也不会对服务器侧造成损害。分布式蜜罐系统采用蜜罐技术进行检测分析,其目的都是在一个隔离的虚拟环境下开展检测分析工作,保护系统不受影响。步骤S130:通过检测引擎检测待检测样本,并生成待检测样本在虚拟机中运行的动态行为信息。其中,待检测样本在虚拟机中运行的动态行为信息,包括以下至少一项:1)网络行为信息,例如,待检测样本在检测过程中访问的网络地址、提交的网络信息等行为。2)访问的文件信息,例如,待检测样本在检测过程中访问操作系统中的文件信息,包括读取、删除或移动文件的行为信息等。3)访问的注册表信息,例如,待检测样本在检测过程中访问的注册表信息,包括在注册表中注册信息、删除信息、修改信息或读取信息等行为。4)创建的进程信息,例如,待检测样本在检测过程中在操作系统中创建的进程的相关信息,及该进程在操作系统中的行为信息等。例如,接上例,通过检测引擎A检测待检测样本,并生成待检测样本即URL地址为“www.XXXX.com”的待检测样本在虚拟机vm001中运行的动态行为信息,如该URL地址的访问了虚拟机vm001操作系统的文件abc.txt的行为、将文件abc.txt中的相关信息提交至网络的行为信息、在虚拟机vm001操作系统中将注册表中的其中一个键值,如“xxx-xx-xx”的值修改为“0”的行为信息以及在虚拟机vm001操作系统中创建了进程process1的行为信息。其中,生成待检测样本在虚拟机中运行的动态行为信息的过程,具体可通过分布式沙箱集群系统或分布式蜜罐系统检测待检测样本的相关信息,或待检测样本的来源程序的相关信息,来生成检测样本在虚拟机中运行的动态行为信息;待检测样本的相关信息包括待检测样本的文件路径、和/或加密数据、和/或文件属性、和/或图标特征值、和/或文件特征值、和/或下载来源等相关信息;待检测样本的来源程序的相关信息包括来源程序的文件路径、和/或加密数据、和/或文件属性、和/或图标特征值、和/或文件特征值、和/或下载来源等相关信息。步骤S140:通过分析动态行为信息,生成针对待检测样本的检测报告。例如,接上例,通过分析检测引擎A生成的待检测样本即URL地址为“www.XXXX.com”的待检测样本在虚拟机vm001中运行的动态行为信息,生成针对待检测样本的检测报告,其中,该检测报告中包括对待检测样本检测的结论分析,如URL地址为“www.XXXX.com”的待检测样本为高危网络地址等。具体地,得到各可疑样本对应的运行日志作为结果数据,进行结果数据分析,得到每个可疑样本相关的特征信息,根据规则进行规则化判定,判断可疑样本是否为威胁样本,如果可疑样本不是威胁样本,看是否需要重新投放到沙箱中运行,如果不需要则放弃该可疑样本,如果需要则将该可疑样本重新投放到沙箱中运行;如果可疑样本是威胁样本,结构化该可疑样本相关的特征信息,再放入到威胁数据库中,从威胁数据库中筛选出符合推送条件的可疑样本相关的特征信息并推送至相应的数据源作为威胁分析依据,并接收数据源的反馈结果。本实施例威胁数据库中存储的原始威胁数据包含针对各种类型的网络恶意行为的分析结果,例如包含有关恶意网页的URL以及有关各种漏洞、病毒、木马、攻击的样本目标。除此之外,样本目标还包括:0Day,NDay,暴露期0Day,位置挂马信息,重要网站,位置挂马跟进等等。其中,0Day是已经被发现(有可能未被公开),而官方还没有相关补丁的漏洞。这些漏洞被发现后立即被恶意利用,例如利用0Day可以修改注册表、下载文件、运行系统文件。样本目标的格式可以是文件、可执行程序等,本发明对此不作限制。在一优选实施例中,该方法还包括步骤S150;步骤S150:预先生成与多种操作系统运行环境分别对应的虚拟机的系统镜像及对应的快照。例如,在Xen平台中,预先生成与多种操作系统运行环境分别对应的虚拟机的系统镜像及对应的快照,如预生成与操作系统运行环境为Windows7对应的虚拟机的系统镜像ISO-vm001及对应的快照Snapshot001,预生成与操作系统运行环境为Windows10对应的虚拟机的系统镜像ISO-vm002及对应的快照Snapshot002等。优选地,步骤S150进一步包括步骤S151、步骤S152、步骤S153和步骤S154;步骤S151:创建与预定操作系统运行环境对应的虚拟机的逻辑分区和逻辑卷,并设置逻辑分区和逻辑卷;步骤S152:配置虚拟机的配置文件;步骤S153:启动虚拟机,并在虚拟机中安装预定操作系统的镜像文件,以生成该预定操作系统运行环境对应的虚拟机的系统镜像;步骤S154:依据虚拟机的系统镜像,生成相应的快照。其中,配置的虚拟机的配置文件,包括以下任一项:配置预定操作系统运行环境;配置虚拟机的名称;配置虚拟机的内存大小;配置虚拟机的磁盘信息。例如,在Xen平台的沙箱虚拟运行环境中,创建与Windows7操作系统运行环境对应的虚拟机vm001的逻辑分区和逻辑卷,如将虚拟机vm001的磁盘划分为2个分区,C和D,并将分区C设置为主分区,并将分区C和分区D的类型设置为NTFS(NewTechnologyFileSystem,WindowsNT环境的文件系统),并设置分区C大小为10G,分区D大小为5G,将已创建的分区C和D设置为物理卷;配置虚拟机vm001的配置文件,包括配置虚拟机vm001中操作系统运行环境为Windows7、配置虚拟机vm001的名称为vm001、配置虚拟机vm001的内存大小为2G等;随后,在Xen平台中启动虚拟机vm001,并在虚拟机vm001中安装Windows7操作系统的镜像文件,如安装路径“…/path/to/system.iso”下的Windows7操作系统的镜像文件,以生成Windows7操作系统运行环境对应的虚拟机vm001的系统镜像ISO-vm001;随后,依据已生成的虚拟机vm001的系统镜像ISO-vm001,生成相应的快照Snapshot001。在一优选实施例中,该方法还包括步骤S160和步骤S170;步骤S160:设置启动指令的执行时间和检测单个待检测样本的执行时间;步骤S170:依据启动指令和检测单个待检测样本的执行时间,确定待启动虚拟机的最大启动数量。其中,多条虚拟机启动指令的指令数量不超过最大启动数量。例如,在Xen平台的沙箱虚拟运行环境中,设置启动指令的执行时间为6s和检测单个待检测样本的执行时间为120s,随后确定Xen平台中待启动虚拟机的最大启动数量为120/6,即20台。通过本实施例,实现了同时运行多台虚拟机进行检测的方式,进一步地的提高了检测的效率。在一优选实施例中,该方法还包括步骤S180、步骤S190和步骤S200;步骤S180:检测到任一台虚拟机启动后,通过桥接网络建立预定网段的局域网;步骤S190:通过预定局域网的网络协议,为任一台虚拟机分配预定网段的网络地址;步骤S200:基于已分配的预定网段的网络地址,任一台虚拟机通过预定的源地址转换机制访问外网。例如,参考图2,在Xen平台的沙箱虚拟运行环境中,检测到任一台虚拟机启动后,如检测到虚拟机vm1、vm2和vm3启动后,通过桥接网络建立预定网段为172.16.1.0/24的局域网,随后,通过预定局域网的网络协议,如DHCP(DynamicHostConfigurationProtocol,动态主机配置协议)服务,为虚拟机vm1、vm2和vm3分配该预定网段的网络地址分别为:172.16.1.101、172.16.1.102和172.16.1.103;随后,虚拟机vm1、vm2和vm3根据已分配的网络地址通过iptablesSNAT(用户空间中的源地址转换)机制实现虚拟机访问外网。图3为本发明中另一实施例的沙箱虚拟化的检测装置的结构示意图。本发明的实施例中,各模块所执行的内容概述如下:检测及启动模块310检测到虚拟机启动指令时,依据启动指令启动相应操作系统运行环境的虚拟机;载入及运行模块320在已启动的虚拟机中载入预定的检测引擎及待检测样本,并运行检测引擎;检测及生成模块330通过检测引擎检测待检测样本,并生成待检测样本在虚拟机中运行的动态行为信息;分析及生成模块340通过分析动态行为信息,生成针对待检测样本的检测报告。本发明的实施例中,提出了一种沙箱虚拟化的检测装置,检测到虚拟机启动指令时,依据启动指令启动相应操作系统运行环境的虚拟机,实现了在沙箱中动态建立与启动指令相匹配的虚拟化运行环境,为后续实现对待检测样本在该虚拟运行环境中进行检测提供了必要的前提保证;在已启动的虚拟机中载入预定的检测引擎及待检测样本,并运行检测引擎,实现了在新启动的沙箱虚拟化运行环境中通过预定检测引擎检测待检测样本,在保证检测环境未受污染的前提下进行检测,从而保证了检测结果的高准确性;通过检测引擎检测待检测样本,并生成待检测样本在虚拟机中运行的动态行为信息,通过分析动态行为信息,生成针对待检测样本的检测报告,提高了检测结果的完整性及准确性,同时,检测报告为管理员对待检测样本进行判断提供了重要的参考依据,极大的提高了检测效率。本发明可以应用于网络安全、终端安全、云安全、应用安全、安全管理和安全服务等多个领域。产品包括高中低端下一代防火墙、入侵防御系统、DDoS攻击防御系统、虚拟综合业务网关、沙箱、大数据安全分析系统等产品,以及相应的针对传统威胁及未知威胁的解决方案。以下针对各个模块的具体实现做进一步的说明:检测及启动模块310检测到虚拟机启动指令时,依据启动指令启动相应操作系统运行环境的虚拟机。具体地,检测到虚拟机启动指令时,依据启动指令中的相关信息,启动相应操作系统运行环境的虚拟机。其中,操作系统运行环境包括以下至少一项:1)操作系统的类型,例如,WindowsXP、Windows7、Windows10等。2)操作系统的架构,例如,x86和x64等。3)操作系统的软件环境,例如,该操作系统中安装的软件,Office2007、Flash17和QQ2012等。4)操作系统的安全补丁环境,例如,Windows7SP1以及Windows3等。5)操作系统的语言,例如,英文和简体中文等。例如,在Xen平台的沙箱虚拟运行环境中,当检测到虚拟机启动指令时,该启动指令名称如“start001”,根据启动指令start001中包含的相关信息确定待启动虚拟机的标识信息,如“vm001”,以及该待启动虚拟机vm001的操作系统运行环境为Windows7,随后,启动名为“vm001”、操作系统为Windows7的虚拟机。优选地,检测及启动模块310进一步包括检测及启动单元;检测及启动单元检测到多条虚拟机启动指令时,依据各个启动指令依次启动相应操作系统运行环境的虚拟机。例如,在Xen平台的沙箱虚拟运行环境中,检测到虚拟机的启动指令start001和start002,根据启动指令start001中包含的相关信息确定待启动虚拟机的标识信息为“vm001”以及待启动虚拟机vm001的操作系统运行环境为Windows7,并根据启动指令start002中包含的相关信息确定待启动虚拟机的标识信息为“vm002”以及待启动虚拟机vm002的操作系统运行环境为Windows10,随后,依次启动操作系统为Windows7的虚拟机vm001和操作系统为Windows10的虚拟机vm002。优选地,检测及启动模块310进一步包括第一确定单元和建立单元;第一确定单元确定与启动指令相应操作系统运行环境的虚拟机的系统镜像及对应的快照;建立单元基于系统镜像及对应的快照,在待启动的虚拟机中建立相应操作系统运行环境。例如,在Xen平台的沙箱虚拟运行环境中,检测到虚拟机的启动指令start001,根据启动指令start001中包含的相关信息确定待启动虚拟机的标识信息为“vm001”以及待启动虚拟机vm001的操作系统运行环境为Windows7,随后确定与启动指令start001相应操作系统运行环境为Windows7的虚拟机vm001的系统镜像,如“ISO-vm001”,及ISO-vm001对应的快照,如“Snapshot001”,随后,在待启动虚拟机vm001中通过系统镜像ISO-vm001创建操作系统运行环境为Windows7的虚拟机vm001,并通过ISO-vm001对应的快照Snapshot001,启动虚拟机vm001。通过本实施例,避免了在多次检测时,每次检测都启动一台全新虚拟机并在每次检测完成时关闭虚拟机所耗费的系统资源,极大的提高了虚拟化的性能,同时,通过快照的方式启动虚拟机,可快速的启动虚拟机,从而节约了启动虚拟机的时间,提高了检测的效率。载入及运行模块320在已启动的虚拟机中载入预定的检测引擎及待检测样本,并运行检测引擎。例如,在Xen平台的沙箱虚拟运行环境中,在已启动的虚拟机vm001中载入预定的检测引擎,如检测引擎A,及待检测样本,如一个URL的地址“www.XXXX.com”,随后运行检测引擎A,并在检测引擎A中运行该URL地址以进行相应的检测。具体地,例如,在接收到威胁检测任务后,通过Xen平台将威胁检测任务分发给分布式集群系统,为了进一步提升威胁数据检测的安全性,本发明中分布式集群系统可具体为分布式沙箱集群系统或分布式蜜罐系统(蜜罐是近年来发展起来的一门主动安全技术);分布式沙箱集群系统采用沙箱技术进行检测分析,沙箱为可疑样本日志提供了一个封闭的运行环境,这样,即使可疑样本日志对应的检测样本确实存在漏洞,也不会对服务器侧造成损害。分布式蜜罐系统采用蜜罐技术进行检测分析,其目的都是在一个隔离的虚拟环境下开展检测分析工作,保护系统不受影响。检测及生成模块330通过检测引擎检测待检测样本,并生成待检测样本在虚拟机中运行的动态行为信息。其中,待检测样本在虚拟机中运行的动态行为信息,包括以下至少一项:1)网络行为信息,例如,待检测样本在检测过程中访问的网络地址、提交的网络信息等行为。2)访问的文件信息,例如,待检测样本在检测过程中访问操作系统中的文件信息,包括读取、删除或移动文件的行为信息等。3)访问的注册表信息,例如,待检测样本在检测过程中访问的注册表信息,包括在注册表中注册信息、删除信息、修改信息或读取信息等行为。4)创建的进程信息,例如,待检测样本在检测过程中在操作系统中创建的进程的相关信息,及该进程在操作系统中的行为信息等。例如,接上例,通过检测引擎A检测待检测样本,并生成待检测样本即URL地址为“www.XXXX.com”的待检测样本在虚拟机vm001中运行的动态行为信息,如该URL地址的访问了虚拟机vm001操作系统的文件abc.txt的行为、将文件abc.txt中的相关信息提交至网络的行为信息、在虚拟机vm001操作系统中将注册表中的其中一个键值,如“xxx-xx-xx”的值修改为“0”的行为信息以及在虚拟机vm001操作系统中创建了进程process1的行为信息。其中,生成待检测样本在虚拟机中运行的动态行为信息的过程,具体可通过分布式沙箱集群系统或分布式蜜罐系统检测待检测样本的相关信息,或待检测样本的来源程序的相关信息,来生成检测样本在虚拟机中运行的动态行为信息;待检测样本的相关信息包括待检测样本的文件路径、和/或加密数据、和/或文件属性、和/或图标特征值、和/或文件特征值、和/或下载来源等相关信息;待检测样本的来源程序的相关信息包括来源程序的文件路径、和/或加密数据、和/或文件属性、和/或图标特征值、和/或文件特征值、和/或下载来源等相关信息。分析及生成模块340通过分析动态行为信息,生成针对待检测样本的检测报告。例如,接上例,通过分析检测引擎A生成的待检测样本即URL地址为“www.XXXX.com”的待检测样本在虚拟机vm001中运行的动态行为信息,生成针对待检测样本的检测报告,其中,该检测报告中包括对待检测样本检测的结论分析,如URL地址为“www.XXXX.com”的待检测样本为高危网络地址等。具体地,得到各可疑样本对应的运行日志作为结果数据,进行结果数据分析,得到每个可疑样本相关的特征信息,根据规则进行规则化判定,判断可疑样本是否为威胁样本,如果可疑样本不是威胁样本,看是否需要重新投放到沙箱中运行,如果不需要则放弃该可疑样本,如果需要则将该可疑样本重新投放到沙箱中运行;如果可疑样本是威胁样本,结构化该可疑样本相关的特征信息,再放入到威胁数据库中,从威胁数据库中筛选出符合推送条件的可疑样本相关的特征信息并推送至相应的数据源作为威胁分析依据,并接收数据源的反馈结果。本实施例威胁数据库中存储的原始威胁数据包含针对各种类型的网络恶意行为的分析结果,例如包含有关恶意网页的URL以及有关各种漏洞、病毒、木马、攻击的样本目标。除此之外,样本目标还包括:0Day,NDay,暴露期0Day,位置挂马信息,重要网站,位置挂马跟进等等。其中,0Day是已经被发现(有可能未被公开),而官方还没有相关补丁的漏洞。这些漏洞被发现后立即被恶意利用,例如利用0Day可以修改注册表、下载文件、运行系统文件。样本目标的格式可以是文件、可执行程序等,本发明对此不作限制。在一优选实施例中,该装置还包括生成模块;生成模块预先生成与多种操作系统运行环境分别对应的虚拟机的系统镜像及对应的快照。例如,在Xen平台中,预先生成与多种操作系统运行环境分别对应的虚拟机的系统镜像及对应的快照,如预生成与操作系统运行环境为Windows7对应的虚拟机的系统镜像ISO-vm001及对应的快照Snapshot001,预生成与操作系统运行环境为Windows10对应的虚拟机的系统镜像ISO-vm002及对应的快照Snapshot002等。优选地,生成模块进一步包括创建及设置单元、配置单元、启动及安装单元和生成单元;创建及设置单元创建与预定操作系统运行环境对应的虚拟机的逻辑分区和逻辑卷,并设置逻辑分区和逻辑卷;配置单元配置虚拟机的配置文件;启动及安装单元启动虚拟机,并在虚拟机中安装预定操作系统的镜像文件,以生成该预定操作系统运行环境对应的虚拟机的系统镜像;生成单元依据虚拟机的系统镜像,生成相应的快照。其中,配置的虚拟机的配置文件,包括以下任一项:配置预定操作系统运行环境;配置虚拟机的名称;配置虚拟机的内存大小;配置虚拟机的磁盘信息。例如,在Xen平台的沙箱虚拟运行环境中,创建与Windows7操作系统运行环境对应的虚拟机vm001的逻辑分区和逻辑卷,如将虚拟机vm001的磁盘划分为2个分区,C和D,并将分区C设置为主分区,并将分区C和分区D的类型设置为NTFS(NewTechnologyFileSystem,WindowsNT环境的文件系统),并设置分区C大小为10G,分区D大小为5G,将已创建的分区C和D设置为物理卷;配置虚拟机vm001的配置文件,包括配置虚拟机vm001中操作系统运行环境为Windows7、配置虚拟机vm001的名称为vm001、配置虚拟机vm001的内存大小为2G等;随后,在Xen平台中启动虚拟机vm001,并在虚拟机vm001中安装Windows7操作系统的镜像文件,如安装路径“…/path/to/system.iso”下的Windows7操作系统的镜像文件,以生成Windows7操作系统运行环境对应的虚拟机vm001的系统镜像ISO-vm001;随后,依据已生成的虚拟机vm001的系统镜像ISO-vm001,生成相应的快照Snapshot001。在一优选实施例中,该装置还包括设置模块和确定模块;设置模块设置启动指令的执行时间和检测单个待检测样本的执行时间;确定模块依据启动指令和检测单个待检测样本的执行时间,确定待启动虚拟机的最大启动数量。其中,多条虚拟机启动指令的指令数量不超过最大启动数量。例如,在Xen平台的沙箱虚拟运行环境中,设置启动指令的执行时间为6s和检测单个待检测样本的执行时间为120s,随后确定Xen平台中待启动虚拟机的最大启动数量为120/6,即20台。通过本实施例,实现了同时运行多台虚拟机进行检测的方式,进一步地的提高了检测的效率。在一优选实施例中,该装置还包括检测及建立模块、分配模块和访问模块;检测及建立模块检测到任一台虚拟机启动后,通过桥接网络建立预定网段的局域网;分配模块通过预定局域网的网络协议,为任一台虚拟机分配预定网段的网络地址;访问模块基于已分配的预定网段的网络地址,任一台虚拟机通过预定的源地址转换机制访问外网。例如,参考图2,在Xen平台的沙箱虚拟运行环境中,检测到任一台虚拟机启动后,如检测到虚拟机vm1、vm2和vm3启动后,通过桥接网络建立预定网段为172.16.1.0/24的局域网,随后,通过预定局域网的网络协议,如DHCP(DynamicHostConfigurationProtocol,动态主机配置协议)服务,为虚拟机vm1、vm2和vm3分配该预定网段的网络地址分别为:172.16.1.101、172.16.1.102和172.16.1.103;随后,虚拟机vm1、vm2和vm3根据已分配的网络地址通过iptablesSNAT(用户空间中的源地址转换)机制实现虚拟机访问外网。本
技术领域
:技术人员可以理解,本发明包括涉及用于执行本申请中所述操作中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-OnlyMemory,只读存储器)、RAM(RandomAccessMemory,随即存储器)、EPROM(ErasableProgrammableRead-OnlyMemory,可擦写可编程只读存储器)、EEPROM(ElectricallyErasableProgrammableRead-OnlyMemory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。本
技术领域
:技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本
技术领域
:技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。本
技术领域
:技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。以上所述仅是本发明的部分实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1