分类 默认分类 下的文章

1.1课程简介
同学们好,欢迎 大家选择上这门操作系统与虚拟化安全课程 我是主讲老师沈晴霓,下面我们介绍 一下这门课程的背景和课程的意义 同学们知道这个操作系统是这个计算机系统的基础软件 比如说我们的这个Windows操作系统,PC上的Windows操作系统,还有 我们在大家可能现在用的比较多的苹果的操作系统Mac OS 苹果的手机也好,苹果的这个PC机也好 还有这个Google推出的这个智能手机上的安卓操作系统 还有我们后端的这个服务器用的Linux操作系统 此外呢随着云计算的这个推出,我们知道虚拟化 软件在云平台当中是一个基础软件 它可以提高整个这个云计算平台的这个利用率以及它的灵活性 那么现在呢大家知道这些基础软件,包括操作系统和虚拟化软件 已经开始走向这个开源化,那么开源的 这个软件的发展已经形成了一个多元化的一个阶段 那么我们这里知道在开源的操作系统和虚拟化软件里面有像Linux FreeBSD,以及我们刚才提到的这个 安卓的手机操作系统,另外呢就是还有我们 现在微软操作系统它有一个,在这两年推出了一个开源操作系统Barrelfish 此外在虚拟化软件里面有Xen,就是英国剑桥大学推出 的一个开源软件,还有就是KVM是红帽子推出的一个开源软件 目前在云操作系统里面非常热的一个项目叫OpenStack 这都是一些开源软件,那么 软件的开源精神其实到目前为止已经发展为三个阶段 第一个阶段就是纯粹的一个理想主义的 追求,是大家都是义务的参与和义务的贡献 第二个阶段呢就是一些大型的企业、 公司开始介入去做一些开源的这样的一些项目 他们的目的呢可能主要是在技术的这个 能力上想做一些提升。 目前第三个阶段应该关于这个怎么样 因为企业嘛它还是受利益的驱动,所以希望通过做一些开源项目能够去 做一些应用和做一些服务,从中去获利 操作系统和虚拟化是整个这个 本地操作,计算机系统和,或者说云平台 非常重要的一些基础软件,那么这些基础软件的安全性呢肯定是不容忽视的 比如说目前我们知道在微软的这个Windows,它的安全漏洞是层出不穷 尤其是我们知道在08年的时候,曾经出现了微软的一个反盗版宣传日的活动 也就说他们在不定期的时候,会让你的这个使用Windows XP盗版软件这样的一个用户 他的屏幕会突然出现黑屏的这样一个现象。 UNIX和Linux 家族被认为是比较安全的一个系统 那么但是呢这个安全性也在2000年9月份的时候被打破了 那么当时爆出了关于Linux的一个漏洞,是基本上在所有的UNIX和Linux版本当- 中都会出现 那么04年还有2013年的时候 美国曾经公布了像Linux当中出现的 非常,十多个这样的安全漏洞 苹果操作系统,基于FreeBSD的这个UNIX操作系统所开发的一个 操作系统,这个操作系统最初的时候也被认为是一个很安全的一个系统 但是在2012年的4月的时候,那么苹果MAC OS的安全神话也被破灭了 那么全球有将近70万的电脑被病毒感染 安卓,就是Google推出的安卓操作系统,那么这个操作系统呢 在开始设计的时候其实也考虑了系统安全 但是在13年的时候 这个安卓手机的安全形势也开始恶化,随着手机安全形势的恶化呢 手机用户提升手机安全的意识也非常的重要 在虚拟化软件里面,VMware是行业里面的主流的一个厂商 那么但是VMware软件在这两年,就是12年 13年也陆续爆出了各种各样的一些安全漏洞 有这个恶意拒绝服务,还有提权的一些漏洞 虚拟化软件就是Citrix公司的这个Xen的虚拟化软件在这些年也陆陆续续 爆出了各种各样的漏洞。 红帽的,刚才说的这个KVM虚拟化软件 也出现了各种样的漏洞。 从这里可以看成 就是操作系统和虚拟化是整个计算机平台或者是云平台的一个基础软件 那么它们的安全性如果一旦出现问题,会导致整个这些平台的安全性 出现问题,所以我们说如果要在整个计算机,IT行业里我们说要建立一个信息安全的基础- 设施的话 那么最关键的其实就是要解决操作系统和虚拟化的安全问题 这也是我们这门课程要设置的一个主要原因 那么我们这门课程会介绍一些什么内容呢? 我们这门课程将结合我们之前 在中国科学院软件所所研发的这个安盛安全操作系统 的研究工作为基础,以及我们近八年来在北京大学从事这个虚拟化软件和 这个云平台安全这块儿的研究工作 经验来给大家介绍 相关的操作系统和虚拟化方面的安全理论、 技术、 方法和应用 并且呢帮助大家去掌握和了解整个计算机系统安全的知识体系、 实践技术和开发方法 这是我们主要的教学内容,第一部分是关于这个操作系统安全相关的 概念,基本机制,安全建模 还有这个安全体系结构,以及它的这个开发实践这部分的内容 第二部分是关于这个虚拟化的平台的安全保障技术 以及它如何结合可信意见来提供整个 虚拟化平台安全性保障的一个技术。 我们这门课程有什么特色呢? 首先我们这门课程是北京大学的精品课程 研究生的精品课程,另外我们也是Intel这个 资助的一个全球顶级大学的一个信息安全的课程 第二呢是我们这门课程覆盖了60年代以来 将近50年建立起来的一些安全概念,比如说TCB可信计算基 引用监控器的概念,相关的安全理论,比如说BLP的 精密性模型,BIBA的完整性模型,还有RBAC基于角色的访问控制模型 DTE的这个强制实施策略模型 另外呢还有安全体系结构,比如说FLASK安全体系结构 Xen的这个XSM安全框架 相关的这个方法和这个应用我们都会在这门课程里面进行介绍 当然了我们还会涉及到关于可信计算机系统的一些标准 前面我们也提到过一个是TCSEC,另外一个是CC 这门课程里面还涵盖了我们国内20多年 在这个安全操作系统和虚拟化领域的这个科研实践成果 那么包括国家提供的一些863科技支撑,973,还有国家基金项目的一些支持 以及和企业合作的一些项目的支持 这是我们基于前面的一些项目所开发的一些 原型系统,比如说我们的自主研发的安胜安全操作系统 以及美国安全局所开放的一个项目,就是前面提到过的SELinux项目 这是我们在研究过程当中所研发的一个原型,就是虚拟可信平台的原型 第四点就是我们这门课程的特色就是我们的课程是 由我来主讲,但是我们还会在课程里面特邀一些专家比如说国际知名的信息安全专家卿斯汉老师就会帮我们从国家安全的角度来介绍 我国安全操作系统自主研发的经验和方向 中科院软件所的张敏副研究员,他会从数据库安全的这个实践理论和技术角度,来介绍安全操作系统的实际应用 那么Intel公司的资深信息安全专家王绍斌博士会从 国际的视角来介绍业界参与可信计算技术标准 应用实践的现状和趋势。 下面说一下我们这门课程的参考书目 北京市的精品教材,《操作系统安全设计》 另外我们还提供了一系列的这个参考书目,关于这个操作系统设计的 操作系统安全的,还有就是关于这个虚拟化安全和云计算安全的一些书目 大家可以去借阅或者去购买 最后说一下,大家学习这门课程可能的一些收获。 我们主要说五点大家通过学这门课程,首先可以去理解 深入的理解操作系统和虚拟化技术的一些工作原理 第二呢,就是可以掌握这个计算机系统安全的一些基本概念第三呢,就是说可以去掌握经典的这个安全建模还有安全机制和这个安全体系结构的设计方法 第四呢,就是可以掌握操作系统还有虚拟化安全的一些开发技术和方法 第五呢,当然我们希望同学们学这门课程以后 可以对基础软件还有计算机系统安全的这个兴趣和从业的志向。
1.2 计算机系统的安全性
[音乐] [音乐] 同学们好! 今天我们讲第一个知识模块,操作系统安全的重要性 首先我们来看一下,这个计算机系统的安全性,这个安全性是什么 大家知道,在我们的日常生活里面,其实我们有三类,三个方面的这样的安全需求 比如说第一种需求,就是我们在法律法规当中的一些需求 也就是说我们的法律法规要求我们达到要保证这样一些信息的安全性 比如银行你的个人记录,再比如你的医疗记录 这都涉及到人的一些财产的隐私,或者是一些个人信息的隐私 那么这一类安全是需要进行保护的。 那么第二类呢,就是关于我们的这个人身的安全 那么这个主要是在我们的日常生活里面有一些关键的一些计算机系统 比如说我们的航空航天领域这样的一些计算机系统 它的这个系统如果不能够做到安全性,那么可能就会危及到人身的一些安全 第三类呢,其实是指的我们日常生活当中对个人的 一些信息,一些资源可能你会有一些需要做一个 跟别人做隔离的一个样,一个需求,就是不希望你的信息被别 的用户看到,也不希望你的资源被别人随意地进行损坏 那么这种情况下,我们也需要进行一些这个安全性的一些保护 所以真正的这个安全性应该是指的这三种类型 就是说一个是法律法规的要求,第二类就是为了人身的安全 第三类呢其实就是我们对于个人资产的一个跟别的人的一个隔离的一个需求 那么在日常生活当中,我们要保护系统安全性 原因是什么呢?那么肯定是在我们的生活当中会面临各种各样的一些威胁 同样对于计算机系统,它也会面临各种安全威胁 那么我们来看一下这个计算机系统会面临哪些安全威胁呢? 第一个,同学们很容易想到的一点,就是我们的这个计算机系统 尤其是我们的软件系统,都是由这个软件工程师编写出来的 那么在编写的过程当中,由于这个能力或者是由于这个 出错等等原因,会导致这个软件里面 或者是设计上的这个不完善,会导致这个计算机系统里面会出现一些漏洞 第二呢就是关于这个恶意用户,显然 计算机系统它也是一个里面保存了很多这个用户的资源 所以的话呢,一定会有恶意用户想去拿到别人的计算机系统当中的资源 所以恶意用户又是第二类这样的一种威胁。 第三类威胁呢,就是说 指的这个系统本身你可以访问,或者说本身给你授予了一些权限访问 但是呢,你没有去履行自己的职责,去访问了你不应该去访问的这样的信息 比如说给了你一个权限,你本来对这个文件只能去读 但是呢,这个权限授予你的时候,设计的不是很好,比如这个读权限 除了有读,那么甚至你可以去修改它的权限。 那么这 个其实是主要是这种访问控制做的不是很完善,机制做的不完善 让你做到了你本来不授权访问的这样一个机会,给了你这样一个机会 第四种就是在 操作的时候,这个人员本身他没有本意地去破坏这个系统 只是由于他的一些疏忽,或者是他的一些无意当中的非故意的一种行为 导致了这个系统出现了一些错误,这是人员在犯错误的这一块导致的 最后一个呢是指的我们这个硬件错误问题 大家知道,计算机硬件呢,我们说基本上我们相信它是这个 安全可靠的,但事实上我们也知道,有的时候你的机器会突然一下 死机或者是卡住,那么有的时候可能是软件的原因,有的时候可能是你的一个 一个卡松动了,或者是某一个这个硬件的线突然 烧了。 那么这些都有可能是硬件方面的错误,给我们的系统 带来一些威胁。 针对计算机系统会出现这样各类的威胁 这种威胁并不一定能够造成真正的一个恶意的一些事情 那么要对这个计算机系统造成恶意的事件,那么一定还有 另外一个词,对于我们安全领域来讲叫 attack 就是我们的攻击,对吧 那么针对计算机系统一定要产生一个实际的攻击的行为,那么你才可能对我们的系统的安全性- 造成一个破坏 那么针对计算机系统的这个攻击到底有哪些呢? 我们来看一下,在计算机系统的攻击我们经常会提到有这样的 七类。 第一类呢就是我们所通常所说的这个恶意代码 这一类恶意代码其实就是指的编程人员 当然是指的攻击者,他会去专门写一段这样的代码 这段代码的目的呢其实就是要么就是植入你的系统 要么就是传染你的计算机,让你的计算机呢传染上病毒,让你的机器呢 没有办法正常的工作,或者说让你的机器呢变得不可用,不可服务 当然了,它还可能提供一些这样的 在某些时刻让你的机器突然一下出现一些 蓝屏啊,或者是出现一些这个 非正常的一些状态,那么这个比如说一些逻辑炸弹,它就是利用你这个计算机系统 在满足某一种条件的情况下,比如说在某个时间点 它会发挥作用。 当然了,在这个 任何的软件里面,还有一些其它的一些恶意代码,比如说我们在,会在自己的软件里面专门开- 一个后门 那么以便于,当然大多数软件开后门的目的呢,可能是为了用户可以从远程来对这个 系统进行一些维护,但是呢有的这样一些软件工程师,可能会在你的系统里面植入,做一些后门 他的目的当然是想远程地控制你的系统。 当然还有一个就是我们的计算机系统里面还有一个叫隐蔽通道 那么这个隐蔽通道呢就是指的在计算机系统里面,它会跑 一些这样的程序,这个程序呢它会拿到你的信息 然后通过一个秘密的通道,就说我们说本意不是用来通信的这样的渠道,把信息传递给 这个木马的一个主人,或者说传递给一个它的这个受益方 受益方,这个我们叫隐蔽通道。 那么除了这种恶意代码 这是我们所谓经常所面临的一个很重要的一个攻击形式之外呢 我们还有其他的一些,比如说我们这个系统的渗透,就是说它不断地来探测你的这个系统 看看你的系统有没有一些 没有,由于管理或者配置的一些原因,出现的一些 我可以进入的一个一个环节,这种呢我们叫系统渗透,系统渗透 此外呢,就是我们还可能会去用一些其它的方法,比如说我去伪造 一个用户的身份来跟你进行交互,那么这种我们叫做中间人的攻击 就是我是用别人的一个身份来跟你进行交互 呃,第四种就是说,这也是我们在安全领域里面非常常见的一种,叫拒绝服务攻击 那么拒绝服务攻击目前在安全领域里面,其实是很难进行防范的。 它其实 就是说通过一种恶意的行为,来让你的这种本来是向外提供服务的一种服务,现在变得不可用 甚至变得就是整个机器变得崩溃了,对吧,崩溃 那么这种服务其实有很多种方法可以是,这种拒绝服务的模式 要实现攻击的话,其实一旦实施,要防范是比较难的 此外还有就是利用这种网络的流量来窃听你的信息,这个我们叫网络嗅探 就攻击者呢可能他并没有破坏你的这个呃 这个系统的一个本意,他只是想利用你这个环节去 拿到他想拿到的一些信息,那么这一种我们叫网络嗅探 当然了,还有些其他的方法,就是除了网络嗅探,去网上搭一根线以外,我们还可以通过,现- 在因为我们也知道 有很多一些设备有无限的、 辐射的这样一个功能 当然也现在有很多的这个无线网路,那么都可以通过这个电磁或者是无线网络 来窃取我们一些信息,这个我们叫这个 更多的这块应该,就是信息泄露这一块更多的指的是从这个电磁辐射里面 去抽取你自己所希望拿到的这个信息 最后这一种呢,就是关于这个社会工程 那么社会工程其实主要是有一些 用户他为了去接近你的系统,他通过技术手段他可能实施起来非常困难 甚至是不可能,那么他如果一旦有机会 接触到这个人,或者接触到这个系统的管理者,或者接触到这个系统的操作者 甚至进入这个系统周围,能够直接使用 这个系统的话,那么他可能就可以很快的获得他想达到的一个目的 那么这种我们通常讲,他设法,我们不是指技术上,而是指他设法跟这么个人进行接触 设法怎么样进入到这个公司或进入这个系统,那么这样一种攻击呢,我们认为叫社会工程 那么他在这一步达到目的以后,其实他拿到的这个,比如说他可拿到这个公司的口令 帐户,对吧,那么以后他可以为所欲为,那么这种攻击是非常地威胁 很大的。 但是这种攻击对于我们这门课程来讲,不是我们所涉及的一个范围 因为它是,主要是跟这个人交互这一块关系比较多 那么有了这些概念之后,现在我们来看一下,就是我们所关心的这个计算机系统的安全 有哪几个方面。 那么目前来看我们认为它主要是有两个方面 一个呢就是关于这个 computer security,就是我们所说的计算机的安全 第二类呢,就是计算机和计算机之间通信,就是我们知道现在 所有的计算机系统都是在这个 internet-based,就是基于网络的这样的一个一个环境 所以的话呢,通信安全也是我们所要关心的 它所关注的就是说计算机和计算机之间进行交互 或者传递信息的时候,那么这个当中的一些安全性 那么计算机系统安全本身就是要保护 我们在计算机上存放的这些资源 不会被滥用,也不会被这个未授权的使用 甚至也不会出现这个意外,或者是出现一些故意破坏的这样的一些行为 这是我们,当然这个也是我们这门课非常重要的一部分 那么通信安全呢,更多的是讲的是在这个通信过程当中,这个信息 就是我们的信息,不会被别人窃取,不会被人家进行破坏 所以这种我们叫做这个通信安全。 那么通讯安全这一部分在我们的课程里面可能涉及的会比较少
1.3 操作系统安全的重要性
[音乐] [音乐] 我们知道在计算机系统里面 有这些安全,就是我们要关注的是这个计算机的安全 那么在计算机的安全里面,其实我们这门课更关注的是什么 呢?更关注的就是要建立一个安全的一个操作系统 或者说建立一个安全的基础软件,因为我们还会讲到虚拟化的安全,对吧 那么为什么需要一个安全的操作系统呢?那么因为这个 大家知道在目前很多这样的安全事件的根本,其实可能不是网络的问题 也不是因为用户的问题,可能就是因为你这个底层的这个基础软件 它们出现了,有很多的这个脆弱点。 比如说我们知道 很多系统都是利用你的这个操作系统的一些特殊的一些的网络端口 那么这种端口一旦你可以进入,其实你可以拿到很高的一个权限,比如说你是超级用户的权限 那么你就可以进入这个系统,为所欲为。 这是我们所说的这个操作系统的脆弱性 我们来举两个实际的例子看一下。 第一个就是关于Windows NT它的安全漏洞 在Windows NT里面,包括现在我们很多的这种Windows XP,Win 7,Win 8,对吧,我们用的这个操作系统都是NTFS文件系统 那么在NTFS文件系统里面,它有一个很重要的缺陷就是说,这个读,就是我们知道每个文- 件它有一个 权限的划分,你是允许A用户读呢,还是写还是执行,对吧,我们对权限会有这样一个读、 写、 执行的一个划分 那么在NTFS里面,它这个读的权限的划分,它事实上是蕴含了两个权限 一个是读,另外一个是执行,那么按照这样一个概念的话 那么假设恶意用户他 去替代一个文本文件,用一段恶意代码去替代 一个文本文件,那么这个文本文件里面植入了他的恶意代码,对吧 那么因为这个用户对这个文件本身是可以去读的,他可以打开它 但是打开同时他也运行了它,那么一旦运行,这个恶意代码就可以 做它一些,产生一些恶意的后果 第二类,第二个例子呢是关于这个,我们现在可能 服务器端,或者是目前包括我们的安卓操作系统上面会经常 用到的一个操作系统,就是UNIX或是Linux类的这样一个操作系统 在这样的操作系统里面,其实也有很多的安全问题 我们举一个例子看一下。 就是在这个 Linux系统里面,大家可能都用过,有一个叫ping的这样一个命令 这个ping命令其实它的主要功能就是说去跟远端 的这个,主要是来检测一下这个网络是否通,对吧 它来测试一下这个网络是否,连接是否通 那么这个ping命令呢事实上它在执行的时候,它有一个,这个ping命令本身 在运行的时候,它会执行一个,它本身是一个setuid的一个root程序 也就是说它在运行的时候,会有一段时间会把自己的身份转换成一个超级用户 那么早期的版本里面,对于这个超级用户 呢是在执行功能的时候,它是有这个超级功能的权限 那么在执行完功能的时候,它本身应该把这个权限放弃掉,然后恢复到这个普通用户的权限 但事实上早期版本的这个ping命令,并没有 丢弃这个root的权限,也就是说执行完这个连接之后 在结束之后,它并没有把这个权限放弃掉,那么 导致呢它的这个权限一直在,所以恶意用户一旦去 一旦,恶意用户一旦去成功的植入这个,或者说成功的去 攻破这个ping命令以后,他就可以拿到root用户的权限 当然ping命令另外还有一些其他的问题,比如说它有一些缓冲区 溢出的问题,那么恶意用户也可以利用缓冲区溢出的这样一个情况 来获得root用户的权限 所以从这两个例子,其实我们可以发现这样的 一些安全问题其实很多都是源于操作系统本身 在它的一些机制上有一些缺陷 所以我们现在可以来得出这样一个结论,就是说 如果我们在一个系统里面去做安全,仅仅是从 上层,或者说从应用,application这一层去做这样一些安全的话 事实上是不够的,因为我们知道目前在任何一个计算机系统里面,应用 会越来越多,那么每一个应用其实你都要保证它是安全的 否则的话,只要有一个应用出了问题,那么可能它就会把这个安全问题会 成为这个整个系统的一个,相当于一个木桶原理嘛,它就会导致整个系统不安全,不安全 所以我们说仅仅在用户层做安全是不够的,我们需要在这个内核级也要做安全 那么原来的这个操作系统,原来计算机系统的这个基本假设是底层硬件是安全的 还有一个基本假设是说,操作系统也是安全的,然后它来做这个 整个系统的安全性。 但是事实上这样一种基本假设是并不合理的 那么我们的所谓的安全性应该是要一层一层的做,每一层都要做安全,就是我们要硬件上- 要做安全 然后是操作系统要做安全,然后再往上应用层也要做安全,这样才能保证整个计算机系统- 的安全性 我们来举一个例子啊,在 这张图上大家可以看到,有两个 有几块甜饼,对吧,这个甜饼很诱人,但是它 放在一个房子里面,现在我们想保护这个甜饼,不要被 老鼠来偷吃,对吧,被老鼠偷吃 那么这样一种简单的一个问题,大家来思考一下 就是我们应该来保护,怎么样保护这些甜饼呢? 通常我们有两种解决方案,同学们可能自己 也能够去想到很多一些解决方案,那么大家可以去思考一下 我们这里说一下,两种大家经常会,归纳一下,经常会考虑的两种方案 第一类呢就很多人会去想,okay,我要保护这个房子那我就把整个,保护这些甜饼,我就- 把整个房子给保护起来 不让老鼠进来,对吧,把我的房子做的很牢固 没有让老鼠进来的这个机会,机会 这是一种保护方案。 第二种呢就是说,okay,我保护甜饼那我就 把甜饼装在一个盒子里面,当然这个盒子一定要是个金属盒子,对吧 让老鼠啃不动,那么这两种方案我们来比较一下,哪一个 我们觉得可以更安全,或者说我们觉得更可靠一点呢? 当然我们从现在来看,保护整所房子 首先成本就很高,对吧,我们要做的事情也非常的多 比如说我们有很多东西要去处理,你首先要保护这个房子 不如老鼠进来,那么可能,比如说你的窗户是不是关好了 你的这个下水道有一些可以让老鼠进来的一些机会,对吧? 等等这些很多因素都要进行处理,有一个地方遗漏的话,那可能老鼠就会钻空子进来 另外就是我们可能没有办法去在 没有办法去处理所有应该封锁的洞口 就是说我不知道我的房子里面还有哪些地方没有处理到,没有处理到,比如说空调的一个 洞口,对吧,那么可能老鼠它也可以钻进来,那你可能当时做考虑的时候并没有考虑到 第三个问题就是说,在你确定 封锁洞口之前,或者确定解决方案之前,可能老鼠已经进来了 这个时候呢其实你做这些封锁的 这个方法对老鼠已经没有意义了,没有意义了 所以这种方案我们就是说它是不是太可行,对吧,不太可行 那么针对这种方案其实我们是跟什么样的一些安全做比较呢?其实 主要是现在目前很好行业里面做安全可能主要做的是应用程序的安全 那么应用程序在一个计算机系统里面,它主要去做应用程序的安全 那么我们知道应用程序是越来越多,我们不可能把所有 我们不可能保证每一个应用程序它都是安全的,就跟我们不能够保证 所有的洞口你都封好了,对吧,都封好了 那么第二种方案呢,就是将甜点放入这个金属盒子里面 金属盒子里,那放到金属盒子里,我们认为这个方案它其实抓住了这个问题的一个本质 那么我们为什么要去觉得这个方案是比较可靠的呢?首先我们要相信这个盒子是金属的,对吧 它是金属的,它是很牢固的,就牢固到这个老鼠是啃不破,进不来的 另外第二,第三呢我们就觉得这个甜点现在 用这样一个盒子装住以后,不用担心老鼠会进入这个房子,进入房子,也就是说 你装在盒子里,老鼠即使进入房子,我也不用担心了,因为我的这个甜点保护好了,对吧,- 保护好了 就相当于我们在做这个计算机系统安全的时候,如果我们能够把这个操作系统这块环节做好 因为所有的资源都是由操作系统来管理的,所以的话呢,即使你通过应用程序进入到 你的平台,但是他拿不到你的核心资源,他也没有办法去达到真正的破坏目的 所以我们认为这个保护才是真正值得信赖的 总结一下,就是关于这个操作系统安全它的重要性,其实在很早的时候 这个美国的安全局,就是NSA,我们说National Security Agency 曾经就是做了一个这样的一个报告,在它的这个报告里面曾经提到,就是 之前大家在做安全的时候,可能更多的考虑的是应用层的安全 而且做了一个基本假设是底层的操作系统是安全的 这篇报告指出,就是说认为底层操作系统是安全的这个假设是不成立的,而且是完全 不可靠的,因为这就好比你在沙滩上建一个城堡一样 你对一个沙滩信赖 认为这个城堡很牢固,是不可以,不现实的,只有这个 你建立在一个坚实的基石之上,然后这个房子才是可靠的,就相当于我们的操作系统 应该是一个,不是沙子,而应该是一个牢固的这样的一个基石,基石 这是我们所说的这个操作系统安全,那么在早些年的时候有这样一个 概念。 呃,这是我们 所说的这个操作系统安全的这个重要性的一些解释
1.4 安全与可信的区别
[音乐] [音乐] 那么接下来我们来看一下 到底怎么样来定义一个安全系统,对吧?安全系统到底是什么呢? 我们先简单地给一个定义。 我们先来看一下,安全系统是这样一个系统, 它是,这是在美国一个这个 Bishop 他在他的一个书里面 曾经给出的一个定义,这个定义是这样的,他说安全系统是这样一个系统, 第一,它必须满足它是从一个授权状态,或者说安全状态开始。 第二呢,就是它必须是它在执行任何 操作的时候都不会进入一个未授权状态,或者说我们叫非安全状态。 这就是我们所说的这个安全系统 的一个定义。 那么我们来看个例子,假设有这样一个系统, 这个系统呢它有四个状态 S1,S2,S3 和 S4,那么 S1 和 S2 呢假设是一个安全状态, S3 和 S4 呢假设是两个这个非安全状态。 系统呢有五个操作,t1,t2,t3,t4,t5 对吧? 那么我们看,而且这个状态图已经描述了这个几个状态之间通过这些操作之间的转换 转换过程。 大家看这个系统是不是一个安全系统呢?按照刚才所说的这个安全系统的定义。 OK,其实这个系统 大家也都看出来了,它不是一个,按照这个定义来讲,它不是一个安全系统。 因为我们都看到,从 S1 到 S3, 这里面有一个操作是 t3,这个 t3 操作会导致它从一个 安全状态进入一个非安全状态。 最后我们来 解释一下安全和可信这两个词,这两个词。 因为在安全领域里面,大家会经常会提 有的同学,有的人会提说是这个系统是一个安全系统,有的人说这是一个可信系统。 那么这两个词是矛盾的吗?还是不同?我们其实在这里来比较一下。 其实安全这个词呢它 我们一般说一个系统是否安全,我们通常会说 这个系统安全吗?YES or NO,对吧?是两个答案。 那么对于可信来讲,其实我们说这个系统是可信的吗? 其实不会,我会说可信等级,你是第几,第几级的可信? 就是相当于大家交朋友,你会有很多种朋友,有普通朋友,有 闺蜜,还会有一些其他更亲密的一些亲友这样一些关系,对吧? 所以的话呢,对于朋友这样一个信任,你是会有等级划分的。 所以我们说安全通常它是有两个取值,YES 或 NO。 但是可信呢通常我们会有一个分级的概念。 再有就是安全呢,它会 它通常是一些产品的提供方,他宣称这个东西是安全的。 可信的话呢,一般是我拿到一个产品的时候 我说这个东西对我来讲,可靠不可靠,安全不安全,可信不可信,对吧? 是站在一个接收方的角度来看的。 另外就是关于安全,它是 安不安全,一般宣称者会说,OK,我这个系统加了某某安全机制,提供了什么样 的一些安全措施,所以我的产品是安全的,他会说我有这样一些安全功能或者一些安全属性。 那么对于可信来讲,就是说你说你有,我接收者拿到这个产品,你说是可信的, 那好,那你把证据给我,你提供什么证据给我,我才认为它是可信的,对吧? 当然最后我们来看一下,就是安全,一般我们说它是一个相对的一个概念。 我们说这个系统是安全的,一般说是相对而言的,一定是基于某些假设它是安全的。 那么可信的话,它是,OK 我们说错了啊,这个安全应该是,对于这边来讲,对于我们这边比较来讲,它一个是绝对- 的概念。 对于可信来讲,一般我们说是一个相对的一个概念,对吧? 那么安全的话呢,当然是我们做计算机系统来讲的一个 终极目标,但是呢我们说这个系统它是不是安全,没有办法评价。 我们只能说它的可信等级达到哪个级别, 所以它呢,我们说这个可信才是我们所期望的一个属性。 这就是我们所说的这个安全和可信的一个比较。 当然可信呢,我们知道它有三个主要的概念,主要概念, 比如说我们要使一个系统达到一个可信的一个等级,通常我们要在系统里面去做三件事情。 第一件事情呢,就是要去制定相应的安全策略。 这个策略呢要在系统里面进行实施,这是我们要做的第一件事情。 第二件事情呢,就是这个策略,你在系统里面要具体实施 的时候,那么一定要采取各种各样的一些措施和相关的一些机制。 所以对应策略的那些实施机制和 措施,那么这个是我们要做的第二件事情。 第三事情呢就是说我不是说我实施了这个 措施和机制以后,我的系统就是安全的,那么你还要去做一些评估,要评估,就是说看看你这些 机制实施了以后有没有达到我的策略需求,是不是真的有效果,对吧? 能不能有效地去防护你所不希望达到的那些问题, 能不能达到你最初的这个安全目的,这个就是我们所说的这个安全和可信的一个比较。 最后我们小结一下,就是在 刚才我们这一节课其实主要讲了几个问题,第一个 就是我们所说的安全性是什么,对吧?它涉及到法律,人身安全 信息资产保护这样的一些。 另外我们也提到了这个 计算机系统面临的一些这个安全威胁有哪些。 另外还提到了这个攻击形式有哪些。 当然我们说的这个计算机系统 安全我们经常是包括两部分,一个是计算机本身的安全,还有一个是网络安全。 当然我们还重点强调了一下,这个在整个计算机 系统安全里面非常重要的就是我们的操作系统需要是安全的。 所以我们最后区分的是安全和可信的概念。 好,这堂课就到这,谢谢。
1.5 安全操作系统的国内外研发现状
[音乐] [音乐] 同学们好 我们今天介绍一下这个安全操作系统的国内外技术现状 从60年代开始,美国等发达国家已经开始了这样的安全操作 系统的研究,那么到70年代的时候呢,其实美国等国家已经开发出来了一些实用的安全- 操作系统 到80年代的时候呢,美国因为有了长期的一些实践 所以他们开始已经推出了一个标准,是TCSEC这样一个标准 那么后续有很多这样的一些单位,尤其是美国和欧洲一些国家 他们陆续开始参照这个标准,研究了这个 标准里面要求达到这样等级的一些系统 那么2001年到现在,美国和欧盟的一些国家呢推出了一个新的标准 CC,那么现在大部分的计算机系统都是按照这个CC标准来评估了 那么美国他们在七八十年代研发了一些这个安全的 系统,由于它对达到B1级以上的这样的安全操作系统进行了严格的出口限制 所以我们国内在相关研究的时候呢,有很多这样的一些关键技术的资料拿不到 所以在,尤其是很多技术细节,我们没有办法见到 所以对我们国内来开展相关的研究,带来了一些困难 后面是我们90年代之后,找到的一些资源 所以我们来介绍一下国外关于这些系统一些研究现状 第一个系统就是关于这个Multics系统,Multics系统是1965年的时候由 美国的贝尔实验室和这个麻省理工MIT,他们一起研究了这样一个项目 那么这个项目呢其实早期的时候,我们知道那个时候只是一个大型的 一个计算机系统,所以会存在多个用户要求共享一个计算机的情况 那么在这个时候就开始研究如何让不同的用户 之间能够共享一个资源,但是呢他们之间呢又能够相互隔离 当然了,在一个系统里面怎么样区分用户,就是用户的鉴别 还有就是在这个系统的管理里面有个超级用户,那么超级用户如何进行保护 还有就是在这个计算机系统里面有一些共享的资源,那么要防止被人写,所以关于写的保护 也在那个时候也提出来了。 那么这个项目最后结果虽然不理想 但是它确实是走出了这个做安全操作系统研究的重要的一步 另外值得一提的就是在1972年的时候 J.P.Anderson他们写了一份研究报告 在这份研究报告里面引入了在安全领域里面非常重要的一些概念 比如说这个引用监控器,英文叫reference monitor 还有一个是关于这个安全建模的思想 这都是在后续的这个安全系统建立过程当中非常重要的一些概念,我们在后面也会讲到 此外呢美国在很多的这样的一些项目里面,包括这个PSOS KSOS,还有LOCK等系统的一些研究过程当中 都是在尝试如何去研发一些达到这个TCSEC的 B1、 B2和B3,甚至A1的这样的一个安全操作系统 等级,突破里面的一些关键技术,尤其是如何去验证 一个操作系统是安全的,这个方面。 那么在这些 项目的研究过程当中,特别值得一提的就是这个XENIX系统 这个XENIX系统是IBM公司在86年的时候 开始研发的,那么它在92年的时候 通过了这个产品的评估,达到了这个B2级 那么在94年的时候呢,它扩展了一部分 B3级的功能,那么被评估为B2+这样一个等级 那么这就是目前我们可以看到的一个叫Trusted XENIX的安全的一个产品 另外陆续后面美国他们也开展了一些关于分布式的这个微内核操作系统一些研究 比如说这个Mach,TMach,还有这个 DTMach这样的一些系统的研究,以及后续的这个DTOS的一些 安全操作系统,在这个系统研究里面都研究了如何建立安全 的体系结构,如何对这个安全的操作系统进行形式化的规范和形式化的验证,这样一些技术 TUNIS这个操作系统是加拿大大学在1989的时候研究的 那么这个系统当时他们是对整个UNIX内核进行 了重新实现,用了一种新的语言,叫Turing Plus这样一个语言 而且他在整个研究过程当中,他得出了这样一个结论 他们指出:如果不进行一个,对现有操作系统的这个系统结构进行重新设计的话 很难开发出一个高于TCSEC标准B2级的这样一个安全操作系统 一方面是因为这个编写这个操作系统的语言C语言是一个非安全的语言 另一方面呢是因为这个UNIX内核本身它的模块化程度不够 另外我们最后再特别指出的一个就是,关于这个SELinux这样一个项目吧,它还不算是- 一个操作系统 那么SELinux这个项目是美国的安全局在2001年 的时候开放的项目,就是在网上它有开放的资源 有开放的源码,开放的文档,大家都可以从那边去获取 那么这个项目最早它开放的目的是为了告诉大家如何在Linux里面去实施 这种强制的防控策略,同时呢它也提供了一个比较好的一个FLASK体系结构的一个实现方法 以及在这个项目里面给出了RBAC 还有这个TE策略和这个多级安全策略,这多个策略一个组合实现的一个方法 这也是后续很多做安全 做安全系统或安全操作系统、 安全数据库,值得借鉴的一个实例,一个实例 但目前这个SELinux系统已经是作为Linux内核的一个默认模块 被装载在系统里面,也作为我们安卓手机上的 这个操作系统,现在作为安全增强的一个模块也放在了里面 这是关于国外的情况,下面我们看一下我们国内 国内是在1990年之后,开始研究安全系统,安全操作系统 那么我们国家是在,参照的主要是TCSEC TCSEC,我们国家定义了一个,我们国家也有一个参照标准,叫GB17859 对应这个TCSEC的一些等级,我们国内 比如说这个TCSEC的B1级,对应国标的17859第三级 B2级呢对应的是GB17859的第四级,第四级 我们国家主要是在这个第三级和第四级的安全操作系统研究过程当中 进行了一些探索研究还有一些实践。 相关的单位呢涉及到一些军方的 单位,还有一些科研机构,还有一些高校。 比如说我们这里看到了海军计算技术研究所 还有这个中科院的软件所,还有中科院的计算所 大学的话包括这个,比如说浙大、 南大,还有国防科大 那么这里我们在当时 就是我们的团队主要是在中国科学院的软件所做了这个安胜的安全操作系统 这也是我们这个课程里面为大家将来做演示 还有帮助大家去理解这个一些技术的一个 原型系统。 这一节我们重点介绍的主要内容,概括一下 我们首先介绍了美国等发达国家从事安全操作系统研究是从1965年以来就开始了 那么标准是在1985年以后由美国 提出了一个TCSEC标准,那么在2001 年之后呢推出了这个CC标准 那么我们国家是在1990年之后,陆续开展了 参照TCSEC以及对应的国标开展的一些相关的 技术的研究与实践。 谢谢!
1.6 美国TCSEC标准与可信评估登记
[音乐] [音乐] 同学们好,今天我们介绍国内外的相关标准。 计算机系统安全里面非常重要的几个标准呢,我们今天主要会介绍到这四个标准。 一个是 TCSEC,就是可信计算机系统标准, 还有一个 ITSEC,这是欧洲的一个标准,还有 FC 是美国的另外一个跟计算机系统安全相关的标准, 再有一个就是 CC,我们会主要是提及到这四个标准。 但是我们重点介绍的呢是 TCSEC 和 CC。 先来看一下 TCSEC,其实 TCSEC 呢是 1985 年的时候由美国国防部所推出的第一个 可信计算机系统的一个评测标准,那么这个标准呢其实当时推出的时候 它是封皮是橘色的,所以这个标准当时也被称为是橘皮书。 所以提到橘皮书,当然跟这个 TCSEC 就对应起来。 那么 我们知道这个标准,我们这里的题目叫彩虹系列,那么为什么叫彩虹系列? 是因为美国在推出这个标准之后,陆续又推出了一套,对这个标准相关的一些 参考的一些手册,那么这些手册对标准里面涉及到的一些 概念、 技术那么做了进一步的解释,或者提供了一些参考的方法。 那么每一本书的这个书皮的颜色不同, 红黄蓝绿都有,所以的话整个这一套丛书加上这个标准,我们统称为彩虹系列。 那么所有的这些丛书呢都可以从国外的一些网站上可以下到, 这是我们提供的一个链接,同学们可以从那里去下到。 那么这一套丛书其实对整个这个计算机系统安全领域来讲,是一个非常重要的一个里程碑。 因为在这一套丛书里面,它给出了计算机系统安全的很多的一些概念, 也给出了相关的一些技术的一些实现方法还有这个建议。 所以彩虹系列的意义在于它是信息系统安全里面的一个里程碑,里程碑意义。 也建立了一套,一个标准和一套体系, 提出的基本概念原则和方法呢也被目前普遍地接受和使用。 它不光是在我们这个课程里提到的这个操作系统或虚拟化软件会应用, 那么在所有的计算机系统的软件,包括这个操作系统、 数据库 应用程序、 网络组件,其实都可以用它来做评估。 所以它是信息安全领域里面非常重要的一个参考。 我们接下来看一下 TCSEC 对这个计算机系统 那么做了一个等级的划分,那么这个等级的划分它主要是分为 A,,B,C,D四大类 七个等级,我们可以看到这是 D 级,C1,C2 B1,B2,B3 和 A1,这样总共是 4 类 7 个等级。 那么我们从这张表里面可以看到这个 TCSEC 给出的评估等级 每一个级别跟另一个级别的一个差别,我们简单地介绍一下。 首先呢我们看一下 D,D 呢是一个没有评估的一个 产品,那么通常它的这个没有提供任何安全机制,或者安全机制没有 进行评估的话,那么就是归在了 D 级。 在 C 级以上的产品,我们看一下 C1。 C1 的话就是要实现这个自主的访问控制, 那么所以它叫自主访问控制级。 那么 C2 呢也要实现 自主访问控制,但是它要求达到的粒度是非常细的。 另外它要提供审计机制。 C 到 B 是 一个比较大的一个突破,那么 B 级开始要实施强制访问控制。 B1 级被称为这个标记型的这个安全保护级, 那么它的主要的一个区别跟 C 级就是要实施一个强制的访问控制, 那么以及为了实现强制访问控制要做的这个安全标记这一部分。 B2 级呢是比 B1 级要高一级的一个等级, 那么这个等级被称为这个结构化的保护级。 那么从名字上可以看出 它事实上对于这个安全功能的这个体系结构有一个很强的要求。 所以它要做到的几点,跟 B1 的不同就是第一个,要建立形式化的安全模型, 第二呢是要去建立一个面向安全的一个安全体系结构, 第三呢是要去做隐蔽存储通道的一个分析。 那么 B3 级是相当于是希望能够建立一个 引用监控器,就是后面我们会讲到一个很重要的一个概念,就是把这个安全内核做得足够小。 那么 A1 级呢事实上是对 B 级到 A 级的一个重要的一个区别。 就是 A 级要对整个这个操作系统内核的安全性要做一个形式化的规范, 甚至要做形式化的一个验证,这个难度是比较高的。 这张图其实展示的是,在 1984 年 到 2000 年期间通过 TCSEC 评估的一些系统或者是产品。 从这张图大家可以看出,这个大部分的产品是集中在 C2 和 B1 级。 那么很少的产品会,可以达到 B2,B3,甚至达到 A1 级。 其实要达到这个 B2,B3 和 A1 级,那么有很多关键的技术需要突破。 这张表,其实同学们可以看到,这是 TCSEC 已经评估过的一些产品。 从这张表里我们可以看到 TCSEC 不光可以适用于 操作系统的评估,也可以适用于网络组件和可信应用程序的组件的评估。 我们可以从这个表里看到大家熟悉的一些操作系统, 比如说 WindowsNT,对吧,还有我们的这个前面提到过 Trusted XENIX 这个产品 它们有的是达到了 C2 级,有的是达到了 B2 级。 那么在应用程序这一块呢,有一些这个 Oracle 的一些产品,还有微软的一些 SQL 的 Server 的一些产品。 这是应用层的一些产品,它们达到了这个 C2 或者是 B1,这就是我们这节课主要讲的内容。 好,谢谢。
1.7 欧盟ITSEC标准与CC标准的产生
[音乐] [音乐] 同学们好,今天我们介绍一下 ITSEC 这个标准。 ITSEC 是 1990 年的时候由这个 法国、 德国、 荷兰和英联邦多个国家,欧盟国家发布的一个标准, 也是关于这个信息技术安全评估的一个标准。 那么这个标准在 1991 年 6 月的时候 由欧共体发布了 1.2 版本。 这个标准为什么我们在这里要重点提呢? 因为它主要是为后面的这个 CC 也提供了非常重要的一个基础。 那么它的很重要的一个,跟 TCSEC 的一个不同就在于 它要求每一次评估的时候,必须通过广泛的这个功能性测试和渗透测试方法 对这个 IT 的安全属性进行详细的一个检查。 在 ITSEC 这个标准里面,它首次 给出了这个安全性的三个含义,就是所谓的保密性 完整性,还有这个可用性的概念。 另外在这里面,它首次给出了 ST,就是所谓的安全目标的概念。 这也是后面 CC 里面非常重要的一个概念。 对于安全性 要求,它把这个 TCSEC 可能更侧重这个功能性要求, 那么 ITSEC 呢其实是把安全性要求分成了这个功能和保证两个部分。 就是说有一部分是功能性的要求,比如说为了满足安全需求 这个系统必须采取的一些安全技术措施。 关于保证要求 就是为了保证这个功能,就是前面的这些功能的正确实现和有效性, 那么我们必须提供一些措施,比如说前面提到的安全渗透性的测试 或者安全的脆弱性分析。 所以在 ITSEC 里面,它最后评估的 时候呢,其实是分别用了两个评估的这个要求。 一个是安全功能的一个等级划分,它从 F1 划分到 F10, 另外一个是安全保证的一个等级划分,从 E0 到 E6。 下面我们看一下 ITSEC 从这个评估 者和被评估者的角度,它们都要做些什么事情。 从这个被评估者来讲,也就是说这里提到的 sponsor 的这个角度, 它在提交评估方之前需要对它自己 生产的这个产品或者系统确定它的安全目标。 在它的这个安全目标里面要明确地给出这个系统实施的安全策略,或者是原则, 以及这个系统里面的安全功能的规范是什么,和这个系统里面实施的安全机制是什么, 以及它的机制的强度如何, 以及它最后希望这个产品评估达到,从功能的角度要评估哪个级别, 从这个安全保证的角度来讲它要达到哪个级别,都要明确地声明。 那么从 评估者的角度来讲,ITSEC 的评估方,它用 ITSEC 去评估一个产品 它跟 TCSEC 不同的是,它的评估者可以是一个商业机构。 前面我们提到的 TCSEC 是美国国防部的一个标准, 所以他们所有的产品要去评估的话,都要通过国家指定的一些权威机构才可以进行评估。 那么 ITSEC 其实是可以通过一些商业机构来进行评估的。 那么评估者在评估一个产品的时候,它要做出的一些判定是什么呢? 首先就是刚才这个发起者所声称的那些安全功能是否恰当地实现了。 第二,就是关于它所声称的这些功能是否能够有效地 实现,或者它有效地去阻止它所声称的那些安全问题。 当然了,它还要去分析这个系统,在实施这些安全性 之后,是否还有脆弱性。 那么主要是通过渗透测试或其他方法 去找这个系统是否仍然还有脆弱点。 当然,它还要评估这个系统的可用性, 还有系统的这个当前这些实施的安全机制的一些强度等等。 上一次课所讲到的 TCSEC标准,还有这次课所提到的 ITSEC 标准, 那么美国和欧洲这个六国七方他们在 1996 年的时候 共同商议,那么提出了一个新的这个通用的 安全评估准则,叫 CC,叫 Common Criteria for IT Security Evalution,那么这个标准其实是 在提出之后呢被欧美认可。 在 1999 年的时候又推向了国际标准组织,那么形成了一个国际标准, 国际标准的名字呢就是 ISO/IEC 15408。 那么 CC 标准在整个的安全评估 产品里面,它主要是通过提供一组通用的要求 使得各种这样的安全产品呢,通过评估的产品它的结果具有可比性。 另外呢,它在评估的过程当中为了满足一些产品和系统的这个安全功能需求, 它要帮它确定一个可信的一个级别。 同时评估的结果呢,它还会 告诉这个用户,就是这个产品有一些什么样的 隐含的一些安全风险。 那么用户在选择产品的时候可以 根据自己的容忍度来决定是否选择适当的一个产品。 当然所有的标准都会有它的目标读者,同样,对 TCSEC 也好,对于这个 ITSEC 也好,它们的目标读者都应该是三个。 CC 也如此,CC 的目标读者也有三个,一种 用户是普通的我们的用户,它是来定义它的安全需求的。 第二种呢就是我们这个产品的开发者,它是来描述产品的安全能力的。 还有一个就是我们的这个产品的评估者,它主要是来度量这个产品的可信程度的。 好,同学们,这次课就讲到这,谢谢。
1.8 国际CC标准的主要内容及其应用
【音乐】 【音乐】 同学们好,今天我们接着讲 CC 标准。 前面的课程里面我们提到我们 TCSEC、 ATSEC, 也简单地提到了这个 CC 它是由怎么样产生的。 那么这次课呢我们将重点介绍一下 CC 标准到底 包含了哪些内容。 那么 CC 呢事实上主要分为三个部分, 第一个部分呢其实介绍的是简介和它的一般通用模型。 第二部分呢事实上是它的安全功能需求,第三部分呢是关于它的安全保证需求。 在 CC 里面呢,它有一些相关的一些概念。 下面我们介绍一下 CC 里面的一些关键概念。 第一个就是关于 TOE,就是我们所说的评估的对象。 那么评估对象其实就是我们的所要拿去评估的那个产品。 那么比如说我们的操作系统,比如说我们的数据库,或者是我们的一个网络组件。 这就是我们的评估对象。 那么保护轮廓呢其实可以被理解成用户的安全需求, 当然这个需求其实是与实现无关的一些安全需求。 由用户来定义的,那么在 CC 里面要求给出一个明确的一个 PP 的一个文档。 PP 的文档这里简单说一下,就是说 PP 文档其实是可以 因为它是针对一类产品,比如说所有的,不管是 Windows 的还是苹果的这样的操作系统, 只要是操作系统,其实都可以定义同一类的这样的 PP,就是所谓的 保护轮廓。 目前有很多一些产品其实有已经比较标准化的一些 PP。 比如说你有了,目前有防火墙的 PP, 有这个入侵检测的 IDS 的这个 PP,所以如果一个 公司想去开发这样的产品,其实是可以去直接拿到这种标准的 PP 过来,在这个 PP 基础之上去做自己的 PP,然后开发出相关的一些产品。 第三个概念就是安全目标,我们叫 Security Target。 那么安全目标呢其实是跟前面的 PP 不同的地方是,它是作为一个既定的 TOE 的 评估基础所给出的一组安全要求和规范。 比如说前面说的这个 PP 是针对一组 这样的一个评估对象,那么 ST 呢 主要是针对的是某一个既定的一个 TOE,就是一种特定的 TOE 那么它给出的一种安全要求和规范。 TSP 是什么呢? TSP 是 评估对象的安全策略,事实上就是我们对这个 TOE 这个评估对象 所定义的一组安全保护的规则。 那么 TSF 指的是必需使用的这个 TOE 的硬件、 软件、 固件的一个集合。 另外在 CC 里面它是对所有的功能还有保证要求, 安全功能和安全保证要求都是按照这个类 子类还有组件的这种划分方法来进行定义的。 所以的话, 在写 PP,或者在写 ST 的时候,事实上是从这些定义的 类或者子类里面去挑选它合适的组件来写 PP 或 ST。 下面我们看一下这几个概念之间的一个关系。 PP 其实是一类,是用户想要的一种东西,它是一类产品的一个安全需求。 那么 ST 呢是厂商实际声称他所提供的一个东西,就是一个很具体的一个产品。 那么 TOE 呢事实上就是这个 做出来的这个产品,就是已经是一个评估对象,记住这三个概念的关系。 下面我们说一下这个 CC 里面提到的这个 三个部分,就是 Part 1, Part 2, Part 3 这三部分 分别包含了什么内容。 CC 的第一部分重点是一个简介和一般性模型的介绍。 它主要是给出了这个 CC 标准的一个范围, 以及相关的术语,以及一些缩略语的一些介绍。 另外呢,它还附上了前面所提到的这个 PP 和 ST。 的一个规范,比如说告诉用户或者 三个读者到底应该怎么样去写一个 PP 和怎么样去写一个 ST。 这是一个关于 PP 的一个框架,就是说在 CC 的标准里面,它是给出了 用户如果要去写一个 PP,它应该包含哪几部分内容,每一部分内容是什么含义。 所以我们从这一张表里面可以看出,它包含了 7 大部分内容。 第一部分是对这个 PP 的一个引言,相当于它要简单说明一下这个 PP 主要是针对的,做这个 PP 的一个基本的一个概述。 第二呢,是要描述一下这个 PP 针对的这个评估对象是什么。 第三呢,要说明这个评估对象所处的这个安全环境,重点是要描述一下 它所做的一些基本假设,还有在这个环境下的一些面临的安全威胁是什么, 以及它希望制定的安全策略是什么。 第四个呢是关于安全目的,安全目的事实上就是要说明 在技术上,非技术上的角度上来考虑,我这个评估对象它的安全目标是什么, 还有环境的安全目标是什么。 第五部分其实是要 描述这个评估对象的,其实就是要从 CC 的这个 第二本书里面去找我这个产品希望有满足,需要用到哪些安全组件。 包括安全功能组件和安全保证组件。 那么第六部分 就是要解释一下第五部分所选择的这些功能组件和保证组件, 或者说安全功能需求和安全保证需求跟它的那个目标的 一致性。 这是 CC 的里面关于 PP 的一个规范。 当然了,还有一个关于 ST 的规范,那么 ST 我们前面 说过了,它其实是一个既定的目标产品。 所以它相当于是 PP 的一个特例。 所以既然是一个 特例的话,它应该是 PP 的一个具体化的描述的一个文档。 那么对于这个文档,它跟 ST 的区别就在于增加了 第7部分,这第7部分主要是它要对既定的 ST 对 PP 要做哪些扩展,要做哪些删减,它要做一些说明。 第二部分是关于这个安全功能要求。 那么安全功能安全在 CC 的书里面也是按前面说的这个类,子类和 组件的方法来做划分的。 那么重点列出了这样一些类, 这些类里面包括了跟整个计算机系统安全相关的各个部分。 比如说包含了这个审计部分,还有通信安全的部分, 密码支持的部分,以及这个用户数据的保护,还有用户的鉴别, 安全的管理等等。 这个我们会在后面的课程里面陆续会帮大家去诠释。 那么安全功能的要求其实主要目的就是要去保证 我们的这个 ST 能够去 正确地实现安全功能,另一方面呢要让这个功能有效 第三部分,就是 CC 的部分,Part 3,它主要是给出了安全保证的要求。 那么安全保证的要求呢主要是从这样一些角度,从整个的,除了开发, 和这个指导性的文档,还有这个生命周期支持之外, 还包括了测试、 脆弱性评定以及配置管理,还有分发和 操作,各个环节都要去考虑如何保证它的安全功能的有效性。 那么安全保证要求在这个 CC 的标准里面被分为 7 个等级。 这 7 个等级呢就是 EAL1 到 EAL7,每一个等级 它们的这个要求是不一样的,我们来看一下这张表。 这张表里面其实是列出来了在 CC 的这个第三本,第三部分里面所 列出的保证类有哪些,前面我们提到过。 保证子类有哪些,这是一个英文的缩写,从这个 名字上大家,我们举个例子,比如说 ACM 的类,其实是关于配置管理这一部分的。 那么对于配置管理这一部分,它又细分为,就是 自动化的一个子类,还有这个能力子类和范围子类。 那么通过这张图,在 CC 的这个第三部分里面, 它明确地给出了一个安全产品想要评估 EAL1 到 EAL7 这7个等级,它必须在刚才所列出来的 这几个,几大类里面必须满足的这样的一个安全要求。 这张图其实列出了 CC 标注的这个 EAL1 到 EAL7 的一些安全保证的一些要求。 大家可以看到图上呢有一些这样的数字,比如说对于这个 配置管理的自动化这一部分,它的数字呢有一个 1 和 2, 那么 1 其实 代表的是对于配置管理要求实现两个要求,第一种要求是部分自动化, 第二种要求是完全自动化,显然,如果这个保证级别要求达到越高, 这个完全自动化的能力它要求越高,对吧?所以我们从这里可以看到,从 EAL1 到 EAL7, 它对于每一个子类的这个要求会是一个递增的,会是一个递增的。 按照 CC 的标准来评估一个产品,其实我们就是要 按这样整个评估过程应该是在这张图上显示的非常清楚 就说首先我们要有一个安全要求,就说你要建立一个 PP 和一个 ST 那么基于 PP 和 ST 呢,我们要去开发一个 TOE,就评估对象的产品 那么这个 TOE,以及跟这个 TOE 开发厂商提供的这个证据 一起交给这个第三方,那么第三方呢去评估,这个 TOE 的产品,是否达到了它的这个期望的那个结果 那么当然在评估的过程当中,要采用一些评估的准则,评估的方法学还有一些评估的体制 这就是 TOE 的评估过程。 最后我们介绍一下就是 CC 标准和前面我们介绍过的 TCSEC 和 ITSEC 一张比对的图 这张图呢其实是想描述一下这个 CC 标准和 TCSEC 和 ITSEC 之间这些划分等级之间的一个对应关系,我们举个例子大家可以看到 TCSEC 的 B1 级,就是我们说强制防护,实施强制策略的这一级 它实际上可以对应到 CC 的 EAL4,其实也对应了这个 ITSEC 的 E3 其实同学可以从这张表里面发现,CC 和 ITSEC 的这个等级划分对应性是很强的 这张图呢,其实说明了是通过了 CC 标准 评估的操作系统的,那么大家在这张表里可以看到 像这个 SuSE 的 Linux 操作系统它是达到了 EAL2 然后红帽子的这个 Linux3 也是 EAL2 还有一些产品已经达到了 EAL 的 4 和 EAL的 3 虚拟化的软件也获得过这个 CC 的这个认证 比如说这个微软的 Hyper-V 已经获得了 CC 的 EAL4+ 的认证 VMWare 的这个 vSphere 5.0 也获得了这个 EAL4+ 的认证 那么 Citrix 的这个 XenServer 也获得了这个 CC 的 EAL2+ 的认证 最后我们再介绍,概括一下我们 这一节,就是关于这个国内外相关标准这一部分的 发布和现状,从这张图其实我们主要看三部分啊 一部分是关于这个,有三个阶段,第一个阶段是关于这个渗透和 打补丁的阶段,第二个阶段应该是 TCSEC 产品开发的阶段 第三个阶段,应该是我们说 CC 的标准的一个阶段 比如说最早其实有点类似于 Windows,大家知道 Windows 每周甚至每天都在打补丁,对吧? 这个其实就是说我们要去找系统的漏洞,然后去打补丁 这是第一个阶段。 第二个阶段呢,是我在系统开发的时候就要去开发一个安全的系统,所以遵照 TCSEC 那么现在呢大家都统一用 CC,所以以后的产品都是用 CC 来做评估 我们国家的这个安全标准的发布情况 其实主要也是参照国际上的 TCSEC 和 CC 所推出的 比如说我们国家推出的这个国标 17859-1999 其实对应的就是 TCSEC 另外呢,我们国家推出的一个国标 T 18336 对应的呢其实就是 CC。 此外呢,我们公安部也推出了一些 专门针对操作系统的一些标准,安全操作系统标准,那么其实也是从 TCSEC 和 CC 参照推出的。 好,我们小结一下,在这个 相关标准这一部分,我们主要是介绍了三个标准,一个是 TCSEC 一个是 ITSEC,还有一个是 CC,那么现在 CC 已经 成为计算机领域里面,用来评估计算机系统软件 还有计算机系统所有层级软件的一个非常重要的一个评估准则 这是我们这一堂课希望同学们课后去完成的一个作业 主要是一些基本的概念和几个标准等级的一个比较,希望同学们课后能够去认真完成 好,这节课就到这,谢谢!

