当前位置:首页 期刊杂志

基于分立架构的系统完整性保护模型

时间:2024-05-04

邓 锐 陈左宁

基于分立架构的系统完整性保护模型

邓 锐 陈左宁

(江南计算技术研究所 江苏 无锡 214083)

针对现有的各类系统完整性保护方案在隔离性和可实现性的融合上的不足,提出一种兼顾隔离性和可实现性的基于分立架构的系统完整性保护模型。对多核CPU架构做较小改动,添加特权主核及其专有的页保护安全功能扩展,达到单颗CPU下监控系统和目标系统并行隔离独立运行。监控系统运行在主核上拥有更高特权,且监控功能不需要运行在从核上的目标系统的支持。监控系统通过设置目标系统内核代码页保护、内核数据页不可执行,以及内核数据完整性扫描功能充分保障目标系统内核的完整性,而应用层的完整性则可依托自身安全内核来解决。该模型在隔离性和可实现性上达到了较好的平衡,并且使用Bochs进行的模拟验证也表明该模型能够有效保护系统的完整性。

完整性 分立架构 多核 系统架构 操作系统

0 引 言

计算机的信息安全必须从中央处理器、硬件结构、操作系统和应用软件,从底层支撑到上层应用,全盘考虑,综合采取措施,提供整体解决方案。在系统完整性保护方面已有学者做了大量研究并提出了多种模型架构和相关的实施方案。

近年来在这方面的成果,按照软硬件结合的程度,模型对软、硬件倚重的比例,初始可信部件、模型工作原理的差异性等因素分为如下几类:

1) 强调硬件尤其是CPU部件的核心功能地位,几乎所有的完整性保护功能实现在CPU内部,典型的例子有XOM[1]、AGES[2]等。XOM实现了程序在内存中的全密态运行,即数据和指令只在CPU内部以明文形式出现,在内存以密态形式存在,不同进程在内存中的加密密钥均不同,均由CPU临时产生。可执行程序在编译生成时就使用对称密码进行保护,加密密钥使用目标CPU的公钥进行保护,并在程序运行中使用HMAC来防止对程序的篡改和破坏。但该模型高度依赖硬件的安全功能,对CPU硬件的改动太大,系统运行效率不高,需要从硬件到编译器到操作系统的整体改造,至今仍停留在理论和仿真层面。AGES在机制上与XOM类似,但提供了更强的内存完整性保护,使用硬件加速的Hash树来快速验证内存的完整性。基于相同的原因,该模型也没有得到实现和应用。

2) 以可信计算技术[3]为基础的完整性保护模型。这类模型以可信计算模块TPM为硬件可信根,以可信度量为主要手段,综合运用可信启动、信任链传递、可信封存等技术来搭建完整性保护系统。典型的例子有IMA[4]、PRIMA[5]、BIND[6]、LKIM[7]、DIMA[8]等,这方面涌现了大量的研究和应用尝试。IMA和PRIMA专注于程序加载时的度量验证,属于基本的静态度量。BIND系统需要程序员自己决定度量点并插入其提供的hook接口,提高了度量精度,但加重了程序员负担,兼容性较差。LKIM以预定义的内核变量的变化为事件来触发度量验证,但这些事件未必能覆盖所有的情况。DIMA使用度量代理来完成对进程和模块的度量,但主动性和实时性有所不足。我们也在以前的工作中提出了PEDIAMA[9]模型,以策略嵌入为基础,增强了度量的主动性和系统运行效率,策略的制订较为灵活。

3) 充分利用CPU提供的安全特性或者经少许改造后得到的安全功能,典型的系统有Flicker[10]、LLM[11]和H-SVM[12]等。Flicker利用 CPU提供的安全功能支撑,即Intel的TXT[13]技术以及AMD的SVM[14]技术,在执行目标程序时暂停整个操作系统的运行,保证其有一个安全隔离的运行环境。由于没有操作系统的支持,受保护的程序必须进行订制,而且只能保护程序中的核心代码片段。LLM系统假定每个CPU核都配有少量的私有本地内存来运行程序,外部共享主内存和本地私有内存间通过换页(paging)来弥补空间不足,并通过在特权启动核core0上运行安全换页系统来保证运行在core0上的监控程序的安全,core0通过读取其它CPU核的本地内存来监控运行在其它核上的目标系统,LLM对软硬件的改动均较大。H-SVM通过额外的硬件设计把物理页映射和换页功能独立出来,并通过密码技术保证虚拟机数据的完整性不受虚拟机监控器的影响。

