基于虚拟化环境下的安全防护方法及系统和物理主机与流程

文档序号:12467775阅读:264来源:国知局
基于虚拟化环境下的安全防护方法及系统和物理主机与流程

本发明涉及虚拟化技术领域,特别是涉及基于虚拟化环境下的安全防护方法及系统和物理主机。



背景技术:

随着硬件虚拟化技术的广泛应用,在一台物理主机上可以同时运行多个操作系统,操作系统之间相互隔离,使得对硬件设施的管理更加有效、灵活和节约。例如:可以将资源占用率高的物理主机上的虚拟机迁移到一个资源占用率低的物理主机上,从而达到资源的合理分配;又或者将资源占用率低的物理主机上虚拟机全部迁移到其它物理主机上,并关闭本台物理主机从而来达到节能的效果。但是这样传统操作系统部署中面临的安全威胁问题,在虚拟化的部署过程中也会面临。

为了解决虚拟化环境下虚拟机安全的问题,传统的解决办法如图1所示,需要在每台物理主机上的各个虚拟机中部署一套安全防护软件,从而达到与普通物理机上操作系统中安装的安全防护软件具有相同的功能。但在同一物理主机上的多个虚拟机中都部署一套安全防护产品,会造成对计算资源和存储资源的占用。为了减轻虚拟化环境中虚拟机重复部署安全防护软件造成的对计算资源和存储资源的占用,可采用一种轻代理的方式,轻代理方式是将安全防护软件中的大部分查询数据移到私有云或公有云中处理,虚拟机中只保留最低限度的安全引擎服务数据。但将安全防护软件中的数据移到云端服务器,虚拟机在进行安全引擎时,需要占用一定的网络带宽并对网络环境的响应速度有一定的要求,这样如果无网络或网络环境比较差时,安全防护软件将不能很好地对虚拟机起到防护作用。



技术实现要素:

基于此,有必要针对传统在同一物理主机的多个虚拟机中重复部署安全防护软件造成的资源占用及为了减轻对资源的占用将安全防护软件的数据移到云端服务器对网络环境要求较高的问题,提供一种基于虚拟化环境下的安全防护方法及系统和物理主机,不仅能减轻对计算资源或存储资源的占用,还对网络环境无要求。

为达到发明目的,提供一种基于虚拟化环境下的安全防护方法,所述方法包括:

从物理主机部署的多个虚拟机中选择出预设个数的虚拟机,并将选择出的虚拟机配置为安全虚拟机;

为所述物理主机中的每个虚拟机创建虚拟内存,各个所述虚拟机的虚拟内存对应同一物理内存空间;

当检测到有安全防护事件发生时,获取所述安全防护事件对应的待检测数据,并将所述待检测数据通过发生所述安全防护事件的虚拟机的虚拟内存写入所述物理内存空间;

利用所述安全虚拟机对所述物理内存空间中的待检测数据进行安全检测,得到相应的检测结果;

将所述检测结果反馈给将要发生安全防护事件的虚拟机。

在其中一个实施例中,所述从物理主机部署的多个虚拟机中选择出预设个数的虚拟机,并将选择出的虚拟机配置为安全虚拟机的步骤之后,还包括:

获取所述安全虚拟机的安全标记信息,并将所述安全标记信息分发给各个所述虚拟机;

当检测到所述虚拟机有安全防护事件发生时,根据所述安全标记信息将发生所述安全防护事件的虚拟机的标记信息发送给所述安全虚拟机,以通知所述安全虚拟机对所述安全防护事件对应的待检测数据进行安全检测。

在其中一个实施例中,所述为所述物理主机中的每个虚拟机创建虚拟内存,各个所述虚拟机的虚拟内存对应同一物理内存空间步骤包括:

在所述物理主机的物理内存中划分出预设内存作为所述共享内存空间;

建立各个所述虚拟机的虚拟内存与所述共享内存空间的映射关系;

利用所述映射关系将所述待检测数据写入或读出所述共享内存空间;

其中,所述共享内存空间为各个所述虚拟机的虚拟内存对应的同一物理内存空间。

在其中一个实施例中,所述共享内存空间根据所述物理主机中所述虚拟机的开启数量进行动态分配。