爱时:诗和远方
不爱:尸和警方
爱时:长相厮守
不爱:藏箱尸首
爱时:天天腻在一块
不爱:东一块西一块
爱时:亲亲抱抱举高高
不爱:砍砍剁剁装包包

买双开门冰箱,冻最爱的人;
买最大的行李箱,拉最爱的人;
买挖掘机,挖最深的坟;
学解剖学,解心上人;
写上林赋送心上人,读民法典告枕边人;
爱的时候衣服一件一件脱,不爱的时候一刀一刀戳。
爱的时候整天在一块,不爱的时候这一块那一块。
爱的时候都是诗和远方,不爱的时候就是尸和警方。
爱的时候长相厮守,不爱的时候藏箱尸首;
爱的时候眉目传情,不爱的时候坟墓传情。

世界名著《百年孤独》中的十句话道出了孤独的真谛

Ten Sentences in the World Masterpiece "One Hundred Years of Solitude" Reveal the True Meaning of Loneliness.

1.生命中真正重要的不是你遭遇了什么,而是你记住了哪些事,又是如何铭记的。

What really matters in life is not what happens to you, but what you remember and how you remember it.

2.一个幸福晚年的秘决不是别的,而是与孤寂签订一个体面的协定。

The secret of a happy old age is nothing else, but to make a decent agreement with loneliness.

