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

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

时间: 2024-08-08 11:26:40

1.【SELinux学习笔记】背景的相关文章

2.【SELinux学习笔记】概念

1.强制类型的安全上下文 在SELinux中,访问控制属性叫做安全上上下文.无论主体还是客体都有与之关联的安全上下文,通常安全上下文是由三部分组成:用户:角色:类型.如: $id -Z joe:user_r:user_t 在SELinux当中,访问控制属性所有的客体或主体都有一个关联上的上下文属性,因为在SELinux基于类型强制策略,因此在安全上下文中的类型标识符决定了访问权. 注!SELinux是基于标注Linux的,也就意味着主体要访问课题时,要同时满足传统Linux的权限控制UGO模型和

3.【SELinux学习笔记】架构

1.LSM框架(Linux Secrity Module) 它是一种轻量级的访问控制框架,适用于多种访问控制模型在它上面以内核可加载模块的形式实现.用户可以选择合适的安全模块加载到Linux内核上.其设计思想,在最少改变内核代码情况下,提供一个能够实现强制访问模块选哟的结构或者接口.LSM框架允许安全模块以插件形式载入内核,而SELinux就是作为一个安全模块载入Linux内核的.如下图: 图1 在LSM框架中,只有当传统Linux访问检查通过之后SELinux才会生效. 2.SELinux L

SELinux学习笔记

1.什么是SELinux?      其实他是Security Enhanced Linux 的缩写,意思安全强化,是在进行程序,档案等细部权限设定依据的一个核心模块.由于启动网络服务也是程序,因此刚好也能够控制网络服务能否存取系统资源的一道关卡. 未完待续,正在整理中... ...

HTML学习笔记8——CSS设置背景图片

注意点:   background:blue: 与 background-color:blue: 不一样! 一.关于background设置:   1)background:blue:   2)background-image:url(图片名称): 当背景既有颜色,又有图片时,哪个在后面哪个就生效,如下例所示: 此处写了“新宋体”的这张图片作为本文涉及到的背景图片. 以图片为背景时,若图片小于页面大小,则图片会一直重复直到铺满为止: 字在后面时,字生效 1 <!DOCTYPE html> 2

[原创]java WEB学习笔记40:简单标签概述(背景,使用一个标签,标签库的API,SimpleTag接口,创建一个自定义的标签的步骤 和简单实践)

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

Unity3D学习笔记之七创建自己的游戏场景

到现在为止我们已经拥有了比较完备的Prefab,已经可以创建宏大的游戏场景,并以第一人称视角在场景中漫游了.这里给大家做个小的示范,建一个小场景大家在创建场景的时候需要自由发挥,做个尽量大的场景出来. 这一系列教程以及素材均参考自人人素材翻译组出品的翻译教程<Unity游戏引擎的基础入门视频教程>,下载链接附在第二篇学习笔记中. 我们以最初的添加了First Person Controller的PFB_Straight为整个场景的中心点来展开.我们先从Project中Prefabs文件夹拖出来

OpenCV之Python学习笔记

OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书<OpenCV Computer Vision with Python>,于是就看一遍,顺便把自己掌握的东西整合一下,写成学习笔记了.更需要的朋友参考. 阅读须知: 本文不是纯粹的译文,只是比较贴近原文的笔记:         请设法购买到出版社出版的书,支持正版. 从书名就能看出来本书是介绍在Pytho

Deep Learning(深度学习)学习笔记整理系列七

Deep Learning(深度学习)学习笔记整理系列 声明: 1)该Deep Learning的学习系列是整理自网上很大牛和机器学习专家所无私奉献的资料的.具体引用的资料请看参考文献.具体的版本声明也参考原文献. 2)本文仅供学术交流,非商用.所以每一部分具体的参考资料并没有详细对应.如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除. 3)本人才疏学浅,整理总结的时候难免出错,还望各位前辈不吝指正,谢谢. 4)阅读本文需要机器学习.计算机视觉.神经网络等等基础(如果没有也没关系了,没

Sass学习笔记

阅读目录 一. Sass安装 1.1 Ruby安装 1.2 运行gem命令 1.3 安装Sass 二. Sass基本用法 2.1 导入 2.2 注释 2.3 变量 2.4 嵌套 2.5 继承 2.6 占位符 2.7 混合宏 三. Sass编程 3.1 数学计算 3.2 条件 3.3 循环 3.4 函数 Sass被称为"CSS预处理器",就是用一种编程的思想去写CSS样式表.在还没接触Sass的时候,很多人都不愿意去了解,认为都会了CSS,为什么还要去写Sass,Sass最终生成的还是C