在其中一个实施例中,所述当检测到有安全防护事件发生时,获取所述安全防护事件对应的待检测数据,并将所述待检测数据通过发生所述安全防护事件的虚拟机的虚拟内存写入所述物理内存空间的步骤包括:

当检测到安全防护事件时,由所述安全防护事件中提取将要发生安全防护事件的虚拟机的第一标记信息,并由所述安全防护事件中提取所述待检测数据;

将所述第一标记信息发送给所述安全虚拟机,将所述待检测数据缓存到所述将要发生安全防护事件的虚拟机的第一虚拟内存中;

当接收到所述安全虚拟机反馈的安全检测信号时,根据所述映射关系将缓存在所述第一虚拟内存中的待检测数据写入所述共享内存空间中。

在其中一个实施例中,所述利用所述安全虚拟机对所述物理内存空间中的待检测数据进行安全检测,得到相应的检测结果,以及将所述检测结果反馈给发生安全防护事件的虚拟机的步骤包括:

获取所述安全虚拟机对所述物理内存空间中的待检测数据进行安全检测的检测结果;

由所述检测结果中提取与所述待检测数据对应的虚拟机的第一标记信息和所述待检测数据的安全信息;

根据所述第一标记信息将所述待检测数据的安全信息反馈给与所述第一标记信息相对应的虚拟机。

本发明还提供一种基于虚拟机环境下的安全防护系统,所述系统包括:

配置模块,用于从物理主机部署的多个虚拟机中选择出预设个数的虚拟机,并将选择出的虚拟机配置为安全虚拟机;

创建模块,用于为所述物理主机中的每个虚拟机创建虚拟内存,各个所述虚拟机的虚拟内存对应同一物理内存空间;

写入模块,用于当检测到有安全防护事件发生时,获取所述安全防护事件对应的待检测数据,并将所述待检测数据通过发生所述安全防护事件的虚拟机的虚拟内存写入所述物理内存空间;

检测模块,用于利用所述安全虚拟机对所述物理内存空间中的待检测数据进行安全检测,得到相应的检测结果,并将所述检测结果反馈给将要发生安全防护事件的虚拟机。

在其中一个实施例中,还包括:

获取模块,用于在从物理主机的多个虚拟机中选择出预设个数的虚拟机,并将选择出的虚拟机配置为安全虚拟机之后,获取所述安全虚拟机的安全标记信息,并将所述安全标记信息分发给各个所述虚拟机;

发送模块,用于当检测到所述虚拟机有安全防护事件发生时,根据所述安全标记信息将发生所述安全防护事件的虚拟机的标记信息发送给所述安全虚拟机,以通知所述安全虚拟机对所述安全防护事件对应的待检测数据进行安全检测。

在其中一个实施例中,所述创建模块包括:

划分单元,用于在所述物理主机的物理内存中划分出预设内存作为所述共享内存空间;

建立单元,用于建立各个所述虚拟机的虚拟内存与所述共享内存空间的映射关系;

写入读出单元,用于利用所述映射关系将所述待检测数据写入或读出所述共享内存空间;

其中,所述共享内存空间为各个所述虚拟机的虚拟内存对应的同一物理内存空间。

在其中一个实施例中,所述共享内存空间根据所述物理主机中所述虚拟机的开启数量进行动态分配。

在其中一个实施例中,所述写入模块包括:

第一提取单元,用于当检测到安全防护事件时,由所述安全防护事件中提取将要发生安全防护事件的虚拟机的第一标记信息,并由所述安全防护事件中提取所述待检测数据;

发送缓存单元,用于将所述第一标记信息发送给所述安全虚拟机,将所述待检测数据缓存到所述将要发生安全防护事件的虚拟机的第一虚拟内存中;

写入单元,用于当接收到所述安全虚拟机反馈的安全检测信号时,根据所述映射关系将缓存在所述第一虚拟内存中的待检测数据写入所述共享内存空间中。

在其中一个实施例中,所述检测模块包括:

获取单元,用于获取所述安全虚拟机对所述物理内存空间中的待检测数据进行安全检测的检测结果;

第二提取单元,用于由所述检测结果中提取与所述待检测数据对应的虚拟机的第一标记信息和所述待检测数据的安全信息;

