首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

访问控制框架中多策略模块的组合方法(1

访问控制框架中多策略模块的组合方法(1

1.        引言安全操作系统的研究最初从1967年Adept-50项目启动时的奠基时期[1]开始,安全操作系统的基本思想、理论、技术和方法逐步建立。到TCSEC标准[2]颁布开始的食谱时期,研究如何使用安全评价标准来设计安全操作系统,在此阶段出现了从C2---A1各等级的系统,但存在的问题是系统与变化的应用需求相脱节。
随着90年代初Internet影响的扩大,分布式应用的迅速普及,单一安全策略与安全策略多种多样的现实世界之间拉开了很大的差距。美国国防部推出通用安全体系结构(Denfence Goal Security Architecture, DGSA),其显著特点之一是对多级安全策略支持的要求,安全操作系统的研究进入多策略时期。
从单一策略支持到多种策略支持,安全操作系统迈出了向实际应用环境接近的可喜一步。然而,R.Spencer等指出[17],从支持多种安全策略到运行策略灵活性,还有相当一段距离。策略灵活性是动态策略时期的重要特征,1999年,Flask[5]系统的诞生是动态策略时期的帷幕徐徐打开的标志。
当前的动态策略时期,安全操作系统支持多种安全策略的动态变化,实现安全策略的多样性,为安全策略提供灵活性支持,没有一个策略模型可以满足每种环境的安全需要,系统必须支持多个安全策略模型,如RSBAC(Rule Sets based Access Control)[3,4]、SELinux(Security Enhance Linux)[5,6,7,8]就支持多个安全策略模型。而如何有效地在系统中组织多个安全策略是安全操作系统研究的难题。
访问控制框架可以很好地支持多安全策略,如图1:ISO通用访问控制框架[16]。访问控制框架基本的实体主要由主体、客体、访问实施组件(Access Control Enforcement Function,AEF)和访问控制决定组件(Access Control Decision Function,ADF)组成。主体向访问实施组件发出对客体的访问请求,访问实施组件AEF向访问控制决定组件ADF询问判定请求。访问决定组件根据多种访问决定信息(Access Decision Information, ADI)如主体的ADI、访问请求ADI和客体ADI以及访问控制策略规则等形成最后的判定结果,向访问实施组件返回,则由访问实施组件实施访问控制判定。
访问控制框架将安全策略决定和其实施相隔离,不管安全策略判定是如何形成的,也不管它们如何随时间的推移而发生变化,都确保访问控制框架子系统总是有一致的安全策略判定视图,从而在安全策略方面提供灵活性。但是多个安全策略规则之间可能存在冲突,如何有效组织多个安全策略形成最终的安全决定,则是访问控制框架需要考虑的一个重要的问题。
Linux系统中提出的LSM框架(Linux Security Module)[9,10,11]和FreeBSD系统[12,13,14,15]中提出的MAC框架都支持多个安全策略,但是组织多个安全策略形成策略判定的方法不相同。下面我们通过对几种访问控制框架中多安全策略的如何组合形成安全决定的问题进行分析与比较,针对其存在的问题,提出一种新的多策略组合问题的解决方法:基于控制标记的多策略组合方法,从而可以很好地满足实际环境的需要,并在基于Linux的GFAC框架上加以实现。
本文先对有关的访问控制框架中安全策略的组合情况进行介绍,并进行了分析;针对其存在的问题,提出基于控制标记的多策略组合方法的基本思想;然后,将基于控制标记的多策略组合方法的基本思想在基于Linux的GFAC框架上加以实现,并描述其实现算法。之后对该多策略组合方法进行分析;最后对本论文进行总结。
2.        相关研究工作动态安全策略时期,安全操作系统支持多种安全策略的动态变化。Flask体系结构实现了动态安全策略,支持策略灵活性。Flask安全体系结构描述两类子系统之间的相互作用以及各类子系统中的组件应满足的要求,两类子系统中,一类是对象管理器,实施安全策略的判定结果,另一类是安全服务器,作出安全策略的判定,是图1:ISO通用访问控制框架的具体实现。
Flask原型系统的安全服务器实现了由四个子策略组成的安全策略,这几个子策略是多级安全(MLS)策略、类型实施(TE)策略、基于标识的访问控制(IBAC)策略和基于角色的访问控制(RBAC)策略。安全服务器提供的访问判定必须满足每个子策略的要求。
GFAC(Generalized Framework for Access Control)研究项目由Marshall Abrams领导,于九十年代前期完成。它提供了一个用于表达和支持多安全政策的框架,其主要目标是:
  • 使得描述、形式化和分析各种访问控制政策更容易
  • 使得用户可以从系统开发者提供的多个安全政策支持模块中,选择几个进行配置,得到需要的安全政策。并且可以确信安全政策得到了正确的实施。
  • 对于所支持的每个安全政策,都能证明满足了政策的原始定义。
RSBAC系统是以Linux操作系统为基础的基于GFAC框架的安全操作系统,多种不同的安全策略模块作为ADF已经在系统中实现,除了传统的BLP模型,还包括安全信息修改策略(Security Information Modification, SIM)和功能控制策略(Functional Control, FC)、文件标记策略(File Flags, FF)、角色兼容性策略(Role Compatibility, RC)、授权执行策略(Authorization enforcement, AUTH)和访问控制列表(ACL)等。访问请求必须满足全部安全策略才授予许可权。
LSM是在主流Linux内核上开发的一种访问控制框架,其设计目标要求不同的访问控制模块可以在相同的Linux内核上实现,如果使用不同的安全模型,只需要以可装载内核模块的形式加载不同的安全模块。当前大量已经存在的增强的访问控制模块都可以在Linux中通过LSM得以实现,包括POSIX.1e capabilities、SELinux和DTE等。
LSM框架是一个灵活的、可扩展的安全框架,支持多个MAC策略。首先向系统注册的安全模块为主要模块,LSM框架提供简单的机制将其它的安全模块与主要安全模块进行堆栈而对多安全策略模块组合的支持。关于如何堆栈的实际细节将由系统主要安全模块决定。在主要模块之后注册的安全模块为辅助安全模块,需要向主要安全模块注册,由主要安全模块决定是否可以注册,如果它不希望支持堆栈,就可以总是返回一个错误。
TrustedBSD项目组开发的MAC框架支持多个MAC策略,是一个灵活的、可扩展的安全框架,MAC框架可以在编译或运行时对内核的访问控制模型进行扩展。新的系统安全策略可以作为内核模块实现,被链接到内核。
MAC框架采用安全策略链表的形式支持多安全策略。多个安全策略在注册时插入链表,在进行访问控制决定等操作时,依次遍历已注册的各个安全策略,执行各个安全策略对应的访问判定操作。访问控制判定的结果将由多个策略模块的判定结合相综合,只有所有策略都允许才可以进行访问。多策略模块可以包括BIBA完整性策略,MLS安全策略,基于规则的TE访问控制策略,以及可以支持在TrustedBSD MAC框架上的分层的NSA FLASK框架。
返回列表