Edited at

Meltdown, Spectre脆弱性に関するメモ

More than 1 year has passed since last update.

1月2日にKernel-memory-leaking Intel processor design flaw forces Linux, Windows redesign(The Register)で報道された脆弱性について、各種文献を読んだ結果をまとめます。

専門外かつ個人的なメモなので間違っている箇所が多くあると思います。すみません。


脆弱性の概要


  • GoogleのProject Zeroによって発見され、2017年6月1日に各ベンダに報告されていた。

  • 本来1月9日に公表される予定であったが、メディアに「憶測による報道」をされたため、現時点でProject ZeroやIntel等からまとまった情報が出てきている


  • CVE-2017-5753, CVE-2017-5715, CVE-2017-5754が関係

  • プロセッサの投機的実行に由来する脆弱性で、主にIntelのPentiumより後のCPUにある問題であるが、一定条件化でAMDやARMも影響を受けるとされる

  • 対策のためカーネルページテーブルアイソレーションという技術が導入されたが、これによりシステムコールの実行パフォーマンスが低下する1

  • この脆弱性により、ユーザープロセスやKVMゲスト上のプロセスからカーネルメモリを読み取られてしまう

  • PoCが存在するが現時点(2018/1/5)では公開されていない。将来公開される。


  • 追記 すでにこれらの脆弱性を実証できるコードが各所で公開されています。例: Meltdown , Spectre


文献など


英語の情報


Qiita上の情報


各OSでの対策


Linux



  • Linux-4.15-rc63, Linux-4.14.114(2018/1/2)にてページテーブルアイソレーションの機能がマージされた

  • KconfigでPAGE_TABLE_ISOLATIONを有効にする必要がある5


確認方法



  • uname -a等で、Linuxカーネルのバージョンが上記の脆弱性緩和策が適用されたもの(Linux-4.14.11以降, など)になっているか確認する


  • cat /proc/cpuinfoを実行し、表示される文字列にcpu_insecureが含まれていることを確認する(AMD製CPUの場合は必要ない)


Windows

最新のWindows 10の場合、2018/1/3のKB4056892に対策が含まれているのでないかと考えられる6


確認方法

KB4056892がインストールされていることを確認するには、設定 > システム > バージョン情報 より、OSビルドが16299.192となっていることを確認する


FreeBSD

現在対応中であり、対応日程は未定である7


macOS

すでに一部については(2017/12/6)の時点で対策が完了(macOS 10.13.2)しており、現在追加の緩和策をテストしている

Intel responds to CPU security flaw as macOS 10.13.2 said to include fix for Macs


ユーザーができる対策


  • OSを常に最新にアップデートする

  • Google Chromeを使用している場合は、Full Site Isolationを有効にする8