4) 利用虚拟化技术,比如Terra[15]、HyperSafe[16]和Overshadow[17]。这类模型的共同特定是,利用CPU硬件提供的虚拟化技术,将目标系统运行在虚拟层,而监控程序运行在更底层的虚拟管理层,并结合密码技术等手段来保护系统或应用的完整性。

5) 利用外接的设备来辅助监控,典型的如Copilot[18]和Gibraltar[19]系统。其特点是利用外接设备将目标系统和监控系统进一步隔离,Copilot和Gibraltar就是使用PCI卡通过DMA直接获取主机内存进行分析,分析系统可直接实现在PCI卡上,也可将数据送到外部进行处理。

以上的分类并不绝对,各类模型所使用的技术也有交叉的情况。总的来看,1)和3)对CPU硬件的依赖和改动较大,2)和5)借助了外部硬件设备,但2)的软硬结合比5)要紧;4)对硬件的要求最低,在主流商用处理器下就可实现,软硬件结合最为紧密,但更多的功能倚重于软件,安全性相对较低。

这几类模型各有侧重,但核心的问题是,在尽量保障监控系统和目标系统充分隔离的情况下,又不增加监控和保护的实现难度,即监控系统和目标系统不能相互干扰,同时也要方便监控和保护的实施。1)和3)注重了隔离,但系统实现比较困难;4)的实现相对容易,但是隔离性不够,虚拟机监控器容易被突破[20];2)和5)兼顾了隔离和可实现性,但是由于硬件上彻底分离,在监控上不够紧密,比如PCI卡的DMA可以被旁路,TPM只是个被动部件,功能有限。

如何在隔离性和可实现性间进行平衡是模型设计的一个难题。本文提出一种兼顾隔离性和可实现性的基于分立架构的系统完整性保护模型。以多核CPU中主核(core0)的页保护安全功能扩展为基础,在主核上运行监控系统,对其它从核上运行的目标系统进行保护。目标系统使用安全内核,监控系统能保证目标系统安全内核的完整性,而安全内核则向上支撑应用系统的完整性,从而实现整体的完整性保护。监控系统完全隔离和独立于目标系统,同时也能启动和复位目标系统,并能读取目标系统的内存。这样就达到了既“分立”又监控的目标,同时由于监控系统主要保证安全内核的完整性,应用系统的完整性主要由安全内核完成,且该模型对硬件的改造较少,因此在可实现性也不会有过多负担。本模型在隔离性和可实现性上达到了较好的平衡。

1 架构设计准备

1.1 设计思想

如果监控系统和目标系统没有做到充分隔离,比如监控系统依赖于目标系统内核的某些功能,则只要目标内核被侵入,监控系统就有可能失效。因此必须做到监控系统充分独立于目标系统。独立造成的后果就是监控系统和目标系统之间的联系和交互会很少,甚至没有,这就对监控造成了较大困难,所以在独立的同时还要保证监控的有效性。

考虑现在大多数对目标系统造成较大破坏的恶意程序,均是以掌控系统内核为基础,往往更难以发现和清除。如果能够保证目标系统内核的完整性,则应用层面的完整性大都可以在系统内核的支撑下完成。因此只要监控系统能保证目标系统内核的完整性,则其余的工作均可以直接在目标系统上实现。由于二者的独立性,监控系统很难得到目标系统的运行时状态等相关信息,这样做也弥补了独立性带来的问题。

1.2 硬件支撑

