SELinux与SEAndroid
时间 2021-06-10
标签
linux
安全
框架
spa
翻译
设计
对象
接口
进程
资源
0. 概述
- SELinux则是由美国NSA(国安局)和一些公司(RedHat、Tresys)设计的一个针对Linux的安全增强系统。SEAndroid是Google在Android 4.4上正式推出的一套以SELinux为基础于核心的系统安全机制。
- 因为Linux有多种发行版本,因此各家的SELinux表现形式也略有区别。具体到Android平台,Google对其进行了必定得修改,从而获得SEAndroid。
1. SELinux
-
DAC和MAClinux
- SELinux出现以前,Linux上的安全模型叫DAC,全称是Discretionary Access Control,翻译为自主访问控制。
核心思想:
进程理论上所拥有的权限与执行它的用户的权限相同。好比,以root用户启动Browser,那么Browser就有root用户的权限,在Linux系统上能干任何事情。
- SELinux在DAC以外,设计了一个新的安全模型,叫MAC(Mandatory Access Control),翻译为强制访问控制。
MAC核心思想:
任何进程想在SELinux系统中干任何事情,都必须先在安全策略配置文件中赋予权限。凡是没有出如今安全策略配置文件中的权限,进程就没有该权限。
-
DAC和MAC:安全
- Linux系统先作DAC检查。若是没有经过DAC权限检查,则操做直接失败。经过DAC检查以后,再作MAC权限检查。
- SELinux中也有用户的概念,但它和Linux中原有的user概念不是同一个东西。什么意思呢?好比,Linux中的超级用户root在SELinux中可能就是一个没权限,没地位,打打酱油的”路人甲“。固然,这一切都由SELinux安全策略的制定者来决定。
在SELinux中,安全策略文件是最重要的。SELinux有本身的一套规则来编写安全策略文件,这套规则被称之为SELinux Policy语言.
- SELinux是典型的MAC实现,对系统中每一个对象都生成一个安全上下文(Security Context),每个对象访问系统的资源都要进行安全上下文审查。审查的规则包括类型强制检测(type enforcement),多层安全审查(Multi-LevelSecurity),及基于角色的访问控制(RBAC: Role Based Access Control)。
- SELinux的总体结构以下图所示
2. SEAndroid
- 因为Android系 统有着独特的用户空间运行时,所以SELinux不能彻底适用于Android系统。为此,NSA同Google一块儿针对Android系统,在SELinux基础上开发了 SEAndroid。总体框架: