(计算机科学与技术专业论文)基于源代码的隐蔽通道分析方法若干关键问题的研究.pdf_第1页
(计算机科学与技术专业论文)基于源代码的隐蔽通道分析方法若干关键问题的研究.pdf_第2页
(计算机科学与技术专业论文)基于源代码的隐蔽通道分析方法若干关键问题的研究.pdf_第3页
(计算机科学与技术专业论文)基于源代码的隐蔽通道分析方法若干关键问题的研究.pdf_第4页
(计算机科学与技术专业论文)基于源代码的隐蔽通道分析方法若干关键问题的研究.pdf_第5页
已阅读5页,还剩76页未读 继续免费阅读

(计算机科学与技术专业论文)基于源代码的隐蔽通道分析方法若干关键问题的研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

r j 1 -,i ? 、 l 、 学位论文版权使用授权书 本学位论文作者完全了解北京交通大学有关保留、使用学位论文的规定。特 授权北京交通大学可以将学位论文的全部或部分内容编入有关数据库进行检索, 并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校向国 家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) ,l 学位论文作者签名:安游( 丘 导师签名: 签字日期:z d 口年月侈日 签字日期:劲,o 年月,;日 , | 1 i r - 中图分类号:t p 3 0 9 ;t p 31 6 u d c :0 0 4 4 学校代码:1 0 0 0 4 密级:公开 北京交通大学 硕士学位论文 基于源代码的隐蔽通道分析方法若干关键问题的研究 s t u d y o nk e yi s s u e so fc o v e r tc h a n n e l sa n a l y s i s b a s e do ns o u r c ec o d e s 作者姓名:刘承玉 导师姓名:翟高寿 学位类别:工学 学科专业:计算机科学与技术 学号:0 8 1 2 0 5 8 4 职称:副教授 学位级别:硕士 研究方向:安全操作系统 北京交通大学 2 0 1 0 年6 月 l 6 j 致谢 在论文完成之际,谨向我尊敬的导师翟高寿副教授表示由衷的感谢! 翟老师以 其广博的知识、缜密的思维和严谨的工作研究作风,在论文选题和整个写作过程 中都给了我精心的指导和帮助,我的论文中凝聚了他大量的心血和汗水。翟老师 从学习上、生活上都给予了我无私的关怀,使我不仅学到了专业知识,还为我今 后的工作乃至人生积累了一笔宝贵的精神财富,使我受益终生! 衷心感谢实验室的各位同学,在课题进行期间,他们给予了我大量技术方面 的指导和帮助,同时对我的论文也提出了很多中肯的意见。感谢计算机学院的全 体老师,通过他们辛勤的教诲,使我的学识和素质都得到了很大的提高。 感谢所有关心和帮助我的朋友和同学,特别是同项目组的杨娜、田民丽、杨 思祺、吴彤等同学在课题研究和论文校对等方面给了我很多帮助,也正是我们大 家的共同探讨、相互启发、协同工作,才使课题得以顺利进行,并取得今天的成 绩。另外也感谢我的家人,他们的理解和支持使我能够在学校专心完成我的学业。 最后,向所有关心我和帮助我的人表示最诚挚的谢意。 ,;l, ,。 摘要 摘要 面对信息化社会层出不穷的海量级信息,信息系统已成为信息处理必不可少 的强有力的工具,信息系统的安全也越来越受到人们的广泛重视。而作为信息系 统底层支持的操作系统的安全是保证信息系统安全的前提,所以,操作系统安全 成为计算机领域的研究热点之一。对操作系统来说,许多威胁和攻击是隐藏的, 隐蔽通道就是其中一种。因此,准确高效的隐蔽通道分析是保证操作系统安全的 重要环节,同时也是保证信息系统安全的基本前提。 论文选取l i n u x 内核源码为目标对象进行隐蔽通道分析,对现有的隐蔽通道 分析处理相关研究成果进行归纳总结,综合比较和借鉴语法信息流分析法、共享 资源矩阵法和隐蔽流树分析法的优劣及精髓,给出了基于源代码的隐蔽通道分析 方法的基本流程,并对其中存在的一些关键问题展开深入分析。主要地,分析 m a k e f i l e 文件并强化源代码的预处理机制,以期实现分析范围的科学准确定位, 为共享资源( 主要体现为变量) 和函数的获取提供坚实基础;设计和优化信息流 规则,为共享资源和函数间读写关系的提取创造更为合理的条件。 同时,论文以l i n u x2 6 5 版本内核源码为分析对象,对共享资源矩阵传递闭 包计算的算法实现进行具体研究,主要讨论了基于数组存储方法和十字链表存储 方法等两种实现方式,并对算法复杂度进行分析比较,以期改进算法实现细节, 使其更适合基于操作系统源码的隐蔽通道分析过程。 最后,论文就课题研究中存在的问题以及下一步的努力方向进行了总结和展 望。 关键词:隐蔽通道分析;预处理;信息流规则;共享资源矩阵:传递闭包 分类号:t p 3 1 6 ;t p 3 0 9 s h a r e dr e s o u r c em a t r i x ;t r a n s i t i v ec l o s u r e c l a s s n o :t p 31 6 ;t p 3 0 9 目录 3 3 1m a k e f i l e 文件概述。2 9 3 3 2l i n u x 2 6 5 内核m a k e f i l e 分析一3 1 3 4 源码预处理3 4 3 4 1c 预处理命令3 4 3 4 2 头文件包含命令的分析处理 3 5 3 4 3 宏命令的分析处理3 5 3 4 4 条件预编译命令的分析处理3 6 3 4 5 其它预编译情形的分析处理3 7 3 4 信息流规则设计及优化3 9 北京交通大学硕士学位论文 本章小结4 6 4 共享资源矩阵传递闭包算法的设计与实现。4 7 4 1 共享资源矩阵传递闭包算法概述4 7 4 2 基于数组的算法设计与实现5 0 4 3 基于十字链表的算法设计与实现5 l 4 3 1 程序总体流程5 2 4 3 2 存储结构设计5 2 4 3 3 算法设计与实现5 4 4 4 算法实现比较与评价5 9 本章小结6 1 5 结束语6 2 5 1 论文工作总结6 2 5 2 论文成果及创新6 2 5 3 研究展望6 3 参考文献一6 5 作者简历j 6 7 独创性声明一6 8 学位论文数据集6 9 2 1 绪论 1 1 课题背景 信息安全与操作系统安全 。绪论 2 l 世纪,全球信息化使得信息资源日益成为重要生产要素、无形资产和社会 财富。然而,人们在享受信息化带来的众多好处的同时,也面临着日益突出的信 息安全问题。目前,世界许多国家和地区都不同程度地因为信息安全问题受到了 经济上的损失和政治上的威胁等。信息安全已成为国家安全、经济安全和社会稳 定的重要组成部分。信息安全技术的发展将会从根本上影响和制约信息技术的进 一步发展。 信息安全包括操作系统安全【l 】、数据库安全、网络安全和其它应用软件的安 全。其中,数据库管理系统是建立在操作系统之上的,如果没有安全操作系统的 支持,就不可能保障其存取控制的安全可信性;在网络环境中,网络安全依赖于 各主机系统的安全可信性,没有操作系统的安全,就谈不上主机系统和网络系统 的安全性;同样,认证系统、密钥分配服务器等应用软件,也都只有通过安全操 作系统才能实现它们对系统中有关信息的安全存储与处理。与此同时,操作系统 作为计算机软硬件资源的管理者,直接和硬件打交道并为用户提供接口,是计算 机软件的运行基础和核心。就操作系统本身而言,操作系统就像是指挥者,它协 调计算机所有的组件,并使得各个组件能依照某个计划协同工作。当管弦乐队热 身时,所有的乐器会产生杂音,但是,当指挥者进行指挥时,所有的乐器会协调 工作并产生一组令人愉快的声音。指挥者设定音乐的节奏,用信号通知不同的乐 器,控制管弦乐队的各个不同的乐器的音量等。同样,操作系统将计算机不同的 组件分配给不同的程序,同步各个程序的活动,并提供必要的机制使得程序能协 调地执行。因此,操作系统的安全是解决数据库安全、网络安全及其他应用软件 安全的基础,是整个信息系统安全的重中之重。操作系统的安全性在计算机信息 系统的整体安全性中具有至关重要的作用,没有操作系统提供的安全性,信息系 统和其他应用系统就好比“建筑在沙滩上的城堡”。 我国的政府、国防、金融等机构对信息系统的安全都有各自的要求,都迫切 需要找到一个既满足功能、性能要求,又具备足够可信度的安全产品。但是,目 北京交通大学硕士学位论文 前国外研制的高安全级别产品对我国是封锁禁售的,即使出售给我们,其安全性 也难以令人放心。所以,自主研究和开发高安全级别产品,尤其是信息系统赖以 支持的基础系统软件一安全操作系统迫在眉睫。这其中,l i n u x 的出现及使用 无疑为研究者提供了极大的便利。l i n u x 是一个开放源代码的操作系统。具有代 码清晰、运行稳定可靠、支持多种硬件平台等优点,同时具有丰富的应用软件供 用户使用,可用性强。通过对l i n u x 内核进行安全加固、扩充安全功能,使其达 到一定的安全要求,是当前开发安全操作系统的一种典型方法。 1 1 2 操作系统安全测评与隐蔽通道分析 安全操作系统,是指在安全性上进行了增强的操作系统。一般而言,一个安 全操作系统具有机密性、完整性和可用性等三方面的特性。机密性关注敏感信息 的非授权泄露问题,未授权的主体不能阅读和拷贝信息;完整性关注关键信息的 非授权篡改问题,保护信息( 包括程序) 不会在未予许可的情况下被删除或修改; 可用性关注拒绝服务问题,保证信息在任何时候对授权者可用。 早在2 0 世纪5 0 年代,美国等国家即着手开发用于政府和军队的信息安全产 品。其中,因为隐蔽通道分析在高安全等级信息系统的设计中是非常困难但又非 常值得关注的一个方面,所以这个问题从一开始被提出就得到信息安全领域的关 注,并很快成为官方评估高安全等级信息系统的关键指标。 19 7 3 年,d e b e l l 和l j l a p a d u l a 提出了著名的b e l l l a p a d u l a 模型( 简称b l p 模型) 【2 】【3 】。该模型的含义是,只要满足简单安全性( s i m p l es e c u r i t y ) ,性质( s t a r p r o p e r t y ) 和自主安全属性( d i s c r e t i o n a r ys e c u r i t y ) ,就能保证系统是安全的。但 是,b w l a m p s o n 进行了一系列研究表明,即便主体的动作不违反简单安全性、 木性质和自主安全属性,仍然可以利用某些机制实现违反安全策略的通信,自此 提出了隐蔽通道问题,所有不被安全模型( 特别是b l p 模型) 包括在内的信息传 递方式都属于隐蔽通道范畴。因此,一个按照b l p 模型设计实现的系统,如果没 有对系统进行隐蔽通道分析,就不能保证系统达到了m l s ( m u l t i l e v e ls e c u r i t y , 多级安全策略) 的要求。 在信息安全形势日益严峻的今天,从政府、军队等敏感部门到普通企业都开 始关注高安全等级信息系统,为了对信息安全产品或系统安全性进行评价,国内 外出台了一系列安全测评标准。随着隐蔽通道分析对高安全信息系统的重要性日 益彰显,各国及各组织相继制定的评估准则中,都把隐蔽通道问题列入其中。 下面介绍几种涉及到隐蔽通道分析的主要的安全测评标准。 ( 1 ) 可信计算机系统评价标准【4 j 【5 j 2 1 绪论 1 9 8 5 年,美国国防部公布的可信计算机系统评价标准( t c s e c ,又称为 橘皮书) ,第一个将隐蔽通道纳入评估指标。它对用户登录、授权管理、访问控制、 审计跟踪、隐蔽通道分析、可信通道建立、安全检测、生命周期保障、文档写作、 用户指南等内容提出了规范性要求。橘皮书把安全保护分成4 等7 个级别,由低 到高依次为d ( 无保护) 、c 1 ( 自主保护) 、c 2 ( 受控访问保护) 、b 1 ( 安全标记 保护) 、b 2 ( 结构化保护) 、b 3 ( 安全域) 、a i ( 访问验证保护级) ,其中对隐蔽 通道分析的要求出现在b 2 ,b 3 和a l 三个级别。 ( 2 ) 信息技术安全评价标准1 4 j 【5 j 1 9 9 6 年,美、加、英、法、德、荷六国联合提出的信息技术安全评价标准 ( 简称为c c 准则) ,是第一个信息技术安全评价国际标准。该标准定义了评价信 息技术产品和系统安全性的基本准则,提出了目前国际上公认的表述信息技术安 全性的结构,即把安全要求分为规范产品和系统安全行为的功能要求以及解决如 何正确有效地实施这些功能的保证要求。c c 准则中的a v ac c a 1 即隐蔽通道分 析,要求通过对隐蔽通道的非形式化搜索标识出可标识的隐蔽通道;a v ac c a 2 即系统化隐蔽通道分析,要求通过对隐蔽通道的系统化搜索,标识出可标识的隐 蔽通道;a v ac c a 3 即彻底的隐蔽通道分析,要求通过对隐蔽通道的穷举搜索, 标识出可标识的隐蔽通道。 ( 3 ) 计算机信息系统安全保护等级划分准则【6 】 2 0 0 1 年起实施的中华人民共和国国家标准计算机信息系统安全保护等级划 分准则将信息系统安全分为5 个等级:自主保护级、系统审计保护级、安全标 记保护级、结构化保护级和访问验证保护级。其中的第四级( 相当于橘皮书b 2 级) 要求“系统开发者应彻底搜索隐蔽存储通道,并根据实际测量或工程估算确定 每一个被标识通道的最大带宽”。第五级( 相当于橘皮书b 3 级) 要求“系统开发 者应彻底搜索所有隐蔽通道,并根据实际测量或工程估算确定每一个被标识通道 的最大带宽”。 1 2 国内外研究现状 从隐蔽通道i 口- j 题提出【7 】到现在的三十几年里,世界各国对隐蔽通道分析的研 究做出了充分的努力,并取得很大成就。 到目前为止,隐蔽通道的定义已经提出了很多种,最为明确的是c r t s a i 给出的定义。此定义具体为:给定一个非自主( 如强制) 安全策略模型m 和其在 一操作系统中的具体实现i ( m ) ,i ( s h ) 和i ( s i ) 是i ( m ) 上的两个主题,当且仅当s h 和s i 之间的通信在m 中是违法的,i ( s h ) 和i ( s i ) 之间潜在的通信就是隐蔽通道。 北京交通大学硕士学位论文 对于隐蔽通道分析中最重要的隐蔽通道标识问题【8 1 t 9 1 的研究,自7 0 年代以来 经历了定理证明路线和纯工程路线: 基于定理证明技术的隐蔽通道标识方法从进入2 0 世纪8 0 年代以后,证明 的目标由验证程序信息流意义上是安全的变为验证程序在更广泛的无干扰意义上 是安全的。例如,1 9 7 5 年d d e n n i n g 提出用信息流策略定义信息在系统中的流动 方式【l o j ,以保护数据的机密性,防止信息流向未授权的用户。 纯工程路线通过用强制安全策略检查程序的全局信息流路径来发现潜在的 非法信息流,找出隐蔽通道。其代表就是1 9 8 2 年r k e m m e r e r 提出的共享资源矩 阵法( s r m ) 【l l 】【1 2 】【1 3 】,该方法首先构造系统操作原语和共享资源属性的矩阵,然 后使用信息流分析技术推导系统调用间的全局信息流,标识系统中的全部潜在隐 蔽通道。另外,隐蔽流树法【1 4 1 、语义信息流法【1 5 】等的提出【1 6 1 1 7 】【1 8 1 也都属于基于 工程信息流分析技术的隐蔽通道标识方法。 在国内,社会各界也对隐蔽通道的标识做了大量研究并有一定成就。其中, 江苏大学的鞠时光等人一直致力于信息流分析法【1 9 】标识隐蔽通道的研究,卿斯汉 等针对安胜安全操作系统进行了隐蔽通道分析,并且提出了一种新型的“回溯搜 索”方法【2 0 j 标识隐蔽存储通道。 对隐蔽通道处理的研究也是一个很重要的方面,只有对已标识的隐蔽通道进 行适当的处理才能进一步提高系统的安全性。而隐蔽通道的处理是以隐蔽通道带 宽的计算为前提的。 目前,c h i i r e nt s a i 和v i r g i ld g l i g o r 提出了马尔科夫模型以及应用该模型产 生的工具s t o b e s t l 2 1 1 ;m i l l e n 也提出了一种形式化方法【2 2 】,使用有限状态机计 算隐蔽通道容量;鞠时光等人提出了w a n g - j u 标准1 2 3 ,指出要综合考虑带宽、威 胁度、威胁率等所有的因素来确定隐蔽通道的危害程度;z h e n g h o n gw a n g 和r u b y b l e e 针对异步隐蔽通道的最大带宽做了计算【2 4 】;姚丽红等人将隐蔽通道作为一 种带有信号调节能力的通信信道,利用了带标签的有限状态机来描述隐蔽通道并 计算机了带宽【2 5 】;此外,刘文清、刘海峰等人对隐蔽通道的处理做了研究【2 6 】【2 7 】。 由于隐蔽通道本身问题的特殊性,不可能找到一种普遍适用的消除隐蔽通道的方 法,只能根据隐蔽通道出现的特征、隐通道的产生机理和具体特点,采取相应的 消除措施。目前,国际上已有的隐蔽通道处理方法主要有:审计法、消除法、带 宽限制法等。 总之,随着信息安全的重要性日益突出,国际上对隐蔽通道分析的研究越来 越重视。我国对信息技术飞速发展的迫切需要也已经促使各界对隐蔽通道分析进 行深入研究。 4 1 绪论 1 3 论文研究内容与技术路线 隐蔽通道的分析工作从一开始提出就受到社会各界的关注,并有各界人士对 其进行了深入研究,因为它对操作系统以至整个信息系统的安全具有至关重要的 作用。隐蔽通道的标识作为隐蔽通道分析过程中的一部分,是进行带宽计算和隐 蔽通道处理的前提,也是整个分析工作的重中之重。隐蔽通道研究工作的三十年 来,国际上已经提出了多种标识方法,大体可以分为基于顶层规范的隐蔽通道标 识方法和基于源代码的隐蔽通道标识方法。但是,不论是从描述层面还是从工程 层面,现有的方法或者只适用于小型系缌或者过度依赖于特定系统结构而不具 有通用性等。总之,至今都没有出现在大型的信息系统中进行隐蔽通道标识的技 术。 。 本论文在北京交通大学校科技基金“操作系统安全测评自动化”项目( 项目 编号:2 0 0 5 s m 0 1 6 ) 的支持下,为解决隐蔽通道分析中最重要的隐蔽通道标识问 题,在进行大量研究的基础上,主要进行了以下方面的工作: ( 1 ) 对现有的隐蔽通道研究成果进行总结,归纳隐蔽通道分析的要领所在, 并结合对几个主要隐蔽通道分析方法的综合比较分析,给出隐蔽通道分析方法的 主要步骤; ( 2 ) 选取l i n u x 内核源码为目标对象,给出基于源代码的隐蔽通道分析流程, 并深入分析具体分析过程中存在的几个关键问题; ( 3 ) 分析m a k e f i l e 文件并强化源代码的预处理机制,以期实现分析范围的科 学准确定位,为共享资源和函数的获取提供坚实基础; ( 4 ) 优化信息流规则,为共享资源和函数间读写关系的提取创造更为合理的 条件; ( 5 ) 以数组存储方法和十字链表存储方法两种方式实现共享资源矩阵传递闭 包算法并对其进行了测试,对它们的算法复杂度进行分析比较,以期选出更适合 针对操作系统源码进行隐蔽通道分析的共享资源矩阵传递闭包计算的算法实现方 式。 总之,本论文在目前已有的工作成果的基础上,发掘存在的一些关键问题进 行分析研究,为以后更深层的研究工作奠定了基础。 1 4 论文组织结构 5 北京交通大学硕士学位论文 本论文共分五章,各章的主要内容如下( 各章间关系参图1 1 所示) : 第一章:主要介绍了论文的提出背景,国内外研究现状以及论文主要的研究 内容和组织结构: 第二章:主要总结和分析了隐蔽通道现有的研究成果,归纳隐蔽通道分析要 领,继而总结比较现有的一些主要的隐蔽通道分析方法,给出了隐蔽通道分析的 主要步骤; , 第三章:本章以l i n u x 内核源码为对象,给出了基于源代码的隐蔽通道分析 流程,深入分析整个分析过程中的几个关键问题,并对m a k e f i l e 文件、源码预处 理、信息流规则进行了研究; 第四章:本章在第三章的基础上,对隐蔽通道分析过程中的关键问题之一: 共享资源矩阵传递闭包计算进行了研究,以数组和十字链表方法分别实现之,并 对这两种方法进行了性能比较和评价; 第五章:对论文的工作进行总结并提出了课题的后续发展建议。 t 第章 绪论 u 一 第一章 隐蔽通道分析方法研究 论 袁 标记为r 类似地,如果一个原语可以修改一个变量,则将该矩阵项( t c b 原语,变量) 标记为m 最后,将不能读且不能写的变量合并,分析时将它们视为一个变量; 然后,生成该矩阵的传递闭包。具体操作步骤为:在矩阵中搜索包含标记r 的每一项,如果该项所在的行中出现m 标记,则检查包含该m 项的所在列。如 果在该列的任意一个行中出现r 标记,且该行与原始r 项所在列的对应行中没有 r 标记,则在该矩阵项中增加间接读标记r 。重复以上操作,直到矩阵中无法再增 加r 项时为止。这里,区分r 与r 仅表明,r 为间接读,r 为直接读。今后的分析 中i 将r 等同地视为r ; 再次,分析该矩阵,找出同时包含r 和m 的行,并删去其它矩阵行。当一 个进程可以读一个变量且另一个进程可以写该变量时,如果写进程的安全级支配 读进程的安全级,就可能产生潜在隐蔽通道。通过对矩阵项的分析,可以得到四 北京交通大学硕士学位论文 种类型的通道,它们分别是:合法通道( 标记为“l ) i 无法从中获得有用信 息的通道( 标记为“n ) 、发送进程与接收进程是同一个进程的通道( 标记为 “s ”) 、潜在隐蔽通道( 标记为“p ”) ; 最后,构造所有潜在隐蔽通道的实际应用场景。只有可以构造出实际应用场 景的潜在隐蔽通道,才是真实隐蔽通道。 共享资源矩阵法可以用于代码分析,还可以用于规范分析甚至模型和机器代 码分析,具有广泛的适应性。而且,共享资源矩阵法不要求对矩阵中的内部t c b 变量分配安全级别,这就消除了产生非法信息流的一个主要来源。但是,k e m m e r e r 等人从没有正式说明用什么样的原则和方法找出系统的共享资源属性,如果将系 统中全部属性纳入矩阵,无疑构造和分析矩阵的工作量将大的惊人;此外,该方 法不能证明单个的t c b 原语或原语对是安全隔离的,因此增量分析新的t c b 原 语十分不便;还有,该方法过于保守,它所标识的潜在隐蔽通道通常不是真实隐 蔽通道。 2 2 3 隐蔽流树法 1 9 9 0 年,p h i l l i pa p o r r a s 和r i c h a r da k e r m m e r e r 在共享资源矩阵法的基础上 提出了隐蔽流树法。隐蔽流树使用树结构模型化信息从一个共享资源向另一个共 享资源的流动,实现了系统地搜索通过共享变量属性发送而最终被监听进程所检 测的信息传送方式。构造隐蔽流树所需要的信息与共享资源矩阵所需要的信息是 基本一致的。每个操作用三个列表示:引用列表、修改列表和返回列表。返回列 表包含更新用户输出时被引用的资源属性。 隐蔽流树法的基本思想是:一个不直接泄露系统资源属性内容的系统原语操 作,可能在泄露资源属性信息的系列动作中发挥中介作用。依据这样的思路构造 的隐蔽流树类似于搜索树,从最终目标出发,找出要达到这个目标必备的条件, 这些条件本身成为了子目标,子路径就此延伸下去,直到子路径以无条件的系统 调用结束,或因迭代次数达到了预定值而终止,这样通过推理可以找出场景。 具体地,我们需要首先确定一个要进行分析的资源属性,构造出隐蔽流树。 隐蔽流树由两部分组成,一是发送者所做的对资源属性修改的一系列认可动作, 构成隐蔽流树根的左子树;二是由接收者对该资源属性的修改的一系列认可动作, 构成隐蔽流树根的右子树。隐蔽流树的构造是将修改列表中所包含的对象的任一 操作加入到认可路径的直接认可分支,将在引用列表中所包含的对象的任意操作 加入到导出的认可分支的操作中。对上述加入的资源属性修改列表,加入直接和 间接的认可操作,反复进行这个过程,直到所有的路径以直接认可结束或达到预 1 6 2 隐蔽通道分析方法研究 先指定的深度并且剩余的导出认可路径以“f a l s e 标记;然后,遍历隐蔽流树得 到由发送者和接收者传送信息的操作序列。将这些序列简化,删除冗余的操作对 或加入建立某一有效操作的前提条件的操作。这些操作序列被检查并确定哪些表 示合法操作,删除这些合法操作。对剩余的序列进行分析看它们是否可以构成隐 蔽通道。 隐蔽流树法使用了树结构,能系统地找出通过共享资源属性把信息接力传递 给接收方进程的操作序列。我们对得出的隐蔽流树进行横截,就能得到通过给定 资源进行通信的全面的操作序列列表。因此,这种方法提供了查找隐蔽通道场景 的方法。 2 2 4 其它方法 除上述几种方法外,目前已经出现的隐蔽通道标识方法还有无干扰方法、模 块化s r m 方法、语义信息流法等,下面分别做一下简单介绍。 ( 1 ) 无干扰方法 19 8 2 年,j g o g u e n 和j m e s e g u e r 提出了无干扰法( n o n - i n t e r f e r e n c e ) 。它的 思想是,如果一个用户看到系统的运行情况与另一个用户的操作行为无关,那么 它们之间就没有隐蔽通道,即一个用户进程的输入不能影响另一个进程的输出, 则在第一个进程和第二个进程间没有信息传递。 无干扰法的形式化定义是:给定一个状态机t c b ,令x 和y 为两个用户进 程,w 为一个输入序列,它的结尾是y 的输入。令w x 表示从w 中删除所有x 的输入后剩下的子序列。假设在初始状态输入w 后,y 得到的输出为y ( 州。称 进程x 与进程y 无干扰,如果对于所有可能的以y 的输入为结尾的输入序列w , 都有y ( w ) = y ( w x ) 。 无干扰法的优点是可用于形式化的t c b 描述和源代码,避免发现伪非法流, 可以增量地用于单个的t c b 函数和原语。但是该方法是一种乐观的方法,它要证 明的是t c b 规范或代码中根本不出现干扰,不适用于分析内核中包含大量共享变 量的情况。到目前为止,无干扰方法没有支持的自动工具,单纯依靠手工分析不 仅工作量大,而且增加人为因素,容易出错。所以该方法几乎是完全不实用的。 ( 2 ) 模块化s r m 方法 1 9 9 6 年,k e m m e r e r 和t a y l o r 等人使用m c h u g h 改进的s r m 方法,采用模 块化的分析思路,也就是模块化s r m 方法,分析了具有特殊子系统结构的操作 系统d g u x ,是迄今为止公开报道的唯一对真正的操作系统内核代码进行的隐蔽 通道分析。d g u x 是一种类u n i x 系统,它的内核包括大约1 7 0 个子系统,4 0 0 1 7 北京交通大学硕士学位论文 余个系统调用,分布包含在2 3 个子系统之中。这些系统调用构成内核的外部接口。 d g u x 的内核高度结构化,它的每一个系统状态变量都只受一个子系统控制。当 一个子系统需要访问其它子系统控制的系统状态变量时,必须调用控制子系统的 某个输出函数。因此,d g u x 的内核系统具有高内聚性和低耦合性,即每个子系 统都是一个单独的逻辑实体,且各个子系统都相互独立。 在搜索该系统的隐蔽通道时,k e m m e r e r 和t a y l o r 没有直接将s r m 方法应用 于d g u x 的整个内核,而是采用了模块化s r m 方法。该法需要定义“同等子系 统”,即,如果一个系统调用可以直接调用多个子系统的输出函数,则将所有这些 子系统称为“同等子系统 。模块化s r m 法的步骤是:先对所有的同等子系统进 行s r m 分析,再应用获得的信息对整个内核进行s r m 分析。 该法可以将一个大系统的隐蔽通道分析分解为多个子系统的隐蔽通道分析, 对每个子系统的分析,可以由该子系统的设计或测试分析人员对立完成。同时, 在系统的设计、分析和测试过程中,随着系统的演化,可以方便地进行增量隐蔽 通道分析。但是,该方法的缺陷也是显而易见的。该法仅适用于高度结构化的内 核,要求操作系统内核的子系统具有高内聚性和低耦合性。 ( 3 ) 语义信息流法 1 9 8 6 年,t s a i 等提出语义信息流法。该法继承了d e n n i n g 语法信息流法和s r m 法的某些特点,更类似于s r m 方法。语义信息流法的分析步骤是:首先选择系 统中用户可见的系统调用;然后进行原语可读可写变量的分析,分析出每个原语 可读访问的所有变量和每个原语可写访问的所有变量,包括原语直接可读可写分 析和原语间接可读可写分享( 其中原语间可读可写变量分析又包括函数间调用 关系分析、信息流分析、变量名分析和函数间信息流分析) ,根据分析结果,找出 系统调用间可读和可写的共享变量,并且将它们表示成系统调用流的形式。具体 方法为:通过语义分析,确定内核变量的直接可读可写性;对每个原语生成 一个“函数调用关系”集合f c d ;通过信息流分析,确定内核变量的间接可读性; 在每个原语中解决变量别名问题;标识在原语间共享的用户进程可读可写的 变量,消除局部变量;对系统调用流进行分析,删除不可能产生隐蔽通道的流, 以缩小用于隐蔽通道分析的流数量;对这些系统调用流进行隐蔽通道分析,找 出系统中的隐蔽通道。 该法在实践中远比语法信息流法和s r m 法更具可行性,另外该法能准确找 出内核代码中共享变量被观察修改的位置,从而为审计、处理隐蔽通道提供了便 利。不过,该法从系统调用出发构造函数依赖关系集合容易产生状态爆炸,而且 该法仅适用于源代码层,只能在系统开发的后期发挥作用。 ( 4 ) 另外,除上述几种方法外,目前已经出现的隐蔽通道标识方法还有无干 1 8 2 隐蔽通道分析方法研究 扰方法、模块化s r m 方法、语义信息流法等。 综上所述,目前尚无理论上健壮、实用上行之有效的隐蔽通道标识方法。因 此,彻底搜索隐蔽通道仍然是一项困难的任务,困难的程度依赖于具体的系统和 所采用的分析方法。一般地说,系统规模越大,系统越复杂,分析的难度就越高。 首先,这些标识都是基于一些封闭自主开发的安全操作系统。这些系统的开 发的严格性以及软件工程方面的规范性保证了这些方法作用的对象都是很容易获 得的,包括d t l s 、f t l s 以及具有相对稳定特性的源码( 高度模块化、层次性、 模块之间的低耦合性、较小的系统变动等) 。而相对目前越来越多出现的基于开源 的软件的安全系统如基于l i n u x 的增强安全系统( l i d s 、s e l i n u x 等) ,由于开源 的软件在起初设计的时候并没有明确的需求分析以及设计说明,代码的风格也比 较自由随意,系统模块之间的耦合程度很高,层次性不明显,并且代码变动频繁, 都给传统的隐蔽通道分析方法带来非常大的障碍,目前,类似的系统对隐蔽通道 的处理都处在经验阶段,而这在另外意义上也说明了这些方法仍然面临着通用性 的问题,它们目前所适应的范围还是非常窄。 其次,所有的方法所面对的都是一个系统的静态说明。如果要从这些静态说 明中分析所有系统运行时候动态的所有状态可能不仅是一项非常庞杂的工作,而 且也不利于精确定位隐蔽通道的实际存在。目前,用以发现动态运行时候的隐蔽 通道的机制是隐蔽通道审计。也就是在用以上的方法完成整个系统的静态分析之 后,对可能涉及到的t c b 原语进行审计,进而猜测可能的隐蔽通道使用。这种方 法的粒度非常粗,而且误报率很高。另一方面,应该认识到在系统运行的某一阶 段,系统所涉及到的t c b 原语与变量都是系统的很小的一个子集,能否通过分析 这些很小的子集进而确定系统不同运行阶段所涉及到的隐蔽通道是个很新颖的问 题。 再次,目前所有的方法都是建立在软件层面上,其中包括一小部分硬件的软 件性的描述或者说明。对于绝大部分的硬件,目前缺乏能用于隐蔽通道的规范说 明。而作为一个安全系统的整体考虑,它是一个硬件与软件的整体。硬件同样也 会带来隐蔽通道的问题。如果将一个系统看成一个硬件与软件融合而成的一个黑 匣子,将t c b 的接口( 原语) 看作是这个黑匣子的输入与输出。隐蔽通道分析的 本质就退化成为对黑匣子的输入与输出之间的特定关系分析。如何分析它们之间 的特定关系,将有可能成为今后隐蔽通道标识的工作方向之一。 2 3 隐蔽通道分析方法比较 正是由于以上提出的目前所存在的隐蔽通道分析方法的局限性,提出一种切 实可行有效的隐蔽通道分析方法迫在眉睫。为了达到这个目标,首先我们需要对 1 9 北京交通人学硕士学位论文 以上方法,主要是语法信息流法、共享资源矩阵法和隐蔽流树法做一下比较,如 表2 1 所示: 表2 - 1 隐蔽通道标识方法比较 t a b e l2 - 1c o m p a r i s o na m o n gi d e n t i f i c a t i o nm e t h o d so fc o v e r tc h a n n e l s 方法优点缺点 可用于f t l s 和源代码级;不适用于d t l s ; 易于自动化实现;需要对所有表达式进行分 可增量型分析单个函数或析,而且经常会找出很多伪非 语法信息流法t c b 原语:法流需要手工分析消除,因而 不会遗漏任何可能导致隐蔽工作量大; 通道的信息流向。不能找出安放隐蔽通道处理 代码的t c b 位置。 可用于f t l s 或d t l s ,也可将系统中全部属性纳入矩 用于源码级;阵,工作量巨大; 对在矩阵中的内部t c b 变不能证明单个t c b 原语是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论