首先CPU应具备多核、分页、进程隔离、特权级等主流CPU(如X86系列)的特性。CPU应该有一个主核core0是整个CPU的启动核,具有最高的权限,能够启动、停止和复位其他从核。主核启动时,将从内存中划分一块区域由自己独占使用,其他从核将无法访问这片区域,主机上的所有内存对主核可见。主核且只有主核可以标记内核级代码页,使得所有核上对内核级代码页的写入和内核数据页上的执行都会在主核上产生异常。主核具备类似IOMMU的功能,以防止关键内存受到DMA的破坏,从核不具备该项功能。主核启动后,将从外部(比如ROM和FLASH)中加载一个微型的监控系统,该监控系统负责在其它从核上加载目标系统。目标系统加载之后就独立于监控系统开始自主运行,至此,监控系统和目标系统之间将完全独立,也不会有任何后续信息交互。另外,为了方便目标系统上的完整性保护应用实现,在硬件上还应配备相应的密码模块,如TPM或TCM,以实现加密、数字签名、HASH等基础功能。

1.3 主要监控原理

监控系统的主要任务就是保证目标系统内核(这里以Linux为例)的完整性。由于Linux操作系统内核在编译生成时,其在内存中的物理加载地址是确定的,其代码段、数据段、全局内核变量等数据结构的地址均可以在System.map文件中确定。因此监控系统不需要和目标系统进行交互,就能事先确定大部分所需信息。

内核的完整性包括载入时完整性和运行时完整性,而运行时完整性又包括代码完整性和数据完整性。载入时完整性属于静态完整性,只需要主核在从核上加载目标系统内核之前对其进行完整性验证即可,比如计算HASH值,然后和基准值进行对比。运行时完整性分为两个方面,代码完整性依赖于硬件支撑,即主核对所有的内核代码页进行标定,这些物理页的地址可以通过System.map文件事先确定。如果有破坏代码页完整性的行为发生,即内核代码页发生写入操作,就会在主核上产生异常,破坏行为随即被发现,这样就保证了代码页的完整性。另外,由于LKM模式加载的内核模块的代码页是动态分配的,主核无法得知其地址,也就无法对其进行标记,因此加载的模块一旦执行就会在主核产生异常(未被标记的内核页被认为是数据页,即在内核数据页上执行),所以目标操作系统将不支持LKM。而运行时的数据完整性是通过类似Gibraltar[19]的技术来保证的。通过事先采集和规约的内核“不变量”作为基准,定时的扫描目标系统物理页,从中提取出检测项进行对比,如果不一致,则表示内核的数据完整性遭到破坏。这里的“不变量”的形式可以多样,可以是具体的数据常量,比如系统调用表里的函数地址,驱动程序里的函数指针等;也可以是数据的大小、相等关系,集合的属于关系,比如某个数据的取值只能在某个集合之内;还可以是链表项的长度等。只要事先进行“不变量”的采集和基准制作,就能在后续的定时扫描中发现针对这些“不变量”的攻击,从而保证运行时内核数据的完整性。另外,由于主核只对目标系统内核的固有代码页进行了标定,其他未被标定的内核页均认为是数据页,而在数据页上执行代码是会产生异常的,所以任何通过缓冲区溢出来触发内核shellcode的企图都会失败,这也进一步保证了外来恶意代码无法在内核执行。这样监控系统就保证了目标系统内核在加载时和运行时的全生命周期的完整性。

在保证目标系统内核完整性的基础上,目标系统内其他部分的完整性保护可以依托自身解决。现有的各种完整性保护模型都可以结合进来,比如可信度量技术、针对进程页交换的页加密保护技术、白名单技术、加密文件系统、各类访问控制模型等。这里作为示例,采用的是我们在以前的工作中提出的PEDIAMA[9]架构,但针对本文的模型做了少许改动,比如将相应LKM模块直接编译进内核,可信启动流程的简化等。

2 模型描述及工作流程

整个模型的架构如图1所示,分为监控系统和目标系统两个部分。监控系统运行在CPU的主核上,主核从外部导入固件系统运行,并通过输入输出接口,比如串口,进行命令输入、信息输出、固件烧写和更新等工作。监控系统可以访问全部物理内存,但也有自己独占的内存区域。监控系统是一个轻量级的单任务系统,主要负责周期性的扫描目标系统的物理内存。目标系统运行在其他从核上,只能访问除主核独占区外的其它内存区。目标操作系统通过外围的密码部件,如TPM或TCM,辅助实现其他完整性保护应用。监控系统和目标系统各自独立运行,没有信息交互,对外设的访问在运行时也不交叉。

