第3章 外部のカーネルパラメーターに対する重要な変更
本章では、システム管理者向けに、Red Hat Enterprise Linux 7.6 に同梱されるカーネルにおける重要な変更の概要について説明します。この変更には、
proc
エントリー、sysctl
および sysfs
のデフォルト値、boot パラメーター、カーネル設定オプションの追加や更新、注目すべき動作の変更などが含まれます。
カーネルパラメーター
- hardened_usercopy = [KNL]
- このパラメーターは、ブートに対して強化を有効にするか (デフォルト)、無効にするかを指定します。強化された usercopy チェックは、カーネルの
copy_to_user()
/copy_from_user()
インターフェイスの境界チェックの欠陥に対する事前の防御として、既知のメモリー割り当て境界を超えて読み書きできないようにカーネルを保護するために使用されます。有効な設定は、on
、off
です。on
– 強化されたユーザーコピーチェックを実行します (デフォルト)。off
– 強化されたユーザーコピーチェックを無効にします。 - no-vmw-sched-clock [X86,PV_OPS]
- 準仮想化された VMware スケジューラークロックを無効にし、デフォルトのクロックを使用します。
- rdt = [HW,X86,RDT]
- 個々の RDT 機能をオンまたはオフにします。使用可能な機能は、
cmt
、mbmtotal
、mbmlocal
、l3cat
、l3cdp
、l2cat
、l2cdp
、mba
です。たとえば、cmt
をオンにしてmba
をオフにするには、次を使用します。rdt=cmt,!mba
- nospec_store_bypass_disable [HW]
- 投機的ストアバイパスの脆弱性に対するすべての緩和策を無効にします。投機的ストアバイパス (SSB) の脆弱性の詳細は、『投機的ストアバイパスを使用したカーネルサイドチャネル攻撃 - CVE-2018-3639』 を参照してください。
- spec_store_bypass_disable = [HW]
- 特定の CPU は、投機的ストアバイパスとして知られる業界全体の一般的なパフォーマンス最適化に対するエクスプロイトに対して脆弱です。このような場合、同じメモリー位置への最近のストアは、投機的実行中の後のロードによって常に監視されるとは限りません。ただし、そのようなストアは可能性が低いため、特定の投機実行ウィンドウの終わりに命令を終了する前に検出できます。脆弱なプロセッサーでは、投機的に転送されたストアがキャッシュサイドチャネル攻撃に使用される可能性があります。この例としては、攻撃者が直接アクセスできないメモリー (サンドボックスコード内など) を読み取ることが挙げられます。このパラメーターは、SSB の脆弱性を軽減するための投機的ストアバイパス (SSB) 最適化を使用するかどうかを制御します。可能な値は次のとおりです。
on
– SSB を無条件に無効にします。off
– SSB を無条件に有効にします。auto
– カーネルは、CPU モデルに SSB の実装が含まれているかどうかを検出し、最も適切な軽減策を選択します。prctl
– prctl を使用してスレッドの SSB を制御します。SSB はデフォルトでプロセスに対して有効になっています。コントロールの状態はフォークに継承されます。このオプションを指定しないことは、spec_store_bypass_disable=auto
と同等です。投機的ストアバイパス (SSB) の脆弱性の詳細は、『投機的ストアバイパスを使用したカーネルサイドチャネル攻撃 - CVE-2018-3639』 を参照してください。 - nmi_watchdog = [KNL,BUGS=X86]
- これらの設定には、
nmi_watchdog
およびhardlockup_panic
sysctl を使用して実行時にアクセスできるようになりました。
新規および更新された/proc/sys/kernel/エントリー
- hardlockup_panic
- このパラメーターは、ハードロックアップが検出された場合にカーネルがパニックを起こすかどうかを制御します。可能な値は次のとおりです。
0
– ハードロックアップ時にパニックを起こしません。1
– ハードロックアップでパニックを起こします。これは、nmi_watchdog
カーネルパラメーターを使用して設定することもできます。 - perf_event_mlock_kb
- mlock 制限にカウントされない CPU ごとのリングバッファーのサイズを制御します。デフォルト値は
512 + 1
ページです。 - perf_event_paranoid
- 特権のないユーザー (
CAP_SYS_ADMIN
なし) によるパフォーマンスイベントシステムの使用を制御します。デフォルト値は2
です。可能な値は次のとおりです。-1
– すべてのユーザーによる大部分のイベントの使用を許可します。>=0
–CAP_SYS_ADMIN
を持たないユーザーによる ftrace 関数トレースポイントおよび raw トレースポイントへのアクセスを禁止します。>=1
–CAP_SYS_ADMIN
を持たないユーザーによる CPU イベントアクセスを禁止します。>=2
–CAP_SYS_ADMIN
を持たないユーザーによるカーネルプロファイリングを禁止します。
新しい /proc/sys/net/core エントリー
- bpf_jit_harden
- Berkeley Packet Filter (BPF) Just in Time (JIT) コンパイラーの強化を有効にします。Extended Berkeley Packet Filter (eBPF) JIT バックエンドがサポートされています。硬化を有効にするとパフォーマンスは犠牲になりますが、JIT スプレーを軽減できます。可能な値は次のとおりです。
0
– JIT 強化を無効にします (デフォルト値)。1
– 特権のないユーザーに対してのみ JIT 強化を有効にします。2
– すべてのユーザーに対して JIT 強化を有効にします。