第8章 セキュリティー

8.1. コア暗号化コンポーネントの変更点

8.1.1. システム全体の暗号化ポリシーがデフォルトで適用

暗号ポリシーは、Red Hat Enterprise Linux 8 でコア暗号化サブシステムを構成するコンポーネントで、TLS、IPsec、DNSSEC、Kerbero の各プロトコルと、OpenSSH スイートに対応します。これにより、管理者が update-crypto-policies コマンドで選択できる小規模セットのポリシーを提供します。

デフォルト のシステム全体の暗号化ポリシーは、現在の脅威モデルに安全な設定を提供します。TLS プロトコル 1.2 と 1.3、IKEv2 プロトコル、および SSH2 プロトコルが使用できます。RSA 鍵と Diffie-Hellman パラメーターの長さが 2047 ビット以上であれば許可されます。

詳細は、Red Hat ブログの記事「Consistent security by crypto policies in Red Hat Enterprise Linux 8」と、man ページの update-crypto-policies(8) を参照してください。

8.1.2. 安全ではない暗号スイートおよびプロトコルを削除した、強力な暗号デフォルト

以下の一覧には、RHEL 8 のコア暗号化ライブラリーから削除された暗号スイートおよびプロトコルが含まれます。このアプリケーションはソースには存在しないか、またはビルド時にサポートを無効にしているため、アプリケーションは使用できません。

  • DES (RHEL 7 以降)
  • すべてのエクスポートグレードの暗号化スイート (RHEL 7 以降)
  • 署名内の MD5 (RHEL 7 以降)
  • SSLv2 (RHEL 7 以降)
  • SSLv3 (RHEL 8 以降)
  • 224 ビットより小さいすべての ECC 曲線 (RHEL 6 以降)
  • すべてのバイナリーフィールドの ECC 曲線 (RHEL 6 以降)

8.1.3. すべてのポリシーレベルで無効になっている暗号スイートおよびプロトコル

以下の暗号スイートおよびプロトコルは、すべての暗号化ポリシーレベルで無効になっています。これは、各アプリケーションで明示的に有効にした場合に限り利用可能にできます。

  • パラメーターが 1024 ビットより小さい DH
  • 鍵のサイズが 1024 ビットより小さい RSA
  • Camellia
  • ARIA
  • SEED
  • IDEA
  • 完全性のみの暗号スイート
  • SHA-384 HMAC を使用した TLS CBC モード暗号化スイート
  • AES-CCM8
  • TLS 1.3 と互換性がないすべての ECC 曲線 (secp256k1 を含む)
  • IKEv1 (RHEL 8 以降)

8.1.4. FIPS モードへのシステムの切り替え

システム全体の暗号化ポリシーには、連邦情報処理規格 (FIPS) 公開文書 140-2 の要件に準拠した暗号化モジュールのセルフチェックを有効にするポリシーレベルが含まれます。FIPS モードを有効または無効にする fips-mode-setup ツールは、内部的に FIPS のシステム全体の暗号化ポリシーレベルを使用します。

RHEL 8 の FIPS モードにシステムを切り替えるには、以下のコマンドを実行してシステムを再起動します。

# fips-mode-setup --enable

詳細は、man ページの fips-mode-setup(8) を参照してください。

8.1.5. TLS 1.0 および TLS 1.1 が非推奨に

TLS 1.0 プロトコルおよび TLS 1.1 プロトコルは、システム全体の暗号化ポリシーレベル DEFAULT で無効になります。たとえば、Firefox Web ブラウザーのビデオ会議アプリケーションで、非推奨のプロトコルを使用する必要がある場合は、システム全体の暗号化ポリシーを LEGACY レベルに変更してください。

# update-crypto-policies --set LEGACY

詳細は、Red Hat カスタマーポータルのナレッジベース「Strong crypto defaults in RHEL 8 and deprecation of weak crypto algorithms」および man ページの update-crypto-policies(8) を参照してください。

8.1.6. 暗号化ライブラリーにおける TLS 1.3 への対応

今回の更新で、主要なすべてのバックエンド暗号ライブラリーで、TLS (Transport Layer Security) 1.3 が有効になっています。これにより、オペレーティングシステムの通信層でのレイテンシーを短縮し、RSA-PSS、X25519 などの新しいアルゴリズムを使用して、アプリケーションのプライバシーとセキュリティーを強化します。

