基于虚拟化环境的查杀方法及装置与流程

文档序号:12669933阅读:234来源:国知局
基于虚拟化环境的查杀方法及装置与流程

本发明涉及病毒查杀方法及装置,特别是涉及一种基于虚拟化环境的查杀方法及装置。



背景技术:

随着云计算的不断普及,虚拟化技术的应用越来越广。Gartner预测,到2016年,企业数据中心50%的安全控制将是虚拟化的。同时,虚拟化环境下的安全防护问题也日益突显。因此,针对虚拟化环境的安全部署方案十分重要。

早期的虚拟机病毒防护采用代理模式和无代理模式防病毒。在无代理模式中,需将一台虚拟机作为安全虚拟机,管理虚拟化环境下的其他虚拟机的安全。虚拟机上的文件被访问时都要先通过安全虚拟机检查然后再进行文件访问。这样虽然保证了文件的安全,但如果反复对同一文件进行检测,却导致了文件访问效率过低。



技术实现要素:

基于此,有必要针对文件访问效率过低的问题,提供基于虚拟化环境的查杀方法及装置。

一种基于虚拟化环境的查杀方法,包括:

接收文件的访问请求;

根据文件的访问请求获得文件信息;

根据所述文件信息,获取文件标识;

根据所述文件标识在可信文件记录中查找对应的可信项;

若未查找到对应的可信项,则将所述文件送往安全虚拟机进行检测;

接收所述安全虚拟机返回的检测结果;

若所述检测结果为文件安全,则将所述文件标识添加到可信文件记录中,并将所述文件存入可信文件缓存。

一种基于虚拟化环境的查杀装置,包括:

访问请求接收模块,用于接收文件的访问请求;

文件信息获取模块,用于根据文件的访问请求获得文件信息;

文件标识获取模块,用于根据所述文件信息,获取文件标识;

可信文件查找模块,用于根据所述文件标识在可信文件记录中查找对应的可信项;

文件传送模块,用于若未查找到对应的可信项,则将所述文件送往安全虚拟机进行检测;

检测结果接收模块,用于接收所述安全虚拟机返回的检测结果;

可信文件记录更新模块,用于若所述检测结果为文件安全,则将所述文件标识添加到可信文件记录中,并将所述文件存入可信文件缓存。

上述基于虚拟化环境的查杀方法及装置,先通过获取的文件信息获得文件标识,然后根据文件标识值从可信文件记录中查找该文件的信息,当可信文件记录没有对应的可信项时,才送往安全虚拟机进行进一步检测,并非直接送往安全虚拟机检测。在安全虚拟机返回结果安全时,将文件标识添加到可信文件记录中,下次查找时即可以找到对应的可信项,确认其为安全文件。同时,将文件存入可信文件缓存,下次访问该文件时,可直接从缓存中取用文件。该方法和装置利用可信文件记录的方法,减少了文件送往安全虚拟机进行检测的次数,使得可信文件不用每次都经过同样的检测,并且可以直接从可信文件缓存中取用文件,提高了文件访问效率。

附图说明

图1为一个实施例中的基于虚拟化环境的查杀方法的流程图;

图2为一个实施例中的将多个第一成员与多个所述第二成员按照排列顺序一一进行比较的流程示意图;

图3为一个实施例中的基于虚拟化环境的查杀装置的结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

使用无代理模式的防病毒方法中,物理主机上配置有安全虚拟机及虚拟机客户端,安全虚拟机对虚拟客户端进行安全防护。在虚拟机客户端中将有与PCI(Peripheral Component Interconnection,外围设备互联)插槽连接的设备(简称PCI设备)。一台计算机可以连接多个PCI设备,每台PCI设备需要相应的驱动程序来与计算机进行通讯。其中有一块特殊的PCI设备用于客户机与安全虚拟机之间的通信。相应地,此PCI设备具有PCI驱动程序完成这一任务。所述PCI驱动程序能够捕获系统内对文件的操作(如文件的打开、复制、读写等),也可以先将文件和文件的相关信息通过此驱动程序发送给安全虚拟机,从而进行检测或其他防病毒相关的工作。

如图1所示,在一个实施例中,提供了一种基于虚拟化环境的查杀方法,该方法具体包括以下步骤:

步骤102,接收文件的访问请求。

在步骤102中,客户端程序例如文件监控程序或者文件扫描程序等捕获到对文件的访问请求。

步骤104,根据文件的访问请求获得文件信息。

在步骤104中,对即将访问的文件进行安全检测来确定文件是否被病毒感染。进行安全检测需要文件信息,客户端程序通过调用线程、函数或者其他方法获取所需的文件信息。

步骤106,根据所述文件信息,获得文件标识。

在步骤106中,客户端在获取到所需的文件信息之后,可通过数学计算、函数运算或者其他方式获得文件标识,作为该文件的唯一标识,用于与其他文件区分。

步骤108,根据所述文件标识在可信文件记录中查找对应的可信项。