3.生命从来不曾离开过孤独而独立存在。无论是我们出生、我们成长、我们相爱还是我们成功和失败,直到最后的最后,孤独犹如影子一样存在于生命一隅。

Life never exists on its own, but accompanied by loneliness. Whether we are born, we grow up, we fall in love or we succeed and fail, until the end, loneliness exists in a corner of life like a shadow.

4.别错过机会,人生比你想象中的要短。

Don't miss the chance, for life is shorter than you think.

5.所有人都显得很寂寞,用自己的方式想尽办法排遣寂寞,事实上仍是延续自己的寂寞。

Everyone seems very lonely, with their own way to find ways to escape loneliness;actually they still continue their own loneliness.

寂寞是造化对群居者的诅咒,孤独才是寂寞的唯一出口。

Loneliness is the curse of nature to those who live in groups, and solitude is the only way out of loneliness.

v2-2062da8197ef75587acfeab17e7e19b9_1440w-jpg

6.我去旅行,是因为我决定了要去,并不是因为对风景的兴趣。

I will go on a trip because I have decided to go, not because I am interested in the scenery.

7.人类最真实可触的便是孤独中的沉默。

The most real thing that human beings can touch is the silence in loneliness.

8.漂亮的脸孔是给别人看的,而有智慧的头脑才是给自己利用的。

