[音乐]
[音乐]
同学们好!上次课我们把这个虚拟化
系统,就系统虚拟化这一部分的安全性和它的安全问题做了一个描述
下面我们就开始讲第一部分 就是关于虚拟机监控器自身的安全性如何来提高
那么虚拟机监控器呢,它是跑在这个 操系统之下,硬件之上的一个新的一个系统软件
那么这个系统软件由于它直接 这个控制着这个硬件资源,所以话它的安全性呢显得格外的重要
为此呢,我们这个课程我们前面曾经提到过,怎么样做操作系统安全
那么有了虚拟化软件之后,那么虚拟化软件其实 相当于属于一个处在了这个最最核心的这个层次
所以它的安全性呢,显得格外的这个,我们需要去考虑了 那么同学们是否还记得,我们在讲这个
Linux 的时候曾经提到过它的一个体系
架构或者说安全框架,叫 LSM 就是 Linux 的 Secrity Module。
那么这个 Module 呢实际上是支持 Flask 体系结构的一个安全体系结构
同样的话呢,目前在这个虚拟化的这个软件里面 尤其是在
Xen 这个开源的虚拟化软件里面,那么事实上也实现了一个安全体系结构
那么叫 XSM ,这也是我们这部分需要 来重点讲的这个体系结构。
在这个体系结构基础之上,我们再 后续如果同学们有兴趣的话可以在这个基础之上去考虑
如何在 Xen 里面去增加相关的一些安全控制 当然,是实现一些强制的安全控制
我们来看一下,什么是 XSM? 首先,它跟
LSM 非常类似 它是适用于 Xen 的一个通用的安全框架
另外呢,它是允许模块化的安全功能定制 大家可以跟
LSM 进行对比啊,这些,这两个功能其实跟 LSM
是类似的 第三呢,是提供通用的安全接口,这也是类似的
第四呢,是将特定的安全代码从 Xen 的核心中移除,比如说我们在
LSM 里面 把 compability 这个模块从这个核心里面移除,独立成一个模块,这个做法也是类似的
那么这个框架接口的目标是什么呢?就说我们要做这样一个 LSM
这个框架 提供相关的一些这样的一些钩子函数或接口,它的主要目标是什么? 我们来分析一下。
首先第一条,它要求这样一个框架 或这样一个框架接口能够支持主流的安全模型
那么安全模型仍然可以是我们前面提到的,比如说 这个为了控制资源的一些访问控制的模型,强制访问控制的模型
第二呢,减少对 Xen 本身的影响 就是不需要因为加了这些功能之后,对
Xen 的性能带来很大的影响 第三,能够设置是否开启这个安全框架
比如说,在这个用 Xen 这样的一个软件的这个
用户,他可以选择我需不需要这个功能,开启这个 XSM
这个框架的功能 那么, XSM 在设计的时候,它的合理性是什么?
首先呢,就是我们,就是它的合理性主要体现在 几点上:第一个是针对
Xen 的一些新模型,它会有不同的安全目标 所以的话呢,有了
XSM 框架 事实上它可以支持多种安全目标,这有点类似于我们 LSM 可以支持多策略框架,是类似的
第二,安全目标呢,不应该定,直接定死 应该能够动态配置,这个也是跟前面是类似的
第三,就是新的安全功能不应该对 Xen 里面的机制造成影响 造成影响。
也就是说不应该由于有了新的机制加进去,我可能要改我很多的原有的一些代码 这个希望是最小化。
这是我们关于这个 XSM 的一些就是它的
这个合理性或者它的目标的一个描述 下面我们看一下,在这个
XSM 这个框架 它主要针对的是一个什么模型?大家还记不记得我们说的
LSM? LSM 框架其实主要是针对的这个访问控制,对吧,是针对访问控制 那么在 Xen
里面,这个 XSM 主要是针对的是什么安全问题呢? 我们来看,它有几大个:第一个是,第一个是用于分解
Dom0 第二个是用来这个划分资源,其实就是做资源之间的隔离
第三个是要保护这个平台免受第三方软件的攻击
第四个是要保护平台核心的安全服务,能够正常提供服务 这是它的四个主要部分。
我们简单说一下 先说一下第一个,它是用于分解
Dom0 熟悉 Xen 的同学应该都知道,在 Xen 的平台上面
它有必须要安装一个 Dom0 ,就是所谓的这个特权域,那么这个
特权域从名字上可以看出,它应该是类似于一个具有 很,就是相当于
root 或者是管理员的这样一个角色 它能够拥有很多的这样的一些权限,一些权限,呃
所以的话呢,在这个虚拟化的平台上面,这个 Dom0 如果只是一个独立的域来
拥有所有的权限的话,它相当于我们在原来的操作系统里面 拥有一个
root 用户一样,它拥有所有的权限 所以这种安全性,就是权力过于集中会带来安全问题
会带来这个权利滥用啊,对吧,会做一些这个 就是越权的一些行为呀,等等。
所以在这里面 我们就是要考虑怎么样去把这个 Dom0
做一个 分解,比如说可以给每一个域最小的权限,就是说可以把一个管理域
Dom0 分成几个域 每个域呢只负责,比如说,我有些平台负责配置
有些平台呢,就是有个域呢它是用来负责这个创建 虚拟机,或者创建域这样一些权限做一些分离
第二呢就是可以创建安全模块来定义这些特权 就是这种方式我可以把一个 dom0
切分成多个域 每个域呢负责不同的这个特权管理的功能 这个可以建立一个专门的特权模型。
第二呢,是用于划分资源 那么事实上就是怎样对资源进行划分和控制
因为在 Xen 里面它管理了底层的物理资源,所以这些物理资源应该分配给哪个虚拟机
这一块呢是需要通过建立一些模型
来考虑这些资源在什么时候给哪个虚拟机,就是在哪个域来进行访问
所以它的主要控制就是允许特定的域来访问特定的资源
第三个其实就是用于保护平台免受第三方软件的攻击 事实上其实说就是说我的平台
因为虚拟机,虚拟化的平台,每一个虚拟机有一个独立的 虚拟化环境。
另外呢,所有的虚拟机跑在一个物理机上面 那么如果某一个虚拟机是恶意的话,它可能会威胁到整个物理平台
所以的话呢,我们现在就要考虑,会不会有一些恶意的用户可能因为他跑在某个虚拟机上
去控制整个这个物理机,所以的话在这个实现的时候我们可不可以在 Xen 这一层 考虑为上面的
app 或者每一个虚拟机 我可不可以专门给它设立一个独立的运行环境,比如说设备驱动,我做一个隔离
不同的虚拟机,我采取不同的这样的设备驱动 或者说我提供一个沙箱的技术,或者我在虚拟化软件里面专门做一个沙箱的技术
让某一个应用它所跑的这个软硬件,它所需要的资源 我给它专门分配出来,在一个环境下,它跟其它的这个资源
相互不做交互,不做交互 尤其是它对这种应用,就是说我不信赖的这种应用
和其他的应用如果要进行跨域访问,我是严格限制,严格限制 这种严格限制其实也可以通过建立一个安全模块,来完全做仲裁
第四个呢就是用于保护平台核心的安全服务,安全服务
大家知道在虚拟化的平台上面,它肯定也有很多提供服务的一些功能的接口
所以的话呢,比如说我们这里提到媒介进行加密 IP 过滤或者路由,然后做可信计算的度量或者证实等等
这些技术我怎么样来做一些保护,对吧,怎么来做一些保护
那么要做好这些技术的一些保护呢,我们可能要定义一些安全模块来进行隔离,来仲裁对这些
服务的访问,以保证对这些服务调用的这个安全性 这就是我们所说的
XSM ,其实它的使用模型啊,主要涉及到这四大类,四大类
那么 XSM 它,安全性呢,就是实现这种安全性,用它来实现安全性的一个好处就是
安全功能可以做独立的封装。
第二呢,只有 就是设计比较良好的一个安全架构,就是我这个,我们知道我们建立一个
良好的 TCB ,就可信计算机,其实我们 前面都了解这些 TCSEC CC
,就说标准 等级要求越高,它对这个体系结构的要求也就越高
所以这个安全体系结构呢,事实上对于我们建立良好的这个 TCB
其实是非常重要的一个部分 第三是安全功能的扩展。
第四呢是可信的这个 IVC,IVC, 其实是指的这个在不改变现有通讯机制的情况下
通讯双方可以进行相互的这样一个身份认证 好,这是我们关于
XSM 的它的这个 前面的一个概述。
这部分到这儿,谢谢!