第3章 外部のカーネルパラメーターに対する重要な変更

本章では、システム管理者向けに Red Hat Enterprise Linux 7 に含まれるカーネルの重要な変更点をまとめています。変更には、proc エントリー、sysctl および sysfs のデフォルト値、boot パラメーター、カーネル設定オプションの追加や更新、注目すべき動作の変更などが含まれます。

新しいカーネルパラメーター

audit = [KNL]

このパラメーターにより、監査のサブシステムが有効になります。

値は 1 (enabled) または 0 (disabled) のいずれかです。デフォルト値は未設定です。この値は新規オプションではありませんが、以前は文書化されていませんでした。

形式 - { "0" | "1" }

audit_backlog_limit = [KNL]

このパラメーターは、監査キューのサイズ制限を設定します。

デフォルト値は 64 です。

形式 - <int> (must be >=0)

ipcmni_extend [KNL]
このパラメーターは、一意の System V IPC 識別子の最大数を 32 768 から 16 777 216 に増やします。
nospectre_v1 [X86,PPC]

このパラメーターは、Spectre Variant 1 (バインドチェックの回避) の軽減策を無効にします。

このオプションを使用すると、システムのデータが漏えいする可能性があります。

tsx = [X86]

このパラメーターは、TSX (Transactional Synchronization Extensions) 制御に対応する Intel プロセッサーの TSX 機能を制御します。

オプションは次のとおりです。

  • on - システムで TSX を有効にします。すべての既知のセキュリティー脆弱性には軽減策がありますが、TSX は以前のいくつかの投機に関する CVE でアクセラレーターであることが認識されています。したがって、TSX を有効な状態にしておくことに関連する未知のセキュリティーリスクが存在する可能性があります。
  • off - システムで TSX を無効にします。このオプションは、MDS (Microarchitectural Data Sampling) に対して脆弱ではない新しい CPU でのみ有効であることに注意してください。つまり、MSR_IA32_ARCH_CAPABILITIES.MDS_NO=1 があり、マイクロコードの更新により、新しい IA32_TSX_CTRL モデル固有のレジスター (MSR) を取得します。この新しい MSR は、TSX 機能を確実に非アクティブ化できます。
  • auto - システムで、X86_BUG_TAA が存在する場合に TSX を無効にし、それ以外の場合に TSX を有効にします。

    このオプションを指定しないことは、Red Hat が暗黙的に TSX を有効にしたため、tsx=on と同等です。

    詳細は、TAA - TSX Asynchronous Abort のドキュメントを参照してください。

tsx_async_abort = [X86,INTEL]

このパラメーターは、TSX Async Abort (TAA) 脆弱性の軽減策を制御します。

MDS (Micro-architectural Data Sampling) と同様、TSX (Transactional Synchronization Extensions) に対応する特定の CPU は、CPU 内部バッファーに対する攻撃に対して脆弱です。この攻撃により、特定の条件下で情報を開示ガジェットに転送できます。

脆弱なプロセッサーでは、投機的に転送されたデータをキャッシュサイドチャネル攻撃で使用して、攻撃者が直接アクセスできないデータにアクセスできます。

オプションは次のとおりです。

  • full - TSX が有効な場合に、脆弱性のある CPU で TAA 軽減策を有効にします。
  • full,nosmt - 脆弱性のある CPU で TAA 軽減策を有効にし、同時マルチスレッディング (SMT) を無効にします。TSX が無効になっていると、CPU がクロススレッド TAA 攻撃に対して脆弱ではないため、SMT は無効になりません。
  • off - TAA 軽減策を無条件で無効にします。

    MDS の影響を受けるマシンでは、MDS 軽減策をアクティブにすることで tsx_async_abort=off パラメーターが阻害される可能性があります。これは両方の脆弱性が同じメカニズムで軽減されるためです。したがって、この軽減策を無効にするには、mds=off パラメーターも指定する必要があります。

    このオプションを指定しない場合、tsx_async_abort=full と同じになります。MDS に影響し、MDS の軽減策をデプロイした CPU では、TAA の軽減策は必要なく、追加の軽減策も提供されません。

    詳細は、TAA - TSX Asynchronous Abort のドキュメントを参照してください。

更新済みカーネルパラメーター

mitigations = [X86,PPC,S390]

CPU 脆弱性に対するオプションの軽減策を制御します。これは、既存のアーキテクチャー固有のオプションの集約となる、一連の、アーキテクチャーに依存しないオプションです。

オプションは次のとおりです。

  • off - オプションの CPU 軽減策をすべて無効にします。これによりシステムパフォーマンスが向上しますが、ユーザーを複数の CPU の脆弱性にさらす可能性もあります。

    以下に相当します。

    • nopti [X86,PPC]
    • nospectre_v1 [X86,PPC]
    • nobp=0 [S390]
    • nospectre_v2 [X86,PPC,S390]
    • spec_store_bypass_disable=off [X86,PPC]
    • l1tf=off [X86]
    • mds=off [X86]
    • tsx_async_abort=off [X86]
    • kvm.nx_huge_pages=off [X86]

      例外:

      kvm.nx_huge_pages=force の場合、mitigations=offkvm.nx_huge_pages パラメーターに影響しません。

  • auto (デフォルト) - すべての CPU 脆弱性を軽減しますが、脆弱な場合でも SMT (Simultaneous multithreading) を有効にしたままにしておきます。これは、カーネルのアップグレードで SMT が自動的に無効化されないようにしたいユーザーや、SMT ベースの攻撃を他の方法で回避できるユーザーを対象にしています。

    以下に相当します。

    • (デフォルトの動作)
  • auto,nosmt - すべての CPU 脆弱性を軽減し、必要に応じて SMT (Simultaneous multithreading) を無効にします。これは、SMT が失われることを意味する場合でも、常に完全な軽減を求めるユーザーを対象としています。

    以下に相当します。

    • l1tf=flush,nosmt [X86]
    • mds=full,nosmt [X86]
    • tsx_async_abort=full,nosmt [X86]

新しい /proc/sys/fs パラメーター

negative-dentry-limit

このパラメーターの整数値は、システムで利用できる負の dentry の合計数に対するソフト制限を、使用可能なシステムメモリーの合計の割合として指定します。この値で使用できる範囲は 0-100 です。値が 0 の場合は無制限を意味します。各ユニットは、システムメモリー合計の 0.1% を表します。したがって、10% は、指定可能な最大値です。

32GB のメモリーを搭載した AMD64 または Intel 64 のシステムでは、1 % の制限が、約 170 万個の dentry、またはメモリーの GB あたり約 53,000 個の dentry になります。