SELinux 源码分析(Federa Core 8) 第一章 SELinux(Security Enhance Linux,简称SELinux)简介 1.1 SELinux 的起源 SELinux 是一个面向政府和行业的产品,由NSA、Network Associates、Tresys 以及其他组织设计和开发。尽管 NSA 将其作为一个补丁集引入,但从 2.6 版开始,它就被加入到 Linux内核中。 GUN/Linux 非常安全,但它也非常动态:所做的更改会为操作系统带来新的漏洞,这些漏洞可能被攻击者利用,尽管人们都非常关心阻止授权访问,但是发生入侵后会发生什么呢? 1.2 访问控制 大多数操作系统使用访问控制来判断一个实体(用户或程序)是否能够访问给定资源。基于 UNIX 的系统使用一种自主访问控制(Discretionary Access Control,简称DAC)的形式。此方法通常根据对象所属的分组来限制对对象的访问。例如,GNU/Linux 中的文件有一个所有者、一个分组和一个权限集。权限定义谁可以访问给定文件、谁可以读取它、谁可以向其写入,以及谁可以执行它。这些权限被划分到三个用户集中,分别表示 用户(文件所有者)、分组(一个用户组的所有成 员 )和其他(既 不 是文件所有者,又 不 是该 分组的成 员 的所有用户)。 很 多这样 的访问控制都会带来一个问题 ,因 为所利用的程序能够继 承 用户的访问控制。这样 ,该 程序就可以在 用户的访问层 进 行操作。与 通过 这种方式定义约 束 相 比 ,使用最 小 特权原 则 更安全,程序只 能执行完 成 任 务 所需 的操作。例如,如果 一个程序用于响 应 socket 请求 ,但不 需 要 访问文件系统,那 么该 程序应 该 能够监 听 给定的socket,但是不 能访问文件系统。通过 这种方式,如果 该 程序被攻击者利用,其访问权限显 然 是最 小 的。这种控制类 型 称为强 制访问控制(MAC)。 另 一种控制访问的方法是基于角 色 的访问控制(RBAC)。在 RBAC 中,权限是根据安全系统所授予 的角 色 来提 供 的。角 色 的概 念 与 传 统的分组概 念 不 同 ,因 为一个分组代 表一个或多个用户。一个角 色 可以代 表多个用户,但它也代 表一个用户集可以执行的权限。 SELinux 将 MAC 和 RBAC 都添 加到了 GNU/Linux 操作系统中。下 一节 将探 讨 SELinux 实现 ,以及如何 将安全增 强 透 明 地 添 加到 Linux 内核中。 1.3 Linux 安全模 块 (Linux Security Modu...