1.【SELinux学习笔记】背景

1.引用监视器
   目前大多数操作系统中主要的访问控制类型叫做DAC(任意访问控制),DAC的特性主要指用户访问资源的权限。但DAC有一些弱点,为了客服这些弱点,MAC诞生了(强制访问控制)。
但MAC也存在一定的弱点且使用起来不是很灵活。那么SELinux带给Linux 的价值可以称之为一个灵活的、可配置的MAC机制。
    了解引用监视器对我们理解访问控制有很大的帮助,我们首先来了解下引用监视器原理图,如下:

图1
    这种方法的优势在与可以将程序访问资源限制在访问规则当中,由这些规则来决定访问主体是否有对客体的访问权限。在标注你的Linux系统中,主体通常指程序进程,而客体通常表示系统资源(如文件、目录、套接字、共享内存等)。

2.DAC(任意访问控制)
   Linux DAC 采用了一种非常简单的策略, 将资源访问者分成三类, 分别是Owner, Group, Other; 资源针对这三类访问者设置不同的访问权限. 而访问权限又分成 read, write, execute.
   访问者通常是进程有自己的uid/gid, 通过uid/gid 和 文件权限匹配, 来确定是否可以访问.
   DAC是一种允许已经授权的用户改变客体的访问控制属性,而大多数DAC机制都是基于用户标识的访问控制属性。简单的说,如果一个用户被授权允许访问,意味着程序也被授权访问,如果程序被授权访问,那么恶意程序也将有同样的访问权。
   将Root 权限根据不同的应用场景划分成许多的Root Capabilities( 美 [,kepə'bɪləti] n. 能力(capability的复数);功能;性能), 其中如果有CAP_DAC_OVERRIDE 这项的话, 可以直接绕过Linux DAC 限制.
   Linux DAC 有明显的不足, 其中一个重要点就是, Root 权限 “无法无天”, 几乎可以做任意事情, 一旦入侵者拿到root 权限, 即已经完全掌控了系统. 另外每一个进程默认都拿到对应这个用户的所有权限, 可以改动/删除这个用户的所有文件资源, 明显这个难以防止恶意软件.

3.MAC(强制访问控制)
   Linux MAC 针对DAC 的不足, 要求系统对每一项访问, 每访问一个文件资源都需要进行针对性的验证. 而这个针对性的验证是根据已经定义好了的策略进行. 在Linux Kernel, 所有的MAC 机制都是搭建在Linux Security Modules (LSM) 基础上.
   针对Linux DAC, MAC 可以明显弥补DAC 的缺陷, 一方面限制Root 权限, 即使你有root 权限, 如果无法通过MAC 验证, 那么一样的无法真正执行相关的操作. 另外对每一项权限进行了更加完整的细化, 可限制用户对资源的访问行为.
   大多数常见的MAC机制实现了多层安全模型,如下:

图2
    在MLS模型中,所有的主体和客体都标记有安全级别,上图中有一个Public和Secret级别,这两个级别代表了数据的敏感程度。MLS中主体总是可以读写客体,除此之外主体可以读取底层客体(向下读取),写入高层客体(向上写入)。这里我们很清楚,MLS是对访问控制最根本的改变,不再是数据 的所有者(或用户)可以任意决定谁可以访问客体。

4.SELinux
    SELinux实现了一个灵活的MAC机制,叫做类型强制(TE)。在类型强制的策略中,所有的主体和客体都有一个类型表示符与之关联。如果主体想要访问客体,那么主体的类型必须被授权访问客体的类型,而无关主体用户表示符。默认情况下,SELinux不允许任何访问,开发者可以制定规则来指定主体可以访问什么,这样使SELinux可以适应非常多的安全策略。
    SELinux实际上是一个特殊的策略文件,它涵盖了SELinux内核将会实施的所有规则,策略文件是从一套源文件编译而来,而且系统与系统之间SELinux也不尽相同。在启动的过程中,策略会被载入内核,然后内核就会使用它作为访问控制的依据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高桐@BILL

分享快乐,快乐分享...

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值