基于虚拟安全域的多级安全访问控制
2018-03-01郎静宏柯文浚
孙 阳,刘 京,郎静宏,柯文浚
(1.海军航空大学,山东烟台264001;2.中国航天系统科学与工程研究院;3.中国空间技术研究院,北京100048)
作为云计算[1]技术核心的虚拟化技术[2],目前仍然面临许多安全问题。但能通过使用合适的访问控制模型[3],在一定程度解决虚拟化环境中的安全威胁。Xen虚拟化安全平台中研究的核心问题是hypervisor[4]安全。IBM通过对虚拟机系统进程进行控制,实现系统资源隔离,通过建立sHyper架构设计访问控制模块实现该隔离机制;Ga等利用TPM机制实现安全启动Hypervisor,建立可信Hypervisor对虚拟机与物理资源隔离,并在代码层以及对虚拟化系统中的数据的完整性进行限制,设计HyperSafer架构[5]实现安全模型研究。IBM早在2008年针对虚拟机安全问题就提出了一种可信虚拟数据中心TVD[6]的概念,主要实现了虚拟化平台下可信域间通信,TVD所实现的数据安全策略主要包含:①虚拟化标签,通过标签来标记可通信的虚拟机以及资源;②运行域,确立可以在同一台物理服务器上运行的虚拟机。
我国对虚拟化安全防护技术的研究起步较晚,研究成果较为匮乏,主要体现在3个方面:①研究重点是虚拟化方面的安全防护,缺乏针对应用场景的安全防护理论研究;②企业单位侧重点是通过虚拟化优化工作中遇到的网络管理问题,对于信息的安全防护考虑不充分;③当前安全厂商的虚拟化安全解决方案主要是传统安全技术和网络安全产品的简单叠加整合,未严格考虑到虚拟化与传统网络环境的差异。
总而言之,现如今云计算技术的快速发展,虚拟化也日渐成熟,虚拟化环境的安全与合适的访问控制模型以及与其制定的策略紧密相关。因此,对于CPU虚拟化、内存虚拟化、I/O虚拟化进行全面深入的了解,并且在这基础上延伸显得尤其重要。
1 BLP模型多级安全规则
本文在BLP模型[7]的简单属性和*-属性基础上结合虚拟化环境的特征,设计适合企业内网环境下的虚拟机间的多级安全访问控制[8]模型。设计模型制定安全策略适用场景为企业内网虚拟化环境中虚拟机通信[9]、虚拟机和存储设备之间的信息流控制[10],使得这2种主要行为满足虚拟化网络环境多级安全需求。
定义任何安全状态v,其根据状态转换规则ρ(Rk,v)=(Dm,v*)衍生的v*也是处于安全状态,则称ρ为安全状态规则。同理,可定义ρ的简单安全特性规则、*-特性规则、ds-特性规则。
规则1:定义R1=主体对客体的只读请求。
定义域 :Rk=(g,Si,Oj,r)∈R(1),Rk∈dom(Rk) ,1≤k≤10。
规则:
规则解释:记Rk∈dom(R1),即Rk在R1的定义域内为条件1;记fs(Si)≥fo(Oj)即Si的安全级别支配客体Oj的安全级别为条件2;条件3分为3种情形,只要满足3种情形之一就为满足条件3。
情形1:Si∈ST,即主体Si是可信主体;情形2:[Oj∈OD][r∈Mij],即Oj为虚拟机客体且访问矩阵M中主体Si具有对客体Oj的r访问属性;情形3:[Oj∈OS][Oj∈H(Oi)],即Oj是属于虚拟机主体Si的虚拟磁盘。条件都满足时,客体Oj允许主体Si的只读请求访问。
规则2:R2=主体对客体的读写请求。
定义域 :,1≤k≤10。
规则:
规则解释:记Rk∈dom(R2),即Rk在R2的定义域内为条件1;记fc(Si)=fo(Oj)即Si的安全级别支配客体Oj的安全级别为条件2;条件3分为3种情形,只要满足3种情形之一就为满足条件2。
情形1:Si∈ST即主体Si是信主体;情形2:[Oj∈OD][w∈Mij]即Oj为虚拟机客体且访问矩阵M中主体Si具有对客体Oj的w访问属性;情形3:[Oj∈OS][Oj∈H(Oi)]即Oj是属于虚拟机主体Si的虚拟磁盘。条件都满足时,客体Oj允许主体进行读写访问。
规则3:R3=访问主体放弃对客体的访问,其中访问属性为x(只读、读写)。
定义域:,1≤k≤10;x∈A。
规则:
规则解释:当符合条件Rk∈dom(R3)时,可以从b中删除主体对客体x属性的访问。
规则4:R4=新建一个客体虚拟机。
定义域:,1≤k≤10,Lu表示新创建的虚拟机客体的安全级别。
规则:
规则解释:记Rk∈dom(R4)为条件1;记Si∈ST为条件2;记Oj∈OR为条件3。若符合以上3个条件时,表示主体新建一个客体虚拟机,其父节点为Oj,且其安全级别为Lu,记该客体虚拟机为Onew(H)。当创建新的客体虚拟机后,在相应的主体集合内新增一个具有一样安全级别的主体虚拟机,记为Snew(H)。
规则5:R5=新建客体虚拟磁盘。
定义域:,1≤k≤10,Lu≤Lj表示新创建的虚拟机客体的安全级别。
规则:
规则解释:记Rk∈dom(R5)为条件1;记Si∈ST为条件2;记Oj∈OD为条件3。
若符合以上3个条件时,表示主体新建一个客体虚拟磁盘Onew(H)作为主体虚拟机的一部分存储,该虚拟磁盘父节点为Oj,全级别为Lu。
规则6:R6=删除虚拟机客体。
定义域:,1≤k≤10。
规则:
规则解释:记Rk∈dom(R6)为条件1;记Si∈ST为条件2;记Oj∈OS为条件3。若符合以上3个条件时,表示客体虚拟机Oj被主体虚拟机Si删除,同时虚拟机Oj名下的虚拟磁盘一并被删除。
规则7:R7=删除客体虚拟磁盘。
定义域:,1≤k≤10。
规则:
规则解释:记Rk∈dom(R7)为条件1;记Si∈ST为条件2;记Oj∈OS为条件3。若符合以上3个条件时,表示客体虚拟磁盘被主体删除。
规则8:R8=主体Sλ授予主体Si对虚拟机客体Oj的访问属性x。
定义域:,1≤k≤10;x∈A。
规则:
规则解释:记Rk∈dom(R8),即Rk在R8的定义域内为条件1;记Si∈ST,即Si为条件2;记Oj∈OD,即Oj是虚拟机客体节点为条件3。若符合以上3个条件时,主体Sλ授予主体Si对虚拟机客体Oj的访问属性x。
规则9:R9=表示主体Sλ撤销主体Si对虚拟机客体Oj的访问属性x。
定义域:,1≤k≤10;x∈A。
规则:
规则解释:记Rk∈dom(R9),即Rk在R9的定义域内为条件1;记Si∈ST,即Si为条件2;记Oj∈OD,即Oj是虚拟机客体节点为条件3。若符合以上3个条件时,主体Sλ撤销主体Si对客体Oj的访问属性x。
规则10:R10=表示调整主体Sj的当前安全级别。
定义域:,1≤k≤10;Lu表示Sj新的当前安全级别。
规则:
规则解释:记Rk∈dom(R10),即Rk在R10的定义域内为条件1;记Si∈ST,为条件2;记Sj∈OD,即Oj是虚拟机客体节点为条件3。若符合以上3个条件时,调整主体Sj的当前安全级别为Lu。
虚拟化网络环境中多级安全模型主要是在传统BLP模型基础上,对虚拟机之间的通信行为和虚拟机对存储设备的访问进行细化,主要体现在对其安全公理和对转换规则的重新设计。通过上述对传统BLP模型的改进,主要体现在以下5个方面。
1)本文研究的虚拟化环境中,主动发起访问的为主体虚拟机S,其中,主体可以访问的客体主要分为客体虚拟机、管理虚拟机以及虚拟磁盘。因此客体O代表了虚拟机与虚拟磁盘的并集。因此,利用数学模型分析可知,如果存在n个虚拟机,则对于安全级别为fs(Si)的虚拟机Si(1 ≤i≤n),会有C(Si)个虚拟磁盘客体,虚拟磁盘存放虚拟机中存放的相应安全等级的文件和数据。
2)在本安全系统模型中,将管理虚拟机设定为可信虚拟机,即管理虚拟机不受访问控制策略的约束;为了满足多级安全的特性,将对虚拟化系统中的虚拟机以及虚拟磁盘设置多安全等级属性,主要是为了限制虚拟机对信息处理的最高等级。
3)本文对虚拟化资源的管理主要采取多层次管理机制。①管理服务器对每个虚拟化服务器中的管理虚拟机进行管理,主要是对管理虚拟机中的策略进行更新、同步等;②Dom0为主体时,主要默认其为可信主体,Dom0为客体时,主要作为根节点;③虚拟机主要作为客体,在虚拟安全域中的虚拟机均属于同一层次,客体虚拟机集合可表述为OD={O1,O2,…,On},对任意i(1≤i≤n),Oi均在H(OR)中,并且对任意i(1 ≤i≤n)和j(1≤j≤n),Oi均不在H(Oj)中;④ 该层次为虚拟磁盘客体,对于同一用户的虚拟磁盘具有相同的虚拟机节点,可以用集合方式表述为:
4)传统的BLP模型中主客体的访问属性有A={r,w,e,a}。在虚拟化系统中,本文主要研究虚拟机之间的通信和虚拟机对磁盘的访问,故在此安全模型中只存在2种访问属性只读和读写,即A={r,w}。
5)在该安全模型中禁止普通虚拟机主体创建、删除和擅自更改虚拟机访问属性等操作,只有可信主体虚拟机,即管理虚拟机可以新建、删除虚拟机,并且可以实现对其访问属性的调整。基于此,该安全模型对转换规则重新设计修改,并且对涉及的客体范围做了进一步的限制。
①针对主体对客体的访问,当主体以x属性访问客体,主要用规则1和2表示,主体释放以x属性访问客体,主要用规则3来表示。
②管理虚拟机对虚拟化资源的新建、删除。管理虚拟机新建虚拟机和新建虚拟磁盘,主要用规则4和5表示;管理虚拟机删除虚拟机和虚拟磁盘,主要用规则6和7来表示。
③管理虚拟机对虚拟机访问属性的调整和虚拟机主体的安全级别。规则8主要体现为对虚拟机客体授予访问属性x。反之,规则9则是撤销该访问属性;规则10,表示对当前虚拟机的安全级别进行调整。
2 虚拟安全域
传统的网络环境主要是通过实体PC机处理各种不同业务,主要采用实体的终端管理。由于虚拟机本身的特性,传统的管理手段不适用于虚拟化环境,因此需结合虚拟化信息安全需求,设计一种全新的管理方案。本文将引入虚拟安全域,对资源按域划分,设计属性作基本的约束规则,依据资源属性确定安全标签,用于判断虚拟机通信以及对存储设备的读写等。
2.1 虚拟安全域理论
本文提出虚拟安全域,即把相同安全等级、需求的虚拟机归入相同的逻辑组内,对这个逻辑组配置访问控制策略。虚拟安全域中的虚拟机有共同的安全策略,这组虚拟机相互信任。本文根据资源的属性[11]将分布在虚拟化平台上安全属性一致的虚拟机划分在同一虚拟安全域中,不同的虚拟安全域之间保持严格的隔离。通常情形下,在同一虚拟安全域内的虚拟机可以相互通信。相反,则必须符合特定域间访问控制策略[12]才能相互通信。
虚拟化环境中引入虚拟安全域概念后(见图1),可将不同安全属性虚拟机抽象归为不同的虚拟安全域,并且其对应的安全策略也各不相同。
图1 虚拟安全域Fig.1 Virtual security domains
2.2 资源属性
在虚拟化网络环境中虚拟机和存储资源主要涉及3个核心属性,主要为用户、部门、安全等级。在虚拟化环境中主要通过3种不同的角度去定义。由于均为相互独立的划分方式,所以每针对其中一个属性都会将虚拟化环境中的全部资源进行划分,制定针对特定属性的安全策略。因此,对于虚拟化网络环境中的访问控制[13],其主要难点就在于资源之间的行为需要考虑多方面的条件约束,所以每一个访问控制策略都需要同时兼顾多种因素,包括用户、部门、安全等级等。
2.3 安全标签
通过对虚拟化系统资源进行安全域划分后,安全标签[14]的作用主要体现在标明虚拟机、存储磁盘等资源所属的虚拟安全域。安全标签是由一组安全属性信息组成,可以直观的表明实体资源所属的虚拟安全域。
在创建虚拟机时以及对其分配资源时,都会被分配一个明确的安全标签。其中,标签信息作为虚拟机和存储资源的基本信息被存储。在虚拟化网络环境中实体的标签信息是进行虚拟安全域划分的主要依据,其地位可见一斑,只能通过服务器中管理虚拟机的虚拟安全域代理进行创建和修改。虚拟机之间通信以及对存储资源的访问主要依赖安全标签信息进行访问控制策略制定。
虚拟化网络环境中本文利用三元组[15](用户、部门、安全等级)来对资源进行标识,将虚拟化平台内的虚拟机、存储等资源划分给特定的用户和部门,并且对其进行划分相应等级。在虚拟化环境的安全理论模型中,将三元组归纳为“安全标签”,即通过标签信息标识虚拟化环境中的虚拟机和存储,在虚拟化安全访问控制架构中,可以判断用户虚拟机可通信的虚拟机和访问的存储资源。
虚拟化环境中访问控制策略执行时对三元组的对比主要是以安全标签为凭据。在制定访问控制策略时,根据安全标签,首先将虚拟机和存储设备通过安全标签进行属性标识;再经过资源属性对其进行虚拟安全域的划分;然后,依据安全标签制定访问控制策略,实现对虚拟化的多维度的细粒度的访问控制。
3 系统总体设计
在虚拟化网络环境中访问控制模块主要包含以下几个方面:策略管理模块、超级调用拦截模块、多级安全控制模块、通信访问控制模块和存储设备访问控制模块。策略管理模块实现对虚拟化全局资源访问控制策略的管理、分发同步功能;超级调用拦截模块主要实现虚拟机间通信和虚拟机对存储磁盘的访问请求的拦截功能;多级安全控制模块主要实现虚拟机访问行为的多级安全防护;通信访问控制模块主要实现虚拟机间通信的控制行为;存储设备访问控制模块主要实现虚拟机对虚拟磁盘的访问控制功能。在Xen虚拟化环境中该系统的总体模块结构设计见图2。
图2 总体模块结构设计Fig.2 Structure design of overall module
可以直观看到,该系统策略主要包含2个方面:全局策略管理和本地策略管理。其中,全局策略管理在管理服务器中,主要负责对系统中所有访问控制策略的制定和管理,并且保证与服务器本地策略保持同步。本地策略管理模块位于各个虚拟机服务器中,在Xen环境中该模块位于Dom0中,主要是和管理服务器通信,负责接收来自管理服务器的同步策略信息,并且将策略信息及时写入到Hypervisor的本地信息库中。
在该系统中,主要基于XSM框架的安全接口通过超级调用拦截模块实现对虚拟机之间的访问和虚拟机对磁盘的访问行为的控制。其中,超级调用模块位于Hypervisor中,主要实现对事件通道和授权表操作的超级调用。
在虚拟化网络环境中系统资源必须遵循分级分域的原则,在Hypervisor层被拦截的访问请求将会被送到多级安全模块中进行判定。该多级安全模块是对基于BLP的多级安全理论的具体实现,保障虚拟机的访问行为不违反“不上写、不下读”的基本原则。主要是实现防止跨越等级的非法操作。
虚拟机间通信访问控制模块位于Hypervisor中,主要是对多级安全模块传递的对虚拟机间的通信进行再次判定,只允许属于同一部门或者满足访问控制策略要求的访问请求被允许。
存储设备访问模块位于Hypervisor层中,主要是对虚拟磁盘访问控制机制的具体实现,对于多级安全模块传递过来的对虚拟磁盘读写行为进行判断,使得虚拟机只能访问自己的虚拟磁盘或者对符合本虚拟机访问控制策略的磁盘进行访问(该虚拟机存在于虚拟磁盘链表中),禁止其他非法访问请求。
4 系统实现
4.1 测试用例
本节主要从以下几个方面测试虚拟化访问控制模型的可用性。
4.1.1 访问控制策略分发测试
测试在正常状态下,管理服务器的策略制定功能及其策略分发功能。
测试步骤为:
1)在管理节点服务器上制定针对测试环境的多级安全策略、用户域策略和部门域策略;
2)尝试将管理节点服务器上制定的访问控制策略分发到每一个计算节点服务器;
3)检查计算节点服务器的配置文件,检查是否正确接收到了访问控制策略。
预期结果为:计算节点服务器能够准确接收到管理节点服务器下发的访问控制策略。
4.1.2 虚拟机之间的通信访问控制测试
测试在正常状态下,虚拟机之间通信行为的访问控制功能。
测试步骤为:
1)登陆非密等级虚拟机domu3;
2)在虚拟机domu3中,尝试对属于部门M的非等级虚拟机domu1发起通信请求;
3)观察虚拟机domu1对虚拟机domu3通信请求的响应结果。
4)登陆机等级虚拟机domu2;
5)在虚拟机domu2中,尝试对属于部门M的非密等级虚拟机domu1发起通信请求;
6)观察虚拟机domu1对虚拟机domu2通信请求的响应结果。
预期结果为:虚拟机domu3无法访问虚拟机domu1;虚拟机domu2可以访问虚拟机domu1。
4.1.3 虚拟磁盘读写访问控制测试
测试在正常状态下,虚拟机对虚拟磁盘访问行为的的访问控制功能(虚拟机domu1没有授予虚拟机domu3访问虚拟磁盘权限和虚拟机domu1授予虚拟机domu2访问虚拟磁盘权限)
测试步骤为:
1)登陆虚拟机domu3;
2)在虚拟机domu3中,尝试对属于虚拟机domu1的非密虚拟磁盘发起读写访问请求;
3)观察虚拟机domu3对虚拟机domu1虚拟磁盘读写请求的响应。
4)登陆虚拟机domu2;
5)在虚拟机domu2中,尝试对属于虚拟机domu1的非密虚拟磁盘发起读写访问请求;
6)观察虚拟机domu2对虚拟机domu1虚拟磁盘读写请求的响应。
预期结果为:虚拟机domu3无法访问虚拟机domu1的虚拟磁盘;虚拟机domu2可以访问虚拟机domu1的非密虚拟磁盘。
4.2 安全域间的通信实验
1)domu1和domu2处于相同的部门域。虽然domu1属于机密域,domu2属于非密域,但是domu2可访问domu1授权的非密域的虚拟磁盘。因此,domu2可和domu1进行虚拟磁盘共享Domu2能够成功接入信道,证明在通信访问控制策略作用下虚拟机之间能够实现安全通信将domu1提供的共享内存页映射到domu2的访问地址为shared_page=d388400(见图3),即domu2在自己的地址空间,可以通过该地址读写数据,其写入的数据domu1可见,domu1写入的数据domu2也可见,证明能够实现虚拟磁盘读写访问控制策略。综上,能够看出访问控制策略分发成功。
图3 虚拟机之间通信成功Fig.3 Successful communication between virtual machines
2)domu1部门域为M不能和部门域为N的domu3通信。因此,domu3企图接入domu1,提示“-1 Bad address”(见图4),由此可知domu3接入domu1信道失败,即虚拟机domu3与domu1不能通信以及读取虚拟磁盘信息。
图4 虚拟机之间通信失败Fig.4 Failure communication between virtual machines
本节主要针对访问控制策略分发、虚拟机通信访问控制、虚拟磁盘读写访问控制的安全模型进行测试,验证了该模型在虚拟化环境中对虚拟机之间的通信以及虚拟机对虚拟磁盘的访问行为控制的有效性。
5 结论
在当前虚拟化架构下,Hypervisor通过Hypercall机制为上层虚拟机提供了建立基本通信机制的能力,包括EventChannel和granttable机制。通过在虚拟机上加上合适的访问控制机制安全策略实现2个DomU之间在安全策略的控制下建立底层通信信道,实现或者禁止虚拟机之间相互通信以及数据信息传递。本文在虚拟化环境中在BLP模型的基础上引入虚拟安全域的逻辑,对虚拟化环境进行分级分域实现本访问控制系统,实践证明,在虚拟化环境中如果缺乏有效的访问控制机制,当前的Xen主流虚拟化产品将难以有效防止信息泄露行为,造成难以预料的信息泄露。