Menu Close

第 7 章 使用多类别安全(MCS)进行数据保密性

您可以使用 MCS 通过分类数据来增强系统数据的机密性,然后授予某些进程和用户对特定类别的访问权限

7.1. 多类别安全性(MCS)

多类别 Security(MCS)是一个访问控制机制,它使用分配给进程和文件的类别。然后,文件只能由分配到相同类别的进程访问。MCS 的目的是维护您系统上的数据保密性。

MCS 类别由 c0c1023 的值定义,但您也可以为每个类别或类别组合定义一个文本标签,如"Personnel"、"ProjectX"或"ProjectX.Personnel"。MCS 转换服务(mcstrans)随后将 category 值替换为系统输入和输出中的相应标签,以便用户可以使用这些标签而不是 category 值。

当用户分配给类别时,他们可以为他们分配的任何类别标记其任何文件。

MCS 适用于一个简单的原则:要访问文件,必须将用户分配给分配给该文件的所有类别。MCS 检查在常规 Linux Discretionary Access Control(DAC)和 SELinux Type Enforcement(TE)规则后应用,因此它只能进一步限制现有的安全配置。

多级别安全中的 MCS

您可以将自己上的 MCS 用作非层次系统,也可以将其与多级别安全(MLS)结合使用,作为分层系统中的非层次结构层。

一个 MLS 中的 MCS 示例是,保密性科研组织,其中文件被分类如下:

表 7.1. 安全级别和类别组合示例

安全级别

类别

未指定

项目 X

项目 Y

项目 Z

未分类

s0

s0:c0

s0:c1

s0:c2

机密

s1

s1:c0

s1:c1

s1:c2

Secret

s2

s2:c0

s2:c1

s2:c2

Top secret

s3

s3:c0

s3:c1

s3:c2

注意

拥有范围 s0:c0.1023 的用户可以访问分配给 s0 级别的所有类别的所有文件,除非访问被其他安全机制禁止,如 DAC 或类型执行策略规则。

文件或进程生成的安全上下文是以下组合:

  • SELinux 用户
  • SELinux 角色
  • SELinux 类型
  • MLS 敏感度级别
  • MCS 类别

例如,在 MLS/MCS 环境中具有访问级别 1 和类别 2 的非授权用户可能具有以下 SELinux 上下文:

user_u:user_r:user_t:s1:c2