8.2. Security
NFS ファイルシステムからのブートは、enforcing モードに設定された SELinux で機能するようになる
以前は、NFS をルートファイルシステムとして使用すると、SELinux ラベルがサーバーから転送されず、SELinux が enforcing モードに設定されているときに起動エラーが発生していました。
この修正により、SELinux は、最初の SELinux ポリシーのロード前に作成された NFS マウントにサポートセキュリティーラベルとして正しくフラグを立てるように修正されました。その結果、NFS マウントはサーバーとクライアントの間で SELinux ラベルを転送するようになり、enforcing モードに設定された SELinux でブートを成功させることができます。
Bugzilla:1753646[1]
USB スマートカードリーダーが取り外された場合でも、自動画面ロックが正しく機能するようになりました。
RHEL 8.9 より前では、opensc パッケージが USB スマートカードリーダーの取り外しを誤って処理していました。そのため、スマートカードが取り外されたときに画面をロックするように GNOME ディスプレイマネージャー (GDM) を設定しても、システムがロック解除されたままでした。さらに、USB リーダーを再接続してからスマートカードを取り外した後も、画面がロックされませんでした。このリリースでは、USB スマートカードリーダーの取り外しを処理するコードが修正されました。その結果、スマートカードまたは USB スマートカードリーダーが取り外された場合でも、画面が正しくロックされるようになりました。
SCAP enable_fips_mode ルールが、64 ビット IBM Z アーキテクチャーで fips=1 のみをチェックするようになりました。
以前は、SCAP セキュリティーガイドルールの enable_fips_mode が、/boot/grub2/grubenv ファイルの内容をチェックしていました。したがって、64 ビット IBM Z アーキテクチャーでは、FIPS モードに /boot/grub2/grubenv ファイルが使用されませんでした。今回の更新により、OVAL ルールの enable_fips_mode によって、Linux カーネルの引数 fips=1 が 64 ビット IBM Z アーキテクチャーの /boot/loader/entries/.*.conf ファイルに存在するかどうかテストされるようになりました。
SCAP journald ルールが無効な設定に修正されなくなりました。
以前は、SCAP セキュリティーガイドのルール journald_compress、journald_forward_to_syslog、および journald_storage の修復スクリプトにバグが含まれており、/etc/systemd/journald.conf 設定ファイル内のそれぞれのオプションに余分な引用符が追加されていました。その結果、journald システムサービスは設定オプションの解析に失敗し、それらを無視しました。したがって、設定オプションは効果がなく、OpenSCAP が誤った合格結果を報告していました。この更新により、ルールと修復スクリプトが修正され、余分な引用符が追加されなくなりました。このルールにより、journald の有効な設定が作成されるようになりました。
セキュリティープロファイルを使用してイメージを設定できるようになりました。
マウントポイントオプションを設定する SCAP セキュリティーガイドのルールが再設計され、Image Builder でオペレーティングシステムのイメージをビルドする際のイメージのハードニングにも、ルールを使用できるようになりました。その結果、特定のセキュリティープロファイルに合わせたパーティション設定でイメージをビルドできるようになりました。
AIDE 設定に関連する SSG ルールから厳格な要件を削除しました。
以前は、SCAP セキュリティーガイド (SSG) のルール aide_build_database は、/var/lib/aide/aide.db.new.gz ファイルと /var/lib/aide/aide.db.gz ファイルの両方が存在することを合格の要件としていました。AIDE ユーティリティーに /var/lib/aide/aide.db.new.gz ファイルが不要になったため、この更新により、aide_build_database ルールから対応する要件が削除されました。その結果、ルールの合格要件が /var/lib/aide/aide.db.gz ファイルだけになりました。
さらに、SCAP セキュリティーガイドのルール aide_periodic_cron_checking の制約が、/etc/cron.daily および /etc/cron.weekly ファイルのエントリーに対して緩和されました。ルールへの準拠を維持しながら、追加のラッパーを使用して aide --check コマンドをスケジュールできるようになりました。
pam_faillock に関連する SCAP ルールに不適切な記述が含まれています。
以前は、pam_faillock に関連する SCAP セキュリティーガイドのルールに、一部のプロファイル値と整合性がない記述が含まれていました。したがって、記述は正しくありませんでした。今回の更新により、ルールの記述で XCCDF 変数が使用されるようになりました。
この変更は次のルールに影響します。
-
accounts_passwords_pam_faillock_deny -
accounts_passwords_pam_faillock_interval -
accounts_passwords_pam_faillock_dir -
accounts_passwords_pam_faillock_unlock_time
/boot/efi のマウント時に file_permissions_efi_user_cfg SCAP ルールが失敗しなくなりました。
以前は、UEFI ファイルのデフォルトのパーミッションは受け入れられませんでした。したがって、/boot/efi パーティションで Virtual File Allocation Table (VFAT) ファイルシステムが使用されている場合は、chmod コマンドでパーミッションを変更できませんでした。その結果、file_permissions_efi_user_cfg ルールが失敗しました。この更新により、デフォルトのパーミッションが 0600 から 0700 に変更されます。0700 パーミッションは CIS でも受け入れられるため、評価および修復と CIS プロファイルとの整合性が改善しました。
SSG 修復が configure_openssl_cryptopolicy に合わせて調整されました。
以前は、SCAP セキュリティーガイド (SSG) の修復により、opensslcnf.config ファイルに = 文字が追加されていました。この構文は、configure_openssl_cryptopolicy ルールの記述と一致しませんでした。そのため、修復によって opensslcnf.config に .include の代わりに .include = が挿入されると、コンプライアンスチェックが失敗することがありました。このリリースでは、修復スクリプトがルールの記述に合わせて調整され、configure_openssl_cryptopolicy を使用する SSG 修復が追加の = によって失敗することがなくなりました。
postfix_prevent_unrestricted_relay ルールが = 記号の前後の空白を受け入れるようになりました。
以前は、SCAP ルール xccdf_org.ssgproject.content_rule_postfix_prevent_unrestricted_relay の OVAL チェックが厳密すぎたため、= 記号の前後に空白が含まれる postconf 設定割り当てステートメントが考慮されていませんでした。その結果、設定がルールの要件を技術的に満たしていても、このルールは最終レポートで失敗と報告されていました。今回の更新により、= 記号の前後に空白があるステートメントをチェックで受け入れるようにルールが変更されました。その結果、最終レポートのルールで、このルールが正しい設定ステートメントに合格しているとマークされるようになりました。
SCAP ルールが /var/log および /var/log/audit パーティションが存在するかどうかを正しく評価するようになりました。
以前は、/var/log および /var/log/audit パーティションに関連する一部の SCAP ルールが、適切なディスクパーティションが存在しない場合でも評価され、修正されていました。これは次のルールに影響を与えました。
-
mount_option_var_log_audit_nodev -
mount_option_var_log_audit_noexec -
mount_option_var_log_audit_nosuid -
mount_option_var_log_nodev -
mount_option_var_log_noexec -
mount_option_var_log_nosuid
その結果、ディレクトリー /var/log または /var/log/audit が個々のパーティションのマウントポイントでない場合でも、これらのルールが評価され、最終レポートで失敗として誤って報告されていました。この更新により、/var/log または /var/log/audit が個々のパーティションのマウントポイントであるかどうかを判断するための適用性チェックが追加されました。その結果、ディレクトリーが個々のパーティションのマウントポイントではない場合、ルールは設定内で評価されず、最終レポートで notapplicable とマークされるようになりました。
SCAP ルール accounts_passwords_pam_faillock_interval が新しい STIG ID を対象とするようになりました。
以前は、SCAP セキュリティーガイドのルール accounts_passwords_pam_faillock_interval は、 RHEL-08-020012 および RHEL-08-020013 を対象としていませんでした。その結果、ルール accounts_passwords_pam_faillock_interval は、/etc/pam.d/password-auth、/etc/pam.d/system-auth、および /etc/security/faillock.conf ファイルの faillock 設定をチェックしていました。今回の更新により、このルールは STIG ID RHEL-08-020012 および RHEL-08-020013 も対象とするようになりました。
Red Hat CVE フィードが更新される
https://access.redhat.com/security/data/oval/ にある Red Hat Common Vulnerabilities and Exposures (CVE) フィードのバージョン 1 は廃止され、https://access.redhat.com/security/data/oval/v2/ にある CVE フィードのバージョン 2 に置き換えられました。
その結果、scap-security-guide パッケージによって提供される SCAP ソースデータストリーム内のリンクは、Red Hat CVE フィードの新しいバージョンにリンクするように更新されました。
wget ユーティリティーが、制限されたリソースにアクセスするときに TLS ハンドシェイクに失敗しなくなりました。
以前は、TLS でチケットベースのセッション再開が有効になっている場合、制限されたリソースにアクセスするためにサーバーがクライアントに再認証を要求した場合でも、wget ユーティリティーは TLS セッションが再開されることを予期していました。この動作により、wget は 2 回目の TLS ハンドシェイクに失敗していました。この更新により、wget は新しいハンドシェイクを適切に開始するようになり、制限されたリソースへのアクセスが失敗しなくなりました。
SELinux が有効なシステムで pam_cap の設定が正しく適用されるようになりました。
以前は、SELinux ポリシーには pam_cap モジュールを使用するためのルールが含まれていませんでした。その結果、/etc/security/capability.conf 設定ファイルで pam_cap によって制御されるログイン機能をユーザーに付与しても、ユーザーが ssh またはコンソールを使用してログインした場合、権限の付与が機能しませんでした。この更新により、新しいルールがポリシーに追加されます。その結果、/etc/security/capability.conf での機能の付与が機能するようになり、pam_cap で設定されたユーザー機能がログイン時に考慮されるようになりました。
SELinux が有効なシステムで systemd-fsck-root サービスが正しくラベル付けされるようになりました。
以前は、/run/fsck ディレクトリーは systemd-fsck-root サービスまたは fsck コマンドによって作成されていましたが、SELinux ポリシーにはディレクトリーの適切なラベル付けに関するルールが含まれていませんでした。その結果、systemd-fsck-root サービスが正しく動作しませんでした。この更新により、/run/fsck の正しいラベルとファイル遷移がポリシーに追加されました。その結果、systemd-fsck-root サービスがエラーを報告することなく動作するようになりました。
Bugzilla:2184348[1]
SELinux ポリシーにより D-Bus での双方向通信が許可されるようになりました。
以前は、SELinux ポリシーに、D-Bus メッセージバスシステム上の 2 つのドメイン間で一方向の通信のみを許可するルールが含まれていました。しかし、このような通信は双方向で許可される必要があります。この問題は、Pacemaker 高可用性クラスターリソースマネージャーが hostnamectl または timedatectl コマンドを実行したときにも発生しました。その結果、Pacemaker がこれらのコマンドを実行すると、SELinux が応答をブロックするため、コマンドが D-Bus 上で応答を受信せずにタイムアウトになりました。SELinux ポリシーのこの更新により、D-Bus での双方向通信が許可されます。その結果、Pacemaker によって実行される、D-Bus での双方向通信を必要とするコマンドが、正常に終了するようになりました。
tangd-keygen がデフォルト以外の umask を正しく処理するようになる
以前は、tangd-keygen スクリプトは、生成されたキーファイルのファイル権限を変更しませんでした。その結果、他のユーザーへのキーの読み取りを防止するデフォルトのユーザーファイル作成モードマスク (umask) が設定されているシステムでは、tang-show-keys コマンドはキーを表示する代わりにエラーメッセージ Internal Error 500 を返していました。今回の更新により、tangd-keygen は、生成されたキーファイルのファイルパーミッションを設定するため、スクリプトはデフォルト以外の umask を使用するシステムで正しく動作するようになりました。
Clevis が SHA-256 サムプリントを処理できるようになりました。
この更新の前は、Clevis クライアントは thp 設定オプションで指定された SHA-256 サムプリントを認識しませんでした。その結果、クライアントは SHA-256 サムプリントを使用する Tang サーバーにバインドされず、対応するすべての clevis encrypt tang コマンドでエラーが報告されました。今回の更新により、Clevis が SHA-256 を使用してサムプリントを認識し、それらを正しく処理できるようになりました。その結果、Clevis クライアントは、SHA-1 だけでなく SHA-256 サムプリントを使用して Tang サーバーにバインドできるようになりました。
Rsyslog は capabilities がなくても起動可能
Rsyslog が通常のユーザーとして実行される場合、またはコンテナー化された環境で実行される場合、rsyslog プロセスには capabilities がありません。その結果、Rsyslog は capabilities をドロップできず、起動時に終了しました。今回の更新により、プロセスは、capabilities がない場合に capabilities をドロップしようとしなくなりました。その結果、Rsyslog は capabilities がない場合でも起動できます。
Jira:RHELPLAN-160541[1]
fapolicyd サービスが、信頼されたデータベースから削除されたプログラムを実行しなくなる
以前は、fapolicyd サービスは、プログラムが信頼されたデータベースから削除された後でも、プログラムを信頼できるものとして誤って処理していました。その結果、fapolicyd-cli --update コマンドを入力しても効果はなく、プログラムは削除された後でも実行される可能性がありました。この更新により、fapolicyd-cli --update コマンドによって信頼されたプログラムデータベースが正しく更新され、削除されたプログラムは実行できなくなりました。
fapolicyd サービスが正しい所有権を持つ RPM データベースファイルを作成するようになりました。
以前は、fapolicyd サービスは /var/lib/rpm/ ディレクトリーに RPM データベースファイルを作成して所有していました。その結果、他のプログラムがファイルにアクセスできなくなり、可用性制御エラーが発生していました。この更新により、fapolicyd が正しい所有権を持つファイルを作成するようになり、エラーが発生しなくなりました。