logo资料库

隐蔽信道分析及测试.pdf

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
技术研究 隐蔽信道分析及测试 邱梓华 顾健 邱卫东 隐蔽信道(covert channel) 是由于 T C B 实施了非自 主访问控制策略引起的。 执行结果的信道。 它自己使用的系统资源(例如:CPU 时间) 利用正常情况下不认为是数据客体的 的方法,从而影响到实际的响应时间,另 实体,从一个主体到另一个主体进行信息 一个进程通过观察这个响应时间,获取相 TCB强制访问控制策略不允许信息从高级 传输的信道,称为隐蔽信道。 应的信息。这样形成的隐蔽信道就称为时 别的客体向低级别的客体流动,但是通过 上述 4 个定义没有说明隐蔽信道是依 间隐蔽信道。 非正常的通信机制,可以违反此安全策 赖于非自主访问控制的。 略,这就是隐蔽信道。隐蔽信道的存在,对 因此,TCSEC定义隐蔽信道是一个通信 TCB 的强制访问控制策略构成威胁。在国 信道,它允许进程以一种违反系统安全策 标《计算机信息系统安全保护等级划分准 略的方式传递信息: 则》(GB 17859-1999)中,第四级(结构化 假设 TCB 中设计了一个非自主访问安 保护级)要求进行隐蔽信道分析:“系统开 全策略模型M,表示为I(M),在 I(M)的两 发者应彻底搜索隐蔽存储信道,并根据实 际测量或工程估算确定每一个被标识信道 个主体I(Sh) 和 I(Si) 之间的任何潜在通 讯信道是隐蔽信道,当且仅当模型M 中相 的最大带宽”。 第五级(访问验证保护级)要 求:“系统开发者应彻底搜索隐蔽信道,并 应主体 Sh 和 Si 间的通讯,在策略模型M 中 是非法的。 根据实际测量或工程估算确定每一个被标 上述定义表明,隐蔽信道只和非自主 识信道的最大带宽”。 访问安全策略有关,与自主访问安全模型 在《信息技术安全性评估准则 第3部 无关。隐蔽信道是一种可用于在用户之间 分:安全保证要求》(GB/T 18336.3-2001) 传递信息的机制,而这种机制是系统不允 中,从评估保证级 5(EAL5)开始,也要求 许的。 进行隐蔽信道分析(AVA_CCA) 。 隐蔽信道又分为隐蔽存储信道和时间 隐蔽信道。 何为隐蔽信道 隐蔽存储信道:如果一个进程直接或间 隐蔽信道的概念最早是由B. W. Lampson 接地写一个数据变量,另外一个进程直接 于1973年提出的。对隐蔽信道有以下几个不 或间接地读这个数据变量,这样形成的隐 同的定义: 蔽信道就称为隐蔽存储信道。 假如一个通讯信道既不是原先设计出 来的,也不是有意用来传输信息的,那么 称这个通讯信道为隐蔽信道。 假如一个通讯信道“通过在描述资源 状态变量中存储数据,而进行传输”,那么 称这个通讯信道为隐蔽信道。 隐蔽存储信道 隐蔽信道是资源配置策略和资源管理 时间隐蔽信道:如果一个进程通过调整 时间隐蔽信道 不管是隐蔽存储信道还是时间隐蔽信 道,发送者和接收者之间的信息必须有同 步关系。 隐蔽信道标识 隐蔽信道标识就是搜索系统中可能存 在的隐蔽信道,并进行标识。一个隐蔽信 道可以用一个三元组表示:, V 表示共享变量;PA 表示对共享变量V进 行写操作的TCB原语;PV表示对共享变量 V 进行读操作的TCB 原语。 常用的隐蔽信道标识s方法主要有文 法信息流分析和共享资源矩阵方法两种。 这两种方法各有优缺点,目前共享资源矩 阵方法应用更为普遍。 文 法 信 息 流 分 析 文法信息流分析(Syntactic Information- Flow Analysis ),是将信息流文法同每一 条实现语言的语句相联系。 只要证明在完整的程序和TCB原语设计 或源代码中,所有的信息流形式都符合信息 Netinfo Security/2005.2 77
技术研究 流策略,那么就不存在隐蔽信道。否则,这 对共享资源矩阵条目的分析,将产生 Tcs是从设置变量到读变量之间的切 个信息流可能是导致隐蔽信道的信息流,对 以下四种可能的结论: 换时间; 于这些信息流必须借助语义分析确定: 假如在两个通讯进程之间存在着合法的 这个信息流是真实的还是虚假的非法 信道,那么这个信道不是隐蔽信道,记为:L; 隐 蔽 信 道 处 理 信息流; 假如不能从信道中获取有用的信息, 对隐蔽信道的处理,一般采取以下三 这个信息流是否具有导致真实隐蔽信 记为:N; 种方法:消除隐蔽信道、带宽限制、审计隐 道的使用场景; 假如发送和接收的进程是同一个,记为:S; 蔽信道的使用。 文法信息流分析具有以下优点:能够 假如一个潜在的信道存在,记为:P; 以简单清楚的方法自动实现;可以应用于 发现潜在隐蔽信道的使用场景。 顶级形式化设计和源代码;能够应用于增 共享资源矩阵方法具有以下优点: 量的独立功能和TCB 原语;在详细设计和 能够适用于TCB软件和硬件的形式化和 源代码中,不会错过任何导致隐蔽信道的 非形式化设计,也能够适用于TCB的源代码; 消 除 隐 蔽 信 道 为了消除系统中的隐蔽信道,必须对系 统的设计和实现进行修改。这些修改包括: 通过为每一个共享者预先分配所需要 信息流。 对于隐蔽存储信道和时间隐蔽信道, 的最大资源,或者为每一个安全级别划分 但是,它也有以下缺点:发现的非法 分析方法没有区别;在原理上,能够应用 信息流可能是虚假的(将增加通过手动文 于两种隐蔽信道分析; 出相应的资源,从而消除可能造成隐蔽信 道的资源共享。消除引起隐蔽信道的接 法分析方法,消除这些信息流的工作量); 它不要求在矩阵中指定TCB内部变量 口、功能和机制。 不适用于非形式化设计;不能帮助开发者 的安全级别,因而,消除了虚假非法信息 带 宽 限 制 确定,放置隐蔽信道处理代码的TCB位置; 流的主要来源。 共 享 资 源 矩 阵 方 法 然而,它也有以下缺点: 在隔离环境下不能证明单独的TCB原 共享资源矩阵方法(Shared Resource 语(或者原语对)是安全的。从而增加了增 带宽限制就是要降低隐蔽信道的最大 值,或者平均值,以使得任何一个隐蔽信 道的带宽限制在一个预先定义的可接受的 Matrix Method,SRM),要求进行以下五个 量分析新的TCB功能的复杂性。 范围内。 步骤: 共享资源矩阵分析方法标识的潜在隐蔽 分析所有形式化或非形式化,或者源 信道,有可能被信息流分析方法自动排除。 代码中指定的TCB 原语操作; 建立一个共享资源矩阵,行是用户可 隐蔽信道带宽估算 限制隐蔽信道带宽的方法主要有: 故意在信道中引入噪声。(例如:对共 享变量使用随机分配算法,共享变量一般 包括:共享表的索引,磁盘区域,进程标识 等;或者以随机方式引入无关的进程修改 隐蔽信道的变量。); 在每一个真实隐蔽信道的 T C B 原语 中,故意引入延时; 见的 TCB 原语,列是被查看或修改的TCB 变量;根据这些变量是读还是修改,用 R 或是 M 标记共享资源矩阵的每一个 项; 对共享资源矩阵的条目进行传递闭环 对于搜索到的隐蔽信道,应该估算它 们的带宽。系统的硬件配置,如:CPU速度、 内存大小和速度、缓存大小、硬盘速度等, 对隐蔽信道带宽都有很大的影响;TCB 原 语的选择、噪声等因素也对隐蔽信道的带 审 计 隐 蔽 信 道 的 使 用 操作。这个步骤能鉴别所有变量的间接 宽有很大影响。 读,并且将相应的结果添加到共享资源矩 阵中。例如:TCB原语1根据变量Y的值,决 定是否对变量X 进行修改,另一个TCB 原 语 2 能够通过读取变量X 的值,从而间接 的获取到变量 Y 的值。所以 TCB 原语 2 能 够间接的读变量Y。必须将这个条目添加 到共享资源矩阵中。 对行是 R 或 M 的每一个矩阵列进行分 为了估计隐蔽信道的最大带宽,假设 隐蔽信道是没有噪声的,系统中只有收 / 发进程,收/ 发进程之间的同步时间可以 忽略,这些假设对计算隐蔽信道的最大带 宽是合适的,但实际上是很难达到的。 一个最常用的估算隐蔽信道最大带宽 的计算公式为:B=b/(Tr+Ts+2Tcs),其中: B 是估计带宽,单位是(比特 / 秒,即 析,每当这些列的变量由一个进程读,而 为bits/sec); 由另一进程写,并且前一进程的优先级不 支配后一进程的优先级时,这些列的变量 可能支持隐蔽信道。 b是一次信息交换的比特数,通常为1; Tr是读变量所需时间; Ts 是设置变量所需时间; 通过审计,能够对隐蔽信道的使用者 起到威慑的作用。 对隐蔽信道的审计,要求记录足够多 的数据,以能够:标识个别隐蔽信道的使 用,或者某一类型隐蔽信道的使用;标识 个别隐蔽信道或者某一类型隐蔽信道的发 送者和接收者。此外还要求,必须发现所 有对隐蔽信道的使用;应该避免虚假的隐 蔽信道使用记录。 一旦审计跟踪分析确定了一个隐蔽信 道的使用,那么对于这个隐蔽信道进行真 实的带宽估算是可能的,也是需要的。注 78 Netinfo Security/2005.2
意,通常情况下,不可能根据审计跟踪发 第四级只对隐蔽存储信道提出了要求,而 所有的测量必须是可重复的。 现通过隐蔽信道泄漏的实际信息,因为用 没有要求进行时间隐蔽信道分析。 户能够对数据进行加密。同时,仅仅通过 检查审计跟踪,没有办法区别泄漏的是真 隐 蔽 存 储 信 道 标 识 隐 蔽 存 储 信 道 处 理 开发者应根据实际情况,确定隐蔽信 实信息还是噪声信息。 开发者应确定用于标识隐蔽存储信道 道的两个带宽常数:Bmin和Bmax。如果隐 审计隐蔽信道的使用,将遇到以下问 的信息来源,这些信息来源应该包括描述 蔽信道的带宽小于Bmin,那么这个隐蔽信 题:无法区别是隐蔽信道的使用,还是没 性高层设计和系统参考手册,还应该包括 道可以被接受,不必采取什么措施;如果 有危害的TCB 原语使用;在隐蔽信道使用 源代码和处理器设计(如果涉及到硬件分 一个隐蔽信道的带宽大于 Bmax,那么这 者中,不能将发送者明确地从接收者中区 析)。开发者应保证所使用的标识方法是 个隐蔽信道比较严重,如果能够消除,最 分出来。 彻底地和可靠地,应可重复。这就意味着, 好消除,如果不能够消除,那么应该采取 之所以会出现这些问题,是因为:单 其它独立测试者,使用同样的标识方法和 措施将带宽降低到 Bmax;如果一个隐蔽 个 TCB 原语,根据不同的参数值和系统状 信息来源,能够得到同样的结果。否则,标 信道的带宽在Bmin 和 Bmax 之间,那么必 态,能够改变和查看一个变量或属性;不 识证据将缺乏可信度。 须对这个隐蔽信道进行审计。( 通常建议 同的 TCB 原语,能够被不同的隐蔽信道共 开发者所标识的隐蔽存储信道,应包 Bmin=1bits/sec,Bmax=100bits/sec。) 享。这样的TCB 原语允许用户伪装隐蔽信 括共享变量和读写变量的TCB 原语。开发 开发者应该说明: 道的使用以旁路审计,并且将引起隐蔽信 者还应该将潜在的隐蔽信道和实际的隐蔽 隐蔽信道是如何消除的; 道的虚假检测。 信道区分开。 隐蔽信道的带宽是如何限制在一个可 隐蔽信道审计的关键设计,是决定哪 对于实际的隐蔽信道,开发者还应提 接受的范围内; 些事件需要记录,哪些数据需要使用审计 供实际的隐蔽信道使用场景。 开发者应提供证据,证明所采取的隐 工具进行保存,以确保能发现所有的隐蔽 信道使用。如前所述,隐蔽信道的标识能 带 宽 测 量 和 工 程 估 算 蔽信道处理方法是有效的。 够简写为 ,因此隐蔽信道 开发者在进行带宽测量和工程估算 第五级隐蔽信道测试的额外 审计应该记录所有的 和< P V , V > 时,应该考虑以下因素: 要求 事件。 对于最大带宽,应假设信道是没有噪 声的,并且系统中的其它进程也不会引起 隐蔽信道测试 延时; 隐蔽信道测试能够证明系统开发者选 择的隐蔽信道处理方法,能否以预期的方 式正常工作。测试还能够证明系统中发现 的潜在的隐蔽信道,是不是实际存在的真 实隐蔽信道。 隐蔽信道处理的带宽限制方法,一般 基于工程估算而不是实际测量。带宽估算 在决定采用处理方法之前,提供了一个隐 蔽信道的带宽上限。相反,在系统实现了 所选择的处理方法之后,总是要求实际测 量隐蔽信道的带宽。 第 四 级 隐 蔽 信 道 测 试 要 求 在国标GB 17859-1999中,第四级(结 假设传输的数据全为0 或者全为1; 由 于 带 宽 估 算 公 式 为 : B = b / (Tr+Ts+2Tcs),所以选取的TCB 原语,改 变或读取变量的时间应该是最短的,转换 时间也应该是最短的。 为了决定带宽,应在隐蔽信道实际使 用场景中进行测量,必须考虑每一个所选 择的 TCB原语的参数和系统状态。 应详细说明测量的环境,包括:系统 部件的速度(如:CPU 速度、磁盘速度等); 系统的配置;内存和缓存的大小;系统的 初始值。应记录配置的改变对测量结果的 影响,并形成文件。(这个文件使得授权者 能够评估隐蔽信道在不同的使用环境中的 构化保护级)要求:“系统开发者应彻底搜 真实影响。) 索隐蔽存储信道,并根据实际测量或工程 估算确定每一个被标识信道的最大带宽”。 发送者和接收者的同步时间可以被忽略; 在带宽估算中,应考虑信道的集合; 在国标 GB 17859-1999 中,第五级 (访问验证保护级)要求:“系统开发者应彻 底搜索隐蔽信道,并根据实际测量或工程 估算确定每一个被标识信道的最大带宽”。 所以除了第四级的所有要求外,还必须进 行时间隐蔽信道分析。开发者应增加时间 隐蔽信道的分析、带宽测量和工程估算, 以及时间隐蔽信道的处理等内容。 随着技术的发展,隐蔽信道标识的方 法也越来越多,目前我们国内已经在隐蔽 信道分析方面取得了比较大的进展,例如 国内某安全操作系统在文法信息流分析方 法的基础上,自主研制了"回溯搜索方法 ",并且使用回溯搜索方法,在对38 万行 内核源代码、200多个系统调用、365个全 局变量和75个可信进程进行分析之后,成 功地发现了18个真实隐蔽信道。总之,隐 蔽信道分析是一项非常复杂的工作,必须 在系统设计阶段就考虑隐蔽信道的问题, 并且贯穿整个系统的开发过程。 Netinfo Security/2005.2 79
分享到:
收藏