メモ:Spectre Variant 2(CVE-2017-5715)とCPU側の対策(IBRS/eIBRS)とOS側の対策
随分前の話だけど、たまに関係性で混乱するのでメモ。
Spectre Variant 2の対策として、間接分岐の投機実行制限 (IBRS)がCPU側に実装された。
CPU側は、あくまで制限をかける手段を準備しただけなのでOS側の対応が必要。
最近のOSはintel社のCPU microcode updateを内包しているケースが多いので、BIOS更新をしなくてもOSを更新すれば緩和対策がほぼ実現できる。
CPU(intel社)の対策
- IBRS: CPU microcodeで実装,model-specific register (MSR)にIA32_SPEC_CTRL.IBRSを設けた。
- eIBRS: IBRSをハードウェアレベルで実装
OS側の対策
常時IBRSは、基本的にはkernel(ring 0)でMSRのIA32_SPEC_CTRL.IBRSに1を設定(必要な条件(HLT実行時等)では無効化再有効化を実施)。
ただ、間接分岐の投機実行制限するとCPUの処理能力が落ちる問題がある。