一种桌面云环境下的虚拟机安全加固方法_2

文档序号:9727193阅读:来源:国知局
每个用户登录时产生的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、控制台这样的依次递减顺序,分配不同的安全等级。用户创建一台虚拟机的时候,需要先选择该虚拟机的配额,即内存大小、磁盘
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1