版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一种基于安全标签的访问控制模型的设计和实现中图法分类号:TP309 文献标识码: A互联网开放性的通信环境和日益增长的信息共享需求对计算机互连和计算机自身安全提出了新的要求。计算机的安全问题很大部分源于操作系统的安全脆弱性。作为大多数网络安全产品操作系统平台的 Linux 本身就存在很大的安全问题: Linux 只支持 Root 和普通用户两个安全级, Root 权限过大违背了最小特权原则, 而普通进程有时也可通过 SetUID 和 SetGID 取得更大的权限; Linux 传统的自主访问控制( DAC)安全机制对于窜改和绕过又是十分脆弱的;由缺少数组边界检查的 C 语言编写的很多特权程序往
2、往成为基于缓冲区溢出攻击的首要目标。为解决上述问题,构建了一种基于安全标签的访问控制模型 SLinux ( Secure Linux )。该模型是对经典的多级安全访问控制模型 BLP 模型的扩展,它的核心概念是由安全级别、访问域、权能构成的安全标签。其核心思想是通过安全标签来控制主体对客体的访问:安全级别和访问域控制进程对文件系统的访问,权能属性用来控制进程间的通信。1 相关访问控制技术11 多级安全与BLP模型多级安全是军事安全策略的一种数学描述,它具有两个主要特性:简单安全特性。仅当一个主体的安全级不低于客体的安全级时,才允许该主体读该客体。* 特性。仅当一个主体的安全级不高于客体的安全级
3、时,才允许该主体写该客体。BLP模型是一个状态机模型,定义的系统包含一个初始状态 Z0 和一些三元组 ( 请求,判定,状态) 组成的序列,三元组序列中相邻状态之间满足某种关系W。如果一个系统的初始状态是安全的,并且三元组序列中的所有状态都是安全的,那么这样的系统就是一个安全系统。BLP模型虽然易用,但是功能单一,往往不能直接用于商业系统。例如对目录不能直接进行安全分级;没有横向的访问控制:根据BLP的原则,某一应用程序可以访问等于或低于其敏感级别的属于另一应用程序的私有数据,这样的读写操作将会导致数据的泄漏甚至破坏。12Linux 中的权能机制权能就是一个进程能够对某个对象进行的操作,在访问主
4、体上实现。从 Linux 2.1版的内核开始,内核开发人员在Linux 内核中加入了权能的概念。其目标是消除需要执行某些操作的程序对 Root 账号的依赖。每个进程有三个与权能有关的位图:inheritable(I),permitted(P)和 effective(E),对应进程的描述符task_struct(include/linux/sched.h)中的 cap_effective,cap_inheritable, cap_permitted。每种权能用一位表示,1 表示具有某种权能,0 表示没有。当一个进程要进行某个特权操作时,操作系统会检查cap_effective的对应位是否有效;
5、cap_permitted表示进程能够使用的权能;cap_inheritable表示能够被当前进程执行的程序继承的权能。2SLinux 访问控制模型设计和实现21 模型的设计思想BLP模型不能限制信息流的横向流动,因此引入了访问域的概念。访问域是进程可以访问的资源的集合,每一个主体都在一个特定的访问域下工作,访问域并不是彼此独立的,它们可以有交叉。这样将BLP模型与访问域结合可以更有效地限制访问范围,同时加入权能属性以有效控制进程间的访问。访问控制粒度是访问控制模型中一个至关重要的问题。在操作系统中,文件、用户和进程都是主体,其中文件和用户是静态表示,真正活动的主体是进程,它是一个用户拥有的可
6、执行文件的映像。一个进程比一个程序或一个用户有更细的粒度,而且进程是临时的,相对于程序和用户而言,在一定程度上可以减少维护。基于上面的分析,为了加强操作系统的安全性,设计了一个以进程为控制粒度的基于BLP 模型和安全标签(包括多级安全、访问域和权能三个属性)的访问控制模型 SLinux 。22LSM机制考虑到不同 Linux 版本之间的兼容性, 该模型是基于LSM机制来实现的。Linux 安全模块( LSM)是支持访问控制的底层架构,该架构可以使那些具体的安全策略及实现作为一个可选择的内核模块载入内核,从而大大提高了Linux 安全访问控制机制的灵活性和易用性。LSM的基本设计思想是在内核源代
7、码中放置钩子(Hook)函数,由用户编写Hook 函数对内核对象的访问权限作出判断,并在内核数据结构中放置透明安全字段(OpaqueSecurity Field)作为内核对象的安全属性。23 模型的总体结构和工作原理整个模型包括四个模块,即认证模块、判定模块、审计模块和标签管理模块,另外还有安全标签数据库、用户的数字证书数据库和审计日志文件。其结构如图1 所示。基于 LSM机制实现的模块的工作原理如图2 所示。用户程序对文件系统的访问必须经过Linux 系统自带的访问控制和该访问控制模型才能够被允许。该模型主要包括两个工作,即用户请求的判定和基于安全标签的动态调整所实现的动态安全机制。24 重
8、要数据结构定义和说明安全标签是SLinux 访问控制模型的核心概念,它包括主体和客体两种。主体是指进程(因为该模型的访问控制是以进程为粒度的) ,客体包括文件、目录、特殊文件、进程间通信结构、进程和模块。在系统中不同的主体和客体的安全标签是不同的,并且有时主体(进程)也可以是客体,如在进程管理中。 对于可执行文件来说,主体和客体都不为空,对于数据文件等非可执行文件来说,主体为空,客体非空。24 1 主体的安全标签SL:(L,D,C),其中 L 为主体的安全级,D 为主体的访问域, C 为主体的权能(Capability)和权能扩展。( 1)对权能控制的扩充:为了实现某些操作系统不支持的特性,加
9、强对操作系统自身的保护,本模型引入了三种扩充权能:CAP_PROC_HID( 0x01)。实现进程的隐藏,如果想隐藏某一个进程,可以将该进程安全标签的权能控制域s_capacity_ext与 CAP_PROC_HID执行或运算就可以了。CAP_UNKILLABLE( 0x02)。防止某些程序关闭一些系统服务等重要进程,用法同上。CAP_CHANGE_PRIORITY(0x04)。赋予某主体修改自身安全标签的能力。(2)访问域: 代表一部分可见并且可以被进程访问(读或写)的文件系统的集合,包含程序代码和数据,它有效地创建了一个文件系统的盒子,运行的进程被限制在其中。这个访问域并不代替传统的Lin
10、ux 文件系统的访问控制,它们在一个更高的安全级别操作。该模型将访问类型根据访问控制的目的分为三类,访问域也相应地分为三类:读访问。 读文件、搜索目录、 执行文件、 遵循链接等。写访问。创建文件、写文件、删除文件、移动文件等。权能控制。进程之间的访问控制,如发送信号给一个或一组进程,客体为进程。24 2 客体的安全标签OL:(L,Mask) , 其中 L 为客体的安全级;Mask 是该客体的功能集合,每一位代表一种功能,目前只定义了三种:第一位为读访问不可继承标志,1 表示在读访问域中为不可继承客体;第二位为写访问不可继承标志,1 表示不可继承客体;第三位为隐藏标志,1 表示该客体对访问它的主
11、体是隐藏的。24 3 安全标签的配置安全标签是由系统安全管理员在该系统初次安装时为每个可能的主体和客体配置的,并把它们存放在安全标签数据库中(存储在文件系统不利于模型兼容性和扩展性需要)。在系统每次运行时,进程的安全标签在进程中被创建,即 fork() 时确定,由标签管理模块从安全标签数据库中提取。用户注册时,因注册而产生的进程安全标签由用户在允许范围内选定,可选级别(包括安全标签中的各项)不能大于用户及用户属组的级别。已存在的客体或主体的级别可由安全管理员设置,新建客体(包括进程)的级别通常等于创建该客体的进程级别。对于新建目录,可以在允许的范围内选定大于创建其进程的级别。如果进程通过调用产
12、生子进程时,那么子进程从其父进程那里继承安全标签。在继承时父进程可以根据模型对客体定义的不可继承标志选择性地授权给子进程,这样子进程就不具备对不可继承的客体的访问权限。在 BLP模型的常规实施方法中,一个主体的当前安全级别在其整个生命周期内是不可改变的,这种方法的缺点是缺乏灵活性,很容易导致合法的资源访问请求遭到拒绝。该访问控制模型实现了进程安全标签的自适应变化,这是由标签管理模块来实现的。当一个进程要改变安全标签时,如要改变访问域,它会向标签管理模块提出申请,将其安全标签更新。当然不是所有的权限要求都可以被批准,标签管理部件中对此进行了限制,如普通用户不可以对系统配置信息进行修改等。25 内
13、核模块的实现为了便于系统设计的模块化,把认证模块、标签管理模块、判定模块和审计模块等都以一系列内核辅助函数的形式来实现,这样当对其中某个模块(如判定模块)进行修改时,只要接口不变,就不会影响到其他模块。25 1 认证模块的实现认证模块的主要功能是出现下面两种情况时,对用户的身份进行认证:( 1)当用户进程要求动态调整自己的安全标签时;( 2)当系统安全管理员调整安全标签数据库中的安全标签时。根据用户权限的不同,定义了两种认证类型对应上述两种情况,分别为 AUTH_CHANGE_PRIORITY和AUTH_CHANGE_CONFIG。用户通过该模型提供的用户接口向认证模块提出认证请求,认证模块从
14、数字证书数据库中取出该用户的数字证书,与用户提供的签名信息进行比较;如果一致将继续判断用户的登录类型与用户要求的认证类型是否相符,通过认证后就将请求送入下面的标签管理部件。如果系统安全管理员申请权限成功,对于安全标签的修改主要是修改该主体安全标签的读写访问域,将安全标签数据库或者配置文件所在的目录加入其读写访问域中。在系统安全管理员申请该权限以前,安全标签数据库和配置文件是不在任何用户的任何访问域中的。对于用户申请权限,认证模块将调用标签管理模块修改该进程的权能属性(增加CAP_CHANGE_PRIORITY权能)。该操作只是对该进程内存中的安全标签进行修改,而不会修改安全标签数据库中的内容。
15、25 2 标签管理模块的实现标签管理模块主要向各内核模块以及用户提供一组接口,对安全标签数据库中的安全标签进行管理和配置。在调用这些接口函数时,它们都会调用判定模块来确定该用户权限。该模块共包括三种类型的接口,前两项通过sys_security钩子函数提供给用户:( 1)面向系统安全管理员的接口。它帮助安全管理员根据需要调整安全标签数据库中的安全标签。( 2)面向普通用户的接口。它可以让用户在一定范围调整内存中自己的安全标签,使其具有完成任务的最小权限。当用户提交申请时,标签管理模块的函数会首先检查该主体是否具有 CAP_CHANGE_PRIORITY权能属性,如果没有将返回失败信息;否则将该
16、主体申请的安全标签与从安全标签数据库中提取的安全标签进行比较,如果满足规则就设置该主体的安全标签,否则返回错误信息。( 3)面向内核模块的接口。它主要为其余内核模块完成相应的任务提供服务,所有通过该接口调整的都是调整主体在内存中的安全标签,如上面提到的认证模块对标签管理模块的调用都是调用的这些函数。例如,修改进程的安全标签,使其具有修改安全标签数据库或者配置文件的权利。25 3 判定模块的实现判定模块的主要功能是实现对访问请求的判定。它将访问操作的主体、客体及操作与安全标签数据库中的相应信息进行比较。根据判定规则, 如果主、客体的安全级符合要求,并且客体在主体的访问域内(对于读写操作) 或权能
17、域内(对于权能控制),另外对于权能控制还要求主体具有该权能才允许访问,否则拒绝。25 4 审计模块的实现审计模块主要是将通过认证部件的信息及判定部件的信息记入到审计日志中,可为入侵检测及系统错误的判断提供有利信息。模型只记录那些对系统来说比较重要的事件,如用户登录、读写操作和修改权限等。审计数据主要来自认证模块和判定模块,每次收集到的审计数据都先写入专门的审计缓冲区中,当缓冲区中的数据快满时再一次写入审计数据库中。26SLinux 与用户接口在 SLinux 系统中,与用户接口是通过LSM提供的一个通用的多路安全系统调用security()实现的,其参数为(unsigned int id, u
18、nsigned int call, unsigned long*args) ,其中 id 代表模块描述符,call代表调用描述符,args 代表参数列表。这个系统调用缺省地提供了一个sys_security()入口函数。如果安全模块不提供新的系统调用,可以定义返回ENOSYS的 sys_security()钩子函数。27 配置文件在该系统中,用户访问域的设置、访问域的设置,以及审计级别的设置是在配置文件中完成的。当该模块被注册并调入系统后,配置文件会被映射为内存映像文件,内核模块所有对配置文件的操作都是对内存映像文件的操作。3SLinux 访问控制模型分析和实验31 系统安全性分析该模型不仅实现了基于安全级别的纵向控制,而且实现了基于访问域的横向控制以及动态安全。以进程为粒度、安全标签的动态调整以及权限的选择性继承体现了操作系统安全的最小特权原则; 将 Root 视为与系统中其他用户平等,限制了 Root 有意或无意对系统的破坏;即使进程由于SetUID和 SetGID 属性获得了程序文件属主和组的权限或者出现缓冲区溢出,其访问也不可能超出访问域的范围
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年云南体育运动职业技术学院单招综合素质笔试备考题库含详细答案解析
- 2026年衢州职业技术学院单招职业技能考试备考试题含详细答案解析
- 2026年红河卫生职业学院单招综合素质考试备考题库含详细答案解析
- 2026年鹤壁汽车工程职业学院高职单招职业适应性测试备考题库及答案详细解析
- 2026年长沙航空职业技术学院单招职业技能考试参考题库含详细答案解析
- 2026年河北政法职业学院单招职业技能考试备考试题含详细答案解析
- 2026年黑龙江农业工程职业学院高职单招职业适应性测试备考题库及答案详细解析
- 2026年安阳职业技术学院单招综合素质考试备考题库含详细答案解析
- 2026年郑州轨道工程职业学院高职单招职业适应性测试备考题库及答案详细解析
- 2026新疆兵团国资公司权属企业总会计师市场化选聘1人笔试模拟试题及答案解析
- (2026春新版)苏教版二年级数学下册全册教案
- 市安全生产例会制度
- 高新区服务规范制度
- 小程序维护更新合同协议2025
- 雨课堂学堂在线学堂云《课程与教学论( 华师)》单元测试考核答案
- 中国自有品牌发展研究报告2025-2026
- 2025年豆制品千张销量及餐桌烹饪调研汇报
- 地形测量投标标书技术设计书
- 2025及未来5年马桶水箱组合项目投资价值分析报告
- 合伙建厂合同协议书
- 代建合同安全协议书
评论
0/150
提交评论