课程设计Linux操作系统安全性的研究.docx
《课程设计Linux操作系统安全性的研究.docx》由会员分享,可在线阅读,更多相关《课程设计Linux操作系统安全性的研究.docx(17页珍藏版)》请在冰点文库上搜索。
![课程设计Linux操作系统安全性的研究.docx](https://file1.bingdoc.com/fileroot1/2023-5/1/ac510947-b54b-438a-aa96-e586dc1bf400/ac510947-b54b-438a-aa96-e586dc1bf4001.gif)
课程设计Linux操作系统安全性的研究
计算机与信息学院
课程设计报告
课程名称:
操作系统
实习题目:
操作系统安全性研究
姓名:
系:
专业:
计算机科学与技术
年级:
学号:
指导教师:
职称:
2009年12月16日
*******大学计算机与信息学院信息工程类
课程设计报告结果评定
评语:
成绩:
指导教师签字:
评定日期:
目录
1.课程设计的目的1
2.课程设计的要求1
3.课程设计报告内容1
3.1系统安全性的基本概念1
3.1.1系统安全性的内容1
3.1.2系统安全威胁类型...................................................................................1
3.1.3系统安全性的主要目标2
3.2系统安全的技术指标2
3.2.1标识与鉴别机制3
3.2.2访问控制4-5
3.2.3最小特权管理6
3.2.4可信通路6
3.2.5安全审计机制7
3.2.6存储保护、运行保护和I/O保护7
3.3Linux操作系统的安全机制8-11
3.4Linux安全性的提高11-13
4.问题讨论与分析13
5.结束语13
参考文献14
系统安全性研究
1.课程设计的目的
课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析系统,解决实际问题的能力。
提高学生分析系统、实践编程的能力。
2.课程设计的要求
考察操作系统安全性的技术指标;分析这些技术指标的合理、有效性;以某操作系统LINUX安全性作进一步的分析研究。
认真完成本课程设计的全部过程。
并以最终课程设计成果来证明其独立完成各种实际任务的能力。
从而,反映出理解和运用本课程知识的水平和能力。
3.课程设计报告内容
3.1系统安全性的基本概念
3.1.1系统安全的内容。
系统的安全性可以包括侠义安全概念和广义安全概念两个方面。
前者主要是只对外部攻击的防范,后者则是指保障系统中数据的机密性、完整性和系统的可用性的概念。
当主要使用广义的安全概念。
系统安全性包括三个方面的内容,即物理安全、逻辑安全和安全管理。
物理安全是指系统设备及相关设施受到物理保护,使之免遭破坏或者丢失。
安全管理包括各种安全管理的政策和机制。
逻辑安全是指系统中信息资源的安全,它包括:
数据机密性、数据完整性和系统可用性。
3.1.2系统安全威胁类型
为了防范攻击者的攻击,必须了解攻击者威胁系统安全的方式。
攻击者可能采用的攻击方式层出不穷,而且还会随着科学技术的发展,不断形成许多新的威胁系统安全的攻击方式,当前几种主要的威胁类型。
①假冒用户身份。
②数据截取。
③拒绝服务
④修改信息
⑤伪造信息
⑥否认操作
⑦中断传输
⑧通信量分析
3.1.3系统安全的目的:
操作系统是硬件和其他应用软件之间的连接桥梁,它所提供的安全服务主要包括:
内存保护、文件保护、普通实体保护(对实体的一般存取控制)、存取鉴别(用户身份的鉴别)等。
系统安全的主要目标:
①按系统安全策略对用户的操作进行访问控制,防止用户对计算机资源的非法使用(窃取、篡改和破坏)
②标识系统中的用户,并对身份进行鉴别
③监督系统运行的安全性
④保证系统自身的安全行和完整性
3.2系统安全的技术指标
3.2.1标识与鉴别机制
㈠标识与鉴别机制
标识是用户要向系统表明的身份。
每个用户都具有一个系统可以是识别的内部名称,即用户标识。
用户标识可以是用户名、登录ID、身份证号或者智能卡等。
用户一旦完成了身份标识,这个身份标识就要对该用户的所有行为负责,操作系统通过标识来跟踪用户的操作。
因此,用户标识必须是唯一的并且不能伪造的。
用户可以用以下四种方法中的一种,表明他们是自己声明的身份。
①证实你所知道的
密码验证是安全操作系统中最普通的身份验证的方法,登录系统时,通常要出示自己的密码。
这就是你所知道的。
你所知道的内容除了密码,还有身份证号码,你最喜欢的数字,你最爱的人的名字等,这些都是可以作为身份识别的信息。
值得注意的是,使用安全系数高的密码,提高安全性的最简单有效的方法之一就是使用一个不会轻易被暴力攻击所猜到的密码。
什么是暴力攻击?
攻击者使用一个自动化系统来尽可能快的猜测密码,以希望不久可以发现正确的密码。
使用包含特殊字符和空格,同时使用大小写字母,避免使用从字典中能找到的单词,不要使用纯数字密码,这种密码破解起来比你使用母亲的名字或你的生日作为密码要困难的多。
另外,要记住,每使密码长度增加一位,就会以倍数级别增加由你的密码字符所构成的组合。
一半来说,小于8个字符的密码被认为是很容易被破解的。
可以用10个、12个字符作为密码,16个当然更好了。
在不会因为过长而难于键入的情况下,让你的密码尽可能的更长会更加安全。
②出示你所拥有的
这种方法是指用户出示自己拥有的可以证明身份的物质,例如,智能卡、凭证设备和内存卡等。
智能卡鉴别的方法现在应用也很广泛,智能卡具有微芯片,芯片中可以包含用户的详细信息。
但是智能卡需要依赖于智能卡读卡机才能进行操作,使用智能卡的安全操作系统需要具有相应的硬件支持。
③证明你是谁
该方法一些无法轻易复制或偷走的物理、遗传或其他人类特征为基础的内容进行身份的识别。
例如指纹、语音波纹、视网膜样本、照片、面部特征扫描等。
④表现你的动作
指表现出你自己特有的能够表明身份的动作。
例如签名、键入密码的速度与力量、语速等,不过这种方法具有一定的误判率,因此一般作为辅助鉴别手段。
生物鉴别方法也是比较常用的身份识别的鉴别方法,生物鉴别主要侧重于前面提到的“证明你是谁”和“表现你的动作”的身份鉴别发,该方法要求用户提供的是用户独有的行为或生理上的特点,包括指纹、面容扫描、虹膜扫描、视网膜扫描、手掌扫描、心跳或者脉搏取样、语音取样、签名力度、案件取样等。
生物识别的方法采用的技术成为生物测定学。
使用一个生物测定学因素代替用户或者账户ID作为身份标识,需要生物测定学取样对已存储的取样数据库中的内容进行一对多的查找,并且要在生物测定学取样和已存储取样之间保持主体身份的一一对应。
如果使用生物测定因素其特性随时间而变化,例如人的语调、头发或签字的方式,则采样必须定期重新进行。
㈡3.2.2访问控制
用户通过身份鉴别后,还必须通过授权才能访问资源或者进行操作。
授权可以只在用户的身份识别通过以后再进行。
系统通过访问控制来提供授权。
访问控制的基本任务是防止用户对系统资源的非法使用,保证对客体的所有直接访问都是被认可的。
使用访问控制机制主要是为了达到以下目的:
①保护存储在计算机上的个人信息。
②保护重要信息的机密性。
③维护计算机内信息的完整性。
④减少病毒感染机会,从而延缓这种感染的传播。
⑤保证系统的安全性和有效性,以免受到偶然的和蓄意的侵犯。
访问控制机制的实行主要包含以下措施:
①确定要保护的资源。
即确定系统中被处理、被控制或被访问的对象,如文件、进程等。
②授权。
即规定可以访问资源的实体或主体,通常是一个人,有时也指一个软件程序或进程。
③确定访问权限。
即通过确定可以对该资源执行的动作,例如读、写、执行、追加、删除等不同方式的组合。
④实施访问权限。
即通过确定每个实体可以对哪些资源执行哪里动作来确定该安全方案。
目前主要的有三种访问控制技术:
自主访问控制、强制访问控制和基于角色的访问控制。
1>自主访问控制
一个安全的操作系统需要具备访问控制机制。
它基于对主体及主体所属的主体组的识别,来限制对客体的访问,还要校验主体对客体的访问请求是否符合存取控制规定来决定对客体访问的执行与否。
这里所谓的自主访问控制是指主体可以自主地(也可能是单位方式)将访问权,或访问权的某个子集授予其它主体。
为了实现完备的自主访问控制系统,由访问控制矩阵提供的信息必须以某种形式存放在系统中。
访问矩阵中的每行表示一个主体,每一列则表示一个受保护的客体,而矩阵
的元素,则表示主体可以对客体的访问模式。
2>强制访问控制
自主访问控制是保护系统资源不被非法访问的一种有效手段。
但是由于它的控制是自主的,也带来了问题。
于是,人们又提出了一种更强有力的访问控制手段,这就是强制访问控制。
在自主访问控制方式中,某一合法用户可以任意运行一程序来修改他拥有的文件存取控制信息,而操作系统无法区分这种修改是用户自己的操作,还是恶意攻击的特洛伊木马的非法操作。
通过强加一些不可逾越的访问限制,系统可以防止某一些类型的特洛伊木马的攻击。
在强制访问控制方式中,系统对主体和客体都分配一个特殊的安全属性,而且这一属性一般不能更改,系统通过比较主体和客体的安全属性来决定一个主体是否能够访问某个客体。
用户的程序不能改变他自己及任何其它客体的安全属性。
强制访问控制还可以阻止某个进程共享文件,并阻止通过一个共享文件向其它进程传递信息。
强制访问控制施加给用户自己客体的严格的限制,但也使用户受到自己的限制。
但是,系统为了防范特洛伊木马,必须要这么做。
即便是不在存在特洛伊木马,强制访问控制也有用,它可以防止在用户无意或不负责任的操作时,泄露机密信息。
强制访问控制对专用的或简单的系统是有效的,但对通用、大型系统并不那么有效。
3>基于角色的访问控制
基于角色的访问控制(RBAC)是20世纪90年代由美国的国家标准和技术研究院提出的一种访问机制,该机制可以减少授权管理的复杂性,降低管理开销。
RBAC本质上也是强制访问控制的一种,只不过访问控制是基于工作的描述(如角色或者任务),而不是主体的身份。
系统通过主体的角色或任务定义主体访问客体的能力,如果主体处于管理位置上,那么它将比处于临时位置上的人具有更大的资源访问能力。
RBAC在人员频繁变动的环境中很有用。
RBAC的基本思想:
授权给用户的访问资权限,通常由用户担当的角色来确定。
例如,一个银行包含的角色可以有出纳员、会计师、贷款员等。
他们职能不同,拥有的访问权限也就各不相同。
RBAC根据用户在组织内所处角色作出访问权授权与控制,但用户不能自主地将访问权限传给别人,但他无权将开处方的权利传给护士。
一个用户可经授权而拥有多个角色,一个角色可由多个用户构成;每个角色可执行多种操作,每个操作也可由不同的角色执行;一个用户可拥有多个主体,即拥有处于活动状态、以用户身份运行的多个进程,但每个主体只对应一个用户,每个操作可施加于多个客体,每个客体也可以接受多个操作。
用户(主体)能够对一客厅执行访问操作的必要条件是,该用户被授权了一定的角色,其中有一个在当前时刻处于活跃状态,而且这个角色对客体拥有相应的访问权限。
3.2.3最小特权管理
最小特权原则是系统安全中最基本的原则之一。
所谓最小特权(LeastPrivilege),指的是"在完成某种操作时所赋予网络中每个主体(用户或进程)必不可少的特权"。
最小特权原则,则是指"应限定网络中每个主体所必须的最小特权,确保可能的事故、错误、网络部件的篡改等原因造成的损失最小"。
最小特权原则一方面给予主体"必不可少"的特权,这就保证了所有的主体都能在所赋予的特权之下完成所需要完成的任务或操作;另一方面,它只给予主体"必不可少"的特权,这就限制了每个主体所能进行的操作。
最小特权原则要求每个用户和程序在操作时应当使用尽可能少的特权,而角色允许主体以参与某特定工作所需要的最小特权去签入(Sign)系统。
被授权拥有强力角色(PowerfulRoles)的主体,不需要动辄运用到其所有的特权,只有在那些特权有实际需求时,主体才去运用它们。
如此一来,将可减少由于不注意的错误或是侵入者假装合法主体所造成的损坏发生,限制了事故、错误或攻击带来的危害。
它还减少了特权程序之间潜在的相互作用,从而使对特权无意的、没必要的或不适当的使用不太可能发生。
这种想法还可以引申到程序内部:
只有程序中需要那些特权的最小部分才拥有特权。
3.2.4可信通路
可信通路是用户能够借以直接同可信计算基通信的一种机制。
用户进行与安全有关的操作时,例如登录、定义用户的安全属性、改变文件的安全等级等操作,必须保证是与计算机系统的安全核心通信。
特权用户在进行特权操作时,也要确定从终端上输出的信息是正确的,而不是来自特洛伊木马。
这些都需要一个机制保障用户和内核的通信,这种机制就是由可信通路提供的。
可信通路能够保证用户确定是和安全核心通信,防止不可信进程如特洛伊木马等模拟系统的登录过程而窃取用户的口令。
提供可信通路的最简单的办法是给每个用户两台终端,一台用于处理日常工作,另一台专门用于和内核的硬连接。
这种办法虽然简单,但是十分昂贵。
实际应用中对用户建议可信通路的一种方法是使用通用终端,通过发信号给核心。
这个信号是不可信软件不能拦截、覆盖或者伪造的。
一般称这个信号为“安全注意键”。
安全注意键是由终端驱动程序检测到的按键的一个特殊的组合。
系统一旦识别到用户在一个终端上键入安全注意键,就会终止对应到该终端的所有用户进程,启动可信的会话过程,以保证用户名和口令不被窃走。
3.2.5安全审计机制
审计机制一般是通过对日志的分析来完成的。
日志就是纪录的事件或统计数据,这些事件或者统计数据能提供关于系统使用及性能方面的信息。
审计就是对日志纪录的分析并以清晰的、能理解的方式表达系统信息。
系统的安全审计就是对系统中有关安全的活动进行纪录、检查及审核。
审计通过事后分析的方法认定违反安全规则的行为,从而保证系统的安全。
审计机制的主要作用如下:
1、能够详细纪录与系统安全有关的行为,并对这些进行分析,发现系统中的不安全因素,保障系统安全。
2、能够对违反安全规则的行为或企图提供证据,帮助追查违规行为发生的地点、过程以及对应的主体。
3、对于已受攻击的系统,可以提供信息帮助进行损失评估和系统恢复。
可见,审计是操作系统安全的一个重要方面。
安全操作系统一般都要求采用审计机制来监视与安全相关的活动。
美国国防部《橘皮书》中就明确要求“可信计算机必须向授权人员提供一种能力,以便对访问、生成或泄露秘密或敏感信息的任何活动进行审计。
根据一个特定机制和/或特定应用的审计要求,可以有选择地获取审计数据。
但是审计数据中必须有足够细的粒度,以支持对一个特定个体已发生的动作或代表该个体发生的动作进行追踪”。
3.2.6存储保护、运行保护和I/O保护
1>存储保护
对于一个安全操作系统,存储保护是一个最基本的要求,这主要是指保护用户在存储器中的数据。
保护单元为存储器中的最小数据范围,可以是字、字块、页面或段。
保护单元越小,则存储保护精度越高。
对于代表单个用户,在内存中一次运行一个进程的系统,存储保护机制应该防止用户程序对操作系统的影响。
在允许许多道程序并发运行的多任务操作系统中,还进一步要求存储保护机制对进程的存储区域实行相互隔离。
存储保护与存储器管理是紧密相关的,存储保护负责保证系统各个任务之间互不干扰,存储器管理则是为了更有效地利用存储空间。
2>运行保护
安全操作系统的运行保护是基于一种保护环境的等级结构实现的,这种保护环称为运行域。
运行域是进程运行的区域,在最内层具有最小环号的环具有最高特权,而在最外层具有最大环号的环是最小的特权环。
最内层是操作系统,它控制整个计算机系统的运行,靠近操作系统环之外的是受限使用的系统应用环,最外一层则是控制各种不同用户的应用环。
在这里最重要的的安全概念是:
等级域机制应该保护某一环不被其外层环侵入,并且允许在某一环内的进程能够有效的控制和利用该环以及该环以外的环。
进程隔离机制与等级域是不同的。
给定一个进程,它可以在任意时刻在任何一个环内运行,在运行期间还可以从一个环转移到另一个环。
当一个进程在某个环内运行时,进程隔离机制将保护该进程免遭在同一环内同时运行的其他进程破坏,也就是说,系统将隔离在同一环内同时运行的各个进程。
3>I/O保护
I/O操作一般是由操作系统完成的一个特权操作。
操作系统对I/O操作使用对应的系统调用,用户不需要控制I/O操作细节。
对I/O操作进行安全控制的最简单的方式是将设备看成一个客体,对其应用相应的访问控制规则。
由于所有的I/O不是向设备写数据就是从设备接收数据,所以一个进行I/O操作的进程必须受到对设备的读写两种访问控制。
这就意味设备到介质间的路径可以不受什么约束,而处理到设备间的路径则需要施以一定的读写访问控制。
3.3Linux安全性的研究
经过十多年的发展,Linux的功能在不断增强,其安全机制亦在逐步完善。
按照TCSEC评估准则,目前Linux的安全级基本达到了C2级,更高安全级别的Linux系统正在开发之中,下面我们来简单介绍一下Linux主要安全机制,这些机制有些已被标准的Linux所接纳,有些只是提供了“补丁”程序。
1、PAM(pluggableAuthenticationModules)是一套共享库,其目的是提供一个框架和一套编程接口,将认证工作由程序员交给管理员,PAM允许管理员在多种认证方法之间作出选择,它能够改变本地认证方法而不需要重新编译与认证相关的应用程序。
PAM的功能包括:
加密口令(包括DES和其他加密算法);对用户进行资源限制,防止DOS攻击;允许随意shadow口令;限制特定用户在指定时间从指定地点登录;引入概念“ClientPlug-inAgents”,使PAM支持C/S应用中的机器---机器认证成为可能。
PAM为更有效的认证方法的开发提供了便利,在此基础上可以很容易的开发出代替常规的用户名加口令的认证方法,如智能卡、指纹识别等认证技术。
2、入侵检测系统
入侵检测技术是一项相对比较新的技术,目前很少有操作系统安装了入侵检测工具,事实上,标准的Linux发布版本也是最近才配置了这种工具。
尽管入侵检测系统的历史很短,但是发展却很快。
利用Linux配备的工具和从因特网下载的工具,就可以是Linux具备高级的入侵检测能力,这些能力包括:
纪录入侵企图,当攻击发生时通知管理员;在规定情况的攻击发生时,采取事先规定的措施;发送一些错误信息,比如伪装成其他操作系统,这样攻击者会认为他们正在攻击一个WindowsNT或者Solaris系统。
3、加密文件
加密技术在现代计算机系统安全中扮演这越来越重要的角色。
加密文件系统就是将加密服务引入文件系统,从而提高计算机系统的安全性。
有太多的理由需要加密文件系统,比如防止硬盘被偷窃、防止XX的访问等。
目前Linux已有很多种加密文件系统,如CFS,TCFS,CRYPTFS等,较有代表性的是TCFS(TransparentCryptographicFilesystem),它通过将加密服务和文件系统紧密集成,使用户感觉不到文件的加密过程。
TCFS不修改文件系统的数据结构,备份与修复以及用户访问保密文件的语义也不变,TCFS能够做到让加密文件对以下用户不可读:
合法拥有者以外的用户、用户和远程文件系统通信线路上的偷听者、文件系统服务器的超级用户。
而对合法用户,访问加密文件与普通文件几乎没有区别。
4、安全审计
即使系统管理员十分精明的采取了各种安全措施,但是系统还可能存在一些新漏洞。
攻击者在漏洞被修复之前会迅速抓住机会公平可能多的机器。
虽然Linux不能预测何时主机会受到攻击,但是可以记录攻击者的行踪。
例如:
Linux审计系统可以记录以下内容:
所有系统和内核信息、每一次网络连接和它们的源IP地址以及发生时间、攻击者的用户名甚至操作系统类型、远程用户申请访问文件、用户控制的进程、用户使用的每条命令等,在调查网络入侵者的时候,日志信息是不可缺少的,即使这种调查在实际攻击发生之后进行
5、强制访问
传统的强制访问实现都是基于TCSEC中定义的MLS策略,但因MLS本身存在着这样那样的缺点(不灵活、兼容性差、难于管理等),研究人员已经提出多种MAC策略,如DTE、RBAC、等。
由于Linux是一种自由的操作系统,目前在其实现强制访问控制的就有好几种,其中比较典型的包括:
SELinux、RSBAC、MACLinux等,采用的策略也不同。
例如:
NSA推出的SELinux安全体系结构称为Flask,在这一结构中安全性策略的逻辑和通用接口一起封装在与操作系统独立的组件中,这个单独的组件称为安全服务器。
SELinux的安全服务器定义了一种混合的安全服务器,由于类型实施(TE)、基于角色控制(RBAC)和多级安全(MLS)组成通过替换安全服务器,可以支持不同的安全策略。
SELinux使用策略配置语言定义安全策略,然后通过CheckPolicy编译成二进制形式,存储在文件ss_policy中,在内核引导时读到内核空间。
这意味着安全性策略在每次系统引导时都会有所不同。
策略甚至可以通过使用security_load_policy接口在系统操作期间更改(只要将策略配置成允许这样更改)。
6、防火墙
防火墙是在被保护网络和Internet之间,或者在其他网络之间限制访问的一种部件或一系列部件。
Linux防火墙系统提供了如下功能:
1>访问控制
访问控制可以执行基于地址(源和目标)、用户和时间的访问控制策略,从而可以杜绝非授权的访问,同时保护内部用户的合法访问不受影响。
2>审计
审计对通过它的网络访问进行纪录,建立完备的日志,审计和追踪网络访问纪录,并可以根据需要产生报表。
3>抗攻击
防火墙系统直接暴露在非信任网络中,对外界来说,受到防火墙保护的内部网络如同一个点,所有的攻击都是直接针对它,该点称为堡垒机,因此要求堡垒机具有高度的安全性和抵御各种攻击的能力。
4>其他附属功能
如与审计相关的报警和入侵检测,与访问控制相关的身份认证、加密和认证,甚至VPN等。
3.4Linux系统安全性提高
1、限制超级用户的权力
root是Linux保护的重点,由于它权力无限,因此最好不要轻易将超级用户授权出去。
但是,有些程序的安装和维护工作必须要求有超级用户的权限,在这种情况下,可以利用其他工具让这类用户有部分超级用户的权限。
Sudo就是这样的工具。
sudo并不能限制所有的用户行为,尤其是当某些简单的指令没有设置限定时,就有可能被黑客滥用。
例如,一般用来显示文件内容的/etc/cat指令,如果有了超级用户的权限,黑客就可以用它修改或删除一些重要的文件。
2、增强安全防护工具
SSH是安全套接层的简称,它是可以安全地用来取代rlogin、rsh和rcp等公用程序的一套程序组。
SSH采用公开密钥技术对网络上两台主机之间的通信信息加密,并且用其密钥充当身份验证的工具。
由于SSH将网络上的信息加密,因此它可以用来安全地登录到远程主机上,并且在两台主机之间安全地传送信息。
实际上,SSH不仅可以保障Linux主机之间的安全通信,Windows用户也可以通过SSH安全地连接到Linux服务器上。
3、检查登录密码
设定登录密码是一项非常重要的安全措施,如果用户的密码设定不合适,就很容易被破译,尤其是拥有超级用户使用权限的用户,如果没有良好的密码,将给造成很大的安全漏洞。
在多用户中,如果强迫每个用户选择不易猜出的密码,将大大提高的安全性。
但如果passwd程序无法强迫每个上机用户使用恰当的密码,要确保密码的安全度,就只能依靠密码破解程序了。
实际上,密码破解程序是黑客工具箱中的一种工具,它将常用的密码或者是英文字典中所有可能用来作密码的字都用程序加密成密码字,然后将其与Linux的/etc/passwd密码文件或/etc/shadow影子文件相比较,如果发现有吻合的密码,就可以求得明码了。
在网络上可以找到很多密码破解程序,