图1 模型架构图

2.1 监控系统工作流程

系统启动时,CPU的主核作为启动核从外部导入固件先运行,固件第一时间扫描整个物理内存,并从中划出一块供主核独占使用(比如内存高地址的最后一部分),该部分内存对其他从核不可见。随后固件从外部读取目标系统内核文件,这里系统内核文件可以存放在硬盘上,甚至也可以存放在主核一端的FLASH里,这均可以根据具体的应用需求来订制。在完成对目标系统内核文件的完整性检查后,将其加载进目标物理内存,对系统内核的代码页进行标定,并对相关内核页进行DMA保护。随后启动其余从核,目标系统自行进入加载流程开始独立运行。而主核随即进入运行时监控状态,定时扫描目标系统相关内存页,检查系统内核的数据完整性。一旦发生异常告警,或者在扫描中发现内核数据完整性遭到破坏,则监控系统将立即停止所有从核运行,并在输入输出接口输出相关告警信息,然后等待后续的命令,或者延时一段时间后对整机进行复位。

2.2 目标系统工作流程

在从核启动后,目标系统内核就已经加载在内存固定地址,从核即从系统内核开始启动整个操作系统。目标系统和监控系统完全隔离,因此完全感知不到监控系统的存在,由于二者之间没有任何信息交互,目标系统几乎不用做任何更改就可以直接运行在本模型中。为了向上支撑应用层的完整性保护需求,目标系统上可以使用现有的各类完整性保护架构,由于操作系统内核的完整性是有保障的,这使得上层的完整性保护架构在设计和实现上都要简化很多。作为示例,这里采用PEDIAMA[9]架构,并做了少许改造,整个架构如图2所示,这里省略了原架构中对内核模块的度量支持,因为本模型中目标系统不支持LKM模块加载。

图2 PEDIAMA架构图

PEDIAMA分为应用层的策略管理、日志审计部分和内核层的度量核心处理部分。应用层的部分主要负责和系统用户之间的管理交互工作,内核层的部分负责策略的提取与应用、动态度量和结果报告。PEDIAMA的主体工作都在内核层完成。整个架构的运作以TPM为基础支撑,以可信启动来保证初始运行环境的完整性。由于目标系统加载方式的变化,可信启动的具体流程也要稍做调整,比如可直接从系统内核后面的部分开始进行度量。应用程序加载时,PEDIAMA会进行截获,并从应用程序中提取度量策略,进而对程序的初始状态进行度量,以保证其静态初始可信。然后动态度量模块对度量策略实施部署和应用,以保证程序在运行中的完整性,更具体的内容请参考文献[9]。

3 模型分析

3.1 安全性分析

模型的安全性有两个方面,一个是监控系统自身的安全性。首先是监控系统自身的安全性,由于监控系统和目标系统采用分立的架构,各自独立运行,没有任何信息交互,亦即监控系统不会受到目标系统的干扰,因此监控系统的安全性完全取决于自身。而监控系统上仅运行的是一个轻量级的物理内存扫描和检测程序,任务单一,结构简单,与外界几乎没有任何数据交互,因此监控系统完全是一个自封闭的系统,其安全性是有保障的。

另一方面是目标系统的完整性。目标系统内核的完整性由监控系统来保证,其中内核代码页的完整性由主核的硬件页保护机制直接支撑,内核数据的完整性则通过定时扫描检测“不变量”条件来保证。系统内核之外的其他部分的完整性由目标系统自身来完成,在内核完整性的强有力支撑下,应用层的完整性相对容易做到。现有的各种完整性保护模型均可结合进来,作为示例的PEDIAMA架构,度量策略比较灵活,能够依据策略对进程进行动态度量,保障应用的完整性。

3.2 模型比较

