8.5. 安全性
扫描和补救可以正确地忽略 SCAP 审计规则审计密钥
在以前的版本中,在没有审计密钥(-k 或 -F 密钥)的情况下定义的审计监控规则可能会遇到以下问题:
- 即使规则的其他部分都正确,该规则也被标记为不合规。
- Bash 补救修复了监视规则的路径和权限,但它没有正确地添加审计密钥。
-
补救有时不能修复缺少的密钥,返回一个
error,而不是固定的值。
这会影响以下规则:
-
audit_rules_login_events -
audit_rules_login_events_faillock -
audit_rules_login_events_lastlog -
audit_rules_login_events_tallylog -
audit_rules_usergroup_modification -
audit_rules_usergroup_modification_group -
audit_rules_usergroup_modification_gshadow -
audit_rules_usergroup_modification_opasswd -
audit_rules_usergroup_modification_passwd -
audit_rules_usergroup_modification_shadow -
audit_rules_time_watch_localtime -
audit_rules_mac_modification -
audit_rules_networkconfig_modification -
audit_rules_sysadmin_actions -
audit_rules_session_events -
audit_rules_sudoers -
audit_rules_sudoers_d
有了这个更新,审计密钥已从检查和 Bash 以及 Ansible 补救中删除。因此,在检查和补救过程中由 key 字段导致的不一致问题不再发生,审核员可以任意选择这些密钥,以便更轻松地搜索审计日志。
crypto-policies 不再创建不必要的符号链接
在系统安装过程中,crypto-policies scriptlet 在 FIPS 模式下从 /usr/share/crypto-policies/DEFAULT 文件或 /usr/share/crypto-policies/FIPS 创建符号链接,并将它们保存在 /etc/crypto-policies/back-ends 目录中。在以前的版本中,crypto-policies 错误地包含目录,并创建了一个指向 /usr/share/crypto-policies/DEFAULT 或 /usr/share/crypto-policies/FIPS 目录的 /etc/crypto-policies/back-ends/.config 符号链接。有了这个更新,crypto-policies 不会从目录创建符号链接,因此不会创建这个不必要的符号链接。
crypto-policies 现在为 BIND 禁用 NSEC3DSA
在以前的版本中,系统范围的加密策略不会控制 BIND 配置中的 NSEC3DSA 算法。因此,在 DNS 服务器上没有禁用不满足当前安全要求的 NSEC3DSA。有了这个更新,所有加密策略默认在 BIND 配置中禁用 NSEC3DSA。
Libreswan 不再拒绝 FUTURE 和 FIPS 加密策略中的 SHA-1 签名验证
在以前的版本中,从更新到 4.9 ,LibTURE 拒绝 FUTURE 和 FIPS 加密策略中的 SHA-1 签名验证,当使用 authby=rsasig 或 authby=rsa-sha1 连接选项时,对等身份验证会失败。此更新通过放宽 Libreswan 如何处理 crypto-policies 设置来恢复此行为。因此,您现在可以使用 authby=rsasig 和使用 SHA-1 签名验证的 authby=rsa-sha1 连接选项。
crontab bash 脚本不再在不正确的上下文中执行
在以前的版本中,RHBA-2022:7691 勘误中发布了一个使用了过于通用的转换规则的 bug 修复。因此,从 crontab 文件执行的 bash 脚本在 rpm_script_t 上下文而不是 system_cronjob_t 上下文中执行。有了这个更新,bash 脚本现在在正确的上下文中执行。
selinux-policy 支持在 SAP 主机代理中执行服务
在以前的版本中,SELinux 策略不支持与 SAP 主机代理和其他服务交互的 insights-client 服务。因此,从 Red Hat Insights 开始,一些命令无法正常工作。有了这个更新,SELinux 策略支持 SAP 服务执行。因此,从 Insights 开始, SAP 服务可以成功运行。
selinux-policy 现在允许 pmcd 执行其私有 memfd: 对象
在以前的版本中,SELinux 策略不允许 Performance Co-Pilot (PCP)框架中的 pmcd 进程执行其私有内存文件系统对象(memfd:)。因此,SELinux 拒绝 Performance Metric Domain Agent (PMDA) BPF Compiler Collection (BCC)服务来执行 memfd: 对象。有了这个更新,SELinux 策略包含 pcmd 的新规则。因此,pmcd 现在可以在 SELinux 为 enforcing 的模式下执行 memfd: 对象。
SELinux 策略允许 sysadm_r 使用 subscription-manager
在以前的版本中,sysadm_r SELinux 角色中的用户无法执行 subscription-manager 工具的一些子命令。因此,子命令无法读内存设备。此更新在 SELinux 策略中添加了一个新规则,允许 sysadm_t 类型 读 /dev/mem。因此,subscription-manager 子命令不会失败。
samba-dcerpcd 进程现在可以与 nscd 一起正常工作
在以前的版本中,由于 SELinux 策略,samba-dcerpcd 进程无法与 nscd 进程进行通信。因此,当启用 nscd 服务时,samba-dcerpcd 服务无法正常工作。有了这个更新,SELinux 策略已使用 samba-dcerpcd 的新规则进行了更新。
vlock 现在可以为受限用户正常工作
在以前的版本中,受限制的用户因为 SELinux 策略而无法使用 vlock。因此,vlock 命令无法为受限用户正常工作。有了这个更新,SELinux 策略已使用新规则为受限用户进行了更新。
现在,受限用户可以在没有报告拒绝的情况下登录
在以前的版本中,SELinux 策略不允许使用 GUI 的 SELinux 受限用户登录所需的所有权限。因此,会审核 AVC 拒绝,dbus 或 pulseaudio 等服务无法正常工作。有了这个更新,SELinux 策略已使用新规则为受限用户进行了更新。
insights-client 现在在 SELinux 策略中有额外的权限
更新的 insights-client 服务需要额外的权限,这不包括在 selinux-policy 软件包的之前的版本中。因此,insights-client 的某些组件无法在 SELinux 的 enforcing 模式下正常工作,系统会报告 access vector cache (AVC)错误消息。此更新向 SELinux 策略中添加了缺失的权限。因此,insights-client 现在可以正常工作,而不报告 AVC 错误。
SELinux 策略允许 smb 访问用户共享
在以前的版本中,samba-dcerpcd 进程与 smb 服务分开,但无法访问用户共享。因此,smb 客户端无法访问用户 smb 共享上的文件。此更新在启用了 samba_enable_home_dirs 布尔值时,会为 samba-dcerpcd 二进制文件管理用户主目录的 SELinux 策略中添加规则。因此,当 samba_enable_home_dirs 为 on 时,samba-dcerpcd 可以访问用户共享。
SELinux 策略现在允许受限管理员在 IPMItool 运行时访问 ipmi 设备
在以前的版本中,SELinux 策略不允许受限管理员在 IPMItool 工具运行时读和写 ipmi 设备。因此,当受限管理员运行 ipmitool 时,它会失败。此更新为分配给 sysadm_r SELinux 角色的管理员向 selinux-policy 添加了允许规则。因此,如果受限管理员运行 ipmitool,它可以正常工作。
SCAP 安全指南规则 file_permissions_sshd_private_key 与 STIG 配置 RHEL-08-010490 一致
在以前的版本中,规则 file_permissions_sshd_private_key 的实现允许私有 SSH 密钥对模式为 0644 的 ssh_keys 组可读,而 DISA STIG 版本 RHEL-08-010490 需要私有 SSH 密钥具有模式 0600。因此,对于配置 RHEL-08-010490,使用 DISA 的自动化 STIG 基准的评估会失败。
对于此次更新,我们与 DISA 合作为私有 SSH 密钥保持预期的权限,现在私钥应该具有模式 0644 或更低。因此,规则 file_permissions_sshd_private_key 和配置 RHEL-08-010490 现在一致。
sudo_require_reauthentication SCAP 安全指南规则接受 sudoers中正确的空格
在以前的版本中,检查 xccdf_org.ssgproject.content_rule_sudo_require_reauthentication 规则中的一个 bug 导致它在 timestamp_timeout 密钥和其在/etc/sudoers 文件和 /etc/sudoers.d 目录中的值之间需要特定的空格 。因此,有效且合规的语法会导致规则失败。有了此更新,对 xccdf_org.ssgproject.content_rule_sudo_require_reauthentication 的检查已更新,以接受等号两边的白空格。因此,该规则接受具有以下空格格式的 timestamp_timeout 的正确的和合规的定义:
-
defaults timestamp_timeout = 5 -
defaults timestamp_timeout= 5 -
defaults timestamp_timeout =5 -
defaults timestamp_timeout=5
在 RHEL 的新版本中,旧的 Kerberos 规则被更改为notapplicable
在以前的版本中,当在 FIPS 模式下扫描 RHEL 8.8 及更新系统上的 DISA STIG 配置文件时,一些与 Kerberos 相关的规则会失败,即使系统应已合规。这是由以下规则造成的:
-
xccdf_org.ssgproject.content_rule_package_krb5-server_removed -
xccdf_org.ssgproject.content_rule_package_krb5-workstation_removed -
xccdf_org.ssgproject.content_rule_kerberos_disable_no_keytab
此更新使这些规则不适用于 RHEL 版本 8.8 及更新的版本。因此,扫描对这些规则正确返回 notapplicable 结果。
scap-security-guide STIG 配置文件不再需要 /etc/audit/rules.d/11-loginuid中的特定文本
在以前的版本中,只有文件 /etc/audit/rules.d/11-loginuid.rules 包含准确的文本时,才会在 RHEL 8 配置文件 stig 和 stig_gui 中使用 SCAP 规则 audit_immutable_login_uids。但是,这并不需要满足 STIG 要求(RHEL-08-030122)。有了此更新,新规则 audit_rules_immutable_login_uids 替换了 RHEL 8 stig 和 stig_gui 配置文件中的 audit_immutable_login_uids。现在,您可以根据使用 auditctl 或 augen-rules 的用法,指定满足 /etc/audit/rules.d 目录中具有 .rules 扩展名的任何文件中或 /etc/audit/audit.rules 文件中规则的 --loginuid-immutable 参数。
scap-security-guide 中 CIS 配置文件的规则更加一致
在以前的版本中,一些规则被错误地分配给某些互联网安全中心(CIS)配置文件(cis,cis_server_l1,cis_workstation_1 和 cis_workstation_l2)。因此,根据某些 CIS 配置文件进行扫描可能会跳过 CIS 基准中的规则,或检查不必要的规则。
以下规则被分配给不正确的配置文件:
-
规则
kernel_module_udf_disabled、sudo_require_authentication和kernel_module_squashfs_disabled被错误地放置在 CIS Server Level 1 和 CIS Workstation Level 1 中。 -
规则
package_libselinux_installed,grub2_enable_selinux,selinux_policytype,selinux_confinement_of_daemons,rsyslog_nolisten,service_systemd-journald_enabled在 CIS Server Level 1 和 CIS Workstation Level 1 配置文件中缺失。 -
CIS Server Level 1 配置文件中缺少了
package_setroubleshoot_removed和package_mcstrans_removed。
此更新为正确的 CIS 配置文件分配了未对齐规则,但不会引入新规则,或者完全删除任何规则。因此,SCAP CIS 配置文件与原始的 CIS 基准更加一致。
Clevis 忽略 crypttab中注释的设备
在以前的版本中,Clevis 尝试解锁 crypttab 文件中注释的设备,从而导致即使设备无效,clevis-luks-askpass 服务也会运行。这会导致不必要的服务运行,并很难进行故障排除。
有了这个修复,Clevis 会忽略注释的设备。现在,如果无效的设备被注释了,Clevis 不会尝试解锁它,clevis-luks-askpass.service 会正确完成。这样可以更轻松地排除故障并减少不必要的服务运行。
Clevis 不再从 pwmake请求太多的熵
在以前的版本中,当 Clevis 使用 pwmake 创建密码,以在 LUKS 元数据中存储数据时,pwmake 密码生成工具会显示不需要的警告,这会导致 Clevis 使用较低的熵。有了这个更新,Clevis 仅限于为 pwmake 提供的 256 熵位,这消除了不需要的警告,并使用正确的熵数。
logrotate 不再错误地在日志轮转中发送 Rsyslog 信号
在以前的版本中,logrotate 脚本中参数顺序被错误地设置,这会导致语法错误。这会导致 logrotate 在日志轮转过程中无法正确发送 Rsyslog 信号。
有了这个更新,logrotate 中的参数顺序被修复,即使设置了 POSIXLY_CORRECT 环境变量,在日志轮转后 logrotate 可以正确地发送 Rsyslog 信号。
Rsyslog 不再因为 imklog中的一个 bug 而崩溃
在以前的版本中,如果启用了 imklog 模块,使用无效对象的 free () 在使用期间被释放,则 Rsyslog 可能会遇到分段错误。有了这个更新,释放的对象在正确的位置被正确地取消分配。因此,不再发生分段错误。
USBGuard 不再造成混淆的警告
在以前的版本中,当父进程比第一个子进程早完成时,USBGuard 中可能会发生竞争条件。因此,systemd 会报告存在一个具有错误标识的父 PID (PPID)的进程。有了这个更新,父进程会在工作模式下等待第一个子进程完成。因此,systemd 不再报告这样的警告。
usbguard 服务文件不定义 OOMScore
在以前的版本中,usbguard 服务文件不定义 OOMScoreAdjust 选项。因此,当系统资源接近耗尽时,进程可以被识别为在非特权进程之前终止的候选进程。有了这个更新,usbguard.service 文件中引入了新的 OOMScoreAdjust 设置,以禁用 usbguard 单元的 OOM 终止进程。
即使未定义 RuleFile ,USBGuard 也会保存规则
在以前的版本中,如果设置了 USBGuard 中的 RuleFile 配置指令,但没有设置 RuleFolder,则规则集将无法更改。有了这个更新,即使设置了 RulePRESS,但没有设置 RuleFile,您也可以更改规则集。因此,您可以修改 USBGuard 中的永久策略,以永久保存新添加的规则。