linux安全策略查询代码,Linux多安全策略和动态安全策略框架模块代码分析报告(3)...

原标题:Linux多安全策略和动态安全策略框架模块代码分析报告(3)

对于对象管理器,其用来对系统中的对象进行管理,因此其有责任定义一种机制来标记它所管理的对象,即主体和客体。当某个主体要访问某个客体时,此时对象服务器会查找安全服务器来获取相应的访问决策,并根据该决策来完成相应的操作,那么对象管理器如何识别这些安全决策呢?事实上,每个对象管理器都定义并实现了一个控制策略,该策略指定了安全决策如何控制对象管理器提供的服务,然而安全服务器支持多种安全策略,并且支持策略的动态变化,那么对象服务器该如何实现以适应这个特色呢?为了支持策略的灵活性,所有的对象管理器均需要支持以下四种机制:

(1) 对象标记

在Flask体系结构中定义了两个与安全策略无关的数据类型来标记对象,分别为安全上下文和安全标识符SID。安全上下文是一个可以被理解安全策略的应用程序或用户解释的变长的字符串,其内容和格式依赖于安全服务器所实现的安全策略,一个安全上下文可能由若干个安全属性组成,如用户、角色、类型等;安全标识符是在安全服务器运行时映射到安全上下文的一个固定长度的整数,它只能被安全服务器解释。

(2) 客户和服务的鉴别

当一个客体发出的请求的SID是安全决策的一部分时,对象管理器必须能够识别该SID,同时客体也必须能够识别安全服务器的SID以确保该服务来自适当的安全服务器,因此Flask体系结构需要底层系统为进程间的通信提供客户和服务的鉴别格式。

(3)请求和缓存安全决策

在最简单的实现中,对象管理器每次需要向安全服务器请求一个所需的安全决策,这样对系统的性能影响比较大,为了缓解因策略的计算和传送所带来的性能的开销,Flask体系结构在对象管理器中提供了一个存放安全决策的缓存,该缓存称为访问向量缓存(AVC,AccessVector Cache)。当主体对客体进行访问时,客体管理器会收集主体和客体的SID,并根据此SID对在AVC中进行查找:如果找到,则根据相应的安全决策进行处理;反之客体管理器会将主体的SID、客体的SID以及客体的类型传递给安全服务器,安全服务器会根据这些数据及相应的安全策略来计算访问向量,并将计算结果返回给客体管理器,同时将该结果存放到AVC。

(4) 多实例化的支持

一个安全策略可能需要通过多实例化某资源或者将用户划分为可以共享该资源的相同实例的集合来限制用户间固定资源的共享。Flask体系结构通过提供一个接口来支持多实例化,该接口由安全服务器提供,安全服务器通过它可以识别被指定的用户访问的实例,该实例被称为成员。

安全服务器

安全服务器主要用于提供安全策略决策、维持SID和安全上下文之间的映射关系、为新建的对象和成员对象提供SID、管理对象管理器的访问向量缓存。另外,大多数的安全服务器还提供了策略载入和策略修改的功能;为了有效的改善安全服务器的响应时间,除了对象管理器提供的访问向量缓存之外,安全服务器还提供一个属于自己的缓存来存放访问计算的结果。

Flask中的安全服务器采用的是一个由多级安全策略MLS、类型强制策略TE、基于身份的访问控制策略IBAC和基于角色访问控制策略RBAC组合而成的一个安全策略。其中多级安全策略的策略逻辑除了自身的标记之外,大部分是通过安全服务器的代码实现的;而其他子策略的策略逻辑主要是通过策略数据库语言来实现的。对于安全服务器,并不是一定要实现所有的子策略,事实上,为了实现体系结构的主要的特色,安全服务器原型会有选择的实施子策略,而且其支持的安全策略也不是固定的,如果要支持其他的安全策略,则可以通过修改代码或者完全替换安全服务器来改变安全服务器内部的策略框架来实现。这里需要强调的是对安全服务器的代码修改不要求对对象管理器进行任何的改变。

对于安全服务器提供的服务,除了对象管理器会使用之外,安全服务器自身同样是其提供的服务的实施者。首先,如果安全服务器提供了策略改变的接口,那么它就必须为访问这个接口的主体强制执行策略检查。其次安全服务器可能会限制获取策略信息的主体,这在用许可权需求作为策略的情形中尤为重要。如果策略信息对机密性要求比较高,那么缓存策略信息的对象管理器同样有责任保护这些信息。

对于Flask体系结构,其典型的应用就是SELinux(Security-EnhancedLinux)。SELinux是将Flask体系结构移植到Linux之后形成的,对于它的相关介绍参见“Linux强制访问控制机制模块代码分析报告”一文,这里不再进行赘述。返回搜狐,查看更多

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值