一种数据包重定向装置、虚拟机安全保护方法及系统的制作方法

文档序号:7824409阅读:453来源:国知局
一种数据包重定向装置、虚拟机安全保护方法及系统的制作方法
【专利摘要】本发明公开了一种数据包重定向装置、虚拟机安全保护方法及系统。该方法包括:监听虚拟机监控器内核网络栈,将数据包发送到加速单元;计算数据包特征,查询数据包快速转发表,在不存在对应于所述数据包特征的转发规则的情况下,将数据包提交给重定向单元;重定向单元判断数据包是否来自虚拟化安全网关,当来自所述虚拟化安全网关时,查询数据包重定向表,当存在所述数据包的基本信息时,将数据包返回所述虚拟机监控器网络协议栈,当不来自所述虚拟化安全网关时,将数据包的基本信息记录至所述数据包重定向表,并将数据包发送给所述虚拟化安全网关。本发明能够灵活实现数据重定向,避免手动配置虚拟交换机的麻烦,加快数据包重定向的处理过程。
【专利说明】一种数据包重定向装置、虚拟机安全保护方法及系统

【技术领域】
[0001]本发明涉及信息安全领域,尤其涉及一种数据包重定向装置、虚拟机安全保护方法及系统。

【背景技术】
[0002]服务器虚拟化指将一台物理服务器通过软件硬件技术抽象为多台虚拟机,各虚拟机就像实际的物理机一样,可以安装操作系统。各虚拟机逻辑上互联隔离,但共享同一台物理服务器的CPU,内存,I/O等资源。
[0003]服务器虚拟化为实现灵活的资源管理和更高的服务器资源利用率提供了基础,该技术已经成为当前企业数据中心信息化建设的核心技术。
[0004]然而,服务器虚拟化面临虚拟机隔离失效及虚拟机间通信监控失效风险。
[0005]虚拟机隔离失效指虚拟机相互干扰,图1示出了虚拟机隔离失效及监控失效的示意图。如图1所示,虚拟机101和虚拟机102都连接到同一个虚拟交换设备上,如果没有在虚拟机交换机上设置访问控制策略,虚拟机101发送的所有数据包都可以能被虚拟机102所监听。另外,这种情况下,虚拟机101也可以向虚拟机102发送大量连接请求,导致虚拟机102拒绝服务其他请求处理。
[0006]虚拟机间通信监控失效指运行同一物理服务器上虚拟机之间通信不能被传统的监控系统所感知。再次参考图1,虚拟机102和虚拟机103可以通过虚拟监控器内部的虚拟交换机进行通信,但通信流量不能被外部的网关系统所感知,导致监控失效。
[0007]针对虚拟机隔离失效及流量监控失效问题,目前主要通过两种方法来实现虚拟机流量监控和虚拟机隔离。
[0008]第一种方法如图2所示,该方法是通过使用新的交换技术和硬件设备,将虚拟机间的通信流量重定向到外部安全系统。这种方法的优点是可以利用已有的安全系统资源。不足的是需要修改虚拟机监控器内核,特别是网卡驱动,以实现虚拟机流量识别和分发,同时需要增加新的网络硬件设备,如新的物理交换机,对用户而言成本较高。
[0009]目前,设备厂商提出了将流量重定向到服务器外部网络设备的技术,如CiscoVN-tag,以及HP VEPA(virtrual Earth Port Aggriate)技术。基于这些技术,服务器外部署的安全系统也就能够实现对虚拟机隔离和流量监控目的。
[0010]第二种方法如图3所示,该方法是将普通虚拟机流量重定向到部署有安全系统的虚拟机上,主要采用修改虚拟交换机端口转发配置来实现流量重定向。该方法的优点是不用修改虚拟化软件内核代码,可适用于不同虚拟化平台,只要平台支持虚拟交换机。不足之处是每接入一个虚拟机就要进行虚拟交换机配置修改,管理不方便;同时,随着虚拟机数量和通信流量增加,安全系统的性能瓶颈也将出现。
[0011]目前,商用虚拟化软件中都支持基于虚拟交换机的重定向方法,主流开源虚拟化软件也都支持虚拟机交换流重定向配置功能。
[0012]当前,诸如北京网御星云信息技术有限公司的虚拟化网关系列产品就采用了第二类重定向方法来实现虚拟机安全。
[0013]对于第二种方法,北京网御星云信息技术有限公司于2011年7月25日提出了申请号为201110208735.X、题为“用于服务器虚拟化的虚拟网关防护方法,安全网关及系统”的专利申请。该专利申请的技术方案采用了第二类流量重定向方法,即虚拟机流量重定向到安装有监控系统的虚拟机中,该虚拟机称为虚拟安全网关。该专利申请的技术方案包括以下步骤:
[0014]1.虚拟监控器VMM中的虚拟子网络通过各自的虚拟交换机向其他虚拟子网络发送通信流量,并接收其它虚拟子网络发出的通信流量。
[0015]2.在VMM层潜入重定向驱动模块,由重定向驱动模块负责将所有虚拟机的通信流量重定向到虚拟安全网关中,虚拟安全网关通过虚拟交换机和虚拟网卡间的——对应关系,接收虚拟子网络内的虚拟交换机发送或接收的通信流量,然后将通信流量暂时隔离在虚拟安全网关中。
[0016]3.虚拟安全网关根据预设的安全策略分析处理这些流量,当符合安全策略时,依据虚拟交换机和虚拟网卡间的对应关系将通信流量发送给目的虚拟子网络内的虚拟交换机。当不符合安全策略时,虚拟安全网关做出响应,如果检测到分组数据的目的端口为安全策略规定关闭的端口,那么可以对这些数据进行拦截或丢弃,也可以对用户报警,由用户选择处理方式;或者检测到一个虚拟子网络对一个没有访问权限的虚拟子网络发起访问,那么就可以对用户报警,具体响应方式也可以由用户自定义。
[0017]图4为专利201110208735.X中的建立虚拟化安全网关后的服务器虚拟化应用场景示意图。在图4中,虚拟机监控器402中设置有虚拟交换机403和404,虚拟机410和412属于同一网络,虚拟机405属于另一网络。虚拟机405、410和412上分别设置有虚拟机网卡406、411和413。两个网络通过虚拟交换机403和404进行数据收发。虚拟安全网关407上设置有虚拟机网卡408和409,并通过该两个虚拟机网卡408和409连接到两个网络中。
[0018]专利201110208735.X中的技术方案通过虚拟交换机配置来实现虚拟机流量重定向。该方法存在以下缺点:第一,方法采用了现有的虚拟交换机,在实际操作中,需要手动地对每个虚拟机进行虚拟机交换机端口转发配置,管理操作不灵活,且交换机的功能较固定,无法对缓存、数据分析和处理等功能进行自定义;第二,随着虚拟机通信量增多,安全系统虚拟机容易出现性能瓶颈。


