(计算机科学与技术专业论文)linux系统调用及其安全测试自动化的研究.pdf_第1页
(计算机科学与技术专业论文)linux系统调用及其安全测试自动化的研究.pdf_第2页
(计算机科学与技术专业论文)linux系统调用及其安全测试自动化的研究.pdf_第3页
(计算机科学与技术专业论文)linux系统调用及其安全测试自动化的研究.pdf_第4页
(计算机科学与技术专业论文)linux系统调用及其安全测试自动化的研究.pdf_第5页
已阅读5页,还剩69页未读 继续免费阅读

(计算机科学与技术专业论文)linux系统调用及其安全测试自动化的研究.pdf.pdf 免费下载

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

文档简介

摘要 随着信息技术的发展及信息系统在社会生活各领域日益广泛且深入的应用, 信息安全成为信息技术研究当中不可或缺的一部分,并越来越显示出它的重要性。 操作系统的安全是整个信息系统安全的基础,而系统调用作为操作系统用户空间 与内核空间的惟一接口,它们的安全又是操作系统安全的前提。如何对数量众多 的系统调用进行高效、充分的安全测试,是确保操作系统安全可靠的关键。 软件测试自动化可以缩短软件测试周期、节省人力资源、增强测试的稳定性 和可靠性、增加软件的信任度等。本文针对l i n u x 操作系统,通过分析其系统调用 机制和内核安全机制,讨论了l i n u x 系统调用安全测试自动化的可行性,给出了系 统调用安全自动化测试的基本方案。鉴于l i n u x 系统调用数量众多的情况,本文就 系统调用的安全性、不同系统调用之间的安全测试次序的确定原则进行了初步的 探讨,据此给出了部分系统调用安全测试次序的分析结果,并在本文的测试过程 中加以应用。然后,本文基于f e d o r a9 及l i n u x 内核2 6 2 5 1 4 f e 9 i 6 8 6 设计并实现 了一个系统调用安全测试自动化原型系统,由主控模块、测试用辅助对象创建模 块、标准测试模块、特殊测试模块和测试配置库构成。具体而言,该原型系统使 用主控模块进行测试控制,并把系统调用的测试内容分为标准测试和特殊测试两 部分,分别通过标准测试模块和特殊测试模块来完成相关部分的测试工作。除了 一些通用全局变量的设置,其余针对具体系统调用的测试环境准备及参数配置的 工作由测试用辅助对象创建模块和测试配置库共同完成。本文还就t r e a t 、a c c e s s 、 c h m o d 、e h o w n 、m k d i r 等系统调用的安全测试用例的详细设计及原型测试结果进 行了初步的讨论和分析。 最后,本文就整个课题的研究方法和研究内容进行了总结,并给出了后续的 工作建议及研究展望。 关键词:操作系统;安全测试;测试自动化;系统调用;l i n u x 分类号:t p 3 1 6 ;t p 3 0 9 a bs t r a c t w i t ht h ed e v e l o p m e n to fi n f o r m a t i o nt e c h n o l o g y , i n f o r m a t i o ns y s t e m sa r ea p p l i e d e x t e n s i v e l ya n di n t e n s i v e l yi nv a r i o u sf i l e d so fs o c i a ll i f e , 8 0i n f o r m a t i o ns e c u r i t y b e c o m e si n d i s p e n s a b l ei nt h er e s e a r c ho fi n f o r m a t i o nt e c h n o l o g y , a n dd e m o n s t r a t e si t s i m p o r t a n c ei n c r e a s i n g l y t h es e c u r i t yo fo p e r a t i n gs y s t e mi st h ef o u n d a t i o no f i n f o r m a t i o ns y s t e m ss e c u r i t y m o r e o v e r , s y s t e mc a l l sa l et h eo n l yi n t e r f a c eb e t w e e nt h e u s e rs p a c ea n dt h ek e r n e ls p a c e ,8 0t h e i rs e c u r i t yi st h ep r e m i s et ot h es e c u r i t yo f o p e r a t i n gs y s t e m i ti st h ek e yt oe l l s u r eo p e r a t i n gs y s t e mt ob es e c - u l ea n dr e l i a b l et h a t h o wt ot e s tt h es e c u r i t yo fal a r g ea m o u n to fs y s t e mc a l l sf u l l ya n de f f i c i e n t l y a u t o m a t i ct e s t i n gt e c h n o l o g i e so fs o f t w a r ec a ns h o r t e nt h ec y c l eo fs o r v c a r e , s a v e m a n p o w e rl 鹤o u r c e s ,s t r e n g t h e nt h es t a b i l i t ya n dr e l i a b i l i t yo ft e s t i n g , a n di n c r e a s et h e t r u s to f8 0 r w a r ea n d o i lb a s e d0 1 1l i n u xo p e r a t i n gs y s t e m , t h ef e a s i b i l i t yo f a u t o m a t i ct e s t i n go fl i n u xs y s t e mc a l l s s e c u r i t yi sd i s c u s s e da n dt h es o l u t i o no f a u t o m a t i cs e c u r i t yt e s t i n go fl i n u xs y s t e mc a l l si sg i v e ni nt h i sp a p e rb ya n a l y z i n gt h e m e c h a n i s mo fl i n u xs y s t e mc a l la n dt h em e c h a n i s mo fs e c u r i t yi nk e r n e l i nv i e w o ft h e h u g en u m b e ro fl i n u xs y s t e mc a l l s ,t h es e c u r i t yo fs y s t e mc a l l sa n dt h ec h o o s i n g p r i n c i p l eo fs e c u r i t yt e s t i n gs e q u e n c ea r ed i s c u s s e dp r e l i m i n a r i l yb a s e do nw h i c ht h e t e s t i n gs e q u e n c eo f8 0 m es y s t e mc a l l si sg i v e na n da p p l i e di nt e s t i n g ap r o t o t y p e s y s t e mf o ra u t o m a t i cs e c u r i t yt e s t i n go fs y s t e mc a l l si sd e s i g n e da n di m p l e m e n t e db a s e d o nf e d o r a9a n dl i n u xk e r n e l2 6 2 5 1 4 f c 9 i 6 8 6 t h ep r o t o t y p ei sm a d eu po fc o n t r o l m o d u l e , o b j e c t ss e t u pm o d u l e , s t a n d a r dt e s tm o d u l e ,s p e c i a lt e s tm o d u l ea n dt e s t c o n f i g u r a t i o nd a t a b a s e c o n t r o lm o d u l ei su s e dt oc o n t r o lt e s tp r o c e s s s t a n d a r dt e s t m o d u l ea n ds p e c i a lt e s tm o d u l ea r eu s e df o rt e s t i n gt h ed i f f e r e n ta s p e c t so fs y s t e mc a l l s e x c e p tt h ed e f i n i t i o no fs o m ec o m m o ng l o b a lv a r i a b l e s ,t h er e s to ft h et e s tp r e p a r a t i o n w o r k ss u c ha ss e t t i n gu pt e s te n v i r o n m e n ta n dc r e a t i n go b j e c t sa r ef i n i s h e db yt e s t c o n f i g u r a t i o nd a t a b a s ea n do b j e c t ss e t u pm o d u l et o g e t h e r t h e nt h et e s tc a s e so fc r e a t , a c c e s s ,c h m o d ,c h o w n ,r n k d i r , e t c ,t o g e t h e rw i t ht h et e s tr e s u l t sa r ed i s c u s s e da n d a n a l y z e dp r e l i m i n a r i l y f i n a l l y , t h er e s e a r c hw o r ki nt h i sp a p e ri ss u m m a r i z e d ,a sw e l la sf u r t h e rr e s e a r c h d i r e c t i o n sa l ep o i n t e d k e y w o r d s :o p e r a t i n gs y s t e m ;s e c u r i t yt e s t i n g ;a u t o m a t i ct e s t i n g ;s y s t e mc a l l ; v l i n u x c l a s s n o :t p 31 6 :t p 3 0 9 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的研究成果,除 了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或撰写过的研究成果,也 不包含为获得北京交通大学或其他教育机构的学位或证书而使用过的材料。与我一同工作的 同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。 学位论文作者签名:干命中签字日期: 芦。罗年莎月,易日 7 4 学位论文版权使用授权书 本学位论文作者完全了解北京交通大学有关保留、使用学位论文的规定。特 授权北京交通大学可以将学位论文的全部或部分内容编入有关数据库进行检索, 并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校向国 家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名:彳今牛 导师签名:碉南痔 签字日期:芦7 年莎月f g 日 签字日期: 加7 年莎月,8 日 致谢 本论文的工作是在我的导师翟高寿教授的悉心指导下完成的,翟高寿教授严 谨的治学态度和科学的工作方法给了我极大的帮助和影响。在此衷心感谢两年来 翟高寿老师对我的关心和指导。 翟高寿教授悉心指导我们完成了实验室的科研工作,在学习上和生活上都给 予了我很大的关心和帮助,在此向翟高寿老师表示衷心的谢意。 在实验室工作及撰写论文期间,马文琳、张宇峰、杨娜等同学对我论文研究 工作给予了热情帮助,在此向他们表达我的感激之情。 另外也感谢父亲和母亲,他们的理解和支持使我能够在学校专心完成我的学 土k 。 1 1 课题背景 1 绪论 信息技术的飞速发展,让计算机的应用深入了各行各业,深入了人们生活的 方方面面,电信、金融、电子商务等各领域的正常运转已经离不开计算机、网络 和信息系统的支撑。信息技术在给人们带来便利的同时,也增添了许多问题。非 法的计算机系统入侵、窃取、篡改、毁坏重要的信息数据,给社会造成了难以估 量的损失。当前,我国信息安全面临信息与网络的安全防护能力差、对引进技术 和设备缺乏安全检测、基础信息产业严重依赖国外、信息安全管理机构缺乏权威、 信息犯罪有快速蔓延之势、全社会的信息安全意识淡薄等六大威胁。如果不能切 实解决上述问题,我国将在激烈的信息争夺和信息战中处于被动挨打的软弱地位。 因此,信息安全已经提到了关系国家安全与国计民生的重要位置。加大信息安全 技术方面的投入已经刻不容缓。 1 1 1 操作系统安全与信息安全 当今社会,大量信息被数据化,企业和个人的许多重要信息都被信息系统以 数据的形式存储在计算机中。而这些数据又被操作系统以文件的形式统一存储和 管理,也可以说,操作系统是信息系统数据资源的直接管理者。操作系统的安全 是信息系统数据安全的根本。 操作系统面临的安全威胁大多是通过挖掘操作系统和应用程序的弱点或者缺 陷来实现的,主要表现形式有木马程序、黑客攻击、蠕虫、病毒、后门、隐蔽通 道、非法访问等,如图1 1 所示。 计算机病毒和黑客攻击是操作系统所受到的安全威胁中最为人们所熟悉的两 种形式。 ( 1 ) 病毒:本质上是一个程序或一段可执行代码,并具有自我复制能力及隐蔽 性、传染性和潜伏性等特征,如c i h 病毒; ( 2 ) 黑客攻击:表现为具备某些计算机专业知识和技术的人员通过分析挖掘系 统漏洞和利用网络对特定系统进行破坏,使功能瘫痪、信息丢失或变得乱 七八糟等,常见的攻击方式如拒绝服务攻击,即通过消耗网络带宽或频发 连接请求阻断系统对合法用户的正常服务。 图1 - 1 操作系统面临的威胁 f i g u r e l - 1t h r e a t st oo p e r a t i n gs y s t e m s 在黑客攻击的过程中,有时需要在前期安装木马程序或在后期借助于隐蔽通 道实现机密信息的窃取。木马程序或称特洛伊木马,伪装成友好程序或其一部分, 故而具有更大的欺骗行为特征。同时还因其能够继承用户特权和可在不违反系统 安全规则的情况下进行非法操作而具有更大的危害性。 隐蔽通道则为本意不用于信息传输的信息通路。当其被用于信息传输时,可 绕开系统安全访问控制策略的限制,进而使高安全级别机密信息传向敌对方( 通 常只能获得低安全级别授权) 及其代理即低安全级别用户程序成为可能。 蠕虫类似于病毒,能侵入合法的数据处理程序并更改或破坏数据,但其不具 备自身复制能力,故而清除要简单些。最具代表性的如s k a 蠕虫,其被伪装成 “h a p p y 9 9 e x e 电子邮件附件,首次运行时会显示焰火,之后任何本机发送的电子 邮件和新闻组布告均会导致该蠕虫邮件的配送式发送。通常接收方会因邮件发自 所认识的人而信任邮件附件并启动运行,于是由此可能引发网络邮件泛滥规模庞 大而导致严重后果。 逻辑炸弹则指附着在某些合法程序上的恶意代码,其通常处于潜伏状态,但 在特定的逻辑条件满足的情况下会激活和执行,对系统功能造成严重破坏。 后门( 或称天窗) 也是构成操作系统威胁的重要形式之一。其本质上通常是 为方便操作系统测试而在操作系统内部预留的特别命令入口,或者是专门在操作 系统内部设置的可供渗透的缺陷或漏洞,一般不容易被发现。但一经发现和非法 利用,则会穿透整个系统安全机制并造成严重的后果。 归纳而言,上述操作系统面临的各种安全威胁形式所导致的最终后果其实就 是对一般信息系统或计算机系统应该拥有的保密性、完整性和可用性等三方面的 安全特性的破坏。其中,保密性是指只有授权用户才能以对应的授权存取方式访 问系统中的相应资源和信息;完整性是指系统中的信息不能在未经授权的前提条 2 件下被有意或无意地篡改或破坏;可用性是指系统中的信息应保持有效性,且无 论何时,只要需要,均应支持合法授权用户进行正确和适当方式的存取访问。 从计算机信息系统的角度可以看出在信息系统安全所涉及的众多内容中,操 作系统、网络系统与数据库管理系统的安全问题是核心【1 1 。数据库通常是建立在操 作系统之上的,如果没有操作系统安全机制的支持,就不可能保障其存取控制的 安全可信性;而在网络环境中,网络的安全可信性依赖于各主机系统的安全可信 性,没有操作系统的安全性,就不会有主机系统和网络系统的安全性。同理而言, 计算机系统中运行的应用程序、存储的文件系统等,如果离开了操作系统的保护, 它们的安全性也就无从谈起。 因此,操作系统的安全性是计算机信息系统安全性的基础,是保障信息系统 安全的根本所在,是解决一切信息安全问题的关键。只有打好了根基,才能有万 丈高楼平地起的壮观景象。保证操作系统的安全性,逐步解决信息安全问题,才 能让蓬勃发展的信息技术越来越好地作用于社会。 1 1 2 安全操作系统及安全测评 一般情况下,安全操作系统与操作系统安全的含义是有所区别的。安全操作 系统通常与相应的安全等级相对应,根据t c s e c 标准,通常把满足b l 安全级以 上的操作系统称为安全操作系统,它是指操作系统增强了安全机制与功能,以保 障计算资源使用的保密性、完整性和可用性。安全的操作系统是整个计算机系统 安全的基础,没有安全操作系统提供的多种安全机制,就不可能从根本上解决数 据库、网络和其他应用软件的安全问题。而安全操作系统的安全可信性取决于经 由特定授权的安全测评认证中心的安全等级测评认证。 安全操作系统的发展历程 安全操作系统发展【2 】历经四十年的时间,主要可以分为四个阶段,分别是:奠 基时期、食谱时期、多政策时期和动态政策时期。 ( 1 ) 奠基时期:从1 9 6 7 年,计算机资源共享系统的安全控制问题引发美国国 防部计算机安全特别部队的组建,a d e p t 5 0 系统项目的启动为开始。安全 操作系统开始从无到有,逐步探索,而有关于它的一些基本思想、技术和 方法也在这个时期逐步建立起来。 1 9 6 9 年,c w e i s s m a n 发表了有关a d e p t 5 0 的安全控制的研究成果。安全 a d e p t 5 0 是历史上的第一个安全操作系统,可以实际投入使用。它以一个形式化 的安全模型一高水标模型为基础,实现了美国的一个军事安全系统模型,为给 定的安全问题提供了一个比较形式化的解决方案。 在a d e p t - 5 0 之后,越来越多的安全操作系统项目相继被启动,一系列的安全 操作系统被设计和开发出来。典型的有m u l t i c s 、m i t r e 安全核、u c l a 数据安全 u n i x 、k s o s 和p s o s 等。 ( 2 ) 食谱时期:从1 9 8 3 年,美国国防部颁布t c s e c 标准开始。在这个时期, 系统研制有了统一的蓝本,推出了从c 2 a 1 的一系列高安全等级的系统。 1 9 8 4 年,a x i o m 技术公司的s k r a m e r 发表了l i n u si v 系统的设计与开 发成果,它是u n i x 类的实验型安全操作系统,以4 1 b s du n i x 为原型,结合t c s e c 标准的要求,对安全性进行了改造和扩充。 1 9 8 6 和1 9 8 7 年,i b m 公司的v d g l i g o r 等发表了安全x e n i x 系统的设计 与开发成果。安全x e n i x 是以x e n i x 为原型的实验型安全操作系统,属于u n i x 类 的安全操作系统,它要实现的是t c s e c 标准b 2 a 1 级的安全要求。 1 9 8 8 年,a t & tb e l l 实验室的c w f l i n ki i 和j d w e i s s 发表了s y s t e m w m l s 系统的设计与开发成果。s y s t e mv m l s 是以a t & t 的u n i xs y s t e mv 为 原型的多级安全操作系统,以t c s e c 标准的安全等级b 为设计目标。 1 9 8 9 年,加拿大多伦多大学的g l g r e n i e r 、r h o l t 和m f u n k e n h a u s e r 发表 了安全t u n i s 系统的设计与开发成果。t u n i s ( t o r o n t ou n i v e r s i t ys y s t e m ) 是加 拿大多伦多大学开发的一个与u n i x 兼容的操作系统,是u n i x 内核的一个新的实 现,该系统用强类型的t u r i n gp l u s 高级语言编写,具有较好的模块化结构。安全 t u n i s 系统是以t u n i s 系统为原型的安全操作系统。 1 9 9 0 年,t r w 公司的n a w a l d h a r t 和b l d iv i t o 等发表了a s o s 系统的 设计与开发成果。a s o s ( a r m ys e c u r eo p e r a t i n gs y s t e m ) 是针对美军的战术需要 而设计的军用安全操作系统,由两类系统组成,其中一类是多级安全操作系统, 设计目标是满足t c s e c 标准的a l 级要求;另一类是专用安全操作系统,设计目 标是满足t c s e c 标准的c 2 级要求。 ( 3 ) 多政策时期:以1 9 9 3 年美国国防部制定d g s a ( d o dg o a ls e c u r i t y a r c h i t e c t u r e ) 框架为起始点,人们超越了t c s e c 的范围,在安全操作系 统中实现了多种安全策略,系统开发有了抽象的框架。 19 9 7 年完成的d t o s ( d i s t 曲u t e dt r u s t e do p e r a t i n gs y s t e m ) 项目属于s y n e r g y 项目的一个组成部分,与传统基于t c s e c 标准的开发方法不同,d t o s 项目采 用的是基于安全威胁的开发方法,它的主要目的之一是为s y n e r g y 体系结构的最 底层软件组件开发一个原型系统,以m a t h 为基础。 ( 4 ) 动态政策时期:始于美国国家安全局等联合推出f l a s k 安全体系结构,这 4 个时期的安全操作系统支持多种安全策略的动态变化,实现了安全策略的 多样性。人们开始进一步探索新的体系结构。 2 0 0 1 年,p l o s c o c c o 等发布了s e l i n u x 8 的研究成果,它是以l i n u x 操作系 统为基础的基于f l a s k 安全体系结构的安全操作系统。 对于安全操作系统的研究来说,我国较国外起步要晚,但至今也有十几年的 时间,已取得了一些研究成果。 上世纪九十年代初,我国相继在国外的一些u n i x 安全操作系统上做了研究 和改进,开展了一系列的工作,迈开了我国对安全操作系统领域的探索脚步。随 着以l i n u x 为代表的自由软件在中国的广泛流行,我国安全操作系统的研究 2 , 3 1 与 开发工作也有了更显著的推进。 北京中科安胜信息技术有限公司研制的安胜安全操作系统v 1 0 ,成为第一个 通过按国家标准 全局变量初始化,包括初始化所有系统调用测试都要用到的用于存储 测试过程数据的结构体、用于存储测试记录的结构体,以及用于支撑 整个测试过程的其它一些全局变量等; 通过配置文件中取到的属性给测试用主体、客体设置安全属性。 ( 3 ) 记录测试过程,提取安全属性判定所需参数。 系统初始化、标准测试、特殊测试、测试结束这四个阶段都要在记录 测试过程的数据结构中有所体现,用中间变量分别记录不同测试阶段 的信息; 从中间变量中提取有用信息写入测试记录。 ( 4 ) 提供测试用辅助对象准备模块及标准、特殊测试接口。 提供标准的系统调用测试辅助对象准备、标准测试、特殊测试接口,每个系 统调用只需要实现各个接口函数,就可以完成和主控模块的对接,而不用修改任 何主控模块程序,提高了代码的复用性。 ( 5 ) 清除测试环境。 由于各个系统调用的测试过程不尽相同,所创建的客体以及一些别的关联文 件等都有所区别,对于主体的能力分配也不同,因而对于环境的清除过程也不能 设计成一个统一的模式,应该按照各系统调用的特殊情况设计。此主控模块中的 测试环境清除的工作设计成两个部分,第一部分只负责清除测试环境中的通用部 分,第二部分提供具体系统调用环境清除模块的接口,调用具体的系统调用测试 程序中的环境清除模块完成。 在每个系统调用测试结束之后,清除用于存储测试记录的结构体; 禁用一些特权: 删除目录或文件; 关闭打开的文件等。 4 2 2 测试用辅助对象创建模块 用于为标准测试和特殊测试准备测试阶段需要用到的具有特殊属性的文件对 象,也属于测试的前期准备工作,不同系统调用各不相同。对于s e t u i d 等不需要文 件进行辅助测试的系统调用,就把这个模块置空。 4 2 3 标准测试模块 在系统调用安全测试中,标准测试的具体内容就是测试系统调用在配置不同 的主、客体安全属性情况下,系统调用是否能返回预期结果( 权限允许的情况下, 系统调用能执行;权限不允许,系统调用失败。) 如果系统调用执行成功,还要检 查系统调用执行前后主、客体的安全属性变化情况是否完整地满足了安全策略。 在此模块中,要预先设定测试所用对象,以及不同情况的测试函数,一般根据待 测系统调用的函数入参,即该系统调用能实现的功能来设置。在本系统中,标准 测试模块根据其功能实现情况又可以细分为以下几个子模块: ( 1 ) 系统调用执行子模块:按照设计的测试路径( 用不同的系统调用参数,创 建不同类型的客体,配置不同的权限) 执行系统调用,若配置的权限允许 执行,则系统调用会执行成功,返回0 ;若配置的权限不允许该系统调用 执行,则执行系统调用应该不会成功,返回1 ,同时给出对应的错误代码。 ( 2 ) 安全属性检查子模块:在系统调用执行对比系统调用前后主、客体的安全 属性变化是否满足安全要求。主、客体的安全属性具体包括主体的能力集 和客体的a c l ( 也可以包括强制访问控制中客体使用的别的安全属性,待 扩展,只需加入具体的判别规则即可) 。不是所有的系统调用测试过程中, 都需要安全属性的检查,视具体情况而定。 4 1 ( 3 ) 结果判定子模块:在标准测试过程中,预先设计的每一个场景都会执行一 次系统调用,也可以称之为一个测试用例。根据系统调用执行子模块和安 全属性检查子模块的运行情况,得出每一个测试用例的测试结果。在标准 测试的众多测试用例中,只要有一个测试用例没通过,则该系统调用的标 准测试失败。 4 2 4 特殊测试模块 特殊测试就是针对各个系统调用特殊目的的测试,主要是测试系统调用相关 安全支持功能,具体来说,就是除了标准测试中测到的典型权限配置下系统调用 常规的功能实现情况外,其余可能引发系统调用产生不安全状态的功能。表现在 不同的系统调用上,测试的方面肯定不同,这就明显不同于标准测试。顾名思义, 标准测试用同一种标准方式对系统调用的安全性进行测试,更趋向于一种统一的 模式,都是在不同权限配置下系统调用成功与否,以及安全属性的变化情况。而 特殊测试更灵活,针对具体系统调用自身的特点,设计的测试内容都会因系统调 用的不同而有所区别,因而称其为特殊测试。 从功能设计的角度来说,特殊测试模块类似于标准测试模块,都是进行测试 执行的部分。分为执行系统调用子模块和结果判定子模块。执行系统调用子模块 会在设计的不同场景下执行被测系统调用,同样检查系统调用的返回值及错误代 码( 如果返回值为1 ) 。结果判定子模块是对最后整个特殊测试结果的一个总结判 定。 4 2 5 测试配置库 测试配置库由不同的配置文件组成。从功能上来说,可以把配置库分为两级, 分别称为测试用一级配置库和测试用二级配置库。 ( 1 ) 测试用一级配置库:相当于测试用例库,为具体系统调用的测试提供不同 的主、客体权限配置数据等信息。针对不同等级要求的测试,设计不同的 配置数据文件。在一级配置文件中,用1 ,2 ,3 等序号来代替所选择的用 户、用户组,主体的权限集,客体的a c l 取值等具体信息。 ( 2 ) 测试用二级配置库:枚举了测试用一级配置库中可能用到的各种配置数据 等,分别用序号标注,供测试用一级配置库调用,根据一级配置库中的序 号选取具体的对应内容。如u s e r s 文件中定义了测试中用到的用户名及对 应的身份( 系统管理员、普通用户等) ;u i d s 文件定义了测试中会用到的 4 2 不同用户标识号u i d :p a c l s 文件定义了测试中用到的各种a c l 值等。 对测试配置库进行分级有以下好处: ( 1 ) 使测试配置数据修改更方便、更灵活; ( 2 ) 有利于配置信息的多处复用; ( 3 ) 在信息复用的同时更有利于信息的一致性等。 4 3 系统工作流程 本文设计的系统调用安全测试的原型是由单个系统调用的测试集成的,因而 就测试实现过程来说,系统调用之间是相对独立的,可以以单个系统调用的测试 流程来反映整个系统的工作流程,多个系统调用的测试自动化如何实现,会在后 面的章节中单独介绍。图4 - 5 较全面地覆盖了系统调用安全测试自动化的流程。有 些系统调用出于功能简单等原因,不需要用到这其中的全部步骤,只需要根据情 况适当选取这其中的一部分作为该系统调用的测试步骤。 4 4 单一系统调用测试程序编码实现 在系统的实现过程中,主控模块在m a i n c 文件中实现,测试用辅助对象创建 模块以及标准测试和特殊测试模块因具体系统调用而异,每个系统调用的标准测 试和特殊测试部分都实现在以该系统调用名命名的测试c 文件中。例如,t r e a t 系 统调用的测试文件就是c r e a t c o 4 4 1 主控模块的实现 程序主控模块就是一个测试引擎,通过函数指针结构体提供了标准的函数接 口,各个测试用例只要按照主控模块提供的标准接口函数实现相应的测试用例, 测试引擎会按照主控逻辑分别执行相应的测试工作,因此可以将工作的重点放在 每个系统调用的逻辑测试上,而不用关心主控模块的调整,因而提高了代码的复 用性。 在主控模块中,有几个用来记录测试信息的结构体,并作为测试实施部分( 标 准测试模块和特殊测试模块) 和测试配置库的中转站,协助测试实施部分进行属 性配置,并生成最后的测试报告等。 4 3 参 关闭除s t d i n 、s t d o u t 、 v s 自d e r r 之外的所有文件i 0 、r 创建对象,记录文件类 取得测试的种类、名称 型等信息 及标准和特殊测试列表 等信息 上 设置主、客体安全属性 壹鎏眵 l 记录当前主、客体所有i 属性值 从测试配置库中取得这 1 r 个系统调用标准测试的 入口 执行标准测试 、r上 取测试配置库中的相关 重取主、客体安全属性 数据初始化测试过程中 用到的相关数据结构 _ - 。_ 。一。 。“ 一一一。 r i 比对主、客体安全属性i 已 上 变化情况 从配置库中取得a c l , 分析测试结果, 给出结论 v 看芫孬蒹嘉瀛吵 、丫一一 有 _ _ f 执行特殊测试 1r 清除测试环境 生成测试报告 , 、 ( 、 结束 ) 图4 5 系统调用安全测试详细流程 f i g u r e4 - 5f l o wf o ra u t o m a t i ct e s t i n go fs y s t e mc a l l s 主要结构体说明 ( 1 ) 用于存储测试记录的结构体 s t r u c tt e s t r e c o r d s t r u c tt s t r c c f i e l dr f l d ; s t r u c tt s t r e c f l a gf f l g ; ; 结构体t e s tr e c o r d 中声明的两个结构体,前者是用来存储测试情况及安全属 性的,后者是对应信息的标志位,如表4 - l 所示。 表4 1t e s tr e c o r d 结构体定义 t a b l e4 1d e f i n i t i o no f t e s tr e c o r ds t r u c t u r e t s t r e c f i e l d 结构体t s t r e c _ f l a g 结构体 备注 c h a r f dt s tn a m e u n s i g n e df g _ t s t _ n a m e :1测试名称 c h a r f dt s tt y p e u n s i g n e df g _ t s tt y p e :1 测试类型 c h a rf d _ e x p _ m s g u n s i g n e df g _ _ e x p _ m s g :1预期结果 c h a rf d e r rm s g u n s i g n e df g _ e r rm s g :l 错误信息 c h a r f dr e sm s g u n s i g n e df g _ r e s _ m s g :1 实际结果 i n tf de i t n o u n s i g n e df g _ e r m o :l 系统调用返回的错误号 i n t f dr e t u n s i g n e df g r e t :1系统调用的返回值 c h a r f d _ a r g su n s i g n e df g _ a r g s :1系统调用的参数 u i dt f ds u b l u i d u n s i g n e df g _ s u b l u i d :1主体用户标识符 西d jf d _ s u b l g i du n s i g n e df g _ s u big i d :1 主体所在组号 i n t f do b jt y p e u n s i g n e df g _ o b jt y p e :l客体类型 o b j _ tf d o b j l i d u n s i g n e df g _ o b j 1i d :1 客体标识符 u i d tf d o b j1o w n e r u n s i g n e df g _ o b j1o w n e r :1 客体属主 g i d jf d o b j 1g r o u p u n s i g n e df g _ o b j1g r o u p :1 客体所在组 m o d e tf d _ o b j 1m o d e u n s i g n e df g _ o b j1m o d e :1客体访问模式 a c l e t 木f d _ o b j1a c lu n s i g n e df g o b j l a c l :1客体a c l a c l e t 拳f do b j ld a c l u n s i g n e df g o b j1d a c l :1 客体d e f a u l ta c l ( 2 ) 用于测试过程中存储主、客体属性的结构体 结构体t e s t _ _ p a r a m s 中的内容是t s t r e c f i e l d 结构体的子集,只存储主、客体的 4 5 j 匕瘟交道太堂亟堂位j 金塞 安全属性部分。 ( 3 ) 用于测试过程的结构体 p r 结构体test ( 4 ) 用于控制测试过程的结构体 s t r u c tt e s ts e t u p c h a r * t sn a m e ; 测试名称 i n t ( * * t s _ p s e t o b j e c t s ) o ; 调用测试用辅助对象创建模块 i n t ( * * t s _ p s t a n d a r d ) o ; 调用标准测试模块 i n t ( * * t s _ p s p e c i a l ) o ; 调用特殊测试模块 i n t ( * t s _ c l e a n u p ) o ; 环境清除 ) ; 程序主要函数说明: ( 1 ) d e t e r m i n et e s ts e t u p ( ) 确定测试实例和与测试用例对应的配置文件。 ( 2 ) s y s c a l l _ s e t u p o 对主控模块接i :1 函数指针实例化。 ( 3 ) i n i t 进行测试初始化。test() ( 4 ) p e r f o r m执行标准测试。standardtests() ( 5 ) p e r f o r m _ s p e c i a l _ t e s t s ( ) 执行特殊测试。 ( 6 ) c l e a n u p ( ) 关闭或删除文件等,清除测试环境。 主体逻辑说明: ( 1 ) 为了保证所有涉及到文件描述符相关测试的平台无关性,除s t d i n ,s t d o u t , s t d e r r 外,系统会自动关闭所有系统环境已经打开的文件描述符。 ( 2 ) 主控程序启动时调用d e t e r m i n et e s ts e t u p ( t e s t函数,获得待测系统调setup) 用的名称,以及所需配置文件的具体路径。 ( 3 ) 调用s y s c a l l s e t u p 函数对t e s t _ s e t u p 结构体进行初始化。s y s c a l l _ s e t u p 函数 提供了主控模块的接口,指定了测试哪个系统调用,以及标准、特殊测试 函数的入口。如果执行某个系统调用测试,只需要实现对应的 s y s c a l ! s e t u p ( t e s t 这个函数即可。 ( 4 ) 主控模块通过调用s e t u p ) i n i tt e s t ( & p rt e s t ,t e s ts e t u p t s s y s c a l ls e t u p ( t e s ts e t u p ) 中设置的t e s tn a m e ,到对应的配置文件中取得相 应的参数对p r结构体进行初始化。test ( 5 ) 程序调用s t d _ t e s t ( t f l d ,t f l g ,o b jl ,o b j 2 ,s t d _ c n t ) 开始进入标准测试控制阶段, 通过调用i p i t _ g e t _ a t t r i b u t e s ( t f l d ,t f l g , o l ,0 2 ) 函数将p r t e s t 结构体中取到的 测试用例参数赋予结构体t e s tr e c o r d ,并调用b u i l df i x e dp a r a m s c p a r a m s ) 函数将对应测试类型需要的测试参数赋予结构体t e s tp a r a m s 。 ( 6 ) 进入测试用辅助对象创建模块进行相关文件、目录的准备工作。 ( 7 ) 调用i n i ts e ta t t r i b u t o s ( t f l d ,t f l g , o l ,0 2 ) 函数,通过p r _ t 懿t 结构体对辅助对 象进行u i d 、郾等属性设置。然后调用g e t _ o b j _ c r e a t c d _ a t t r s ( t e s t _ v a l ,p a r a m s , o l ,0 2 ) 函数,将p l :t e s t 中未配置的其它客体自有的安全属性放入结构体 t c s t _ p a r a m s 中。调用s e t t e s t _ a t t r i b u t c s ( t c s t _ v a l ,m d ,t f l g , p a r a m s ,o l ,0 2 ) i 函 数根据测试类型对目标对象进行相关属性的设置,如a c l 测试则通过 s e t _ a c l s _ e p r i v s ( t c s t _ v a l u e s ,o l ,0 2 ,p a r a m s ) 函数将按照结构体p r _ t e s t 中设置 的a c l 相关测试用例的属性值对目标对象进行设置。 ( 8 ) 调用( * t e s t _ s , e t u p t s _ p s t a n d a r d i n d e x ) ( p a r a m s ,o b j j y p c ,o l ,0 2 ,埘来执行各 模块标准测试和验证逻辑。取得对应测试用例设置的标准测试个数,进行 循环验证。 ( 9 ) 完成标准测试,调用p e r f o r m数进入特殊测试模块。特殊s p e c i a lt e s t s o 西i 测试模块直接调用( t e s t _ s e t u p t s p s p e c i a l ) ( & p a r a m s ) 函数,通过函数指针 调用各个特殊测试逻辑。 o o ) $ y 试完成后,通过调用s t a t i ci n td e a n u r g ) 函数完成测试中内存释放,文件

温馨提示

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

评论

0/150

提交评论