脆弱性
Meltdown
別称: Rogue Data Cache Load
定義
アウトオブオーダー実行と権限チェックの遅延を悪用し、非特権コードがカーネルメモリを読み出せるようにするマイクロアーキテクチャ脆弱性(CVE-2017-5754)。
Meltdown は 2018 年 1 月に Spectre と同時に公表され、多くの Intel CPU と一部の ARM CPU に影響しました。欠陥は、ページ権限を侵害する load 命令が例外発生前に値を後続の一過性命令へ伝播し、依存する load がキャッシュに痕跡を残して保護されたバイトを露呈する点にあります。ユーザーモードのプロセスがカーネル全空間を毎秒メガバイト単位で吸い出せました。主な緩和策は OS 側のカーネルページテーブル分離(KPTI/KAISER)で、加えてマイクロコード更新と後続 CPU でのシリコン再設計が行われました。現在は最新ハードウェアとパッチ済みカーネルでほぼ収束していますが、見えないアーキテクチャ前提が壊滅的なセキュリティ事故を生み得ることを示しました。
例
- 脆弱な Intel CPU 上で非特権プロセスから /etc/shadow を出力する PoC。
- 2018 年初頭にクラウドで実施された KPTI 展開によるテナント越境カーネル読み取りの抑止。
関連用語
Spectre
CPU の投機的実行を悪用し、キャッシュベースのサイドチャネルを介してセキュリティ境界を越えてデータを漏えいさせるマイクロアーキテクチャ攻撃の総称。
サイドチャネル攻撃
論理的欠陥ではなく、時間・消費電力・電磁波・キャッシュ・音響など、システムの物理的または実装上の特徴を観測することで秘密情報を回復する攻撃。
タイミング攻撃
入力ごとに処理にかかる時間の差を測定することで秘密情報を回復するサイドチャネル攻撃。
脆弱性
システム、アプリケーション、または運用プロセスに存在する弱点で、攻撃者が機密性・完全性・可用性を侵害するために悪用できるもの。
CVE(共通脆弱性識別子)
公開された各ソフトウェア・ハードウェア脆弱性に一意の識別子を付与し、業界全体で曖昧さなく参照できるようにする公的カタログ。
Rowhammer
DRAM のハードウェア脆弱性。あるメモリ行を繰り返し活性化することで物理的に隣接する行のビットが反転し、メモリの整合性を損なう。