《信息保障和安全》第五章

目录

5.1 安全操作系统概述

5.1.1 定义及术语

可信计算基(Trusted Computing Base,TCB):

计算机系统内保护装置的总体,包括硬件、固件、软件和负责执行安全策略的组合体。

自主访问控制(Discretionary Access Control,DAC):

用来决定一个用户是否有权限访问此客体的一种访问约束机制,该客体的所有者可以按照自己的意愿指定系统中的其他用户对此客体的访问权。

敏感标记(Sensitivity Label):

用以表示客体安全级别并描述客体数据敏感性的一组信息,在可信计算基中把敏感标记作为强制访问控制决策的依据。

强制访问控制(Mandatory Access Control,MAC):

用于将系统中的信息分密级和类进行管理,以保证每个用户只能够访问那些被标明可以由他访问的信息的一种访问约束机制。

角色(Role):

系统中一类访问权限的集合。

隐蔽信道(Convert Channel):

允许进程以危害系统安全策略的方式传输信息的通信信道。

客体重用(Object Reuse):

对曾经包含一个或几个客体的存贮介质重新分配和重用。

可信通路(Trusted Path):

终端人员能借以直接同可信计算基的一种机制。

多级安全(MultiLevel Secure,MLS):

一类包含不同等级敏感信息的系统,它既可供具有不同安全许可的用户同时进行合法访问,又能阻止用户去访问其未被授权的信息。

安全操作系统(Secure Operating System):

能对所管理的数据与资源提供适当的保护级、有效地控制硬件与软件功能地操作系统。

多级操作操作系统(Multilevel Secure Operating System):

实现了多级安全策略地安全操作系统。

5.1.2 安全操作系统

一般来说操作系统安全与安全操作系统的含义不尽相同,操作系统的安全性是必需的,而安全操作系统的安全性则是其特色。

5.2 安全策略与安全模型

5.2.1 安全策略

安全策略是指有关管理、保护和发布敏感信息的法律、规定和实施细则。

  • 如果主体能访问客体,当且仅当主体的级别高于或等于客体的级别;
  • 如果主体能访问客体,当且仅当主体的级别低于或等于客体的级别。

说一个操作系统是安全的,是指它满足某一给定的安全策略

1. 军事安全策略:

  1. 是基于保护机密信息的策略。
  2. 每条信息被标识为一个特定的等级,如公开、受限制、秘密、机密和绝密
  3. 须知原则:只有那些在工作中需要知道某些数据的主体才允许访问相应的数据。
  4. 每条机密信息都与一个或更多的项目相关,这些项目被称为分割项(Compartment),它描述了信息的相关内容。
  5. 一个用户必须得到许可(Clearance)才能够访问相关信息。

在这里插入图片描述

军事安全同时实施了安全等级要求和须知要求:

  • 安全等级要求是层次化的要求,因为它们反映了安全等级的层级结构;
  • 须知限制是非层次化的,因为分割项不需要表现为一个层次结构。

2. 商业安全策略

中国墙安全策略(注重完整性):
建立在三个抽象等级上:

  1. 对象(Object):位于最低等级,例如文件。
  2. 公司群体(Company Group):位于第二个等级,由与一家特定公司相关的所有对象组成。
  3. 冲突类(Conflict Class):位于最高等级,相互竞争的公司的所有对象集合。

引导出一个简单的访问控制策略:只要一个人至多访问过一个冲突类中某一个公司的信息,那么他就可以访问该冲突类中的任何信息。

5.2.2 安全模型

安全模型是对安全策略所表达的安全需求的简单、抽象和无歧义的描述,它为安全策略和安全策略的实现机制的关联提供了一种框架。安全模型描述了对某个安全策略需要用哪种机制来满足;而模型的实现则描述了如何把特定的机制应用于系统中,从而实现某一特定安全策略所需的安全保护。

开发安全系统首先必须**建立系统的安全模型**。

安全模型有以下几个特点:

  1. 精确的、无歧义的;
  2. 简易和抽象的;
  3. 一般性的:只涉及安全性质,而不过度地牵扯系统的功能或其实现;
  4. 安全策略的明显表现。

