一种桌面云环境下的虚拟机安全加固方法
【技术领域】
[0001]本发明涉及计算机操作系统与虚拟化技术领域,具体是一种桌面云环境下的虚拟机安全加固方法。
【背景技术】
[0002]随着互联网技术的爆炸式增长,以及云计算技术的着实落地,越来越多的应用或者服务通过统一的云计算平台来提供。桌面虚拟化技术是一种重要的云资源交付手段,它能够为企业带来管理上的便捷,节约企业成本,还能带来灾难恢复、安全和灵活性等好处,为用户提供随时随地的安全可控的桌面计算环境,目前一些大型企业如华为、建设银行等都已经部署了自己的桌面虚拟化系统。而具有弹性化的虚拟桌面更是为企业内部或者教育平台提供了前所未有的良好体验。
[0003]桌面云系统除了成本较低以外,更重要的是它的安全性。通过桌面虚拟化,可以部分提高安全性能,例如:1)虚拟桌面和虚拟工作空间是参照可靠的操作系统、应用程序和用户的标准配置文件进行创建的,由于虚拟桌面采用可信的标准,首先可以保证用户登录虚拟桌面使用的软件都是合法、安全的。审计人员对终端用户的行为进行工作状态的检测,可以保证终端虚拟桌面的用户在进行非法活动或者恶意活动之前对其进行控制,从而保证了整个虚拟桌面网络的安全性;2)重要的数据保存在集中服务器上,易于防止由于个人造成泄密事件的发生,集中数据管理减少了过去由于数据分布而带来的控制难度大的问题;3)虚拟桌面技术可以有效地减低用于灾难恢复和维护业务带来的费用。由于采用虚拟桌面,用户本地不保存数据,因此当用户本地出现灾难性故障时,只要远程服务器的系统是正常的,本地用户就可以在最短的时间内继续自己的工作和业务。
[0004]但是,桌面虚拟化技术带来的其他风险也同样是显而易见的。比如服务器的映像并不固定在硬盘上,而是出现在整个网络上。在虚拟化实施过程中,实际的硬盘数据迀移意味着虚拟服务器内存页会在整个网络上存在。新的架构、进程和管理系统以及组织结构都会产生很多的潜在隐患。桌面虚拟化技术,在带给我们一些安全性的同时,将一些不安全因素隐蔽起来,使得用户更难以发现桌面虚拟化技术背后的深层次问题。调查数据表明,只有不到10%的桌面虚拟化用户部署了安全工具,专门针对处理虚拟化技术带来的安全风险;仅有20%的桌面虚拟化用户发现自己系统的安全风险,考虑在未来使用安全工具进行虚拟化安全防护;剩下70%的桌面虚拟化用户对于使他们的虚拟化环境的安全性没有做任何的工作,也没有意识到虚拟化技术同样可以带来安全风险。
[0005]总之,目前制约桌面云技术普及的重要因素就是其安全性。
【发明内容】
[0006]本发明的目的在于提供一种桌面云环境下的虚拟机安全加固方法,该方法基于开源的桌面云的管理平台,通过降低关键因素对于虚拟机安全的影响,辅以专门针对桌面虚拟化环境下的资源调度,并设计以安全等级为权重的虚拟机角色分配,严格控制虚拟机管理器VMM(Virtual Machine Monitor)的一切操作,实现一套类似蓝甲并且极具层次结构的虚拟桌面安防系统。
[0007]为实现上述目的,本发明提供如下技术方案:
一种桌面云环境下的虚拟机安全加固方法,包括以下几个步骤:
步骤一:解决远程桌面协议连接的安全性问题;将Token(令牌)作为一种端口变动规则,并集结合Hash运算,来改变默认的SPICE连接端口号,产生不与该VMM上其他虚拟机端口号重复的端口;
步骤二:解决一台宿主机和运行在其上的虚拟机的安全问题,解决的问题包括VMM安全防护、VM安全防护、VM与VMM安全防护及VM与VM安全防护;
步骤三:解决桌面云安全资源按需分配问题,采用Virt1半虚拟化框架来提供虚拟机与虚拟机管理器间的I/O数据传输,并且根据Virt1的可编程性来提供桌面云安全资源按需分配方案;
步骤四:解决开源的虚拟机管理器的安全防护问题,采用限制对KVM主机上服务和端口的访问来保护桌面云免遭未经授权的入侵;提供一个统一认证平台,倘若要安装新的软件,需要在认证平台进行申请,申请认证成功后再从桌面云的管理平台的入口导入该软件。
[0008]作为本发明进一步的方案:所述VMM安全防护包括两部分,第一:解决VM超载:合理部署虚拟机,对虚拟机状态进行监控,对虚拟机进行动态迀移;第二:解决恶意更改VMM配置:强制访问控制防止被修改,使用TPM保护数据,实时监控并与标准配置对比。
[0009]作为本发明进一步的方案:所述的VM安全防护包括:首先,对虚拟机进行源码的脆弱性检测、漏洞扫描、软件升级、虚拟化脆弱性检测和虚拟机隔离与加固,在部署阶段发现虚拟机软件的漏洞;其次,使用虚拟机的完整性度量、VMM安全增强方法提高运行阶段VMM的安全性;然后利用隔离、强制性访问、虚拟机隔离与加固和动态完整性度量方法保证虚拟机运行时的安全。
[0010]作为本发明进一步的方案:所述的VMM与VM之间的安全防护分为三个部分,第一、解决VMM修改VM内存问题:限制VMM对VM控制能力,限制VMM进入VM的内存,入侵检测防止VMM对VM的入侵,监视VMM执行的命令和操作;第二、解决VMM修改VM指令问题:限制VMM对VM控制能力,使用隔离方法限制VMM进入VM的内存,入侵检测防止VMM对VM的入侵,监视VMM执行的命令和操作;第三、解决VMM窃取VM数据问题:限制VMM对VM控制能力,通过审计手段监视VMM执行的命令和操作。
[0011]作为本发明进一步的方案:隔离方法是在宿主机上采用的;采用以下两种方式: 第一种是硬件协助的安全内存管理:采用SMM提供加/解密来实现客户虚拟机内存与
VM0内存间的隔离;
第二种是硬件协助的安全1/0管理:采用VMM强制执行虚拟隔离方法,使得即使VM0的出现故障也不会影响到整个1/0系统。
[0012]作为本发明进一步的方案:所述的VM与VM之间的安全防护包括两部分,第一、解决同物理机上VM间通信不可视的问题:在VMM中实现对同一物理机上虚拟机间通信流量进行安全监控;第二、解决共享VM内存和缓冲区的问题:使用内存擦除方法时擦除内存或缓冲区中的内容,使用一个独立的执行通道防止出现共享缓冲。
[0013]作为本发明进一步的方案:独立的执行通道包括独立的CPU计算资源、内存与1/0通道。
[0014]与现有技术相比,本发明的有益效果是:
本发明主要是研究了和桌面云后台安全相关的各类问题,通过降低关键因素对于虚拟机安全的影响,辅以专门针对桌面虚拟化环境下的资源调度,实现了对虚拟机的安全加固以及虚拟机的安全管理,保证了用户的虚拟机安全。
【附图说明】
[0015]图1是Virt1的高级框架图;
图2是创建虚拟机流程图;
图3是SMM架构图;
图4是S10M模型架构图。
【具体实施方式】
[0016]下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0017]实施例1
本发明实施例中,一种桌面云环境下的虚拟机安全加固方法,【具体实施方式】主要包括如下几个部分:
1.远程桌面协议端口动态改变方法
SPICE客户端与服务端之间使用SPICE协议进行通信,通过通道进行连接,每一种通道专门负责一种特定类型的数据传输和通信。每一个通道使用专门的TCP连接套接字(socket),并可以对其进行加密(使用SSL)。在客户端上,每个通道使用专门的线程进行处理,当网络繁忙或有QoS(Quality of Service,服务质量)请求时,可根据实际情况,通过设置不同线程的优先级或者动态关闭、打开不同的通道来达到不同的QoS。由于SPICE使用的是套接字编程,因此通过这里来将
每个用户登录时产生的Token进行动态绑定。本发明通过开源项目Keystone进行用户登录的控制,每个用户登录时是通过用户名+密码的形式进行验证,验证通过后Key stone就会给用户分配一个Token,在用户访问桌面云的管理平台的所有资源时,都需要提供这个Token才可以进行相关操作。将用户登录后的Token与用于已有的虚拟机编号进行Hash运算,产生唯一的不与该VMM上其它虚拟机端口号重复的端口,之后再进行虚拟桌面的安全连接。这样使得除了虚拟机本身,不会再有其他用户知道该虚拟机的端口号,保证了用户的虚拟机安全。
[0018]2.VMM与VM之间的安全防护
VMM与VM之间的安全问题可分为:VMM的安全、VM的安全、VMM与VM之间的安全和VM与VM之间的安全。
[0019](l)VMM的安全防护
针对VMM的安全防护问题,存在VM超载、更改VMM配置等问题。
[0020]a.针对VM超载的防护方案虚拟机超载是指在同一主机上的虚拟机的总体负载过重,使得服务器宕机,导致服务中断。针对虚拟机超载的安全威胁:首先,本发明采用基于工作的负载预测的虚拟机整合算法,根据虚拟机资源池容量及所需虚拟机配置来合理部署虚拟机;其次,通过OpenStack自带监控组件ceilometer,实时监控同主机上所有虚拟机的运行状态,当超过一定的资源使用率(80%)时进行报警;再次,采用基于历史的虚拟机负载预测方法和虚拟机动态迀移方法,在同一主机上的虚拟机所使用的资源超过虚拟机资源之前将部分的虚拟机迀移到其他的主机中,以避免业务的中断。
[0021]b.针对恶意更改VMM配置的防护方案
恶意更改VMM配置是指通过修改VMM配置文件,使VM拥有或失去以前配置好的资源,导致VM无法正常运行或数据泄露。针对更改VMM配置的安全威胁:首先,本发明使用强制访问控制策略--多级安全(MultiLevel Secure,MLS)策略,防止无关人员对配置文件的修改;
其次,使用基于TPM的数据文件保护方法,在VMM读取配置文件前检查配置文件是否被篡改;最后,利用实时监控的方法,周期性检查虚拟机的资源与原有资源是否一致。
[0022](2)VM的安全防护
针对VM存在虚拟机逃逸问题的防护方案:虚拟机逃逸是指利用虚拟机软件或虚拟机中运行软件的漏洞进行攻击,以达到攻击或控制虚拟机宿主操作虚拟机或其他虚拟机的目的。针对虚拟机逃逸的安全威胁:首先,对虚拟机进行源码的脆弱性检测、漏洞扫描、软件升级方法、虚拟化脆弱性检测和虚拟机隔离与加固,以便在部署阶段发现虚拟机软件的漏洞;其次,使用虚拟机的完整性度量、VMM安全增强等方法,以提高运行阶段VMM的安全性;最后,利用隔离、强制性访问、虚拟机隔离与加固和动态完整性度量等方法,以保证虚拟机运行时的安全。
[0023](3)VMM与VM之间的安全防护
VMM与VM之间的安全防护问题,存在VMM修改VM内存、VMM修改VM指令、VMM窃取VM数据等问题。
[0024]a.针对VMM修改VM内存的防护方案
VMM修改虚拟机内存是因为VMM对VM有完全的控制权,可以通过应用接口、代码植入、缓冲区溢出等方式攻击VM,造成VM无法正常运行或数据泄露。针对VMM修改虚拟机内存的安全威胁:首先,限制VMM对VM控制能力,避免VMM权限过大;其次,使用隔离方法限制VMM进入VM的内存;再次,使用基于主机的入侵检测方法,防止VMM对VM的入侵;最后要通过审计手段监视VMM执行的命令和操作,及时发现威胁。
[0025]b.针对VMM修改VM指令的防护方案
VMM修改虚拟机指令是因为VMM对VM有完全的控制权,可以监控到VM中的指令信息,通过VMM修改VM的指令,达到控制和攻击VM的目的。针对VMM修改虚拟机内存的安全威胁,首先,限制VMM对VM控制能力,避免VMM权限过大;其次,使用隔离方法限制VMM进入VM的内存;再次,使用基于主机的入侵检测方法,防止VMM对VM的入侵;最后,通过审计手段监视VMM执行的命令和操作,及时发现威胁。
[0026]c.针对VMM窃取VM数据的防护方案
VMM窃取虚拟机数据是因为VMM对VM有完全的控制权,可以获取到VM的全部数据信息,造成VM的数据泄露。针对VMM修改虚拟机内存的安全威胁:首先,限制VMM对VM控制能力,避免VMM权限过大;其次,通过审计手段监视VMM执行的命令和操作,及时发现威胁。
[0027](4)VM与VM之间的安全防护
VM与VM之间的安全防护问题,存在VM间通信不可视、共享VM内存和缓冲区等问题。
[0028]a.针对同物理机上VM间通信不可视的防护方案
同物理机上虚拟机间通信是指虚拟机之间的网络通信可以通过VMM提供的虚拟网络进行,不需要经过物理网络,因此这部分流量对物理网络流量审计虚拟机不可见,而且绕过构建在物理网络中的防御措施,对虚拟化的安全造成一定的危害。针对同一物理机上虚拟机间通信的安全威胁,在VMM中实现对同一物理机上虚拟机间通信流量进行安全监控。
[0029 ] b.针对共享VM内存和缓冲区的防护方案
虚拟机内存和缓冲区共享是指内存和缓冲区可以被多个虚拟机使用,造成虚拟机之间的数据泄露。针对虚拟机内存共享的安全威胁:在共享内存方面,主要使用内存擦除方法,在虚拟机申请、换入换出、释放内存时擦除内存或缓冲区中的内容;在共享缓冲区方面,主要使用专用通道防止出现共享缓冲。
[0030]3.桌面云安全资源按需分配的方法
针对上述所涉及到的理论性技术方案,本发明采用Virt1这个半虚拟化框架来提供虚拟机与虚拟机管理器间的I/O数据传输,并且根据Virt1的可编程性来提供桌面云安全资源的按需分配方案。Virt1是半虚拟化VMM中位于设备之上的抽象层。Virt1是对半虚拟化VMM中的一组通用模拟设备的抽象。该设置还允许VMM导出一组通用的模拟设备,并通过一个通用的应用编程接口(API)让它们变得可用。有了半虚拟化VMM之后,来宾操作虚拟机能够实现一组通用的接口,在一组后端驱动程序之后采用特定的设备模拟。后端驱动程序不需要是通用的,因为它们只实现前端所需的行为。具体框架如图1所示。
[0031]由于Virt1的可编程性,并且目前Virt1已经添加到Linux的内核代码,所以本发明通过对Virt1进行订制和扩展来控制VMM对虚拟机的数据操作。将内存、磁盘、网络、PCI和控制台等资源分为不同的权重并且根据桌面虚拟化环境关键资源的特殊性,再结合当前已有的为提升性能而增加的功能,便可以提供安全等级可控的服务。
[0032]对于内存资源,目前已经针对虚拟化环境,采用透明页共享的方法,这在提高虚拟机性能的同时降低了虚拟机的安全性。透明页共享(TPS)是指将一台主机上的冗余内存页精简为一个页面。当多个虚拟机运行相同的操作虚拟机时,就有可能存储完全相同的内存页面。虚拟机管理程序会在每个内存页面上分配哈希值,并一位一位的进行比较,一旦不同页面的哈希值相匹配,就说明存在相同的内存页面。如果VMM确认了同一主机上的多个虚拟机有完全相同的内存页面,它会保留其中一份,而其它页面用指针代替。这样就释放了很多内存空间。另外,如果虚拟机上指针所代表的信息发生变化,VMM就会向内存信息写入一个新的页面,同时改变指针信息。
[0033]针对内存的安全性,本发明默认将其权限安全等级设置为最高。如果用户需要虚拟机处于内存完全安全状态,本发明就会通过Virt1来控制virt1-bal loon驱动,并且将其内部的传输信息进行隔离,不让该虚拟机的内存进行透明页的比对,使得其所有内存页都保存在自己专有的物理机内存空间,从而大大提升虚拟机的安全性。
[0034]除内存之外,按照网络、磁盘、PC1、控制台这样的依次递减顺序,分配不同的安全等级。用户创建一台虚拟机的时候,需要先选择该虚拟机的配额,即内存大小、磁盘
大小、CPU核数等,然后再选择是否启用安全模式,当选择安全模式后,就可按照一星到五星的级另IJ,选择自己可以接受的安全等级,该过程的流程图如图2所示。
[0035]4.开源的虚拟机管理器安全管理方法
本发明的桌面云环境是采用基于Linux的虚拟化平台。由于该平台的开源性,所以较容易存在攻击风险。为此,本发明采用限制对KVM主机上服务和端口的访问来保护桌面云环境免遭未经授权的入侵。如果主机受到侵害,则该主机上的虚拟机也将面临受到侵害的威胁。为此,通过设定特定的防火墙规则来保护KVM主机,并且对默认的类似SSH等服务进行关闭,以达到最大限度的防止入侵威胁。本发明通过Active Directory目录服务来配置KVM实现对用户的管理。如果要在每台主机上都创建本地用户帐户,则涉及到必须在多个主机间同步帐户名和密码的问题。若将KVM主机加入到Active Directory域中,贝lj无需再创建和维护本地用户帐户。使用Active Directory进行用户身份验证可以简化KVM主机配置,并能降低可导致出现未授权访问的配置问题的风险。为提高KVM主机的安全性,本发明将其置于锁定模式。在锁定模式下,所有操作都必须通过桌面云的管理平台执行。当主机处于锁定模式时,任何直接访问虚拟机管理器的途径都将被关闭。
[0036]除此之外,关闭一切软件安装功能。不论各类软件库,或者rPm、deb包等默认的Linux所支持的软件都将剔除其对应的软件包安装方法。取而代之的是本发明提供的一个统一认证平台,倘若要安装新的软件,必须在该认证平台上进行申请,申请认证成功后再从桌面云的管理平台的入口导入该软件。像防火墙规则等类似的服务,也需要通过和软件一样的方式进行安装或升级。通过采用这样的策略,本发明可以确保运行桌面虚拟化的虚拟机管理器环境的绝对安全,从而从根本上保证所有虚拟机的安全性。
[0037]最后,本发明还在宿主机上采用了隔离方法。所谓隔离性,就是通过硬件的冗余为每一个虚拟机保留一个独立的执行通道,这个通道包括独立的CPU计算资源、内存、I/O通道等。主要采用以下两种方式:
第一种是硬件协助的安全内存管理(SMM)
当虚拟机共享或者重新分配硬件资源时会造成很多的安全风险。首先,信息可能会在虚拟机之间被泄露。其次,如果虚拟机占用额外的内存,然而在释放的时候没有重置这些区域,分配在这块内存上的新的虚拟机就可以读取到敏感信息。本发明采用SMM提供加/解密来实现客户虚拟机内存与VM0内存间的隔离。SMM架构图如图3所示。
[0038]第二种是硬件协助的安全I/O管理(S10M)
在KVM中,每台客户虚拟机都被分配了软件模拟的I/O设备。在主机上,所有虚拟机共享用来虚拟I/O设备的内存和物理I/O设备的缓存。这里设计了一个基于硬件的安全的I/O虚拟架构。图4中的箭头表明I/O路径不再通过VM0,所以采用VMM强制执行虚拟隔离方法,使得即使VM0的出现故障也不会影响到整个I/O系统。
[0039]对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。
[0040]此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
【主权项】
1.一种桌面云环境下的虚拟机安全加固方法,其特征在于,包括以下几个步骤: 步骤一:解决远程桌面协议连接的安全性问题;将Token作为一种端口变动规则,并集结合Hash运算,来改变默认的SPICE连接端口号,产生不与该VMM上其他虚拟机端口号重复的端口; 步骤二:解决一台宿主机和运行在其上的虚拟机的安全问题,解决的问题包括VMM安全防护、VM安全防护、VM与VMM安全防护及VM与VM安全防护; 步骤三:解决桌面云安全资源按需分配问题,采用Virt1半虚拟化框架来提供虚拟机与虚拟机管理器间的I/O数据传输,并且根据Virt1的可编程性来提供桌面云安全资源按需分配方案; 步骤四:解决开源的虚拟机管理器的安全防护问题,采用限制对KVM主机上服务和端口的访问来保护桌面云免遭未经授权的入侵;提供一个统一认证平台,如果安装新的软件,需要在认证平台进行申请,申请认证成功后再从桌面云的管理平台的入口导入该软件。2.根据权利要求1所述桌面云环境下的虚拟机安全加固方法,其特征在于,所述VMM安全防护包括两部分,第一:解决VM超载:合理部署虚拟机,对虚拟机状态进行监控,对虚拟机进行动态迀移;第二:解决恶意更改VMM配置:强制访问控制防止被修改,使用TPM保护数据,实时监控并与标准配置对比。3.根据权利要求1所述桌面云环境下的虚拟机安全加固方法,其特征在于,所述的VM安全防护包括:首先,对虚拟机进行源码的脆弱性检测、漏洞扫描、软件升级、虚拟化脆弱性检测和虚拟机隔离与加固,在部署阶段发现虚拟机软件的漏洞;其次,使用虚拟机的完整性度量、VMM安全增强方法提高运行阶段VMM的安全性;然后利用隔离、强制性访问、虚拟机隔离与加固和动态完整性度量方法保证虚拟机运行时的安全。4.根据权利要求1所述桌面云环境下的虚拟机安全加固方法,其特征在于,所述的VMM与VM之间的安全防护分为三个部分,第一、解决VMM修改VM内存问题:限制VMM对VM控制能力,限制VMM进入VM的内存,入侵检测防止VMM对VM的入侵,监视VMM执行的命令和操作;第二、解决VMM修改VM指令问题:限制VMM对VM控制能力,使用隔离方法限制VMM进入VM的内存,入侵检测防止VMM对VM的入侵,监视VMM执行的命令和操作;第三、解决VMM窃取VM数据问题:限制VMM对VM控制能力,通过审计手段监视VMM执行的命令和操作。5.根据权利要求4所述桌面云环境下的虚拟机安全加固方法,其特征在于,隔离方法是在宿主机上采用的;采用以下两种方式: 第一种是硬件协助的安全内存管理:采用SMM提供加/解密来实现客户虚拟机内存与VM0内存间的隔离; 第二种是硬件协助的安全I/O管理:采用VMM强制执行虚拟隔离方法,使得即使VM0的出现故障也不会影响到整个I/O系统。6.根据权利要求1所述桌面云环境下的虚拟机安全加固方法,其特征在于,所述的VM与VM之间的安全防护包括两部分,第一、解决同物理机上VM间通信不可视的问题:在VMM中实现对同一物理机上虚拟机间通信流量进行安全监控;第二、解决共享VM内存和缓冲区的问题:使用内存擦除方法时擦除内存或缓冲区中的内容,使用一个独立的执行通道防止出现共享缓冲。7.根据权利要求6所述桌面云环境下的虚拟机安全加固方法,其特征在于,所述独立的 执行通道包括独立的CPU计算资源、内存与I/O通道。
【专利摘要】本发明公开了一种桌面云环境下的虚拟机安全加固方法,包括解决远程桌面协议连接的安全性问题;解决一台宿主机和运行在其上的虚拟机的安全问题,解决桌面云安全资源按需分配问题,解决开源的虚拟机管理器的安全防护问题。本发明主要是研究了和桌面云后台安全相关的各类问题,通过降低关键因素对于虚拟机安全的影响,辅以专门针对桌面虚拟化环境下的资源调度,实现了对虚拟机的安全加固以及虚拟机的安全管理,保证了用户的虚拟机安全。
【IPC分类】H04L29/06, G06F9/455, G06F21/12, H04L29/08, G06F21/57
【公开号】CN105487916
【申请号】CN201510818384
【发明人】翁树华
【申请人】上海君是信息科技有限公司
【公开日】2016年4月13日
【申请日】2015年11月24日