摘要:本文介绍了BLP、DTE和RBAC三种安全策略访问模型,并结合这三种安全策略模型,形成一个适应各类安全产品的实用操作系统。此设计方案遵循GB17859-1999[1]中规定的结构化保护级(相当于《TCSEC》标准的B2级[2])的安全要求进行设计,并在Linux操作系统上得以实现。 关键字:安全技术;安全模型;Linux操作系统中图分类号:TP309 文献标识码:② 文章编号:1. 引言随着社会信息化的发展,计算机安全问题日益严重,建立安全防范体系的需求越来越强烈。操作系统是整个计算机信息系统的核心,操作系统安全是整个安全防范体系的基础,同时也是信息安全的重要内容。本课题将通过研究操作系统的安全策略访问模型,结合国内、外的相关安全标准和已有的先进技术,将密码服务与高级别存取控制机制有机地结合起来,探索适合国情的安全操作系统结构,最终形成一个适应各类安全产品系统安全需求的结构化保护级(相当于TCSEC中规定的B2级)实用操作系统。并且通过推动安全操作系统的应用,取得良好的经济效益和社会效益。2. 安全模型该类模型是从安全策略和访问控制的角度描述安全系统,主要针对系统中主体对客体的访问及其安全控制。[3] 多级安全及自主访问策略模型多级安全及自主访问策略模型的每个主体在替代用户之前,必须被配置最大安全级及标签范围;除某些可信客体外,每一个客体都要配置标签范围。Bell&Lapadula(BLP)模型[4,5]是最典型的信息保密性多级安全模型,包括强制访问控制和自主访问控制两部分。强制访问控制中的安全特性,要求对给定安全级别的主体,仅被允许对同一安全级别和较低安全级别上的客体进行“读”,对给定安全级别上的主体,仅被允许向相同安全级别或较高安全级别上的客体进行“写”,任意访问控制允许用户自行定义是否让个人或组织存取数据。 多域安全策略模型多域策略的基本思想是:赋予保护对象一种抽象的数据类型,该类型表明了保护对象要保护的完整性属性,然后规定只有经授权的主动进程能替代用户访问这一完整性属性,并限制该主动进程的活动范围,使其获得它应该完成目标以外的能力极小化。DTE (Domain and Type Enforcement)模型[6]是近年来被较多的作为实现信息完整性保护的模型。该模型定义了多个域(Domain)和型(Type),并将系统中的主体分配到不同的域中,不同的客体分配到不同的型中,通过定义不同的域对不同的型的访问权限,以及主体在不同的域中进行转换的规则来达到保护信息完整性的目的。 基于角色的访问控制模型基于角色的访问控制模型的目的就是通过域隔离,确保对系统的完整性破坏的极小化。RBAC模型[6]是基于角色的访问控制模型。该模型主要用于管理特权,在基于权能的访问控制中实现职责隔离及极小特权原理。其基本要素之间的关系如图1所示:图1 RBAC基本要素关系 the relationship of basic elements in RBAC在本系统中,将实现基于角色的授权和控制,支持角色互斥,不支持角色的继承,不支持同一个用户的多个角色。3. 安全系统的设计 安全模型的设计本系统中的安全服务器将遵循改进的BLP模型、DTE模型以及RBAC模型来实现系统的安全策略。其中,BLP模型保护信息的机密性;DTE模型保护信息的完整性;RBAC模型是授权模型。通过三种模型的相互作用和制约,保证系统中的信息以及系统自身的安全性。图2为本系统中三种模型以及重要功能的相互关系。图2 模型间的相互关系 the relationship of models如图2所示,授权策略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策略来实现。 安全系统的结构设计图3 Linux 结构化保护级安全服务器系统结构图 the structure chart of Linux structure protection security server 图3说明了本系统的体系结构。如图3,用户请求的系统操作进入核心后,首先经过安全策略执行点,调用相应的安全策略执行模块,安全策略执行模块读取相关的系统安全信息和主/客体安全属性,并调用安全策略判定模块进行安全判定,决定是否允许用户请求的操作继续执行;当用户请求的系统操作得到允许并执行结束后,再次通过安全策略执行点,进行相关安全信息/属性的设置和安全审计。安全服务器中的功能模块与原有的系统操作是相对独立的,双方通过hook函数进行联系。通过改变hook函数的指向,可以启用不同的安全服务器。不同的安全服务器可以选择不同的安全策略,从而达到支持多安全策略的目的。 安全系统的功能特性安全系统在原有Linux操作系统基础上,新增了的强制访问控制、最小特权管理、可信路径、隐通道分析和加密卡支持等功能组成,系统的主要功能如下:1. 标识与鉴别标识与鉴别功能用于保证只有合法的用户才能存取系统资源。本系统的标识与鉴别部分包括角色管理、用户管理和用户身份鉴别等三个部分: 角色管理是实现RBAC模型的重要部分,将角色配置文件存放在/etc/security/role文件中,角色管理就是对角色配置文件的维护。 用户管理就是对用户属性文件的维护,是在系统原有用户管理的基础上修改和扩充而来;本系统改变了原有系统集中存放用户属性的方式,在/etc/security/ia目录下为每个用户创建一个属性文件。 用户身份鉴别过程就是控制用户与系统建立会话的过程;本系统将修改原有系统的pam模块和建立会话的程序,增加对管理员用户的强身份鉴别(使用加密卡),增加为用户设置初始安全属性(特权集、安全标记、域、审计掩码)的功能。2. 自主访问控制(DAC)用于进行按用户意愿的存取控制。使用DAC,用户可以说明其资源允许系统中哪个(些)用户使用何种权限进行共享。本系统在自主访问控制中加入ACL机制。利用ACL,用户能够有选择地授予其他用户某些存取权限,来对信息进行保护,防止信息被非法提取。3. 强制访问控制(MAC)提供基于数据保密性的资源存取控制方法。MAC是多级安全及自主访问策略的具体应用,通过限制一个用户只能在低级别上读访问信息、只能在自身的级别上写访问信息,来加强对资源的控制能力,从而提供了比DAC更严格的访问约束。4. 安全审计审计是模拟社会监督机制而引入到计算机系统中,用于监视并记录系统活动的一种机制。审计机制的主要目标是检测和判定对系统的渗透,识别操作并记录进程安全级活动的情况。本系统中的审计事件分为可信事件与系统调用。系统对每个用户审计的内容不同,需要设置系统的审计事件掩码和用户的审计事件掩码。在形成审计记录时,核心将根据审计掩码进行选择。5. 客体重用客体重用是指TSF必须确保受保护资源内的任何信息,在资源被重用时不会被泄露。客体重用功能可以防止重要的客体介质在重新分配给其他主体的时候产生信息泄漏。在本系统中,出于系统效率和可靠性的考虑,只实现对核心重要数据结构剩余信息的自动清除和文件内容的人工清除。6. 最小特权管理根据《TESCE》B2级中提出的最小特权原理,系统中的每个进程只应具有完成其任务和功能所需要的最小特权。因此,在本系统中开发了一种灵活的特权管理机制,把超级用户的特权划分成一组细粒度特权的集合,通过对系统中用户和进程特权的赋值、继承和传递的控制,将其中的部分特权赋给系统中的某个用户,从而使系统中的普通用户也能具有部分特权来操作和管理系统。7. 可信路径可信路径要求为用户提供与系统交互的可信通道。可信路径的实现方法是通过核心对安全注意键的监控,并退出当前终端下的所有应用程序,启动新的可信登陆程序。根据《TESEC》B2级对可信通路的要求,在本系统中开发了可信通路机制,以防止特洛伊木马等欺诈行为的发生。用户无论在系统的什么状态下,只要激活一个安全注意键(一般设置为Ctrl-Alt-A),就可以进入一个安全的登录界面。另外,本系统还采用了管理员用户的强身份认证和建立加密通道等技术,也可以保证用户与系统间交互的安全性。8. 隐蔽通道分析我国《计算机信息系统安全保护等级划分准则》[1]要求第四级及以上级别安全信息系统产品必须分析与处理隐蔽通道。本系统掩蔽通道分析将基于源代码,采用下列方法进行:分析所有操作,列出操作及其涉及的共享资源(客体属性) 列出操作与共享资源的关系图 找出所有可能的存储隐蔽通道 分析、标识每个存储隐蔽通道,并给出带宽9. 加密卡支持 本系统基于国产密码硬件资源,实现的密码服务主要包括三个方面:文件存储加解密:在命令层为用户提供一套SHELL命令,实现文件的机密性、完整性保护,同时提供一套接口库函数,供用户编程使用。特权用户强身份认证:结合RBAC、DTE策略,对特权(角色)用户实施强身份认证。数据传输加解密:在核心提供一套函数接口,用于实现数据的机密性和完整性。4. 结论本方案通过对Linux核心结构和操作系统域外层安全体系的层次结构的研究,遵循国内、外的相关安全标准,将三种安全策略模型和已有的先进技术有机地结合起来,增加了强制访问控制、最小特权、可信路径等安全功能,成功的在Linux操作系统上得已实现,基本达到了GB17859-1999中规定的结构化保护级(相当于《TCSEC》标准的B2级)的要求。操作系统安全增强技术作为信息安全的关键部分,得到了国内、外的普遍重视。在安全领域,系统的安全性总是相对的。因此,对安全模型的研究和建模以及信息安全系统体系和方案设计的研究还有待进一步的深入。本设计方案已经在Linux操作系统上得到具体的实现,还有待于在实际应用中对安全操作系统进一步的考验和完善。 参考文献[1] GB17859-1999, 计算机信息系统安全保护等级划分准则[S].[2] DoD 5200. 28-STD, Department of Defense Trusted Computer System Evaluation Criteria[S]. Department of Defense, Washington,DC, 1985.[3] 石文昌, 孙玉芳. 计算机安全标准演化与安全产品发展[J]. 广西科学, 2001, 8 (3): 168-171.[4] BELL D E, LaPADULA L J. Secure computer system: mathematical foundation and model[R]. Bedford MA: Mitre Corp, 1973. M74-244.[5] 石文昌, 孙玉芳, 梁洪亮. 经典BLP安全公理的一种适应性标记实施方法及其正确性[J]. 计算机研究与发展, 2001,11 (38): 1366~1371[6] 季庆光,唐柳英.《结构化保护级》安全操作系统安全策略模型[R]. 北京:中科院信息安全技术工程研究中心,中软网络技术股份有限公司, Research and Design of Security Model LI Fang, HU Zhi-xing(Information Engineering Institute, University of Science and Technology Beijing, Beijing 100083, China)Abstract: After study of BLP model, DTE model and RBAC model, and combination of the three security models, an implementation scheme of security system and its components and functions is provided, which achieves the structure protection of GB17859 (as the level B2 of TCSEC standard). The scheme is implemented on Linux operating system successfully. Key words: security techniques; security model; Linux operating system