本质安全型集中式控制安全操作系统研究
BLP在多年的研究当中被认为可以有效防止特洛伊马病毒的攻击,但是仍然存在两个问题:①系统具有动态的信息处理(例如主体的安全级的变化)都是有可信进程来实现的,但是BLP模型并没有对可信进程进行说明,可信进程也不受BLP模型的限制;②BLP模型不能防止隐通道。
2 系统实现原理
根据上面的分析,我们提出了一种本质安全型,以进程控制为中心,集中式管理方式的安全控制方法。下面结合Linux操作系统说明具体的实现原理,以wolf-Linux来指具有这种控制机制的安全操作系统。
本质安全是指一种建立在特殊的硬件设备上(Smart卡),具有特殊的体系结构,可对操作系统本身、进程合法性和运行权利进行验证的安全机制。
系统的安全控制分为六部分:进程管理器、安全服务器、文件系统伺服器、进程通信伺服务器、网络伺服器和审计模块。总体结构如图1所示:进程管理器、安全服务器wolf-Linux安全控制的核心部分,审计模块负责对系统的安全性事件进行记录,其它部分是安全控制的执行模块。
从图1中可以看出,SIM(Subscriber Identity Module)卡处于系统的安全模块中,保存系统的关键信息,集中式管理主要体现在进程控制器部分,安全判定和安全执行的分离使得任何存取操作都不可能绕过安全控制机制。系统中所有的安全事件都通过进程控制器来判定是否可行,安全执行模块负责在访问操作发生时抽象主体和客体,提交访问请求并执行访问结果。下面主要介绍各个模块的功能原理。
(1)安全服务器和SIM卡
系统的安全服务器负责提供系统支持的安全策略。在系统启动时,安全服务器初始化系统支持的安全策略。它的初始化过程中重要的一步是读智能卡中的信息,验证系统的身份。安全服务器提供的接口有三类:①与智能卡的接口。在智能卡中保存系统的关键信息,例如系统的有效使用时间、操作系统身份ID。这个ID号相当规模识了一个合法的系统身份和系统用户身份信息(在系统的安全特性部分还会讨论)。安全模块通过智能卡的驱动程序,负责与智能卡信息的安全交互,并提供访问智能卡的操作函数。②与进程控制器交互的接口。安全服务器只负责实现对安全策略的支持,而不管判定访问操作是否合法。进程控制器在判定访问是否合法时,使用安全服务器提供规则。③提供给系统管理的接口。由于在安全模块当中实现了策略的独立性,所以安全模块可以在实现对多种策略的支持。接口函数包括安全模块的初始化接口、安全策略的注册接口、安全策略的管理接口。通过这些接口函数可以实现对安全策略的配置,系统安全特性针对不同的工作环境,可以动态变化。安全模块的固化设计保证系统的安全特性不可能被破坏和篡改。
javascript:window.open(this.src);" style="cursor:pointer;"/>
(2)进程控制器
进程控制器是系统安全特性的关键部分,功能有两个:①以进程为单位的权限控制;②判定安全执行部分提供的访问请求并返回判定结果;同时为了提高效率,保存最近的访问判定结果,提供缓存功能。
在传统的Unix系统当中,一般提供基于用户的权限控制方法,系统的控制粒度只能到用户。一般的攻击方法是利用程序的设计漏洞,或者用户的误操作来取得高级权限。在我们研究这类安全问题时,继续细化了这类控制方法,提供更细的控制粒度;可以针对每一个进程进行控制,确保用户所启动的所有进程均处于相应权限控制之下。
(3)文件系统伺服器
主要操作是抽象各种操作,包括对文件系统的操作和对于文件的操作;是在文件系统当中的系统调用部分加入控制机制,向控制器提交访问的主客体标识符。在Linux操作系统中,涉及到的数据结构有:super_block(表示文件系统),file(表示操作的文件),inode(表示管道),文件或者网络套接字等等。
(4)网络伺服器
网络安全部分控制操作的目的是,防止违法的网络操作。例如,控制网络打开与关闭,路由器和防火墙的安全规则配置,端口绑定,网络广播等。
(5)进程通信伺服器
进程之间的安全通信是安全操作系统研究的重点之一。随通道是指按照常规不会用于传送信息却被利用泄漏信息的传送渠道。隐通道包括正规隐通道、存储隐通道和时间隐通道。在我们的研究过程中,分析了前两种信息泄漏方式,通过以进程为控制单位,控制进程之间有效通信方式来解决。在Linux方式当中,提供信号量、消息队列和共享内存等进程通信方式,在关键点处加入控制点,例如msg_msg代表单个的消息,kern_ipc_perm代表信号,共享内存段,或者消息队列。进程控制器提供的控制机制使得普通用户的进程只能在具有血缘关系的进程之间来传送消息,可有效防止信息的扩散。
(6)设备管理器
在计算机系统当中,输入输出设备非常易于泄漏信息,包括打印机、终端、文件卷等。例如,黑客可以利用模拟登陆终端设备来取得用户密码。这个模块负责对这些设备进行单独的管理,保证这些设备始终处于有效和正确的状态下。
3 系统的安全特性
本质安全型操作系统是在嵌入式系统背景下设计的一种安全操作系统。相对于其它嵌入式系统,它提供了一种根本意义上的信息安全保证;扩展了安全操作系统的内涵,引入了操作系统的生命周期、系统生成态、运营态、消亡态概念。在不同的时间段,安全应该有不同的考虑,而智能卡作为安全控制的基点,保证操作系统可在各种状态之下转换。智能卡健全的发生和管理机制,是安全的重要保证。下面介绍本质安全型集中式控制操作系统提供的安全特性。
(1)身份标识
在wolf-Linux系统当中,身份标识包括系统身份标识和用户身份标识。
系统身份标识是指在系统启动过程当中,对运行的平台和运行系统进行身份验证。智能卡中和操作系统中,在系统生成态时均被赋予了的特定数字ID,系统启动时操作系统读取智能卡中的ID号,进行验证。如果不合法,则转入USSPEND态,不能正常启动。通过智能卡可以有效地对系统的生命周期进行监控。
用户身份标识是指通常的用户身份标识与鉴定。系统采用智能卡保存用户的关键信息,防止被非法篡改或窃取。
(2)进程受控运行
在一般的嵌入式系统当中,不可能对系统运行的进程进行有效监控,wof-Linux提出了一种以进程控制为中心的管理方法。系统中运行的程序必须取得合法性验证才可以运行,对于一些违法的攻击程序可以有效进行限制。系统控制粒度可以以进程为单位,结合强制存取控制可以有效保证数据的安全性。
(3)集中式管理和强制访问控制
不同于现有的系统安全代码分散到系统的各个部分,wolf-Linux实现了集中式管理的策略。安全执行部分抽象存取操作的主体和客体,提交给进程控制器进行判定,集中式控制保证系统的所有存取操作不可能绕过系统的安全机制。强制存取控制是集中式控制的一种具体实现的存取控制机制。
图2给出了系统中安全存取控制的层次。
从上面分析可知,本质安全型操作系统是指建立在特殊的硬件设备基础之上,可以对系统运营平台,对系统进程合法性和运行权利进行有效保证的安全系统。
4 系统验证分析
由上述可知,本质安全型操作系统是建立在智能卡技术之上的。传统的研究方法最终将系统的安全建立在密码技术之上,而随着密码破解技术和开源操作系统的发展,密码机制已经不能有效地保证系统的安全。安全操作系统和智能卡的结合,使系统的安全控制点建立在软硬件结合的技术之上,从而可对系统的各种状态和环节进行有效的控制。在翰林电子书中采用这种结合智能卡的安全控制方式,取得了良好的效果。表1提供了一般嵌入式安全操作和本质安全型操作系统的安全特性对比。
表1 系统安全特性对比
系 统 | 本质安全型操作系统 | 一般的安全操作系统 |
控制粒度 | 以进程为单位 | 以用户为单位 |
TCB的设计方式 | 采用智能卡固化设计 | 纯软件设计 |
控制方式 | 集中式管理 | 分散式管理 |
控制环节 | 多环节支持 | 存储和访问环节 |
身份标识与鉴定 | 基于智能卡的增强型 | 基于普通密码机制 |
存取控制方式 | 强制存取控制和自主存取控制 | 自主存取控制 |
结语
后PC时代,嵌入式系统成为发展主流,它的安全性是将来整个信息系统安全的基础。由于嵌入式应用环境的多样性,单纯地使用软件来实现安全操作系统已经不太现实,软硬件结合是一种重要的方法。本文分析了嵌入式系统面临的安全问题的特点,提供了一个全新的安全概念,丰富了操作系统安全研究的内涵。目前由于系统攻击方法的多样性,多策略支持已经成为主要发展方向。Linux社区已经实现lsm多策略支持安全控制框架,可以支持se-linux的flask的安全体系结构和capability的权能控制机制。在研究安全操作系统时,安全机制对系统性能的影响是一个需要严肃考虑的问题。在一般的安全控制机制中,系统的性能大概会下降10%~20%,因此需要衡量控制范围和性能影响,同时要提供完善的缓存机制。