TE模型

主体划分为若干组,称为域
客体划分为若干组,每个组称为一个类型
 
DDT(Domain Definition Table,域定义表,二维),表示域和类型的对应访问权限,权限包括读写执行
一个域通常有多个主体
一个类型通常有多个客体
 
DIT(Domain Interaction Table,域交互表)当主体成为客体的时候,用DIT表来实现访问控制。权限包括发信号、创建进程、杀死进程等
 
缺点:
1、访问控制权限的配置比较复杂
2、二维表结构无法反映系统的内在结构
3、控制策略的定义比较复杂

DTE模型

立足于解决TE模型在实际应用中遇到的问题
  • 提供了用于描述安全数学和访问控制配置的高级语言,DTE语言(DTEL)
  • 采用了隐含方式表示文件的安全属性
假设有如下的DTE语句:type unix_t, specs_t, budget_t, rates_t;
表示定义四个客体类型,名称分别是unix_t, specs_t, budget_t, rates_t;
 
DTE的赋值语句把客体和客体类型联系起来,也就是设置客体的类型属性
客体间的层次关系,可以采用隐含赋值的方式给客体赋类型值,比如,给该目录赋值类型,相当于把该类型赋值给该目录及其下面的所以目录和文件。这就是客体赋值的隐含规则
 
assign -r -s uinix_t /;
将/下所有目录和文件赋值为类型unix_t,-r表示递归、-s表示禁止系统在循行期间创建与目录的类型不同的客体
 
DTEL还定义了域入口点,一个域的入口点是一个可执行程序,执行该可执行程序可以使程序进入到该域中。
 

SELinux实现的TE模型

SELinux实现的TE模型对DTE模型进行了扩充
1、类型的细分,在类型的基础之上增加类别(class)的概念
2、权限的细化,定义了几十个class,为每个class定义了大量精细的访问控制
 
SELinux中几个常用的客体类别(class),及其权限
file:read、write、execute、getattr、create
dir:read、write、search、rmdir
process:signal、transition(域的转换)、fork、getattr
socket:bind、listen、connect、accept
filesystem:mount、unmount
 
访问控制方法
allow是描述访问控制授权的基本方法,语法规则如下:
allow    source_type    target_type  : object_class    perm_list
source_type:主体的域
target_type:客体类型
object_class:访问权限所针对的客体类别
perm_list:允许源类型对目标类型的客体类别进行的访问
 
allow user_d bin_t : file{read、execute、getattr}
允许user_d域的进程对bin_t类型的普通文件进行读、写、取属性操作
 
举例:
3条allow规则的含义
如果要实现域的转移,则需要以下3条规则:
 

进程工作域的字段切换

当满足了以上的三个条件的时候,可以实行进程工作域的切换
SELinux通过类型切换规则来描述进程工作域的字段切换方法,规则如下:
type_transition    source_type    target_type    :    process    default_type
该规则的含义是,当source_type(该字段表示域)的进程执行target_type(表示文件类型)的入口程序的时候,自动把进程的域切换到 default_type(表示域)。
 

访问判定

SELinux中,一个权限的判定通过以下的四元组来确定
source_type    target_type    object_class    perm_list
perm_list用来做为判定结果,每种权限用一个位表示

切换判定

切换判定指给新的主体或新的客体分配新的标签及新的标签该取什么值,给主体和客体分配新的标签就被称为标签切换
可以使用type_transition规则描述文件的类型切换控制,该规则的描述如下:
type_transition    source_type    target_type    :    file     default_type
在source_type域中、target_type类型的目录下创建新文件时,该规则把新文件的类型标签切换为default_type

客体类型标签的存储

linux中客体分为临时客体和永久客体
临时客体的安全属性保存在内存的表结构中
永久客体如文件和目录,保存在文件系统的扩展属性结构中,系统运行时,SELinux再把文件系统拓展属性中的永久客体的类型标签映射到内存结构的表结构

SELinux中系统结构设计

LSM框架是inux内核支持安全拓展的方式,实现是在linux内核的系统调研中安插一系列的钩子,这些钩子安插在linux访问控制之后,实施访问操作之前
 
在linux中,如果调用open时成功,之后又被撤销了读取权限,进程还是可以读取文件
但是SELinux在每次操作文件时都会检查权限
 
 
SELinux的策略语言
 