【发明内容】

[0019]针对现有技术中存在的上述问题,本发明实施例提供了一种数据包重定向装置、虚拟机安全保护方法及系统,能够自定义数据包重定向操作并对其进行灵活控制,避免了手动配置虚拟交换机的麻烦。
[0020]有鉴于此,本发明第一方面提供一种虚拟机安全保护方法,其特征在于,可包括:
[0021]所述数据监听单元监听虚拟机监控器内核网络栈,在从所述监控器内核网络栈中抓取到数据包时,将所述数据包发送到加速单元;
[0022]所述加速单元计算该数据包的数据包特征,查询数据包快速转发表,在所述数据包快速转发表中不存在对应于所述数据包特征的转发规则的情况下,将所述数据包提交给重定向单元;
[0023]所述重定向单元判断所述数据包是否来自虚拟化安全网关,
[0024]当判断所述数据包来自所述虚拟化安全网关时,查询数据包重定向表,在所述数据包重定向表中存在所述数据包的基本信息时,将所述数据包返回所述虚拟机监控器网络协议栈,
[0025]当判断所述数据包不来自所述虚拟化安全网关时,将所述数据包的基本信息记录至所述数据包重定向表,并将所述数据包发送给所述虚拟化安全网关。
[0026]在第一方面的第一种可能的实现方式中,所述数据监听单元通过钩子机制抓取所述监控器内核网络栈中的数据包。
[0027]在第一方面的第二种可能的实现方式中,在所述数据包重定向表中存在所述数据包的基本信息时,将所述数据包返回所述虚拟机监控器网络协议栈的步骤包括:恢复所述数据包的源地址信息,并将恢复后的数据包返回所述虚拟机监控器网络协议栈。
[0028]在第一方面的第三种可能的实现方式中,在所述数据包重定向表中存在所述数据包的基本信息时,将所述数据包返回所述虚拟机监控器网络协议栈的步骤包括:恢复所述数据包的源地址信息,并将恢复后的数据包返回所述虚拟机监控器网络协议栈。
[0029]在第一方面的第四种可能的实现方式中,在所述数据包重定向表中存在所述数据包的基本信息时,将所述数据包返回所述虚拟机监控器网络协议栈后还包括:计算所述数据包的数据包特征,将所述数据包特征存储至所述数据包快速转发表。
[0030]在第一方面的第五种可能的实现方式中,所述加速单元计算该数据包的数据包特征,查询数据包快速转发表的步骤还包括:在所述数据包快速转发表中存在对应于所述数据包特征的转发规则的情况下,将所述数据包返回所述虚拟机监控器网络协议栈。
[0031]在第一方面的第六种可能的实现方式中,将所述数据包的基本信息记录至所述数据包重定向表,并将所述数据包发送给所述虚拟化安全网关的步骤包括:通过所述虚拟化安全网关与所述重定向单元之间的使用内存共享技术的专用通道将所述数据包发送给所述虚拟化安全网关。
[0032]在第一方面的第七种可能的实现方式中,在将所述数据包发送给所述虚拟化安全网关之后,还包括:所述虚拟化安全网关根据安全策略对所述数据包进行安全处理。
[0033]在第一方面的第八种可能的实现方式中,所述安全处理包括以下至少一者:数据网络审计、入侵检测、流量分析、恶意代码检测。
[0034]在第一方面的第九种可能的实现方式中,在所述虚拟化安全网关根据安全策略对所述数据包进行安全处理之后,还包括:根据所述安全处理之后的结果,判断所述数据包是否符合所述安全策略,如果符合,则将所述数据包返回虚拟机网络,如果不符合,则丢弃所述数据包。
[0035]在第一方面的第十种可能的实现方式中,所述数据包重定向表包括:索引项;数据包头信息:包括数据包源MAC地址、数据包源IP地址、数据包目的MAC地址、数据包目的IP地址;数据包VLAN ID。
[0036]在第一方面的第十一种可能的实现方式中,所述数据包快速转发表包括:数据包特征,包括数据包源MAC地址、数据包目的MAC地址。
[0037]本发明第二方面提供一种数据包重定向装置,可包括:
[0038]数据监听单元,用于监听虚拟机监控器内核网络栈,在从所述监控器内核网络栈中抓取到数据包时,将所述数据包发送到加速单元;
[0039]加速单元,用于计算从所述数据监听单元接收到的数据包的数据包特征,查询数据包快速转发表,在所述数据包快速转发表中不存在对应于所述数据包特征的转发规则的情况下,将所述数据包提交给重定向单元;
[0040]重定向单元,用于判断所述数据包是否来自虚拟化安全网关,
[0041]当判断所述数据包来自所述虚拟化安全网关时,查询数据包重定向表,在所述数据包重定向表中存在所述数据包的基本信息时,将所述数据包返回所述虚拟机监控器网络协议栈,
[0042]当判断所述数据包不来自所述虚拟化安全网关时,将所述数据包的基本信息记录至所述数据包重定向表,并将所述数据包发送给所述虚拟化安全网关。
[0043]在第二方面的第一种可能的实现方式中,所述数据监听单元通过钩子机制抓取所述监控器内核网络栈中的数据包。
[0044]在第二方面的第二种可能的实现方式中,所述重定向单元还用于在所述数据包重定向表中存在所述数据包的基本信息时,恢复所述数据包的源地址信息,并将恢复后的数据包返回所述虚拟机监控器网络协议栈。
[0045]在第二方面的第三种可能的实现方式中,所述重定向单元还用于在所述数据包重定向表中存在所述数据包的基本信息时,将所述数据包返回所述虚拟机监控器网络协议栈后,计算所述数据包的数据包特征,将所述数据包特征存储至所述数据包快速转发表。
[0046]在第二方面的第四种可能的实现方式中,所述加速单元还用于在所述数据包快速转发表中存在对应于所述数据包特征的转发规则的情况下,将所述数据包返回所述虚拟机监控器网络协议栈。
[0047]在第二方面的第五种可能的实现方式中,所述数据包重定向表包括:索引项;数据包头信息:包括数据包源MAC地址、数据包源IP地址、数据包目的MAC地址、数据包目的IP地址;数据包VLAN ID。
[0048]在第二方面的第六种可能的实现方式中,所述数据包快速转发表包括:数据包特征,包括数据包源MAC地址、数据包目的MAC地址。
[0049]本发明第三方面提供一种虚拟机安全保护系统,可包括前述数据包重定向装置和虚拟化安全网关。
[0050]在第三方面的第一种可能的实现方式中,还包括使用内存共享技术的专用通道,所述专用通道位于所述虚拟化安全网关与所述重定向单元之间,所述重定向单元还用于通过所述专用通道将所述数据包发送给所述虚拟化安全网关。
[0051]在第三方面的第二种可能的实现方式中,所述虚拟化安全网关包括安全引擎模块,该安全引擎模块包括接收单元和处理单元及响应单元,所述接收单元用于接收数据包,并将数据包发送到处理单元,所述处理单元根据安全策略对所述数据包进行安全处理。
[0052]在第三方面的第三种可能的实现方式中,所述安全处理包括以下至少一者:数据网络审计、入侵检测、流量分析、恶意代码检测。
[0053]在第三方面的第四种可能的实现方式中,,所述处理单元还用于判断所述数据包是否符合所述安全策略,如果符合,则将所述数据包返回虚拟机网络,如果不符合,则丢弃所述数据包。
[0054]在第三方面的第五种可能的实现方式中,其特征在于,所述安全引擎模块还包括响应单元,该响应单元用于根据输出策略输出所述安全处理的结果,和根据告警策略进行生敬口目。
[0055]在第三方面的第六种可能的实现方式中,所述虚拟化安全网关还包括安全管理模块,该安全管理模块用于存储和管理以下至少一者:安全策略、输出策略和告警策略。
[0056]本发明的技术方案,通过抓取监控器内核网络栈中的数据包,通过计算数据包特征和判断数据包来源来进行重定向,相比采用虚拟交换机的现有技术,可以利用开源虚拟化平台的可修改内核优势,无需对每个虚拟机对应的虚拟交换机进行单独配置,灵活实现数据重定向,并可根据需求对数据分析等功能进行自定义,避免了手动配置虚拟交换机的麻烦,并且加快了数据重定向的处理过程,该方法可以适用于多种开源虚拟化软件,诸如Xen、KVM,应用方便广泛。

