5.5. セキュリティー
FIPS モードの場合に libgcrypt
でハードウェアの最適化が有効化
これまでの Federal Information Processing Standard(FIPS 140-2) では、ハードウェアの最適化を使用することは認められていませんでした。したがって、RHEL の以前のバージョンでは、FIPS モードの場合は libgcrypt
パッケージで操作が無効でした。RHEL 9 は、FIPS モードでハードウェアの最適化を有効にします。その結果、すべての暗号化操作が速く実行されます。
crypto-policies
が ChaCha20
暗号化の使用を無効にできるようになる
以前では、crypto-policies
パッケージは誤ったキーワードを使用して OpenSSL で ChaCha20
暗号を無効にしていました。したがって、crypto-policies
で OpenSSL の TLS 1.2 プロトコルの ChaCha20
を無効にできませんでした。今回の更新では、-Chacha20-poly1305
の代わりに -CHACHA20
キーワードが使用されます。その結果、暗号化ポリシーを使用して、TLS1.2 および TLS1.3
の OpenSSL で ChaCha20 暗号の使用を無効にできるようになりました。
FIPS モードでインストールするときに 64 ビット IBM Z システムが起動できなくなることはなくなりました
以前は、--no-bootcfg
オプションを指定した fips-mode-setup
コマンドは zipl
ツールを実行しませんでした。fips-mode-setup
は初期 RAM ディスク (initrd
) を再生成し、その結果であるシステムを起動するには zipl
内部状態を更新する必要があるため、FIPS モードでインストールした後、64 ビット IBM Z システムは起動できない状態になります。この更新により、fips-mode-setup
は、-no-bootcfg
を指定して呼び出された場合でも、64 ビット IBM Z システムで zipl
を実行するようになり、その結果、新しくインストールされたシステムが正常に起動します。
(BZ#2013195)
GNUTLS_NO_EXPLICIT_INIT
が暗黙的なライブラリーの初期化を無効にしなくなる
以前は、GNUTLS_NO_EXPLICIT_INIT
環境変数が暗黙的なライブラリーの初期化を無効にしていました。RHEL 9 では、GNUTLS_NO_IMPLICIT_INIT
変数は、代わりに暗黙的なライブラリーの初期化を無効にします。
(BZ#1999639)
OpenSSL ベースのアプリケーションが、Turkish ロケールで正しく動作するようになる
OpenSSL
ライブラリーは大文字と小文字を区別しない文字列比較関数を使用するため、OpenSSL ベースのアプリケーションはトルコ語ロケールで正しく機能せず、チェックを省略すると、このロケールを使用するアプリケーションがクラッシュしました。この更新プログラムは、大文字と小文字を区別しない文字列比較のために Portable Operating System Interface (POSIX) ロケールを使用するためのパッチを提供します。その結果、curl などの OpenSSL ベースのアプリケーションはトルコ語のロケールで正しく機能します。
SELinux のパーミッションが原因で kdump
がクラッシュすることがなくなりました。
kdump
クラッシュリカバリーサービスを正しく起動するには、追加の SELinux 権限が必要です。そのため、以前のバージョンでは、SELinux が kdump
の動作を妨げ、kdump
が動作していないことを報告したり、Access Vector Cache(AVC) の拒否が監査されたりしていました。このバージョンでは、必要なパーミッションが selinux-policy
に追加され、その結果、kdump
が正しく動作し、AVC の拒否が監査されません。
(BZ#1932752)
usbguard-selinux
パッケージが usbguard
に依存しなくなりました。
usbguard-selinux
パッケージは、以前は usbguard
パッケージに依存していました。これを、このパッケージの他の依存関係と組み合わせると、usbguard
のインストール時にファイル競合が発生しました。そのため、特定システムに usbguard
がインストールされなくなりました。このバージョンでは、usbguard-selinux
は usbguard
に依存しなくなり、その結果、dnf
は usbguard
を正しくインストールできます。
dnf install
および dnf update
が SELinux の fapolicyd
で動作するようになる
fapolicyd の SELinux ルールを含む fapolicyd-selinux
パッケージには、すべてのファイルとディレクトリーを監視するためのパーミッションが含まれていませんでした。これにより、fapolicyd-dnf-plugin
が正常に動作せず、dnf install
コマンドや dnf update
コマンドにより、システムが無期限に応答しなくなりました。このバージョンでは、fapolicyd-selinux
に任意のファイルタイプを見ることができる権限が追加されました。その結果、fapolicyd-dnf-plugin
が正しく動作し、dnf install
と dnf update
のコマンドが動作するようになりました。
(BZ#1932225)
アンビエント機能が root 以外のユーザーに正しく適用されるようになりました
安全対策として、UID (ユーザー識別子) をルートから非ルートに変更すると、許可された有効な一連のアンビエント機能セットが無効になっていました。
しかし、アンビエントセットに含まれる機能は許可されたセットと継承可能なセットの両方に含まれている必要があるため、pam_cap.so
モジュールはアンビエント機能を設定できません。さらに、たとえば setuid
ユーティリティーを使用して) UID を変更すると許可されたセットが無効になるため、アンビエント機能を設定できません。
この問題を修正するために、pam_cap.so
モジュールは keepcaps
オプションをサポートするようになりました。これにより、プロセスは、UID をルートから非ルートに変更した後も許可された機能を保持できます。pam_cap.so
モジュールは、defer
オプションもサポートするようになりました。これにより、pam_cap.so
は、pam_end()
へのコールバック内でアンビエント機能を再適用します。このコールバックは、UID を変更した後、他のアプリケーションで使用できます。
そのため、su
ユーティリティーおよび login
ユーティリティーが更新済みで PAM に準拠している場合は、keepcaps
オプションおよび defer
オプションを指定して pam_cap.so
を使用し、root 以外のユーザーにアンビエント機能を設定できるようになりました。
usbguard-notifier
が Journal に記録するエラーメッセージの数が適正になりました
以前は、usbguard-notifier
サービスに usbguard-daemon
IPC インターフェイスに接続するためのプロセス間通信 (IPC) のパーミッションがありませんでした。したがって、usbguard-notifier
はインターフェイスへの接続に失敗し、対応するエラーメッセージがジャーナルに書き込まれていました。usbguard-notifier
は --wait
オプションで始まるため、デフォルトでは接続障害後に毎秒 usbguard-notifier
が IPC インターフェイスへの接続を試みるため、ログにはこれらのメッセージが過剰に含まれていました。
今回の更新により、usbguard-notifier
はデフォルトで --wait
で開始されなくなりました。サービスは、1 秒間隔で 3 回だけデーモンへの接続を試みます。その結果、ログには最大で 3 つのエラーメッセージが含まれます。