diff --git a/docs/zh/server/security/trusted_computing/ima.md b/docs/zh/server/security/trusted_computing/ima.md index 4d4b35c21f42399e202e446072064b461f93e678..1c57dc988d8816aa2c22ba2dbc0aba98d99187ce 100644 --- a/docs/zh/server/security/trusted_computing/ima.md +++ b/docs/zh/server/security/trusted_computing/ima.md @@ -191,7 +191,7 @@ openEuler IMA/EVM机制提供的内核启动参数及说明如下: **1) 原生IMA度量:** -``` +```yaml # 原生IMA度量+自定义策略 无需配置,默认开启 # 原生IMA度量+TCB默认策略 @@ -200,7 +200,7 @@ ima_policy="tcb" **2) 基于摘要列表的IMA度量:** -``` +```yaml # 摘要列表IMA度量+自定义策略 ima_digest_list_pcr=11 ima_template=ima-ng initramtmpfs # 摘要列表IMA度量+默认策略 @@ -209,7 +209,7 @@ ima_digest_list_pcr=11 ima_template=ima-ng ima_policy="exec_tcb" initramtmpfs **3) 基于摘要列表的IMA评估,只保护文件内容:** -``` +```yaml # IMA评估+日志模式 ima_appraise=log ima_appraise_digest_list=digest-nometadata ima_policy="appraise_exec_tcb" initramtmpfs # IMA评估+强制校验模式 @@ -218,7 +218,7 @@ ima_appraise=enforce ima_appraise_digest_list=digest-nometadata ima_policy="appr **4) 基于摘要列表的IMA评估,保护文件内容和扩展属性:** -``` +```yaml # IMA评估+日志模式 ima_appraise=log-evm ima_appraise_digest_list=digest ima_policy="appraise_exec_tcb|appraise_exec_immutable" initramtmpfs evm=x509 evm=complete # IMA评估+强制校验模式 @@ -322,7 +322,7 @@ digest-list-tools软件包提供IMA摘要列表文件生成和管理的工具, -o add -指定生成摘要列表的的操作,当前仅支持add操作,即将摘要列表添加到文件中。 +指定生成摘要列表的操作,当前仅支持add操作,即将摘要列表添加到文件中。 -p @@ -360,42 +360,42 @@ digest-list-tools软件包提供IMA摘要列表文件生成和管理的工具, -**参考使用示例:** +**参考使用示例:** - 场景1:为单个文件生成摘要列表/TLV摘要列表。 - ``` + ```shell gen_digest_lists -t metadata -f compact -i l:policy -o add -p -1 -m immutable -i I:/usr/bin/ls -d ./ -i i: gen_digest_lists -t metadata -f compact -i l:policy -o add -p -1 -m immutable -i I:/usr/bin/ls -d ./ -i i: -T ``` - 场景2: 为单个文件生成摘要列表/TLV摘要列表,并指定相对根目录。 - ``` + ```shell gen_digest_lists -t metadata -f compact -i l:policy -o add -p -1 -m immutable -i I:/usr/bin/ls -A /usr/ -d ./ -i i: gen_digest_lists -t metadata -f compact -i l:policy -o add -p -1 -m immutable -i I:/usr/bin/ls -A /usr/ -d ./ -i i: -T ``` - 场景3:为目录下的文件递归生成摘要列表/TLV摘要列表。 - ``` + ```shell gen_digest_lists -t metadata -f compact -i l:policy -o add -p -1 -m immutable -i I:/usr/bin/ -d ./ -i i: gen_digest_lists -t metadata -f compact -i l:policy -o add -p -1 -m immutable -i I:/usr/bin/ -d ./ -i i: -T ``` - 场景4:为目录下的可执行文件递归生成摘要列表/TLV摘要列表。 - ``` + ```shell gen_digest_lists -t metadata -f compact -i l:policy -o add -p -1 -m immutable -i I:/usr/bin/ -d ./ -i i: -i e:gen_digest_lists -t metadata -f compact -i l:policy -o add -p -1 -m immutable -i I:/usr/bin/ -d ./ -i i: -i e: -T ``` - 场景5:为目录下的文件递归生成摘要列表/TLV摘要列表,排除部分子目录。 - ``` + ```shell gen_digest_lists -t metadata -f compact -i l:policy -o add -p -1 -m immutable -i I:/usr/ -d ./ -i i: -i E:/usr/bin/gen_digest_lists -t metadata -f compact -i l:policy -o add -p -1 -m immutable -i I:/usr/ -d ./ -i i: -i E:/usr/bin/ -T ``` - 场景6:rpmbuild回调脚本中,通过读取rpmbuild传入的列表文件生成摘要列表。 - ``` + ```shell gen_digest_lists -i M: -t metadata -f compact -d $DIGEST_LIST_DIR -i l:policy \ -i i: -o add -p -1 -m immutable -i L:$BIN_PKG_FILES -i u: \ -A $RPM_BUILD_ROOT -i e: \ @@ -409,7 +409,7 @@ digest-list-tools软件包提供IMA摘要列表文件生成和管理的工具, -i F:/usr/lib/modules \ -i F:/lib/firmware \ -i F:/usr/lib/firmware - + gen_digest_lists -i M: -t metadata -f compact -d $DIGEST_LIST_DIR.tlv \ -i l:policy -i i: -o add -p -1 -m immutable -i L:$BIN_PKG_FILES -i u: \ -T -A $RPM_BUILD_ROOT -i e: \ @@ -441,7 +441,7 @@ manage_digest_lists命令行工具主要用于将二进制格式的TLV摘要列 查看TLV摘要列表信息: -``` +```shell manage_digest_lists -p dump -d /etc/ima/digest_lists.tlv/ ``` @@ -451,7 +451,7 @@ manage_digest_lists -p dump -d /etc/ima/digest_lists.tlv/ IMA策略文件为文本文件,一个文件中可包含若干条按照换行符`\n`分隔的规则语句,每条规则语句都必须以 action 关键字代表的**动作**开头,后接**筛选条件**: -``` +```shell <筛选条件1> [筛选条件2] [筛选条件3]... ``` @@ -615,19 +615,19 @@ action表示该条策略具体的动作,一条策略只能选一个 action, **步骤1:** 用户可通过配置启动参数或手动配置的方式,指定度量策略。通过启动参数配置IMA策略的示例如下: -``` +```shell ima_policy="tcb" ``` 手动配置IMA策略的示例如下: -``` +```shell echo "measure func=BPRM_CHECK" > /sys/kernel/security/ima/policy ``` **步骤2:** 重启系统,用户可实时检查度量日志获取当前的度量情况: -``` +```shell cat /sys/kernel/security/ima/ascii_runtime_measurements ``` @@ -637,7 +637,7 @@ cat /sys/kernel/security/ima/ascii_runtime_measurements **步骤1:** 配置启动参数,重启后进入fix模式: -``` +```shell ima_appraise=fix ima_policy=appraise_tcb ``` @@ -645,25 +645,25 @@ ima_appraise=fix ima_policy=appraise_tcb 对于不可变文件(如二进制程序文件)可以使用签名模式,将文件摘要值的签名写入IMA扩展属性中。举例如下(其中`/path/to/ima.key`指的是和IMA证书匹配的签名私钥): -``` +```shell find /usr/bin -fstype ext4 -type f -executable -uid 0 -exec evmctl -a sha256 ima_sign --key /path/to/ima.key '{}' \; ``` 对于可变文件(如数据文件)可以使用哈希模式,将文件的摘要值写入IMA扩展属性中。IMA支持自动标记机制,即在fix模式下仅需触发文件访问,即可自动生成IMA扩展属性: -``` +```shell find / -fstype ext4 -type f -uid 0 -exec dd if='{}' of=/dev/null count=0 status=none \; ``` 可通过如下命令检查文件是否被成功标记了IMA扩展属性(security.ima): -``` +```shell getfattr -m - -d /sbin/init ``` **步骤3:** 配置启动参数,修改IMA评估为log或enforce模式后,重启系统: -``` +```shell ima_appraise=enforce ima_policy=appraise_tcb ``` @@ -673,7 +673,7 @@ ima_appraise=enforce ima_policy=appraise_tcb IMA摘要列表特性使用前,用户需安装`ima-evm-utils`和`digest-list-tools`软件包: -``` +```shell yum install ima-evm-utils digest-list-tools ``` @@ -685,7 +685,7 @@ yum install ima-evm-utils digest-list-tools **/etc/ima/digest_lists/0-metadata_list-compact-\** -为IMA摘要列表文件,通过`gen_digest_lists`命令生成(生成方法详见[gen_digest_lists工具](#gen_digest_list工具)),该文件为二进制格式,包含header信息以及一连串SHA256哈希值,分别代表合法的文件内容摘要值和文件扩展属性摘要值。该文件被度量或评估后,最终被导入内核,并以该文件中的白名单摘要值为基准进行IMA摘要列表度量或评估。 +为IMA摘要列表文件,通过`gen_digest_lists`命令生成(生成方法详见[gen_digest_lists工具](#gen_digest_lists工具)),该文件为二进制格式,包含header信息以及一连串SHA256哈希值,分别代表合法的文件内容摘要值和文件扩展属性摘要值。该文件被度量或评估后,最终被导入内核,并以该文件中的白名单摘要值为基准进行IMA摘要列表度量或评估。 **/etc/ima/digest_lists/0-metadata_list-rpm-\** @@ -711,19 +711,19 @@ yum install ima-evm-utils digest-list-tools 即原生的IMA签名机制,将签名信息按照一定格式,存放在`security.ima`扩展属性中。可通过`evmctl`命令生成并添加: -``` +```shell evmctl ima_sign --key /path/to/ima.key -a sha256 ``` 也可添加`-f`参数,将签名信息和头信息存入独立的文件中: -``` +```shell evmctl ima_sign -f --key /path/to/ima.key -a sha256 ``` 在开启IMA摘要列表评估模式下,可直接将摘要列表文件路径写入内核接口,实现摘要列表的导入/删除。该过程会自动触发评估,基于`security.ima`扩展属性完成对摘要列表文件内容的签名验证: -``` +```shell # 导入IMA摘要列表文件 echo > /sys/kernel/security/ima/digest_list_data # 删除IMA摘要列表文件 @@ -738,11 +738,11 @@ openEuler 24.03 LTS版本开始支持IMA专用签名密钥,并采用CMS签名 其签名机制为: -1) 将CMS签名信息追加到IMA摘要列表文件末尾; +(1) 将CMS签名信息追加到IMA摘要列表文件末尾; -2) 填充结构体并添加到签名信息末尾,结构体定义如下: +(2) 填充结构体并添加到签名信息末尾,结构体定义如下: -``` +```cpp struct module_signature { u8 algo; /* Public-key crypto algorithm [0] */ u8 hash; /* Digest algorithm [0] */ @@ -754,11 +754,11 @@ struct module_signature { }; ``` -3) 添加魔鬼字符串`"~Module signature appended~\n"` +(3) 添加魔鬼字符串`"~Module signature appended~\n"` 此步骤的参考脚本如下: -``` +```shell #!/bin/bash DIGEST_FILE=$1 # IMA摘要列表文件路径 SIG_FILE=$2 # IMA摘要列表签名信息保存路径 @@ -788,7 +788,7 @@ openEuler 22.03 LTS版本支持复用RPM签名机制实现IMA摘要列表文件 在开启IMA度量模式下,导入IMA摘要列表文件无需经过签名验证,可直接将路径写入内核接口,实现摘要列表的导入/删除: -``` +```shell # 导入IMA摘要列表文件 echo > /sys/kernel/security/ima/digest_list_data # 删除IMA摘要列表文件 @@ -801,7 +801,7 @@ echo > /sys/kernel/security/ima/digest_list_data_del 对于已包含签名信息的IMA摘要列表文件(IMA扩展属性签名或IMA摘要列表追加签名),可直接将路径写入内核接口,实现摘要列表的导入/删除。该过程会自动触发评估,基于`security.ima`扩展属性完成对摘要列表文件内容的签名验证: -``` +```shell # 导入IMA摘要列表文件 echo > /sys/kernel/security/ima/digest_list_data # 删除IMA摘要列表文件 @@ -812,7 +812,7 @@ echo > /sys/kernel/security/ima/digest_list_data_del 对于复用RPM签名的IMA摘要列表文件,需要调用`upload_digest_lists`命令实现导入。具体命令如下(注意指定的路径为对应的RPM摘要列表): -``` +```shell # 导入IMA摘要列表文件 upload_digest_lists add # 删除IMA摘要列表文件 @@ -831,13 +831,13 @@ upload_digest_lists del openEuler RPM工具链支持`%__brp_digest_list`宏定义,配置格式如下: -``` +```shell %__brp_digest_list /usr/lib/rpm/brp-digest-list %{buildroot} ``` 当配置了该宏定义后,当用户调用`rpmbuild`命令进行软件包构建时,在RPM打包阶段会调用`/usr/lib/rpm/brp-digest-list`脚本进行摘要列表的生成和签名等流程。openEuler默认针对可执行程序、动态库、内核模块等关键文件生成摘要列表。用户也可以通过修改脚本,自行配置生成摘要列表的范围和指定签名密钥。如下示例使用用户自定义的签名密钥`/path/to/ima.key`进行摘要列表签名。 -``` +```shell ...... (line 66) DIGEST_LIST_TLV_PATH="$DIGEST_LIST_DIR.tlv/0-metadata_list-compact_tlv-$(basename $BIN_PKG_FILES)" [ -f $DIGEST_LIST_TLV_PATH ] || exit 0 @@ -858,19 +858,19 @@ echo $DIGEST_LIST_DIR.sig/0-metadata_list-compact-$(basename $BIN_PKG_FILES).sig **步骤1:** 用户需要配置启动参数度量策略,开启IMA度量功能,具体步骤同**原生IMA度量**,不同的是需要单独配置度量所使用的TPM PCR寄存器,启动参数示例如下: -``` +```shell ima_policy=exec_tcb ima_digest_list_pcr=11 ``` **步骤2:** 用户导入IMA摘要列表,以`bash`软件包的摘要列表为例: -``` +```shell echo /etc/ima/digest_lists/0-metadata_list-compact-bash-5.1.8-6.oe2203sp1.x86_64 > /sys/kernel/security/ima/digest_list_data ``` 可查询到IMA摘要列表的度量日志: -``` +```shell cat /sys/kernel/security/ima/ascii_runtime_measurements ``` @@ -884,13 +884,13 @@ cat /sys/kernel/security/ima/ascii_runtime_measurements **步骤1:** 执行`dracut`命令将摘要列表文件写入initrd: -``` +```shell dracut -f -e xattr ``` **步骤2:** 配置启动参数和IMA策略,典型的配置如下: -``` +```shell # 基于摘要列表的IMA评估log/enforce模式,只保护文件内容,配置默认策略为appraise_exec_tcb ima_appraise=log ima_appraise_digest_list=digest-nometadata ima_policy="appraise_exec_tcb" initramtmpfs module.sig_enforce ima_appraise=enforce ima_appraise_digest_list=digest-nometadata ima_policy="appraise_exec_tcb" initramtmpfs module.sig_enforce @@ -907,7 +907,7 @@ ima_appraise=enforce-evm ima_appraise_digest_list=digest ima_policy="appraise_ex **步骤1:** 配置启动参数,典型的配置如下: -``` +```shell # 基于摘要列表的IMA评估log/enforce模式,只保护文件内容,无默认策略 ima_appraise=log ima_appraise_digest_list=digest-nometadata initramtmpfs ima_appraise=enforce ima_appraise_digest_list=digest-nometadata initramtmpfs @@ -920,7 +920,7 @@ ima_appraise=enforce-evm ima_appraise_digest_list=digest initramtmpfs evm=x509 e **步骤2:** 导入IMA策略,将策略文件的全路径写入内核接口: -``` +```shell echo /path/to/policy > /sys/kernel/security/ima/policy ``` @@ -930,7 +930,8 @@ echo /path/to/policy > /sys/kernel/security/ima/policy > > openEuler 22.03 LTS版本的策略模板如下(复用RPM签名场景): > -``` + +```shell # 不评估securityfs文件系统的访问行为 dont_appraise fsmagic=0x73636673 # 其他用户自定义的dont_appraise规则 @@ -944,10 +945,12 @@ appraise func=BPRM_CHECK appraise_type=imasig # 其他用户自定义的appraise规则 ...... ``` + > > openEuler 24.03 LTS版本的策略模板如下(IMA扩展属性签名或追加签名场景): > -``` + +```shell # 用户自定义的dont_appraise规则 ...... # 评估导入的IMA摘要列表文件 @@ -960,7 +963,7 @@ appraise func=DIGEST_LIST_CHECK appraise_type=imasig|modsig openEuler 22.03 LTS的摘要列表导入方式如下(复用RPM签名的IMA摘要列表): -``` +```shell # 导入digest_list_tools软件包的摘要列表 echo /etc/ima/digest_lists/0-metadata_list-compact-digest-list-tools-0.3.95-13.x86_64 > /sys/kernel/security/ima/digest_list_data echo /etc/ima/digest_lists/0-parser_list-compact-libexec > /sys/kernel/security/ima/digest_list_data @@ -972,7 +975,7 @@ cat /sys/kernel/security/ima/digests_count openEuler 24.03 LTS的摘要列表导入方式如下(追加签名的IMA摘要列表): -``` +```shell find /etc/ima/digest_lists -name "0-metadata_list-compact-*" -exec echo {} > /sys/kernel/security/ima/digest_list_data \; ``` @@ -991,7 +994,7 @@ find /etc/ima/digest_lists -name "0-metadata_list-compact-*" -exec echo {} > /sy **步骤1:** 生成根证书,以openssl命令为例: -``` +```shell echo 'subjectKeyIdentifier=hash' > root.cfg openssl genrsa -out root.key 4096 openssl req -new -sha256 -key root.key -out root.csr -subj "/C=AA/ST=BB/O=CC/OU=DD/CN=openeuler test ca" @@ -1001,20 +1004,20 @@ openssl x509 -in root.crt -out root.der -outform DER **步骤2:** 获取openEuler kernel源码,以最新的OLK-5.10分支为例: -``` +```shell git clone https://gitee.com/openeuler/kernel.git -b OLK-5.10 ``` **步骤3:** 进入源码目录,并将根证书拷贝至目录下: -``` +```shell cd kernel cp /path/to/root.der . ``` 修改config文件的CONFIG_SYSTEM_TRUSTED_KEYS选项: -``` +```shell CONFIG_SYSTEM_TRUSTED_KEYS="./root.crt" ``` @@ -1022,7 +1025,7 @@ CONFIG_SYSTEM_TRUSTED_KEYS="./root.crt" **步骤5:** 重启后检查证书导入成功: -``` +```shell keyctl show %:.builtin_trusted_keys ``` @@ -1030,7 +1033,7 @@ keyctl show %:.builtin_trusted_keys **步骤1:** 基于根证书生成子证书,以openssl命令为例: -``` +```shell echo 'subjectKeyIdentifier=hash' > ima.cfg echo 'authorityKeyIdentifier=keyid,issuer' >> ima.cfg echo 'keyUsage=digitalSignature' >> ima.cfg @@ -1042,21 +1045,21 @@ openssl x509 -outform DER -in ima.crt -out x509_ima.der **步骤2:** 将IMA证书拷贝到/etc/keys目录下: -``` +```shell mkdir -p /etc/keys/ cp x509_ima.der /etc/keys/ ``` **步骤3:** 打包initrd,将IMA证书和摘要列表置入initrd镜像中: -``` +```shell echo 'install_items+=" /etc/keys/x509_ima.der "' >> /etc/dracut.conf dracut -f -e xattr ``` **步骤4:** 重启后检查证书导入成功: -``` +```shell keyctl show %:.ima ``` @@ -1151,7 +1154,7 @@ IMA默认策略可能包含对应用程序执行、内核模块加载等关键 用户需要通过log模式进入系统进行问题定位和修复。重启系统,进入grub界面修改启动参数,采用log模式启动: -``` +```shell ima_appraise=log ``` @@ -1159,7 +1162,7 @@ ima_appraise=log **步骤1:** 检查keyring中的IMA证书: -``` +```shell keyctl show %:.builtin_trusted_keys ``` @@ -1201,7 +1204,7 @@ keyctl show %:.builtin_trusted_keys 如果用户导入了其他内核根证书,也同样需要通过`keyctl`命令查询确认证书是否被成功导入。openEuler默认不使用IMA密钥环,如果用户存在使用的情况,则需要通过如下命令查询IMA密钥环中是否存在用户证书: -``` +```shell keyctl show %:.ima ``` @@ -1211,39 +1214,39 @@ keyctl show %:.ima 用户可通过如下命令查询当前系统中的摘要列表文件: -``` +```shell ls /etc/ima/digest_lists | grep '_list-compact-' ``` 对于每个摘要列表文件,需要检查存在**以下三种之一**的签名信息: -1) 检查该摘要列表文件存在对应的**RPM摘要列表文件**,且**RPM摘要列表文件**的ima扩展属性中包含签名值。以bash软件包的摘要列表为例,摘要列表文件路径为: +(1) 检查该摘要列表文件存在对应的**RPM摘要列表文件**,且**RPM摘要列表文件**的ima扩展属性中包含签名值。以bash软件包的摘要列表为例,摘要列表文件路径为: -``` +```shell /etc/ima/digest_lists/0-metadata_list-compact-bash-5.1.8-6.oe2203sp1.x86_64 ``` RPM摘要列表路径为: -``` +```shell /etc/ima/digest_lists/0-metadata_list-rpm-bash-5.1.8-6.oe2203sp1.x86_64 ``` 检查RPM摘要列表签名,即文件的`security.ima`扩展属性不为空: -``` +```shell getfattr -n security.ima /etc/ima/digest_lists/0-metadata_list-rpm-bash-5.1.8-6.oe2203sp1.x86_64 ``` -2) 检查摘要列表文件的`security.ima`扩展属性不为空: +(2) 检查摘要列表文件的`security.ima`扩展属性不为空: -``` +```shell getfattr -n security.ima /etc/ima/digest_lists/0-metadata_list-compact-bash-5.1.8-6.oe2203sp1.x86_64 ``` -3) 检查摘要列表文件的末尾包含了签名信息,可通过检查文件内容末尾是否包含`~Module signature appended~`魔鬼字符串进行判断(仅openEuler 24.03 LTS及之后版本支持的签名方式): +(3) 检查摘要列表文件的末尾包含了签名信息,可通过检查文件内容末尾是否包含`~Module signature appended~`魔鬼字符串进行判断(仅openEuler 24.03 LTS及之后版本支持的签名方式): -``` +```shell tail -c 28 /etc/ima/digest_lists/0-metadata_list-compact-kernel-6.6.0-28.0.0.34.oe2403.x86_64 ``` @@ -1253,7 +1256,7 @@ tail -c 28 /etc/ima/digest_lists/0-metadata_list-compact-kernel-6.6.0-28.0.0.34. 在确保摘要列表已携带签名信息的情况下,用户还需要确保摘要列表采用正确的私钥签名,即签名私钥和内核中的证书匹配。除用户自行进行私钥检查外,还可通过dmesg日志或audit日志(默认路径为`/var/log/audit/audit.log`)判断是否有签名校验失败的情况发生。典型的日志输出如下: -``` +```shell type=INTEGRITY_DATA msg=audit(1722578008.756:154): pid=3358 uid=0 auid=0 ses=1 subj=unconfined_u:unconfined_r:haikang_t:s0-s0:c0.c1023 op=appraise_data cause=invalid-signature comm="bash" name="/root/0-metadata_list-compact-bash-5.1.8-6.oe2203sp1.x86_64" dev="dm-0" ino=785161 res=0 errno=0UID="root" AUID="root" ``` @@ -1263,13 +1266,13 @@ type=INTEGRITY_DATA msg=audit(1722578008.756:154): pid=3358 uid=0 auid=0 ses=1 s 用户需要通过如下命令查询当前initrd中是否存在摘要列表文件: -``` +```shell lsinitrd | grep 'etc/ima/digest_lists' ``` 如果未查询到摘要列表文件,则用户需要重新制作initrd,并再次检查摘要列表导入成功: -``` +```shell dracut -f -e xattr ``` @@ -1287,13 +1290,13 @@ dracut -f -e xattr 对于出现文件执行失败的场景,首先需要确定摘要列表文件已经成功导入内核,用户可以检查摘要列表数量判断导入情况: -``` +```shell cat /sys/kernel/security/ima/digests_count ``` 然后用户可通过audit日志(默认路径为`/var/log/audit/audit.log`)判断具体哪个文件校验失败以及原因。典型的日志输出如下: -``` +```shell type=INTEGRITY_DATA msg=audit(1722811960.997:2967): pid=7613 uid=0 auid=0 ses=1 subj=unconfined_u:unconfined_r:haikang_t:s0-s0:c0.c1023 op=appraise_data cause=IMA-signature-required comm="bash" name="/root/test" dev="dm-0" ino=814424 res=0 errno=0UID="root" AUID="root" ``` @@ -1307,7 +1310,7 @@ type=INTEGRITY_DATA msg=audit(1722811960.997:2967): pid=7613 uid=0 auid=0 ses=1 建议用户确认当前内核中包含以下几本签名证书: -``` +```shell # keyctl show %:.builtin_trusted_keys Keyring 566488577 ---lswrv 0 0 keyring: .builtin_trusted_keys @@ -1318,7 +1321,7 @@ Keyring 如缺少证书,建议将内核升级至最新版本。 -``` +```shell yum update kernel ``` @@ -1328,7 +1331,7 @@ openEuler 24.03 LTS及之后版本已具备IMA专用证书,且支持证书链 IMA摘要列表导入存在检查机制,如果某次导入过程中,摘要列表的签名校验失败,则会关闭摘要列表导入功能,从而导致后续即使正确签名的摘要列表文件也无法被导入。用户可检查dmesg日志中是否存在如下打印确认是否为该原因导致: -``` +```shell # dmesg ima: 0-metadata_list-compact-bash-5.1.8-6.oe2203sp1.x86_64 not appraised, disabling digest lists lookup for appraisal ```