当前位置: 首页 > news >正文

SELinux零知识学习十六、SELinux策略语言之类型强制(1)

接前一篇文章:SELinux零知识学习十五、SELinux策略语言之客体类别和许可(9)

二、SELinux策略语言之类型强制

SELinux策略大部分内容都是由多条类型强制规则构成的,这些规则控制被允许的使用权,大多数默认转换标志、审核、以及固定部分的检查。我们将详细地讨论类型强制规则以及这些规则使用的类型定义和声明。

1. 类型强制

SELinux策略大部分都是一套声明和规则一起定义的类型强制(Type Enforcement,TE)策略。一个定义良好的、严格的TE策略可能包括上千个TE规则,TE规则数量的巨大并不令人惊奇,因为它们表达了所有由内核暴露出的允许对资源的访问权,这就意味着每个进程对每个资源的访问尝试都必须至少有一条允许的TE访问规则。如果我们仔细思考一下现代Linux操作系统中进程和资源的数量,就会明白为什么在策略中有那么多的TE规则了。当我们添加TE规则控制的审核配置和标志时,对于具有严格限制的SELinux策略,常常会见到它包含有上千条规则。在此,我们先理解一下TE规则是如何工作的。

TE规则的绝对数量对理解SELinux策略是一个大的挑战,但是规则本身并不复杂,其分类相对较少,所有的规则基本上都属于两类范畴访问向量(Access Vector,AV)和类型规则。我们使用AV规则允许或审核两个类型之间的访问权,在某些情况下使用类型规则控制默认的标记决定。

正如其名字所暗示的意思,TE规则通过安全上下文与所有资源联合一起对类型起作用,策略语言包括了另外的允许定义类型及其策略组件的语句。

SELinux的一个重要概念是TE规则是将权限与程序的访问结合在一起,而非结合用户。本章我们讨论的所有SELinux策略语言特性都是处理主体(正常运行中的进程)对客体(文件、目录和套接字)的访问权的,主要集中于程序访问控制决策。这也是SELinux的主要益处,其允许SELinux策略编写者基于程序的功能和安全属性,加上用户要完成任务需要的所有访问权做出访问决策,可以将程序限制到功能合适并且权限最小化的程度。因此,即使它出了故障或被攻击破坏,整个系统的安全并不会受到威胁。例如:如果一个Web服务器的策略阻止修改它显示的文件,那么即使服务器被攻破了,TE策略也能阻止被攻破的服务器修改那些文件。这样就消除了通过Web服务器的漏洞攻击造成对网站的威胁。只有被攻破的应用程序受到影响,并且它会被我们在策略中定义的访问权限制。

SELinux是不会管用户的,

相关文章:

  • java接收前端easyui datagrid传递的数组参数
  • Redis(集合Set和有序集合SortedSet)
  • 多svn仓库一键更新脚本分享
  • 电机开源驱动器基本操作与实现
  • Zookeeper的六个要点问题
  • Java获取Jar、War包路径,并生成可编辑修改的本地配置文件
  • levelDB之基础数据结构-Slice
  • 使用 React Flow 构建一个思维导图应用
  • 【2022改良版】学法减分助手PRO小程序源码
  • 深度学习(五)softmax 回归之:分类算法介绍,如何加载 Fashion-MINIST 数据集
  • 内网穿透 cpolar
  • mysql查询json字符串内容
  • 基于java web的中小型人力资源管理系统
  • LuatOS-SOC接口文档(air780E)--nimble - 蓝牙BLE库(nimble版)
  • 【SpringBoot篇】分页查询 | 扩展SpringMvc的消息转换器
  • [数据结构]链表的实现在PHP中
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 【前端学习】-粗谈选择器
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • E-HPC支持多队列管理和自动伸缩
  • go append函数以及写入
  • JavaScript设计模式系列一:工厂模式
  • React as a UI Runtime(五、列表)
  • 阿里云购买磁盘后挂载
  • 分类模型——Logistics Regression
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 深入 Nginx 之配置篇
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 项目实战-Api的解决方案
  • 一、python与pycharm的安装
  • 一道面试题引发的“血案”
  • 责任链模式的两种实现
  • Java总结 - String - 这篇请使劲喷我
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 选择阿里云数据库HBase版十大理由
  • ​linux启动进程的方式
  • #laravel 通过手动安装依赖PHPExcel#
  • $.ajax中的eval及dataType
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (二十四)Flask之flask-session组件
  • (接口自动化)Python3操作MySQL数据库
  • (九)信息融合方式简介
  • (四)库存超卖案例实战——优化redis分布式锁
  • (一)Dubbo快速入门、介绍、使用
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .NET Framework 4.6.2改进了WPF和安全性
  • .Net 代码性能 - (1)
  • .NET 分布式技术比较
  • .NET 中创建支持集合初始化器的类型
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • .Net接口调试与案例