基于访问控制的Hypervisor非控制数据完整性保护
2015-10-14陈志锋李清宝曾光裕
陈志锋 李清宝 张 平 曾光裕
基于访问控制的Hypervisor非控制数据完整性保护
陈志锋*李清宝 张 平 曾光裕
(解放军信息工程大学 郑州 450001)(数学工程与先进计算国家重点实验室 郑州 450001)
在虚拟化技术广泛应用的同时虚拟层的安全问题引起了国内外研究人员的密切关注。现有的虚拟机管理器(Hypervisor)完整性保护方法主要针对代码和控制数据的完整性保护,无法抵御非控制数据攻击;采用周期性监控无法提供实时的非控制数据完整性保护。针对现有方法的不足,该文提出了基于UCON的Hypervisor非控制数据完整性保护模型UCONhi。该模型在非控制数据完整性保护需求的基础上简化了UCON模型,继承了UCON模型的连续性和易变性实现非控制数据的实时访问控制。根据攻击样例分析攻击者和攻击对象确定主客体减少安全策略,提高了决策效率;并基于ECA描述UCONhi安全策略,能够有效地决策非控制数据访问合法性。在Xen系统中设计并实现了相应的原型系统Xen-UCONhi,通过实验评测Xen-UCONhi的有效性和性能。结果表明,Xen-UCONhi能够有效阻止针对虚拟机管理器的攻击,且性能开销在10%以内。
虚拟机管理器;非控制数据;使用控制;完整性保护;事件条件行为
1 引言
近年来,虚拟化技术在计算机系统中得到了广泛的使用,其底层性、隔离性,尤其是安全性越来越受到研究人员的关注。针对操作系统内核的安全问题,文献[1]首次提出了虚拟机自省(Virtual Machine Introspection, VMI)的概念并将其应用于系统监控和恶意软件检测。Gibraltar[3], vDetector[4]和KCoFI[5]等利用虚拟化保护客户操作系统内核的完整性或者提供操作系统内核行为的可靠监控。同时,基于虚拟化的系统调试和分析工具如K-Tracer[2]等被用于诊断系统的异常行为和内核恶意软件的检测。
虚拟机系统的核心组成是Hypervisor,或者称为虚拟机管理器(Virtual Machine Monitor, VMM),通过虚拟化真实系统的硬件为客户虚拟机提供隔离的运行环境。由于Hypervisor比传统的操作系统拥有更精简的代码量,能够更好地减少软件漏洞和缺陷,因此通常被认为是安全的并用来提高运行在它之上的虚拟机的安全性。然而,即使相对于传统的操作系统而言,Hypervisor的代码量已十分精简,但是其代码仍显得很庞大。例如,Xen[7]4.1.2版本含有大约350k行代码。最近针对Hypervisor漏洞进行攻击的案例也表明了Hypervisor并不是绝对的安全,VM逃亡攻击[8]以及出现的Hypervisor Rootkits[9,10]大大增加了Hypervisor的安全威胁。美国国家脆弱性数据库(National Vulnerability Database, NVD)的相关研究[11]表明在最近的3年,Xen系统中已发现131个安全漏洞,VMware ESX有83个安全漏洞。因此,研究有效增强Hypervisor安全性的方法势在必行。
现有的增强Hypervisor安全性的方法主要有3类,一类是形式化证明方法。该类方法基于定理证明构建Hypervisor形式化模型证明模型的安全属性,但该类方法受限于Hypervisor自身的代码量。第2类方法是借鉴微内核的思想减小可信计算基(Trusted Compute Base, TCB)以最小化Hypervisor的攻击面。该类方法针对特定的应用或者目标构建Hypervisor,使得Hypervisor的功能受限,适用范围小。第3类方法是通过确保运行时的Hypervisor完整性来提高Hypervisor的安全性,该类方法是目前比较流行和实用的方法。为了确保一个应用程序运行时的安全性,可以在其底层运行一个监控软件监控它的执行。由于Hypervisor已经运行在软件栈的最底层,在其下构建监控软件的方法并不适用。有人曾使用嵌套的Hypervisor运行在需要保护的Hypervisor下,但这并没有解决一个本质问题:无法保证运行在Hypervisor下的Hypervisor的安全。
第3类方法较第1、第2类方法实用有效,一方面未牺牲Hypervisor的任何能力,另一方面部署容易,提供了较强的安全防护能力,但其主要考虑了Hypervisor代码、控制数据的完整性,对于非控制数据的完整性基本未涉猎。控制数据指的是在程序运行过程中加载到程序计数器中的数据,主要包括返回地址和函数指针。通过篡改劫持控制数据,攻击者可以修改目标程序的控制流并执行攻击者想要执行的任意代码或者功能。尽管控制数据攻击被认为是最严重的威胁,但是已有研究[23]指出非控制数据攻击能够造成和控制数据攻击等价的威胁,并且很多现实世界中的应用很容易遭受这种攻击。攻击者通过破坏目标程序的非控制数据,如配置数据,用户身份数据和决策数据等,破坏应用程序的完整性。除了应用层,文献[24]首次提出了针对Hypervisor非控制数据的攻击,如通过修改Xen内存中的非控制数据实现客户虚拟机权限提升[8]、信息泄露[25]等,对Hypervisor的安全造成了严重威胁。目前针对Hypervisor非控制数据保护的研究甚少。HyperVerify[21]是第1个讨论Hypervisor非控制数据的系统,该系统通过可信VM监控Hypervisor的状态,然后对这些状态进行语义重构,从而得到Hypervisor的上下文信息,并通过判断这些信息的完整性来决策Hypervisor非控制数据的完整性。但该系统监控的Hypervisor非控制数据存在一定的片面性,而且其采用的周期性监控方法无法提供Hypervisor非控制数据的实时保护。
使用控制(Usage CONtrol, UCON)模型[26]的显著特点是使用决策的连续性与属性的易变性。连续性意味着使用控制决策不仅在访问前可以做出,在访问过程中也可以做出。易变性意味着主体、客体属性作为访问执行的结果而发生改变。这两个特性保证了UCON模型能够提供对数据的实时的、细粒度的、可扩展的访问控制[27]。因此,针对现有方法在Hypervisor非控制数据完整性保护上存在的不足,本文提出了一种基于UCON模型的Hypervisor非控制数据完整性保护方法。首先,我们根据需求简化了UCON模型,提出了一种适用于Hypervisor的访问控制模型UCONhi。然后,详细阐述了模型的原理和主客体的基本组成,并讨论了基于事件和行为的UCONhi策略描述方法,通过实例说明了UCONhi策略的有效性。在此基础上,设计了UCONhi的框架并实现了原型系统。最后,通过实验验证了基于UCONhi的Hypervisor能够有效抵抗现有的针对Hypervisor非控制数据的攻击,并且性能开销仅为原系统的10%左右。
2 基于UCON模型的Hypervisor非控制数据完整性保护
2.1 UCONhi模型
Hypervisor实时完整性保护的基本需求是控制系统运行过程中非信任主体对敏感Hypervisor客体的访问。因此,授权需要根据主体和目标客体的实时属性做出决策。进一步地,随着安全需求等级的变化,对于主体访问请求的控制应该满足灵活性和细粒度以反应易变性:即授权可随属性的变化而动态调节。
在传统的访问控制模型中,用户标识和组员身份等是授权考虑的主要元素。然而,对于Hypervisor架构,VM中活跃进程的状态、I/O设备、Hypervisor数据等是授权决策考虑的重要因素。例如,普通进程不能够访问Hypervisor的代码和数据,但是特权程序在与Hypervisor通信之后可改变Hypervisor的某些状态。
UCON模型中授权、权利和义务是使用决策的3大决定因素。授权是基于主体属性和客体属性做出的;义务是主体在访问前或者访问中必须完成的动作。从上述对Hypervisor实时完整性保护需求可知,这一过程实现主体对客体的访问控制,并不要求主体在访问前或访问中执行动作,也不需要限制主体和客体的环境。
考虑到这些需求,本文提出了一种使用控制简化模型UCONhi,忽略了UCON模型中的条件和义务,基本定义如下。
定义1 UCONhi是一个六元式(,, ATT(), ATT(),,)。其中,是主体,指能够访问Hypervisor的对象。guestOS中的进程、可加载内核模块(Loaded Kernel Module, LKM)等利用API或者漏洞,外部I/O设备通过DMA方式,Hypervisor Rootkit利用特权等均能够访问Hypervisor,所以主体包括OS进程,LKM, I/O和Hypervisor Rootkit。
是客体,指提供给主体访问的内容,有内存(Hypervisor代码、数据、堆栈)、寄存器、Hypervisor映像文件等。前文已指出,本文重点关注的客体是Hypervisor非控制数据。文献[24]归纳总结了3类Hypervisor非控制数据,分别为资源利用相关数据、安全策略相关数据和特权相关数据。在分析现有的恶意攻击样例中我们发现配置数据(如VMCS)和决策数据对Hypervisor的安全性也至关重要。因此,该模型中的客体包括这5类对象,即关注这5类Hypervisor非控制数据。
ATT()是主体属性,包括主体名称、可执行代码哈希值等。
ATT()是客体属性,包括Hypervisor非控制数据的地址、类型、状态、取值等。
是权利,指一般的读写访问行为。
是授权,指在满足谓词关系为真时允许授权,在谓词关系为假时拒绝或者收回授权。
根据定义1,授权决策是由主体属性、客体属性和请求的权利决定的,也就是说谓词是由主客体属性及请求权利组成的。例如,一个进程(主体)请求写某一个Hypervisor非控制数据的权利,其策略为进程的属性是被认证过的且非控制数据的类型不能够是限制集合中的一种,那么系统就对该主体的属性和客体的类型进行判断,满足策略则授予访问权,否则拒绝;同时在访问过程中,仍要进行授权合法性检测。
在UCONhi模型中,对于Hypervisor非控制数据的使用决策不仅仅在访问之前进行评估,在访问过程中也要进行评估。如果任何一个谓词在使用过程中取值不保持为真,那么访问权限将被撤回。
同时,UCONhi模型中属性的更新也是伴随着整个访问过程。假设进程1已被授权访问Hypervisor非控制数据VMCS(配置数据),并在访问过程中对VMCS进行了修改,但未更新VMCS,即当前状态为访问中。此时进程2请求访问VMCS,即,那么根据UCONhi模型,需要依据进程2请求的权利2和主客体的属性进行授权,策略为:
但由于进程1对VMCS的修改导致VMCS属性发生了更改,如果按照VMCS原来的属性进行授权决策,那么进程2能够正常访问VMCS,这可能导致进程2非法访问Hypervisor。所以,在主体请求访问Hypervisor非控制数据时需要进行属性更新操作。
由此可见,UCONhi模型满足UCON模型的决策连续性和属性易变性,可以实现Hypervisor非控制数据的实时监控和访问决策。
2.2基于事件模型的策略描述
事件条件行为(Event Condition Action, ECA)[28]是一种很适合描述策略的语言,该语言描述的策略直观、具有较好的表达能力。本文借鉴ECA,将ECA中的条件用谓词替换描述UCONhi策略。一个UCONhi策略按照下列形式声明:当一个事件发生时,如果谓词取值为真,那么事件产生的行为就必须得到执行。具体见定义2。
定义2 UCONhi策略
(1)事件:一个事件是由一个主体产生的,本文定义3类事件:请求访问ta,访问中oa,结束访问ea,如图1所示。
图1 主体事件和行为分布
它们的语义描述如下:
(2)行为:主体发起的访问事件产生的行为是由安全系统执行的。如图1所示,UCONhi模型中定义了6类行为:允许访问pa,拒绝访问da,撤回访问ra,预更新pru,实时更新ou,事后更新pou,语义如下:
(3)谓词:谓词是一个由常量和变量构建的布尔表达式,其中变量和常量是由主体和客体的属性组成的。一个系统中定义有不同类型的谓词。例如,一元谓词可由一个属性和任意数量的常量组成。二元谓词由两个属性和任意数量的常量组成,两个属性可以来自单个实体或者两个不同的实体。
下面结合3个实例说明如何使用ECA语言描述UCONhi策略。
例1 假设VM中一个进程请求写VMCS中的某一项。一个合法的策略要求进程的属性是授权过的且VMCS某项的类型不能够是受限集合中的一种。策略声明如下:
例3 假设Hypervisor在一次合法的升级中,修改了VMCS某些配置项,那么在升级之后这些项的值被更新。策略声明如下:
为了更好地说明图1中UCONhi模型的使用,我们使用有限状态机模型来进一步论述,如图2所示。
从图2可知,该状态机模型包括一个初始状态,两个中间状态请求状态和访问状态以及3个终止状态结束状态、拒绝状态和撤回状态。初始状态指的是系统在等待主体请求一次客体访问。结束状态指的是访问请求成功终止。拒绝状态指的是访问请求在预授权时被拒绝。撤回状态指的是访问请求在访问过程中被撤销。请求状态表明访问请求进入预授权。访问状态表明访问请求正在进行中。
文献[24]提出了一种攻击Hypervisor数据实现VM提权的攻击,我们使用该状态机模型识别此攻击。当攻击者申请访问Hypervisor中控制VM权限的数据时,状态机模型从初始状态经请求访问ta事件进入请求状态,在该状态下,模型对此访问事件的合法性进行判断;由于控制VM权限的数据是不允许非Hypervisor自身代码进行修改的,故决策时产生拒绝访问da事件拒绝此访问。因此,状态机从请求状态经da事件进入拒绝状态,从而拒绝非控制数据的非法访问。对于其它类型的Hypervisor非控制数据访问,状态机经过不同的状态转移进入不同的终止状态。可见,基于该模型的非控制数据访问控制能够保护Hypervisor非控制数据的完整性。
图2 UCONhi模型中一次访问请求的执行过程
3 架构及实现
本节首先给出了支持UCONhi的实施架构,然后在架构的基础上实现原型系统。
3.1架构
如图3所示,该架构包含3个主要的部分:策略执行点、策略决策点和属性仓库。为了提高效率,引入了访问决策缓存组件用于缓存最近的访问决策。策略执行点用于捕获主体访问Hypervisor非控制数据(客体)的事件,并获取主体和客体的属性,同时负责执行最后的访问控制决定。策略决策点从策略执行点处接受请求,根据策略执行点提供的主客体属性、访问请求评估用于该请求的策略,并将授权决定返回给策略执行点。为了确保策略执行点和策略决策点的代码安全,本文使用了Hypersafe[18]的代码和控制数据完整性保护技术确保这两部分功能代码的完整性。
在该框架下系统工作过程如下:
(1)主体产生访问客体的事件,策略执行点捕获到该事件;
(2)策略执行点到属性仓库中查找主体和客体的属性,如果还未有其对应的属性,则收集它们的属性并存入属性仓库中;否则转(3);
(3)策略执行点询问访问决策缓存组件中是否有该主体访问客体的决策,如果有,接着检查主客体的属性是否未被修改,如若是,则按缓存的决策执行,否则,转(4);
(4)策略执行点将主客体属性和访问请求发送到策略决策点,策略决策点根据主客体属性评估策略生成访问控制决策,然后传递给策略执行点执行。
此外,由于使用过程中主客体的属性存在变化的可能性,所以在此期间策略执行点将根据对应策略更新主客体属性。策略执行点获取到新的主客体属性,将它们存入属性仓库。同时在访问结束后,策略执行点将决策缓存到访问决策缓存组件中。
图3 系统架构图
3.2实现
我们在该架构和开源Hypervisor Xen的基础上实现了原型系统Xen-UCONhi。但是该框架能够适用于不同类型的Hypervisor,如Bitvisor[15], KVM[29]等。
实现该原型系统的关键在于系统能够识别主客体的类别和属性以及主体访问客体的事件。为了能够实现不同主体对这几类非控制数据访问事件的捕获,Xen-UCONhi首先根据主体类型采用不同的监控手段,然后根据主体访问对象类型采用不同的UCONhi安全策略判断访问事件的合法性。
对于客户机进程或者LKM,通过捕获内核级的写指令,获取主客体的属性并判断客体是否为Hypervisor中的对象,如果是Hypervisor中的对象,则将主客体属性和访问事件传递给策略执行点,否则略过。
对于I/O设备的DMA操作,Xen-UCONhi基于IOMMU的DMA Remapping技术获取I/O设备属于的保护域,然后使用保护域和I/O设备请求地址查看TLB是否存在该请求地址,若存在,则取得读写权限标记以及用于转译的目标系统地址,传递给策略执行点;若不存在,IOMMU继续查看设备相关的I/O页表,提取I/O页表中存储的连接到目标地址的权限信息并传递给策略执行点;最后策略决策点根据安全访问控制策略决策I/O设备访问的合法性。
对于Hypervisor Rootkit,通过捕获与Hypervisor相关的特权指令,如vmcall, vmread, vmwrite, vmptrld, vmclear等,发现Hypervisor Rootkit的创建行为,然后判断主体类型并根据策略决策访问事件。
4 实验及结果分析
本节从有效性和性能两方面对UCONhi进行评测。有效性测试用于验证UCONhi能否实现主体对客体的访问控制。性能测试用于验证UCONhi的效率和开销。实验环境如下:主机CPU为Intel(R) Core(TM) i5-750 @ 2.67 GHz,内存大小4GB.Xen版本为4.4.0, Host OS和Guest OS均采用的是3.2.0-24-686内核的Ubuntu 12.04,各分配2 GB内存。
4.1有效性测试
为了更好地测试UCONhi是否能够发现并阻止攻击Hypervisor非控制数据的行为,我们首先选择了前文提出的5类Hypervisor非控制数据的攻击样例,它们分别修改VMCS配置、特权相关数据、调度数据、安全策略数据等非控制数据,其中前3种攻击样例来自文献[24],后两种攻击样例为自实现。测试结果如表1所示。
表1攻击测试
攻击者攻击的非控制数据类型攻击方式阻止 Attack_pd特权数据ROP攻击√ Attack_sd调度数据DMA攻击√ Attack_spd安全策略数据DMA攻击√ Attack_vcdVMCS配置数据伪装合法进程√ Attack_upd访问控制策略数据DMA攻击√
从表1中我们可以看出,Attack_pd利用ROP攻击修改Xen中domain数据结构的is_privileged字段使得普通的VM成为具有特权的Dom0,导致其可以创建、开启、暂停、关闭其他的VMs。Attack_pd修改该字段时触发UCONhi,策略执行点捕获该事件及与事件相关的主客体属性,然后将这些信息传递给策略决策点,策略决策点经过计算判断事件的合法性并将结果反馈给策略执行点。策略描述如下所示。
Attack_sd通过修改csched_dom结构中的weight和cap字段使得VM的性能受到影响。在Attack_sd修改这两个字段时UCONhi触发决策事件,成功阻止Attack_sd的篡改。策略与上一攻击类似。
Attack_spd则是对Xen安全模块(XenSecurity Module, XSM)中的安全策略数据进行篡改使得VMs之间的信息流违反XSM规定的安全策略。在Attack_spd修改XSM的数据时,UCONhi产生决策,拒绝Attack_spd发起的修改事件,成功阻止篡改行为。策略描述如下。
Attack_vcd则是利用Xen与上层应用程序的通信接口实现对VMCS字段的篡改。在Attack_vcd修改VMCS时,UCONhi触发决策,判断访问主体的合法性,最终成功阻止它对VMCS的篡改。
Attack_upd则是对策略库中的数据进行篡改。由于本文使用TPM对策略数据库进行保护,策略库的内容使用了TPM提供的加密功能进行加密,且任何策略库修改均需要通过认证。故Attack_upd无法实现对策略库的篡改。
接下来我们与HyperVerify[20]进行对比,设定HyperVerify的监控周期为15 s。首先测试两者是否能够发现现有的Hypervisor非控制数据攻击,然后测试两者能否发现任意时刻的Hypervisor非控制数据攻击,不妨设为20 s。测试结果如表2所示。
从表2可知,在监控点15 s时,攻击者发动攻击,HyperVerify不能够发现后面两种攻击,这是由于HyperVerify目前只针对前3种非控制数据进行监控;在20 s时,攻击者再次发动攻击,HyperVerify无法发现任何攻击,而Xen-UCONhi则能够发现所有攻击,这是由于HyperVerify设定的监控周期为15 s,第2次触发监控检查是在30 s, 20 s介于两者之间,此时的HyperVerify并未进行任何监控操作,所以未能发现任何攻击行为,而Xen-UCONhi采用的事件监控实现了实时的HyperVisor非控制数据访问控制监控,故Xen-UCONhi发现了20 s的HyperVisor非控制数据攻击行为。因此,Xen- UCONhi能够实时监控非控制数据的完整性,较HyperVerify具有更好的保护能力。
表2对比测试
攻击者攻击的非控制数据类型HyperVerify(15 s)Xen-UCONhi(15 s)HyperVerify(20 s)Xen-UCONhi(20 s) Attack_pd特权数据√√Í√ Attack_sd调度数据√√Í√ Attack_spd安全策略数据√√Í√ Attack_vcdVMCS配置数据Í√Í√ Attack_upd访问控制策略数据Í√Í√
4.2性能测试
为了更好地说明UCONhi对系统的性能影响,实验中首先使用LMBench 3.0-a9工具分别对未加入UCONhi的Xen和融合UCONhi的Xen-UCONhi进行测试。测试结果数据均是10次重复实验的平均值,10次测试过程中未运行其余程序,测试环境一致,测试结果如图4,图5所示。
从图4可以看出,由于Xen-UCONhi未对null call和null I/O操作进行监控,直接由处理器处理,故未带来任何开销;而open/close为I/O操作指令,Xen-UCONhi监控并处理了I/O操作,捕获这些操作的主客体属性等并决策,故这些操作需要的时间开销较大;同时,Xen-UCONhi在fork proc, exec proc和sh proc 3项测试指标下的性能远大于其它指标,这是因为这3项指标的测试过程中需要计算可执行文件的hash值。
从图5可知,Xen-UCONhi对于0k file create/delete和10k file create/delete操作没有带来任何的开销,这是由于Xen-UCONhi未对文件的创建和删除进行任何额外的监控和处理;prot fault指的是保护异常带来的开销,UCONhi只是捕获该操作,捕获之后将该操作的处理返还给操作系统内核;page fault指的是缺页异常带来的开销,由于Xen-UCONhi设置了关键数据所在页的属性,当产生写关键数据操作时,触发缺页异常,由VMM处理该异常,处理之后再返回内核,所以page fault所需要的开销较大,且大于prot fault的开销。
为进一步评测UCONhi的性能,我们采用了5种常用应用程序来测试其性能开销,如表3所示。
表3基准测试应用程序
项目版本命令 解压缩bzip21.0.6tar zxf linux-3.2.43.tar.bz2 压缩gzip1.4tar zcf linux-3.2.43 文件拷贝cp8.13cp –r linux-3.2.43 otherwhere 内核编译3.2.43make allnoconfig && make linux启动Ubuntu 12.04Linux boot
图4 LMBench进程测试 图5 LMBench文件及VM系统测试
图6给出了以Xen为基线Xen-UCONhi的应用程序基准测试结果,从整体上看,加入UCONhi给Xen带来了一定的开销。对于解压缩和压缩程序,Xen-UCONhi分别引入了1.75%和2.42%的性能开销,但这两种程序均为计算密集型作业,带来的开销相对较小。文件拷贝是I/O密集型作业,其中包含大量的读写操作,由于Xen-UCONhi对写操作进行了监控和处理,所以文件拷贝带来的开销相对较大。内核编译过程耗时较长,编译过程中重复加载少量应用程序和链接库,而Xen-UCONhi引入了决策缓存组件,已经过验证的程序可避免重复计算,大大减少决策时间,故内核编译带来的开销也相对较小。linux启动指的是从上电到客户机加载完成所需要的时间,从图6可知Xen-UCONhi所需要的时间比Xen约多5%。因此,从以上的测试可知,Xen-UCONhi对系统引入的开销在10%以内,这是一个可以接受的范围。与Hyperverify的4%相比,尽管带来了额外5%左右的负载,但是Xen-UCONhi实现了实时的非控制数据完整性保护,克服了Hyperverify存在的监控间歇问题。
图6 基准程序测试结果
5 结论
Hypervisor安全问题已成为国内外的研究热点。本文针对现有的Hypervisor完整性保护方法在非控制数据完整性保护上存在的不足提出了一种基于UCON的非控制数据保护模型UCONhi,并基于Xen设计实现了原型系统Xen-UCONhi。UCONhi具备属性易变性和决策连续性,能够保证Hypervisor非控制数据的实时完整性;对非控制数据的分类减少了安全策略,提高了决策效率;采用ECA描述的策略与系统基于事件的策略决策相吻合,易于模型和系统的实现。同时,我们对Xen-UCONhi的有效性和性能进行了评测,结果表明,Xen-UCONhi在有效发现阻止Hypervisor非控制数据攻击的同时,引入的性能开销不超过10%。
[1] Garfinkel T and Rosenblum M. A virtual machine introspection based architecture for intrusion detection[C]. Proceedings of the 10th Network and Distributed System Symposium, San Diego, USA, 2003: 191-206.
[2] Lanzi A, Sharif M I, and Lee W. K-Tracer: a system for extracting kernel malware behavior[C]. Proceedings of the 16th Network and Distributed System Security Symposium, San Diego, USA, 2009: 191-203.
[3] Baliga A, Ganapathy V, and Iftode L. Detecting kernel-level rootkits using data structure invariants[J]., 2011, 8(5): 670-684.
[4] 李博, 沃天宇, 胡春明, 等. 基于VMM的操作系统隐藏对象关联检测技术[J]. 软件学报, 2013, 24(2): 405-420.
Li Bo, Wo Tian-yu, Hu Chun-ming,.. Hidden OS objects correlated detection technology based on VMM[J]., 2013, 24(2): 405-420.
[5] Criswell J, Dautenhahn N, and Adve V. KCoFI: complete control-flow integrity for commodity operating system kernels[C]. Proceedings of the 35th IEEE Symposium on Security and Privacy, Oakland, 2014: 14-29.
[6] 殷波, 王颖, 邱雪松, 等. 一种面向云服务提供商的资源分配机制[J]. 电子与信息学报, 2014, 36(1): 15-21.
Yin Bo, Wang Ying, Qiu Xue-song,.. A resource provisioning mechanism for service providers in cloud[J].&, 2014, 36(1): 15-21.
[7] Barham P, Dragovic B, Fraser K,.. Xen and the art of virtualization[C]. Proceedings of the 19th ACM Symposium on Operating Systems Principles, New York, USA, 2003: 164-177.
[8] Wojtczuk R. Subverting the xen hypervisor[R]. Black Hat, USA, 2008.
[9] Rutkowska J and Tereshkin A. Bluepilling the xen hypervisor[R]. Black Hat, USA, 2008.
[10] Zovi D D. Hardware virtualization rootkits[R]. Black Hat Briefings, USA, 2006.
[11] National vulnerability database[OL]. http://nvd.nist.gov/. 2014-09-20.
[12] Klein G, Elphinstone K, Heiser G,.. SeL4: formal verification of an OS kernel[C]. Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles, New York, USA, 2009: 207-220.
[13] Barthe G, Betarte G, Campo J D,.. Formally verifying isolation and availability in an idealized model of virtualization[C]. Proceedings of the 17th International Symposium on Formal Methods, Limerick, Ireland, 2011: 231-245.
[14] Baumann C, Bormer T, Blasum H,.. Proving memory separation in a microkernel by code level verification[C]. Proceedings of the 14th IEEE International Symposium on/ Object/Component/Service-OrientedReal-Time Distributed Computing Workshops, Reno, NV, USA, 2011: 25-32.
[15] Shinagawa T, Eiraku H, Tanimoto K,.. Bitvisor: a thin hypervisor for enforcing I/O device security[C]. Proceedings of the 2009 ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments, New York, USA, 2009: 121-130.
[16] Steinberg U and Kauer B. NOVA: a microhypervisor-based secure virtualization architecture[C]. Proceedings of the 5th European Conference on Computer Systems, New York, USA, 2010: 209-222.
[17] Nguyen A, Raj H, Rayanchu S,.. Delusional boot: securing hypervisors without massive re-engineering[C]. Proceedings of the 7th ACM European Conference on Computer Systems, New York, USA, 2012: 141-154.
[18] Wang Z and Jiang X. HyperSafe: a lightweight approach to provide lifetime hypervisor control-flow integrity[C]. Proceedings of the 31st IEEE Symposium on Security and Privacy, Oakland, USA, 2010: 380-395.
[19] Azab A M, Ning P, Wang Z,.. HyperSentry: enabling stealthy in-context measurement of hypervisor integrity[C]. Proceedings of the 17th ACM Conference on Computer and Communications Security, Chicago, USA, 2010: 38-49.
[20] Wang J, Stavrou A, and Ghosh A. HyperCheck: a hardware-assisted integrity monitor[J]., 2014, 11(4): 332-344.
[21] Ding B, He Y, Wu Y,.. HyperVerify: a vm-assisted architecture for monitoring hypervisor non-control data[C]. Proceedings of the IEEE 7th International Conference on Software Security and Reliability-Companion, Gaithersburg, MD, USA, 2013: 26-34.
[22] Liu Z, Lee J H, Zeng J,.. CPU transparent protection of OS kernel and hypervisor integrity with programmable DRAM[C]. Proceedings of the 40th Annual International Symposium on Computer Architecture, Tel-Aviv, Israel, 2013: 392-403.
[23] Chen S, Xu J, Sezer E C,.. Non-control-data attacks are realistic threats[C]. Proceedings of the 14th Usenix Security Symposium, Baltimore, MD, USA, 2005: 177-192.
[24] Ding B, He Y, Wu Y,.. Systemic threats to hypervisor non-control data[J]., 2013, 7(4): 349-354.
[25] 俞能海, 郝卓, 徐甲甲, 等. 云安全研究进展综述[J]. 电子学报, 2013, 41(2): 371-381.
Yu Neng-hai, Hao Zhuo, Xu Jia-jia,.. Review of cloud computing security[J]., 2013, 41(2): 371-381.
[26] Park J and Sandhu R. Towards usage control models: beyond traditional access control[C]. Proceedings of the 7th ACM Symposium on Access Control Models and Technologies, New York, NY, USA, 2002: 57-64.
[27] 熊厚仁, 陈性元, 张斌, 等. 基于双层角色和组织的可扩展访问控制模型[J]. 电子与信息学报, 2015,DOI: 10.11999/ JEIT141255.
Xiong Hou-ren, Chen Xing-yuan, Zhang Bin,.. Scalable access control model based on double-tier role and organization[J].&, 2015, DOI: 10.11999/JEIT141255.
[28] Alferes J J, Banti F, and Brogi A. An event-condition-action logic programming language[C].Proceedings ofthe 10th European Conference on JELIA, Liverpool, 2006: 29-42.
[29] Kivity A, Kamay Y, Laor D,.. KVM: the linux virtual machine monitor[C]. Proceedings of the 2007 Linux Symposium, Ottawa, Canada, 2007: 225-230.
Access Control Based Hypervisor Non-control Data Integrity Protection
Chen Zhi-feng Li Qing-bao Zhang Ping Zeng Guang-yu
(,450001,)(,450001,)
With the widely spread of virtualization technology, the security problems of virtual layer have attracted the close attention of domestic and foreign researchers at the same time. Existing virtual machine monitor (or Hypervisor) integrity protection methods mainly focus on code and control data integrity protection, and can not resist the non-control data attacks; using periodic monitoring can not provide real-time non-control data integrity protection. According to the deficiencies of the existing methods, Hypervisor non-control data integrity protection model UCONhiis proposed based on Usage CONtral (UCON). The model simplifies the UCON model according to the needs of the non-control data integrity protection, inheriting the continuity and mutability of UCON model to realize real-time access control of non-control data. The attacker and the attacked object are analyzed to determine the subjects and objects and reduce the security policies according to the attacking samples, and UCONhisecurity policies are described based on ECA, which can effectively decide the legality of non-control data access. A prototype system Xen-UCONhiis designed and implemented based on Xen system, and the effectiveness and performance overhead of Xen-UCONhiare evaluated by comprehensive experiments. The results show that Xen-UCONhican effectively prevent attacks against Hypervisor with less than 10% performance overhead.
Virtual Machine Monitor (Hypervisor); Non-control data; Usage control; Integrity protection; Event condition action
TP316; TP309
A
1009-5896(2015)10-2508-09
10.11999/JEIT150130
2015-01-27;改回日期:2015-06-23;
2015-07-27
陈志锋 xiaohouzi06@163.com
核高基国家科技重大专项(2013JH00103)和国家863计划项目(2009AA01Z434)
The National Science and Technology Major Project of China (2013JH00103); The National 863 Program of China (2009AA01Z434)
陈志锋: 男,1986年生,博士生,研究方向为信息安全与可信计算.
李清宝: 男,1967年生,教授,研究方向为信息安全与可信计算.
张 平: 女,1969年生,副教授,研究方向为并行识别、信息安全.
曾光裕: 女,1966年生,副教授,研究方向为信息安全与可信计算.