反馈单元,用于根据所述第一标记信息将所述待检测数据的安全信息反馈给与所述第一标记信息相对应的虚拟机。

本发明还提供一种物理主机,包括多个虚拟机和物理内存,还包括:

配置模块,用于从物理主机部署的多个虚拟机中选择出预设个数的虚拟机,并将选择出的虚拟机配置为安全虚拟机;

创建模块,用于为所述物理主机中的每个虚拟机创建虚拟内存,各个所述虚拟机的虚拟内存对应同一物理内存空间;

写入模块,用于当检测到虚拟机有安全防护事件发生时,获取所述安全防护事件对应的待检测数据,并将所述待检测数据通过发生所述安全防护事件的虚拟机的虚拟内存写入所述物理内存空间;

检测模块,用于利用所述安全虚拟机对所述物理内存空间中的待检测数据进行安全检测,得到相应的检测结果,并将所述检测结果反馈给将要发生安全防护事件的虚拟机。

本发明的有益效果包括:

上述基于虚拟化环境下的安全防护方法及系统和物理主机,不仅减轻了在同一物理主机的多个虚拟机上重复部署安全防护软件对计算资源或存储资源的占用,而且还克服了传统将安全防护软件安装在私有云或公有云中对网络带宽或对网络环境的响应速度有一定要求的限制,其无需进行网络传输,对网络资源和网络环境没有要求,在各个虚拟机之间进行安全检测时,简便高效,保证每个虚拟机的安全,从而提高了物理主机在虚拟化环境下的安全性能。

附图说明

图1为一个实施例中的传统部署多个安全虚拟机的物理主机的结构示意图;

图2为一个实施例中的部署一个安全虚拟机的物理主机的结构示意图;

图3为一个实施例中的基于虚拟化环境下的安全防护方法的流程示意图;

图4为另一个实施例中的基于虚拟化环境下的安全防护方法的流程示意图;

图5为一个实施例中的基于虚拟化环境下的安全防护系统的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明基于虚拟化环境下的安全防护方法及系统和物理主机进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

在一个实施例中,如图2、3所示,提供了一种基于虚拟化环境下安全防护方法,该方法包括以下步骤:

S100,从物理主机部署的多个虚拟机中选择出预设个数的虚拟机,并将选择出的虚拟机配置为安全虚拟机。

S200,为物理主机中的每个虚拟机创建虚拟内存,各个虚拟机的虚拟内存对应同一物理内存空间。

S300,当检测到有安全防护事件发生时,获取安全防护事件对应的待检测数据,并将待检测数据通过发生安全防护事件的虚拟机的虚拟内存写入物理内存空间。

S400,利用安全虚拟机对物理内存空间中的待检测数据进行安全检测。得到相应的检测结果,将检测结果反馈给将要发生安全防护事件的虚拟机。

本实施例中,虚拟机监管层中的事件管理器为物理主机的每个虚拟机都创建一个虚拟内存,每个虚拟机的虚拟内存对应同一物理内存空间,这样使得多个虚拟机之间可以通过访问该物理内存空间实现相互之间的直接通信,即同一物理主机内的各个虚拟机之间不再是相互隔离的,而是相互之间存在通信功能。同时,从物理主机的多个虚拟机中选择出预设个数的虚拟机作为安全虚拟机,该预设个数可以是一个、两个或多个,具体根据需求而定。例如:从多个虚拟机中选择一个、两个或多个虚拟机作为安全虚拟机,优选地,在物理主机运行的多个虚拟机中选择资源占用率低或物理资源大的一个、两个或多个虚拟机作为安全虚拟机;优选地,从物理主机的多个虚拟机中任意地选出一个作为安全虚拟机。其中,安全虚拟机可以实现对各种安全相关事件的实际处理。具体地,从多个虚拟机中任意选一个为其配置安全防护软件,使其成为安全虚拟机,以对其它虚拟机执行安全检测。由于不必为每个虚拟机都配置一个安全防护软件,因此减轻了虚拟化环境下在物理主机的多个虚拟机中重复配置安全防护软件造成的对计算资源和存储资源的浪费。并且,执行上述步骤的事件管理器相当于各个虚拟机之间的一个通信管道,各个虚拟机之间可通过该通信管道进行直接通信,即各个虚拟机之间的事件信息及数据通过该通信管道进行传输,而物理内存空间只起到一个存储数据的作用。其中,事件管理器为运行在虚拟机监管层中的软件。当检测到有安全防护事件发生时,例如:当不是安全虚拟机的虚拟机发生安全防护事件时,因为其自身没有配置安全防护软件,所以不能直接对其将要发生的安全防护事件对应的待检测数据进行安全检测,此时该虚拟机可以将待检测数据通过其虚拟内存对应的存入上述物理内存空间中,由于安全虚拟机可以对该物理内存空间进行直接访问,因此安全虚拟机能够实现对将要发生安全防护事件的虚拟机的待检测数据进行安全检测,该将要发生安全防护事件的虚拟机便可根据安全虚拟机的对待检测数据进行安全检测的检测结果决定是否执行该安全防护事件;又如:当安全虚拟机发生安全防护事件时,安全虚拟机中的安全防护软件直接对其将要执行的安全防护事件对应的待检测数据进行安全检测,该检测过程与传统的安装有安全防护软件的虚拟机执行安全检测的过程类似,此处不再详述。在上述安全检测过程中,各个虚拟机对待检测数据进行安全检测的过程都是在物理主机内部进行的,安全防护软件的数据没有移到云端服务器,对网络环境和网络响应速度没有要求,因此能够克服传统将安全防护软件安装在私有云或公有云中对网络带宽或对网络环境的响应速度有一定要求的限制。