按照前面的分类,本模型大体可归为第3类,同LLM有相似之处,但在模型硬件架构和工作原理上有较大区别。主要区别在于,本模型对硬件的改造较小,主要是加入了特权主核及其对内核页的标记和保护,而LLM对软硬件的改造均较大,不仅加入了特权主核,还要求每个核都有本地内存,程序均在本地内存执行。这个设计只是为了方便安全换页程序的驻留及其对监控系统的保护,对目标系统意义不大。而安全换页程序的存在也是因为监控系统和目标系统共享外部内存,监控系统数据可能被篡改,隔离性不够。LLM对目标系统的完整性保护全部依赖于监控系统的内存扫描功能,比较单薄,而本模型则分解为从底向上支撑的几个部分,硬件支撑内核代码页保护、数据页不可执行及DMA保护。引入“不变量”特性的内存扫描系统仅需关注内核的数据完整性,而目标系统的应用完整性则依托自身安全内核及其完整性来解决。因此本模型在软硬件实现、保护有效性等方面较LLM有一定优势。

3.3 模型缺点

由于无法获得动态加载内核模块的地址,所以本模型无法支持LKM,这将造成系统内核过于庞大,而且每添加一个新设备或者更新一个驱动程序都需要重新订制内核,并相应刷新监控端的内核数据信息。由于同样的限制,模型也无法将针对内核代码页的保护机制延伸到应用层的进程代码页,对应用层进程代码页的保护可依靠目标操作系统内核来完成。如果在监控系统和目标系统间增加接口,目标系统可以向监控系统提出申请,将某块内存标记为可执行,是可以解决地址定位问题的,但该接口可能变成新的攻击点,比如被恶意使用,使得作为数据传送进内核的恶意代码得以执行。因此如何分辩这些申请的合法性又变成了难题。

监控系统在发现问题时的善后处理不够完善。在发现问题时,监控系统挂起了所有的从核,系统管理员可以dump出目标系统的内存,甚至可以在异常发生时获得各从核的寄存器值,然后进行后续的离线分析。但是对于目标系统正在完成的工作却无法保留和善后,比如待写入磁盘的数据等。这可能会造成目标系统应用数据的丢失甚至导致目标系统无法在下次启动时正常运作。

以上的问题都是由于采用了分立的架构,监控系统和目标系统隔离地十分彻底,缺少信息交互所造成的。本模型在充分保证隔离性和独立性的同时牺牲了部分灵活性。

4 模型验证

由于完全符合本模型要求的硬件还不存在,按照本文所依托基金项目的进度安排,还处于部分功能的FPGA仿真验证阶段,对模型只能进行主要功能的模拟验证。由于目标系统上使用的PEDIAMA架构已经在文献[9]中验证过了,所以这里只需要验证监控系统对目标操作系统内核的保护功能。我们使用Bochs 2.2.1系统,对模型的主要功能进行了验证,模拟的硬件平台是32 bit的X86平台,配置128 MB物理内存。我们把监控系统的功能直接融合进Bochs系统,目标系统使用RedHat 7.2(考虑验证效率,选择该版本,并进行最简安装),内核2.4.18版本,为了方便验证,加入了LKM支持。验证的内容包括内核代码页保护、内核数据页不可执行、内核数据完整性。

通过查看系统相关文件,可以确定内核的代码页范围,只要在内核层运行的代码不在这个范围就需要告警,这样就保证了内核数据页不可执行。注意,内核的初始准备代码可能不在该范围内,监测时需要跳过,比如刚启动时的实模式代码、保护模式准备代码等。对于内核代码页的保护,只需要关注内存写入,如果是内核代码页范围就要告警。而对于内核数据完整性,需要在Bochs系统内定时扫描目标系统的模拟物理内存并进行检测。

为了把监控系统加入Bochs,我们对其代码做了部分修改。数据页不可执行功能是在Bochs的函数void BX_CPU_C::cpu_loop(Bit32s max_instr_count) 内部实现的,由于Bochs是译码一条指令就立即执行的,比如对于非重复指令(重复指令类似),译码完成后执行过程如下:RIP += i->ilen(); BX_CPU_CALL_METHOD(execute, (i)); 首先更改指令指针,然后执行指令。因此可以在每次执行指令前对RIP进行检查,如果处于内核层并且不在内核代码页范围内则给出告警提示。

