(计算机应用技术专业论文)基于linux的安全操作系统的研究.pdf_第1页
(计算机应用技术专业论文)基于linux的安全操作系统的研究.pdf_第2页
(计算机应用技术专业论文)基于linux的安全操作系统的研究.pdf_第3页
(计算机应用技术专业论文)基于linux的安全操作系统的研究.pdf_第4页
(计算机应用技术专业论文)基于linux的安全操作系统的研究.pdf_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

摘要 隧麓计算机及网络技术魄飞速发展,馕息技术带给人类的影响r 益扩大,鄹 霹澎筵缮诗箕援系绞安全溺瑟嗣滚突窭嚣羹德凝氇来越复杂。 绦作系统安全是计簿机系统安全的豢础。本论文以l i n u x 操作系统为基础, 研究和开发安全操作系统,以保证我国政治、经济、军事等熬蒙部门及安全性滞 求高的系统有一个高可靠性的计算机系统。 整予l i n u x 开发安全攘 睾系统,主要怒对l i n u x 的安全瞧遴零亍增强。本论文 主羹在文件访闯控铡鞠特权管理这两方甏对l i n u x 静安全经送彳亍增强,即实琉了 细粒度的自主访问控制、强制访问控制、以及最小特权管理。 细粒度的自主访问控制允许用户对属于自己的客体可以按照自己的意愿,对 系统中的每一个用户授权及并确定它们的访问权限;强制访闯控制通过限制一个 鲻户逡程对繇安令缓懿寓体只寿哭读涛翊缎鞭、辩箨霹安全缀魏窖钵可读可写、 而对离安全级的客体只商只写访问权限,米加强对资源的安众保护;最小特权管 理将越级用户的特权分散给不同的用户。减少因超级用户权利过大而造成的系统 安全风险;此外,最小特权管理的设计,通过对文件授权以殿文件授权对可执行 文转懿影响,罄s e t c a p 程序,鼹决了鼹蠢系统中戆最大安全阏繇s e t u i d 程序给 系统带来的安全翘题,嘲时也可敬很好逢解决文 牛系统对特粳管理辊翩静强制。 关键词:操作系统安众访问控制 a b s t r a c t w i t ht h e d e v e l o p m e n t o ft h e c o m p u t e r a n dn e t w o r k t e c h n o l o g y , i n f o r m a t i o n t e c h n o l o g y a f f e c t sp e o p l ei n c r e a s i n g l y b u t c o m p u t e rs y s t e ms e c u r i t yb e c o m e sm o r ea n d m o r e i m p o r t a n t a tt h es a l d _ et i m e t h eo p e r a t i n gs y s t e ms e c u 6 t yi st h eb a s eo f c o m p u t e rs y s t e ms e c u r i t y , t h i sp a p e r r e s e a r c h sa n dd e v e l o p st h el i n u x - b a s e ds e c u r eo p e r a t i n gs y s t e mt os e c u r et h a tc o m p u t e r s y s t e m s t h a tn e e d h i g hs e c u r i t y i sh i g h l ys e c u r e d e v e l o p i n gt h el i n u x b a s e ds e c u r eo p e r a t i n gs y s t e mi sm a i n l yt oe n h a n c et h el i n u x o p e r a t i n gs y s t e ms e c u r i t y t h i sp a p e re n h a n c e st h el i n u xo p e r a t i n gs y s t e ms e c u r i t ym a i n l y b yf i n e s tg r a n u l a r i t yd i s c r e t i o n a r ya c c e s sc o n t r o l ( d a c ) 、m a n d a t o r y a c c e s sc o n t r o l ( m a c ) a n d l e a s tp r i v i l e g em a n a g e m e n t f i n e s tg r a n u l a r i t yd a ca l l o w st h a tt h eo w n e ro fa n o b j e c tc a nc h o o s et og r a n ta c c e s s p e r m i s s i o nt oa n yo t h e ru s e r m a cc o n t r o l s as u b j e c ta c c e s st oao b j e c tb ys u b j e c t s e c u r i t y l e v e la n do b j e c ts e c u r i t yl e v e l l e a s tp r i v i l e g em a n a g e m e n ts e p a r a t e sa l lt h e p r i v i l e g e o ft h er o o tu s e r , w h i c hc a nr e d u c et h es e c u r i t yh a z a r d b r o u g h ta b o u t as i n g l er o o t i na d d i t i o n ,s e t c a pc a ns o l v et h eh a z a r dw h i c hs e t u i di nt h el i n u xs y s t e mb r i n g s a b o u ta n dt h ef i l es y s t e m sl i m i tt op r i v i l e g em a n a g e m e n ta tt h es a m e k e yw 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 y a c c e s sc o n t r o l i i 昆明理工大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下进行研 究工作所取得的成果。本论文的研究成果决非任何其他个人或集体已经 发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体, 均已在论文中作了明确的说明并表示了谢意。本声明的法律结果由本人 承担。 学位论文作者签名:号p 丽 日期:z 印多年弓月,日 垦鳖垄兰查堂鬟j :璧堡鎏塞 1 1 问题的提出 第一章概述 渡蓉诗算瓠及潮终技术豹飞速发震、臻怠资源共享狴发瀚落一步热强,宅稻 在给人们的工作、生活带来方便和快捷的同时,随之而来的计算机系统安全问题 日盏突出。特别是因特网的大规模应用以及金融等重要网络的接入,使得计算机 系统入侵、窃取、篡改、毁坏重要数据信息等恶性事件时有发生而且愈演愈烈。 撰绫诗,理在全球平均簿2 0 秒铮就发生一熬i n t e r n e t 诗算撬入侵事馋。 如今,由于计算税豹广泛镬霜,诗算钒系统肉豹信怠已不仅仅只届限于个入 和众业的数据信息,而殿还包含了国家政治、经济、军事、文化、意识形态等备 方面的内容。因此,从大的方面来说,计群机系统安全关乎豳家安全、社会稳定 和经济发展。 a t & t 实验室豹s 。b e l l o v i n 薅圭骜经瓣荚嚣c e r t ( c o m p u t e re m e r g e n c y r e s p o n s et e r m ) 提供的蜜垒报告进行过分拼,结果表疆,报多计算机系统安全| 西 题都源于操作系统的安全脆弱性。 现代应用最广泛的w i n d o w s 系列操作系统在安全性方筒存在很多漏洞。虽然 w i n 2 0 0 0 在n t 基础上加强秘健全了安全桃傣,其安全性有了一定的提离,两近柬 整爨麴w i n d o w sx p 在灵添缝、稳定往彝安衾毪主篷w i n 2 0 0 0 又蠢了送一步豹撵 高,但是由于w i n d o w s 操作系统不提供源代码,像一个”黑鑫予” ,对它的安 全性难以进行估计和增强。此外,现已发现w i n 9 5 和w i n 9 8 都存在着将用户信息 发送到微软网站的”后门”,因此对于w i n d o w s 操作系统我们不能排除其中存在 蓉人为”陷醛”。 总之,要妥善簿决嚣益广泛兹诗算瓴系统安全运嚣,螫须鑫主硬麓安全操雩誊 系统。 近几年来,l i n u x 系统以它的高效性、灵活性以及开放性得到了蓬勃发展。 但是,目前的l i n u x 版本在安全方面存谯赣有许多的不足,其安全级别低于c 2 级。 鼠然l i n u x 在安全燃方面存在着不麓,但是,l i n u x 佟必囊由软件,其源代 码怒公开的,任何团体戚个人都可以对其谶行修改和完善。遮为我们自主研究开 发安众操作系统降低了门槛、提升了能力。我们可以结合现有的信息安全技术与 方法,基予l i n u x 资溺自主研制安全操作系统。 昆明理工大学硕士学位论文 1 2 安全操作系统的发展 1 2 1 国际 安全操作系统的发展历程分为四个阶段,分别是奠基时期、食谱时期、多政 策时期和动态政策时期。 奠基时期始于1 9 6 7 年启动的安全a d e p t 一5 0 项目。在这个时期,安全操作系统 经历了从无到有的探索过程,安全操作系统的基本思想、理论、技术和方法逐步 建立。这个时期典型的安全操作系统有:a d e p t 一5 0 、m u l t i c s 、u c l as e c u r e u n i x 、k s o s ( k e r n e l i z e ds e c u r eo p e r a t i n gs y s t e m ) 等。 食谱时期始于1 9 8 3 年美国的t c s e c 标准颁布之时,这个时期的特点是人们以 t c s e c 为蓝本研制安全操作系统。这个时期典型的安全操作系统有:l i n u si v 、 s e c u r ex e n i x 、s y s t e mv m l s 、s e c u r et u n i s 、a s o s ( a r m ys e c u r eo p e r a t i n g s y s t e m ) 、u n i xs v r 4 1 e s 等。 多政策时期始于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 的范围,在 安全操作系统中实现了多种安全政策。d t o s ( d i s t r i b u t e dt r u s t e do p e r a t i n g s y s t e m ) 是这个时期典型的安全操作系统。 动态政策时期始于1 9 9 9 年,这个时期的特点是使安全操作系统支持多种安全 政策的动态变化,实现安全政策的多样性。这个时期典型的安全操作系统有: f 1 a s k 、s e i ,i n u x 。 1 2 2 国内 相对来说,中国的安全操作系统的研制起步比较晚,但也开展了一系列的工 作。目前,我国正在加大力度,自主开发基于l i n u x 资源的安全操作系统,以保 证我国的政治、经济、军事等重要部门及安全性需求高的系统有一个高可靠性的 操作系统平台。 到目前为止,国内自主开发的基于l i n u x 的安全操作系统主要有:南京大学 开发的s o f t o s 安全操作系统、中科安胜信息技术有限公司研制的安胜安全操作系 统、中科院软件研究所研制的红旗安全操作系统r s l i n u x 等等。 昆明理工人学硕士学位论文 1 3 本论文研究的主要内容 本论文以l i n u x 一2 4 0 内核版本为基础,主要做了以下几个方面的工作:安 全操作系统概述;l i n u x 系统结构分析;l i n u x 安全机制的分析;参照t c s e c 中 b 1 级标准和中国国家标准 中第三级安 全标记保护级所要求的安全功能,开发基于l i n u x 的安全操作系统。 昆明理工大学硕士学位论文 第二章安全操作系统概述 2 1 安全操作系统的结构 安全操作系统的一般结构如图1 1 所示。l i n u x 系统的结构基本上同安全操 作系统的结构,这为基于l i n u x 开发安全操作系统提供了便利。 可信威用程序一般应用程序 与安全有关、安全无关的系统调用接口 安全内核 圈2 1蜜全操作系统的一般结构 安全内核是整个系统的灵魂,它除了要完成一般操作系统内核所要完成的功 能以外,还要为用户提供一个更加安全、可靠的应用环境。对于一般操作系统的 内核可能更多的重点是放在高效性上,但对于安全操作系统的内核,运行时的安 全性和可靠性是放在第一位的。安全性体现在安全内核需要有一套比一般操作系 统更复杂、更完备,同时也更可信的安全机制。可靠性则强调对于任何意外的情 况安全内核都能进行正确的处理,而不会出现不可预测的状态。 操作系统内核向上层提供的系统调用接口是应用层访问其它核心资源的界 面。在系统中,无论是操作系统自身提供的系统程序还是用户编写的应用程序, 在运行时,其对应的进程只能访问它自己的用户地址空间的指令和数据,而不能 直接访问内核地址空间和其它进程地址空间的指令和数据,也不能直接访问内核 所管理的其它资源( 如设备、文件等) 。当需要访问这些指令、数据和资源时, 进程只能通过系统调用接口,请求内核提供服务,而内核接受请求并以调用进程 的身份执行内核中某一特定过程,以实现特定服务。由于系统调用接口是内核 的”门户”,一般的操作系统都会对进程的系统调用请求进行检查,以避免进 程有意或无意的非法访问,而对于安全操作系统则要求这种检查机制必须更加安 昆明理工大学硕士学位论文 全可靠。 可信应用程序是指具有某些特权操作的应用程序,而一般应用程序是指不含 有任何特权操作的应用程序。 系统中存在一些敏感操作,而为使系统能够满足实际的需要,系统必须允许 这些敏感操作。所谓敏感操作是指如果操作不当或操作者怀有恶意则可能给系统 带来危险的操作。一般地,特权操作指的就是敏感操作,而特权则指的是能够进 行敏感操作的能力。 2 2 安全操作系统的安全功能 根据t c s e c b l 级标准和中国国家标准g b l 7 8 5 9 1 9 9 9 中第三级安全标识保护级的要求,安全操作系统应该提 供的安全功能如下: 1 1 身份标识与鉴别 身份标识与鉴别是安全操作系统最基本的功能。其主要职责是控制用户对系 统的访问权力。 对该功能的具体要求是:允许授权用户赋予系统内的每一用户以唯一身份标 识信息;在用户登录系统时,要求主体标识自己,然后根据用户的身份标识信息 鉴别用户的合法性,防止用户对系统的非法访问;同时,要确保鉴别用户的数据 信息不被非授权用户访问。 根据鉴别技术的发展,主体的标识信息可以为:用户名与口令、智能卡、生 理信息( 如声音、指纹、虹膜) 等。其中,口令简便易行,但容易猜测和泄漏, 所以基于用户名与口令实现身份标识与鉴别机制的系统其安全性较低;智能卡一 般都是用密码学机制和物理防篡改机制来设计实现的,很难伪造,所以基于智能 卡实现身份标识与鉴别机制的系统其安全性较高;生物的有些生理信息具有唯一 性、难伪造的特点,所以基于生理信息实现身份标识与鉴别机制的系统能达到很 高的安全性。 2 ) 自主访问控制( d a c ) 自主访问控制也是安全操作系统最基本的功能,但是安全级别不同,具体的 要求也不同。其主要职责是控制系统内主体对客体的访问。 对该功能的具体要求是:允许授权用户赋予系统中的每一个用户以唯一标 识;对系统中每一个被保护的客体,允许其所有者自主地为其指定允许访问它的 昆明理工大学硕士学位论文 主体( 主体粒度为系统中的任一单个用户) ,并分别规定这些主体对该客体的访 问模式,通常用一个访问控制矩阵来表示;当主体访问客体的时候,根据主体的 标识信息以及被访问客体的访问控制矩阵中的访问控制信息( 为客体指定的可访 问主体以及他们对该客体的访问模式) 检查访问的合法性,防止主体对客体的非 法访问;同时,要确保非授权用户不能修改或破坏控制矩阵中的访问控制信息以 及用户的唯一标识信息。 实施自主访问控制,系统需要将每个客体的访问控制矩阵中的访问控制信息 以某种形式保存起来。基本上有两种保存形式:在每个主体上都附加一个该主体 可访问的客体的明细表,采用这种形式保存访问控制信息的自主访问控制机制称 为基于行的自主访问控制机制;对每个客体都附加一个可访问它的主体明细表, 采用这种形式保存访问控制信息的自主访问控制机制称为基于列的自主访问控制 机制。 3 1 强制访问控制( m a c ) 其主要职责是控制系统内主体对客体的访问。 对该功能的具体要求是:允许授权用户为系统中的每一个被保护的客体f 如 文件、消息队列等) 指定两种或两种以上的敏感标记( 安全级) ,同时根据系统 用户的级别,给不同的用户分配相应的敏感标记( 安全级) :当主体访问客体 时,根据主体和客体的安全级、以及”主体一客体安全级支配规则”检查访问的 合法性,防止主体对客体的非法访问;同时,要保证系统中的所有安全级信息不 被非授权用户访问。 这些安全级可以是线性的,如公开、秘密、机密和绝密等,也可以是一个集 合,如研发部、工程部、市场部等,则安全级如 秘密、研发部、工程部 。 这里的”主体一客体安全级支配规则”是指:仅当主体的安全级支配客体的 安全级时,主体才可读取客体;仅当客体的安全级支配主体的安全级时,主体才 可以写客体。所谓支配是指:主体的所有线性安全级的级别大于或等于客体的相 应线性安全级的级别,而主体的所有集合安全级包含客体的相应集合安全级。 4 ) 安全审计 安全审计是模拟社会监督机制而引入计算机系统中的。其主要职责是将系统 内与安全相关的每一事件完备记录保存下来,以便为事前防护和事后追查提供详 细、可靠的依据和支持。 对该功能具体要求是: 记录系统内的下列类型事件:标识与鉴别机制的使用:客体引进用户地 昆明理工大学硕士学位论文 址空间( 如文件打开、程序初始启动) ;删除客体:计算机操作员和系 统管理员或系统安全员进行的活动;对可读输出记号( 如输出文件的安 全级标记等) 的更改;以及其它与安全有关的事件。 要确保审计数据不被非授权访问。 对所记录的每个事件,审计记录要标识该事件的日期和时间、用户、 事件类型、该事件的成功或失败。对于标识与鉴别事件,审计记录要标 识请求的来源( 如终端i d ) 。对于客体引进用户地址空间事件和客体删 除事件,审计记录要包括该客体的安全级。 系统在记录审计事件时,是一个写入过程,这自然会给系统带来一些时间上 的开销,为了将系统的开销减少到最低程度,审计机制的设计及实现应该考虑在 系统中开辟一片审计缓冲区并设计一个审计进程,每次有一个记录时只需将审计 信息写入该审计缓冲区中,只是在缓冲区已经写满或者其中容量达到规定的最大 上限时,审计进程才一次性地将审计缓冲区中的有效内容全部写入。 由于审计过程会增大系统的开销( c p u 时间和存储空间) ,影响系统的性能, 所以安全审计机制的设计与实现,还应该考虑提供灵活的选择手段,使系统管理 员可以开启关闭安全审计机制,增加减少审计事件类型,修改审计控制参数 等。 5 1 客体重用 客体重用的主要职责是防止客体再次分配时,新主体获得原主体活动所产生 的任何信息。 对该功能的具体要求是:释放一个客体时,释放其目前所保存的所有数据信 息,以确保当它再次分配时,新主体不能据此获得原主体的任何信息。 6 1 最小特权管理 最小特权管理符合安全操作系统设计原则一最小特权原则的要求。其主要职 责是为使无意或恶意的攻击所造成的损失达到最低限度,对于系统中的每个用户 和程序,必须按照”需要”原则,使其尽可能地使用最小特权。 对该功能的具体要求是:取消超级用户的存在,将系统的特权化分成一组细 粒度的特权,分别赋予不同的用户,如系统管理员、系统安全员、用户管理员 等,使他们只具有完成其任务所需的特权,而不给予超过执行任务所需特权以外 的特权;保证系统中的进程只具有完成任务和功能所需的最小特权。 昆窝理工丈学硪+ l :学位论文 2 3 安全可信性 安全操作系统的安全可信性,依赖j 二以下几个方面 安全操作系统功能在系统中实现的完熬性。 文挡瓣潼瘊畿。 系统测试的完锯性。 形式化验证程度。 2 + 4 安全操作系统的设计原则 蜜垒搡手# 系统敷设计必须遵循安全璨轳系统的设计藤粼。两安全僳护系统酌 设计原则如下: 最小特权原则。为使无意或恶意的攻击所造成的损失达到最低限度,对 于系统中的每个用户和程序,必须按照”需要”原则,使其尽可能地使 震最小特权,帮只绘予完成其联爨鬃完残鹣 壬务或搽董誊凝嚣要静特投, 限制绘予超过其掰需特权戳终的任俺特权。 机制的经济性。保护系统的设计成小型化、简单、明确。同时保护系统 应该是经过完备测试或严格验证的。 开放系统设计。僳护枧制应该是公开孵,安全性不依赖于保密。虽然, 爰密会襞渗透一个系统璜热一定瓣雅度,整是系绞豹安全毪不盔莰羧予 系统设计的保密性,丽是要通过健众的安全机制来史蕊。在将必要的枫 制加入系统后,废使得即便是系统开发者也不能侵入避个系统,这才是 真正的安全。 完整的访阀控制机制。对每个访瓣,系统都必须进行会法性检查,防止 j 法存取。 基于“允许”的设计原则。应当标识什么资源是可存取的,而不应该标 识什么资源是不可存取的。 权限分离。在理想情况下,对实体的访问应该依赖于多个条件,以确保 侵入系统戆人格不会稠寿对全部燮源豹访阕。 避免信意流豹辩在通道。可共享囊体提供了信惑流的潜在通道。系统威 采取物理或逻辑分离的方法,以防止这种潜在通道。 方便使用。系统应该为用户提供发好的用户接口。 安全操作系统,一方蕊要执行进程管蠼、文件系统管理、存储管理以及设备 昆明理工大学硕士学位论文 管理等操作系统功能,而另一方面又要执行系统的安全管理功能以保证系统安 全。对于一个具有这么多复杂功能的系统来说,测试其安全性是很困难的,因 此,在设计开发安全操作系统时,应该以尽量小的操作系统部分控制整个安全操 作系统的安全性,同时使这一小部分软件便于测试,从而使用这一小部分软件的 安全可信性来保证整个安全操作系统的安全可信性。 2 5 安全操作系统的开发方法 在一个现有非安全操作系统基础上开发安全操作系统,一般有以下三种方 法:虚拟机法、改进增强法和仿真法。 应用程序 非安全操作系统 硬件 原有系统 应用程序 安全内核 硬件 应用程序 非安垒操作系统 安全棱 硬件 虚拟机系统 应用程序 仿真程序 安全内核 硬件 改进增强型系统 仿真型系统 罔2 2 1 ) 虚拟机法 如图2 2 所示,在现有非安全操作系统内核与硬件之间增加一个新的分层, 作为安全核,实施安全操作系统的安全功能,并且安全核的接口几乎与原有硬件 昆明理工大学硕士学位论文 等价,而原有操作系统作为虚拟机运行于这个安全核心之上,其本身并未意识到 己被安全核控制,仍然象在裸机上一样执行它自己的多进程管理、内存管理、文 件系统管理及设备管理等功能。 采用该种方法开发的安全操作系统,能够不变地支持原有的应有程序,且能 很好地兼容原有系统的将来版本。但是,硬件特性对虚拟机法的实现非常关键, 它要求原有系统的硬件和结构都要支持虚拟机。 2 ) 改进增强法 改进增强法如图2 2 所示,在保持原有系统体系结构的基础上,根据安全 操作系统所要求的安全功能,对现有操作系统加入相应的安全机制。 这种方法不破坏原有系统的体系结构,开发代价小,且能很好地保持原有系 统的用户接口界面和系统效率。但是,由于受体系结构和现有应用程序的限制, 很难达到很高的安全级别。本论文的基于l i n u x 的安全操作系统的研究与开发就 是基于该方法来实现的。 3 ) 仿真法 仿真法如图2 2 所示,这种方法不考虑保持原有系统的体系结构,根据安全 操作系统所要求的安全功能对现有操作系统进行修改,然后在安全内核( 修改后 的原有内核) 与原有系统的用户接口界面之间,再编写一层仿真程序,以支持现 有应用程序。 采用这种方法能不变地支持现有的应用程序。但是需要同时设计仿真程序和 安全内核:同时由于受原有操作系统接口的限制,仿真程序实现困难。 2 6 安全操作系统的开发过程 在一个现有操作系统上开发安全操作系统,可采用如图2 3 所示的过程来实 现,该过程分为三个阶段:安全模型的建立、安全机制的设计与实现、安全可信 度认证。 1 ) 阶段一:安全模型的建立 在该阶段,首先是进行安全需求分析归纳出要开发的安全功能,然后针对这 些安全功能,进行抽象归纳并确定系统的安全策略,随后是根据系统的安全策略 为系统建立安全模型。安全模型建立后,要进行模型与系统的对应性说明。 安全需求分析主要是根据安全操作系统所要求的安全功能,分析现有操作系 统在安全上的不足,然后根据这些安全缺陷,并权衡可行性因素( 如时间、经济 1 0 昆明理工大学硕士学位论文 的承担能力等) ,确定要开发的安全功能。 确定了要开发得安全功能后,下一步就是要确定为实现这些安全功能所要采 取的安全策略。一般而言,这个步骤所得到的安全策略更多的是一些经验性的判 断。安全策略确定后,必须要建立安全模型,以利于正确评价模型与实际系统间 的对应关系。根据安全策略建立安全模型时,可以结合现有的信息安全技术与方 法,并参考现有的已被证明了的安全模型。 安全模型与系统的对应性说明主要是完成两个方面的任务:说明所建安全模 型与安全策略的一致性;由于我们是在一个现有操作系统上开发安全操作系统, 所以还应说明如何将模型用于系统开发之中。 图2 3 安全操作系统的开发过程 2 ) 阶段二:安全机制的设计与实现 在该阶段,首先要现上一阶段所建立的安全模型,即对上一阶段所得到的安 全模型进行安全机制的设计与实现,在每一安全机制的设计与实现完成之后,都 需要进行安全功能测试。 昆明理工大学硕士学位论文 安全机制的设计与实现,要综合考虑安全机制的完备性、与原有系统的兼容 性及系统的效率等因素,并结合系统自身的特点和将来的发展,选择一个合适的 方法,使得开发后的安全操作系统具有最佳安全开发代价比。与此同时,要结 合安全操作系统结构的各个层面进行全面考虑。 3 ) 阶段三:安全可信度认证 一般说来,评估操作系统安全性的方法有三种:形式化验证、非形式化确认 和入侵分析。这些方法可以独立使用,也可以将他们综合起来进行可信度评估。 所谓的形式化验证即将安全操作系统的安全功能简化为一个要证明的”数学 定理”,通过数学证明的方法,验证该定理的正确性。该方法是分析操作系统安 全性最精确的方法。但是,对于某些大的实用系统,试图以数学的方式描述及验 证其安全性是困难的,甚至是根本不可能的,特别是那些在设计时并未考虑形式 化验证的系统更是如此。 形式化确认主要包括以下几个方面: 安全需求检查。通过源代码和系统运行时所表现的安全功能交叉检查操 作系统的每个安全需求。其目标是,认证对系统的每个功能需求,在系 统中都已被实现。这一过程有助于说明系统已经做了它应该做的每件 事,但是并不能保证系统没有做它不应该做的事情。 设计及代码检查。设计者及程序员仔细检查系统代码,试图发现设计和 编程错误。这部分工作一般是在编写程序时进行的。 模块及系统测试。由程序员或独立测试小组组织测试数据检查每条运行 路线、每个条件语句、每个变量的更改等等。 所谓入侵分析是指由掌握操作系统典型安全漏洞人员,试图发现并利用系统 中的这些安全缺陷以摧毁正在测试中的安全操作系统。 昆明理工大学硕j 二学位论文 第三章l in u x 系统结构 1 9 9 1 年,芬兰赫尔辛基大学的一名学生l i n u st o r v a l d s 编写了一个运行于 8 0 3 8 6 处理器上虽然简单但功能齐全的操作系统内核。l i n u st o r v a l d s 把它命名 为l i n u x 。这就是l i n u x 最早的雏形。l i n u x 是一种类u n i x 操作,它给人的感觉 非常象别的u n i x 操作系统。实际上,l i n u x 的一个主要的设计目标就是和u n i x 操 作系统兼容。 从l i n u x 发展的初期开始,l i n u x 内核的源代码就可以在i n t e r n e t 上免费获 得。这使得全世界许多对这个操作系统的开发感兴趣的程序员可以通过网络互相 协作从而不断对它进行完善。渐渐的,l i n u x 从初期的一个仅仅实现了部分的 u n i x 系统服务的原始内核,发展成为一个实现了大部分u n i x 功能并有着自身特点 的操作系统。 3 1lin u 操作系统内核的演化 在1 9 9 1 年5 月1 4 日,l i n u x 的第一个内核版本0 0 1 版正式发布。从今天的观 点来看,这个内核是非常简单的。它不支持网络,只能运行在8 0 3 8 6 兼容的c p u 以及i b mp c 机系列的硬件上,并且只有很少的设备驱动程序支持。它的虚拟内存 子系统也是相当简单的,并且不支持内存映射文件,唯一支持的文件系统是 m i n i x 文件系统。然而,即便是这个最简单的l i n u x 内核却支持如共享页面和写 时拷贝等机制,并且也完全的实现了象u n i x 进程那样的地址空间保护功能。 1 9 9 4 年3 月1 4 同,l i n u x1 0 这个具有里程碑式的内核版本正式发布。和三 年前的0 0 1 版相比,这个内核版本有了很大的改进。最为突出的一点就是它对网 络的支持:1 0 版本的内核不仅提供了对标准的t c p i p 协议的支持,还提供了一 套和f r e e b s d 兼容的用于网络编程的s o c k e t 套接字接口。1 0 版本的内核已经不 仅仅只支持最初的m i n i x 文件系统,它包括了一个全新的文件管理系统,并且该 文件管理系统还提供了对用于高性能磁盘存取的s c s i 控制器的支持。在内存管理 方面,l i n u x 的开发者们对原有的虚拟内存子系统进行了很大改进,使得该系统 不仅支持页式交换文件,还支持对任意文件进行内存映射。虽然这个版本所支持 的硬件仍然只限于i b mp c 兼容平台下的各种设备,但是所支持的设备驱动程序的 比起以前则丰富的多:软盘驱动器,c d r o m 设备,声卡,鼠标,标准化的键盘等 设备在这个版本中得到了支持。对于浮点运算协处理器的模拟在这个版本中也得 昆明理工大学硕上学位论文 到了支持。l i n u x l 0 内核还实现了一套类似于u n i xs y s t e mv 的进程间通信 ( i p c ) 机制,如共享内存,信号量,消息队列等。也是从这个版本开始,l i n u x 开始提供简单的内核模块动态加载和卸载的机制,也就是我们常说的l i n u x 的 m o d u l e 机制。这个机制是l i n u x 操作系统的一大特色。 1 9 9 5 年3 月,l i n u x l 2 内核版本发布。和1 0 相比,这个内核版本的最大特 色在于对更多的标准的支持。该版本包括了对当时较新的p c i 总线体系结构标准 的支持,这让它得以支持更多的p c i 硬件。8 0 3 8 6 c p u 的v m 8 6 模式也得到了支持, 使得l i n u x 可以模拟d o s 操作系统。这个版本的开发者们还完善了网络协议栈并 提供了对i p x 协议的支持,同时完善了记帐和防火墙功能。除此以外,这个版本 的内核还支持一些非i n t e li 3 8 6 的体系结构,如s u ns p a r c ,a l p h a ,m i p s 等。 在1 9 9 6 年6 月,l i n u x 2 0 内核版本发布。和1 0 的内核版本相比,这个版本 的内核同样具有里程碑式的意义。最为突出的一点就是它开始支持多处理器体系 结构,包括6 4 一b i t 的a l p h a 多处理器体系结构,s u n 的s p a r c 多处理器体系结 构,m o t o r o l a 6 8 0 0 0 系列c p u 也得到了支持,这代表着l i n u x 不仅仅在桌面p c 上 获得了应用,在服务器上它也开始占有席之地。并且在嵌入式操作系统领域它 也丌始表现出越来越高的应用价值。在内存管理和文件系统方面,2 0 内核也有 了一个质的飞跃,它提供了一个统一的独立于块设备缓冲系统的文件系统c a c h e ( 这在l i n u x 中称为虚拟文件系统v f s ) ,这个改变直接导致了该内核对大量的 文件系统甚至网络文件系统( n f s ) 的支持以及虚拟内存性能上的进一步改善,并 且这也是第一次文件系统缓冲扩展到了网络文件系统。2 o 内核也进一步加强了 对网络的支持,除了对原有的协议如t c p i p 等进行性能上的改进以外,这个内核 也加入了对a p p l e t a l k ,x 2 5 ,i s d n 等网络协议的支持,同时也提供了对于 n e t w a r e ,s m b ( m i c r o s o f tl a n m a n g e r ) 等j f u n i x 操作系统的网络进行远程登 录的功能。这个内核另外的一些特征和1 0 版本的内核也有着很大的不同,例如 实现了一种用于动态的对模块进行按需加载的内核线程,这使系统运行时的动态 内核设置功能有了很大改进,同时也提供了一个新的、标准化的操作接口。此 外,这个内核也支持p o s i x 实时进程调度标准。 纵观l i n u x 的内核发展历程,可以看到,初期的l i n u x 系统所追求的目标是 最大限度的对计算机硬件资源进行有效的利用。但随着l i n u x 应用的日益广泛, 后期的l i n u x 更多注重的是对成熟标准的支持,这也是l i n u x 得以广泛使用的最 大原因。因此,我们设计安全操作系统时,要在满足安全性要求的前提下,使系 统最大限度地符合标准。标准是任何操作系统都必须要考虑的重要因素。 昆明理工大学硕士学位论文 3 2 l i r l i x 操作系统的组成 如图3 1 所示,l i n u x 操作系统主要由四个部分组成:内核、系统调用接 口、系统共享库、系统程序。其中,系统运行于核心层时,称系统处于核心态 ( 内核模式) ,而运行于l i n u x 内核以上时,称系统处于用户态( 用户模式) 。 3 2 1 内核 图3 1l i n u x 系统的组成 朋户层 接口腔 援心层 l i n u x 内核主要由进程调度、存储管理、进程间通信、文件管理、网络子系 统这五个子系统组成,形成了整个l i n u x 系统的核心,决定着系统的性能和稳定 性,同时隐藏所有的实现细节,为来自于上层的请求提供接口( 系统调用接口) 服务。稍后,我们将分别介绍这五个子系统。 此外,l i n u x 内核支持可加载内核模块( l i n u xk e r n e lm o d u l e ,简称l k m ) 机 制,这使得我们可以方便地在内核中添加新的组件,以实现对l i n u x 内核功能的 扩充,这种加载是动态的,即可以根据需要加载或卸载内核模块,并且不需要重 新编译内核。通过动态地将代码装入核心可以减小代码的规模,使核心配置更为 灵活。l i n u x 系统中的大多数设备驱动程序和文件系统都是以可加载内核模块的 方式实现的。这种机制为我们在基于l i n u x 进行安全操作系统的开发时提供了更 加方便、高效的调试手段。 昆明理工大学硕士学位论文 3 2 2 系统调用接口 系统调用接l 是应用程序访问计算机系统内的其它资源( 包括内核和其它进 程的指令和数据,硬件设备、文件等等) 时,必须使用的界面。 3 2 3 系统共享库 系统共享库又称系统库。它定义了一系列标准的功能接口,以便应用程序能 和内核进行独立于平台的交互,并且能在同一底层内核之上提供对遵从不同标准 的应用程序的支持。此外,系统库也可以实现一部分不需要内核级优先权的操作 系统功能。 系统共享库对内核的系统调用进行封装,并使各种应用程序通过它所封装的 接口对内核所提供的系统调用进行请求。众所周知,进行一个系统调用涉及从用 户级特权向内核级特权的转换,不同的计算机体系结构中这个转换过程都是不同 的。系统库仔细检查由应用程序所传过来的系统调用入口参数的有效性和合法 性,并根据不同的体系结构来安排这些入口参数的格式,以满足不同的体系结构 的要求。这可以看作是系统共享库对底层硬件体系结构差异的封装。 系统共享库的另一个重要的功能就是提供对各种不同标准( 例如u n i x 、 p o s i x 、c ) 的支持。这主要也是通过对内核的系统调用进行封装来实现的。按照 各种标准的要求,系统共享库在底层的系统调用基础上,实现各种标准所要求的 接口和规范,从而使遵从不同标准的应用程序,通过共享库都能在l i n u x 系统上 运行。 此外,l i n u x 的系统共享库还提供了一些常用的不涉及操作系统内核的功能 函数,如排序,数学运算,字符串操作等标准例程。 3 3 4 系统程序 系统程序是由操作系统自身所提供的一组程序,主要用于执行一一些独立的、 特殊的系统任务。它们和普通应用程序一样,也是通过系统共享库接口来请求操 作系统服务。系统程序主要包括系统初始化程序、系统服务程序、编译程序 ( c o m p i l e t ) 、链接程序( 1 i n k e r ) 、系统管理程序、用户实用程序。 系统初始化程序用于在操作系统初始化时对系统的某些运行特征进行设置。 一个灵活、健壮的操作系统必须允许对某些特征进行设置,以满足不同情况下的 需要。这些特征包括如默认缓冲区的大小、最大可分配内存的上限以及所要使用 昆明理工大学硕士学位论文 的网络协议等。系统初始化程序根据对这些特征的配置进行相应的系统设置以调 整系统的运行特征。 系统服务程序用于协助操作系统的运行。系统在完成某些功能时,出于效率 的考虑,是通过一些专门的进程协助操作系统来完成任务的。这些进程所对应的 程序就是系统服务程序。系统服务程序包括处理用户登录请求的服务程序、处理 网络连接的服务程序、对打印机队列进行管理的程序、以及审计服务程序等。它 们所对应的进程一般被设置为守护进程( d a e m o n ) 。 系统管理程序是一系列供系统管理员进行系统管理工作的工具程序。 用户实用程序是一组用户使用系统时所需要的界面程序。它们提供了一个 l i n u x 用户环境,为用户使用系统提供了一个友好的界面环境。这类程序包括命 令处理程序,文本处理程序等等。 3 3l i n u x 的进程调度 l i n u x 系统使用一种基于时间片的调度算法实施进程调度。在进程刚被创建 时,进程控制块( p c b ) 中的c o u n t e r 的值被设鹭为父进程的一半。在进程运行过 程中,由时钟中断对c o u n t e r 的值不断地进行减小直到为0 。当减到o 时,标志 该进程应该放弃对c p u 的使用权,这时时钟中断对这个进程打上标记,表示它应 该放弃c p u 给其它的进程,但此时并不立刻进行进程调度操作,而是在如下几种 情况下才进行进程调度;当前进程由于某种情况而处于等待状态从而进入等待队 列时、当前进程终止时、当前进程从系统调用返回到用户态时或由中断处理程序 返回时。当所有处于运行队列中的普通进程的时间片都用完时,在进程调度操作 中用n i c e 值对所有进程的c o u n t e r 值进行赋值( 般是2 0 0 m s ) 。 l i n u x 的进程调度操作是由内核函数s c h e d u l e ( ) 来完成的。该函数首先决定 是否需要进行进程切换,如果要进行进程切换,这个函数根据所有处于运行队列 中的进程的进程控制块中的p o l i c y 、n i c e 、c o u n t e r 、a _ p r i o r i t y 这四个属性值来计 算运行队列中每个进程的权值( w e i g h t ) ,选择其中权值最大的进程或得c p u ,并 切换到这个进程中运行。其中,p o l i c y 是进程的调度策略,用来区分两种进程一 实时进程和普通进程;n i c e 是进程的优先级;c o u n t e r 是进程的剩余时间片:而 n p r i o r i t y 是实时进程的优先级。 昆明理工大学硕士学位论文 3 4l in u x 存储管理子系统 l i n u x 的存储管理主要由两个部分组成,一个用于物理内存的分配和释放, 一个主要用于虚拟内存空间的管理。 l i n u x 对物理内存的管理是通过页面分配器来实现的。页面分配器使用伙伴 算法对物理页面进行管理,它分配和释放全部的物理页面,并且能够分配连续的 物理页面。但是一般来说,l i n u x 内核的其它部分并不完全直接利用页面分配器 获得物理内存,而是使用一些在存储管理子系统中实现的专用的内存管理模块所 提供的接口来获得物理内存。这些内存管理模块构建于页面分配器之上,即在页 面分配器所提供的分配和释放的接口之上再实现一组它们自己的内存分配和释放 接口。这主要是考虑到在个系统中内存可能被用于多种用途。例如对于内核所 使用的各种结构体,它们所占用的内存空间大多数远小于一页,但页面分配器的 最小分配单位却是一页,因此有必要设置一个专用的内存管理模块来对这些内核 结构体所使用的内存进行分配和释放,在l i n u x 系统中这个专用的内存管理模块 就是k m a l l o c 变量分配器,又称s l a b 分配器。其它类型的专用内存管理模块有 b u f f e r 缓冲、页缓冲等。b u f f e r 缓冲主要用于块设备,例如磁盘驱动程序等,通 过它可以改善i o 的性能;而页缓冲主要用于文件系统,通过它可以使文件系统 的运行性能获得提高。这些专用的内存管理模块其设置的目的都是和系统中不同 类型的内存使用方式密切相关。 虚拟内存是现代操作系统中的一个重要的概念。在l i n u x 中,每一个用户进 程都可以访问4 g b 的线性虚拟地址空间。其中,从0 到3 g b 的虚拟地址空间是用 户态

温馨提示

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

最新文档

评论

0/150

提交评论