在步骤108中,客户端可通过将该文件标示值与可信文件记录中的可信项进行一一比对,以在可信文件记录中查找该文件标识的对应项是否存在,来初步判定所述文件是否安全。

步骤110,接收所述安全虚拟机返回的检测结果。

在步骤110中,安全虚拟机进行安全检测后将把结果返回给客户端,客户端接收安全虚拟机返回的结果。

步骤112,若未查找到所述对应项,则将所述文件送往安全虚拟机进行检测。

在步骤112中,若客户端的查找结果为可信文件记录中不存在与所述文件标识相应的相应时,则将文件发送给安全虚拟机,由安全虚拟机进行检测。安全虚拟机在进行文件检测后将会返回结果。相应的,若可信文件记录中存在与该文件标识相对应的对应项,则不需要进行排查,可以直接访问文件。

步骤114,若所述检测结果为文件安全,则将所述文件标识添加到可信文件记录中,并将所述文件存入可信文件缓存。

在步骤114中,客户端接收所述安全虚拟机返回的检测结果,若检测结果为文件安全,则将所述文件标识添加到可信文件记录中来记录此文件是安全的,将文件存入可信文件缓存以便下次访问时取用。此时,安全的文件可以直接进行访问。

具体的:

在一个实施例中,步骤104所述的文件信息包括但不限于:文件的路径和文件的大小。文件的路径通常是字符串的形式表达的文件绝对路径,文件的大小通常是以KB为单位的数值。所述文件信息的其他参数还可以包括文件的类型,创建时间,修改时间等。在本实施例中,仅以文件的路径和文件的大小作为文件信息。

在一个实施例中,步骤106所述的文件信息通常在消息或参数中以字符串或者数值的方式保存传递,其也可以被转换成字符串。可以通过字符串拼接函数、其他函数或者其他计算方法将文件信息中所包含的字符拼接成一个字符串。对拼接后形成的字符串,进行哈希运算,即得到所述文件标识。在本实施例中,哈希运算可以是采取任意加密算法的运算或任意其他算法。

在一个实施例中,步骤108中所述的可信文件记录包括多个可信项,所述可信项按照树状结构排列。在本实施例中,可信文件记录按照红黑树结构组织,利于提高查找效率。可信文件记录中的每个可信项对应红黑树中的一个节点,例如子节点或叶节点。

当开始根据文件标识查找可信文件记录之前,可先将文件标识进行一次哈希运算,来确定从红黑树中的哪一个节点开始进行查找,以缩小查找范围、加快查找速度,提高查杀效率。之后,对此节点所包含的所有子节点开始进行查找,查找过程如下:

首先,将所述文件标识拆分为多个第一成员,并以相同的拆分方式将可信项拆分为多个第二成员。所述的拆分方法可以是通过现有函数或者是其他计算方法。本实施例中,为了说明方便,文件标识的拆分结果称作第一数值组,可信项拆分后的结果称作第二数值组,这两个均为两个字符串。本实施例中只用拆分结果为两个的情况举例说明。但应注意,本发明实施时,还会有拆分结果为两个以上的情况。拆分后的结果可以为非字符串,比如整形、浮点数、字符或用户自定义的类型等多种类型。

拆分后的数值为两组,即第一数值组和第二数值组。每组包含被未拆分前的字符串中的一部分,作为数值组中的成员,即数值组中的所有成员按照一定顺序排列组合后可以形成未拆分前的字符串。字符串是按顺序被拆分,即若原字符串是a0c1e2g,按顺序拆分结果为a0c和1e2g两个字符串。应注意,本发明实施时,拆分结果还可能会为a0c1和e2g,以及a0、c1和e2g等多种拆分结果

同时,为了比较两个字符串,所采用的拆分方法必须完全一致。即,所述第一数值组中的成员个数应与第二数值组中的成员个数是相等的,且每个成员中的字符个数也应该是分别相等的。比如,若文件标识经拆分后得到的第一数值组中的成员是a0c和1e2g,共两个,第一成员包含3个字符,第二成员包含4个字符,则可信项经拆分后得到的第二数值组中的成员是h9j和kl8n,共两个,第一成员包含3个字符,第二成员包含4个字符。数值组成员个数与成员中的字符个数均为对应相等的关系。

然后,将所述多个第一成员与多个所述第二成员按照排列顺序一一进行比较。在本实施例中,可先将第一数值组中的第一成员与第二数值组中的第一成员相比较,比较方法可以采用比较函数、其他函数或者是其他计算方法将文件标识与可信项进行对比。

具体地,如图2所示,将拆分结果进行比较的步骤还包括下列步骤:

步骤1002:比较第一数值组中的第一成员与第二数值组中的第一成员。

步骤1004:若第一数值组中的第一成员与第二数值组中的第一成员相等,则继续比较第一数值组中的第二成员与第二数值组中的第二成员。

步骤1006:若第一数值组中的第二成员与第二数值组中的第二成员不相等,则未在可信文件记录中查找到所述文件标识对应的可信项。