本实施例中的基于虚拟化环境下的安全防护方法,不仅减轻了在同一物理主机的多个虚拟机上重复部署安全防护软件对计算资源或存储资源的占用,而且还无需进行网络传输,对网络资源和网络环境没有要求,在各个虚拟机之间进行安全检测时,简便高效,保证每个虚拟机的安全,从而提高了物理主机在虚拟化环境下的安全性能。

需要说明的是,本实施例中只有安全虚拟机中配置了对各种安全相关事件处理的数据,而其他的虚拟机中均没有任何与处理各种安全事件相关的数据,因此相比传统的将安全防护软件中的大部分数据移到私有云或公有云,而各个虚拟机只保留最低限度的与处理各种安全事件相关的数据来说,除了安全虚拟机之外,其它虚拟机是没有任何代理的,因此,本实施例中的对待检测数据进行安全检测的方式可以称为“无代理防病毒机制”或“无代理安全防护机制”。其中,待检测数据包括文件数据、网址数据、访问路径数据和注册表读写数据等。

在一个实施例中,参见图4,在步骤S100之后,还包括:

S101,获取安全虚拟机的安全标记信息,并将安全标记信息发给各个虚拟机。

S102,当检测到虚拟机有安全防护事件发生时,根据安全标记信息将发生安全防护事件的虚拟机的标记信息发送给安全虚拟机,以通知安全虚拟机对安全防护事件对应的待检测数据进行安全检测。

在将物理主机中的某些虚拟机配置为安全虚拟机之后,获取该安全虚拟机的标记信息作为安全标记信息分发给该物理主机中的其它虚拟机,以告知其它虚拟机哪个是安全虚拟机,方便其它虚拟机有安全防护事件发生时,通知该安全虚拟机执行相应的安全防护功能。其中,值得说明的是,如果有两个以上的安全虚拟机,则当非安全虚拟机有安全防护事件发生时,可以将该安全防护事件通知给所有的安全虚拟机,以充分保证非安全虚拟机的安全性。优选的,将该安全防护事件通知给其中的一个安全虚拟机,以避免重复的执行安全防护功能,造成资源的占用。更进一步地,还可分别将不同的安全防护事件通知给不同的安全虚拟机,以使不同的安全虚拟机对不同的安全防护事件执行安全防护功能,提高防护效率。例如:安全虚拟机为两个,当第一安全虚拟机执行安全防护功能时,检测到有新的安全防护事件,则将该新的安全防护事件通知给第二安全虚拟机,使第二安全虚拟机对新的安全防护事件执行安全防护功能。

在一个实施例中,步骤S200包括:

S210,在物理主机的物理内存中划分出预设内存作为共享内存空间。

S220,建立各个虚拟机的虚拟内存与共享内存空间的映射关系。

