Repo-lab
CLIツール

skitter-creek-bath-salts:AMD CPUのDRAMスクランブリングで全セキュリティを解除する手法

⭐ 1,667 stars GitHub →

セキュリティ研究者Christopher Domas(GitHubハンドル: xoreaxeaxeax)が公開したリポジトリ「skitter-creek-bath-salts」が、GitHubで1667スターを獲得して注目を集めています。AMD Family 16h CPUのDRAMコントローラーを操作することで、Platform Security Processor(PSP)・System Management Mode(SMM)・マイクロコード・C6メモリという「すべての」ハードウェアセキュリティ境界を突破するという学術的概念実証(PoC)です。本記事では、その仕組み・対象環境・研究背景・注意点を詳しく解説します。

skitter-creek-bath-saltsとは?AMD DRAMスクランブリング 仕組み

skitter-creek-bath-saltsは、AMD CPUのハードウェアセキュリティを研究するためのPoCツールです。「DRAM scrambling(DRAMスクランブリング)」と呼ばれる手法を用いて、物理DRAMアドレスの変換テーブルを書き換えることで、通常はカーネルにすら不可視の保護メモリ領域へのアクセスを実現します。

リポジトリURL: https://github.com/xoreaxeaxeax/skitter-creek-bath-salts

タイトル「Spaghettifying DRAM」とも呼ばれるこの研究は、Tom's Hardware・GBHackers・heise onlineなど国際的なセキュリティメディアでも大きく取り上げられています。

アンロック対象の4領域

このツールがアンロックする対象は以下の4領域です。

  1. Platform Security Processor(PSP): AMD独自のセキュリティプロセッサのRAM
  2. System Management Mode(SMM): OSから隔離されたシステム管理モードのメモリ
  3. CPU マイクロコード: CPUの命令デコーダを制御するマイクロコードパッチ
  4. C6 DRAM: DRAM省電力モード(C6)時に使用されるメモリ領域

AMD CPU DRAMスクランブリング 仕組み:メモリ変換の深層

