首页 > > > SELinux 简明学习指南_20120706.pdf

SELinux 简明学习指南_20120706.pdf

SELinux 简明学习指南_20120706.pdf

上传者: qkboy_wang 2012-07-06 评分1 评论0 下载47 收藏10 阅读量784 暂无简介 简介 举报

简介:本文档为《SELinux 简明学习指南_20120706pdf》,可适用于常用软件领域,主题内容包含SELinux简明学习指南HyphenWangwwwlinuxflyorg作者:HyphenWang符等。

SELinux 简明学习指南 Hyphen Wang www.linuxfly.org 2012-07-06 作者:HyphenWang                                                  网址:www.linuxfly.org   目录  1. 介绍................................................................................................................................................ 3 2. 运行模式........................................................................................................................................ 6 3. 安全上下文..................................................................................................................................11 4. 登陆系统......................................................................................................................................22 5. 运行服务......................................................................................................................................34 6. 处理安全上下文 .........................................................................................................................40 7. 配置布尔值和属性.....................................................................................................................48 8. 审计日志......................................................................................................................................57 9. 添加允许规则..............................................................................................................................61 10. MLS/MCS限制 ....................................................................................................................74 11. 自定义安全模块.....................................................................................................................89 12. 常用命令................................................................................................................................103 第 2页共 103页 作者:HyphenWang                                                  网址:www.linuxfly.org 1. 介绍  SELinux存在系统中已经有不短的历史了,但由于各种原因吧,经常会被人们有意无意的忽略或禁用。 老实说,在过去,我也是其中之一。主要是感觉配置实在太麻烦了,受限太多(涉及安全的东西都这样, SELinux不能例外)。但这次因为某项目的测试需要,只能死马当活马医,努力学习吧。 国内相关的资料不多,而且大多是一些简单的命令介绍,最详细的是harrytaurus2002 写的SELinux学习 笔记,2012-02-14 版本有 444 页,够多的。可能内容太多,或关注于开发的角度吧,反正刚开始我是没看 懂。(不好意思啊,劳烦作者的一番苦心,^ _^)好吧,找国外的资料,《SELinux by Example Using Security Enhanced Linux》一书应该是最经典的教材,当然Fedora SELinux Project 、Tresys Technology公司的 SELinux Reference Policy 、Dan Walsh's Blog等网站也是很好的参考资料。 回过头来,我下面从实用性的角度出发,整理一下这几周学习SELinux的内容,以便后来者继续学习和 研究。当然,我写的东西肯定没有SELinux学习笔记的详尽,可理解为就是一个精简版。文章会分开好几 部分,可通过SELinux TAG查询。而且受限于学习水平,语句比较通俗,文中问题肯定不少,也希望大家 提供反馈和意见。在最后,若允许的话,我会把各部分内容整理为单份文档格式,便于传递和阅读。 因这次的学习是以项目主导的,运行平台为红旗安全操作系统 4.0(RFSOS 4.0),所以,文中部分内 容与其他发行版会略有不同。但RFSOS中安全策略是基于标准的referrence policy的,与RHEL还是比较雷 同的,可以参考和比较学习。 一、SELinux简介 SELinux 是由美国国家安全局 (NSA) 开发的,为了防止内部资源管理设置错误引发的问题,或受攻击 入侵时,把可访问内容控制在最小的范围之内。例如,为了方便,你把HTTP服务的/var/www/html目录设 置为 777 权限。但万一由于一些漏洞问题,黑客可在该目录下写入执行文件,那么问题是很严重的(暂不 考虑chroot设定的情况)。此外,时不时爆出的本地提权漏洞(root exploit)问题,对系统的安全也有很大 的威胁。 为了控管这方面的权限与程序的问题,所以美国国家安全局就著手处理操作系统这方面的控管。他们在 SELinux整合到核心中,用于在进行程序、文件、网络服务等访问时增加一道关卡,而且这道坎使得原来 的管理员root不再是万能的,应用程序的配置也不再是任意的,而是受限的。 1.DAC(Discretionary Access Control)自主式存取控制 这简单来说,就是类Unix系统的默认安全管理权限,即rwxrwxrwx问题。在DAC模式下,依据程序与文件 资源的rwx权限来决定是否有可访问、写入、执行的能力。例如: 第 3页共 103页 作者:HyphenWang                                                  网址:www.linuxfly.org 引用 root 具有最高权限:uid/euid 和 gid/egid 的存在,使得程序存在安全漏洞时,将很容易获得 root 的权利, 这样,他就是万能的主; 使用者本身可改变文件存取权限:假设用户对系统不熟悉,给文件赋予 777 的设置时,结果可想而知的。 这些都是问题,怎么解决?那就采用 MAC 模式。(不是 ext 文件系统的 MAC 扩展) 2.MAC(Mandatory Access Control)委任式存取控制 在该模式下,不再由访问对象的属主定义不同用户对其的许可访问方式,而是由固定的规则库决定。在规 则库中,定义了主体对客体的访问控制规则,默认是禁止的,也就是说,没有允许你就不能读写,即使你 是 root 也不行。 在此环境下,万一黑客通过 httpd 得到/var/www/html 目录的读写、执行权限,甚至是 root 身份,他也无法 对其他非允许的文件进行访问,因为他们的类型不同,规则不允许。那么,系统受到的影响将降到最低。 那么,DAC 与 MAC 有冲突吗?这是没有的,可以把 MAC 理解为 DAC 的下一层,换句话说。在激活 SELinux 的环境下,访问一个文件资源(类 Unix 系统中,一切都是文件),你将需要先获得 DAC 的许可, 然后再获得 MAC 的许可,那么你才能访问该文件资源。 3.访问控制模型 由四部分组成: 引用 1)Subject:主体,比如系统中的进程、执行者; 2)Object:客体,被访问的对象,如系统中的资源、数据,其实就是文件; 3)Rules DB:规则库,定义了 Subject 可以通过什么方式对 Object 进行访问; 第 4页共 103页 作者:HyphenWang                                                  网址:www.linuxfly.org 4)RVM(Reference Validation Mechanism):操作系统内部的机制,是 Rules 的执行者,判断当前操作 是否合法。 SELinux是作为一个安全模块嵌入到Linux Kernel 中的,由policy rules(策略规则)驱动。首先它需要标 识主体和客体的类型,并把它们和判断规则等都会放入Access Vector Cache(AVC)中。AVC是一个缓 存数据库,可以提高性能。在操作系统安装完毕的最后一步,进行label (标签)后,磁盘上各文件(客体) 就会拥有各自的context(安全上下文),主体对客体的操作,将由AVC判断后执行。 (图片来自鸟哥的私房菜:程序管理与 SELinux 初探) 4.优势 采用SELinux有以下几点好处: (这部分内容来自Red Hat Enterprise Linux 6 Security-Enhanced Linux User Guide Edition 2) 引用 All processes and files are labeled with a type. A type defines a domain for processes, and a type for files. Processes are separated from each other by running in their own domains, and SELinux policy rules define how processes interact with files, as well as how processes interact with each other. Access is only allowed if an SELinux policy rule exists that specifically allows it. Fine-grained access control. Stepping beyond traditional UNIX permissions that are controlled at user discretion and based on Linux user and group IDs, SELinux access decisions are based on all available information, such as an SELinux user, role, type, and, optionally, a level. SELinux policy is administratively-defined, enforced system-wide, and is not set at user discretion. Reduced vulnerability to privilege escalation attacks. One example: since processes run in domains, and are therefore separated from each other, and because SELinux policy rules define how processes 第 5页共 103页 作者:HyphenWang                                                  网址:www.linuxfly.org access files and other processes, if a process is compromised, the attacker only has access to the normal functions of that process, and to files the process has been configured to have access to. For example, if the Apache HTTP Server is compromised, an attacker can not use that process to read files in user home directories, unless a specific SELinux policy rule was added or configured to allow such access. SELinux can be used to enforce data confidentiality and integrity, as well as protecting processes from untrusted inputs. 但 SELinux 不是: 引用 防病毒软件 不能代替密码、防火墙或其他安装系统; 不是一个整体化的安全解决方案。 SELinux 是用来加强已有的安全架构,而并不是替代它们。所以 RFSOS 不单采用 SELinux,还包括加密 文件系统、验证密钥、模块签名等一系列的安全措施。 2. 运行模式  既然 SELinux 有不少好处,但为啥经常被禁用呢?主要是因为其配置太复杂,而且涉及的资源、权限很 多,这也是安全配置的通病。不过,若对 SELinux 有一定了解,适当的配置使用,还是对系统安全很有好 处的,特别是针对一些关键应用。通常系统运行的 SELinux 有三种模式:disabled、permissive、enforcing。 二、运行模式 1.说明 SELinux 的三种运行模式分别是: 引用 enforcing(启用):启用安全保护如果有安全违规行为发生,,将生成一个审计日志并阻止该非法行为; permissive (报警):不启用安全保护,如果有安全违规行为发生,将生成一个审计日志,但不阻止违规 行为; disabled (不启用):不启用 SELinux 安全模块功能。 第 6页共 103页 作者:HyphenWang                                                  网址:www.linuxfly.org 启动 SELinux 时,应运行在 enforcing 模式下,而调试策略时,可切换到 permissive 模式。disabled 就是 不用 SELinux 安全模型。 此外,常见有两种 SEinux 安全策略: 引用 targeted :仅保护一些系统服务,一般不使用该策略; mls:提供基于 BLP、MLS/MCS 模型的完整保护; RHEL 系列相同默认采用 targeted 策略,而红旗安全操作系统 4.0 的默认生效策略为 mls。它们之间的区 别是: 引用 mls 策略是红旗安全操作系统默认安全策略,为系统及应用提供最大化的安全保护。 targeted 为系统提供的可选安全策略,其目标是隔离高风险程序(如暴露在外易受黑客攻击的组件)。使 用 targeted 策略的好处是一方面可以向 Linux 系统添加大量的安全保护,同时又尽量少影响现有的用户程 序(提高应用软件与系统兼容性)。 在红旗安全操作系统中,targeted 策略和 mls 策略之间主要差异是不支持管理特权三权分立,也不支持 BLP 模型。(后续会进一步说明) 2.配置文件 模式及策略在/etc/sysconfig/selinux 中设置: 引用 # cat /etc/sysconfig/selinux # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - SELinux is fully disabled. SELINUX=enforcing #SELINUX=permissive # SELINUXTYPE= type of policy in use. Possible values are: 第 7页共 103页 作者:HyphenWang                                                  网址:www.linuxfly.org # targeted - Only targeted network daemons are protected. # mls - Multi Level Security protection. SELINUXTYPE=mls #SELINUXTYPE=targeted 由于 RFSOS4 默认采用 mls 策略,初始会创建 sysadm、secadm、auditadm 三个权限不同的用户,而对 于安全配置的修改,必须使用 secadm 用户进行,其他用户对该配置文件都是“只读”的。 类似的,RFSOS4 在本地终端和 SSH 服务禁止 root 用户登录。若要修改上述配置文件,请以 secadm 用 户登录后,执行以下操作: 引用 login as: secadm secadm@192.168.228.174's password: *************** * Password Status: Password won't be expired in recent 90 days. * Success List User Login Time From secadm Jun 14 11:39:50 +0800 2012 192.168.228.221 secadm Jun 14 11:36:42 +0800 2012 192.168.228.221 secadm Jun 14 11:06:54 +0800 2012 tty1 secadm Jun 14 09:47:56 +0800 2012 192.168.228.221 Last login: Fri Jun 15 10:40:37 2012 from 192.168.228.221 [secadm@localhost ~]$ id uid=513(secadm) gid=513(secadm) groups=513(secadm) context=secadm_u:secadm_r:secadm_t:s0-s15:c0.c1023 [secadm@localhost ~]$ su - 口令: [root@localhost ~]# id uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=secadm_u:secadm_r:secadm_t:s0-s15:c0.c1023 登录 secadm 时,请输入 secadm 用户的密码。执行 su - 命令时,需输入 root 的密码。蓝色标记的称为安 第 8页共 103页 作者:HyphenWang                                                  网址:www.linuxfly.org 全上下文,将在后续说明。 ※ 请注意,本节的命令操作都以 secadm 用户的上述登陆状态进行。 3.查看状态 执行: 引用 [root@localhost ~]# sestatus SELinux status: enabled SELinuxfs mount: /selinux Current mode: enforcing Mode from config file: enforcing Policy version: 21 Policy from config file: mls [root@localhost ~]# getenforce Enforcing 4.修改模式 enforcing 和 permissive 模式的切换,可通过 setenforce 命令进行: 引用 [root@localhost ~]# setenforce 0 [root@localhost ~]# getenforce Permissive 或直接对 SELinux 文件系统的文件进行修改: 引用 [root@localhost ~]# cat /selinux/enforce 0 [root@localhost ~]# setenforce 1 [root@localhost ~]# cat /selinux/enforce 1 [root@localhost ~]# getenforce Enforcing 第 9页共 103页 作者:HyphenWang                                                  网址:www.linuxfly.org 可见,1 表示 enforing 模式,0 表示 permissive 模式。 而把配置文件修改为 disabled 模式,可禁用 SELinux,但必须重启才能生效。 安全策略的修改只能通过修改配置文件进行,而且是立刻生效的: 引用 [root@localhost ~]# vi /etc/sysconfig/selinux [root@localhost ~]# sestatus SELinux status: enabled SELinuxfs mount: /selinux Current mode: enforcing Mode from config file: enforcing Policy version: 21 Policy from config file: targeted 但由于两种策略所标记的标签不同,AVC 中记录的数据不一致,实时的修改会产生异常的问题。因此,修 改安全策略后,应该重启服务器,并重打标签。 5.临时设定模式 若只是由于某些原因,需要临时关闭 SELinux,可在 Grub 引导菜单中,通过 e 按钮,切换到 edit 状态后, 在 kernel 一行,如: 引用 kernel /boot/vmlinuz-2.6.18-128.7AXS3 ro root=LABEL=/ 的后面加入 selinux=0,即: 引用 kernel /boot/vmlinuz-2.6.18-128.7AXS3 ro root=LABEL=/ selinux=0 修改完毕后,用 esc 键退出,b 键启动进入系统。 当然,如果你修改/boot/grub/menu.lst 中的配置,那结果与修改配置文件是相同的,都可把 SELinux 设为 disabled 模式,禁用了。 第 10页共 103页 作者:HyphenWang                                                  网址:www.linuxfly.org 类似的,把 enforcing=0 加入 kernel 行,如: 引用 kernel /boot/vmlinuz-2.6.18-128.7AXS3 ro root=LABEL=/ enforcing=0 就是设置为 permissive 模式。 如果 SELinux 为 disabled 状态,将不会把 selinuxfs 文件系统挂接到/selinux 下面,也就是不存在该目录。 6.重打标签 在操作系统安装完毕时,系统会自动对磁盘中的文件根据 fcontext 规则打上标签,以便 AVC 进行判断。在 SELinux 处于 enforcing 或 permissive 模式下,对文件标签的修改都会被记录到磁盘上。但如果在 disabled 模式下,这动作将不会进行。所以,如果在 disabled 模式下,对文件进行了改动,重启进入激活 SELinux 状态的系统时,就会报 avc 错误。 类似的,targted 和 mls 安全规则所使用的标签也是不相同的。在两个安全规则间切换时,也必须重打标签。 重打标签的通常做法是,通过在 Grub 菜单临时进入 permissive 模式(见上面的描述),以 root 执行: # touch /.autorelabel 然后重启系统,还是进入permissive模式,系统即会自行对根分区所有文件重打标签。完成后,可恢复到 enforcing模式状态。更详细的信息,请见[原]解决启动时提示Entering runlevel 及大量avc提示的问题。 3. 安全上下文  正如上文所说的,SELinux 会对进程和文件(实际上,进程也是文件之一)进行标记(label),包括 SELinux user、role、level 等。这些成为安全上下文(Security Context)。SELinux 使用 Role-Based Access (RBAC)、Type Enforcement(TE)和 Multi-Level Security (MLS)等模型。 三、安全上下文 1.TE 模型 第 11页共 103页 作者:HyphenWang                                                  网址:www.linuxfly.org SELinux 作为 MAC 的一种实现,通过中央规则库(policy.X)给所有进程、文件、内核数据结构定义 各自的安全标识(label)或标签(type),明确定义被访问对象所支持的访问方式,并规定进程标签(主 体)对被访问对象(客体)的合法访问方式。 对文件系统的标签在操作系统安装完毕后标注(或手动设置重标,见上篇),而在系统启动过程中 init 进程经由 selinuxfs 接口装载 policy.X 到内核空间,由内核中的 Security Server(如 policydb、AVC 等) 在处理用户态系统调用时实时查询。 policy.X 的 X 是版本号,在编译时决定,其可以由几百个子模块链接而成,这些子模块称为 policy package(简称 pp)。通常位于系统的以下位置: 引用 /etc/selinux/mls/policy/policy.21 /etc/selinux/targeted/policy/policy.21 根据所选择的安全策略不同而加载。以 RFSOS4 运行在 mls 下为例,实时可用的 pp 模块位于: 引用 /etc/selinux/mls/modules/active/modules/ 基础模块是 base.pp,其他模块都是后来链接上去的。 2.磁盘上的安全上下文 磁盘上的文件,其安全上下文(Security Context)是存放在文件的扩展属性(Extended Attribute,xattr) 中的。但并不是所有的文件系统都支持该属性,ext3/4 可以,Samba 的 cifs 和 NFS 就不行,不行的需采 用其他的办法弥补(后面会讲到)。 先来看看磁盘上的文件: 引用 # ll -Z install.log -rw-r--r-- root root root:object_r:sysadm_home_t:s0 install.log 关注第四列(必须加-Z 参数才能看到),通过冒号区分为四部分: user:role:type:level 1)user 部分 这不是普通的系统用户,而是 SELinux User,由 login 程序根据当前规则库的定义,把系统用户映射到 SELinux User 上的。RFSOS4 上就是这样: 第 12页共 103页 作者:HyphenWang                                                  网址:www.linuxfly.org 引用 # semanage login -l Login Name SELinux User MLS/MCS Range __default__ user_u s0 auditadm auditadm_u s0-s15:c0.c1023 root root s0-s15:c0.c1023 secadm secadm_u s0-s15:c0.c1023 sysadm sysadm_u s0-s15:c0.c1023 system_u system_u s0-s15:c0.c1023 可以看到,之前我们提到的登陆用户 secadm,在 SELinux User 下就是 secadm_u。同样的,还有其他的 SELinux User: 引用 root:表示 root 的用户,方便标识而已,因通常很少会以 root 身份运行(系统默认禁止其本地登陆),所 以,实际上没什么特别的; system_u:表示系统程序方面的识别,通常就是程序,或程序创建的文件; ※ 通常为了方便识别,除 root 外,都会加上【_u】的标识。 2)role 部分 这是 SELinux Role-Based Access Control(RBAC)安全模型的一部分。role (角色)就是 RBAC 的属 性。SELinux User 由 roles 验证,而 roles 由 domains (域,后面会提到)验证。roles 扮演 domains 和 SELinux users 两者的中间人。获得 roles,就可以获得对应的 domains,也就是可以访问其里面的资源客 体(object)。这可以避免权限提升攻击发生时的问题。例如: 引用 # id -Z sysadm_u:sysadm_r:sysadm_t:s0-s15:c0.c1023 假设 sysadm_u 被攻破,黑客也只能得到 system_r 可访问的 domain,而 sysadm_r 是不能进行安全配置 第 13页共 103页 作者:HyphenWang                                                  网址:www.linuxfly.org 的,所以,secadm 所拥有的权限他是无法获得的。 除此以外,常见的 role 还有: 引用 object_r:代表文件或目录等文件资源; system_r:代表的是程序,或一般使用者。 ※ 通常为了方便识别,除 root 外,都会加上【_r】的标识。 3)type 部分 这是 TE 模型的关键属性。type 定义进程的 domain,和文件的类型。SELinux policy rules 定义各个 types 之间能否访问,以及允许 type 进入某个 domian,以及各 domain 访问的内容。默认的规则是禁止的,换 句话说只有显示的定义允许某个 type 的规则,那么它才有访问的权限。 在 targetd 安全策略上,user、role 都是可以忽略的,最关键就是 type。但 mls 就不行。 4)level 部分 这是 MLS 和 Multi-Category Security (MCS)模型的属性,是一个范围的级别,lowlevel - highlevel。 共 16 个等级,从低到高,s0 为低等级、s15 为高等级,最高就是 s15。(s0-s0 与 s0 是相同的意思) 每个 level 是一个 sensitivity-category 对,category(分类)共 1024 个级别,是可选的,没有,则只写 sensitivity,如:s0。 如果还存在 category(分类),那么也是通过“:”冒号区分,以 sensitivity:category-set 表示,例如: 引用 s0-s15:c0.c1023 这是涵盖了全范围的level,具体的访问限制暂不是,后续另行描述。 MLS 安全策略使用在Labeled Security Protection Profile (LSPP)环境中使用Bell-La Padula Mandatory Access Model 模型,并采用upstream SELinux Reference Policy 策略,比Tagerted 安全要求更高。 3.访问规则 为policy.X 链接规则,需采用访问向量(Access Vector)规则来定义,语法是: <av_kind> <source_type(s)><target_type(s)>:<class(es)><permission(s)> 第 14页共 103页 作者:HyphenWang                                                  网址:www.linuxfly.org 含义是: 引用 av_kind:定义动作,有 allow(允许)、dontaudit(不审计,但也不允许)、auditallow(允许并审计)、 neverallow(不允许); source_type:主体类型,通常是进程尝试访问的域类型; target_type:客体类型,被访问的域类型; class:客体的类别; permission:要设置的权限。 一个典型的定义如: 引用 allow user_t bin_t : file {read execute getattr}; 这个allow规则的源类型为user_t,目标类型为bin_t,客体类别file,许可execute等,这个规则可以解读为“允 许user_t执行类型为bin_t的文件”。(因为要执行文件,必须先可以获取属性getattr,读read,然后执行 execute,缺一不可) 4.domain transition(域转移) 域就是上文提到的domain。为什么要设置域呢?安全要解决的一个重要问题就是:隔离。即当一个应用程 序(用户)被攻破时,不影响其他应用程序。域就是用于限制的。 一个进程,从某个域通过应用,访问entrypoint(入口)而转移到另一个域,是需要在policy中明确允许的。 举个例 :用户修改密码。 先来看看文件的属性: 引用 第 15页共 103页 作者:HyphenWang                                                  网址:www.linuxfly.org # ll -Z /usr/bin/passwd -rwsr-xr-x root root system_u:object_r:passwd_exec_t:s0 /usr/bin/passwd # ll -Z /etc/shadow -r-------- root root sy stem_u:object_r:shadow_t:s0 /etc/shadow 在 RFSOS4 中,需要以 sysadm 登陆后,su - 到 root 才能执行) 见,类型与域是相关的。蓝色和红色标记的类型,不同,表明两者不在同一个域里面。所以,用户通过 ( 可 passwd 修改/etc/shadow 文件,就需要进行域转移的许可。 定义一些规则: 引用 allow user_t passwd_exec_t : file {getattr execute} 许用户 shell(user_t)在 passwd 可执行文件(passwd_exec_t)上启动 execve()系统调用。 允 引用 allow passwd_t passwd_exec_t : file entrypoint 条规则提供了对 passwd_t 域的入口访问权,entrypoint 许可在 SELinux 中是一个相当有用的许可权限, 这 这个权限所做的事情是定义哪个可执行文件(程序)可以"进入"某个特定的域。 引用 allow user_t passwd_t : process transition 第 16页共 103页 作者:HyphenWang                                                  网址:www.linuxfly.org 原 这 述符(例如标准输入,输出,以及出错设备),子进程运行结束时,发送 sigchld 等,也是需要明确定义的: 引用 始的类型(user_t)到新的类型(passwd_t)进行域转变必须有 transition 许可才允许进行。 就是域转移。当然,除此以外,当执行程序还需要一些额外的权限,例如:例如:使用父进程的文件描 allow passwd_t user_t:fd use; allow passwd_t user_t:fifo_file rw_fifo_file_perms; allow passwd_t user_t:process sigchld; ※ 上述提及的是 (Unconfined Processes)运行的unconfined_t 域, 对于非限制域进程,SELinux 规则时有效的,但策略是对 源的,这时,实际上域的限制就不存在了。换句话说,这又回到了DAC模型的限制规则中,因此,除特殊 的进程外,不应该采用这个unconfined_t 域。 更详细的例子,可参考: 注意: 限制域进程(Confined Processes)运行的情况,而系统中,还有一个由非限制域进程 于运行在非限制域的进程都是可访问几乎任意资 .Role-Based Access Control(RBAC)安全模型 已经足够。但在MLS安全策略下,增加的RBAC Unconfined Processes 5 如果采用的是Targeted安全策略,那么上面定义的TE规则 模型,则还需要对角色进行判断。前面提过,roles 扮演domains 和SELinux users 两者的中间人。普通 用户的角色必须允许与新的域类型建立关联后,才可允许密码程序通过user_t域类型执行,然后转移到新 的passwd_t域上。 第 17页共 103页 作者:HyphenWang                                                  网址:www.linuxfly.org 安全规则为: 引用 role user_r type passwd_t; 所以说,RBAC进一步增加了TE模型的限制:主客体域类型的角色要一致! 可能你会问,这些在那里定义?在.te文件中编写,然后编译为.pp模块,然后才能加载到内核中。后续会讲 到一些基本方法,暂时只需知道有这样的概念即可。 6.Multi-Level Security (MLS)和 Multi-Category Security (MCS) 这就是level 属性,也是MLS安全策略比Targeted增强的地方。简单来说,就是做了上面工作还不足够,如 果level 属性限制你,你还需要匹配规则,够烦吧!! MLS 和 MCS 定义的level 就是用于Bell-La Padula Mandatory Access Model 模型的: 引用 BLP 模型的基本安全策略是“下读上写”,即主体对客体向下读、向上写。主体可以读安全级别比他低或相 等的客体,可以写安全级别比他高或相等的客体。“下读上写”的安全策略保证了数据库中的所有数据只能按 照安全级别从低到高的流向流动,从而保证了敏感数据不泄露。 怎么看级别呢?上面已经讲过,每个 level 都是一个 sensitivity-category 对(简称 SC),而每个 Sensitivity Level (简称 SL)和 Category Level (简称 CL)也都是一段范围的,例如

编辑推荐

  • 名称/格式
  • 评分
  • 下载次数
  • 资料大小
  • 上传时间

用户评论

0/200
    暂无评论
上传我的资料

相关资料

资料评价:

/ 0
所需积分:2 立即下载
返回
顶部
举报
资料
关闭

温馨提示

感谢您对爱问共享资料的支持,精彩活动将尽快为您呈现,敬请期待!