- ネタバレ注意: 「可能。」
- テーマ: バグがないときには創造的な方法が必要であり、ハードウェア故障注入がその解決策になりうる。これにはソフトウェア制御データ破損、電源グリッチ、クロックグリッチ、電磁パルス、レーザーなどが含まれる。
- ハードウェア故障注入: 通常は高価な機材が必要だが、安価な方法としては圧電式BBQ点火器をインダクタと組み合わせ、電磁故障注入(EMFI)ツールとして使う方法がある。
テスト対象
- 機材: Samsung S3520ノートPC、Intel i3-2310M CPU、1GB DDR3 RAM。
- 目標: ハードウェア故障に基づくローカル権限昇格エクスプロイトを書くこと。
- 方法: DDRバスのDQピンの1つに故障を注入し、メモリエラーを誘発する。
CPythonでのビット反転エクスプロイト
- 目標: CPythonで「サンドボックス脱出」エクスプロイトを書くこと。
- 戦略: bytesオブジェクト内に偽のbytearray構造を作成し、CPythonがこの偽オブジェクトへの参照を提供するよう誘導する。
Linuxでのビット反転エクスプロイト
- 目標: 非特権Linuxユーザーからroot権限を取得すること。
- 中核概念: メモリキャッシュ、仮想メモリとページテーブル、トランスレーション・ルックアサイド・バッファ(TLB)。
- 戦略: ページテーブルをユーザーアクセス可能なメモリにマップし、任意の物理メモリにアクセスできるようにする。
実用的な利用
- 応用: EMFIを利用したWindows LPEにより、ゲーマーがPCの制御権を取り戻せるようにする。
- 今後の可能性: 「ゲーミングRAM」にRP2040を搭載し、自動化されたエクスプロイトを実装できる可能性。
GN⁺のまとめ
- この記事は、安価なハードウェア故障注入によってソフトウェアおよびハードウェアのセキュリティ脆弱性を探る方法を説明している。
- ハードウェア故障注入は高価な機材がなくても可能であり、これによってさまざまなセキュリティ境界を越えられる可能性を示している。
- この記事は、ハードウェアとソフトウェアの相互作用を理解するのに役立ち、セキュリティ研究者やハッカーにとって有用になりうる。
- 類似の機能を持つプロジェクトとしては、Rowhammerのようなメモリ故障注入技法がある。
2件のコメント
ライターから点火装置を外してゲームセンターのコインを積み増しするのを思い出しますね
Hacker Newsのコメント
Switch 2でルート権限を取得することが着想の元であり、Linuxでルート権限を得ることがPOCだった。目標は、TPMやゲームのリング0アンチチートを破ることなく、ハードウェアの所有権を取り戻すことだった
物理アクセスが可能なら、BIOSを書き直したりドライバのバックドアを仕込んだりできる。しかし、ディスクが暗号化されていれば、こうしたハックは不可能だ
誰かがタバコ用ライターでルートアクセスを得た、という話だと勘違いした。両親のオーブンが定期的にソフトウェアアップデートを受けているので、タバコ用ライターがスマートでもおかしくないとは思った
0x100_0000における_の目的は、何も変更しないことだ。数値の値には影響しない80年代から90年代のシドニーでのアーケード筐体に対するエクスプロイトを思い出した。圧電式点火装置を使ってゲームにクレジットを追加できた
これはHNに期待するタイプのコンテンツだ。何人かの才能には驚かされる。こうした技術を身につけるのにどれほど時間がかかるのか気になる
単なる面白いエクスプロイトであるだけでなく、CPUキャッシュの動作原理に関する素晴らしいミニ入門にもなっている。論理ゲートから始めてコンピュータがどう動くかを説明したWebサイトを覚えている人はいるだろうか
「15オームの抵抗器1つと、DQ26にはんだ付けしたワイヤ1本だけが必要だ。ワイヤはアンテナのように機能し、近くのEM干渉をデータバスへ直接流し込む」
Mastodonで彼をフォローしているが、その投稿も素晴らしい。Mastodonにはルートアクセスを実演する動画がある