安全模型一般分为两种:形式化的安全模型非形式化地安全模型

  • 非形式化安全模型仅模拟系统的安全功能
  • 形式化安全模型使用数学模型,精确地描述安全性及其在系统中使用的情况。

在这里插入图片描述
形式化的安全模型是设计开发高级别安全系统的前提。

模型仅仅只需模拟系统中与安全相关的功能同时可以省略掉系统中的其他安全无关的功能,这也是系统安全模型和形式化功能规范之间的差别。

1. 形式化安全模型设计

要开发安全系统首先必须建立系统的安全模型,完成安全系统的建模之后,再进行安全内核的设计和实现。

  • Bell把安全策略划分为四个层次,说明策略在系统设计的不同阶段的不同表现形式,强调策略发展的逻辑过程
  • Lapadula把模型设计分为五个层次,说明模型在系统设计的不同阶段的不同功能要求,强调模型对象的逻辑联系

指导实现的一般性步骤与模型层次的关系:

  1. 确定对外部接口的要求(Identify Reguirements on the External Interface):明确系统主要的安全需求,并把它们与其他问题隔离开,给出系统安全的确切定义,提出支持可信对象的各种条件及描述安全需求的各种机制和方法,构造一个外部模型。
  2. 确定内部要求(Identify Internal Reguirements):为了支持已确定的外部需求,系统必须对系统的控制对象进行限制,形成了模型的安全性定义,这一步实质上把安全需求与系统的抽象进行结合,提出合理的模型变量,构造一个内部模型。
  3. 为策略的执行设计操作规则(Design Rules of Operation for Policy Enforcement):系统实体为获得安全限制必须遵循一定的操作规则,把安全策略规则化,以确保系统在有效完成系统任务的同时,系统的状态始终处于安全状态中。
  4. 确定什么是已经知道的(Determine What Is Already Known):对于高安全等级操作系统的安全模型的设计必须是形式化的,而且是可形式验证的。
  5. 论述一致性和正确性(Demonstrate Consistency and Correctness):模型的评论阶段,具体到操作系统安全模型的设计。
  6. 论述关联性(Demonstrate Relevance):模型的实施阶段,模型在系统中的解释,也称为模型实现,论述关联性应分层次进行,首先是实现的模式、实现的架构、模型在架构里的解释、实现的对应性论证。

注意:

完备性问题
一个安全状态可以经由一个安全操作进入下一个安全状态,也可能经由一个不安全操作进入下一个安全状态,也就是说安全操作只是确保系统的状态始终处于安全状态的充分条件,如果系统设计的不完备,从一个安全状态进入下一个安全状态时完全可以规避安全操作。

2. 状态机模型原理

安全模型大都是以状态机模型作为模拟系统状态的手段,通过对影响系统安全的各种变量和规则的描述和限制,确保系统保持安全状态。

状态机模型将一个系统描述为一个抽象的数学状态机器状态变量表示机器的状态转换函数或者操作规则用以描述状态变量的变化过程,它是对系统应用通过请求系统调用从而影响操作系统状态的这一方式的抽象,这个抽象的操作系统具有正确描述状态可以怎样变化和不可以怎样变化的能力。

开发一个状态机安全模型包含确定模型的要素(变量、函数、规则等)和安全初始状态。

开发步骤

  1. 定义安全相关的状态变量。状态变量表示了系统的主体和客体,它们的安全属性以及主体与客体之间的访问权限;
  2. 定义安全状态的条件不变式。表达了在状态转换期间状态变量的数值所必须始终保持的关系;
  3. 定义状态转换函数。描述了状态变量可能发生的变化,也称为**操作规则**,限制系统可能产生的类型而非列举所有可能的变化系统不能以函数不允许的方式修改状态变量
  4. 检验函数是否维持了安全状态
  5. 定义初始状态。选择每个状态变量的值,这些值模拟系统在最初的安全状态中是如何启动的;
  6. 依据安全状态的定义,证明初始状态安全

3. 主要安全模型介绍

BLP 模型:

  • 主体:能够发起行为的实体,如进程;
  • 客体:被动的主体行为承担者,如数据、文件等;
  • 主体对客体的访问分为 R(只读)、W(读写)、A(只写)、E(执行)、C(控制)该主体用来授予或撤销另一主体对某一客体的访问模式

