第04章.操作系统安全

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第4章操作系统安全第4章操作系统安全操作系统的安全问题存储保护用户认证访问控制Windows系统安全4.1操作系统的安全问题4.1.1操作系统安全的重要性操作系统的安全是整个计算机系统安全的基础,没有操作系统安全,就不可能真正解决数据库安全、网络安全和其他应用软件的安全问题。操作系统的易用性和安全性是一对矛盾。操作系统在设计时不可避免地要在安全性和易用性之间寻找一个最佳平衡点,这就使得操作系统在安全性方面必然存在着缺陷,而这种缺陷正是恶意代码(包括病毒、特洛伊木马、蠕虫等)得意蔓延的主要原因。4.1操作系统的安全问题4.1.2操作系统面临的安全威胁操作系统的安全威胁除了第3章中介绍的硬件与环境方面以外,还有以下几种:(1)恶意代码的破坏和影响例如,计算机病毒可以使系统感染,也可以使应用程序或数据文件受到感染,造成程序和数据文件的丢失或被破坏,设置使系统瘫痪或崩溃。4.1操作系统的安全问题4.1.2操作系统面临的安全威胁(2)恶意用户的攻击。人们常常把这些恶意用户称为计算机“黑客”,他们设法获取非授权的资源访问权,危害计算机及其信息系统的保密性和完整性。例如,非法获取其他用户的信息。这些信息可以是系统运行时内存中的信息,也可以是存储在磁盘上的信息(文件)。窃取的方法有多种,可以通过破解其他用户的口令来获取该用户的资源;可以通过执行隐藏在正常程序中的“特洛伊木马”程序秘密窃取,还可以利用隐蔽信道非法访问资源,等等。4.1操作系统的安全问题4.1.2操作系统面临的安全威胁隐蔽信道(CovertChannel):通过公开通道传递秘密信息的方式就是隐蔽信道(隐蔽通道)。例如在考试中常常有人通过咳嗽、叹气、摸耳朵、摸鼻子等小动作来传递试卷答案。隐蔽信道一般可分为存储通道和时间通道,它们都是利用共享资源(如文件,对文件是否存在的判断)来传递秘密信息的,并要协调好时间间隔。共享资源在多用户环境里是很普遍的。4.1操作系统的安全问题4.1.2操作系统面临的安全威胁例如,对磁盘存储而言,服务程序为了表示信息1,在磁盘上创建一个非常大的文件,占用了磁盘上的大部分可用空间。之后,间谍程序也会尝试在磁盘上创建一个大型文件。如果成功,间谍程序就推断服务程序没有在磁盘上创建大型文件,所以服务程序提供的信息是0;否则,该信息就是1。在这里,间谍程序只需要通过判定某个文件是否存在,就能接收到某些秘密信息。4.1操作系统的安全问题4.1.2操作系统面临的安全威胁阈下信道(SubliminalChannel)是公开合法信道中所建立的一种实现隐蔽通信的方式。它是一种典型的现代信息隐藏技术,有着广阔的应用前景。可以举一个“囚犯问题”的例子。假设Alice和Bob被捕入狱,Bob被关在男牢房,而Alice被关在女牢房。看守Walter愿意让他们交换信件(消息),但不允许他们加密。但同时,Walter意识到这样他们会商讨一个逃跑计划,所以他必须要阅读他们之间的信件。4.1操作系统的安全问题4.1.2操作系统面临的安全威胁Walter也希望欺骗他们,他想让他们中的一个将一份欺诈的消息当做来自另一个人的真实消息。但Alice和Bob愿意冒这种欺诈的危险,否则他们就无法通信了,并且他们必须商讨他们的逃跑计划。为了完成这件事情,他们肯定要欺骗看守,并找出一个秘密通信的方法,他们必须建立一个阈下信道,即完全在Walter视野内的他们之间的一个秘密通信信道,即使消息本身并不包含秘密信息。通过交换无害的签名的消息,他们可以互相传送秘密消息,并骗过Walter,即使Walter始终监视着所有的通信。4.1操作系统的安全问题4.1.2操作系统面临的安全威胁一个简单的阈下信道可以是句子中单词的数目。句子中奇数个单词对应“1”,而偶数个单词对应“0”。因此,当读这种仿佛无关紧要的句子时,已经将信息“1010”传递给了自己的人员。不过这个例子的问题在于它没有密钥,安全性完全依赖于算法的保密性。4.1操作系统的安全问题4.1.2操作系统面临的安全威胁(3)用户的误操作例如,用户无意中删除了不想删除的文件,无意中停止了系统的正常处理任务,这样的误操作或不合理地使用了系统提供的命令,会成为对资源的安全威胁。此外,在多用户操作系统中,各用户程序执行过程中相互间会产生不良影响,用户之间会相互干扰。4.1操作系统的安全问题4.1.3操作系统的安全性设计操作系统安全的主要目标是:•标识系统中的用户并进行身份鉴别•依据系统安全策略对用户的操作进行存取控制,防止用户对计算机资源的非法存取•监督系统运行的安全•保证系统自身的安全性和完整性4.1操作系统的安全问题4.1.3操作系统的安全性设计为了实现操作系统安全的目标,需要建立相应的安全机制,包括•隔离控制•存储器保护•用户认证•访问控制等下面先介绍隔离控制,其它安全机制在后面介绍。4.1操作系统的安全问题4.1.3操作系统的安全性设计隔离控制的方法有四种:•物理隔离:在物理设备或部件一级进行隔离,例如对不同安全级别的用户分配不同的打印机。•时间隔离:对不同安全要求的用户进程分配不同的运行时间段。•逻辑隔离:限定各进程的的运行区域,不允许进程访问其他未被允许的区域。•加密隔离:对用户的口令信息或文件数据以密码形式存储,使其他用户无法访问。4.2存储保护对于一个安全的操作系统,存储保护是最基本的要求,这里包括内存保护、运行保护、I/O保护等。4.2存储保护4.2.1内存保护内存储器是操作系统中的共享资源,内存被用户程序与系统程序所共享,在多道环境下更是被多个进程所共享。4.2存储保护4.2.1内存保护内存保护的目的是:•防止对内存的未授权访问;•防止对内存的错误读写,如向只读单元写;•防止用户的不当操作破坏内存数据区、程序区或系统区;•多道程序环境下防止不同用户的内存区域互不影响;•将用户与内存隔离,不让用户知道数据或程序在内存中的具体位置。4.2存储保护4.2.1内存保护常用的内存保护技术:•单用户内存保护技术•多道程序的保护技术•内存标记保护法•分段与分页保护技术4.2存储保护4.2.1内存保护(1)单用户内存保护技术在单用户操作系统中,系统程序和用户程序同时运行在一个内存之中,若无防护措施,用户程序中的错误有可能破坏系统程序的运行。可以利用基址寄存器在内存中规定一条区域边界(一个内存地址),用户程序运行时不能跨越这个地址。利用该寄存器也可以实现程序重定位功能,可以指定用户程序的装入地址。4.2存储保护4.2.1内存保护(1)单用户内存保护技术系统区用户区(内存)界限寄存器4.2存储保护4.2.1内存保护(2)多道程序的保护技术对于多用户系统,可能有多个用户程序需要在内存运行,利用一个基址寄存器无法将这些用户程序分隔在不同内存区运行。解决这个问题的办法是再增加一个边界址寄存器(或简称边界寄存器),保护用户程序的边界。如果使用多对基址和边界寄存器,还可以把用户的可读写数据与只读数据区和程序区互相隔离,这种方法可以防止程序自身的访问错误。4.2存储保护4.2.1内存保护(2)多道程序的保护技术4.2存储保护4.2.1内存保护(3)内存标记保护法用前面介绍的多对基址和边界寄存器技术只能保护数据区不能被其他程序访问,不能控制自身程序对同一个数据区内单元有选择地读或写。例如,一个程序中若没有数组越界溢出检查,当向该数组区写入时就有可能越界到其他数据单元,甚至越界到程序代码区(这就是缓冲区溢出的一种情况),而代码区是禁止写操作的。4.2存储保护4.2.1内存保护(3)内存标记保护法为了能对每个存储单元按其内容要求进行保护,如有的单元只读、读/写、或仅执行等不同要求,可以在每个内存单元中专用几个比特来标记(Tagging)该单元的属性。每次指令访问这些单元时,都要测试这些比特,当访问操作与这些比特表示的属性不一致的时候就要报错。4.2存储保护4.2.1内存保护(3)内存标记保护法X表示执行(eXecute),R表示读(Read),W表示写(Write)。4.2存储保护4.2.1内存保护(4)分段与分页保护技术对于稍微复杂一些的用户程序,通常按功能划分成若干个模块(过程)。每个模块有自己的数据区,各模块之间也可能有共享数据区。各用户程序之间也可能有共享模块或共享数据区。这些模块或数据区有着不同的访问属性和安全要求,使用上述各种保护技术很难满足这些要求。4.2存储保护4.2.1内存保护分段将内存分成很多逻辑单元,如一组组私有程序或数据。采用分段技术以后,用户并不知道他的程序实际使用的内存物理地址,操作系统把程序实际地址隐藏起来了。这种隐藏对保护用户代码与数据的安全是极有好处的。4.2存储保护4.2.1内存保护分段技术有许多优点:•任何段可以放在任何内存空间——假设地址空间大小足够容纳任何一个段;•不同的访问控制可以实施在不同的段中;•在分段这种方式下,任何地址的引用必须通过操作系统,这样操作系统可以进行完全的调度。4.2存储保护4.2.1内存保护分段的管理方式存在的问题与困难主要是:1)当操作系统使用段址,偏移地址的方式来进行寻址时,必须知道段的大小以确保访问的地址在该段之内。但是很多段(比如那些可以进行动态内存分配的段)的内存是可以在执行的过程中动态增长的。所以,操作系统中必须保存可变化段的大小。为了保证安全,要求系统检查所产生的地址,验证其是否超出所访问段的末端。4.2存储保护4.2.1内存保护2)因为段大小可变,内存“碎片”成为一个潜在的问题,使得内存中虽然剩余碎片的总和大于某个段的长度,但仍无法为该段分配内存的现象发生。3)如果压缩内存以便于更加有效地利用已有空间,分段表则会发生改变。总之,分段本身比较复杂,并且它给操作系统带来了明显的负担。4.2存储保护4.2.1内存保护为了解决分段可能产生的内存碎片问题,引入了分页技术(如图)。分页是把目标程序与内存都划分成相同大小的片段,这些片段称为“页”。在分页模式下,需要使用参数对页,偏移地址来访问特定的页。4.2存储保护4.2.1内存保护分页技术虽然解决了碎片问题,但又损失了分段技术的安全功能。由于段具有逻辑上的完整意义,而页则没有这样的意义,程序员可以为段规定某些安全控制要求,但却无法指定各页的访问控制要求。4.2存储保护4.2.1内存保护解决这个问题的方法是将分页与分段技术结合起来使用,由程序员按计算逻辑把程序划分为段,再由操作系统把段划分为页。在段的基础上进行分页的好处在于不会产生碎片、效率高,并且不需要考虑每部分大小的变化所带来的各种问题。4.2存储保护4.2.1内存保护4.2存储保护4.2.1内存保护操作系统同时管理段表与页表,完成地址映射任务和页面的调进调出,并使同一段内的各页具有相同安全管理要求,这也是虚拟存储器的基本思想。系统还可以为每个物理页分配一个密码,只允许拥有相同密码的进程访问该页,该密码由操作系统装入进程的状态字中,在进程访问某个页面时,由硬件对进程的密码进行检验,只有密码相同且进程的访问权限与页面的读写访问属性相同时方可执行访问。这种安全机制有效地保护了虚拟存储器的安全。4.2存储保护4.2.2运行保护安全操作系统很重要的一点是进行分层设计,而运行域正是这样一种基于保护环的等级式结构。运行域是进程运行的区域,在最内层具有最小环号的环具有最高特权,而在最外层具有最大环号的环是最小的特权环。4.2存储保护4.2.2运行保护设置两环系统是很容易理解的,它只是为了隔离操作系统程序与用户程序。这就像生活中的道路被划分为机动车道和非机动车道一样,各种车辆和行人各行其道,互不影响,保证了各自的安全。对于多环结构,它的最内层是操作系统,它控制整个计算机系统的运行;靠近操作系统环之外的是受限使用的系统应用环,如数据库管理系统或事务处理系统;最外一层则是各种不同用户的应用环。4.2存储保护4.2.2运行保护Intelx86微芯片系列就是使用环概念来实施运行保护的,如图所示。环有4个级别:环0是最高权限的,环3是最低权限的。当然,微芯片上并没有实际的物理环。Windows操作系统中的所有内核代码都

1 / 140
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功