步骤1008:比较第一数值组中的第二成员与第二数值组中的第二成员。

步骤1010:若第一数值组中的第二成员与第二数值组中的第二成员相等,则在可信文件记录中查找到所述文件标识对应的可信项。

步骤1012:若第一数值组中的第二成员与第二数值组中的第二成员不相等,则未在可信文件记录中查找到所述文件标识对应的可信项。

上述查找步骤结束之后,若所述多个第一成员组与所述多个第二成员均相同,则在可信文件记录中查找到对应的可信项。

具体为:第一数值组第一成员是a0c1,第二数值组第一成员是a0c1,第一数值组第二成员是e2g,第二数值组第二成员e2g,多个第一成员组与所述多个第二成员均相同,则在可信文件记录中查找到对应的可信项。所述查找到的可信项即为所述文件标识对应的可信项。

在其他实施例中,若数值组包括两个以上成员,方法同理。即,依次比较每一数值组中的相应成员,若某一组成员之间不相等,则判定可信文件记录中不存在与所述文件标识对应的可信项,否则将一直比较,直到将最后一组成员的比较完成。若所述多个第一成员组与所述多个第二成员均相同,则在可信文件记录中查找到对应的可信项,否则,则未在可信文件记录中查找到对应的可信项。

可以理解,上述拆分文件标识的过程只在查找开始时进行一次,而拆分可信项和将拆分结果进行比较过程在每个节点查找时都执行一次,即每次查询子节点都需要进行拆分当前被比较的可信项和进行比较的过程,直到查找到所述对应项或者遍历完全部节点。

在一个实施例中,步骤110中所述的安全虚拟机返回的结果类型可以是整形数值(比如0或1),也可以是布尔型变量、字符串或者是任意自定义的数据类型。所述返回结果用于表示该文件是否是安全。

在一个实施例中,步骤112所述的更新可信文件缓存可采用最近最少替换策略。即对文件被访问的时间进行排序,比如升序排序,然后从排序后的结果中查找被访问次数最小的一条,删除此条可信文件记录,将刚刚判定为安全的这一条可信文件记录存入其中。

在另外一个实施例中,步骤112中所述的可信文件缓存包括最近N个检测结果为文件安全的可信文件,其中N为预设阈值。N的取值与实际系统环境相关,一般为数千条。上述可信文件缓存中的文件是安全虚拟机检测结果为安全后的某一版本的内容,即使文件在置入缓存后感染病毒,但只要取用的是可信文件缓存中的内容,则能够保证所操作的文件是安全的版本。同时,一旦该文件被感染病毒,将会从可信文件记录及可信文件缓存中删除其相应的记录和信息,保证客户端将不会因为对感染病毒的文件进行操作而产生问题。

当文件不在可信文件记录中时,若安全虚拟机检测结果是其为安全文件,则将所述文件标识添加到可信文件记录中,并将所述文件存入可信文件缓存。

如图3所示,在一个实施例中,提供了一种基于虚拟化环境的查杀装置200的结构框图,该装置包括:

访问请求接收模块202,用于接收文件的访问请求。

文件信息获取模块204,用于根据文件的访问请求获得文件信息。所述文件信息获取模块用于接收文件访问请求并根据文件访问请求获得文件信息。

客户端程序例如文件监控程序或者文件扫描程序等捕获到对文件的访问请求时,会对即将访问的文件进行检测来确定文件是否被病毒感染。进行安全检测需要文件信息,文件信息获取模块202可通过调用线程、函数或者其他方法获取所需的文件信息。

文件标识获取模块206,用于获取所述文件标识。

客户端在获取到所需的文件信息之后,文件标识获取模块206可通过字符串拼接单元2062及哈希值计算单元2064获得文件标识,作为该文件的唯一标识,用于与其他文件区分。

可信文件查找模块208,用于查找可信文件记录中是否有与所述文件标识对应的可信项。

可信文件查找模块208通过在可信文件记录中查找该文件标识的对应项是否存在,来初步判定所述文件是否安全。

文件传送模块210,用于在未查找到所述对应项时,将文件送往安全虚拟机进行检测;

客户端的查找结果为可信文件记录中不存在与所述文件标识相应的相应时,文件传送模块210则将文件发送给安全虚拟机,由安全虚拟机进行检测。安全虚拟机在进行文件检测后将会返回结果。

检测结果接收模块212,用于接收所述安全虚拟机返回的检测结果。

安全虚拟机进行安全检测后将把结果返回给客户端,检测结果接收模块212接收安全虚拟机返回的结果。

可信文件记录更新模块214,用于接收所述安全虚拟机返回的检测结果,若检测结果为文件安全,则将所述文件存入可信文件缓存,并更新所述可信文件记录。

可信文件记录更新模块212接收所述安全虚拟机返回的检测结果,若检测结果为文件安全,则对该文件进行访问,并将文件存入可信文件缓存。同时,可信文件记录更新模块212将所述文件标识添加到可信文件记录中来记录此文件是安全的。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1