第 7 章 使用多类别安全(MCS)进行数据保密性
您可以使用 MCS 通过分类数据来增强系统数据的机密性,然后授予某些进程和用户对特定类别的访问权限
7.1. 多类别安全性(MCS)
多类别 Security(MCS)是一个访问控制机制,它使用分配给进程和文件的类别。然后,文件只能由分配到相同类别的进程访问。MCS 的目的是维护您系统上的数据保密性。
MCS 类别由 c0
到 c1023
的值定义,但您也可以为每个类别或类别组合定义一个文本标签,如"Personnel"、"ProjectX"或"ProjectX.Personnel"。MCS 转换服务(mcstrans
)随后将 category 值替换为系统输入和输出中的相应标签,以便用户可以使用这些标签而不是 category 值。
当用户分配给类别时,他们可以为他们分配的任何类别标记其任何文件。
MCS 适用于一个简单的原则:要访问文件,必须将用户分配给分配给该文件的所有类别。MCS 检查在常规 Linux Discretionary Access Control(DAC)和 SELinux Type Enforcement(TE)规则后应用,因此它只能进一步限制现有的安全配置。
多级别安全中的 MCS
您可以将自己上的 MCS 用作非层次系统,也可以将其与多级别安全(MLS)结合使用,作为分层系统中的非层次结构层。
一个 MLS 中的 MCS 示例是,保密性科研组织,其中文件被分类如下:
安全级别 | 类别 | |||
未指定 | 项目 X | 项目 Y | 项目 Z | |
未分类 |
|
|
|
|
机密 |
|
|
|
|
Secret |
|
|
|
|
Top secret |
|
|
|
|
拥有范围 s0:c0.1023
的用户可以访问分配给 s0
级别的所有类别的所有文件,除非访问被其他安全机制禁止,如 DAC 或类型执行策略规则。
文件或进程生成的安全上下文是以下组合:
- SELinux 用户
- SELinux 角色
- SELinux 类型
- MLS 敏感度级别
- MCS 类别
例如,在 MLS/MCS 环境中具有访问级别 1 和类别 2 的非授权用户可能具有以下 SELinux 上下文:
user_u:user_r:user_t:s1:c2
其他资源