




已阅读5页,还剩54页未读, 继续免费阅读
(计算机科学与技术专业论文)基于虚拟化技术的内核代码保护机制.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基丁虚拟化技术的内核代码保护机制 摘要 近几年来,随着黑客技术特别是r o o t k i t 技术的发展,攻击者们已经把触角 伸入到了操作系统的内核。操作系统的内核代码面临着严重的威胁。目前,保 护操作系统安全的办法有防火墙、入侵检测系统、入侵恢复系统和安全操作系 统等。这些系统规模较大,设计复杂,且不能很好地应对新的攻击技术给内核 代码带来的威胁。另一方面,虚拟化技术的复兴给安全领域的研究带来了新的 曙光。由于虚拟化技术本身具有天然的安全优势,它已经被广泛地运用于各个 安全领域的研究中。而许多最新的研究成果都表明,利用虚拟化技术增强操作 系统的安全性是一种行之有效的办法。 本文对各种相关的虚拟化系统进行了调研,分析了这些虚拟化系统的优缺 点,指出了它们在设计和实现中遇到的关键问题,并总结了它们在问题解决过 程中的经验和教训。在此基础之上,本文设计并且实现了一种基于虚拟化技术 的操作系统内核代码保护系统。本系统的特色在于:没有采用传统的防守策略, 而是巧妙地利用了当前c p u 的特性,用虚拟化的方法在操作系统层引入了哈佛 内存体系结构的特征,采用将非法操作进行重定位的方法来保护内核代码、对 抗内核级r o o t k i t 一类攻击的威胁:由于没有引入新的软件层次,且系统的实现 代码都经过了精心的设计和优化,充分地利用了底层硬件特性,因而完全不影 响操作系统的正常功能,对系统的性能影响也很小;另外,本系统还能够将攻 击行为记录下来,为入侵分析提供有用的信息。 实验表明,与类似的系统相比,本文的虚拟化系统具有较好的安全性,能够 抵御内核级r o o t k i t 对内核代码的恶意篡改,且在性能表现上明显优于现有的一 些保护机制。 关键词:操作系统;内核;安全;虚拟化 a b s t r a c t r e c e n t l y ,w i t ht h ed e v e l o p m e n to fh a c k e rt e c h n o l o g y ,a t t a c k e r sh a v ea l r e a d y b e g u nt ou s et e c h n i q u e st om a n i p ul a t ek e r n e lc o m p o n e n t s k e m e lc o d es e e m st of a c e u n p r e c e d e n t e d t h r e a t s t h ee x i s t i n g s e c u r i t yt e c h n 0 1 0 9 l e s , i n c l u d i n gf i r e w a l l , i n t r u s i o nd e t e c t i o ns y s t e m ,i n t r u s i o nr e c o v e 巧s y s t e ma n dt r u s t e do p e r a t i n gs y s t e m , a r eb a s e do nc o m p l e xs t r u c t u r e sa n dn o tf e a s i b l ew a y st oh a n d l et h ee m e r g i n g t h r e a t e n sf a c e db yk e r n e lc o d e h o w e v e r ,t h er e n a i n s s a n c eo ft h ev i r t u a l i z a t i o n t e c h n o l o g ys h e d sl i g h to nt h er e s e a r c ho ft h i sa r e a d u et oi t se x c e l l e n tf e a t u r e sl i k e p e r f o r m a n c ei s o l a t i o n ,v i r t u a l i z a t i o nt e c h n o l o g yh a sb e e nw i d e l ya p p l i e dt om a n y s e c u r i t yr e s e a r c h a r e a s m o r e o v e r , p l e n t y o fs t u d i e sh a v es h o w nt h a tu t i l i z i n g v i n u a l i z a t i o nt e c h n o l g o yi sav e i ye f f e c t i v ew a yt oe n h a n c et h es e c u r i t yo fo p e r a t i n g s y s t e m b ya n a l y z i n gr e l a t i v ev i n u a l i z i n gs y s t e m s ,t h i st h e s i sp o i n t so u tt h ec i r i t c a l p r o b l e m sf a c e di nd e s i g n i n ga n di m p l e m e n t i n gt h e s es y s t e m sa n dd r a w sl e s s o n sf r o m t h e i re x p e r i e n c ei ns o l v i n gt h e s ep r o b l e m s t h e nak e r n e i c o d e - p r o t e c t i n gs y s t e m b a s e do nv i r t u a i i z a t i o nt e c h n o l o g yi sd e v e i o p e d t h em o s tp r o m i n e n tf e a t u r eo ft h i s s y s t e mi st h a ti tu s ei n d i r e c t i o ns c h e m e ,i n s t e a do fp a s s i v ed e f e n s er e a c t i o n ,t o p r o t e c tk e m e lc o d e i ti si m p l e m e n t e db ye x p l o i t i n gh a r d w a r ef i e a t u r e so fc p ua n d v i n u a l i z i n gh a r v a r dm e m o r ya r c h i t e c t u r ei n s i d eo p e r a t i n gs y s t e m f r o mt h ev i e wo f s y s t e ma r c h i t e c t u r e ,t h i ss y s t e mi sw e l ld e s i g n e dw i t h o u ta d d i n ge x t r as o f t w a r el e v e l , a n da l lo fi t sc o d ei so p t i m i z e dt om a k ef u l lu s eo fh a r d w a r ef e a t u r e s t h e r e f o r e , w i t h o u ts a c r i n c i n ga n yn o r m a if u n c t i o n a l i t y ,i ti n c u r sl i t t l eo v e r h e a dt ot h es y s t e m m o r e o v e r i tp r o v i d e st h ef u n c t i o n a i i t yt or e c o r dm a l i c i o u sb e h a v i o r s ,w h i c hi sv e r y u s e f l u lt oi n t r u s i o na n a l y s i s c o m p a r e dw i t hs i m 1 a rs y s t e m s , o u rs y s t e mi sam u c hm o r ef e a s i b l ea n d l i g h t w e i g ha p p r o a c ht op r o t e c tk e r n e lc o d e e v a l u a t i o nd e m o n s t r a t e st h a to u rs y s t e m p r o t e c t sk e r n e lc o d ea se f f e c t i v e l ya so t h e rs i m ii a rs y s t e m s ,w h 订ei n c u r r i n gm u c h l e s so v e r h e a d k e yw o r d s :o p e r a t i n gs y s t e m ;k e r n e lc o d e ;s e c u r i t y ;v i r t u a l i z a t i o n l 硕士学位论文 插图索引 图1 1 入侵分析系统示意图3 图2 1 典型的v m m 架构图9 图2 2 客户机物理地址与宿主机机器物理地址之间的映射1o 图2 3 影子页表与客户机页表l l 图2 4v m l 结构图15 图2 5r e v i r t 的回放过程16 图2 6s e c v i s o r 的控制流1 8 图3 1 冯诺依曼体系结构和哈佛体系结构的差异2 3 图3 2c p u 访问内存过程中的地址转换2 4 图3 3 流水线不同阶段的地址翻译2 5 图4 1 系统原型图3 0 图4 2 对内核代码访问时的地址翻译过程3 3 图5 1 l m b e n c h 与进程和内核相关的基准测试4 0 图5 2l m b e n c h 文件和虚拟内存系统延时基准测试4 l 图5 3l m b e n c h 上下文切换基准测试4 l l 基于虚拟化技术的内核代码保护机制 附表索引 表5 1 实验的软硬件配置3 5 表5 2u n i x b e n c h 测试结果4 2 表5 3 本文系统的有效性测试4 3 表5 4s e c v i s o r 的i m b e n c h 文件和虚拟内存系统延时基准测试4 3 表5 5s e c v i s o r 的l m b e n c h 上下文切换基准测试4 3 表5 6 本文的系统和s e c v i s o r 系统的功能对比4 4 i i 湖南大学 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所 取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任 何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡 献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的 法律后果由本人承担。 作者签名: 李墨钟 日期:,z 吁年f 月f 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意 学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文 被查阅和借阅。本人授权湖南大学可以将本学位论文的全部或部分内容编 入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇 编本学位论文。 本学位论文属于 1 、保密口,在年解密后适用本授权书。 2 、不保密团。 ( 请在以上相应方框内打“”) 作者签名:李窆柙 别帷辄妗簟 日期:功叩年多月争日 日期:凇7 年占月严日 硕士学位论文 1 1 课题背景与意义 第1 章绪论 在计算机软件分层架构中,计算机操作系统一直是最为核心的部件,有着特 别重要的意义,一直以来被高度重视并且得到了不断的发展。操作系统出现后, 大大简化了各种应用的开发,从而促进了各种软件的快速发展。 随着硬件技术的进步,计算机底层硬件成本不断降低,各种不同型号的、功 能更加强大的硬件在不断出现。另一方面,用户的需求也在日益增长,对操作系 统提出了更高的要求。互联网的兴起更是给计算机操作系统带来了新的挑战。操 作系统既要充分利用网络资源,支持多种网络应用,又要防止来自网络的各种威 胁。这些都使得操作系统所需要完成的工作越来越艰巨:向上要为用户提供更好 的服务体验,为开发人员提供更强大的编程接口,向下要管理好并且充分利用日 益复杂、功能越来越强大的各种底层硬件。操作系统在功能越来越强大的同时, 规模也变得越来越庞大。操作系统日益复杂最直接的体现就是操作系统代码的日 益复杂。代码量的快速增长带来了更多的问题。更多的代码意味着更多的漏洞, 更多的被攻击的可能性。 操作系统的安全问题日益突出,由于其特殊的地位,操作系统安全成为安全 领域研究中的重点和热点。对计算机操作系统安全的研究具有十分重大的意义。 1 2 操作系统安全研究现状 1 2 1 防火墙 防火墙是设置在不同网络( 如可信任的企业内部网和不可信任的公共网) 或 不同网络安全域之间的一系列部件的组合。它可通过监测、限制、更改跨越防火 墙的数据流,尽可能地对外部屏蔽网络内部的信息、结构和运行状况:防止外部 网络用户以非法手段通过外部网络进入内部网络,访问内部网络资源;保护内部 网络操作环境的特殊网络互联设备,以此来实现网络安全。防火墙实质上是一种 隔离控制技术,其核心思想是在不安全的网络环境下构造一种相对安全的内部网 络环境。从逻辑上讲它既是一个分析器又是一个限制器,它要求所有进出网络的 数据流都必须遵循安全策略,同时将内外网络在逻辑上分离。为了能使防火墙充 分发挥其功效,应满足以下条件:内网和外网之间的所有网络数据流必须经过防 火墙;只有符合安全策略的数据流才能通过防火墙;防火墙自身应具有抵抗攻击 的能力。防火墙的任务就是要阻止来自外网的攻击以保证内网安全,且确保内网 同外网的连通。通过部署防火墙可以强化机构的安全策略,能够有效地记录来自 外网的活动,能够隔离不同网络,以限制安全问题的扩散。 防火墙通过制定一系列的安全“策略”,例如设置防火墙的过滤规则等来对 网络的安全访问进行控制。从广义上讲,策略就是在具有相同属性的被管理对象 上实施全局管理操作。具体到网络管理范畴,策略是一套指导和确定如何管理、 分配和控制网络资源的业务规则。策略的执行确保业务规则总是得到遵循。业务 规则构成指导行动的条件。如果想更进一步、具体地表达策略的概念,或利用计 算机将这种概念映射到通俗易懂的概念上去,就需要对策略进行形式化,使其适 应计算机应用。而具体地说,策略是一组规则的集合,每条规则由一组条件和动 作组成。其中条件定义了规则中所使用的参数,动作定义了当所需条件满足时所 执行的相关操作。 防火墙技术可根据防范的方式和侧重点的不同而分为很多种类型,但总体来 讲可分为二大类:分组过滤、应用代理。作为一种传统的信息安全技术,防火墙 技术也存在着一些不足。例如,它无法消灭攻击源,无法防御病毒攻击,无法阻 止内部攻击。而且防火墙本身也不可避免地存在设计漏洞,而且布置防火墙很多 时候还不得不牺牲一些有用的服务。尽管如此,防火墙技术还是在不断地发展改 进,它的发展方向有:智能防火墙,多级过滤技术,分布式防火墙等。 1 2 2 入侵检测系统 入侵检测就是从计算机网络或系统中的若干关键点收集信息,并分析这些信 息,从而发现网络或系统中是否有违反安全策略的行为或者遭到袭击的迹象。进 行入侵检测的软件与硬件的组合便是入侵检测系统。入侵检测被认为是防火墙之 后的第二道安全闸门,在不影响网络性能的情况下能对网络进行监测,从而提供 对内部攻击、外部攻击和误操作的实时保护。入侵检测技术可以定义为:一种用 于检测计算机网络中违反安全策略行为的技术。 入侵检测通过旁路侦听的方式,对计算机网络和计算机系统中的若干关键点 收集信息并对其进行分析,从中发现网络或系统中是否有违反安全策略的行为和 被攻击的迹象,能够帮助网络系统快速发现网络攻击的发生,对得到的数据进行 分析,一旦发现入侵,及时做出相应,包括切断网络连接、记录或者报警等。 入侵检测根据的体系结构的不同,可以将其分为三类:集中式、等级式和分 布式。根据所用的检测数据源,可以分为基于主机的和基于网络的。根据检测方 法的不同,可以分为异常检测、误用检测和混合型检测。入侵检测方法是入侵检 测系统的核心,针对它的研究非常之多,本文不再赘述堙1 。 入侵检测系统也存在一些不足之处。例如,缺少有效性,入侵模式的提取和 编制基于“专家知识,往往有较高的误报率;缺少自适应性,在检测未知攻击 2 硕:l :学位论文 方面做得不够,缺少自适应能力。另外,许多入侵检测系统在对入侵后处理的支 持方面没有做得很好,往往只能提供一些粗略的报告,对于入侵后系统的恢复没 有提供太多有价值的信息。 1 2 3 入侵恢复系统 操作系统自身的安全面临着很多的挑战。许多攻击者从使用应用程序级别的 病毒或者木马转向了更加底层的技术,即试图通过攻陷操作系统来达到其目的。 传统的入侵检测系统对新型的r 0 0 t k i t 技术往往力不从心。而一味地防守也难免 百密一疏。如何在遭受入侵后恢复操作系统的正常状态、避免更多的损失、将恢 复正常工作的成本降到最低,已成为用户和研究者都十分关注的问题。对这些问 题的研究也成为了安全领域研究者的一个新的方向,有必要简要地叙述一下这个 领域的研究现状。 图1 1 入侵分析系统示意图 一个入侵恢复系统由三大部分组成:备份和日志系统、入侵分析系统和入侵 恢复系统。其系统的典型组成见图1 1 。 本节介绍的是操作系统级的入侵恢复系统。它在操作系统上以内核模块的形 式安装,记录下操作系统在某一段时间内所有的操作,在入侵已经发生的情况下, 通过查询记录下来的系统日志对操作系统在入侵前的行为进行回放,将系统恢复 到一个安全的状态。在这方面的研究中,多伦多大学的f o r e n s i x 系统凹引尤为引 人注目。 f o r e n s i x 是一个开源的入侵恢复系统。在这个多伦多大学的开源项目中,作 者所使用的备份和日志系统是操作系统级的。在这里,操作系统级的日志系统不 基于虚拟化技术的内核代码保护机制 是指操作系统自带的日志系统。操作系统自带的日志系统只记录一些操作系统认 为比较重要的系统信息,它更像一个应用层的日志系统。作为比较高层的日志系 统,它虽然语义丰富,但是对入侵分析几乎没有价值,况且入侵者可以通过删除 日志或者伪造日志来逃过日志系统的记录。不同于操作系统自带的日志系统, f o r e n s i x 使用的日志系统s n a r e 是一个操作系统内核级的日志器( 为表述方便, 本文将其简称为操作系统级的日志系统) 。它将整个系统所有的系统调用情况全 部记录下来,用作其他分析程序的日志。s n a r e 日志系统实际上是一个系统模块, 它通过修改l i n u x 系统的系统调用使得每次l i n u x 的系统调用都会产生足够的日 志信息并定期地将主机上所有的日志信息发送到后端主机。由于现在的入侵都是 利用被攻击主机的系统调用来实现的,所以如果记录了所有的系统调用及其参数 等相关信息,就一定能找到入侵者的踪迹,发现入侵的源头。通过一定的组织, 所有这些日志信息被存入后端主机的日志数据库中。这样,后端数据库中实际上 存在了一个前端主机所有系统行为的全方位记录,就像一个摄像机一样,将前端 主机的所有行为拍下来,以便后续分析。f o r e n s i x 系统还提供了十分方便的查询 功能来方便专业人员分析回放系统的行为。任意时刻,某个系统实体( 进程,文 件,套接字) 进行了动作,通过一个查询语句就可以完成。有许多入侵分析系统 刚采用了同样的方法,利用日志机制记录系统活动并将其存放到安全地带。 f o r e n s i x 系统毕竟还是依赖主机内核的安全性的,但是它通过一系列的措施 一定程度上确保了内核的安全性。这要求有入侵检测系统l i d s 1 或是s n o r t 哺1 的 支持。另外,f o r e n s i x 采用的修改系统调用的方法极易影响内核的正常工作,需 要小心的修改。对此,有人进行了专门的研究阳,。 f o r e n s i x 使用的入侵分析系统源自于b a c k t r a c k e r 哺1 。b a c k r r a c k e r 使用了基 于时问的方法来生成进程、文件和套接字之间的依赖关系,并且使用这种依赖关 系图来观察入侵。f o r e n s i x 与b a c k t r a c k e r 的不同之处在于b a c k t r a c k e r 的目标 仅仅在于确定入侵的源头,而f o r e n s i x 的入侵分析系统部分的目的包括生成一个 需要还原的被污染对象集合。由于目的不同,他们的依赖关系所用的策略也不同, 为了不错过任何找到入侵源头的线索b a c k t r a c k e r 的依赖关系偏保守而f o r e n s i x 的策略更开放,因为它还需要给出一个正确的待恢复的对象集合。另外,f o r e n s i x 的分析系统在确定待恢复对象集的时候需要手工反馈的协助,因为它的策略无法 保证自动生成的待恢复集就是完全正确的。 f o r e n s i x 的入侵恢复系统采用的策略是选择性恢复。它提供了一种精度比较 高的恢复方法,即只恢复受影响对象,尽量保存合法操作。在生成恢复策略时, 用户还可以加入自己的选择和偏好,例如当恢复的文件与系统中文件重名时用户 希望修改哪个文件的名字,或者是直接把重名的不重要的文件覆盖掉。 还有一些其他的入侵恢复系统值得一提。m a g p i e n 们监视集群环境下的内核 4 硕士学位论文 以及应用程序,将这些事件通过语义组织存储起来,在恢复时再从中解压出控制 流和请求的资源。用系统级模拟的方法3 或是基于硬件信息的方法n 2 1 进行数据 的生存期分析能够非常好地抵抗来自于未知i o 源的入侵。他们提供了比 f o r e n s i x 更精确的对象间依赖关系,也能更加精确地还原系统,缺点是比较耗时 和需要额外的体系支持。 1 2 4 安全操作系统 安全操作系统是一个比较新的用词,其定义及用词的使用尚未完全统一。而 历史上,一般称之为“可信操作系统 ( t r u s t e do s ) 。这是根据1 9 8 5 年美国国 防总局的规则所制定的t r u s t e dc o m p u t e rs y s t e me v a l u a t i o nc r i t e r i a ( t c s e c ) 标 准里达到b l 级以上的操作系统而言。后来美国废除了该规则,并采用c o m m o n c r i t e r i a 国际标准代替了t c s e c 标准。 安全操作系统研究的历程划分为奠基时期( f o u n d a t i o np e r i o d ) 、食谱时期 ( c o o k b 0 0 kp e r i o d ) 、多政策时期( m u l t i p o l i c yp e r i o d ) 和动态政策时期 ( d y n a m i c p o l i c yp e r i o d ) 四个发展阶段。近年来,基于开源的安全操作系统的 研究相对活跃。比如有基于f r e e b s d 的t r u s t e db s d 项目,还有以美国国家安 全局( n s a ) 为主开发的基于l i n u x 的s e l i n u x ( s e c u r i t y e n h a n c e dl i n u x ) 。另外, 法国政府也启动了基于l i n u x 的安全操作系统的开发项目,为了对抗s e l i n u x , n o v e l l 于2 0 0 6 年也推出了a p p a r m o r 。由此可见,将来会有越来越多的安全操 作系统面世。 如前所述,可信操作系统是指经认证达到或相当于t c s e cb l 级以上的操作 系统。从学术的角度来说,可信操作系统应具备的功能:用户的识别与判定、强 制访问控制m a c 功能与d a c 功能、客体的再利用保护、完整的裁决、日志审 计、可信路径、入侵检测等。由于t c s e c 已废止,随着像s e l i n u x 那样实现非常 细粒度的访问控制的操作系统的出现,现在很少使用可信操作系统这个名称,普 遍称之为安全操作系统。 安全操作系统现在没有一个统一的定义。但是可以粗略地将安全操作系统定 义为“具有最小特权,以强制访问控制功能为核心的加强安全性的操作系统 。 强制访问控制是一种多级访问控制策略,它的主要特点是系统对访问主体和客体 实行强制访问控制。系统事先给访问主体和客体分配不同的安全级别属性,在实 施访问控制时,系统先对访问主体和客体的安全级别属性进行比较,再决定访问 主体能否访问该客体。普通的操作系统采用任意访问控制,系统管理员可以访问 任何目录与文件。在安全操作系统里,访问控制策略由安全管理员制定,系统管 理员无权干预。最小特权是对进程所访问的资源( 文件、设备、网络和接口等系 统资源) 授予必要的最小权限。对用户划分各种的角色,各个角色管理相应的资 源。 基于虚拟化技术的内核代码保护机制 目前,已有不少安全操作系统面世。国外比较有名的商用安全操作系统产品 有s u nm i c r o s y s t e m s 的t r u s t e ds o l a r i s8 、h p 的h p - u x 、a 唱u ss y s t e m sg r o u p 的p i t b u l l 等。比较有名的开源安全操作系统有n a s 的s e l i n u x 。s e l i n u x 追求 完美的安全性,但安全策略设定较复杂。s e l i n u x 是加强l i n u x 访问控制的安 全操作系统。其安全策略模型采用r b a c 模型和t e 模型外,还基于安全策略 实施强制访问控制。l i n u x 2 6 利用l s m ( l i n u xs e c u r i t ym o d u l e ) h o o k 函数把 s e l i n u x 的扩张模块纳入内核里。s e l i n u x 在设计上采用f l a s k 安全体系结构, 通过分离基于安全策略的安全判定逻辑和基于安全判定结果强制实施装置以实 现安全策略的独立性,目标是支持多种安全策略。s e “n u x 的主要功能有:强制 访问控制、类型裁决( 对进程授与最小权限) 、领域变更( 控制和降低子进程的 权限) 、r b a c ( 基于角色的访问控制) 和日志审计。f e d o r ac o r e 2 、3 、4 、r h e l 4 等l i n u x 都是采用s e l i n u xt a r g e t e d 安全策略的1 x 版本,并且提供策略源代码 的r p m 包。 安全操作系统特别适用于面向不特定的用户、公开的信息系统。它可用于互 联网、局域网和数据中心的服务器。但是对于许多个人和企业用户来说,安全操 作系统技术并没有得到广泛的关注。许多用户还是习惯于传统的操作系统,他们 并不关心这些复杂的安全策略。虽然随着安全操作系统技术在不断地发展,许多 主流操作系统中也采用了安全操作系统技术的思想和研究成果,但是要得到全面 广泛的认可和大规模的应用还需要技术本身进一步的发展引。 1 2 5 传统方法的局限 本节介绍了保护操作系统的研究现状。其中防火墙、入侵检测系统和安全操 作系统的研究有来已久,在现实生活中得到了较为广泛的应用,为保障计算机操 作系统的安全做出了很大的贡献。入侵恢复系统是一个比较新的研究方向,虽然 还没有广泛应用,但是在操作系统安全研究领域内,作为一种对原有技术的补充 和发展,也得到了众多的关注。 另一方面,我们不愿看到的是,随着防御技术的不断发展,攻击技术的革新 也从来没有停止过。众多的攻击技术一直都是让许多安全研究者和信息安全行业 的工作者们十分头痛的问题。所谓“道高一尺,魔高一丈”攻击者们似乎总能 找到一些办法,在现有的看似完美的防御措施上找到一条条裂缝,渗入到操作系 统内部,给用户带来巨大的损失。人们的安全意识日益提高,各种发展较为成熟 的安全软件都得到了相当广泛的应用,可是系统漏洞的不可避免性和内核级 r o o t k i t 技术的兴起却又一次次地给广大用户和安全领域的研究者们敲响了警 钟。数不清的事实已经证明,尽管传统的安全技术经过长期发展已经较为成熟, 能够防止一些传统的攻击,但是面对不断推陈出新的攻击技术,它们的脚步总是 显得较为迟缓,在这些传统安全技术的研究领域内,创新的空间已经不大,而操 6 硕士学位论文 作系统安全领域却迫切地需要创新。近些年来,一种3 0 年前的技术悄然复苏并 蓬勃发展,这就是虚拟化技术。虚拟化的研究取得了令人瞩目的成果,特别是 x e n n k v m n 钉等一系列虚拟化技术的成功,给我们带了新的希望。 本文以增强操作系统的安全性为主要研究目标,旨在利用虚拟化技术具有 的良好特性增强操作系统的安全性。围绕这个主题本文的研究内容主要有:对虚 拟化技术及其在安全方面的各种应用进行研究;总结相关虚拟化系统设计和实现 的经验;利用虚拟化技术设计并实现一个有效保护内核源码、增强l i n u x 系统安 全性的系统,该系统应具有规模小、安全、性能损失较少的特点,并能为安全工 作者提供尽可能多的有关攻击行为的信息。 1 3 本文的组织结构 第一章先介绍了本文的选题背景和科学意义,进而介绍了操作系统安全领域 的研究现状并指出了这些传统技术的不足之处。 第二章主要分析研究各种虚拟化系统。首先简单地概述了虚拟化技术,然后 详细介绍了x e n 的内存虚拟化;接下来的几节介绍了多个虚拟化系统,总结了 它们在设计和实现过程中的经验;最后一节结合本文的研究内容,指出了虚拟化 系统设计和实现中面临的三个关键问题。 第三章主要介绍了本文虚拟化系统设计实现所需的一些基础知识,包括作为 本文威胁模型的r o o t k i t 技术及其发展历程,哈佛体系结构相关的知识和x 8 6 体 系结构中的地址机制翻译机制。 第四章阐述本文虚拟化系统的设计和实现。本章先说明了本文的威胁模型, 并阐述了其潜在的危害;接下来提出了本文的解决方法,给出了一种虚拟化系统 的设计原型,并且依次回答了实现过程中面临的三个关键问题;最后,将本文虚 拟化的系统与类似的技术进行了比较。 第五章是实验分析。先详细介绍了实验测试环境在的搭建过程,随后测试了 本文系统实现的性能影响并对有效性进行了验证,最后,将本文的系统与 s e c v i s o r 系统在各方面进行了比较,分析了各自的优缺点。 最后,对全文进行了总结并指出了下一步工作。 7 基于虚拟化技术的内核代码保护机制 2 1引言 第2 章虚拟化系统的设计 本章首先介绍了当前非常热门的虚拟化技术,重点描述了内存虚拟化部 分,因为这是众多虚拟化应用包括本文系统实现的基础。接下来的几节分别 介绍了虚拟化技术在安全方面的应用。通过研究它们的具体实现,我们将会 对虚拟化技术及其应用有更深入的理解。本章的最后部分总结了这些技术在 设计和实施过程中的经验和教训,并结合本文的特点,指明了虚拟化系统实 现设计和实现中的关键问题。 2 2 虚拟化技术简介 3 0 多年前为了解决大型机计算中遇到的问题,研究者们提出了虚拟化技 术。近几年来,它又开始出现在商用平台上,为解决当今计算领域中安全、 可靠性和管理方面的问题提供了一个全新的解决方案。虚拟化是一种将操作 系统及其应用从平台硬件资源中分离出来的软件解决方案。此处各个操作系 统均称为虚拟机( v m ,即v i r t u a lm a c h i n e ) ,在其各自的分区中运行。被称 为虚拟机监视器( v m m ) 的虚拟化软件负责管理操作系统的请求和活动,能 够遵照请求在各个操作系统之间切换硬件控制权。相互独立t 的分区能够隔离 针对单个虚拟机( v m ) 的软件攻击或软件错误,使虚拟环境保持高度的安 全性和可用性。虚拟化能够让用户控制每个分区,可以在不影响平台其他活 动的同时,中止或重启任何一个虚拟机( v m ) 。用户可以在单台服务器上对 虚拟机( v m ) 进行复制,以便在某个应用出现故障时进行快速的修复。这 样便能够以更少的硬件平台和更低的成本实现更大程度的业务连续性。 如图2 1 所示,v m m 通过在硬软件之间插入一个中间层来解耦合硬件和 软件,这使得v m m 对v m 使用硬件的方式有绝对的控制力。v m m 为底层 的硬件提供一个统一的视图,使得来自不同厂家,具有不同i o 子系统的硬 件看起来相同,以便v m 运行在任意的硬件上。这样管理员就不用考虑操作 系统与硬件之问的兼容性问题,而只需要把硬件简单地看成能运行任意服务 的资源池就行了n 们。 虚拟化技术主要有三个方面:c p u 虚拟化,内存虚拟化和i o 虚拟化。 与本文密切相关的是内存虚拟化,下一节将详细介绍。 8 硕士学位论文 2 3x e n 的内存虚拟化 图2 1 典型的v m m 架构图 系统级的虚拟化技术分为半虚拟化和全虚拟化两种。在内存的虚拟化方 面,它们的差异在于:半虚拟化采用修改页表的方式,而全虚拟化的地址访 问则每次必须查询影子页表。这两种方式各有优点,半虚拟化性能更高,但 是需要修改操作系统;全虚拟化不需要修改操作系统但是增加了地址翻译的 开销。由于地址翻译在系统运行过程中是一项非常频繁的操作,必须每次都 查询影子页表的全虚拟化技术在性能上不如直接修改页表的半虚拟化技术。 采用半虚拟化的x e n 的性能比采用全虚拟化的k v m 要好,其原因之一就是 它在内存虚拟化方面的没有采用性能较低的全虚拟化技术。 由于本文的虚拟化是针对内存的虚拟化,而且是一种半虚拟化技术,所 以本文将详细地介绍一些内存虚拟化技术,特别是x e n 的半虚拟化技术。最 新的x e n 已经支持全虚拟化,在x e n 之上也可以运行未进行修改的w i n d o w s 系统,但是从效率方面考虑,在那些没有支持虚拟化技术的c p u ( 如i n t e l 的v t 和a m d 的s v m ) 上,x e n 原本的半虚拟化技术还是有较大的优势。 x e n 利用影子页表机制来实现内存的虚拟化。宿主机就是真实的物理机器, x e n 的监控程序( v m m ) 就运行在宿主机上。客户机是指在宿主机上执行的 虚拟机( v m ) ,也被称为虚拟域。客户机认为它所拥有的内存地址空间是从 0 开始的一块平坦的地址空间,但它在宿主机上执行时不可能总是拥有从o 开始的一大块的物理内存。这就是说,客户机的物理地址( p h y s i c a la d d r e s s ) 并不等于宿主机上的机器物理地址( m a c h i n ea d d r e s s ) 。图2 2 描述了客户 机的物理地址与宿主机上机器物理地址的关系。这样v m m 必须把客户机线 性地址到客户机物理地址的转换修正为客户机线性地址到宿主机物理地址 的转换。这样的转换显然不是客户机的页表所能支持的,客户机的页表只知 9 基于虚拟化技术的内核代码保护机制 道客户机的物理地址,而出于对各个客户机的隔离与保护的目的,v m m 也 不会让客户机知道宿主机的物理地址。对于完全虚拟化的客户机,v m m 甚 至不能够修改客户机的页表。但是,客户机的线性地址到宿主机物理地址的 转换是保证客户机在宿主机上访问内存运行正确的核心环节。这样,为了支 持和保存这种转换或映射,并能根据客户机修改页表的需要及时更新,x e n 就启用了另外一张页表,这就是影子页表。 客户机 物理内存 v m lv m 2v m 3v m 4 : l 2 3 4闺蘑 宿主机 物理内存 l 楚毒楚 燃黝 2 43黝黝 黝滋麟 图2 2 客户机物理地址与宿主机机器物理地址之间的映射 2 3 1 影子页表 影子页表是监控程序真正使用和维护的页表。客户机执行时,监控程序 在宿主机的页表基地址寄存器( c r 3 ) 中放入的是影子页表中指向最高级的 影子页表的指针( 物理地址) 。当物理机上没有监控程序运行时,在物理机 的页表基地址寄存器中放入的是物理机上运行的惟一操作系统所指向最高 级页表的指针。在x e n 中客户机维护着自己的页表,而监控程序维护着影子 页表。客户机实际上是通过影子页表在访问真实的机器物理地址,影子页表 以客户机页表为蓝本建立起来,并且会随着客户机页表的更新而更新,就像 客户机页表的影子,所以研究者们称之为影子页表。 在x e n 中,客户机的物理地址被称为客户机物理地址( p a ) ,宿主机的 物理地址被称为机器物理地址( m a ) 。对于每个客户机,在x e n 中都有两 张表来表示客户机物理地址与机器物理地址的转换或映射关系。一张表称为 客户机物理地址到机器物理地址的转换表( p 2 mt a b l e ) ,以客户机物理地址 为索引,可以在这张表中找到该物理地址所对应的宿主机机器物理地址。另 l o 硕士学位论文 一张表称为机器物理地址到客户机物理地址的转换表( m 2 pt a b l e ) ,以宿主 机机器物理地址为索引,就可以在这张表中找到该机器物理地址所对应的客 户机物理地址。 每一级客户机页表都有相应级别的影子页表与之对应,每一页客户机页 表中有规定数目的页表表项,每一个页表表项中都包含一个客户机物理地址 ( p a ) ,而在该页客户机页表所对应的影子页表中,也有相应数目的页表表 项,每个页表表项都包含了一个机器物理地址( m a ) 。 g f n :g u e s tp a g ef r a m cn u m b e r 客户机物理页 m f n :m a c h i n ed a g ef r a m en u m b e r 机器页帧号 图2 3 影子页表与客户机页表 这些机器物理地址可以分为两种。一种是前文提到的在p 2 mt a b l e 中对 应了客户机物理地址的机器物理地址,另一种是指向了影子页表的机器物理 地址。每当新生成一张影子页表时,监控程序会分给这张影子页表4 k b 大 小的空间,有一个真实的机器物理地址指向它。如果该影子页表对应了最高 级的客户机页表,则该机器物理地址就可能是宿主机c r 3 中的指针,否则 该机器物理地址就会出现在该影子页表的上级页表的表项中。在最低级的影 子页表中,其页表表项包含的一定是在p 2 mt a b l e 中对应了客户机物理地址 的机器物理地址。这样,最低级的客户机页表表项与最低级的影子页表表项 才能指向相同的机器物理页。这也是客户机能通过影子页表访问真实物理内 存的关键所在。 基于虚拟化技术的内核代码保护机制 为了生成新的影子页表,并能追踪与这影子页表对应的客户机页表,监 控程序提供了一张哈希表和一个哈希函数。 在对应的客户机页表和影子页表中,相应位置上的客户机物理地址与机 器物理地址之间,有两种对应关系,可以通过哈希表或是p 2 mt a b l e 来进行 转换。图2 3 描述了这两种页表的对应关系。 2 3 2 影子页表的实现 在x e n 中,影子页表会使用几个基本的数据结构,一个是p 2 mt a b l e 和 m 2 pt a b l e ,这两张表存储了客户机物理地址到宿主机机器物理地址的一一对 应关系;一个是主控表( m o n i t o rt a b l e ) ,在主控表中存储了所有客户机公用 的x e n 的地址映射的信息;还有一个就是哈希表。对某一个非最低级客户机 页表中的页表项而言,以该客户页表项中的物理地址和该页表的类型作为哈 希表的键值,在该哈希表中可以查找得到相应的影子页表项中的机器物理地 址。 当客户机刚开始在宿主机上启动时,监控程序要为影子页表的建立做初 始化的操作,主要是这三种数据结构的初始化。 当客户机启动分页机制时,影子页表还是空的,就像一个空的t l b 。随 着客户机的执行,监控程序会截获客户机对内存访问的操作,一旦发现对应 于客户机页表的影子页表不存在,监控程序会立即分配一个新的物理页,并 参照客户机页表填充相应内容。 2 3 3 缺页的处理 当监控程序截取到缺页异常后,第一步要查找客户机的页表以确定指向 发生缺页异常的线性地址对应的物理地址所在的页表项,该页表项的【o :l l 】 位表明了该物理地址所对应的页的被访问权限,监控程序再根据此权限对照 缺页异常产生的错误码,以确定该缺页异常是客户机本身的缺页异常,还是 由于影子页表与客户机页表不一致而产生的错误( 实际上,这是在非硬件虚 拟机上不会发生的错误) 。后面一种错误称之为影子错误。 对于客户机本身的缺页异常,监控程序不作任何处理就直接返回给客户 机。客户机会解决该缺页异常。而对于影子错误,监控程序会根据出错的客 户机页表项的内容来生成或更新相应的影子页表项。 实际上,会有多种出错的情况,但是归根结底,监控程序要把从最高级 影子页表项到最低级影子页表项的页表结构建立起来。以最低级客户机页表 中的页表物理地址为索引,可以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-江苏-江苏垃圾清扫与处理工二级(技师)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-新疆-新疆造林管护工二级(技师)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-广西-广西水工监测工一级(高级技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-广西-广西广播电视天线工三级(高级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-广西-广西园林绿化工一级(高级技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广东-广东计算机文字录入处理员二级(技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-广东-广东水文勘测工三级(高级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-安徽-安徽土建施工人员五级(初级工)历年参考题库典型考点含答案解析
- 2020-2025年初级经济师之初级经济师财政税收高分通关题库A4可打印版
- 2025年事业单位工勤技能-北京-北京不动产测绘员五级(初级工)历年参考题库典型考点含答案解析
- 2025至2030中国超前和靶向药物输送行业发展趋势分析与未来投资战略咨询研究报告
- 信号与系统(第2版)课件 1.0 绪论
- 中文版儿童睡眠习惯问卷CSHQ 含评分维度
- 战士留疆考试题及答案大全
- GB/T 45482-2025企业综合能耗确权核算通则
- (推荐下载)家族性结肠息肉病教学课件
- 水生产企业(自来水公司)安全生产责任制(含安全手册)
- 《材料成型装备及自动化》课程大纲
- 临时用电JSA分析表
- 如何提高护士对患者病情掌握的知晓率
- 议论文阅读训练 (针对初一学生)附答案
评论
0/150
提交评论