长期支持版本

    社区创新版本

      文件完整性保护

      内核完整性度量架构(IMA)

      IMA全称Integrity Measurement Architecture,是Linux内核提供的强制访问控制子系统,通过在文件访问系统调用添加检查hook,实现文件的完整性度量/校验。

      前置条件

      1. 准备openEuler内核编译环境,可参考:https://gitee.com/openeuler/kernel/wikis/kernel
      2. 内核模块签名支持商密算法在openEuler 5.10内核支持,建议选取最新5.10内核源码进行编译;
      3. 生成内核SM2根证书:
      # 生成证书配置文件(配置文件其他字段可按需定义)
      $ echo 'subjectKeyIdentifier=hash' > ca.cfg
      # 生成SM2签名私钥
      $ openssl ecparam -genkey -name SM2 -out ca.key
      # 生成签名请求
      $ openssl req -new -sm3 -key ca.key -out ca.csr
      # 生成SM2证书
      $ openssl x509 -req -days 3650 -extfile ca.cfg -signkey ca.key -in ca.csr -out ca.crt
      
      1. 生成IMA二级证书:
      # 创建证书配置文件
      echo 'subjectKeyIdentifier=hash' > ima.cfg
      echo 'authorityKeyIdentifier=keyid,issuer' >> ima.cfg
      # 生成私钥
      openssl ecparam -genkey -name SM2 -out ima.key
      # 生成签名请求
      openssl req -new -sm3 -key ima.key -out ima.csr
      # 基于一级证书生成二级证书
      openssl x509 -req -sm3 -CAcreateserial -CA ca.crt -CAkey ca.key -extfile ima.cfg -in ima.csr -out ima.crt
      # 转换为DER格式
      openssl x509 -outform DER -in ima.crt -out x509_ima.der
      
      1. 将根证书放置到内核源码目录,并修改内核编译选项CONFIG_SYSTEM_TRUSTED_KEYS,将指定证书编译到内核TRUSTED密钥中:
      $ cp /path/to/ca.crt .
      $ make openeuler_defconfig
      $ cat .config | grep CONFIG_SYSTEM_TRUSTED_KEYS
      CONFIG_SYSTEM_TRUSTED_KEYS="ca.crt"
      
      1. 编译并安装内核:
      $ make -j64
      $ make modules_install
      $ make install
      

      如何使用

      场景1:原生IMA

      IMA度量模式

      启动参数配置IMA策略和摘要算法,关闭IMA评估模式,重启系统:

      ima_policy=tcb ima_hash=sm3 ima_appraise=off
      

      检查度量日志,可以发现IMA对于所有目标保护文件都进行了度量,且摘要算法为SM3:

      cat /sys/kernel/security/ima/ascii_runtime_measurements
      10 601989730f01fb4688bba92d0ec94340cd90757f ima-sig sm3:0000000000000000000000000000000000000000000000000000000000000000 boot_aggregate 
      10 dc0a98316b03ab15edd2b8daae75a0d64bca7c56 ima-sig sm3:3c62ee3c13ee32d7a287e04c843c03ebb428a5bb3dd83561efffe9b08444be22 /usr/lib/systemd/systemd 
      10 1d0a5140e3924e2542963ad887a80def0aa8acac ima-sig sm3:4d3b83e143bd9d5288ef099eff4d01444947516d680165c6dd08cd5900768032 /usr/lib64/ld-linux-x86-64.so.2
      ......
      
      IMA评估模式(hash)

      启动参数配置IMA策略和摘要算法,开启IMA评估fix模式,重启系统:

      ima_policy=appraise_tcb ima_hash=sm3 ima_appraise=fix
      

      appraise_tcb代表对所有 root 属主的文件进行评估。

      对所有需要评估的文件进行一次open操作,以自动标记ima扩展属性:

      find / -fstype ext4 -type f -uid 0 -exec dd if='{}' of=/dev/null count=0 status=none \;
      

      完成标记后,可以看到所有的文件都标记了SM3摘要算法的ima扩展属性:

      getfattr -m - -d -e hex /bin/bash
      getfattr: Removing leading '/' from absolute path names
      # file: bin/bash
      security.ima=0x0411a794922bb9f0a034257f6c7090a3e8429801a42d422c21f1473e83b7f7eac385
      security.selinux=0x73797374656d5f753a6f626a6563745f723a7368656c6c5f657865635f743a733000
      
      openssl dgst -sm3 /bin/bash
      SM3(/bin/bash)= a794922bb9f0a034257f6c7090a3e8429801a42d422c21f1473e83b7f7eac385
      

      开启enforce模式后重启,系统可正常运行:

      ima_policy=appraise_tcb ima_hash=sm3 ima_appraise=enforce
      
      IMA评估模式(签名)

      前置条件:

      1. 内核预置商密根证书;
      2. 安装ima-evm-utils软件包,且大于或等于指定版本:
      $ rpm -qa ima-evm-utils
      ima-evm-utils-1.3.2-4.oe2209.x86_64
      

      生成IMA二级证书:

      # 创建证书配置文件
      echo 'subjectKeyIdentifier=hash' > ima.cfg
      echo 'authorityKeyIdentifier=keyid,issuer' >> ima.cfg
      # 生成私钥
      openssl ecparam -genkey -name SM2 -out ima.key
      # 生成签名请求
      openssl req -new -sm3 -key ima.key -out ima.csr
      # 基于一级证书生成二级证书
      openssl x509 -req -sm3 -CAcreateserial -CA ca.crt -CAkey ca.key -extfile ima.cfg -in ima.csr -out ima.crt
      # 转换为DER格式
      openssl x509 -outform DER -in ima.crt -out x509_ima.der
      

      将IMA证书放置在/etc/keys目录下,执行dracut重新制作initrd:

      mkdir -p /etc/keys
      cp x509_ima.der /etc/keys
      echo 'install_items+=" /etc/keys/x509_ima.der "' >> /etc/dracut.conf
      dracut -f
      

      对需要进行保护的文件执行签名操作,例如此处对/usr/bin目录下所有root用户的可执行文件进行签名:

      find /usr/bin -fstype ext4 -type f -executable -uid 0 -exec evmctl -a sm3 ima_sign --key /path/to/ima.key '{}' \;
      

      开启enforce模式后重启,系统可正常运行:

      ima_policy=appraise_tcb ima_hash=sm3 ima_appraise=enforce
      

      检查签名模式的保护效果:

      # getfattr -m - -d /bin/echo
      getfattr: Removing leading '/' from absolute path names
      # file: bin/echo
      security.ima=0sAwIRNJFkBQBIMEYCIQDLBg/bYlrkBqSaXNQMyK7rhiZj+qRiKdu+0fqW8lSmPQIhAJY2qSZJ0HgSu7kygydrS4MCC0KTK59nUkvISenZAUCo
      security.selinux="system_u:object_r:bin_t:s0"
      
      # echo 123 >> /bin/echo
      -bash: /bin/echo: Permission denied
      

      注意事项:

      对于每一个在IMA防护范围内的文件,都需要选择使用hash模式和签名模式其中之一的方法标记完整性信息。一般情况下,对于可能发生变化的文件(例如数据文件、配置文件等)采用hash模式标记,对于不会发生变化的文件(例如可执行文件、动态链接库等)采用签名模式标记。

      场景2:IMA摘要列表模式

      生成SM3摘要列表

      gen_digest_lists支持-a sm3参数,支持生成SM3摘要列表:

      gen_digest_lists -a sm3 -t metadata -f compact -i l:policy -o add -p -1 -m immutable -i I:/usr/bin/bash -d <output_dir> -i i:
      gen_digest_lists -a sm3 -t metadata -f compact -i l:policy -o add -p -1 -m immutable -i I:/usr/bin/bash -d <output_dir> -i i: -T
      
      配置SM3摘要算法

      整体步骤与开启IMA摘要列表特性相同,唯一区别在于将ima_hash启动参数配置为SM3。启动参数参考配置如下:

      # log模式
      ima_template=ima-sig ima_policy="exec_tcb|appraise_exec_tcb|appraise_exec_immutable" initramtmpfs ima_hash=sm3 ima_appraise=log evm=allow_metadata_writes evm=x509 ima_digest_list_pcr=11 ima_appraise_digest_list=digest
      # enforce模式
      ima_template=ima-sig ima_policy="exec_tcb|appraise_exec_tcb|appraise_exec_immutable" initramtmpfs ima_hash=sm3 ima_appraise=enforce-evm evm=allow_metadata_writes evm=x509 ima_digest_list_pcr=11 ima_appraise_digest_list=digest
      

      其余步骤可参考 管理员指南->可信计算->摘要列表场景初次部署 章节。

      配置完成后重启系统,通过查询度量日志可以看到,度量日志中的默认算法已变成SM3:

      cat /sys/kernel/security/ima/ascii_runtime_measurements
      ......
      11 9e32183b5b1da72c6ff4298a44026e3f9af510c9 ima-sig sm3:5a2d81cd135f41e73e0224b9a81c3d8608ccde8caeafd5113de959ceb7c84948 /usr/bin/upload_digest_lists 
      11 f3b9264761dbaeaf637d08b86cc3655e8f3380f7 ima-sig sm3:cc6faecee9976c12279dab1627a78ef36f6998c65779f3b846494ac5fe5493a1 /usr/libexec/rpm_parser 
      11 dc0a98316b03ab15edd2b8daae75a0d64bca7c56 ima-sig sm3:3c62ee3c13ee32d7a287e04c843c03ebb428a5bb3dd83561efffe9b08444be22 /usr/lib/systemd/systemd 
      ......
      
      配置SM2证书校验摘要列表

      前置条件:

      1. 内核预置商密根证书;
      2. 安装digest-list-tools和ima-evm-utils软件包,且大于或等于指定版本:
      $ rpm -qa ima-evm-utils
      ima-evm-utils-1.3.2-4.oe2209.x86_64
      $ rpm -qa digest-list-tools
      digest-list-tools-0.3.95-10.oe2209.x86_64
      

      执行步骤

      1. 生成IMA/EVM二级证书(需要为内核预置的商密根证书的子证书):
      # 创建证书配置文件
      echo 'subjectKeyIdentifier=hash' > ima.cfg
      echo 'authorityKeyIdentifier=keyid,issuer' >> ima.cfg
      # 生成私钥
      openssl ecparam -genkey -name SM2 -out ima.key
      # 生成签名请求
      openssl req -new -sm3 -key ima.key -out ima.csr
      # 基于一级证书生成二级证书
      openssl x509 -req -sm3 -CAcreateserial -CA ca.crt -CAkey ca.key -extfile ima.cfg -in ima.csr -out ima.crt
      # 转换为DER格式
      openssl x509 -outform DER -in ima.crt -out x509_ima.der
      openssl x509 -outform DER -in ima.crt -out x509_evm.der
      
      1. 将IMA/EVM证书放置在/etc/keys目录下,执行dracut重新制作initrd:
      mkdir -p /etc/keys
      cp x509_ima.der /etc/keys
      cp x509_evm.der /etc/keys
      echo 'install_items+=" /etc/keys/x509_ima.der /etc/keys/x509_evm.der "' >> /etc/dracut.conf
      dracut -f -e xattr
      
      1. 配置启动参数,开启IMA摘要列表功能,重启后可以检查证书被导入IMA/EVM密钥环:
      cat /proc/keys
      ......
      024dee5e I------     1 perm 1f0f0000     0     0 keyring   .evm: 1
      ......
      3980807f I------     1 perm 1f0f0000     0     0 keyring   .ima: 1
      ......
      
      1. 将IMA摘要列表使用IMA/EVM证书对应的私钥进行签名,签名后可被正常导入内核:
      # 使用evmctl对摘要列表进行签名
      evmctl ima_sign  --key /path/to/ima.key -a sm3 0-metadata_list-compact-tree-1.8.0-2.oe2209.x86_64
      # 检查签名后的扩展属性
      getfattr -m - -d 0-metadata_list-compact-tree-1.8.0-2.oe2209.x86_64 
      # file: 0-metadata_list-compact-tree-1.8.0-2.oe2209.x86_64
      security.ima=0sAwIRNJFkBQBHMEUCIQCzdKVWdxw1hoVm9lgZB6sl+sxapptUFNjqHt5XZD87hgIgBMuZqBdrcNm7fXq/reQw7rzY/RN/UXPrIOxrVvpTouw=
      security.selinux="unconfined_u:object_r:admin_home_t:s0"
      # 将签名后的摘要列表文件导入内核
      echo /root/tree/etc/ima/digest_lists/0-metadata_list-compact-tree-1.8.0-2.oe2209.x86_64 > /sys/kernel/security/ima/digest_list_data
      # 检查度量日志,可以看到摘要列表的导入记录
      cat /sys/kernel/security/ima/ascii_runtime_measurements
      11 43b6981f84ba2725d05e91f19577cedb004adffb ima-sig sm3:b9430bbde2b7f30e935d91e29ab6778b6a825a2c3e5e7255895effb8747b7c1a /root/tree/etc/ima/digest_lists/0-metadata_list-compact-tree-1.8.0-2.oe2209.x86_64 0302113491640500473045022100b374a556771c35868566f6581907ab25facc5aa69b5414d8ea1ede57643f3b86022004cb99a8176b70d9bb7d7abfade430eebcd8fd137f5173eb20ec6b56fa53a2ec
      

      注意:

      1. openEuler默认提供的摘要列表中使用的哈希算法为SHA256。当IMA摘要列表度量算法配置为SM3算法时,必须将/etc/ima/digest_lists目录下的摘要列表移除,然后重新生成并签名,否则会导致文件完整性校验错误。参考步骤如下:
      # 重置磁盘SELinux标签(开启IMA扩展属性校验,并开启SELinux时执行)
      fixfiles -F restore
      # 为所有文件生成摘要列表(也可自行设置生成范围)
      gen_digest_lists -a sm3 -t metadata -f compact -i l:policy -o add -p -1 -m immutable -i I:/ -d /etc/ima/digest_lists -i i:
      # 修改生成的摘要列表文件名(可选)
      mv /etc/ima/digest_lists/0-metadata_list-compact- /etc/ima/digest_lists/0-metadata_list-compact-everything-sm3
      # 签名
      evmctl ima_sign --key /path/to/ima.key -a sm3 /etc/ima/digest_lists/0-metadata_list-compact-everything-sm3
      # 重新制作initrd
      dracut -f -e xattr
      
      1. 对于openEuler发布的软件包,会默认提供IMA摘要列表文件。由于默认提供的摘要算法为sha256,因此当摘要算法切换为SM3时,会导致openEuler发布的摘要列表无法被导入,在软件包安装过程中可能出现提示信息:
      Cannon parse /etc/ima/digest_lists/0-metadata_list-rpm-......
      

      轻量入侵检测(AIDE)

      AIDE是一款轻量级的入侵检测工具,主要通过检测文件的完整性,以及时发现针对系统的恶意入侵行为。AIDE数据库能够使用sha256、sha512等哈希算法,用密文形式建立每个文件的校验码或散列号。openEuler提供的AIDE在开源软件的基础上新增了对SM3算法的支持。

      前置条件

      AIDE大于或等于0.17.4-1版本:

      $ rpm -qa aide
      aide-0.17.4-1.oe2209.x86_64
      

      如何使用

      修改/etc/aide.conf配置文件,添加SM3算法支持:

      ......
      FIPSR = p+i+n+u+g+s+m+c+acl+selinux+xattrs+sha256+sm3
      ......
      DATAONLY =  p+n+u+g+s+acl+selinux+xattrs+sha256+sm3
      ......
      
      1. 初始化数据库,并保存数据库作为基准。

      初始化数据库:

      $ aide -c /etc/aide.conf -i
      

      示例输出如下:

      AIDE initialized database at /var/lib/aide/aide.db.new.gz
      
      Number of entries:      64249
      
      ---------------------------------------------------
      The attributes of the (uncompressed) database(s):
      ---------------------------------------------------
      
      /var/lib/aide/aide.db.new.gz
       MD5       : a7y5ErdpBAezV2iGdaVleg==
       SHA1      : u7W7jxomFtZn8rwMlkIRCN0r7iQ=
       SHA256    : 88Kw5b2yJ9bejwO+NqT6lyAieno+K0+W
                   BPVBjXcUl08=
       SHA512    : WyOIgRxk9SeSoktF6BYVV0tRL7nGNDKQ
                   A9QyxVCgzg+PwPMV7tzxmwOZI/dB64pP
                   vQ/D2jqJdf3NS2PHMI4yvg==
       RMD160    : qTEPs2SIxPm3iEwsCnwvp9hR4s4=
       TIGER     : 0HgLucmhCcB56bxOMj+j1Kuja8UIsFRg
       CRC32     : VKE1TA==
       WHIRLPOOL : JSA35/NmkMOkUWEpcZJf3PR1UUz5WcLG
                   AmBKPkao3fzQUsLMTJizCV4CwAE0G/Yc
                   KX0mpW5vx+gk3njya8rAvA==
       GOST      : yKjiytOwRr3bJcFsxnJ310t1FY6YE3HB
                   YNT8XP93xpc=
       STRIBOG256: 9bzS+5j4ZAoU/P7v3tkKOWn4ZfggcX28
                   9dLQVhaiJtQ=
       STRIBOG512: 9LLXgqsRIRiXP2WOrOJt1qhx6psfbACd
                   un+GTVmu441quX4zaaPIIG9lzDMBAqMg
                   hZx5DlxsQj3YjMezSUsXLg==
       SM3       : Vwii+uw3Ge5Hh3eo1KOombxn2jWgyYRX
                   ZdyCRZqWZ/E=
      
      
      End timestamp: 2022-08-12 09:01:25 +0800 (run time: 2m 43s)
      

      保存数据库作为基准:

      $ mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
      

      场景1:检测被保护文件变化

      $ aide -c /etc/aide.conf --check
      ---------------------------------------------------
      Detailed information about changes:
      ---------------------------------------------------
      
      File: /boot/config-5.10.0-106.3.0.57.oe2209.aarch64
       Size      : 182936                           | 182938
       Mtime     : 2022-08-04 08:00:00 +0800        | 2022-08-12 09:05:34 +0800
       Ctime     : 2022-08-11 01:42:44 +0800        | 2022-08-12 09:05:34 +0800
       SHA256    : ae0fOzf7U+e/evTZKpk6JQa00kvSkc5J | gOlhcUgnZWhcyJYMEPxCYccXwFr9lERX
                   vMTX5Ysh+1k=                     | KK3O/ytfR/g=
       SHA512    : zAPIxIAM7YvJPjwl/PH23leBb/HiO0Rf | p+WxVOZ6DX323rHDRF864w297yh7POk6
                   PlRME7yvpzFZk/5BrNe2ofQWR/0sFu1m | 11dOzahlKTWpAKaexC/u+4REiCzjl1rm
                   JsDSy8m57wzCpJA9iUFq1g==         | eb/kd3Xgp1LoKwn49mtqxw==
       SM3       : CW0GnITxNeGeYOCAm4xfu78Vqm+wLp/Z | GWq/3nXL16tMYyxyFD/HTZbvJi2h+ttg
                   cOmXmIKJT4Q=                     | 6d8XmSHu26A=
      

      场景2:更新数据库

      执行以下命令进行数据库更新,更新后数据库文件为 /var/lib/aide/aide.db.new.gz:

      $ aide -c /etc/aide.conf --update
      ---------------------------------------------------
      Detailed information about changes:
      ---------------------------------------------------
      
      File: /boot/config-5.10.0-106.3.0.57.oe2209.aarch64
       Size      : 182936                           | 182938
       Mtime     : 2022-08-04 08:00:00 +0800        | 2022-08-12 09:05:34 +0800
       Ctime     : 2022-08-11 01:42:44 +0800        | 2022-08-12 09:05:34 +0800
       SHA256    : ae0fOzf7U+e/evTZKpk6JQa00kvSkc5J | gOlhcUgnZWhcyJYMEPxCYccXwFr9lERX
                   vMTX5Ysh+1k=                     | KK3O/ytfR/g=
       SHA512    : zAPIxIAM7YvJPjwl/PH23leBb/HiO0Rf | p+WxVOZ6DX323rHDRF864w297yh7POk6
                   PlRME7yvpzFZk/5BrNe2ofQWR/0sFu1m | 11dOzahlKTWpAKaexC/u+4REiCzjl1rm
                   JsDSy8m57wzCpJA9iUFq1g==         | eb/kd3Xgp1LoKwn49mtqxw==
       SM3       : CW0GnITxNeGeYOCAm4xfu78Vqm+wLp/Z | GWq/3nXL16tMYyxyFD/HTZbvJi2h+ttg
                   cOmXmIKJT4Q=                     | 6d8XmSHu26A=
      

      场景3:比较数据库

      在/etc/aide.conf中配置两个数据库:

      # The location of the database to be read.
      database_in=file:@@{DBDIR}/aide.db.gz
      database_new=file:@@{DBDIR}/aide.db.new.gz
      

      执行以下命令进行数据库比较:

      $ aide -c /etc/aide.conf --compare
      ---------------------------------------------------
      Detailed information about changes:
      ---------------------------------------------------
      
      File: /boot/config-5.10.0-106.3.0.57.oe2209.aarch64
       Size      : 182936                           | 182938
       Mtime     : 2022-08-04 08:00:00 +0800        | 2022-08-12 09:05:34 +0800
       Ctime     : 2022-08-11 01:42:44 +0800        | 2022-08-12 09:05:34 +0800
       SHA256    : ae0fOzf7U+e/evTZKpk6JQa00kvSkc5J | gOlhcUgnZWhcyJYMEPxCYccXwFr9lERX
                   vMTX5Ysh+1k=                     | KK3O/ytfR/g=
       SHA512    : zAPIxIAM7YvJPjwl/PH23leBb/HiO0Rf | p+WxVOZ6DX323rHDRF864w297yh7POk6
                   PlRME7yvpzFZk/5BrNe2ofQWR/0sFu1m | 11dOzahlKTWpAKaexC/u+4REiCzjl1rm
                   JsDSy8m57wzCpJA9iUFq1g==         | eb/kd3Xgp1LoKwn49mtqxw==
       SM3       : CW0GnITxNeGeYOCAm4xfu78Vqm+wLp/Z | GWq/3nXL16tMYyxyFD/HTZbvJi2h+ttg
                   cOmXmIKJT4Q=                     | 6d8XmSHu26A=
      
      ---------------------------------------------------
      The attributes of the (uncompressed) database(s):
      ---------------------------------------------------
      
      /var/lib/aide/aide.db.gz
       MD5       : a7y5ErdpBAezV2iGdaVleg==
       SHA1      : u7W7jxomFtZn8rwMlkIRCN0r7iQ=
       SHA256    : 88Kw5b2yJ9bejwO+NqT6lyAieno+K0+W
                   BPVBjXcUl08=
       SHA512    : WyOIgRxk9SeSoktF6BYVV0tRL7nGNDKQ
                   A9QyxVCgzg+PwPMV7tzxmwOZI/dB64pP
                   vQ/D2jqJdf3NS2PHMI4yvg==
       RMD160    : qTEPs2SIxPm3iEwsCnwvp9hR4s4=
       TIGER     : 0HgLucmhCcB56bxOMj+j1Kuja8UIsFRg
       CRC32     : VKE1TA==
       WHIRLPOOL : JSA35/NmkMOkUWEpcZJf3PR1UUz5WcLG
                   AmBKPkao3fzQUsLMTJizCV4CwAE0G/Yc
                   KX0mpW5vx+gk3njya8rAvA==
       GOST      : yKjiytOwRr3bJcFsxnJ310t1FY6YE3HB
                   YNT8XP93xpc=
       STRIBOG256: 9bzS+5j4ZAoU/P7v3tkKOWn4ZfggcX28
                   9dLQVhaiJtQ=
       STRIBOG512: 9LLXgqsRIRiXP2WOrOJt1qhx6psfbACd
                   un+GTVmu441quX4zaaPIIG9lzDMBAqMg
                   hZx5DlxsQj3YjMezSUsXLg==
       SM3       : Vwii+uw3Ge5Hh3eo1KOombxn2jWgyYRX
                   ZdyCRZqWZ/E=
      
      /var/lib/aide/aide.db.new.gz
       MD5       : sKt4dVDKY/8A9EY/X4Ue2A==
       SHA1      : hagLXMv7G+KbEKh861kjjFSYpRw=
       SHA256    : HTHF7k5U294ECjCLneoZ3o8bH6PYgY5u
                   AzoIyCacZp4=
       SHA512    : 5gWi7K/ztWMl7H+PK1doV/tWDHmaE2m/
                   ndRXGR7b5J3v82Jv2HeJPoOt5A4Z/9FH
                   5H+uCLYaHwRleyalyy5Wew==
       RMD160    : uMM1HtAbfz+G3Y9Z+rVR4qjdqcQ=
       TIGER     : OTHdXNQOxnHnOl6C9M3czSC42+SeZAZA
       CRC32     : T9G1Tw==
       WHIRLPOOL : FRMnQ2wHgylsTmpKE8RwdUvkzXucHwu1
                   W9ZkUrxoXeci2g7jIgoMmpoeDPhH73qz
                   nZ7fKj1lStSpiUGD5KPeWA==
       GOST      : haeO5dhT+t34C1GJf+2dc3q1GMN71FqB
                   kqoiODo+j2o=
       STRIBOG256: lgZUZhhd9JfMOXgNzYptapqagwgmvdM+
                   7uWzJsmOxoY=
       STRIBOG512: PA6jksprS37xQzHm1ZIvLR9ROa+FxoiF
                   /xbAe0pSi4lMXXzABrPKkjyK0WtjxFvx
                   07Poj2iDwNNcUJWekbaEXA==
       SM3       : R5/HXng5MNvrjoCh8/JzrWle1IO8ggsR
                   P5i2ePX5BpY=
      

      文档捉虫

      “有虫”文档片段

      问题描述

      提交类型 issue

      有点复杂...

      找人问问吧。

      PR

      小问题,全程线上修改...

      一键搞定!

      问题类型
      规范和低错类

      ● 错别字或拼写错误;标点符号使用错误;

      ● 链接错误、空单元格、格式错误;

      ● 英文中包含中文字符;

      ● 界面和描述不一致,但不影响操作;

      ● 表述不通顺,但不影响理解;

      ● 版本号不匹配:如软件包名称、界面版本号;

      易用性

      ● 关键步骤错误或缺失,无法指导用户完成任务;

      ● 缺少必要的前提条件、注意事项等;

      ● 图形、表格、文字等晦涩难懂;

      ● 逻辑不清晰,该分类、分项、分步骤的没有给出;

      正确性

      ● 技术原理、功能、规格等描述和软件不一致,存在错误;

      ● 原理图、架构图等存在错误;

      ● 命令、命令参数等错误;

      ● 代码片段错误;

      ● 命令无法完成对应功能;

      ● 界面错误,无法指导操作;

      风险提示

      ● 对重要数据或系统存在风险的操作,缺少安全提示;

      内容合规

      ● 违反法律法规,涉及政治、领土主权等敏感词;

      ● 内容侵权;

      您对文档的总体满意度

      非常不满意
      非常满意
      提交
      根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。
      文档捉虫
      编组 3备份