A beautiful face is for others, but a wise mind is for oneself.

9.孤独是陪伴人一生的伙伴,是一个既定的事实,与其否认,与其抗争,与其无谓地逃避,不如接受它,拥挤的人群里让它保护你回家,周六的上午让它陪你吃早餐,整理阳光。

Loneliness is a lifelong companion, an established fact. Instead of denying it, fighting it, and avoiding it needlessly, you’d better accept it, let it protect you from going home in the crowd, and let it accompany you to breakfast on Saturday morning and tidy up the sunshine.

10.正因为当初对未来做了太多的憧憬,所以对现在的自己尤其失望。生命中曾经有过的所有灿烂,终究都需要用寂寞来偿还。

Just because you had so much vision for the future, You’re especially disappointed in yourself now. All the splendor that has ever been in life needs to be repaid with loneliness after all.

v2-3564d6750294733a6376c4ff667bfcaa_1440w-jpg

半生风雨半生寒 一杯浊酒敬流年
回首过往半生路 七分酸楚三分甜
岁月赠我两鬓霜 红尘赐我一身伤
尝遍人间千般苦 衰颜依旧笑夕阳

​相逢已是上上签,何须相思煮余年。
山鸟与鱼不同路,何须山水寄相思。
白首并非雪可替,风吹雪散故人离。
从此山水不相逢,陌路只当忆往年​。

相逢已是上上签 何须相思煮余年
即便此生不复见 相伴一程已心安