*p の長い旅路(The Odyssey of *p

コードが *p を逆参照すると、表向きはアドレス p のDRAMにアクセスするように見えます。しかし実際には複数の変換層を経由します。

  • 仮想アドレス(VA)
  • TLBプローブ / ページウォーク(CR3から4〜5段階)
  • 各段階での特権・書き込み・実行チェック
  • EPT/NPT 再ウォーク(仮想化環境)
  • DRAM コントローラーアドレス変換
  • 物理DRAMへの最終アクセス

DRAMコントローラーはさらに独自の変換レイヤーを持ちます。skitter-creek-bath-saltsはこの「最下層」のレジスタを操作します。

なぜAMD Family 16hで可能なのか

AMD Family 16h(2013〜2015年製)は、DRAMコントローラーの変換レジスタの情報がデータシートに公開されている最後の世代です。17h以降はこの情報が非公開になっており、同様の手法は困難です。

このレジスタは「ロックできない」という設計上の特性があり、特権レベルに関わらず書き換えが可能です。

skitter-creek-bath-saltsの使い方・実装の詳細

Quick Start: PSPのアンロック

# AMD Family 16h CPUが必要
# リポジトリをクローン後、各ディレクトリのREADMEを参照
make
sudo ./unlock-psp

PSP(Platform Security Processor)のRAMへのアクセスが確立されると、本来は見えないはずのセキュリティプロセッサの内部状態を読み取ることができます。

Quick Start: SMMのアンロック

System Management Mode(SMM)は、OSよりも高い特権で動作するファームウェアの実行モードです。SMMメモリ(SMRAM)は通常、OSからは完全に隠蔽されています。

Quick Start: マイクロコードのアンロック

CPUマイクロコードのパッチ適用領域へのアクセスにより、CPUの内部実装を詳細に調査できます。

検証方法

npm test または各ツールのVerifyセクションを参照してください。セッションJSONLのエクスポートで動作を確認できます。

RowhammervやSGXなどの既存手法との違い・なぜ今このツールか

ハードウェアセキュリティ攻撃手法として有名なものにRowhammer・SGX攻撃・Specter/Meltdownなどがあります。skitter-creek-bath-saltsとの主な違いは以下の通りです。

  • Rowhammer: メモリセルへの物理的な繰り返し書き込みによるビット反転。skitter-creek-bath-saltsは変換レジスタ操作でアドレス空間自体を書き換えるアプローチ
  • SGX攻撃: インテル固有のセキュアエンクレーブを対象。本ツールはAMD固有のPSP・SMM境界を対象
  • Spectre/Meltdown: 投機的実行を悪用するサイドチャネル攻撃。本ツールは直接的なメモリアドレス変換操作

なぜ今注目されているか: Christopher DomasはxoreaxeaxeaxというGitHubハンドルで有名な著名セキュリティ研究者であり、過去にも「mov は Turing 完全である」などの話題作を公開しています。本研究は2026年に公開され、旧世代AMDシステムのセキュリティ評価において実践的な知見を提供します。

こんな人に向いている

ハードウェアセキュリティ研究者・低レベルシステムエンジニアに特に適しています。

  • AMD Family 16h搭載システムのセキュリティ評価を行うセキュリティエンジニア
  • PSP・SMM・マイクロコードの内部実装を学術研究するセキュリティリサーチャー
  • CPUアーキテクチャとメモリシステムの深い理解を持つ低レベルシステムエンジニア

具体的な業務シナリオ

  1. セキュリティリサーチャー(大学・研究機関): AMD Family 16h搭載の旧型組み込みシステムに対してPSP解析を実施し、ハードウェアセキュリティ境界の評価手法を論文として発表する
  2. セキュリティエンジニア(ペネトレーションテスト会社): 旧型AMDシステムを使用するクライアントのリスク評価で、このPoCを参考にした脅威モデルを構築し、アップグレード推奨レポートを作成する
  3. 組み込みシステムエンジニア: AMD Family 16h搭載の産業用機器において、DRAMコントローラー設計の脆弱性を理解した上でセキュアな実装戦略を立案する

使う前に知っておきたいこと

動作環境の制限

  • AMD Family 16h CPUのみ対応(2013〜2015年製、家庭向け製品ではAPU A-seriesなど)
  • AMD Family 15hにも一部対応可能性あり(READMEに記載)
  • AMD Family 17h(Ryzen第1世代〜)以降には非対応(データシートが非公開のため)
  • インテルCPUには非対応

法的・倫理的注意

このツールは学術的・教育的セキュリティ研究のPoCです。

  • 自身が所有・管理するシステム以外での使用は、不正アクセス禁止法に抵触する可能性があります
  • 企業・組織のシステムへの適用には、事前の書面による許可が必要です
  • CTFや認定されたペネトレーションテスト環境での使用が適切です

ライセンス

リポジトリのLICENSEファイルを確認してください。商用利用・研究利用の条件を事前に確認することを強く推奨します。

パフォーマンス・リスク

DRAMコントローラーレジスタの直接操作は、システムの不安定化やデータ損失のリスクがあります。必ず本番環境以外でテストしてください。

まとめ:skitter-creek-bath-saltsでAMD CPUのハードウェアセキュリティを理解する

skitter-creek-bath-saltsは、AMD Family 16h CPUのDRAMコントローラー設計を悪用したPoCとして、ハードウェアセキュリティ研究の重要な成果を示しています。PSP・SMM・マイクロコード・C6という4つのセキュリティ境界を一連の操作でアンロックする手法は、低レベルセキュリティの世界に新たな知見をもたらしました。

AMD 17h以降の現代的CPUには対応していないため、実用的なリスクは限定的ですが、セキュリティ研究者・ハードウェアエンジニアにとっては必読の研究成果です。

関連ツール・おすすめサービス

  • DigitalOcean — セキュリティ研究用の隔離VM環境を低コストで構築できるクラウドサービス
  • さくらVPS — 国内でのセキュリティ研究環境構築に適したVPSサービス

この技術を学ぶ

ハードウェアセキュリティに興味を持った方には、Udemyのオンラインコースもおすすめです。

毎日更新のGitHubツール情報

LINEで受け取って最新情報をキャッチアップしよう

友達追加する(無料)

関連記事

この記事が役に立ったらシェアしてください