Red Hat Training

A Red Hat training course is available for RHEL 8

12.11. 设置审计来监控软件更新

在 RHEL 8.6 及更高版本中,您可以使用预配置的规则 44-installers.rules 配置审计,来监控安装软件的以下工具:

  • dnf [4]
  • yum
  • pip
  • npm
  • cpan
  • gem
  • luarocks

默认情况下,rpm 在安装或更新软件包时就已提供审计 SOFTWARE_UPDATE 事件。您可以通过在命令行上输入 ausearch -m SOFTWARE_UPDATE 来列出它们。

在 RHEL 8.5 和更早版本中,您可以手动添加规则来监控工具,这些工具将软件安装到 /etc/audit/rules.d/ 目录中的 .rules 文件中。

注意

预配置的规则文件不能用于 ppc64leaarch64 架构的系统。

先决条件

流程

  1. 在 RHEL 8.6 及更高版本中,将 /usr/share/audit/sample-rules/ 目录中的预配置的规则文件 44-installers.rules 复制到 /etc/audit/rules.d/ 目录中:

    # cp /usr/share/audit/sample-rules/44-installers.rules /etc/audit/rules.d/

    在 RHEL 8.5 及更早版本中,在 /etc/audit/rules.d/ 目录中创建一个名为 44-installers.rules 的新文件,并插入以下规则:

    -a always,exit -F perm=x -F path=/usr/bin/dnf-3 -F key=software-installer
    -a always,exit -F perm=x -F path=/usr/bin/yum -F

    您可以使用相同的语法为安装软件的其他工具,如 pipnpm 添加额外的规则。

  2. 加载审计规则:

    # augenrules --load

验证

  1. 列出载入的规则:

    # auditctl -l
    -p x-w /usr/bin/dnf-3 -k software-installer
    -p x-w /usr/bin/yum -k software-installer
    -p x-w /usr/bin/pip -k software-installer
    -p x-w /usr/bin/npm -k software-installer
    -p x-w /usr/bin/cpan -k software-installer
    -p x-w /usr/bin/gem -k software-installer
    -p x-w /usr/bin/luarocks -k software-installer
  2. 执行安装,例如:

    # yum reinstall -y vim-enhanced
  3. 在审计日志中搜索最近的安装事件,例如:

    # ausearch -ts recent -k software-installer
    ––––
    time->Thu Dec 16 10:33:46 2021
    type=PROCTITLE msg=audit(1639668826.074:298): proctitle=2F7573722F6C6962657865632F706C6174666F726D2D707974686F6E002F7573722F62696E2F646E66007265696E7374616C6C002D790076696D2D656E68616E636564
    type=PATH msg=audit(1639668826.074:298): item=2 name="/lib64/ld-linux-x86-64.so.2" inode=10092 dev=fd:01 mode=0100755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:ld_so_t:s0 nametype=NORMAL cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0
    type=PATH msg=audit(1639668826.074:298): item=1 name="/usr/libexec/platform-python" inode=4618433 dev=fd:01 mode=0100755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:bin_t:s0 nametype=NORMAL cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0
    type=PATH msg=audit(1639668826.074:298): item=0 name="/usr/bin/dnf" inode=6886099 dev=fd:01 mode=0100755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:rpm_exec_t:s0 nametype=NORMAL cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0
    type=CWD msg=audit(1639668826.074:298): cwd="/root"
    type=EXECVE msg=audit(1639668826.074:298): argc=5 a0="/usr/libexec/platform-python" a1="/usr/bin/dnf" a2="reinstall" a3="-y" a4="vim-enhanced"
    type=SYSCALL msg=audit(1639668826.074:298): arch=c000003e syscall=59 success=yes exit=0 a0=55c437f22b20 a1=55c437f2c9d0 a2=55c437f2aeb0 a3=8 items=3 ppid=5256 pid=5375 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=3 comm="dnf" exe="/usr/libexec/platform-python3.6" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="software-installer"


[4] 由于dnf 在 RHEL 中是符号链接,因此 dnf 审计规则中的路径必须包含符号链接的目标。要接收正确的审计事件,请通过将 path=/usr/bin/dnf 路径改为 /usr/bin/dnf-3 来修改 44-installers.rules 文件。