概要
- DRAMコントローラのアドレス変換 を操作することで、CPU上のあらゆる保護領域へアクセス可能
- AMD Family 16h 向けに実証、他アーキテクチャにも応用可能性
- 物理アドレスとDRAM座標の乖離 を利用し、上位のセキュリティ機構をバイパス
- 線形代数 でアドレス変換を逆算し、保護領域のデータ復元が可能
- Platform Security ProcessorやSMMなどのアンロック も実現
DRAMスクランブルによるCPU全領域アンロック
-
skitter-creek-bath-salts は、メモリ階層の最下層である MCT/DCT(メモリコントローラ) のアドレス変換を動的に書き換え、DRAM物理座標を再配線する攻撃手法
-
これにより、 カーネルやファームウェアからも不可視なDRAM carveout領域 (Platform Security Processor, System Management Mode, C6 DRAM, マイクロコード等)へアクセス可能
-
物理アドレスはあくまで「提案」に過ぎず、DRAMコントローラでの最終変換が本質的な実体
- 例:
xor dword [0xf80c2094], 0x00400000の1ビット反転でDRAMのアドレス空間がスパゲッティ状に変化
- 例:
-
上位の保護機構(MMU, IOMMU, SMM, PSP等)は物理アドレスまでしか監視できない ため、この変換を悪用すると全ての保護をバイパス可能
- AMD Family 16h はDRAMコントローラの変換レジスタがロック不可で、仕様書にも記載あり
- Family 17h以降は仕様書から該当情報が削除 されているが、同様の原理は他アーキテクチャ(ARM, RISC-V等)にも応用可能
*pパイプラインの深層解剖
- 仮想アドレス(VA)からDRAMアクセスまでの多層変換パイプライン
- MMUによる仮想→物理変換
- TLB, ページウォーク, IOMMU, キャッシュ階層, インターコネクト経由
- 最後に MCT/DCTで物理アドレスがDRAM座標へ再変換
- MCT/DCTでの「バンクスワイズル」や「チャネルインターリーブ」等の設定を変更 することで、物理アドレスとDRAM座標の対応関係を任意に書き換え
- この操作は OSやファームウェア、CPU自身の保護機能の下層で行われる ため、全てのセキュリティ境界を突破
DRAMアドレススクランブルの実装例
- 実行の流れ
- ターゲットアドレスとMMIO領域のTLBを事前にプライム
- 割り込み無効化(cli)、キャッシュフラッシュ(clflush)、バリア命令(mfence, lfence) で状態を固定
- DRAMコントローラのレジスタ書き換えでアドレス変換を一時的に変更
- 保護領域のデータを取得後、元に戻す
- 割り込み再有効化、AP(他コア)再開
- 例:
mov eax, [0xf80c2094] ; MMIO TLBプライム mov eax, [0x6f800000] ; ターゲットTLBプライム pushf cli clflush [0x6f800000] mfence lfence xor dword [0xf80c2094], 1<<22 ; DCTスワイズル反転 mov ebx, [0x6f800000] ; スクランブル後のデータ取得 xor dword [0xf80c2094], 1<<22 ; 元に戻す mfence lfence popf - ページング・キャッシュ・TLB・スレッディングを適切に制御 すれば、C言語などからも同様の操作が可能
保護領域のアンロックと逆変換
- DRAMコントローラの変換はGF(2)線形写像
- 変換行列を線形代数で逆算することで、任意のDRAM座標への対応物理アドレスを計算可能
- スクランブル後の変換行列の逆写像と、元の変換行列の合成 で、全ての保護領域のデータにアクセス
- 仕様書が不十分でも、実機観測と線形代数で変換パターンを再構築可能
まとめ:CPU/DRAM保護機構の根本的限界
- DRAMコントローラ層でのアドレス変換操作で、全セキュリティ境界を突破可能
- 上位レイヤの壁(SMM, PSP, MMU, IOMMU, カーネル等)はDRAM座標の再配線に無力
- 物理アドレスとDRAM座標の分離を突いた攻撃は、仕様書記載の有無やアーキテクチャ問わず本質的な脆弱性
- 現実的な防御策には、DRAMコントローラ自体のロックや、変換情報の秘匿化が必要
この手法は、 CPUとDRAMの最深部でのアドレス変換操作 によって、 全てのハードウェア/ソフトウェア保護領域をバイパスしうる ことを示している。仕様書やOSの想定を超えた低レイヤ攻撃のため、 プラットフォームの根本的なセキュリティ設計見直しが必要 となる。