BLP 安全策略:

  • 自主安全策略:使用一个访问矩阵表示,访问矩阵第 I 行第 J 列的元素 Mij 表示主体 Si 对客体 Oj 的所有允许的访问模式,主体只能按照在访问矩阵中被授予的对客体的访问权限对客体进行相应的访问;
  • 强制安全策略包括简单安全特性✳ 特性,系统对所有的主体和客体都分配一个访问类属性,包括主体和客体的密级和范畴,系统通过比较主体与客体的访问类属性控制主体对客体的访问。

注意:

  • 可信主体不受 ✳ 特性约束,访问权限太大,不符合最小特权原则;
  • 主要注重保密性控制,控制信息从低安全级传向高安全级,而缺少完整性控制,不能控制“向上写”操作,即不能有效地限制隐蔽信道;
    通过防止非授权信息的扩散保证系统的安全,但不能防止非授权修改系统信息。

Biba 模型:

  • 基于主体、客体、它们的级别的概念;
  • 对系统中的每个主体和每个客体均分配一个级别,称为完整级别
  • 每个完整级别均有两部分组成:密级范畴
  • 定义了一个与 BLP 模型完全相反的模型,声称数据项存在于不同的完整级上,文件的完整性级别标签确定其内容的完整性程度,并且系统应防止完整级低的数据污染高完整级的数据
  • 不足之处:完整标签确定的困难性;在有效保护数据一致性方面是不充分的。

基于角色的访问控制模型(RBAC):

  • 强制访问控制机制
  • 系统内设置若干个称为“角色”的客体,用以支撑 RBAC 授权访问控制机制的实现;
  • 系统管理员负责管理系统的角色集合和访问权限集合,并将这些权限(不同类别和级别)通过相应的角色分别赋予承担不同工作职责的终端用户,而且还可以随时根据业务的要求或变化对角色的访问权限集和用户所拥有的角色集进行调整,这里也包括对可传递性的限制;
  • RBAC 系统明确区分权限职责这两个概念。

5.3 访问控制

在计算机系统中,安全机制的主要内容是访问控制

访问控制包括以下三个任务:

  1. 授权:确定可给予哪些主体访问客体的权利;
  2. 确定访问权限;
  3. 实施访问权限。

注意:访问控制仅适用于计算机系统内的主体和客体,而不包括外界对系统的访问。

5.3.1 自主访问控制 DAC

最常用的一类访问控制机制,是用来决定一个用户是否有权访问一些特定客体的一种访问约束机制。

需要自主访问控制保护的客体数量取决于系统环境。

基于行的自主访问控制机制:

在每个主体上都附加一个该主体可访问的客体明细表,表的分类:

  • 能力表(capabilities list):能力决定用户是否可以对客体进行访问以及进行何种模式的访问;
  • 前缀表(profiles):对每个主体赋予的前缀表,包括受保护客体名和主体对它的访问权限;
  • 口令(password):在基于口令机制的自主访问控制机制中,每个客体都相应的有一个口令,主体在对客体进行访问前,必须向操作系统提供该客体的口令。

基于列的自主访问控制机制:

在每个客体上都附加一个可访问它的主体明细表,表的分类:

  • 保护位(protection bits):对所有主体、主体组以及客体的拥有者指明一个访问模式集合;
  • 访问控制表(access control list,ACL):在每个客体上都附加一个主体明细表,表示访问控制矩阵,表中的每一项都包括主体的身份和主体对该客体的访问权限。

在这里插入图片描述
访问控制表必须简化,如把用户按其所属或其工作性质进行分类,构成相应的组,并设置一个通配符 ✳,代表任何组名或主体标识符

![在这里插入图片描述](https://img-blog.csdnimg.cn/51c0b27d6c9a49cbb6ce8ebcda4d4531.jpg?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5pCe5LiN5oeC6K6h566X5py655qERG9ua2V5,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center =440x200
)

  • CRYPTO 组中的用户 Jones 对文件 ALPHA 拥有 rwx访问权限;
  • CRYPTO 同组中的其他用户拥有 rx 权限;
  • 如果 Green 不在 CRYPTO 同组中,就没有任何权限;
  • 其他用户拥有 r 权限。

