メインコンテンツへスキップ
  1. ノート/
  2. システム底层/

SpectreとMeltdown

·552 文字·2 分· loading · loading · · ·
ICE345
著者
ICE345
CS Student | System | Linux | OCaml
目次

SpectreとMeltdownは、CPUの高速化機構とメモリ分離の関係を悪用する脆弱性です。細部は攻撃手法ごとに異なりますが、学習上は次の3つの概念を押さえると理解しやすくなります。

  1. 分岐予測と投機的実行(speculative execution):CPUが分岐の結果を予測し、確定前に処理を進める。
  2. キャッシュ:CPUが頻繁に使うデータを高速なメモリへ一時保存する。
  3. サイドチャネル攻撃(side-channel attack):処理結果そのものではなく、実行時間などの間接的な情報を測定する。

攻撃者は、投機的実行中に本来読めないデータへアクセスさせ、そのアクセスによってキャッシュの状態を変化させます。処理が後から取り消されても、キャッシュの状態変化は完全には消えないことがあります。攻撃者は、特定のアドレスへのアクセス時間を測定し、キャッシュに残っているかどうかを推測します。

秘密データへの投機的アクセス
キャッシュ状態の変化
アクセス時間を測定
間接的にデータを推測
SpectreとMeltdownの概念図

まとめ
#

  • キャッシュのアクセス時間には、ヒットとミスで差がある。
  • 投機的実行は通常は性能向上に役立つが、状態変化がサイドチャネルになることがある。
  • OS、コンパイラー、CPUマイクロコード、ブラウザーなどが、脆弱性ごとに緩和策を提供している。

评论