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 中的永久策略,以永久保存新添加的规则。