拥有者/同组用户/其他用户模式:

  • 在每个文件上附加一段有关访问控制信息的二进制位;
  • 这些二进制位反映了不同类别用户的访问方式,它们是文件的拥有者、与文件拥有者同组的用户、其他用户(一般称为**9比特位模式**);
  • owner 的 3 位反映此客体的拥有者对它的访问权限
  • group 的 3 位反映 owner 同组用户对此客体的访问权限
  • other 的 3 位反映其他用户对此客体的访问权限
  • 缺点:客体的拥有者不能够精确控制某个用户对其客体的访问权。

在这里插入图片描述

访问控制表(ACL)和 “拥有者/同组用户/其他用户” 相结合的模式:

  • ACL 语义。一个 ACL 是对应于一个客体的三元组 <a_type, a_id, a_perm> 的集合,每个三元组称为 ACL 的一项,每项表示允许某个(些)用户对该文件的访问权限
  • type 表示 id 为用户 ID,还是用户组 ID,perm 表示允许 id 代表的用户对该文件的访问权限。

对 ACL 的操作:

  1. 授权:将一个指定用户的标识符和对应的访问权限加入到一个 ACL 之中;
  2. 取消:从指定标识符项的访问权限中取消某些访问权限;
  3. 查阅:读取一个指定客体对应的 ACL 的内容。

DAC 安全检查策略:

  • 若进程以 x 权限访问客体,则 x 必须在客体的相应 ACL 项中;
  • 若进程搜索一路径 path,则进程必须具有路径名中每一目录分量的搜索权。

5.3.2 强制访问控制(MAC)

系统中的每个进程、每个文件、每个 IPC 客体(消息队列、信号量集合、共享存储区)都被赋予了相应的安全属性,这些安全属性是不能改变的,它由管理部门或由操作系统自动地按照严格的规则来设置,不像访问控制表那样由用户或他们的程序直接或间接的控制。

强制访问控制用于将系统中的信息分密级进行管理。

多级安全(MLS)

军事安全策略:

  • 计算机内的所有信息都具有相应的密级,军事安全策略的目的就是防止用户取得自己不应得到的密级较高的信息;
  • 安全级由**保密级别(敏感级别)范畴集**组成;
  • 安全级包括一个保密级别,范畴集包含任意多个范畴;
  • 安全级通常写作保密级别后随一范畴集的形式;
  • 在安全级中保密级别是线性排列的,两个安全级之间的关系:
  1. 第一安全级支配第二安全级;
  2. 第一安全级支配第二安全级,或第二安全级支配第一安全级;
  3. 第一安全级等于第二安全级;
  4. 两个安全级无关。

多级安全规则与 BLP 模型:

  • 模型目标:详细说明计算机的多级操作规则;
  • 对军事安全策略的精确描述称作是多级安全策略
  • BLP 模型有两条基本的规则:
  1. 简单安全特性规则。一个主体对客体进行**读访问**的必要条件是主体的安全级支配客体的安全级;
  2. 特性规则:一个主体对客体进行**写访问**的必要条件是客体的安全级支配主体的安全级。

安全级赋值:

  1. 主体的安全级。即用户的安全级以及代表用户进行工作的进程安全级。系统管理员根据安全策略,使用 adduser 命令创建用户时设置的。
  2. 客体的安全级。客体安全级的确定和赋值,是根据客体的类型按以下规则进行:
  • 文件、有名管道的安全级:为创建该客体进程的安全级,且客体的安全级必须等于其父目录的安全级,保存在相应磁盘 Inode 结点和内存 Inode 结点中;
  • 进程、消息队列、信号量集合和共享存储区:安全级为创建进程的安全级,保存在内存相应的数据索引结构中;
  • 目录的安全级:一个进程创建一个目录,目录的安全级即为创建其进程的安全级,且目录的安全级需大于或等于其父目录的安全级,保存在相应的磁盘 Inode 结点和内存 Inode 结点中。
  1. 设备的安全级。设备具有当前安全级,一个设备的当前安全级为调用该设备的用户进程、系统进程或系统服务进程的安全级,设备的当前安全级必须在设备的最大安全级与最小安全级之间。设备分为单级设备和多级设备:
    • 多级设备可以包含多个安全级数据
    • 单级设备在某个时刻只能处理单一安全级的数据

