8.2. セキュリティー
OpenSSL コマンド cms
および smime
は、FIPS モードでファイルを暗号化できます
以前は、cms
および smime
OpenSSL コマンドのデフォルト設定では、3DES や PKCS #1 v1.5 などのレガシー暗号化アルゴリズムが使用されていました。これらのアルゴリズムは FIPS モードでは無効になります。その結果、FIPS モードのシステムでは、デフォルト設定で smime
コマンドを使用してファイルを暗号化できませんでした。この更新では次の変更が導入されています。
- FIPS モードでは、OpenSSL API はデフォルトで OAEP と RSA キーを使用して CMS データを作成します。
-
FIPS モードでは、RSA キーが指定された場合、
cms
OpenSSL コマンドはaes-128-cbc
および OAEP で暗号化された CMS ファイルを作成します。
ECDSA キーの使用は影響を受けません。非 FIPS モードでは、OpenSSL API と cms
コマンドは、デフォルトで PKCS#1 v1.5 パディングと 3DES 暗号化を引き続き使用します。
その結果、FIPS モードで cms
および smime
OpenSSL コマンドを使用して、ファイルを暗号化できます。
SELinux で Dovecot でメールのレプリケーションが可能になる
双方向レプリケーションセットを使用して Dovecot 高性能メール配信エージェントを高可用性向けに設定できますが、以前の SELinux ポリシーには、ランタイムファイルシステムのパイプを介して通信する dovecot-deliver
ユーティリティーに関するルールが含まれていませんでした。その結果、Dovecot でのメールのレプリケーションは機能しませんでした。この更新により、SELinux ポリシーにパーミッションが追加され、その結果、Dovecot でのメールレプリケーションが機能するようになりました。
Bugzilla:2170495[1]
NFS ファイルシステムからのブートは、enforcing モードに設定された SELinux で機能するようになる
以前は、NFS をルートファイルシステムとして使用すると、SELinux ラベルがサーバーから転送されず、SELinux が enforcing モードに設定されているときに起動エラーが発生していました。
この修正により、SELinux は、最初の SELinux ポリシーのロード前に作成された NFS マウントにサポートセキュリティーラベルとして正しくフラグを立てるように修正されました。その結果、NFS マウントはサーバーとクライアントの間で SELinux ラベルを転送するようになり、enforcing モードに設定された SELinux でブートを成功させることができます。
Bugzilla:2218207[1]
rabbitmq
が IPv6 で失敗しなくなる
以前は、IPv6 を有効にして rabbitmq
サーバーをデプロイすると、inet_gethost
コマンドは /proc/sys/net/ipv6/conf/all/disable_ipv6
ファイルにアクセスしようとしました。その結果、システムは /proc/sys/net/ipv6/conf/all/disable_ipv6
へのアクセスを拒否しました。この更新により、システムは /proc/sys/net/ipv6/conf/all/disable_ipv6
を読み取ることができるようになり、rabbitmq
が IPv6 で動作するようになりました。
cloud-init
を介した Insights への登録が SELinux によってブロックされなくなる
以前は、SELinux ポリシーには、cloud-init
スクリプトによる insights-client
サービスの実行を許可するルールが含まれていませんでした。その結果、cloud-init
スクリプトが insights-client --register
コマンドの実行を試みると失敗していました。この更新により、欠落していたルールがポリシーに追加され、SELinux を enforcing モードで使用して cloud-init
を介して Insights に登録できるようになりました。
staff_r
SELinux ロールのユーザーは scap_workbench
プローブを実行できるようになる
以前は、selinux-policy
パッケージには、scap-workbench
ユーティリティーを実行するために必要な staff_r
SELinux ロールのユーザーに対するルールが含まれていませんでした。その結果、staff_r
SELinux ロールのユーザーが実行すると、scap-workbench
プローブが失敗していました。この更新により、欠落していたルールが selinux-policy
に追加され、SELinux ユーザーは scap_workbench
プローブを実行できるようになりました。
SELinux ポリシーに insights-client
のパーミッションが追加されました
insights-client
サービスには、以前のバージョンの selinux-policy
にはなかった権限が必要です。そのため、insights-client
の一部のコンポーネントが正しく機能せず、アクセスベクターキャッシュ (AVC) エラーメッセージを報告していました。今回の更新で、SELinux ポリシーに新しいパーミッションが追加されました。その結果、AVC エラーを報告せずに insights-client
が正常に実行されます。
Jira:RHELPLAN-163014[1]、Bugzilla:2190178、Bugzilla:2224737、Bugzilla:2207894、Bugzilla:2214581
Keylime 許可リスト生成スクリプトが更新される
Keylime スクリプト create_allowlist.sh
は、Keylime ポリシーの許可リストを生成します。RHEL 9.3 では、create_runtime_policy.sh
スクリプトに置き換えられました。このスクリプトは、許可リストを JSON ランタイムポリシーに変換しようとすると失敗していました。
今回の更新により、スクリプトは create_allowlist.sh
に戻りました。keylime_create_policy
スクリプトを使用して、許可リストと除外リストを JSON ランタイムポリシーに組み合わせることができるようになりました。
Jira:RHEL-11866[1]
Keylime が tls_dir = default
で特定のファイルを必要としなくなる
以前は、Keylime verifier または Keylime registrar 設定で tls_dir
変数が default
に設定されていた場合、Keylime は、ファイル名が cacert.crt
ではないカスタムの認証局 (CA) 証明書を拒否していました。今回の更新によってこの問題は発生しなくなり、tls_dir = default
と設定されていてもカスタムの CA 証明書ファイルを使用できるようになりました。
Jira:RHELPLAN-157337[1]
環境変数が、Keylime エージェントのオプションをアンダースコアでオーバーライド可能に
以前は、Keylime エージェント設定オプション名にアンダースコア (_) が含まれている場合、環境変数を使用してこのオプションをオーバーライドすることはできませんでした。今回の更新により、オプション名にアンダースコアが含まれている場合でも、環境変数によるオーバーライドが正しく機能するようになりました。
Jira:RHEL-395[1]
Keylime registrar は IPv6 アドレスを正しく識別する
以前は、Keylime registrar は IPv6 アドレスを正しく認識できなかったため、リスニングポートをバインドできませんでした。この更新により、Keylime registrar は IPv6 アドレスを適切に識別し、その結果、そのポートに正しくバインドされるようになりました。
Jira:RHEL-392[1]
Keylime エージェントが IPv6 アドレスを正しく処理する
以前は、括弧 [ ] で囲まれていない IPv6 アドレスを使用して Keylime エージェントを登録すると、keylime_tenant
ユーティリティーがエラーで失敗していました。今回の更新により、keylime_tenant
は、IPv6 アドレスが括弧で囲まれていない場合でも、正しく処理できるようになりました。
Jira:RHEL-393[1]
QEMU VM の新しいイベントにより、Keylime は測定ブート認証に失敗しなくなる
edk2-ovmf
パッケージの更新により、QEMU によって操作される仮想システムの測定ブートログに新しいタイプのイベントが導入されました。これらのイベントにより、Keylime の測定ブート認証に障害が発生しました。今回の更新により、Keylime はこれらのイベントを正しく処理します。
Jira:RHEL-947[1]
Keylime Webhook Notifier が TLS セッションを正しく終了する
以前は、Keylime Webhook Notifier は TLS セッションを正しく終了しませんでした。これにより、リスナー側で警告が報告されました。この更新によりこの問題が修正され、Webhook Notifier が TLS セッションを正しく終了するようになりました。
Jira:RHEL-1252[1]
gpg-agent
が FIPS モードで SSH エージェントとして機能するようになる
以前は、FIPS モードで MD5 ダイジェストが無効になっている場合でも、gpg-agent
ツールは ssh-agent
プログラムにキーを追加するときに MD5 フィンガープリントを作成していました。その結果、ssh-add
ユーティリティーが認証エージェントへのキーの追加に失敗していました。
このリリースでは、gpg-agent
は MD5 チェックサムを使用しなくなりました。その結果、gpg-agent
は FIPS モードで実行されているシステムでも SSH 認証エージェントとして機能するようになりました。
tangd-keygen
がデフォルト以外の umask
を正しく処理するようになる
以前は、tangd-keygen
スクリプトは、生成されたキーファイルのファイル権限を変更しませんでした。その結果、他のユーザーへのキーの読み取りを防止するデフォルトのユーザーファイル作成モードマスク (umask
) が設定されているシステムでは、tang-show-keys
コマンドはキーを表示する代わりにエラーメッセージ Internal Error 500
を返していました。今回の更新により、tangd-keygen
は、生成されたキーファイルのファイルパーミッションを設定するため、スクリプトはデフォルト以外の umask
を使用するシステムで正しく動作するようになりました。
fapolicyd
サービスが、信頼されたデータベースから削除されたプログラムを実行しなくなる
以前は、fapolicyd
サービスは、プログラムが信頼されたデータベースから削除された後でも、プログラムを信頼できるものとして誤って処理していました。その結果、fapolicyd-cli --update
コマンドを入力しても効果はなく、プログラムは削除された後でも実行される可能性がありました。この更新により、fapolicyd-cli --update
コマンドによって信頼されたプログラムデータベースが正しく更新され、削除されたプログラムは実行できなくなりました。
fapolicyd
により、mount
および umount
後にシステムがハングしなくなる
以前は、mount
または umount
アクションが 2 回実行され、その後に fapolicyd-cli --update
コマンドが実行されると、fapolicyd
サービスが無限ループに入る可能性がありました。その結果、システムが応答を停止しました。この更新により、サービスは fapolicyd-cli --update
コマンドを正しく実行し、任意の数の mount
または umount
アクションを処理できるようになりました。
Keylime は連結された PEM 証明書を受け入れるようになる
以前は、Keylime が 1 つのファイルに連結された PEM 形式の複数の証明書として証明書チェーンを受信すると、keylime-agent-rust
Keylime コンポーネントによって TLS ハンドシェイクの失敗が発生していました。その結果、クライアントコンポーネント (keylime_verifier
および keylime_tenant
) は、Keylime エージェントに接続できません。この更新により、keylime-agent-rust
は、中間 CA 証明書を含む複数の証明書を正しく処理できるようになりました。その結果、連結された PEM 証明書を Keylime で使用できるようになりました。
Jira:RHEL-396[1]
Rsyslog は capabilities がなくても起動可能
Rsyslog が通常のユーザーとして実行される場合、またはコンテナー化された環境で実行される場合、rsyslog
プロセスには capabilities がありません。その結果、Rsyslog は capabilities をドロップできず、起動時に終了しました。今回の更新により、プロセスは、capabilities がない場合に capabilities をドロップしようとしなくなりました。その結果、Rsyslog は capabilities がない場合でも起動できます。
Jira:RHELPLAN-160541[1]
io_uring
は SELinux 拒否なしで動作するようになる
以前は、io_uring
カーネルインターフェイスには SELinux ポリシーの map
パーミッションがありませんでした。その結果、mmap
システムコールが失敗し、io_uring
インターフェイスが正しく動作しませんでした。この更新により、SELinux ポリシーで map
パーミッションが許可され、インターフェイスは SELinux 拒否なしで動作するようになりました。
oscap-anaconda-addon
で CIS のネットワークサーバーを強化できるようになる
以前は、Network Servers パッケージグループが選択されている場合、CIS セキュリティープロファイル (cis
、cis_server_l1
、cis_workstation_l1
、または cis_workstation_l2
) を使用して RHEL Network Servers をインストールすることはできませんでした。この問題は、RHEL 9.3 で提供される oscap-anaconda-addon-2.0.0-17.el9
の tftp
パッケージを除外することで修正されます。その結果、Network Servers パッケージグループを使用して、CIS で強化された RHEL Network Servers をインストールできます。
ホームディレクトリーをチェックするルールはローカルユーザーにのみ適用される
scap-security-guide
パッケージによって提供される複数のコンプライアンスプロファイルには、ユーザーのホームディレクトリーの正しい設定をチェックする次のルールが含まれています。
-
accounts_umask_interactive_users
-
accounts_user_dot_group_ownership
-
accounts_user_dot_user_ownership
-
accounts_user_interactive_home_directory_exists
-
accounts_users_home_files_groupownership
-
accounts_users_home_files_ownership
-
accounts_users_home_files_permissions
-
file_groupownership_home_directories
-
file_ownership_home_directories
-
file_permissions_home_directories
これらのルールは、ローカルユーザーの設定を正しくチェックします。以前は、修復スクリプトがリモートユーザーの設定を変更できない場合でも、スキャナーは NSS などのネットワークソースから提供されたリモートユーザーの設定を誤ってチェックしていました。これは、OpenSCAP スキャナーが以前に getpwent()
システムコールを使用していたためです。この更新により、これらのルールの内部実装が /etc/passwd
ファイルのデータのみに依存するように変更されます。その結果、ルールはローカルユーザーの設定にのみ適用されるようになりました。
パスワードの有効期間に関するルールはローカルユーザーにのみ適用される
CIS や DISA STIG などの一部のコンプライアンスプロファイルには、ユーザーアカウントのパスワードの有効期間とパスワードの有効期限をチェックする次のルールが含まれています。
-
accounts_password_set_max_life_existing
-
accounts_password_set_min_life_existing
-
accounts_password_set_warn_age_existing
-
accounts_set_post_pw_existing
これらのルールは、ローカルユーザーの設定を正しくチェックします。以前は、修復スクリプトがリモートユーザーの設定を変更できない場合でも、スキャナーは NSS などのネットワークソースから提供されたリモートユーザーの設定を誤ってチェックしていました。これは、OpenSCAP スキャナーが以前に getpwent()
システムコールを使用していたためです。
この更新により、これらのルールの内部実装が /etc/shadow
ファイルのデータのみに依存するように変更されます。その結果、ルールはローカルユーザーの設定にのみ適用されるようになりました。
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 フィードの新しいバージョンにリンクするように更新されました。
journald
設定に関連するルールで余分な引用符が追加されなくなる
以前は、SCAP セキュリティーガイドのルール journald_compress
、journald_forward_to_syslog
、および journald_storage
の修復スクリプトにバグが含まれており、/etc/systemd/journald.conf
設定ファイルの設定オプションに余分な引用符が追加されていました。その結果、journald
システムサービスは設定オプションの解析に失敗し、それらを無視しました。したがって、設定オプションは有効ではありませんでした。これにより、OpenSCAP スキャンの結果が誤った結果である pass
となりました。この更新により、ルールと修復スクリプトで余分な引用符が追加されなくなりました。その結果、これらのルールは、journald
の有効な設定を生成するようになりました。
/var/lib/fdo
配下のファイルに正しい SElinux ラベルが付けられるようになる
以前は、FDO プロセスがホスト全体にアクセスできるというセキュリティーの問題がありました。今回の更新により、SElinux で service-info-api
サーバーを使用することで、/var/lib/fdo
ディレクトリー配下のデバイスに送信するファイルを追加できるようになり、その結果、/var/lib/fdo
配下のファイルは正しい SElinux ラベルを取得するようになりました。