SEAndroid策略 DAC和MAC

本文解释SEAndroid策略里面的DAC和MAC。

SEAndroid策略里面的DAC和MAC

DAC

在 SELinux 出现之前,Linux 上的使用的安全模型是 DAC( Discretionary Access Control 自主访问控制)。

  • DAC 的核心思想:进程理论上所拥有的权限与执行它的用户的权限相同
  • 例如,以 root 用户启动 Browser,那么 Browser 就有 root 用户的权限,在 Linux 系统上能干任何事情

显然,DAC 管理太过宽松,只要想办法在系统上获取到 root 权限就可以了。

MAC

所以后面有了 SELinux,在 DAC 之外,SELinux设计了一种新的安全模型,叫 MAC(Mandatory Access Control 强制访问控制)。

  • MAC 的核心思想也很简单:任何进程想在 SELinux 系统上干任何事情,都必须在《安全策略文件》中赋予权限
  • 即要求系统对每一项访问都进行严格的限制和验证,具体的限制和验证策略(policy)由开发者给出, 即需要明确的指明某个进程可以访问哪些资源(文件、网络端口,属性等)

MAC可以明显弥补DAC的缺陷。如可限制Root权限,即使你有root权限(将军),如果无法通过MAC验证(圣旨授权),那么一样的无法真正执行相关的操作。

另外MAC对每一项权限进行了更加完整的细化,可限制用户对资源的访问行为。在Linux Kernel,所有的MAC机制都是搭建在Linux Security Modules(LSM)基础上,目前SELinux已经成了事实上的行业标准。

Linux 系统会先做 DAC 检查,如果没有通过 DAC 权限检查,则操作直接失败。通过 DAC 检查之后,再做 MAC 权限检查。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程