12.2. セキュリティー
Red Hat Enterprise Linux 10.2 で修正されたセキュリティー上の問題点を確認してください。
- 監視対象ファイルが変更されても、AIDE は終了しなくなりました。
今回のアップデート以前は、AIDE がハッシュ値を計算している最中にファイルが切り詰められたり削除されたりすると、AIDE はエラーで終了していました。今回のアップデートにより、AIDE はハッシュ計算中にファイルが切り詰められたり削除されたりした場合にそれを検知し、安全に処理するようになりました。その結果、AIDE は、監視対象ファイルのサイズが変更されたり、処理中に削除されたりした場合でも、整合性チェックを正常に完了します。
fapolicyd-cli --check-trustdbは、サイズやチェックサム情報のないファイルを報告しなくなりましたたとえば、
/usr/lib/rpm/redhat/redhat-annobin-cc1や/etc/selinux/targeted/policy/policy.33など、RPM パッケージが所有する一部のファイルは、インストール中およびインストール後に内容が変更されることが想定されていますが、これらは引き続き対応するパッケージの所有として管理されます。したがって、fapolicydは、そのようなファイルを検証できません。今回のリリースにより、fapolicydフレームワークは、RPM データベースにサイズ情報またはチェックサム情報がないファイルを信頼データベースに追加しなくなりました。その結果、fapolicyd-cli --check-trustdbコマンドは、そのようなファイルに対してmiscompares: size sha256エラーメッセージを報告しません。
p11-kitでは、PKCS #11 トークンのリモート配信が壊れなくなりました。今回の
p11-kitパッケージのアップデート以前は、リモートプロシージャーコール (RPC) メカニズムにおいて、長さがゼロの再帰的属性配列が不適切に読み取られていました。その結果、通信エラーにより PKCS #11 トークンのリモート配信が停止しました。今回のアップデートでは、長さがゼロの属性配列の読み取りに関する問題を修正しました。その結果、p11-kitサーバーは PKCS #11 トークンをリモートで提供できるようになる。Jira:RHEL-97770[1]
- NSS データベースのパスワード更新で ML-DSA シードが破損しなくなりました
今回のアップデート以前は、データベースのパスワードを変更した際に、NSS がデータベースの再暗号化を処理する方法にバグがあるため、ML-DSA のシード属性が更新されないという問題が発生していました。その結果、以前のパスワードを知っていたとしても、シード値が永久に失われてしまいました。
今回のアップデートにより、パスワードの変更時に ML-DSA のシード属性が正しく更新されるようになりました。これにより、シード値が永久に失われる問題が解消されました。以前に失われたシードを復旧することはできません。
- Keylime エージェントは、RSA 以外の証明書で登録する際に失敗しなくなりました
今回のアップデート以前は、Keylime エージェントは TLS アイデンティティーとペイロード暗号化の両方に単一の鍵を使用していました。その結果、エージェントを RSA 以外の証明書を使用するように設定した場合、ペイロードメカニズムにも同じ鍵を使用しようとするため、登録プロセスが失敗していました。
今回のリリースにより、エージェントは 2 つの異なる鍵を使用するようになりました。その結果、相互 TLS(mTLS) アイデンティティーは代替の暗号化スキームを使用でき、Keylime エージェントは Elliptic Curve Cryptography (ECC) 証明書で正常に登録されます。ペイロード暗号化メカニズムには、専用の RSA 鍵ペアが依然として必要です。
- Keylime エージェントは ECC キーを使用して TPM クォートを正しく生成します
今回のアップデート以前は、署名付き Trusted Platform Module (TPM) クォートを生成する際に、
keylime-agent-rustコンポーネントは Elliptic Curve Cryptography (ECC) 鍵アルゴリズムを適切にサポートしていませんでした。これにより、エージェントは TPM クォート証拠を生成できず、ECC 鍵タイプでの登録に失敗していました。今回のアップデートにより、
keylime-agent-rustコンポーネントは、TPM クォート生成時に ECC 鍵アルゴリズムを正しく処理するようになりました。これにより、エージェントは正常に TPM クォートを生成して検証者に登録し、TPM で生成された ECC 鍵による完全なアテステーション機能を提供できるようになりました。
- Keylime 検証者が ECC 鍵で署名された TPM クォートを正しく検証できるようになりました
今回のアップデート以前は、エージェントからの署名済み Trusted Platform Module (TPM) クォートを検証する際に、Keylime 検証者コンポーネントは Elliptic Curve Cryptography (ECC) 鍵アルゴリズムを適切にサポートしていませんでした。これにより、エージェントが ECC 鍵タイプ
ecc521、ecc384、ecc256、ecc224、またはecc192を使用した場合に、アテステーションエラーが発生していました。今回のアップデートにより、検証者は ECC 鍵で署名された TPM クォートを正しく処理し、検証できるようになりました。その結果、Keylime はこれらのアルゴリズムに対して完全なアテステーション機能を提供します。
scpユーティリティーは、..を含む相対パスを正しく処理します今回のアップデート以前は、
scpユーティリティーにおいて、パスに含まれる..親ディレクトリーのインジケーターが実際のディレクトリー名に展開されませんでした。その結果、scpは..を含む相対パスを誤って処理していました。今回のアップデートにより、親ディレクトリー表示に関する特別な処理が追加されました。その結果、scpは..を含むパスを正しく処理するようになりました。
keylime-policyがリモート RPM リポジトリーの処理に失敗しなくなりました今回のアップデート以前は、
keylime-policyコマンドが、リモート RPM リポジトリーの解析中にファイルハンドルを閉じることができませんでした。これにより、ファイル記述子のリークが発生していました。その結果、ランタイムポリシーを生成するために--remote-rpm-repoオプションを使用すると、keylime-policyはToo many open filesというエラーで失敗しました。今回のアップデートにより、このコマンドはリポジトリーのメタデータファイルとパッケージファイルすべてのファイルハンドルを適切に閉じ、システムファイル記述子の制限を超えなくなります。その結果、
keylime-policyは、リモート RPM リポジトリーからランタイムポリシーを正常に生成するようになりました。Jira:RHEL-119028[1]
/etc/pki/tlsおよび/etc/ssl内の証明書バンドルが復元されました今回のアップデート以前は、ディレクトリーハッシュ形式への移行の一環として、証明書バンドルは
/etc/pki/tlsおよび/etc/sslから削除されていました。その結果、これらのバンドルに依存するアプリケーションは、セキュアな接続を確立できませんでした。今回のアップデートにより、Red Hat は証明書バンドルを復元し、ディレクトリーハッシュ形式を RHEL-11 に移行しました。影響を受けたアプリケーションは、以前と同様にセキュアな接続を確立できるようになりました。RHEL-11 への移行ガイドについては、Dropping of cert.pem file を参照してください。
Jira:RHEL-120696[1]
keylime-policyコマンドは--ima-measurement-listオプションを正しく処理します今回のアップデート以前は、
--ima-measurement-listオプションにファイルパスを指定しなかった場合、keylime-policyコマンドはデフォルト値を正しく設定しませんでした。このエラーにより、--keyringsなどの他のオプションがブロックされ、keylime-policyはランタイムポリシーの作成に失敗しました。今回のアップデートにより、
keylime-policyコマンドは、--ima-measurement-listオプションに特定の値を指定しない場合、デフォルトのパスである/sys/kernel/security/ima/ascii_runtime_measurementsを使用するようになりました。その結果、keylime-policyはランタイムポリシーを正常に作成するようになりました。
rust-rpm-sequoia は、依存関係として OpenSSL 3.5 を正しく要求します。rust-rpm-sequoiaパッケージはバージョン 3.5 のopensslパッケージを必要としますが、これは RPM の依存関係チェーンに反映されていませんでした。その結果、OpenSSL 3.5 なしでrust-rpm-sequoiaをインストールすることはできましたが、その後 RPM パッケージ管理ツールが動作しなくなりました。今回のアップデートにより、OpenSSL 3.5 への明示的な依存関係が追加されました。その結果、必要な OpenSSL バージョンがないとrust-rpm-sequoiaをインストールできず、RPM ツールが失敗するのを防ぐことができません。
/usr/share/*/bin/*バイナリーはfapolicydと連携して動作しますこのアップデート以前は、
fapolicydサービスは/usr/share/*/bin/ディレクトリーにあるバイナリーを信頼データベースに追加していませんでした。たとえば、/usr/share/Modules/bin/mkrootバイナリーは追加されませんでした。そのため、fapolicydルールでtrust=1オプションを使用している場合、ユーザーはこれらのバイナリーを実行できませんでした。この修正により、fapolicyd-filter.confファイルには*/bin/*が含まれます。その結果、fapolicydサービスが有効な状態で、/usr/share/*/bin/にあるバイナリーを実行できるようになります。
- Clevis はイメージモードへの移行を正しく処理します
今回のアップデート以前は、パッケージモードからイメージモードへの移行時に、パッケージインストールによるユーザーおよびグループメンバーシップの更新が正しく適用されていませんでした。その結果、
clevisユーザーがtssセキュリティーグループに追加されず、Clevis がシステム起動中にトラステッドプラットフォームモジュール (TPM) デバイスにアクセスして暗号化キーを取得することが阻止された。今回のアップデートにより、Clevis パッケージのインストールプロセスが更新され、既存の設定ファイルが保持される場合でも、イメージモードのアップデート中にclevisユーザーがtssグループに適切に追加されるようになります。その結果、Clevis はイメージモードのシステム上で TPM デバイスに適切にアクセスし、暗号鍵を正常に取得できるようになった。
clevis-pin-tpm2 は、無効な JSON を黙って無視しなくなりました。このアップデート以前は、
clevis-pin-tpm2コマンドは TPM2 による暗号化中に JSON フィールド名を検証せず、タイプミスや無効なフィールド (たとえばpcr_idsの代わりにpcrs_idsなど) を黙って無視していました。その結果、ユーザーは入力ミスなどにより、意図せず誤った TPM2 設定の LUKS バインディングを作成してしまう可能性がある。これは、TPM の状態が変化する際にロック解除の失敗につながり、システムが起動不能になる可能性を示唆している。今回のアップデートでは、暗号化時に TPM2 設定内の未知のフィールドを拒否するための JSON スキーマ検証機能が追加されました。その結果、TPM2 JSON 設定内の無効なフィールド名は、明確なエラーメッセージとともに適切に拒否され、ロック解除の失敗を引き起こす可能性のある、気づかれないまま発生する設定ミスを防ぎます。
Jira:RHEL-138591[1]
- SELinux ポリシーの更新により、ホスト名の設定エラーが修正されました
今回のアップデート以前は、SELinux ポリシールールが欠落していたため、
systemd-hostnamedサービスは/runディレクトリーに Varlink ソケットファイルを作成できませんでした。この問題により、bootcを使用したキックスタートによる PXE インストール中にホスト名の設定が失敗し、インストールが失敗していました。今回のアップデートにより、SELinux ポリシーは
systemd_hostnamed_tドメインが必要なソケットファイルを作成することを許可します。その結果、ホスト名の設定が正常に完了しました。Jira:RHEL-139385[1]
rust-rpm-sequoia は、許可されていないアルゴリズムに対して RPM のエラーを引き起こさなくなりました。今回のアップデート以前は、システム全体の暗号化ポリシーで禁止されているアルゴリズムを使用した署名を処理する場合、
rust-rpm-sequoiaライブラリーは RPM パッケージ管理ツールに一般的なエラーを報告していました。その結果、RPM はこれらのアルゴリズムを使用して RPM パッケージの署名を検証することができなかった。今回のアップデートでは、rust-rpm-sequoia がcrypto-policiesで許可されていないアルゴリズムに遭遇した場合、NOTTRUSTEDエラーメッセージを報告するようになりました。その結果、crypto-policies を使用すれば、RPM がパッケージ全体の検証に失敗することなく、パッケージの署名に使用されるアルゴリズムの 1 つを無効にできます。