【专利附图】

【附图说明】
[0057]图1为虚拟机隔离失效及监控失效的示意图;
[0058]图2为实现虚拟机流量监控和虚拟机隔离的第一种方法的示意图;
[0059]图3为实现虚拟机流量监控和虚拟机隔离的第二种方法的示意图;
[0060]图4为现有技术的建立虚拟化安全网关后的服务器虚拟化应用场景示意图;
[0061]图5为本发明实施例中虚拟机安全保护方法一个实施例的流程图;
[0062]图6为本发明实施例中虚拟机安全保护方法另一个实施例的流程图;
[0063]图7为本发明实施例中数据包重定向装置一个实施例的示意图;
[0064]图8为本发明实施例中虚拟化安全网关一个实施例的示意图;
[0065]图9为本发明实施例中虚拟机安全保护系统一个实施例的示意图。

【具体实施方式】
[0066]本发明实施例提供了一种虚拟机安全保护方法,能够提高灵活实现数据重定向,避免手动配置虚拟交换机的麻烦,加快数据包重定向的处理过程。
[0067]为了使本【技术领域】的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0068]图5为本发明实施例中虚拟机安全保护方法一个实施例的流程图。参照图5,本发明的虚拟机安全保护方法的一个实施例包括:
[0069]S501、数据监听单元监听虚拟机监控器内核网络栈,在从所述监控器内核网络栈中抓取到数据包时,将所述数据包发送到加速单元。
[0070]其中,需要将数据包重定向装置部署到虚拟机监控器VMM内核中。可以通过虚拟化软件管理控制台登录虚拟机监控器,通过命令行将数据包重定向装置安装到虚拟机监控器VMM内核中,也可以配置虚拟机监控器脚本在启动时自动加载数据包重定向装置。数据包重定向装置内可以包括数据监听单元、加速单元和重定向单元,并且,数据包重定向装置可以与虚拟化安全网关进行通信,从而相互传递数据包和命令等。
[0071]数据监听单元可以监听虚拟机监控器内核网络栈,抓取虚拟机监控器内核网络栈上的数据包。
[0072]S502、所述加速单元计算该数据包的数据包特征,查询数据包快速转发表,在所述数据包快速转发表中不存在对应于所述数据包特征的转发规则的情况下,将所述数据包提交给重定向单元;
[0073]其中,加速单元根据数据包特征进行快速的重定向,这样可以通过加速单元的操作来承担部分虚拟化安全网关的数据包重定向的决策工作,减少所有数据重定向到虚拟化安全网关进行重定向判断时对虚拟化安全网关性能的影响,加快了数据包重定向的处理过程。
[0074]优选可以通过将数据包的基本信息用Hash函数计算得到数据包的数据包特征,以保证数据包特征的唯一性。数据包的基本信息包括可以包括数据包的MAC地址、IP地址、端口 (Port), VLAN ID、网卡设备ID等。
[0075]加速单元计算该数据包的数据包特征之后,在数据包快速转发表查找是否存在对应于数据包特征的转发规则,如果在所述数据包快速转发表中不存在对应于所述数据包特征的转发规则,则将所述数据包提交给重定向单元,由重定向单元根据数据包的来源将数据包发送回虚拟机监控器网络协议栈或发送给虚拟化安全网关进行安全处理。
[0076]S503,所述重定向单元判断所述数据包是否来自虚拟化安全网关,当判断所述数据包来自所述虚拟化安全网关时,查询数据包重定向表,在所述数据包重定向表中存在所述数据包的基本信息时,将所述数据包返回所述虚拟机监控器网络协议栈,当判断所述数据包不来自所述虚拟化安全网关时,将所述数据包的基本信息记录至所述数据包重定向表,并将所述数据包发送给所述虚拟化安全网关。
[0077]其中,所述重定向单元首先判断数据包是否来自虚拟化安全网关,当数据包是来自虚拟化安全网关时,则表示该数据包已经过了虚拟化安全网关的安全处理,符合虚拟化安全网关中预设的安全策略。这时,重定向单元将查询重定向表,如果重定向表中存在该数据包的基本信息,诸如该数据包的目的地址,则将数据包返回虚拟机监控器网络协议栈,让数据包继续进行后续操作。
[0078]根据本发明的虚拟机安全保护方法,不采用现有技术中采用的虚拟交换机,而是可以直接利用开源虚拟化平台实现监听、数据包特征计算、快速转发和重定向等步骤,无需对每个虚拟机对应的虚拟交换机进行单独配置,灵活实现数据重定向,并可根据需求对数据分析等功能进行自定义,避免了手动配置虚拟交换机的麻烦,提升了数据重定向的转发性能,该方法可以适用于多种开源虚拟化软件,诸如Xen、KVM,应用方便广泛。
[0079]在本发明的一个实施例中,在所述步骤S501中,数据监听单元可以通过钩子(hook)机制抓取所述监控器内核网络栈中的数据包。诸如基于linux内核的开源虚拟化平台的开源虚拟化软件自带了 hook机制,比如Xen,KVM都提供了一套基于Netfilter的钩子机制。由此,该方法可以适用于多种开元虚拟化软件。数据包的抓包过程可以循环进行。
[0080]在本发明的一个实施例中,在所述步骤S502中,所述数据包快速转发表可以包括以下信息:数据包特征,包括数据包源MAC地址、数据包目的MAC地址等。
[0081]所述加速单元计算该数据包的数据包特征,查询数据包快速转发表的步骤还可以包括:在所述数据包快速转发表中存在对应于所述数据包特征的转发规则的情况下,将所述数据包返回所述虚拟机监控器网络协议栈,从而数据包可以在虚拟机监控器网络协议栈中继续进行后续操作。
[0082]在本发明的一个实施例中,在所述步骤S503中,所述数据包重定向表可以包括以下信息:索引项;数据包头信息:包括数据包源MAC地址、数据包源IP地址、数据包目的MAC地址、数据包目的IP地址;数据包VLAN ID等。
[0083]当判断所述数据包来自所述虚拟化安全网关时,在所述数据包重定向表中存在所述数据包的基本信息时,所述重定向单元可以恢复所述数据包的源地址信息,并将恢复后的数据包返回所述虚拟机监控器网络协议栈。进一步优选的,所述重定向单元还可以计算所述数据包的数据包特征,并将所述数据包特征存储至所述数据包快速转发表。
[0084]当判断所述数据包不来自所述虚拟化安全网关时,所述重定向单元将所述数据包的基本信息记录至所述数据包重定向表,并将所述数据包发送给所述虚拟化安全网关。优选的,虚拟化安全网关与重定向单元之间可以建立使用内存共享技术的专用通道,从而可以在虚拟化安全网关虚拟机和虚拟机监控器内核之间进行通信、传递命令和数据包等。可以通过使用该专用通道将所述数据包发送给所述虚拟化安全网关。
[0085]图6为本发明实施例中虚拟机安全保护方法另一个实施例的流程图,参照图6,根据本发明的虚拟机安全保护方法还可以包括:
[0086]S504,所述虚拟化安全网关根据安全策略对所述数据包进行安全处理。
[0087]虚拟化安全网关接收到数据包后,可以对数据包进行组合和过滤等预处理,并对预处理后的数据包进行安全处理。
[0088]所述安全处理可以包括数据网络审计、入侵检测、流量分析和恶意代码检测等。
[0089]优选的,在对数据包进行安全处理之后,虚拟化安全网关可以根据所述安全处理之后的结果,判断所述数据包是否符合所述安全策略,如果符合,则将所述数据包返回虚拟机网络,如果不符合,则丢弃所述数据包。
[0090]进一步优选的,虚拟化安全网关还可以对安全处理的结果进行显示,在数据包不符合安全策略时,还可以发出警告
[0091]上面对本发明实施例中的虚拟机安全保护方法进行了描述,下面对本发明实施例中的数据包重定向装置进行描述,参考图7,该数据包重定向装置710包括:
[0092]数据监听单元715,用于监听虚拟机监控器内核网络栈,在从所述监控器内核网络栈中抓取到数据包时,将所述数据包发送到加速单元;
[0093]加速单元711,用于计算从所述数据监听单元715接收到的数据包的数据包特征,查询数据包快速转发表,在所述数据包快速转发表中不存在对应于所述数据包特征的转发规则的情况下,将所述数据包提交给重定向单元;
[0094]重定向单元712,用于判断所述数据包是否来自虚拟化安全网关,
[0095]当判断所述数据包来自所述虚拟化安全网关时,查询数据包重定向表,在所述数据包重定向表中存在所述数据包的基本信息时,将所述数据包返回所述虚拟机监控器网络协议栈,
[0096]当判断所述数据包不来自所述虚拟化安全网关时,将所述数据包的基本信息记录至所述数据包重定向表,并将所述数据包发送给所述虚拟化安全网关。
[0097]其中,数据包重定向装置710内包括数据监听单元715、加速单元711和重定向单元712。使用时,将数据包重定向装置部署到虚拟机监控器VMM内核中。可以通过虚拟化软件管理控制台登录虚拟机监控器,通过命令行将数据包重定向装置安装到虚拟机监控器VMM内核中,也可以配置虚拟机监控器脚本在启动时自动加载数据包重定向装置。
[0098]所述数据监听单元715可以监听虚拟机监控器内核网络栈,抓取虚拟机监控器内核网络栈上的数据包。
[0099]所述加速单元711根据数据包特征进行快速的重定向,这样可以通过加速单元711的操作来承担部分虚拟化安全网关的数据包重定向的决策工作,减少所有数据重定向到虚拟化安全网关进行重定向判断时对虚拟化安全网关性能的影响,加快了数据包重定向的处理过程。
[0100]优选可以通过将数据包的基本信息用Hash函数计算得到数据包的数据包特征,以保证数据包特征的唯一性。数据包的基本信息可以包括数据包的MAC地址、IP地址、端口 (Port), VLAN ID、网卡设备 ID 等。
[0101]加速单元711计算该数据包的数据包特征之后,在数据包快速转发表中查找是否存在对应于数据包特征的转发规则,如果在所述数据包快速转发表中不存在对应于所述数据包特征的转发规则,则将所述数据包提交给重定向单元712,由重定向单元712根据数据包的来源将数据包发送回虚拟机监控器网络协议栈或发送给虚拟化安全网关进行安全处理。
[0102]所述重定向单元712可以根据数据包重定向表实施数据包重定向。首先,重定向单元712判断数据包是否来自虚拟化安全网关,当数据包是来自虚拟化安全网关时,则表示该数据包已经过了虚拟化安全网关的安全处理,符合虚拟化安全网关中预设的安全策略。这时,重定向单元712将查询重定向表,如果重定向表中存在该数据包的基本信息,诸如该数据包的目的地址,则将数据包返回虚拟机监控器网络协议栈,让数据包继续进行后续操作。
[0103]根据本发明的数据包重定向装置,可以替代现有的虚拟交换机,该数据包重定向装置可以直接利用开源虚拟化平台实现监听、数据包特征计算、快速转发和重定向等步骤,避免了对每个虚拟机对应的虚拟交换机进行单独配置,灵活实现数据重定向,通过加速单元,提升了数据重定向的转发性能,该方法可以适用于多种开源虚拟化软件,诸如Xen、KVM,应用方便广泛。
[0104]在本发明的一个实施例中,所述数据监听单元715可以通过钩子(hook)机制抓取所述监控器内核网络栈中的数据包。诸如基于linux内核的开源虚拟化平台的开源虚拟化软件自带了 hook机制,比如Xen,KVM都提供了一套基于Netfilter的钩子机制。由此,该方法可以适用于多种开元虚拟化软件。数据包的抓包过程可以循环进行。
[0105]在本发明的一个实施例中,所述数据包快速转发表可以包括以下信息:数据包特征,包括数据包源MAC地址、数据包目的MAC地址等。
[0106]所述加速单元711计算该数据包的数据包特征,查询数据包快速转发表的步骤还可以包括:在所述数据包快速转发表中存在对应于所述数据包特征的转发规则的情况下,将所述数据包返回所述虚拟机监控器网络协议栈,从而数据包可以在虚拟机监控器网络协议栈中继续进行后续操作。
[0107]在本发明的一个实施例中,所述数据包重定向表可以包括以下信息:索引项;数据包头信息:包括数据包源MAC地址、数据包源IP地址、数据包目的MAC地址、数据包目的IP地址;数据包VLAN ID等。
[0108]当判断所述数据包来自所述虚拟化安全网关时,在所述数据包重定向表中存在所述数据包的基本信息时,所述重定向单元还可以恢复所述数据包的源地址信息,并将恢复后的数据包返回所述虚拟机监控器网络协议栈。进一步优选的,所述重定向单元还可以计算所述数据包的数据包特征,并将所述数据包特征存储至所述数据包快速转发表。
[0109]优选的,虚拟化安全网关与重定向单元712之间可以建立使用内存共享技术的专用通道,从而可以在虚拟化安全网关虚拟机和虚拟机监控器内核之间进行通信、传递命令和数据包等。当判断所述数据包不来自所述虚拟化安全网关时,所述重定向单元712可以通过使用该专用通道将所述数据包发送给所述虚拟化安全网关。
[0110]同时,本发明实施例还提供了一种虚拟机安全保护系统,包括上述数据包重定向装置,还包括虚拟化网关。
[0111]在本发明的一个实施例中,虚拟化安全网关可以包括安全引擎模块801,该安全引擎模块801包括接收单元802和处理单元803,所述接收单元802和处理单元803可独立运行。所述接收单元802用于接收数据包,并将数据包发送到处理单元803。优选的,所述接收单元802还可以对数据包进行预处理。所述预处理可以包括数据包组合和过滤等。
[0112]所述处理单元803根据安全策略对所述数据包进行安全处理。所述安全处理可以包括数据网络审计、入侵检测、流量分析和恶意代码检测等。
[0113]优选的,所述处理单元803在对数据包进行安全处理之后,可以判断所述数据包是否符合所述安全策略,如果符合,则将所述数据包返回虚拟机网络,如果不符合,则丢弃所述数据包。
[0114]在本发明的一个实施例中,安全引擎模块801还可以包括响应单元804。该响应单元804用于根据输出策略输出所述安全处理的结果,优选的,还可以根据告警策略进行告靈目ο
[0115]在本发明的一个实施例中,虚拟化安全网关还可以包括安全管理模块800,该安全管理模块800用于存储和管理安全策略、输出策略和告警策略,并向所述安全处理单元提供安全策略,向所述响应单元提供输出策略和告警策略。
[0116]下面,对采用了本发明的虚拟机安全保护系统的应用场景进行描述。如图9所示,虚拟机监控器913上运行着虚拟机901、虚拟机902、虚拟机903。其中虚拟机902和虚拟机903可以通过虚拟机监控器913中的网络栈909进行通信,同时,这两个虚拟机也可以通过网络栈909和外部网络设备914进行通信。
[0117]网络栈909内部部署着数据包重定向装置910,该装置包括数据监听单元915、重定向单元912和加速单元911。虚拟机901中部署着安全管理模块904、安全引擎模块908,安全引擎模块908包含接收单元905、处理单元906、响应单元907。
[0118]通过上述部署,虚拟机902和虚拟机903之间的通信,以及与外部网络设备914通信流量都被数据包重定向装置910的重定向单元912重定向至安装有虚拟化安全网关916的虚拟机901,从而实现虚拟机之间的流量隔离、流量监控、入侵检测、恶意代码检测等功會泛。
[0119]通过数据包重定向装置中的加速单元911可以承担部分虚拟化安全网关的数据包重定向的决策工作,从而加快了数据包重定向的处理过程,提高了保护系统的处理性能。
[0120]通过虚拟化安全网关916中的安全管理模块904实现对虚拟机保护系统中各种策略的可编程管理。
[0121]利用本发明提供的数据包重定向装置、虚拟机安全保护方法及系统,可以适用于多种开源虚拟化软件,实现更高效灵活的数据包重定向处理,缓解数据包重定向至虚拟化安全网关带来的性能限制。
[0122]在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0123]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0124]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0125]所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0126]本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三…第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0127]以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【权利要求】
1.一种虚拟机安全保护方法,其特征在于,包括: 数据监听单元监听虚拟机监控器内核网络栈,在从所述监控器内核网络栈中抓取到数据包时,将所述数据包发送到加速单元; 所述加速单元计算该数据包的数据包特征,查询数据包快速转发表,在所述数据包快速转发表中不存在对应于所述数据包特征的转发规则的情况下,将所述数据包提交给重定向单元; 所述重定向单元判断所述数据包是否来自虚拟化安全网关, 当判断所述数据包来自所述虚拟化安全网关时,查询数据包重定向表,在所述数据包重定向表中存在所述数据包的基本信息时,将所述数据包返回所述虚拟机监控器网络协议栈, 当判断所述数据包不来自所述虚拟化安全网关时,将所述数据包的基本信息记录至所述数据包重定向表,并将所述数据包发送给所述虚拟化安全网关。
2.根据权利要求1所述的虚拟机安全保护方法,其特征在于,所述数据监听单元通过钩子机制抓取所述监控器内核网络栈中的数据包。
3.根据权利要求1所述的虚拟机安全保护方法,其特征在于,在所述数据包重定向表中存在所述数据包的基本信息时,将所述数据包返回所述虚拟机监控器网络协议栈的步骤包括: 恢复所述数据包的源地址信息,并将恢复后的数据包返回所述虚拟机监控器网络协议栈。
4.根据权利要求1所述的虚拟机安全保护方法,其特征在于,在所述数据包重定向表中存在所述数据包的基本信息时,将所述数据包返回所述虚拟机监控器网络协议栈后还包括: 计算所述数据包的数据包特征,将所述数据包特征存储至所述数据包快速转发表。
5.根据权利要求1所述的虚拟机安全保护方法,其特征在于,所述加速单元计算该数据包的数据包特征,查询数据包快速转发表的步骤还包括: 在所述数据包快速转发表中存在对应于所述数据包特征的转发规则的情况下,将所述数据包返回所述虚拟机监控器网络协议栈。
6.根据权利要求1所述的虚拟机安全保护方法,其特征在于,将所述数据包的基本信息记录至所述数据包重定向表,并将所述数据包发送给所述虚拟化安全网关的步骤包括: 通过所述虚拟化安全网关与所述重定向单元之间的使用内存共享技术的专用通道将所述数据包发送给所述虚拟化安全网关。
7.根据权利要求1所述的虚拟机安全保护方法,其特征在于,在将所述数据包发送给所述虚拟化安全网关之后,还包括: 所述虚拟化安全网关根据安全策略对所述数据包进行安全处理。
8.根据权利要求7所述的虚拟机安全保护方法,其特征在于,所述安全处理包括以下至少一者:数据网络审计、入侵检测、流量分析、恶意代码检测。
9.根据权利要求7所述的虚拟机安全保护方法,其特征在于,在所述虚拟化安全网关根据安全策略对所述数据包进行安全处理之后,还包括: 根据所述安全处理之后的结果,判断所述数据包是否符合所述安全策略,如果符合,则将所述数据包返回虚拟机网络,如果不符合,则丢弃所述数据包。
10.根据权利要求1-9中任一项所述的虚拟机安全保护方法,其特征在于,所述数据包重定向表包括: 索引项;数据包头信息:包括数据包源MAC地址、数据包源IP地址、数据包目的MAC地址、数据包目的IP地址;数据包VLAN ID。
11.根据权利要求1-9中任一项所述的虚拟机安全保护方法,其特征在于,所述数据包快速转发表包括: 数据包特征,包括数据包源MAC地址、数据包目的MAC地址。
12.一种数据包重定向装置,其特征在于,包括: 数据监听单元,用于监听虚拟机监控器内核网络栈,在从所述监控器内核网络栈中抓取到数据包时,将所述数据包发送到加速单元; 加速单元,用于计算从所述数据监听单元接收到的数据包的数据包特征,查询数据包快速转发表,在所述数据包快速转发表中不存在对应于所述数据包特征的转发规则的情况下,将所述数据包提交给重定向单元; 重定向单元,用于判断所述数据包是否来自虚拟化安全网关, 当判断所述数据包来自所述虚拟化安全网关时,查询数据包重定向表,在所述数据包重定向表中存在所述数据包的基本信息时,将所述数据包返回所述虚拟机监控器网络协议栈, 当判断所述数据包不来自所述虚拟化安全网关时,将所述数据包的基本信息记录至所述数据包重定向表,并将所述数据包发送给所述虚拟化安全网关。
13.根据权利要求12所述的数据包重定向装置,其特征在于,所述数据监听单元通过钩子机制抓取所述监控器内核网络栈中的数据包。
14.根据权利要求12所述的数据包重定向装置,其特征在于,所述重定向单元还用于在所述数据包重定向表中存在所述数据包的基本信息时,恢复所述数据包的源地址信息,并将恢复后的数据包返回所述虚拟机监控器网络协议栈。
15.根据权利要求12所述的数据包重定向装置,其特征在于,所述重定向单元还用于在所述数据包重定向表中存在所述数据包的基本信息时,将所述数据包返回所述虚拟机监控器网络协议栈后,计算所述数据包的数据包特征,将所述数据包特征存储至所述数据包快速转发表。
16.根据权利要求12所述的数据包重定向装置,其特征在于,所述加速单元还用于在所述数据包快速转发表中存在对应于所述数据包特征的转发规则的情况下,将所述数据包返回所述虚拟机监控器网络协议栈。
17.根据权利要求13-16中任一项所述的数据包重定向装置,其特征在于,所述数据包重定向表包括: 索引项;数据包头信息:包括数据包源MAC地址、数据包源IP地址、数据包目的MAC地址、数据包目的IP地址;数据包VLAN ID。
18.根据权利要求13-16中任一项所述的数据包重定向装置,其特征在于,所述数据包快速转发表包括: 数据包特征,包括数据包源MAC地址、数据包目的MAC地址。
19.一种虚拟机安全保护系统,其特征在于,包括权利要求13-17中任一项所述的数据包重定向装置和虚拟化安全网关。
20.根据权利要求19所述的虚拟机安全保护系统,其特征在于,还包括使用内存共享技术的专用通道,所述专用通道位于所述虚拟化安全网关与所述重定向单元之间, 所述重定向单元还用于通过所述专用通道将所述数据包发送给所述虚拟化安全网关。
21.根据权利要求19所述的虚拟机安全保护系统,其特征在于,所述虚拟化安全网关包括安全引擎模块,该安全引擎模块包括接收单元和处理单元及响应单元,所述接收单元用于接收数据包,并将数据包发送到处理单元,所述处理单元根据安全策略对所述数据包进行安全处理。
22.根据权利要求21所述的虚拟机安全保护系统,其特征在于,所述安全处理包括以下至少一者:数据网络审计、入侵检测、流量分析、恶意代码检测。
23.根据权利要求21所述的虚拟机安全保护系统,其特征在于,所述处理单元还用于判断所述数据包是否符合所述安全策略,如果符合,则将所述数据包返回虚拟机网络,如果不符合,则丢弃所述数据包。
24.根据权利要求21所述的虚拟机安全保护系统,其特征在于,所述安全引擎模块还包括响应单元,该响应单元用于根据输出策略输出所述安全处理的结果,和根据告警策略进行告警。
25.根据权利要求21所述的虚拟机安全保护系统,其特征在于,所述虚拟化安全网关还包括安全管理模块,该安全管理模块用于存储和管理以下至少一者:安全策略、输出策略和告警策略。
【文档编号】H04L12/721GK104506548SQ201410851599
【公开日】2015年4月8日 申请日期:2014年12月31日 优先权日:2014年12月31日
【发明者】李玮, 贾兴旺, 余小军 申请人:北京天融信科技有限公司, 北京天融信网络安全技术有限公司, 北京天融信软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1