SELinux简介


 LOCK

一、 SELinux 来源

        SELinux 即Security-Enhanced Linux, 由美国国家安全局(NSA)发起, Secure Computing Corporation (SCC) 和 MITRE 直接参与开发, 以及 很多研究机构(如犹他大学)一起参与的强制性安全审查机制, 该系统最初是作为一款通用访问软件,发布于 2000 年 12 月(代码采用 GPL 许可发布)。并在Linux Kernel 2.6 版本后, 有直接整合进入SELinux, 搭建在Linux Security Module(LSM)基础上, 目前已经成为最受欢迎,使用
最广泛的安全方案.

二、SELinux 基本架构与原理

       SELinux 是典型的MAC-Mandatory Access Controls 实现, 对系统中每个对象都生成一个安全上下文(Security Context),每一个对象访问系 统的资源都要进行安全上下文审查。审查的规则包括类型强制检测(type enforcement), 多层安全审查(Multi-Level Security), 以及基于角色 的访问控制(RBAC: Role Based Access Control)。

SELinux 搭建在Linux Security Module(LSM)基础上, 关于 LSM 架构的详细描述请参见文章 《 Linux Security Modules: General Security Support for the Linux Kernel 》,该文章在 2002 年的 USENIX Security 会议上发表。有完整的实现LSM 的所有hook function 。

SELinux 的整体结构如下图所示:

selinux框架

SELinux 包含五个基本组成:

  • 用于处理文件系统的辅助模块, 即SELinuxFS
  • 集成Linux Security Modules 的hooks sets
  • Security Policy Database
  • Security Label 验证模块
  • Access Vector Cache (AVC), 访问向量缓存,以便提高验证速度

基本的访问流程如下图所示:

访问流程图

流程如下:

  • 进程通过系统调用(System Call) 访问某个资源, 进入Kernel 后, 先会做基本的检测, 如果异常则直接返回
  • Linux Kernel DAC 审查, 如果异常则直接返回
  • 调用Linux Kernel Modules 的相关hooks, 对接到SELinux 的hooks, 进而进行MAC 验证, 如果异常则直接返回
  • 访问真正的系统资源
  • 返回用户态, 将结构反馈

版权所有丨如未注明,均为原创,转载请注明转自:https://whonee.net/description-seliunx.html

历史上的今天:

  1. 2017:  shell脚本中echo显示内容带颜色方法(2)

发表评论

电子邮件地址不会被公开。 必填项已用*标注