8.1.7. RHEL 8 で DSA が非推奨に

デジタル署名アルゴリズム (DSA) は、Red Hat Enterprise Linux 8 では非推奨であると考えられています。DSA キーに依存する認証メカニズムはデフォルト設定では機能しません。OpenSSH クライアントは、LEGACY のシステム全体の暗号化ポリシーレベルでも DSA ホストキーを許可しません。

8.1.8. NSSSSL2 Client Hello が非推奨に

TLS (Transport Layer Security) プロトコルバージョン 1.2 以前は、SSL (Secure Sockets Layer) プロトコルバージョン 2 と後方互換性がある形式の Client Hello メッセージを使用してネゴシエーションを開始できます。NSS (Network Security Services) ライブラリーでのこの機能への対応は非推奨となっており、デフォルトで無効になっています。

この機能への対応が必要なアプリケーションを有効にするには、新しい API の SSL_ENABLE_V2_COMPATIBLE_HELLO を使用する必要があります。この機能への対応は、Red Hat Enterprise Linux 8 の将来のリリースから完全に削除される可能性があります。

8.1.9. NSS がデフォルトで SQL を使用

Network Security Services (NSS) ライブラリーは、デフォルトで信頼データベースに SQL ファイル形式を使用するようになりました。以前のリリースでデフォルトのデータベース形式として使用されていた DBM ファイル形式は、マルチプロセスによる同時アクセスに対応せず、アップストリームでは非推奨となっていました。したがって、NSS 信頼データベースを使用するアプリケーションが鍵や証明書を保存し、取消し情報がデフォルトで SQL 形式のデータベースを作成します。レガシーの DBM 形式でデータベースを作成しようとする試みは失敗します。既存の DBM データベースを読み取り専用モードで開くと、自動的に SQL 形式に変換されます。Red Hat Enterprise Linux 6 以降、NSS では SQL ファイル形式に対応します。

8.2. SSH

8.2.1. OpenSSH がバージョン 7.8p1 にリベース

openssh パッケージが、アップストリームバージョン 7.8p1 にアップグレードされました。以下は、主な変更点です。

  • SSH version 1 プロトコルに対応しなくなりました。
  • hmac-ripemd160 メッセージ認証コードに対応しなくなりました。
  • RC4 (arcfour) 暗号に対応しなくなりました。
  • Blowfish 暗号に対応しなくなりました。
  • CAST 暗号に対応しなくなりました。
  • UseDNS オプションのデフォルト値が no に変更になりました。
  • DSA 公開鍵アルゴリズムがデフォルトで無効になりました。
  • Diffie-Hellman パラメーターの最小モジュールサイズが 2048 ビットに変更になりました。
  • ExposeAuthInfo 設定オプションのセマンティクスが変更になりました。
  • UsePrivilegeSeparation=sandbox オプションが必須になったため、無効にできなくなりました。
  • 許可される最小の RSA 鍵のサイズが 1024 ビットに設定されました。

8.2.2. libssh が SSH をコア暗号化コンポーネントとして実装

この変更により、Red Hat Enterprise Linux 8 のコア暗号化コンポーネントとして libssh が導入されました。libssh ライブラリーは、Secure SHell (SSH) プロトコルを実装しています。

libssh は、システム全体の暗号化ポリシーに準拠していません。

8.2.3. RHEL 8 で libssh2 が利用できない

非推奨の libssh2 ライブラリーは、楕円曲線、Generic Security Service Application Program Interface (GSSAPI) などの機能がなく、RHEL 8 では削除され、libssh が使用されます。

8.3. Rsyslog

8.3.1. デフォルトの rsyslog 設定ファイルの形式がレガシーではない

rsyslog パッケージの設定ファイルが、デフォルトで非レガシー形式を使用するようになりました。レガシー形式も使用できますが、現在の設定ステートメントとレガシーの設定ステートメントを混在する場合は制約がいくつかあります。以前の RHEL リリースから引き継がれた設定は修正する必要があります。詳細は、man ページの rsyslog.conf(5) を参照してください。

8.3.2. imjournal オプションと、最小の journald を使用してシステムログを設定

journald がそのファイルをローテートしたときに重複レコードが作成されないようにするために、imjournal オプションが追加されています。このオプションを使用するとパフォーマンスに影響を及ぼします。

ナレッジベースの記事「Configuring system logging without journald」に記載されるように、システムに rsyslog を設定すると、パフォーマンスが向上します。

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

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

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