对代码页的保护是在函数BX_MEM_C::writePhysicalPage(BX_CPU_C *cpu, Bit32u addr, unsigned len, void *data)内部实现的。所有对内存的写操作最终都会调用这个函数,因此只需要对参数addr做范围检查,如果在代码页的物理地址范围,则进行告警。

对于内核数据完整性检测,也是在cpu_loop函数里面完成的,每执行完一定数量的指令,比如10万条,就对目标系统内核的相关数据页进行扫描和检查。在实际验证中,检测的“不变量”包括系统调用表、中断向量表、VFS功能函数指针等。

在测试中我们自己编写了一个恶意内核模块,根据实验内容的不同,它会去修改系统调用表的sys_open函数地址为该模块自身的一个函数地址,或者改写函数sys_kill的部分指令代码为0x90(nop指令)。首先我们以LKM方式加载该模块,发现在加载后执行该模块的module_init()函数时Bochs系统告警,即执行该模块的第一条指令时就告警了,做到了内核数据页不可执行。然后我们把该模块编译进内核,在该模块修改sys_kill指令代码时,Bochs系统进行了告警;在该模块恶意修改sys_open函数地址后,cpu_loop函数里的定时扫描检测程序也发现了该次攻击,代码页保护和内核数据完整性保护均得到了验证。其实在代码页保护及数据页不可执行的情况下,除非内核代码自身的问题,内核重要数据很难被篡改,恶意代码没有进入内核执行的机会。

5 结 语

通过分析现有的各类系统完整性保护方案,提出了基于分立架构的系统完整保护模型。该模型通过对现有多核CPU硬件架构做较小改动,实现单颗CPU下监控系统和目标系统并行隔离独立运行,监控系统比目标系统拥有更高特权,且监控功能不需要目标系统支持。通过监控系统设置目标系统内核代码页保护、数据页不可执行,以及内核数据完整性扫描等手段充分保障目标系统内核的完整性。在内核完整性的基础上,系统应用层的完整性则可依托自身来解决,作为示例,模型中采用PEDIAMA架构来保障应用的完整性。使用Bochs对模型的主要功能进行了模拟验证,实验表明监控系统能检测出针对系统内核的完整性攻击,结合文献[9]对PEDIAMA架构的验证,整个模型能够有效保护系统的完整性。

[1] Lie D,Thekkath C A,Mitchell M,et al.Architectural Support for Copy and Tamper Resistant Software[C]//Proc of the ninth international conference on Architectural support for programming languages and operating systems,Massachusetts:Cambridge,2000:168-177.

[2] Suh G E,O’donnell C W,Sachdev I,et al.Design and implementation of the AEGIS single-chip secure processor using physical random functions[C]//Proc of the 32nd Annual International Symposium on Computer Architecture,New York: IEEE Press,2005:25-36.

[3] 沈昌详,张焕国,冯登国,等.信息安全综述[J].中国科学E辑:信息科学,2007,37(2):129-150.

[4] Sailer R,Zhang X L,Jaeger T,et al.Design and implementation of a TCG-based integrity measurement architecture[C]//Proc of USENIX Security Symposium.California:ACM,2004:223-238.

[5] Jaeger T,Sailer R,Shankar U.PRIMA:Policy-reduced integrity measurement architecture[C]//Proc of the eleventh ACM symposium on Access control models and technologies.California:ACM,2006:19-28.

[6] Shi E,Perrig A,Van Doorn L.BIND:A fine-grained attestation service for secure distributed systems[C]//Proc of the IEEE Symposium on Security and Privacy.Oakland:IEEE Press,2005:154-168.

[7] Loscocco P A,Wilson P W,Pendergrass J A,et al,Linux kernel integrity measurement using contextual inspection[C]//Proc of the 2007 ACM workshop on Scalable trusted computing.Virginia:ACM,2007:21-29.

