Menu Close
Settings Close

Language and Page Formatting Options

8.6. セキュリティー

OpenSSL は、PKCS #11 トークンが、生の RSA 署名または RSA-PSS 署名の作成に対応しているかどうかを検出しません。

TLS 1.3 プロトコルには、RSA-PSS 署名のサポートが必要です。PKCS#11 トークンが生の RSA または RSA-PSS 署名をサポートしていない場合、キーが PKCS#11 トークンによって保持されていると、OpenSSL ライブラリーを使用するサーバーアプリケーションは RSA キーを処理できません。これにより、上記のシナリオで TLS 通信に失敗します。

この問題を回避するには、利用可能な最高の TLS プロトコルバージョンとして TLS バージョン 1.2 を使用するようにサーバーとクライアントを設定します。

(BZ#1681178)

OpenSSL が、生の RSA または RSA-PSS の署名に対応していない PKCS #11 トークンを誤って処理する

OpenSSL ライブラリーは、PKCS #11 トークンの鍵関連の機能を検出しません。したがって、生の RSA または RSA-PSS の署名に対応しないトークンで署名が作成されると、TLS 接続の確立に失敗します。

この問題を回避するには、/etc/pki/tls/openssl.cnf ファイルの crypto_policy セクションの末尾にある .include 行の後に、以下の行を追加します。

SignatureAlgorithms = RSA+SHA256:RSA+SHA512:RSA+SHA384:ECDSA+SHA256:ECDSA+SHA512:ECDSA+SHA384
MaxProtocol = TLSv1.2

これにより、このシナリオで TLS 接続を確立できます。

(BZ#1685470)

FIPS で承認されていない暗号化は、FIPS モードの OpenSSL で機能します

FIPS で承認されていない暗号化は、システム設定に関係なく、OpenSSL ツールキットで機能します。したがって、システムが FIPS モードで実行されているときに無効にする必要がある暗号化アルゴリズムと暗号を使用できます。たとえば、次のようになります。

  • RSA 鍵交換を使用する TLS 暗号スイートが機能します。
  • 公開鍵の暗号化と復号化のための RSA ベースのアルゴリズムは、PKCS#1 と SSLv23 のパディングを使用したり、2048 ビットより短い鍵を使用したりしても機能します。

(BZ#2053289)

OpenSSL が FIPS モードでエンジンを使用できない

エンジン API は OpenSSL 3.0 で非推奨となり、OpenSSL Federal Information Processing Standards (FIPS) 実装およびその他の FIPS 互換実装と互換性がありません。そのため、OpenSSL は FIPS モードでエンジンを実行できません。この問題に対する回避策はありません。

(BZ#2087253)

PSK 暗号スイートは FUTURE 暗号ポリシーでは機能しません

事前共有キー (PSK) 暗号スイートは、完全転送秘密 (PFS) キー交換方式を実行しているとは認識されません。結果として、ECDHE-PSK および DHE-PSK 暗号スイートは、SECLEVEL=3 に設定された OpenSSL、たとえば FUTURE 暗号化ポリシーでは機能しません。回避策として、PSK 暗号スイートを使用するアプリケーションに対して、制限の少ない暗号化ポリシーを設定するか、セキュリティーレベル (SECLEVEL) を低く設定することができます。

(BZ#2060044)

GnuPG は、crypto-policies によって許可されていない場合でも、SHA-1 署名の使用を誤って許可します

GNU Privacy Guard (GnuPG) 暗号化ソフトウェアは、システム全体の暗号化ポリシーで定義されている設定に関係なく、SHA-1 アルゴリズムを使用する署名を作成および検証できます。したがって、DEFAULT の暗号化ポリシーで暗号化の目的で SHA-1 を使用できます。これは、署名に対するこの安全でないアルゴリズムのシステム全体での非推奨とは一致しません。

この問題を回避するには、SHA-1 を含む GnuPG オプションを使用しないでください。これにより、セキュアでない SHA-1 署名を使用して GnuPG がデフォルトのシステムセキュリティーを下げるのを防ぎます。

(BZ#2070722)

一部の OpenSSH 操作では FIPS で承認されるインターフェイスが使用されていない

OpenSSH で使用される OpenSSL 暗号化ライブラリーは、レガシーとモダンの 2 つのインターフェイスを提供します。OpenSSL の内部構造が変更されたため、最新のインターフェイスのみが FIPS 認定の暗号化アルゴリズムの実装を使用しています。OpenSSH は一部の操作にレガシーインターフェイスを使用するため、FIPS 要件に準拠していません。

(BZ#2087121)

GPG-agent が FIPS モードで SSH エージェントとして動作しない

gpg-agent ツールは、FIPS モードが MD5 ダイジェストが無効であっても ssh-agent プログラムにキーを追加する際に MD5 フィンガープリントを作成します。その結果、ssh-add ユーティリティーは認証エージェントへのキーの追加に失敗します。

この問題を回避するには、~/.gnupg/sshcontrol ファイルを gpg-agent --daemon --enable-ssh-support コマンドを使用せずに作成します。たとえば、gpg --list-keys コマンドの出力を <FINGERPRINT> 0 形式で ~/.gnupg/sshcontrol に貼り付けることができます。これにより、gpg-agent は SSH 認証エージェントとして機能します。

(BZ#2073567)

SELinux staff_u ユーザーが unconfined_r に間違って切り替える可能性がある

secure_mode ブール値が有効になっていると、staff_u ユーザーが unconfined_r ロールに間違って切り替える可能性があります。これにより、staff_u ユーザーは、システムのセキュリティーに影響する特権操作を実行できました。

(BZ#2021529)

デフォルトの SELinux ポリシーにより、制限のない実行ファイルがスタックを実行可能にする

SELinux ポリシーの selinuxuser_execstack ブール値のデフォルトの状態は on です。これは、制限のない実行ファイルがスタックを実行可能にすることを意味します。実行可能ファイルはこのオプションを使用しないでください。また、ハードコーディングされていない実行ファイルや攻撃の可能性を示している可能性があります。ただし、他のツール、パッケージ、およびサードパーティー製品との互換性のため、Red Hat はデフォルトポリシーのブール値を変更できません。シナリオがそのような互換性の側面に依存しない場合は、コマンド setsebool -P selinuxuser_execstack off を入力して、ローカルポリシーでブール値をオフにすることができます。

(BZ#2064274)

STIG プロファイルの SSH タイムアウトルールが誤ったオプションを設定している

OpenSSH の更新は、次の米国国防情報システム局のセキュリティー技術実装ガイド (DISA STIG) プロファイルのルールに影響を与えました。

  • RHEL 9 用 DISA STIG (xccdf_org.ssgproject.content_profile_stig)
  • RHEL 9 用、GUI の DISA STIG (xccdf_org.ssgproject.content_profile_stig_gui)

これらの各プロファイルでは、次の 2 つのルールが影響を受けます。

Title: Set SSH Client Alive Count Max to zero
CCE Identifier: CCE-90271-8
Rule ID: xccdf_org.ssgproject.content_rule_sshd_set_keepalive_0

Title: Set SSH Idle Timeout Interval
CCE Identifier: CCE-90811-1
Rule ID: xccdf_org.ssgproject.content_rule_sshd_set_idle_timeout

SSH サーバーに適用すると、これらの各ルールは、以前のように動作しなくなったオプション (ClientAliveCountMax および ClientAliveInterval) を設定します。その結果、OpenSSH は、これらのルールで設定されたタイムアウトに達したときに、アイドル状態の SSH ユーザーを切断しなくなりました。回避策として、これらのルールは、ソリューションが開発されるまで、DISA STIG for RHEL 9 および DISA STIG with GUI for RHEL 9 プロファイルから一時的に削除されました。

(BZ#2038978)

fagenrules --load が正しく動作しない

fapolicyd サービスは、信号のハングアップ (SIGHUP) を正しく処理しません。その結果、fapolicyd は SIGHUP シグナルを受信した後に終了します。したがって、fagenrules --load コマンドは適切に機能せず、ルールの更新には fapolicyd を手動で再起動する必要があります。この問題を回避するには、ルールの変更後に fapolicyd サービスを再起動すると、fagenrules --load が正常に機能します。

(BZ#2070655)

Ansible 修復には追加のコレクションが必要

ansible-core パッケージによる Ansible Engine の置き換えにより、RHEL サブスクリプションで提供される Ansible モジュールのリストが削減されました。これにより、scap-security-guide パッケージに含まれる Ansible コンテンツを使用する修復を実行するには、rhc-worker-playbook パッケージからのコレクションが必要です。

Ansible 修復の場合は、以下の手順を実行します。

  1. 必要なパッケージをインストールします。

    # dnf install -y ansible-core scap-security-guide rhc-worker-playbook
  2. /usr/share/scap-security-guide/ansible ディレクトリーに移動します (# cd /usr/share/scap-security-guide/ansible)。
  3. 追加の Ansible コレクションへのパスを定義する環境変数を使用して、関連する Ansible Playbook を実行します。

    # ANSIBLE_COLLECTIONS_PATH=/usr/share/rhc-worker-playbook/ansible/collections/ansible_collections/ ansible-playbook -c local -i localhost, rhel9-playbook-cis_server_l1.yml

    cis_server_l1 を、システムを修正するプロファイルの ID に置き換えます。

これにより、Ansible コンテンツは正しく処理されます。

注記

rhc-worker-playbook で提供されるコレクションのサポートは、scap-security-guide から取得する Ansible コンテンツの有効化だけに限定されます。

(BZ#2105162)