第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=off
はkvm.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 になります。