S230,利用映射关系将待检测数据写入或读出共享内存空间。

其中,共享内存空间为各个虚拟机的虚拟内存对应的同一物理内存空间。

上述为同一物理主机中的各个虚拟机共享同一物理内存空间的具体过程,即各个虚拟机之间实现物理内存空间共享是把物理内存映射成虚拟机内的PCI(Peripheral Component Interconnect,外设部件互连标准)设备来实现的。具体地,在物理内存中划分出一块内存(预设内存)来作为各个虚拟机的共享内存空间,该共享内存空间用于各个虚拟机的待检测数据的存入和读出;使用传统的仿真软件(qemu,一种开源的仿真软件)将VMM(Virtual Machine Monitor,虚拟机监管器)层中的一段存储空间仿真为虚拟机的虚拟内存,虚拟内存用于缓存各个虚拟机的待检测数据,虚拟内存的设置可以减少待检测数据对物理内存的占用,提高物理主机的处理效率;然后通过建立虚拟内存与共享内存空间之间的映射关系来实现各个虚拟机共享同一物理内存空间,即共享内存空间的内存地址与各个虚拟机的虚拟内存地址相对应,这样当某一虚拟机将其待检测数据写入其虚拟内存时,相当于将待检测数据写入了共享内存空间(利用映射关系将待检测数据写入了共享内存空间),其它虚拟机可以根据各自的虚拟内存与共享内存空间的映射关系从共享内存空间中读取待检测数据;在外部看来,某一虚拟机只要将其对应的待检测数据写入其虚拟内存之后,其它的虚拟机便可对该待检测数据进行处理,各个虚拟机的虚拟内存之间是相互透明的。其中,传统的仿真软件可以仿真出各种设备,例如:虚拟网卡、虚拟磁盘、虚拟PCI设备。在一个实施例中,各个虚拟机对共享内存空间进行读写操作时采用串口的通信方式进行读写,简单方便。

其中,VMM负责各个虚拟机的调度,VMM将各个虚拟机作为一个调度单元,按照时间片轮询方式调度。即在同一物理主机上各个虚拟机在宏观上是同时执行的,而实际上每个虚拟机有一定的执行时间,每个虚拟机在指定的执行时间内运行,达到指定的执行时间后,释放占用的资源,以便其它虚拟机使用。

在一个实施例中,共享内存空间根据物理主机中虚拟机的开启数量进行动态分配。

在物理内存中划分各个虚拟机的共享内存空间时,根据物理主机中虚拟机的开启数量进行动态分配,可减少各个虚拟机对物理内存的空间占用,从而提高物理主机的处理效率。

更进一步地,共享内存空间根据虚拟机的开启数量及各个虚拟机的虚拟内存的大小来进行动态分配,可进一步减少各个虚拟机对物理内存的空间占用。

当然,共享内存空间的大小也可根据物理主机中所有虚拟机总共需要的物理内存大小来预留。这种分配方法简单方便,易于实现,但这个预留的物理内存空间将不能用于处理其他数据,将会影响物理主机的处理效率。

进一步地,在为各个虚拟机划分共享内存空间,采用伙伴分配(buddysystem)方法进行划分,伙伴分配是一种经典的内存分配算法。伙伴分配的实质就是一种特殊的“分离适配”,即将内存按2的幂进行划分,相当于分离出若干个块大小一致的空闲链表,搜索该链表并给出同需求最佳匹配的大小。其优点是快速搜索合并(O(logN)时间复杂度)以及低外部碎片(最佳适配best-fit);其缺点是内部碎片,因为按2的幂划分块,如果碰上66单位大小,那么必须划分128单位大小的块。但若需求本身就按2的幂分配,比如可以先分配若干个内存池,在其基础上进一步细分就很有吸引力了。

在一个实施例中,步骤S300包括:

S310,当检测到安全防护事件时,由安全防护事件中提取将要发生安全防护事件的虚拟机的第一标记信息,并由安全防护事件中提取待检测数据。

S320,将第一标记信息发送给安全虚拟机,将待检测数据缓存到将要发生安全防护事件的虚拟机的第一虚拟内存中。

S330,当接收到安全虚拟机反馈的安全检测信号时,根据映射关系将缓存在第一虚拟内存中的待检测数据写入共享内存空间中。