selinux基本概念的更多相关文章

  1. SELINUX、Security Access Control Strategy && Method And Technology Research - 安全访问控制策略及其方法技术研究

    catalog . 引言 . 访问控制策略 . 访问控制方法.实现技术 . SELINUX 0. 引言 访问控制是网络安全防范和客户端安全防御的主要策略,它的主要任务是保证资源不被非法使用.保证网络/ ...

  2. linux下目录简介——/SElinux

    一.前言 安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统. SELinux 主要由美国 ...

  3. Android中SELinux的TE简介【转】

    转自:https://blog.csdn.net/murphykwu/article/details/52457667 selinux的概念如上一篇链接所示: http://www.cnblogs.c ...

  4. SELinux 是什么?

    一.SELinux的历史 SELinux全称是Security Enhanced Linux,由美国国家安全部(National Security Agency)领导开发的GPL项目,它拥有一个灵活而 ...

  5. linux异常处理:selinux配置错误导致无法重启

    点击返回自学Linux集锦 linux异常处理:selinux配置错误导致无法重启 一次linux无法重启异常记录: 当时第一反应就是梳理最近的配置变更,特别是能预知相关的就是selinux配置变更. ...

  6. SELinux 入门【转】

    一.前言 安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统.SELinux 主要由美国国 ...

  7. SELinux安全系统基础

    一.SELinux简介 SELinux(Secure Enhanced Linux)安全增强的Linux是由美国国家安全局NSA针对计算机基础结构安全开发的一个全新的Linux安全策略机制.SELin ...

  8. 一文彻底明白linux中的selinux到底是什么

    https://www.phpyuan.com/235739.html 一.前言 安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内 ...

  9. linux中的selinux到底是什么

    一文彻底明白linux中的selinux到底是什么 2018年06月29日 14:17:30 yanjun821126 阅读数 58877 标签: SElinux 更多 个人分类: Linux   一 ...

随机推荐

  1. sketch2code 有的叫screenshot to code什么的

    先mark一下项目,回头再深究 https://github.com/mzbac/sketch2code https://www.floydhub.com/emilwallner/datasets/h ...

  2. 201771010126 王燕《面向对象程序设计(Java)》第十三周学习总结

    实验十三  图形界面事件处理技术 实验时间 2018-11-22 1.实验目的与要求 (1) 掌握事件处理的基本原理,理解其用途: 事件源 (eventevent eventeventsource s ...

  3. [LeetCode] Flipping an Image 翻转图像

    Given a binary matrix A, we want to flip the image horizontally, then invert it, and return the resu ...

  4. node.js 递归复制文件夹(附带文件过滤功能)

    1.简介: 很简单,写了一个node操作文件的小脚本,主要实现对目标文件夹中内容的复制.还顺带一个按照文件夹或者文件名过滤的功能. 2.应用场景 适合基于 node 环境的项目,项目打包的时候,配合 ...

  5. 32 ArcToolBox学习系列之数据管理工具箱——属性域(Domains)的两种创建及使用方式

    属性域分为两类,一种是范围域,一种是编码的值,下面将两个一起介绍,其中涉及到的编码,名称,只是试验,并非真实情况. 一.首先新建一个文件型地理数据库,将数据导入或者是新建要素类都可以 二.打开ArcT ...

  6. HTML标签 按功能排序

    按功能类别排列 New : HTML5 中的新标签. 基础 标签 描述 <!DOCTYPE>  定义文档类型. <html> 定义 HTML 文档. <title> ...

  7. Foxmail6.5 ERR LOGIN FAIL 重新输入口令

    这几天 Foxmail 6.5 收邮件不正常,一直报告ERR LOGIN FAIL,要求重新输入口令. 但输入正确的口令也无法收邮件. 反复折腾,最后发现如下设置即可: 邮箱账户设置 --> 邮 ...

  8. Xtrabackup实现Mysql的InnoDB引擎热备份

    前面Zabbix使用的数据库是mysql,数据库备份不用多说,必须滴,由于使用的是innodb引擎,既然做,那就使用第三方强大的Xtrabackup工具来热备吧,Xtrabackup的说明,参见htt ...

  9. [Swift]LeetCode15. 三数之和 | 3Sum

    Given an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? Find ...

  10. [Swift]LeetCode97. 交错字符串 | Interleaving String

    Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2. Example 1: Input: s1 = ...