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
が正しい所有権を持つファイルを作成するようになり、エラーが発生しなくなりました。