强制访问控制规则:

在这里插入图片描述

  • 安全级由**密级类别**两部分组成,分别以 S.l、 S.c 表示主体的密级和类别,O.l、O.c 表示客体的密级和类别,授权规则如下:
    1. 当( S.l >= O.l )且 ( S.c 包含 O.c )时,主体可以(执行)客体;
    2. 当( S.l = O.l )且 ( S.c = O.c )时,主体可以客体。
  • 客体为文件、特别文件、目录时:
    1. 若进程以 r 或 x 方式访问客体,进程的安全级需支配客体的安全级;
    2. 若进程以 w 方式访问客体,进程的安全级需等于客体的安全级。
  • 客体为进程时:
    1. 若进程向另一进程发送信号,前者进程的安全级需等于后者进程的安全级。
  • 客体为消息队列、信号量集合、共享存储区、管道时:
    1. 若进程以 r 或 w 方式访问客体,进程的安全级需等于客体的安全级。

使用强制访问控制防止特洛伊木马:

解决特洛伊木马的一个有效方法是使用**强制访问控制机制**。

5.3.3 基于角色的访问控制 RBAC

基本思想:将访问许可权分配给一定的角色,用户通过饰演不同的角色获得角色所拥有的访问所有权。

  • 用户即访问计算机资源的主体;
  • 角色即一种岗位,代表一种资格、权力和责任;
  • 权限即对客体的操作权力。

系统管理员负责授予用户各种角色的成员资格或撤销某用户具有的某个角色。

RBAC 提供了一种描述用户和权限之间的多对多关系,角色可以划分成不同的等级,通过角色等级关系来反映一个组织的职权和责任关系,这种关系具有反身性、传递性和非对称性特点,通过继承行为形成了一个偏序关系。

RBAC 定义不同的约束规则来对模型中的各种关系进行限制,最基本的约束是 “相互排斥” 约束“基本限制” 约束,分别规定了模型中的互斥角色一个角色可被分配的最大用户数

RBAC 和 DAC 的区别:用户不能自主地将访问权限授给别的用户

RBAC 和 MAC 的区别:MAC 是基于多级安全需求的,RBAC 不是

RBAC 组件包括角色权限配置文件授权

在这里插入图片描述

Solaris 系统中的 RBAC 模型引入了以下元素:

  • 授权:一种权限,允许用户或角色执行某一类需要额外权限才能执行的操作;
  • 特权:可以授予命令、用户、角色或系统的独立权限。特权可以保证进程成功执行;
  • 安全属性:允许进程执行某个操作的属性。安全属性允许进程执行原本禁止一般用户执行的操作;
  • 特权应用程序:可以通过检查安全属性来覆盖系统控制的应用程序或命令;
  • 权限配置文件:可以指定给角色或用户的安全属性的集合。一个权限配置文件可以包含授权、直接指定的特权、具有安全属性的命令以及其他权限配置文件。其他配置文件中的配置文件称为补充权限配置文件;
  • 角色:用于运行特权应用程序的特殊身份,这种特殊身份只能由指定的用户承担。

使用网络安全角色和网络安全权限配置文件说明 RBAC 关系:

在这里插入图片描述

  • 网络安全角色用于管理 IPSec、Wi-Fi 和网络连接。该角色指定给用户 jdoe;
  • 网络安全权限配置文件指定给网络安全角色;
  • 补充权限配置文件有直接指定的授权,其中两个包含具有安全属性的命令。

5.4 安全操作系统评测

5.4.1 操作系统的典型缺陷

**I/O 处理**是操作系统最大的薄弱点:

  1. I/O 是通过独立的、智能硬件子系统来完成的,这些自主部件常常位于操作系统的安全内核和安全限制之外;
  2. 执行 I/O 的代码比计算系统其他部件的代码复杂得多,并且更依赖于特定的硬件设备;
  3. 为了快速地传递数据,I/O 活动有时会绕过操作系统的其他功能,有可能避开与这些功能相关的保护特性;
  4. I/O 操作通常是面向字符的,为了能够快速传递数据,操作系统设计者在数据传输期间限制系统执行的指令数目。