8.4. OpenSCAP

8.4.1. OpenSCAP API が統合

この更新により、統合された OpenSCAP 共有ライブラリー API を提供します。63 個のシンボルが削除され、14 個が追加され、4 個で署名が更新されました。OpenSCAP 1.3.0 で削除されたシンボルには以下が含まれます。

  • バージョン 1.2.0 で非推奨とされたシンボル
  • SEAP プロトコルシンボル
  • 内部ヘルパー関数
  • 未使用のライブラリーシンボル
  • 未実装シンボル

8.4.2. oscap-podman が、コンテナーのセキュリティースキャンおよびコンプライアンススキャンで oscap-docker に置き換え

RHEL 8.2 では、コンテナーのセキュリティースキャンおよびコンプライアンススキャンを行うための新しいユーティリティーが導入されました。oscap-podman ツールが、RHEL 7 におけるコンテナーおよびコンテナーイメージのスキャンを提供する oscap-docker ユーティリティーと同等のものを提供します。

詳細は、「コンテナーおよびコンテナーイメージの脆弱性スキャン」セクションを参照してください。

8.5. Audit

8.5.1. Audit 3.0 で audispdauditd に置き換え

今回の更新で、audispd 機能が auditd に移行しました。したがって、plugins.d 設定オプションが auditd.conf に追加されました。また、plugins.d ディレクトリーが、/etc/audit に移動しました。auditd と、そのプラグインの現在のステータスは、service auditd state コマンドを実行すれば確認できます。

8.6. SELinux

8.6.1. SELinux パッケージが Python 3 に移行

  • policycoreutils-python は、policycoreutils-python-utils パッケージおよび python3-policycoreutils パッケージに置き換えられました。
  • libselinux-python パッケージの機能は、python3-libselinux パッケージで提供されるようになりました。
  • setools-libs パッケージの機能は、python3-setools パッケージで提供されるようになりました。
  • libsemanage-python パッケージの機能は、python3-libsemanage パッケージで提供されるようになりました。

8.6.2. SELinux サブパッケージの変更点

  • libselinux-staticlibsemanage-staticlibsepol-static、および setools-libs-tcl が削除されました。
  • RHEL 8.0 および 8.1 では、setools-gui および setools-console-analyses は利用できません。RHEL 8.2 は、このサブパッケージを含む RHEL 8 の最初のマイナーバージョンです。

8.6.3. SELinux ポリシーの変更

init_t ドメインタイプは、RHEL 8 では制限されなくなりました。これにより、異なる SELinux ラベリングアプローチを使用するサードパーティーアプリケーションの問題が発生する場合があります。

標準以外の場所で SELinux ラベリングの問題に対処するには、このような場所のファイルコンテキストの等価性を設定します。

  1. /my/apps および / ディレクトリーのファイルコンテキストの等価性を設定します。

    # semanage fcontext -a -e / /my/apps
  2. SELinux ポリシーのローカルカスタマイズを一覧表示して、ファイルコンテキストの等価性を確認します。

    # semanage fcontext -l -C
    
    SELinux Local fcontext Equivalence
    
    /my/apps = /
  3. /my/apps のコンテキストをデフォルトに復元します。これは、/ のコンテキストと同等になります。

    # restorecon -Rv /my/apps
    restorecon reset /my/apps context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:root_t:s0
    restorecon reset /my/apps/bin context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:bin_t:s0
    restorecon reset /my/apps/bin/executable context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:bin_t:s0

このアプローチでは、標準以外の場所にインストールされたファイルおよびディレクトリーの大半に正しいラベルを割り当てるため、実行可能ファイルの一部によって開始したプロセスが正しく開始されます。

ファイルコンテキストの等価性を削除するには、以下のコマンドを使用します。

# semanage fcontext -d -e / /my/apps
  • 詳細は、man ページの semanage-fcontext を参照してください。

8.6.4. SELinux ブール値の変更点

8.6.4.1. 新しい SELinux ブール値

今回の SELinux システムポリシーの更新により、以下のブール値が追加されました。

  • colord_use_nfs
  • deny_bluetooth
  • httpd_use_opencryptoki
  • logrotate_use_fusefs
  • mysql_connect_http
  • pdns_can_network_connect_db
  • ssh_use_tcpd
  • sslh_can_bind_any_port
  • sslh_can_connect_any_port
  • tor_can_onion_services
  • unconfined_dyntrans_all
  • use_virtualbox
  • virt_sandbox_share_apache_content
  • virt_use_pcscd

