第二章操作系统安全理论基础概述第2章操作系统安全理论基础概述2.1操作系统安全机制2.2操作系统安全模型2.3安全体系结构2.1操作系统安全机制2.1.1标识与鉴别机制2.1.2访问控制2.1.3最小特权管理2.1.4可信通路2.1.5安全审计机制2.1.6存储保护、运行保护和I/O保护2.1操作系统安全机制概述什么是操作系统?操作系统的基本功能有哪些?2.1操作系统安全机制操作系统安全的主要目标:按系统安全策略对用户的操作进行访问控制,防止用户对计算机资源的非法访问(包括窃取、篡改和破坏)标识系统中的用户,并对身份进行鉴别监督系统运行的安全性保证系统自身的安全性和完整性安全机制定义:根据国际标准化组织(ISO)定义,安全机制是一种技术、一些软件或实施一个或更多安全服务的过程。安全机制分类:特殊安全机制:在同一时间只对一种安全服务上实时一种技术活软件(如:加密)普通安全机制:在同时实施一个或多个安全服务时的执行过程普通安全机制分类:信任的功能性:指任何加强现有机制的执行过程事件检测:检查和报告本地或远程发生的事件审计跟踪:任何机制都允许监视和记录与安全有关的活动安全恢复:对一些事件作出反应,包括对于已知漏洞创建短期和长期的解决方案和对危害系统的修复2.1.1标识与鉴别机制标识:用户要向系统表明的身份用户名、登陆ID、身份证号或智能卡具有唯一性不能被伪造鉴别:对用户所宣称的身份标识的有效性进行检验和测试的过程2.1.1标识与鉴别机制验证用户身份的四种方法:口令、秘钥智能卡、令牌卡指纹、声音、视网膜、签字等签名、键入密码的速度与力量、语速等等2.1.2访问控制访问控制用来提供授权用户在通过身份鉴别后,还需要通过授权才能访问资源或进行操作访问控制的目的:①保护存储在计算机上的个人信息②保护重要信息的机密性③维护计算机内信息的完整性④减少病毒感染机会,从而延缓这种感染的传播⑤保证系统的安全性和有效性,以免受到偶然的和蓄意的侵犯2.1.2访问控制访问控制的实行①确定要保护的资源②授权③确定访问权限④实施访问权限概括的说,就是首先识别与确认访问系统的用户,然后决定该用户对某一系统资源可以进行何种类型的访问(读、写、删、改、运行等)2.1.2访问控制访问控制机制分类自主访问控制(DAC)强制访问控制(MAC)基于角色的访问控制(RBAC)2.1.2访问控制1.自主访问控制(DAC)有访问许可权限的主体能够直接或间接地向其他主体转让访问权。访问控制矩阵的保存基于行的自主访问控制机制基于列的自主访问控制机制2.1.2访问控制2.强制访问控制(DAC)“强加”给访问主体的,即系统强制主体服从访问控制政策强制访问控制一般与自主访问控制结合使用,并且实施一些附加的、更强的访问控制。一般强制访问控制采用以下几种方法:限制访问控制过程控制系统限制2.1.2访问控制3.基于角色的访问控制20世纪90年代由美国国家标准和技术研究院NIST提供的一种访问控制机制。该机制可以减少授权管理的复杂性、降低管理开销。基于角色的访问控制本质上是强制访问控制的一种,只不过访问控制是基于工作的描述,而不是主体的身份。系统通过主体的角色或任务定义主体访问客体的能力,如果主体处于管理位置,那么它将比处于临时位置上的人具有更大的资源访问能力。RBAC的基本思想是授权给用户的访问权限,通常由用户担当的角色确定。2.1.2访问控制基于角色的访问控制特征①访问权限与角色相关联,不同的角色有不同权限②角色继承③最小权限原则④职责分离⑤角色容量2.1.3最小特权管理所谓最小特权,指的是在完成某种操作时赋予系统中每个主体(用户或进程)必不可少的特权。其原则是应限定系统中每个主体所必须的最小特权,确保可能的事故、错误、网络部件的窜改等原因造成的损失最小。最小特权的思想是系统不应给用户超过执行任务所需特权以外的特权。有效的限制、分割了用户对数据资料进行访问时的权限,降低了非法用户或非法操作可能给系统及数据带来的损失,对于系统安全具有至关重要的作用。七种操作系统特权机制的归纳比较操作系统特权机制类型进程特权与程序逻辑关系是否存在超级用户对最小特权原则支持程度传统UNIX基于UID的特权机制无是差OpenServer5基于UID的特权机制无是差UnixWare7基于文件的特权机制有,但受超级用户机制影响是有限度支持Linux基于UID的特权机制无是差windows基于UID的特权机制无无,但在默认设置系统管理员为变相的超级用户差TrustedXenix混合类型部分特权有无,但存在访问关键文件的特权用户有限度支持LIDS混合类型有,但不是强制要求,但对被禁止权能起作用是有限度支持注:混合类型是指同时具有基于UID的特权机制和基于文件的特权机制的特点表2-1操作系统特权机制的比较2.1.4可信通路可信通路是用户能够借以直接同可信计算机通信的一种机制。保证用户确定是和安全核心通信,防止不可信进程如特洛伊木马等模拟系统的登陆过程而窃取用户的口令。提供可信通路的最简单的办法是为每个用户提供两台终端,一台用于处理日常工作,另一台专门用于实现与安全内核的硬连接及专职执行安全敏感操作。这种办法虽然简单,但是十分昂贵。2.1.5安全审计机制审计机制一般通过对日志的分析来完成。审计就是对日志记录的分析并以清晰的、能理解的方式表述系统信息。系统的安全审计就是对系统中有关安全的活动进行记录、检查及审核。审计通过事后分析的方法认定违反安全规则的行为,从而保证系统的安全。安全操作安全审计事件分类使用系统的事件:系统外部事件,即准备进入系统的用户产生的事件注册事件:系统内部事件利用隐蔽通道的事件:系统内部事件审计机制的主要作用①能够详细记录与系统安全有关的行为,并对这些行为进行分析,发现系统中的不安全因素,保障系统安全。②能够对违反安全规则的行为或企图提供证据,帮助追查违规行为发生的地点、过程以及对应的主体。③对于已受攻击的系统,可以提供信息帮助进行损失评估和系统恢复。审计机制的目标可以对受损的系统提供信息帮助以进行损失评估和系统恢复。可以详细记录与系统安全有关的行为,从而对这些行为进行分析,发现系统中的不安全因素。2.1.6存储保护、运行保护和I/O保护存储保护运行保护I/O保护1.存储保护存储保护:主要是指保护用在存储器中的数据每一个进程都有一个“私有的”地址描述符,进程对系统内存某页或某段的访问模式都在该描述符中说明。在地址描述符中w、r、x各占一位,它们用来指明是否允许进程对内存的某页或某段进行写、读和运行的访问操作。2.运行保护安全操作系统的运行保护是基于一种保护环的等级结构实现的在内层具有最小环号的环具有最高特权,在最外层具有最大环号的环是最小特权环等级域机制应该保护某一换不被其外层环侵入,并且允许在同一环内的进程能够有效地控制和利用该环以及该环以外的环图2.1环结构示意图R4:受限用户R3:用户程序R2:系统应用程序R1:操作系统R0:内核3.I/O保护对I/O操作进行安全控制的方式是将设备看成一个客体,对其应用相应的访问控制规则设备到介质间的路径可以不受什么约束,而处理器到设备间的路径则需要施以一定的读写访问控制2.2操作系统安全模型安全模型是设计和实现安全操作系统的基础,安全模型有两种表述方式,一种表达方式从安全模型的组成出发,认为安全模型是安全策略形式化的表述,是安全策略所管理的实体和构成策略的规则。另一种从系统的安全需求出发,认为安全模型是被用来描述系统的保密性、可用性和完整性等需求的任何形式化的表述。2.2操作系统安全模型J.P.Anderson指出,要开发安全系统,首先必须建立系统的安全模型。安全模型给出安全系统的形式化定义,正确地综合系统的各类因素。这些因素包括:系统的使用方式、使用环境类型、授权的定义、共享的客体(系统资源)、共享的类型和受控共享思想等。这些因素应构成安全系统的形式化抽象描述,使得系统可以被证明是完整的、反映真实环境的、逻辑上能够实现程序的受控执行的。完成安全系统的建模之后,再进行安全核的设计与实现。构造一个形式化的安全模型并证明其正确,并将之用于一个系统的设计当中,可以使得一个系统的安全性得到最大限度的保证。随着对计算机安全研究的重视,出现了丰富多采的安全模型。对一些典型的安全模型进行分析研究,从中得到在实际当中进行安全性设计的启发。并适当应用于系统的安全性设计,可以使系统的安全结构清晰,最大限度地避免安全“盲点”。2.2操作系统安全模型安全策略用来描述用户对系统安全的要求。一般来说,用户对信息系统的安全需求基于以下几个方面:机密性要求(confidentiality):防止信息泄露给未授权的用户;完整性要求(integrity):防止未授权用户对信息的修改;可记账性(accountability):防止用户对访问过某信息或执行过某一操作进行否认;可用性(availability):保证授权用户对系统信息的可访问性。2.2操作系统安全模型状态机模型用状态机语言将安全系统描述成抽象的状态机,用状态变量表示系统的状态,用转换规则描述变量变化的过程。状态机模型用于描述其他系统早就存在,但用于描述通用操作系统的所有状态变量几乎是不可能的。状态机安全模型通常只能描述安全操作系统中若干与安全相关的主要状态变量。相当多的安全模型其实质都是状态机模型。它将系统描述成一个抽象的数学状态机,其中状态变量(statevariables)表征机器状态,转移函数(transitionfunctions)描述状态变量如何变化。2.2操作系统安全模型状态机模型状态机模型的两个基本特征是状态和状态转移函数,它的数学原理是这样的:安全的初始状态;安全的状态转移函数;用归纳法可以证明系统是安全的。只要该模型的初始状态是安全的,并且所有的转移函数也是安全的(即一个安全状态通过状态转移函数只能达到新的安全状态),那么数学推理的必然结果是:系统只要从某个安全状态启动,无论按哪种顺序调用系统功能,系统将总是保持在安全状态。2.2操作系统安全模型存取矩阵模型存取矩阵模型(AccessMatrixModel)是状态机模型的一种。它将系统的安全状态表示成一个大的矩形阵列:每个主体拥有一行,每个客体拥有一列,交叉项表示主体对客体的访问模式。存取矩阵定义了系统的安全状态,这些状态又被状态转移规则(即上文的状态转移函数)引导到下一个状态。这些规则和存取矩阵构成了这种保护机制的核心。这种模型只限于为系统提供机制,具体的控制策略则包含在存取矩阵的当前状态中,使得依之实现一个系统时可实现机制和策略的很好分离。2.2操作系统安全模型存取矩阵模型在实际的计算机系统中.当把存取矩阵作为一个二维数组来实现时,它往往会成为一个稀疏矩阵。于是,实际中对存取矩阵的存放,很自然地采用按行存放或者按列存放。按行存放。每个主体在其属性数据结构中部有若干客体及它对它们各自的存取权限,这种方法叫能力表(CapabilityList)法。按列存放,则是在每个客体的属性数据结构中存放着系统中每个主体对该客体的存取权限,这种方法叫访问控制表(AccessControlList,简称ACL)。典型地,系统中每个文件都有一个相应的ACL表来控制各个主体对它的存取权限。比如在UNIX文件系统中,将用户分成用户主、用户组和其它用户三类,分别标明各类用户对文件的存取权限。一般而言,能力表法或ACL法往往将主体对客体的存取权限交给客体的拥有者去制订,从而使这两种方法,尤其ACL法,常常是和自主存取控制策略联系在一起。2.2操作系统安全模型BLP模型Bell和Lapadula在1973年提出BLP模型,然后于1974年至1976年对该模型进行了进一步的充实和完善。BLP模型是最具有代表性的形式化信息安全模型,它是根据军方的安全策略设计的,用于控制对具有密级划分