码迷,mamicode.com
首页 > 系统相关 > 详细

1.【SELinux学习笔记】背景

时间:2015-08-10 22:21:44      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

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也不尽相同。在启动的过程中,策略会被载入内核,然后内核就会使用它作为访问控制的依据。

版权声明:本文为博主原创文章,未经博主允许不得转载。

1.【SELinux学习笔记】背景

标签:

原文地址:http://blog.csdn.net/huangyabin001/article/details/47404277

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!