安全防护事件通常由虚拟机中的驱动单元来捕获,当虚拟机捕获到安全防护事件后,将该安全防护事件发送给事件管理器,事件管理器由该安全防护事件中提取发送安全防护事件的虚拟机的第一标记信息和该安全防护事件对应的待检测数据,将待检测数据缓存在第一虚拟内存中,此处将待检测数据缓存在第一虚拟内存中而不是共享物理内存中可以减少对物理内存的占用,提高物理内存的处理速度,同时将第一标记信息发送给安全虚拟机,告知安全虚拟机发生安全防护事件的是第一虚拟机,当安全虚拟机(物理主机开启时,安全虚拟机不一定也开启)处于开启状态时,向第一虚拟机反馈安全检测信号,当安全虚拟机没有开启时,事件管理器控制安全虚拟机开启,并将第一标记信息发送给安全虚拟机,安全虚拟机接收到第一标记信息后,反馈安全检测信号给第一虚拟机,第一虚拟机接收到安全检测信号后,根据虚拟内存与共享内存空间的映射关系将其虚拟内存中缓存的待检测数据写入共享内存空间中,安全虚拟机便可通过访问共享内存空间对该待检测数据进行安全检测,从而保证该第一虚拟机的安全。

在一个实施例中,步骤S400包括:

S410,获取安全虚拟机对物理内存空间中的待检测数据进行安全检测的检测结果。

S420,由检测结果中提取与待检测数据对应的虚拟机的第一标记信息和待检测数据的安全信息。

S430,根据第一标记信息将待检测数据的安全信息反馈给与第一标记信息相对应的虚拟机。

安全虚拟机对共享内存空间内的待检测数据进行安全检测后,会将安全检测的检测结果发送给事件管理器,事件管理器从该检测结果中提取待检测数据的安全信息和第一标记信息,其中第一标记信息告知事件管理器该检测结果是哪个虚拟机对应的检测结果,从而便于事件管理器将该检测结果反馈给第一虚拟机,避免将检测结果反馈给其它的虚拟机而出现安全检测故障,第一虚拟机接收到安全信息时,根据该安全信息决定是否执行安全防护事件,从而实现同一物理主机中的多个虚拟机通过一个安全虚拟机保证安全性,克服传统将安全防护软件安装在私有云或公有云中对网络带宽或对网络环境的响应速度有一定要求的限制。

其中,需要说明的是,如果安全虚拟机同时接收到多个虚拟机的标记信息,即同时有多个虚拟机需要进行安全检测,则安全虚拟机可以同时对多个安全防护事件进行处理,此时,安全虚拟机反馈的检测结果中一定携带有该检测结果将要反馈给的虚拟机的标记信息,即安全虚拟机在对共享存储空间中的待检测数据进行安全检测时,会预先获知发送该待检测数据的虚拟机的标记信息,并将该标记信息加入到检测结果中,从而有效防止将检测结果反馈给错误的虚拟机的情况发生,进一步保证虚拟机的安全性。当然,安全虚拟机也可按照先来后到的顺序或预设优先级的顺序来对各个虚拟机的待检测数据进行安全检测。

优选地,在一个实施例中,如果多个虚拟机并发安全防护事件时,当并发安全防护事件的数目没有超出预设个数时,安全虚拟机对同时发生安全防护事件的多个虚拟机同时处理,当并发安全防护事件的数目超出预设个数时,按照先来后到或预设优先级的顺序对多个虚拟机进行处理,这样一方面可提高检测效率,另一方面也可避免安全虚拟机同一时间执行过多的安全检测事件时出现的死机现象。

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

在一个实施例中,如图5所示,还提供了一种基于虚拟化环境下的安全防护系统,该系统包括:配置模块100,用于从物理主机的多个虚拟机中选择出预设个数的虚拟机,并将选择出的虚拟机配置为安全虚拟机。创建模块200,用于为物理主机中的每个虚拟机创建虚拟内存,各个虚拟机的虚拟内存对应同一物理内存空间。写入模块300,用于当检测到有安全防护事件发生时,获取安全防护事件对应的待检测数据,并将待检测数据通过发生安全防护事件的虚拟机的虚拟内存写入物理内存空间。检测模块400,用于利用安全虚拟机对所述物理内存空间中的待检测数据进行安全检测,得到相应的检测结果,并将检测结果反馈给将要发生安全防护事件的虚拟机。