8.6.4.2. 削除された SELinux ブール値

RHEL 8 SELinux ポリシーは、以前のリリースで使用できた以下のブール値を提供しません。

  • container_can_connect_any
  • ganesha_use_fusefs

8.6.4.3. デフォルト値の変更

RHEL 8 では、以下の SELinux ブール値が、以前のリリースとは異なるデフォルト値に設定されます。

  • domain_can_map_files はデフォルトで オフ になりました。
  • httpd_graceful_shutdown はデフォルトで オフ になりました。
  • Mozilla_plugin_can_network_connect はデフォルトで オン になりました。
  • named_write_master_zones はデフォルトで オン になりました。

さらに、antivirus_use_jit および ssh_chroot_rw_homedirs のブール値の説明が変更になりました。

ブール値の一覧とその意味を取得し、有効かどうかを調べるには、selinux-policy-devel パッケージをインストールして、以下のコマンドを実行します。

# semanage boolean -l

8.6.5. SELinux ポートタイプの変更点

RHEL 8 SELinux ポリシーは、以下の追加ポートタイプを提供します。

  • appswitch_emp_port_t
  • babel_port_t
  • bfd_control_port_t
  • conntrackd_port_t
  • firepower_port_t
  • nmea_port_t
  • nsca_port_t
  • openqa_port_t
  • openqa_websockets_port_t
  • priority_e_com_port_t
  • qpasa_agent_port_t
  • rkt_port_t
  • smntubootstrap_port_t
  • statsd_port_t
  • versa_tek_port_t

ポートタイプ dns_port_t および ephemeral_port_t の定義が変更され、gluster_port_t ポートタイプが削除されました。

8.6.6. sesearch の使用方法の変更点

  • sesearch コマンドは、-C オプションを使用しなくなり、条件式を含める必要があります。
  • -T--type オプションが以下のように変更になりました。

    • -T--type_trans - type_transition ルールを検索します。
    • --type_member - type_member ルールを検索します。
    • --type_change - type_change ルールを検索します。

8.7. 削除されたセキュリティー機能

8.7.1. shadow-utils では、ユーザー名およびグループ名に数値だけを使用することができなくなる

useradd コマンドおよび groupadd コマンドでは、数値だけのユーザー名とグループ名を使用することができません。ユーザー ID およびグループ ID は数値となるため、数値だけのユーザー名およびグループ名を使用すると、ユーザー名とユーザー ID、またはグループ名とグループ ID を組み合わせて使用するツールで、混乱が生まれるためです。数値だけのユーザー名およびグループ名は、Red Hat Enterprise Linux 7 では非推奨となり、Red Hat Enterprise Linux 8 では完全に対応されなくなりました。

8.7.2. securetty がデフォルトで無効になる

最新の Linux システムでは、tty デバイスファイルの動的な特性により、PAM モジュール securetty はデフォルトで無効になり、/etc/securetty 設定ファイルが RHEL に含まれなくなりました。/etc/securetty には可能なデバイスが多数含まれているため、ほとんど場合は、実用的な効果はデフォルトで許可され、この変更の影響はあまり受けません。より大きな制限を使用する場合は、/etc/pam.d ディレクトリーの適切なファイルに、pam_securetty.so モジュールを有効にする行を追加して、新しい /etc/securetty ファイルを作成する必要があります。

8.7.3. Clevis HTTP ピンが削除される

Clevis の HTTP ピンが RHEL 8 から削除され、サブコマンドの clevis encrypt http が利用できなくなりました。

8.7.3.1. Coolkey が削除される

スマートカードの Coolkey ドライバーが RHEL 8 から削除されており、その機能が OpenSC から提供されるようになりました。

8.7.3.2. crypto-utils が削除される

crypto-utils パッケージが RHEL 8 から削除されました。代わりに、openssl パッケージ、gnutls-utils パッケージ、および nss-tools パッケージによるツールを使用できます。

8.7.3.3. Libreswanから KLIPS が削除される

Red Hat Enterprise Linux 8 では、Kernel IP Security (KLIPS) IPsec スタックのサポートが Libreswanから削除されました。


このページには機械翻訳が使用されている場合があります (詳細はこちら)。