访问策略的二义性

  1. 对各用户进行分离,保护他们各自的资源;
  2. 用户需要共享库文件、实用程序、公共数据以及系统表格。

不完全检查

这种机制可用来实现完全保护,但关于何时调用该机制的决策并不完善。

通用性

作为操作系统的一部分,一些软件包必须拥有和操作系统一样的访问特权才能被执行。

5.4.2 评测方法与评估准则

评测方法:

一个操作系统是安全的,是指它满足某一给定的安全策略

  • 形式化验证:分析操作系统安全性最精确的方法是形式化验证;
  • 非形式化确认:完成一个安全操作系统的确认的方法:
  1. 安全需求检查:通过源代码或系统运行时所表现的安全功能,交叉检查操作系统的每个安全需求(有助于说明系统仅做了它应该做的事情,不能保证系统没有做它不应该做的事情);
  2. 设计及代码检查:设计者及程序员在系统开发时通过仔细检查系统设计或代码,试图发现设计或编程错误(依赖于检查的严格程度);
  3. 模块及系统测试:在程序开发期间,程序员或独立测试小组挑选数据检查操作系统的安全性;
  • “老虎”小组入侵测试

如何评价一个计算机系统安全性能的高低:

  1. 安全功能:系统具有哪些安全功能;
  2. 可信性:安全功能在系统中得以实现的,可被信任的程度。

评估准则:
在这里插入图片描述
美国 TCSEC 评测准则介绍:

可信任计算机信息系统的 6 项基本需求,其中 4 项设计信息的访问控制,2 项涉及安全保障:

  1. 安全策略:必须有一个显式和良好定义的安全策略由该系统实现;
  2. 标记:访问控制标签必须对应于对象;
  3. 标识:每个主体都必须予以标识;
  4. 审计:可信任系统必须能将与安全有关的事件记录到审计记录中;
  5. 保证:为保证安全策略、标记、标识和审计这 4 个需求被正确实施,必须有某些硬件和软件实现这些功能;
  6. 连续保护:实现这些基本需求的可信任机制必须连续保护,避免篡改和非授权改变。

将系统分为四类 7 个安全级别:D类、C类、B类、A类,最高类 A 代表安全性最高的系统,C类和 B类又有若干子类称为

在每个级别内,准则分为四个主要部分。前三部分叙述满足安全策略、审计和保证的主要控制目标。第四部分是文档,描述文档的种类,以及编写用户指南、手册、测试文档和设计文档的主要要求。

  • D级是安全性最低的级别,不满足任何较高安全可信性的系统全部划入 D级,该级别说明整个系统都是不可信任的;
  • C类为自主保护类,安全特点在于系统的对象可由其主体自定义访问权。自主保护类依据安全从低到高又分为 C1、C2 两个安全等级:
    1. C1 级:又称自主安全保护系统(Discretionary Security Protection);
    2. C2 级:又称受控制的访问控制系统,具有以用户为单位的 DAC 机制,且引入了审计机制。
  • B类为强制保护类:
    1. B1 级或标记安全保护级(Labeled Security Protection):具有 C2 级的全部功能,并引入强制访问控制机制(MAC),以及相应的主体、客体安全级标记和标记管理;
    2. B2 级或结构保护级(Structured Protection);
    3. B3 级或安全域级(Security Domain)。
  • A类为验证设计保护类:当前 TCSEC 中最高的安全级别,包含了一个严格的设计、控制和验证过程,可信任分布的含义是,硬件和软件在传输过程中已经受到保护,不可能破坏安全系统。
    1. A1 级要求具有系统形式化顶层设计说明(FTDS),并形式化验证 FTDS 与形式化模型的一致性,以及用形式化技术解决隐蔽信道问题。

中国国标 GB17859——1999;
将计算机信息系统安全保护能力划分为 5 个等级:

  1. 用户自主保护级
  2. 系统审计保护级
  3. 安全标记保护级
  4. 结构化保护级
  5. 访问验证保护级

版权声明:本文为weixin_46529793原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。