1.引言
本文通过研究安全操作系统的访问控制模型,结合国内、外的相关安全标准和已有的先进技术,将密码服务与高级别存取控制机制有机地结合起来,形成一个适应各类安全2级实用操作系统。该安全服务器将在Linux操作系统的基础上(目前Linux操作系统主要发行版本的安全性大致处于《TCSEC》标准[1,2] 的C2 级),参照GB/T 18336(等同采用CC标准)安全保证级别EAL4,开发符合GB 17859中规定的结构化保护级(相当于TCSEC中规定的B2级)功能要求的安全操作系统。
1. 安全策略访问控制模型
该类模型是从访问控制的角度描述安全系统,主要针对系统中主体对客体的访问及其安全控制。[2]
1.1 BLP模型
Bell&Lapadula(BLP)模型[3~5]---是由----Bell和Lapadula于1973年提出并于1976年修定、整合和完善的安全模型,它是最典型的信息保密性多级安全模型,通常是处理多级安全信息系统的设计基础。
BLP模型的安全策略包括强制访问控制和自主访问控制两部分。强制访问控制中的安全特性,要求对给定安全级别的主体,仅被允许对同一安全级别和较低安全级别上的客体进行“读”,对给定安全级别上的主体,仅被允许向相同安全级别或较高安全级别上的客体进行“写”,任意访问控制允许用户自行定义是否让个人或组织存取数据。
BLP模型为通用的计算机系统定义了安全性属性,即以一组规则表示什么是一个安全的系统。其优点是这种基于规则的模型比较容易实现。但是它不能更一般地以语义的形式阐明安全性的含义。因此,这种模型不能解释主、客体框架以外的安全性问题,还不能较好的处理隐蔽通道的问题。
1.2 DTE模型
DTE (Domain and Type Enforcement)模型[5]是由O’Brien and Rogers于1991年提出的一种访问控制技术。它通过赋予文件不同的型(type)、赋予进程不同的域(domain)来进行访问控制,从一个域访问其他的域以及从一个域访问不同的型都要通过DTE策略的控制。
近年来DTE模型被较多的作为实现信息完整性保护的模型。该模型定义了多个域(Domain)和型(Type),并将系统中的主体分配到不同的域中,不同的客体分配到不同的型中,通过定义不同的域对不同的型的访问权限,以及主体在不同的域中进行转换的规则来达到保护信息完整性的目的。
DTE使域和每一个正在运行的进程相关联,型和每一个对象( e.g.文件、包)相关联。如果一个域不能以某种访问模式访问某个型,则这个域的进程不能以该种访问模式去访问那个型的对象。当一个进程试图访问一个文件时,DTE 系统的内核在做标准的系统许可检查之前,先做DTE许可检查。如果当前域拥有被访问文件所属的型所要求的访问权,那么这个访问得以批准,继续执行正常的系统检查。
1.3 RBAC模型
RBAC模型[5]是基于角色的访问控制模型。该模型主要用于管理特权,在基于权能的访问控制中实现职责隔离及极小特权原理。
RBAC包含以下基本要素:用户集(Users),主体进程集(Subjects),角色集(Roles),操作集(Operations),操作对象集(Objects),操作集和操作对象集形成一个特权集(Privileges);用户与主体进程的关系(subject_user),用户与角色的关系(user_role), 操作与角色的关系(role_operations), 操作与操作对象的关系(operation_object)。
通常subject_user是一个多对一的关系,它把多个主体进程映射到一个用户,这些进程都是替代该用户的主体进程;在本模型中它就是一个典型的多对一的关系。user_role可以是多对多的关系,但在本模型中它被简化为一对一的关系。role_operations是一个一对多的关系,它把一个角色映射到多个操作,是角色被授权使用的操作的集合;operation _object是一个一对多的关系,它把一个操作映射到多个操作对象,是操作被授权作用的操作对象集。
在本模型中,替代用户的主体进程可能只激活用户角色的被授权的操作的一部分,而且操作也可能仅作用在被授权作用的操作对象集的一个子集合上。在本系统中,将实现基于角色的授权和控制,支持角色互斥,不支持角色的继承,不支持同一个用户的多个角色。
2. 安全系统的设计
2.1 安全模型的设计
参照GB 17859中结构化保护级的安全功能特性要求,本系统中的安全服务器将遵循改进的BLP模型、DTE模型以及RBAC模型来实现系统的安全策略。其中,BLP模型是多级安全模型,保护信息的机密性;DTE模型是多域模型,保护信息的完整性;RBAC模型是基于角色的访问控制模型,是授权模型。通过三种模型的相互作用和制约,保证系统中的信息以及系统自身的安全性。
授权策略RBAC是整个系统的基础,它通过为用户设置特定角色,影响IA控制、特权控制、多域访问控制和强制访问控制等基本功能,达到控制系统中用户/主体对客体/对象的访问的目的。在本系统中,每个用户都有且只有一个角色。为某个用户给定一个角色,相当于给定该用户的***特权集、安全标记范围、DTE域范围和最小审计掩码。该用户的上述属性只能够在给定角色的范围内指定。RBAC是通过最小特权、强制访问控制(包括MAC机密性保护和DTE完整性保护)和安全审计等功能组合实现的。
而多域策略DTE和多级安全策略BLP则是在授权策略授权的基础上,调用多域访问控制和强制访问控制功能,实现对客体/对象信息的完整性和机密性保护。
本系统在BLP模型的基础上进行了一些改动:
1. 对BLP模型“上写下读”的信息流规则进行了限制,将其中的“上写”改为:低安全等级的主体可以创建高安全等级的客体或向高安全等级的客体中添加信息,但是不能修改或删除高安全等级客体中的原有信息。例如,低安全等级的主体可以在高安全等级目录下(在通过了DAC和DTE检查的情况下)创建新的文件(包括子目录、命名管道等),但是不能删除原有的文件(包括子目录、命名管道等),也不能改写高安全等级文件的内容;
2. 引入可信主体的概念,即:所谓可信主体,就是拥有多个安全级或一个安全级范围的主体;
3. 引入可信客体的概念,即:所谓可信客体,就是拥有多个安全级或一个安全级范围的客体。
本系统中DTE实现采用为主体/客体指定域/型标识(统称为DTE标识)的方法,DTE策略将通过为主体赋“域”(Domain),为客体赋“型”(Type),并定义“域”和“型”之间的访问权限实现DTE完整性保护,并采用DTEL(DTE Language)语言进行描述,通过命令设置到系统核心。
核心中将为每个主体维护一个“域”标记,为每个文件维护一个“型”标记。当操作发生时,系统将根据主体“域”标记、文件“型”标记以及访问控制表判断是否允许操作发生。
原则上,构造一个安全系统必须同时兼顾用户应用系统、O/S服务系统、Linux 内核、硬件这四个子系统,使它们都获得有效的保护;但本系统主要关心用户应用系统和Linux 内核系统,因为它们与Linux 系统安全联系最直接。构筑安全Linux 系统的最终目标就是支持各种安全应用,如果系统在构造之初就没有区别地对待不同的应用,或者说不采取隔离的方式对待不同的应用,那么这样的系统是不实用的,因为不同的应用对系统安全可能造成的威胁是不同的。对用户应用系统的控制,我们主要采用角色模型与DTE技术的结合;而对Linux 内核的控制,则通过权能访问控制、增强的BLP模型及DTE策略来实现。
2.2 安全系统的结构设计
用户请求的系统操作进入核心后,首先经过安全策略执行点,调用相应的安全策略执行模块,安全策略执行模块读取相关的系统安全信息和主/客体安全属性,并调用安全策略判定模块进行安全判定,决定是否允许用户请求的操作继续执行;当用户请求的系统操作得到允许并执行结束后,再次通过安全策略执行点,进行相关安全信息/属性的设置和安全审计。
安全服务器中的功能模块与原有的系统操作是相对独立的,双方通过hook函数进行联系。通过改变hook函数的指向,可以启用不同的安全服务器。不同的安全服务器可以选择不同的安全策略,从而达到支持多安全策略的目的。
2.3 安全系统的功能设计
安全系统在原有Linux操作系统基础上,新增了的强制访问控制、最小特权管理、可信路径、隐通道分析和加密卡支持等功能组成,系统的主要功能如下:
1. 标识与鉴别
包括角色管理、用户管理和用户身份鉴别等三个部分。
2. 自主访问控制
本系统在自主访问控制中加入ACL机制。
3. 强制访问控制
提供基于数据保密性的资源存取控制方法,提供了比DAC更严格的访问约束。
4. 安全审计
本系统能创建和维护受保护客体的访问审计跟踪记录,并能阻止非授权的用户对它访问或破坏。
5. 客体重用
在本系统中,出于系统效率和可靠性的考虑,只实现对核心重要数据结构剩余信息的自动清除和文件内容的人工清除。
6. 最小特权管理
特权管理实现的方法是:对特定角色的用户和可执行文件赋予相应的特权集,用户登录时获取初始特权集,进程在执行可执行文件时,根据文件的特权集重新获取新的特权;提供赋予可执行客体的有效、继承、许可三个特权集的能力。
7. 可信路径
可信路径要求为用户提供与系统交互的可信通道。强制身份鉴别和网络加密都是可信路径的组成部分。此外,本系统将为用户提供安全注意键,系统监视到用户使用该键后,将自动退出当前会话,回到登录界面。
8. 隐蔽通道分析
本系统掩蔽通道分析将基于源代码,采用下列方法进行:
分析所有操作,列出操作及其涉及的共享资源(客体属性)
ü 列出操作与共享资源的关系图。
ü 找出所有可能的存储隐蔽通道。
ü 分析、标识每个存储隐蔽通道,并给出带宽。
9. 加密卡支持
本系统将支持一款经过国家商用密码管理委员会办公室认证的加密卡,为用户提供加密API和对文件进行加/解密的功能,同时也为本系统的强身份鉴别和网络加密部分提供支持。
3. 结论
本系统通过对Linux核心结构和操作系统域外层安全体系的层次结构的研究,遵循国内、外的相关安全标准,将三种安全策略模型和已有的先进技术有机地结合起来,增加了强制访问控制、最小特权、可信路径等安全功能,成功的在Linux操作系统上得已实现,基本达到了GB17859中规定的结构化保护级(《TCSEC》的B2级)的要求。
操作系统安全增强技术作为信息安全的关键部分,得到了国内、外的普遍重视。在安全领域,系统的安全性总是相对的。因此,对安全模型的研究和建模以及信息安全系统体系和方案设计的研究还有待进一步的深入。本设计方案已经在Linux操作系统上得到具体的实现,还有待于在实际应用中对安全操作系统进一步地考验和完善。