《[精选]操作系统安全性概述5280.pptx》由会员分享,可在线阅读,更多相关《[精选]操作系统安全性概述5280.pptx(64页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第4章 操作系统的安全4.1 操作系统安全性概述4.2 Windows NT/2000的安全4.3 UNIX/Linux的安全 4.1 操作系统安全性概述4.1.1 操作系统安全的重要性 当前,对操作系统安全构成威胁的问题主要有以下4种。(1)计算机病毒(2)特洛伊木马(3)隐蔽通道 隐蔽通道可定义为系统中不受安全策略控制的、违反安全策略的信息泄漏路径。它是允许进程以危害系统安全策略的方式传输信息的通信信道。(4)天窗 天窗是嵌在操作系统里的一段非法代码,渗透者利用该代码提供的方法侵入操作系统而不受检查。天窗由专门的命令激活,一般不容易发现。4.1.2 操作系统的安全服务1用户管理的安全性 首
2、先是用户账号的管理。通常对用户账号进行分组管理,并且这种分组管理应该是针对安全性问题而考虑的分组。其次是用户口令的加密机制。最后是认证机制。身份认证机制必须是强有力的,即在用户登录时,与系统的交互过程必须有安全保护,不会被第三方干扰或截取。账号/密码的认证方案普遍存在着安全的隐患和不足之处,具体有如下几种。(1)认证过程的安全保护不够健壮,登录的步骤没有进行集成和封装,而是暴露在外,容易受到恶意入侵者或系统内部特洛伊木马的干扰或者截取。(2)密码的存放与访问没有严格的安全保护。(3)认证机制与访问控制机制不能很好地相互配合和衔接,使得通过认证的合法用户进行有意或无意的非法操作的机会大大增加。2
3、访问控制访问控制系统一般包括以下几个实体。主体(Subject)客体(Object)安全访问政策 访问控制常用的实现方法主要有以下几种。(1)访问控制矩阵(Access Matrix)表4.1是一个访问控制矩阵的例子,这个例子将在后面多次用到。表4.1 访问控制矩阵File1 File2 File3JohnOwnRW RAlice ROwnRWWBobRWR 访问控制矩阵中存在着不少空项,为了减少系统开销与浪费,从主体(行)出发,形成一个链表,以表示某一行的信息,这就是访问能力表,如图4.1所示。(2)访问能力表(Access Capability List)图4.1访问能力表图4.2访问控制
4、表(3)访问控制表(Access Control List)访问控制表ACL是目前采用最多的一种方式,如图4.2所示。(4)授权关系表(Authorization Relations List)用每一行(或称每一个元组)表示主体和客体的一个权限关系,如表4.2所示。主 体 访 问 权 限 客 体John Own File1John R File1John W File1John R File3Alice R File1Alice Own File2Alice R File2Alice W File2Alice W File3Bob R File1Bob W File1Bob W File2表4
5、.2 授权关系表 在访问控制策略方面,计算机系统常采用以下两种策略。(1)自主访问控制(Discretionary Access Control,DAC)自主访问控制是一种最为普遍的访问控制手段,它是在确认主体身份以及它们所属组的基础上对访问进行限定的一种方法,其基本思想是:允许某个主体显式地指定其他主体对该主体所拥有的信息资源是否可以访问以及可执行的访问类型。(2)强制访问控制(Mandatory Access Control,MAC)强制访问控制是“强加”给访问主体的,即系统强制主体服从访问控制政策,这种政策是强制性规定的,用户或用户的程序不能加以修改。4.1.3 操作系统安全性的设计原则
6、与一般结构(1)最小特权。(2)机制的经济性。(3)开放系统设计。(4)完备的存取控制机制。(5)基于“允许”的设计原则。(6)权限分离。(7)避免信息流的潜在通道。(8)方便使用。4.1.4 安全操作系统的发展状况 KSOS(Kernelized Secure Operating System)是美国国防部研究计划局1977年发起的一个安全操作系统研制项目,目标是为PDP-11/70机器开发一个可投放市场的安全操作系统,系统的要求如下:与贝尔实验室的UNIX操作系统兼容;实现多级安全性和完整性;正确性可以被证明。OSF/1是开放软件基金会于1990年推出的一个安全操作系统,被美国国家计算机安
7、全中心(NCSC)认可为符合TCSEC的B1级,其主要安全性表现如下:系统标识;口令管理;强制存取控制和自主存取控制;审计。UNIX SVR4.1ES是UI(UNIX国际组织)于1991年推出的一个安全操作系统,被美国国家计算机安全中心(NCSC)认可为符合TCSEC的B2级,除OSF/1外的安全性主要表现如下:更全面的存取控制;更小的特权管理;可信通路;隐蔽通道分析和处理。1993年,国防科技大学对基于TCSEC标准和UNIX System V 3.2版的安全操作系统SUNIX的研究与开发进行了探讨,提出了一个面向最小特权原则的改进的BLP模型和一个病毒防御模型。以Linux为代表的自由软件
8、在中国的广泛流行对中国安全操作系统的研究与开发具有积极的推动作用。1999年,中国科学院软件研究所推出了红旗Linux中文操作系统发行版本,同时,开展了基于Linux的安全操作系统的研究与开发工作。2000年,我国的安全操作系统研究人员相继推出了一批基于Linux的安全操作系统。中国科学院计算技术研究所研究开发了LIDS安全操作系统;南京大学开发了基于Linux的安全操作系统SoftOS;中国科学院信息安全技术工程研究中心开发了基于Linux的SecLinux安全操作系统;中国计算机软件与服务总公司以TCSEC标准的B1安全等级为目标对Linux进行了改造,开发了COSIX Linux V2.
9、0的安全增强版本。4.2 Windows NT/2000的安全4.2.1 Windows NT/2000 的安全模型 Windows NT/2000具有模块化的设计结构。该操作系统由一组软件模块构成,称为执行程序服务,运行在内核模式下。在内核模式之上的是用户模式,用户模式由非特权的服务组成,称为保护子系统,它们的启动由用户来决定。Windows NT/2000的安全性依赖于Windows NT/2000的核心层,它们在每个层次提供一致的安全模型。Windows NT/2000的安全模型由几个关键的安全子系统构成,这些安全子系统控制着整个Windows NT/2000操作系统,是与操作系统密不可
10、分的。Windows NT/2000安全模型主要由登录过程、本地安全认证、安全账号管理器和安全参考监督器构成,如图4.4所示。图4.4WindowsNT/2000的安全模型 1登录进程(Logon Process)2本地安全认证(Local Security Authority,LSA)3安全账号管理器(Security Account Manager,SAM)安全账号管理器维护安全账号管理数据库,即SAM数据库。4安全参考监视器(Security Reference Monitor,SRM)安全参考监视器运行在内核模式,它负责访问控制和审查策略。4.2.2 Windows NT/2000 的
11、登录控制1登录过程 Windows NT/2000的登录控制过程比较繁琐,但每一步对建立一个安全环境和用户能够完成有用的工作都是必要的。用户本地登录与在域范围内登录到Windows NT/2000计算机的步骤稍有不同,其登录步骤分别如下。图4.5本地登录过程(1)本地登录过程(如图4.5所示)用户按Ctrl+Alt+Del键,引起硬件中断,被系统捕获,这样使操作系统激活WinLogon进程。WinLogon进程通过调用标识与鉴别DLL,将登录窗口(账号名和口令登录提示符)展示在用户面前。WinLogon进程发送账号名和加密口令到本地安全认证(LSA)。如果用户具有有效的用户名和口令,则本地安全
12、认证产生一个访问令牌,包括用户账号SID和用户工作组SID。访问令牌也将得到用户的特权(LUID),然后该访问令牌传回WinLogon进程。WinLogon进程传送访问令牌到Win32模块,同时发出一个请求,以便为用户建立登录进程。登录进程建立用户环境,包括启动Desktop Explorer和显示背景等。(2)网络登录过程(如图4.6所示)图4.6网络登录Windows NT/2000服务器的过程 用户将用户名和口令输入到网络客户机软件的登录窗口。该客户机软件打开NetBIOS,连接到服务器的NetLogon服务上,该客户机软件对口令加密,发送登录证书到服务器的WinLogon进程。服务器的
13、WinLogon进程发送账号名和加密口令到本地安全认证。如果用户具有有效的用户名和口令,则本地安全认证产生一个访问令牌,包括用户账号SID和用户工作组SID。WinLogon进程将访问令牌传送到Windows NT/2000的Server服务,它将访问令牌与被客户机打开的NetBIOS连接联系起来。2安全标识符(SID)安全标识符是标识一个注册用户的惟一名字,它可用来标识一个用户或一组用户。安全标识符是用于系统内部的,在存取令牌和访问控制表(ALC)内使用,它用一长串数字来表示。4.2.3 Windows NT/2000 的访问控制1Windows NT/2000访问控制 Windows NT
14、/2000的安全性达到了橘皮书C2级,实现了用户级自主访问控制,它的访问机制如图4.7所示。为了实现进程间的安全访问,Windows NT/2000中的对象采用了安全性描述符(Security Description)。安全性描述符主要由用户SID(Owner)、工作组SID(Group)、访问控制列表(DACL)和系统访问控制列表(SACL)组成,安全性描述符的构成如图4.8所示。图4.8安全性描述符的构成 图4.7WindowsNT的客体访问示意图2NTFS文件系统 NTFS主要采用两种措施对文件系统进行安全性保护:一是对文件和目录的权限设置,二是对文件和目录进行加密。(1)文件和目录的权
15、限 NTFS文件系统上的每个文件和目录在创建时创建人就被指定为拥有者。拥有者控制着文件或目录权限设置,并能赋予其他用户的访问权限。NTFS为了保证文件和目录的安全性和可靠性,制定了以下的权限设置规则。只有用户在被赋予权限或是属于拥有这种权限的组,才能对文件或目录进行访问。“拒绝访问”权限优先级高于其他所有权限。权限是积累的。文件权限始终优先于目录权限。当用户在相应权限的目录中创建新的文件和子目录时,创建的文件和子目录继承该目录的权限。创建文件和目录的拥有者,总是可以随时更改对文件或目录的权限设置来控制其他用户对该文件或目录的访问。(2)文件内容的加密 Windows 2000增强了文件系统的安
16、全性,采用了加密文件系统(Encrypted File System,EFS)技术。加密文件系统提供的文件加密技术可以将加密的NTFS文件存储到磁盘上。4.2.4 Windows NT/2000 的安全管理1用户和用户组 在Windows NT/2000中,每个用户必须有一个账号。用户账号是系统安全的核心,系统网络中发生的一切活动都可以以此账号追溯到特定的授权用户。Windows NT/2000还支持用户组,通过用户组为一组相关的用户同时设定权利和权限。2域和委托 在Windows NT中,有两种类型的网络配置:工作组和域。工作组是单独的系统,在工作组中系统各自独立管理自己的用户账号和组账号以
17、及它们的安全账号管理数据库,不与别的系统共享这些信息。工作组适用于小型网络环境。域模型是Windows NT网络系统的核心,所有Windows NT的相关内容都是围绕着域来组织,而且大部分Windows NT的网络都基于域模型。域是一些服务器的集合,这些服务器被归为一组并共享同一个安全策略和用户账号数据库。域的集中化用户账号数据库和安全策略使得系统管理员可以用一个简单而有效的方法维护整个网络的安全。域由主域服务器、备份域服务器、服务器和工作站组成。域是由主域控制器或备份域控制器来控制的。每一个域中只能有一个主域控制器,而备份域控制器可以有一个或数个。Windows NT的域间可以建立委托关系。
18、委托是一种管理方法,它将两个域连接在一起,并允许域中的用户相互访问。域之间的委托关系可以有两种:单向的和双向的。3活动目录(Active Directory)活动目录是Windows 2000的核心。它是Windows 2000网络体系机构必不可少、不可分割的重要组件。它是在Windows NT 4.0操作系统的域结构基础上改进而成,并提供了一套为分布式网络环境设计的目录服务。活动目录包括两个方面:目录和目录相关服务。(1)活动目录的结构 活动目录允许组织机构按照层次式的,面向对象的方式存储信息,并且提供支持分布式网络环境的多主复制机制。层次式组织 面向对象存储 多主复制 层次式组织 活动目录
19、是由对象、容器、树和森林构成的层次结构。它使用对象来代表诸如用户、组、主机、设备及应用程序这样的网络资源,并用容器来代表组织机构或相关对象的集合。面向对象存储 活动目录用对象的形式存储有关网络元素的信息。每个对象可以设置属性,这些属性用来描述对象的特殊特征。多主复制 为了在分布式环境中提供高性能的、可用和灵活的服务,活动目录使用多主复制。(2)活动目录的安全性服务 Windows 2000的安全性服务和活动目录紧密结合。活动目录存储了安全政策的信息,实施了基于对象的安全模型的访问控制机制。在活动目录中的每个对象都有一个独有的安全性描述,定义了浏览或更新对象属性所需要的访问权限。活动目录集中进行
20、管理并加强了与组织机构的商业过程一致的,且基于角色的安全性。4安全审计 达到C2级的系统,其安全性必须要有安全审计功能。Windows NT/2000系统的审计消息都被记录在日志文件中,它包含3类日志:系统日志、应用日志和安全日志。4.3 UNIX/Linux的安全 4.3.1 UNIX 用户账号与口令安全 UNIX操作系统是一个可供多个用户同时使用的多用户、多任务、分时操作系统。1UNIX登录认证机制 UNIX的用户身份认证采用账号/口令的方案。用户提供正确的账号和口令后,系统才能确认他的合法身份。总的来说,通过终端登录UNIX操作系统的过程可描述如下:(1)init进程确保为每个终端连接(
21、或虚拟终端)运行一个getty程序;(2)getty监听对应的终端并等待用户准备登录;(3)getty输出一条欢迎信息(保存在/etc/issue中),并提供用户输入用户名,最后运行login程序;(4)login以用户作为参数,提示用户输入口令;(5)如果用户名和口令相匹配,则login程序为该用户启动shell;否则,login程序退出,进程终止;(6)init进程注意到login进程已终止,则会再次为该终端启动getty程序。2UNIX的口令文件 UNIX口令文件/etc/passwd是登录验证的关键,这个文件保存系统中所有用户及其相关信息,所以口令文件是UNIX安全的关键文件之一。这个
22、文件的拥有者是超级用户(root),只有他才有写的权利,而一般用户只有读的权利。3UNIX操作系统的口令安全安全的口令应遵循以下的规则。(1)选择长的口令,口令越长,黑客猜中的概率就越低。(2)口令最好是英文字母和数字的组合。(3)不要使用英语单词,因为很多人喜欢使用英文单词作为口令,口令字典收集了大量的口令,有意义的英语单词在口令字典出现的概率比较大。(4)用户若可以访问多个系统,则不要使用相同的口令。(5)不要使用名字作为口令,如自己的名字,家人的名字,宠物的名字等。(6)别选择记不住的口令,这样会给自己带来麻烦,用户可能会把它放在什么地方,如计算机周围、记事本上或者某个文件中,这样就会引
23、起安全问题,因为用户不能肯定这些东西不会被入侵者看到,一些偶然的失误很可能泄露这些机密。(7)使用UNIX安全程序,如passwd+和npasswd程序来测试口令的安全性。4.3.2 UNIX 的文件访问控制UNIX操作系统的资源访问控制是基于文件的。1文件(或目录)访问控制 为了维护系统的安全性,系统中每一个文件(或目录)都具有一定的存取权限,只有具有这种存取权限的用户才能存取该文件。图4.10给出了文件存取权限的图形解释。图4.10文件存取权限示意图 存取权限位共有9 bit位,分为3组,用以指出不同类型的用户对该文件的访问权限。权限有3种:r 允许读;w 允许写;x 允许执行。用户有3种
24、类型:owner 该文件的属主;group在该文件所属用户组中的用户,即同组用户;other 除以上二者外的其他用户。2更改权限 用户可以使用chmod命令更改文件(或目录)的权限,chmod命令以新权限和文件名为参数,格式为:chmod-Rfh 存取权限 文件名 chmod命令也有其他方式的参数修改权限,在此不再多讲,可参考UNIX操作系统的联机手册。3特殊权限位 有时没有被授权的用户需要完成某些要求授权的任务。例如passwd程序,对于普通用户,它允许改变自身的口令,但不能拥有直接访问/etc/passwd文件的权力,以防止改变其他用户的口令。为了解决这个问题,UNIX允许对可执行的目标文
25、件(只有可执行文件才有意义)设置SUID或SGID。一个进程执行时就被赋予4个编号,以标识该进程隶属于谁,分别为实际和有效的UID,实际和有效的GID。有效的UID和GID用于系统确定进程对于文件的存取许可。4.3.3 UNIX 安全的管理策略1系统管理员的安全管理(1)保持系统管理员个人的登录安全 不要作为root或以自己的登录账户运行其他用户的程序,首先用su命令进入用户的账户。绝不要把当前工作目录放在PATH路径表的前边,那样会吸引特洛伊木马。不要未注销账户就离开终端,特别是作为root用户时更不能这样。不允许root在除控制台外的任何终端登录(这是login编译时的选项),如果有log
26、in源码,就将登录名root改成别的名字,使破坏者不能在root登录名下猜测各种可能的口令,从而非法进入root的账户。经常改变root的口令。确认su命令记下的企图运行su的记录/usr/adm/sulog,该记录文件的存取权限是600,并属root所有。不要让系统管理员以外的人作为root登录,哪怕是几分钟,即使有系统管理员在一旁注视着也不行。(2)保持整个系统的安全 保持账号安全。保持口令安全。设置口令时效。保持文件系统安全。启动记账系统。查出不寻常的系统使用情况,如大量地占用磁盘、大量地使用CPU时间、大量的进程、大量地使用su的企图、大量无效的登录、大量的到某一系统的网络传输等。修改
27、shell,使其等待了一定时间而无任务时终止运行。修改login,使其打印出用户登录的最后时间,三次无效登录后,将通信线挂起,以便系统管理员能查出是否有人非法进入系统。修改su,使得只有root能通过su进入某一户头。当安装来源不可靠的软件时,要检查源码和makefile文件,查看特殊的子程序调用或命令。另外,为了系统的安全,还应该注意以下事项。(1)即使是安装来源可靠的软件,也要检查是否有SUID(SGID)程序,确认这些许可的确是必要的。如果可能,不要让这些程序具有系统ID(或组)的SUID(SGID)许可,而应该建立一个新用户供该软件运行。(2)如果系统在办公室中,门应上锁,将重要数据保存在软盘上或磁带上,并锁起来。(3)如果系统管理员认为系统已经泄密,则应当设法查出肇事者。2用户的安全管理(1)保证用户口令的安全。(2)防止用户自己的文件和目录被非授权读写。(3)防止运行特洛伊木马。(4)用crypt命令加密不愿让任何用户(包括超级用户)看到的文件。(5)在离开终端时,确保用Ctrl+D或Exit命令退出系统。