本实施例中的基于虚拟化环境下的安全防护系统,不仅减轻了在同一物理主机的多个虚拟机上重复部署安全防护软件对计算资源或存储资源的占用,而且还克服了传统将安全防护软件安装在私有云或公有云中对网络带宽或对网络环境的响应速度有一定要求的限制,其无需进行网络传输,对网络资源和网络环境没有要求,在各个虚拟机之间进行安全检测时,简便高效,保证每个虚拟机的安全,从而提高了物理主机在虚拟化环境下的安全性能。

在一个实施例中,还包括:获取模块101,用于在从物理主机的多个虚拟机中选择出预设个数的虚拟机,并将选择出的虚拟机配置为安全虚拟机之后,获取安全虚拟机的安全标记信息,并将安全标记信息发送给物理主机中各个非安全虚拟机。

发送模块102,用于当检测到非安全虚拟机有安全防护事件发生时,根据安全标记信息将发生安全防护事件的非安全虚拟机的标记信息发送给安全虚拟机,以通知安全虚拟机对安全防护事件对应的待检测数据进行安全检测.

在一个实施例中,创建模块200包括:划分单元210,用于在物理主机的物理内存中划分出预设内存作为共享内存空间。建立单元220,用于建立各个虚拟机的虚拟内存与共享内存空间的映射关系。写入读出单元,用于利用映射关系将待检测数据写入或读出共享内存空间。其中,共享内存空间为各个虚拟机的虚拟内存对应的同一物理内存空间。

在一个实施例中,共享内存空间根据所述物理主机中所述虚拟机的开启数量进行动态分配。

在一个实施例中,写入模块300包括:第一提取单元310,用于当检测到安全防护事件时,由安全防护事件中提取将要发生安全防护事件的虚拟机的第一标记信息,并由安全防护事件中提取所述待检测数据。发送缓存单元320,用于将第一标记信息发送给安全虚拟机,将待检测数据缓存到将要发生安全防护事件的虚拟机的第一虚拟内存中。写入单元330,用于当接收到安全虚拟机反馈的安全检测信号时,根据映射关系将缓存在第一虚拟内存中的待检测数据写入所述共享内存空间中。

在一个实施例中,检测模块400包括:获取单元410,用于获取安全虚拟机对物理内存空间中的待检测数据进行安全检测的检测结果。第二提取单元420,用于由检测结果中提取与待检测数据对应的虚拟机的第一标记信息和待检测数据的安全信息。反馈单元430,用于根据第一标记信息将待检测数据的安全信息反馈给与第一标记信息相对应的虚拟机。

由于此系统解决问题的原理与前述一种基于虚拟化环境下的安全防护方法相似,因此该系统的实施可以参见前述方法的实施,重复之处不再赘述。

在一个实施例中,还提供一种物理主机,包括多个虚拟机和物理内存,还包括:配置模块100,用于从物理主机部署的多个虚拟机中选择出预设个数的虚拟机,并将选择出的虚拟机配置为安全虚拟机。创建模块200,用于为物理主机中的每个虚拟机创建虚拟内存,各个虚拟机的虚拟内存对应同一物理内存空间。写入模块300,用于当检测到虚拟机有安全防护事件发生时,获取安全防护事件对应的待检测数据,并将待检测数据通过发生安全防护事件的虚拟机的虚拟内存写入物理内存空间。获取防护模块400,用于利用安全虚拟机对所述物理内存空间中的待检测数据进行安全检测,得到相应的检测结果,并将检测结果反馈给将要发生安全防护事件的虚拟机。

本实施例中的物理主机,不仅减轻了在同一物理主机的多个虚拟机上重复部署安全防护软件对计算资源或存储资源的占用,而且还克服了传统将安全防护软件安装在私有云或公有云中对网络带宽或对网络环境的响应速度有一定要求的限制,其无需进行网络传输,对网络资源和网络环境没有要求,在各个虚拟机之间进行安全检测时,简便高效,保证每个虚拟机的安全,从而提高了物理主机在虚拟化环境下的安全性能。

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

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

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