[音乐]
[音乐]
同学们好,上次课我们讲到了隐蔽通道的这个概念
和这个隐蔽通道的这个来源。
下面我们来介绍一下这个隐蔽通道的分类
也就是说隐蔽通道在计算机系统里面,在系统安全里面有哪两种类型,或者有一些什么样的类型
我们先从这个,就是隐蔽通道所利用的这个资源的角度来做一个划分
目前主要分为两大类,第一类呢叫隐蔽存储通道,第二类呢叫隐蔽定时通道
那么隐蔽存储通道其实它是主要 利用的是,就是一个发送方和这个接收方它们之间通讯所用的这个资源
主要是系统里面的一个存储资源。
那么通常情况下 就是一个发送方可以改变这个资源的一个状态或它的值
那么接收方呢可以观察到这个状态或者观察到这个值的变化 那么这种通道呢叫隐蔽存储通道。
那么还有一种呢是叫隐蔽定时通道 那么同样地话,这个用到的这个是一个时间的这个资源
那么也就是说发送方进程通过改变这个系统的一个 调节自己对这个系统时间的一个使用情况
可以影响到另一个进程,就是接收方进程对这个系统的一个响应时间
那么这样的话另一个进程可以通过观察自己对这个
事件的响应时间来决定是不是可以收到对方的某一种信息
那么这种呢其实叫隐蔽定时通道,它利用的是自己对时间的这样的一个
占用或者使用的时间的变化的观察来达到通讯的目的
下面我们举两个,一个存储通道和一个定时通道的例子
我们先看一下这个隐蔽存储通道的一个例子 这个例子呢是利用的在操作系统环节里面
有一个这个,大家知道在操作系统里面,每一个文件、 每一个目录 都会有一个
inode 的一个数据结构 那么 inode 数据结构里面会有一个唯一的一个标识
这个文件的唯一性的一个 inode 号 这个
inode 这个标识号在系统里面设计的时候每一个文件都是唯一的
但是它有个特点,什么样的特点呢?比如说我刚开始创建了一个文件 这个文件它的
inode 号是100,那么我马上,假设没有其他进程的创建新的文件的同时
我接着创建第二个文件,这个文件的 inode 号呢会分配101
再创建第二个,第三个,它会分配 102,103,就是这样一个线性增长的一个规律
当然了,这是一个特点,另外一个呢,就是说 所有的这个进程都可以去创建自己的文件
都可以改变这个 inode 的这个变化
那么同时呢,所有的进程,就是说都可以去查看 当前你所创建的这个文件的 inode
值 那么因为这样一个特点,其实也符合我们刚才所说的隐蔽存储通道这样的一个特点
所以的话,在系统里面,通过这个 state 这个系统调用可以观察到这个 inode
变化以后,我们可以构造这样一个隐蔽存储通道的场景 这个场景是怎么样构造的呢?就是说我们假设同步是可以做到的情况下
这个发送方想发送一个1给这个接收方,他怎么做呢?
他通过这个create这个系统调用,创建一个文件
那么如果他想对方向他发送0,他怎么办呢?他什么也不做,他不创建文件
那么接收方怎么知道他是向自己发送1或者0呢? 因为他是不能看到对方文件的这个inode值的,他只能看见自己的,所以
他的做法是什么呢?他也自己也在这个对方发送1之前先创建一个文件 他记录下来自己当前这个文件的inode值
那么在对方改变了他的这个创建了一个新文件之后,他再接着创建第二个文件的时候
大家注意,这个中间他的第一个文件,和发送方的一个文件,以及他再建的这个文件三者之间
其实是相差了两个inode值的,所以的话,在这种情况下,他可以
判定对方是在他它发送1,假设对方没有,是发送的0,他没有创建文件的情况下
他前后创建两个文件的inode值应该是只相差1 那么它通过这个值来判定对方是发送的0
那么这就是我们所说的隐蔽存储通道的一种实例
第二个呢,我们看一下这个隐蔽定时通道的一个实例 它利用的是这个CPU的这个时间片
大家知道在这个早期的这个操作系统环境下,底层跑的是一个CPU的内核
那么这一个CPU内核是大家所共享的,所以的话呢会存在这样一种场景,什么样的
场景呢?就是发送方可以通过自己去占用这个CPU的这个调度时间
超过一个T的时间,让对方呢 在两次去请求这个CPU资源的时候
它可以计算出来自己请求得到CPU的时间的长度 来决定自己是接收的是1或者是0
因为它的标准就是说如果这个接收方 去请求这个CPU的资源,发现这个请求CPU的资源长于
T的时间,它认为对方在发送这个1 如果短于T的时间,它认为对方在发送0
那么发送方呢是通过调节自己去占有CPU的时间,去长于多少或短于多少
来影响这个接收方去判定它的接收1或者0这样一个时间
这是我们刚才所提到的一种分类的 方式,就是说在隐蔽通道的分类方法就是通过这个共享资源是存储资源
还是这个我们所说的定时的时间 资源来决定它的这个类型
接下来我们看一下另外一个分类方法,就是通过这个隐蔽通道
发送方和接收方之间大家知道,如果这个发信息的话 有的时候会受到其他进程的一些干扰
所以的话肯定会有一些噪音存在,比如说我发10个比特,对方只收到了
8个正确的,2个是错误的,那么这种其实是受到噪音的干扰 所以的话,我们说在这个隐蔽通道的分类里面还可以分为
噪音通道和无噪音通道,那么噪音通道就是指的这个会
受到这个其他进程的影响,使得它每次传收的这个正确率 不能够达到百分百。
那么无噪音通道呢其实指的 就是我的这个每一次发送对方都能够正确地接收
就是每一个字符它是对的,每一位都是对的 不会受到其他进程的动作的影响。
那么这种呢我们叫做无噪通道
另外呢,还有一种分法,就是从这个通道,就是说发送方和接收方之间进行通讯
会不会构成对系统的危害的角度上来分,叫无害通道和有害通道
那么同学们可能会说了,刚才不是说了嘛,隐蔽通道是指违背系统安全策略的通道才叫隐- 蔽通道嘛
是的,其实这个方法,划分的方法,我们所说的有害通道其实就是指的
在系统里面的我们要找的隐蔽通道。
那么无害 通道其实就是指的我们在系统,因为大家知道我们在隐蔽通道分析的时候
可能会把一些这个通道列在我们的一个 就是怀疑对象里面,但是列的这些通道里面
可能有一些不是,有一些是,所以我们要判定哪些是无害,哪些是有害 那么有害的才是我们要分析的。
所以这个划分其实 主要为了便于我们进行隐通道分析进行的一个分类
那么无害通道主要当然是指的我们在这个系统里面,安全策略 环境下所允许的一个正常通讯的渠道
那么这种通信呢其实它所利用的资源,或者它所通讯的这种机制
我们都是认为它是合法的,那么都应该排除在隐蔽通道分析之外
那么隐蔽通道有了这个分类呢,事实上我们的这个
标准,就是我们提到的这个TCSEC和CC,其实都对隐蔽通道的分析 做出了要求。
那么这种要求主要是针对我们前面的 隐蔽存储通道和隐蔽定时通道这种分类做的一个不同的要求
比如说我们看一下这个TCSEC,就是我们说的橘皮书 它对这个隐蔽通道的这个,就是分析的要求是不同的
比如说在B2级的这个标准里面,它对隐蔽通道 要求对隐蔽通道,只要求对隐蔽存储通道进行分析
并且呢还要对它进行带宽的估算 和,就是要确定它的最大的带宽是多少
那么在B3到A1级的这个 标准的要求,就是对隐蔽通道呢,要对隐蔽
通道,包括隐蔽存储通道和隐蔽定时通道要做彻底的分析
而且要去实测和估算它的这个每一个通道的这个最大带宽
这是这两个标准对这个隐蔽通道的要求是不同的 当然了,日本、
加拿大还有中国,其它的这个 国家对隐蔽通道的这个分析的要求 而是参照这个TCSEC。
那么CC呢对隐蔽通道的这个分析也有相关的一些要求
那么大家知道CC的这个要求是按照这个 不同的这个方法上来进行划分的。
它的分法是分为这个 就是专门在这个AVA_CCA这一个
组件里面进行了三个级别的一个划分 这三个级别的,就是
1,2,3,每一个级它是个,这个级别是递增的 就是要求是越来越高的,就是说
.1 这个级别里面,对隐蔽通道的分析呢
它只是要求做一个,就是采取一种,就是非系统化的一个方法,我只要搜索到就可以了 对吧?采取这种情况。
第二种呢,是系统化的隐蔽通道的分析方法, 去要求我们在隐蔽通道分析的时候,要构造出一些可以重用
可以系统化的,就是说可以用一些结构化或者是的方法来进行 可重复性的一些搜索。
比如说这个方法我用,你可以找到 那么B用户去用这个方法,他也可以找到
第三类呢叫彻底的隐蔽通道分析,它就要求用 所有的,就是对隐蔽通道分析的方法
都来进行分析和这个提供相关的一些证据
这是关于CC对隐蔽通道的分析呢,它分为了这三个 级别。
那么这个级别在EAL4里面是只要达到第一个级别就可以了 那么在EAL4和5只要
达到第一个级别,那么EAL6和7以上只要达到EAL2的级别。
那么 这个3的级别其实是很高的要求,所以事实上目前的标准里面并没有给出要求达到这个级别
下面我们就,因为隐蔽存储通道和隐蔽定时通道的分类 是目前分类里面非常重要的一个划分方法
所以我们对于隐蔽存储通道和隐蔽定时通道的这个判定的标准 我们来介绍一下。
这个判定的标准呢事实上是在 Kemmerer,就是美国的一个
这个领域的一个专家,他在早期的时候定的相关的一个 判定标准,比如说你在系统里面去分析这个隐蔽存储通道、
隐蔽定时通道的时候 那么应该去分析哪些部分?应该构造出什么东西,他给出了相关的 一些标准。
那么这个标准呢我们来看一下。
先看一下隐蔽存储通道的判定标准 他说,如果你要判定这个通道是不是隐蔽存储通道,其实你要去
检查它的四个条件,哪四个条件呢?第一个条件就是
发送方和接收方进程是不是可以去访问 共享资源的同一个属性,这是第一点。
第二点是 发送方进程能不能够去改变这个共享资源这个状态
那么第三个呢就是你要去判定这个接受方进程它能不能够去观察到
这个共享资源状态的变化。
那么有了这三条还不够,其实还有一个第四条 那么第四条其实指的就是发送方和接收方之间一定要有一个同步的机制
那么前面三条如果能够满足的情况下,你 只能认为这个通道是一个疑似的,或者说是一个潜在的隐蔽通道
只有在这四个条件同时满足的情况下,我们才说这个隐蔽通道是一个真实的隐蔽通道
所以这是我们所要求判定的这个四个条件
那么一个隐蔽通道根据这个 判别标准,其实我们是,在系统里面要构造一个三元组
这个三元组呢其实就是我们这里所看到的 就是说首先你要找出来这个共享资源
然后你要找出来对这个共享资源可以继续修改的这个发送方的这个操作 是什么。
另外还要找出来,就是说我 对这个资源可以观察它的变化的这个receiver的这个操作是什么
我们看一下这张图,这张图其实表达了这个构造隐蔽通道的必要条件
就是一个高安全级的一个发送方的进程
要利用一个共享资源向这个低安全级的这个接收方的进程发送信息
那么它要发送信息的话呢,就需要至少 高安全级的进程和低安全级的进程之间要构造一个同步机制
当然了,这个低安全级进程也要向这个接收方的进程要构造一个同步机制
那么只有这个条件都满足的情况下,我们才可以构造一个隐蔽存储通道
下面我们看一下这个隐蔽定时通道的这个判别标准
这个标准呢其实也是Kemmerer给出的,同样也 给出了四个条件,那么这四个条件里面非常重要的一个不同点
主要它利用的是一个时间参照,具体的这个四条我就不再念了,同学们可以仔细看一下
下面我们来看一下就是
隐蔽通道这个分析和标识的技术 在我们的整个这个信息安全领域里面主要包括哪些部分
其实我们要做一个隐蔽通道的分析,其实我们主要要按这样一个步骤来做
第一步呢就是我们要去找到隐蔽通道的这个 位置,那么也就是说我们找出这个资源
找出对这个资源可以改变和可以观察的这样的操作 第二个呢是我们要计算它的这个带宽,就是我们把系统里面的这些
隐蔽通道找出来之后,我们要确定一下这个不同的通道它们之间的通讯量到底是多大
第三呢是我们要去对这个相应的隐蔽通道做一些处理
可以根据这个带宽的不同的大小来决定这个隐蔽通道的处理方法
比如说有的这个通道它的带宽非常大
噪音也很小,那么这种情况下,对这样的隐蔽通道我们可能要采取消除的办法
那么对于有些通道呢,它的带宽可能很小,但是它噪音呢非常大
那么对于这种通道它的危害不大,所以我们对它的这个处理方法,比如说采取审计的方法就可以
当然了,比如说有些通道,它的带宽 可能不算特别小,但是呢它的噪音也有
那么这种情况下,我们可能要对它进行,比如说做一些 加噪的这样的一个处理,减少它的带宽
这就是我们对隐蔽通道分析的主要的工作是包括这三部分
所以接下来呢我们将从这三个部分来给大家介绍一下 隐蔽通道的这样的主要的工作,好,这一部分就介绍到这,谢谢