24.2. 编写自定义 IMA 策略
如果您使用内核命令行参数启用的内置 IMA 策略,如 ima_policy=tcb
或 ima_policy=critical_data
,或者 /usr/share/ima/policies/
中的示例策略不满足您的要求,您可以创建自定义 IMA 策略规则。当 systemd 从 /etc/ima/ima-policy
加载策略时,它会替换内置的 IMA 策略。
定义 IMA 策略后,如果策略在部署前包含 IMA-appraisal 规则,请生成很好的引用值。如果您的策略不包含 IMA-appraisal 规则,您可以通过运行 echo /PATH-TO-YOUR-DRAFT-IMA-POLICY > /sys/kernel/security/integrity/ima/policy 来验证策略
。这种方法有助于防止系统引导失败。
IMA 策略规则使用格式 action [condition …]
指定在特定条件下触发的操作。例如,/usr/share/ima/policies/01-appraise-executable-and-lib-signatures
中的示例策略包括以下规则:
第一个规则 dont_appraise fsmagic=0x9fa0
指示 IMA 跳过 PROC_SUPER_MAGIC
文件系统中的文件。最后一条规则是 appraise func=BPRM_CHECK appraise_type=imasig
,在执行文件时强制执行签名验证。