[8] 刘孜文,冯登国.基于可信计算的动态完整性度量架构[J].电子与信息学报,2010,32(4):875-879.

[9] 邓锐,陈左宁.基于策略嵌入和可信计算的完整性主动动态度量架构[J].计算机应用研究,2013,30(1):261-264.

[10] Mccune J M,Parno B,Perrig A,et al.Flicker:An Execution Infrastructure for TCB Minimization[C]//Proc of the 3rd ACM European Conference on Computer Systems, Glasgow:ACM,2008:315-328.

[11] Kinebuchi Y,Butt S,Ganapathy V,et al.Monitoring Integrity Using Limited Local Memory[J].IEEE Transactions on Information Forensics and Security,2013,8(7):1230-1242.

[12] Seongwook J,Jeongseob A,Sanghoon C,et al.Architectural Support for Secure Virtualization under a Vulnerable Hypervisor[C] //The 44th Annual IEEE/ACM International Symposium on Microarchitecture,Porto Alegre:ACM,2011:937-949.

[13] Intel Corporation.Trusted eXecution Technology-preliminary architecture specification and enabling considerations.No.31516803[R].Santa Clara:Intel,2006.

[14] Advanced Micro Devices.AMD64 Architecture Programmer’s Manual Volume 2:System Programming,No.24593[R].Sunnyvale:AMD 2010.

[15] Tal G,B Pfa,J Chow,et al.Terra:A virtual machine based platform for trusted computing[C]//Proc of the Symposium on Operating System Principles,New York:ACM,2003:193-206.

[16] Wang Zhi,Jiang Xuxian.HyperSafe:A lightweight approach to provide lifetime hypervisor control-flow integrity[C]//IEEE Symposium on Security and Privacy,Oakland:IEEE,2010:380-395.

[17] Chen X X,Tal G,Lewis E,et al.Overshadow: A virtualization-based approach to Retrofitting protection in commodity operating systems[C]//Proc of the ACM Conference on Architectural Support for Programming Languages and Operating Systems,Washington:ACM,2008:2-13.

[18] Petroni N,Fraser T,Molina J,et al.Copilot:A coprocessor-based kernel runtime integrity monitor[C]//Proc of the 13th conference on USENIX Security Symposium.San Diego:Berkeley,2004:13-13.

[19] Arati B,Vinod G,Liviu L.Detecting Kernel-Level Rootkits Using Data Structure Invariants[J].IEEE Transactions on Dependable and Secure Computing,2011,8(5):670-684.

[20] Secunia Vulnerability Report:VMware ESX Server 4.x[EB/OL].[2014-07-20].http://secunia.com/advisories/product/25985/.

SCHISM ARCHITECTURE-BASED SYSTEM INTEGRITY PROTECTION MODEL

Deng Rui Chen Zuoning

(JiangnanInstituteofComputingTechnology,Wuxi214083,Jiangsu,China)

Focusing on the deficiency of various solutions of system integrity protection at present in integrating the isolation property and practicability, this paper presents a schism architecture-based system integrity protection model which takes both the isolation property and practicability into consideration. Through a minor revision to multi-core CPU architecture, and adding a privileged main core and the extension of its exclusive memory page protection security function, the parallel and independent running of the monitor system and the target system in isolation over a single CPU is achieved. The monitor running on main core has higher privilege, and its function doesn't need the support from the target system running on other cores. The monitor system can fully ensure the integrity of target system kernel by setting target system kernel code pages protection, kernel data page non-execution and kernel data integrity scanning function, while the integrity of applications level can be fixed by relying the security kernel in target system itself. The model achieves good balance between isolation property and practicability, and the prototype simulation by Bochs also shows that the proposed model can protect system’s integrity effectively.

Integrity Schism architecture Multi-core System architecture Operating system

2014-09-08。核高基重大专项(2011ZX01039-001-0 02)。邓锐,工程师,主研领域:信息安全,可信计算,系统安全架构。陈左宁,院士,教授。

TP309

A

10.3969/j.issn.1000-386x.2016.04.068

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!