10.4. セキュリティー

ユーザーは、ロックされたユーザーとして sudo コマンドを実行できます。

ALL キーワードで sudoers パーミッションが定義されているシステムでは、パーミッションを持つ sudo ユーザーは、アカウントがロックされているユーザーとして sudo コマンドを実行できます。そのため、ロックされたアカウントと期限切れのアカウントを使用して、コマンドを実行し続けることができます。

この問題を回避するには、/etc/shells 内の有効なシェルの適切な設定と併せて、新たに実装した runas_check_shell オプションを有効にします。これにより、攻撃者が bin などのシステムアカウントでコマンドを実行するのを防ぎます。

(BZ#1786990)

libselinux-python は、そのモジュールからのみ利用可能

libselinux-python パッケージには、SELinux アプリケーション開発用の Python 2 バインディングのみが含まれ、後方互換性に使用されます。このため、libselinux-python コマンドを使用して、デフォルトの RHEL 8 リポジトリーで dnf install libselinux-python コマンドが利用できなくなりました。

この問題を回避するには、libselinux-python モジュールおよび python27 モジュールの両方を有効にし、以下のコマンドで libselinux-python パッケージとその依存関係をインストールします。

# dnf module enable libselinux-python
# dnf install libselinux-python

または、1 つのコマンドでインストールプロファイルを使用して libselinux-python をインストールします。

# dnf module install libselinux-python:2.8/common

これにより、各モジュールを使用して libselinux-python をインストールできます。

(BZ#1666328)

udica は、--env container=podman で開始したときにのみ UBI 8 コンテナーを処理します。

Red Hat Universal Base Image 8 (UBI 8) コンテナーは、podman の値ではなく、コンテナー 環境変数を oci 値に設定します。これにより、udica ツールがコンテナー JavaScript Object Notation (JSON) ファイルを分析しなくなります。

この問題を回避するには、--env container=podman パラメーターを指定して、podman コマンドで UBI 8 コンテナーを起動します。そのため、udica は、上記の回避策を使用している場合に限り、UBI 8 コンテナーの SELinux ポリシーを生成することができます。

(BZ#1763210)

デフォルトのロギング設定がパフォーマンスに与える悪影響

デフォルトのログ環境設定は、メモリーを 4 GB 以上使用する可能性があり、rsyslogsystemd-journald を実行している場合は、速度制限値の調整が複雑になります。

詳細は、ナレッジベースの記事 Negative effects of the RHEL default logging setup on performance and their mitigations を参照してください。

(JIRA:RHELPLAN-10431)

/etc/passwd- のファイル権限が CIS RHEL 8 Benchmark 1.0.0 と合致しない

CIS Benchmark の問題により、/etc/passwd- バックアップファイルの権限を保証する SCAP ルールの修正によって、権限が 0644 に設定されます。ただし、CIS Red Hat Enterprise Linux 8 Benchmark 1.0.0 では、そのファイルに対するファイルパーミッション 0600 が必要です。そのため、修正後、/etc/passwd- のファイル権限はベンチマークに合うように設定されません。

(BZ#1858866)

/etc/selinux/configSELINUX=disabled が正常に動作しません。

/etc/selinux/configSELINUX=disabled オプションを使用して SELinux を無効にすると、カーネルが SELinux を有効にして起動し、その後のブートプロセスで無効化モードに切り替わります。これにより、メモリーリークが生じる可能性があります。

この問題を回避するには、SELinux を完全に無効にする必要がある場合に SELinux の使用システムの起動時に SELinux モードの変更 で説明されているように、selinux=0 パラメーターをカーネルコマンドラインに追加して SELinux を無効にすることが推奨されます。

(JIRA:RHELPLAN-34199)

crypto-policies が Camellia 暗号を誤って許可する。

RHEL 8 システム全体の暗号化ポリシーでは、製品ドキュメントで説明されているように、すべてのポリシーレベルで Camellia 暗号を無効にする必要があります。ただし、Kerberos プロトコルでは、デフォルトでこの Camellia 暗号が有効になります。

この問題を回避するには、NO-CAMELLIA サブポリシーを適用します。

# update-crypto-policies --set DEFAULT:NO-CAMELLIA

これまでに上記のコマンドで、DEFAULT から切り替えたことがある場合は、DEFAULT を暗号化レベルの名前に置き換えます。

その結果、この回避策を使用して Cemellia 暗号を無効にしている場合に限り、システム全体の暗号化ポリシーを使用する全ポリシーで、この暗号化を適切に拒否できます。

(BZ#1919155)

SHA-1 署名を使用するサーバーへの接続が GnuTLS で動作しません。

証明書の SHA-1 署名は、GuTLS セキュアな通信ライブラリーにより、セキュアでないものとして拒否されます。したがって、TLS のバックエンドとして GnuTLS を使用するアプリケーションは、このような証明書を提供するピアへの TLS 接続を確立することができません。この動作は、その他のシステム暗号化ライブラリーと一貫性がありません。

この問題を回避するには、サーバーをアップグレードして、SHA-256 または強力なハッシュを使用して署名した証明書を使用するか、LEGACY ポリシーに切り替えます。

(BZ#1628553)

Libreswan は、leftikeport および rightikeport を無視します。

Libreswan は、host-to-host Libreswan 接続では leftikeport および rightikeport オプションを無視します。これにより、Libreswan は、leftikeport rightikeport の設定に関係なく、デフォルトのポートを使用します。現在利用できる回避策はありません。

(BZ#1934058)

IKEv2 で複数のラベルが付いた IPsec 接続が正常に動作しない

Libreswan が IKEv2 プロトコルを使用する場合、IPsec のセキュリティーラベルは複数の接続では正しく機能しません。これにより、ラベルが付いた IPsec を使用する Libreswan は、最初の接続のみを確立できますが、後続の接続を確立することができません。複数の接続を使用するには、IKEv1 プロトコルを使用します。

(BZ#1934859)

FIPS モードの OpenSSL が、特定の D-H パラメーターのみを受け入れます。

FIPS モードでは、OpenSSL を使用する TLS クライアントは bad dh value エラーを返し、手動で生成されたパラメーターを使用するようにサーバーへの TLS 接続を中止します。これは、FIPS 140-2 に準拠するよう設定されている場合、OpenSSL が NIST SP 800-56A rev3 付録 D (RFC 3526 で定義されたグループ 14、15、16、17、18、および RFC 7919 で定義されたグループ) に準拠した Diffie-Hellman パラメーターでのみ機能するためです。また、OpenSSL を使用するサーバーは、その他のパラメーターをすべて無視し、代わりに同様のサイズの既知のパラメーターを選択します。この問題を回避するには、準拠するグループのみを使用します。

(BZ#1810911)

OpenSC pkcs15-init によるスマートカードのプロビジョニングプロセスが適切に動作しません。

file_caching オプションは、デフォルトの OpenSC 設定で有効になっているため、キャッシュ機能は pkcs15-init ツールから一部のコマンドを適切に処理しません。したがって、OpenSC を使用したスマートカードのプロビジョニングプロセスは失敗します。

この問題を回避するには、以下のスニペットを /etc/opensc.conf ファイルに追加します。

app pkcs15-init {
        framework pkcs15 {
                use_file_caching = false;
        }
}

pkcs15-init を使用したスマートカードのプロビジョニングは、前述の回避策を適用している場合に限り機能します。

(BZ#1947025)

systemd が任意のパスからコマンドを実行できない

SELinux ポリシーパッケージにはこのようなルールが含まれていないため、systemd サービスは /home/user/bin の任意のパスからコマンドを実行できません。そのため、システム以外のパスで実行されるカスタムサービスは失敗し、SELinux がアクセスを拒否すると、AVC (アクセスベクターキャッシュ) 監査メッセージをログに記録します。この問題を回避するには、以下のいずれかを実行します。

  • -c オプションを指定し、シェル スクリプトを使用してコマンドを実行します。以下に例を示します。

    bash -c command
  • /bin/sbin/usr/sbin/usr/local/bin/usr/local/sbin の共通のディレクトリーを使用して共通のパスからコマンドを実行します。

(BZ#1860443)

selinux-policy により、IPsec が TCP で機能しないようにします。

RHEL 8.4 の libreswan パッケージは、TCP カプセル化を使用した IPsec ベースの VPN に対応します。ただし、selinux-policy パッケージでは、この更新が反映されません。これにより、Libreswan が TCP を使用するよう設定すると、ipsec サービスは指定の TCP ポートにバインドできません。

この問題を回避するには、カスタムの SELinux ポリシーを使用します。

  1. テキストエディターで新しい .cil ファイルを開きます。以下に例を示します。

    # vim local_ipsec_tcp_listen.cil
  2. 以下のルールを挿入します。

    (allow ipsec_t ipsecnat_port_t (tcp_socket (name_bind name_connect)))
  3. ファイルを保存してから閉じます。
  4. ポリシーモジュールをインストールします。

    # semodule -i local_ipsec_tcp_listen.cil
  5. ipsec サービスを再起動します。

    # systemctl restart ipsec

これにより、Libreswan は、一般的に使用される 4500/tcp ポートにバインドおよび接続できます。

(BZ#1931848)

Server with GUI または Workstation ソフトウェアの選択と CIS セキュリティープロファイルを使用したインストールはできません。

CIS セキュリティープロファイルは、Server with GUI および Workstation ソフトウェアの選択と互換性がありません。そのため、Server with GUI ソフトウェアの選択と CIS プロファイルを使用した RHEL 8 のインストールはできません。CIS プロファイルと、これらのソフトウェアの選択のいずれかを使用したインストール試行では、エラーメッセージが生成されます。

package xorg-x11-server-common has been added to the list of excluded packages, but it can't be removed from the current software selection without breaking the installation.

この問題を回避するには、Server with GUI または Workstation ソフトウェアの選択で CIS セキュリティープロファイルを使用しないでください。

(BZ#1843932)

CIS プロファイルで rpm_verify_permissions が失敗する

rpm_verify_permissions ルールでは、ファイルパーミッションがパッケージのデフォルトパーミッションと比較されます。ただし、scap-security-guide パッケージで提供される Center for Internet Security (CIS) プロファイルでは、一部のファイルパーミッションがデフォルトよりも厳格なものに変更されます。その結果、rpm_verify_permissions を使用した特定ファイルの検証が失敗します。

この問題を回避するには、これらのファイルに以下のパーミッションがあることを手作業で確認します。

  • /etc/cron.d (0700)
  • /etc/cron.hourly (0700)
  • /etc/cron.monthly (0700)
  • /etc/crontab (0600)
  • /etc/cron.weekly (0700)
  • /etc/cron.daily (0700)

(BZ#1843913)

RHEL 8 のキックスタートが、com_redhat_oscap の代わりに org_fedora_oscap を使用

キックスタートは、com_redhat_oscap ではなく、org_fedora_oscap として Open Security Content Automation Protocol (OSCAP) Anaconda アドオンを参照します。これが、混乱を招く可能性があります。これは、Red Hat Enterprise Linux 7 との後方互換性を維持するために行われます。

(BZ#1665082)

SSG における相互依存ルールの特定のセットが失敗する可能性があります。

ルールとその依存関係の順序付けを定義しないため、ベンチマークの SCAP Security Guide (SSG) ルールの修正が失敗する可能性があります。たとえば、特定の順番で複数のルールを実行する必要がある場合、あるルールがコンポーネントをインストールし、別のルールが同じコンポーネントを設定した場合すると、それらは正しくない順序で実行される可能性があり、修正によってエラーが報告されます。この問題を回避するには、修正を回実行して、番目の実行で依存ルールを修正します。

(BZ#1750755)

OSCAP Anaconda Addon がすべてのパッケージをテキストモードでインストールしません。

OSCAP Anaconda Addon プラグインは、インストールがテキストモードで実行している場合、システムインストーラーによってインストールに選択されているパッケージのリストを変更することはできません。これにより、キックスタートを使用してセキュリティーポリシープロファイルが指定され、インストールがテキストモードで実行している場合に、インストール中にセキュリティーポリシーに必要な追加パッケージがインストールされません。

この問題を回避するには、グラフィカルモードでインストールを実行するか、キックスタートファイルの %packages セクションにあるセキュリティーポリシーで、セキュリティーポリシープロファイルに必要なパッケージをすべて指定します。

これにより、セキュリティーポリシープロファイルで必要となるパッケージは、上記の回避策のいずれかを行わなければ RHEL インストールインストール時にインストールされません。また、インストール後のシステムは、指定のセキュリティーポリシープロファイルと互換性がありません。

(BZ#1674001)

oscap Anaconda Addon がカスタムプロファイルを正しく処理しません。

OSCAP Anaconda Addon プラグインは、個別のファイルでカスタマイズを使用したセキュリティープロファイルを適切に処理しません。これにより、対応する Kickstart セクションで適切に指定しても、RHEL グラフィカルインストールでカスタマイズしたプロファイルは利用できません。

この問題を回避するには、ナレッジベースの記事 Creating a single SCAP data stream from an original DS and a tailoring file を参照してください。この回避策により、RHEL グラフィカルインストールでカスタマイズした SCAP プロファイルを使用できます。

(BZ#1691305)

キックスタートインストール時のサービス関連のルールの修正が失敗する場合があります。

キックスタートのインストール時に、OpenSCAP ユーティリティーで、サービス enable または disable 状態の修正が必要でないことが誤って表示されることがあります。これにより、OpenSCAP が、インストール済みシステムのサービスを非準拠状態に設定する可能性があります。回避策として、キックスタートインストール後にシステムをスキャンして修復できます。これにより、サービス関連の問題が修正されます。

(BZ#1834716)

特定の rsyslog 優先度の文字列が正常に動作しません。

imtcpGnuTLS 優先度文字列を設定して、完成していない暗号化をきめ細かく制御できるようになりました。したがって、rsyslog では、以下の優先文字列が正常に動作しません。

NONE:+VERS-ALL:-VERS-TLS1.3:+MAC-ALL:+DHE-RSA:+AES-256-GCM:+SIGN-RSA-SHA384:+COMP-ALL:+GROUP-ALL

この問題を回避するには、正しく機能する優先度文字列のみを使用します。

NONE:+VERS-ALL:-VERS-TLS1.3:+MAC-ALL:+ECDHE-RSA:+AES-128-CBC:+SIGN-RSA-SHA1:+COMP-ALL:+GROUP-ALL

したがって、現在の設定は、正しく機能する文字列に限定する必要があります。

(BZ#1679512)

SELinux Audit ルールと SELinux ブール値設定での競合

Audit ルールリストに、subj_* または obj_* フィールドを含む Audit ルールが含まれ、SELinux ブール値の設定が変更された場合は、SELinux ブール値を設定するとデッドロックが発生します。その結果、システムが応答しなくなり、復旧に再起動が必要になります。この問題を回避するには、subj_* または obj_* フィールドを含む Audit ルールをすべて無効にするか、SELinux ブール値を変更する前にこのようなルールを一時的に無効にします。

RHSA-2021:2168 アドバイザリーのリリースにより、カーネルはこの状況を適切に処理し、デッドロックが発生しなくなりました。

(BZ#1924230)