第 8 章 使用内核完整性子系统提高安全性
8.1. 内核完整性子系统
完整性子系统是负责维护系统数据完整性的内核的一部分。此子系统有助于防止用户对特定系统文件进行不必要的修改,从而使系统处于初始状态。
内核完整性子系统由两个主要组件组成:
- 完整性测量架构(IMA)
- 在文件被执行或打开时,会测量文件的内容。用户可以通过应用自定义策略来更改此行为。
- 将测量的值放置在内核的内存空间中,从而防止系统用户进行任何修改。
- 允许本地和远程用户验证测量值。
- 扩展验证模块(EVM)
- 通过加密其对应的值,保护与系统安全性(如 IMA 测量和 SELinux 属性)相关的文件的扩展属性(也称为 xattr)。
IMA 和 EVM 还包含大量额外功能扩展。例如:
- IMA-Appraisal
- 本地根据以前存储在内核内存中测量文件中的值验证当前文件的内容。此扩展禁止在当前测量与之前的测量不匹配的情况下通过特定文件执行任何操作。
- EVM 数字签名
-
允许通过存储在内核密钥环中的加密密钥使用数字签名。EVM Digital Signatures 确保包含内容哈希(
security.ima
)的文件的 xattr 值的来源和完整性。
-
允许通过存储在内核密钥环中的加密密钥使用数字签名。EVM Digital Signatures 确保包含内容哈希(
注意
功能扩展相互补充,但您可以独立配置和使用它们。
内核完整性子系统可以使用 Trusted Platform 模块(TPM)来进一步增强系统安全性。TPM 是受信任的计算组(TCG)中有关重要加密功能的规范。TPM 通常作为专用硬件实施,附加到平台的主板,并通过为硬件芯片受保护且受篡改区域提供加密功能来防止基于软件的攻击。TPM 的一些功能有:
- 随机数生成器
- 用于加密密钥的生成器和安全存储
- 哈希生成器
- 远程测试