TONY HAWK’S PRO STRCPY
概要
- 2016年に Xbox ハックのための新しいバグを見つけるために始まったプロジェクト
- 2000年代初頭のゲーム機はセキュリティ緩和策が少なく、ハッキング学習に適している
- Tony Hawk’s Pro Skater 4 のゲームセーブファイルを解析し、バッファオーバーフロー脆弱性を発見
Part 1: はじめに
- Tony Hawk’s Pro Skater 4 の "Create-A-Park" 機能を通じて脆弱性を発見
- ゲームセーブファイルのギャップ名文字列を strcpy 関数でコピーする過程でバッファオーバーフローが発生
- 悪意のあるセーブファイルを作成して Xbox 上で実行し、コード実行権限を獲得
Part 2: リモートコード実行
- メモリーカードなしでネットワーク経由でゲーム機をハックする方法を模索
- マルチプレイヤー LAN ゲームでセーブファイルを送信し、クライアント側ゲーム機をハックする方法を試行
- クライアント側ゲーム機がホストから送信されたセーブファイルを読み込む際にバッファオーバーフローが発生
- クライアント側ゲーム機へ補助ペイロード実行ファイルを送信するため、ネットワークメッセージハンドラを作成
Variant 分析
- Tony Hawk’s Pro Skater 3、Tony Hawk’s Underground 1 & 2、Tony Hawk’s American Wasteland など他のゲームでも類似の脆弱性を発見
- 一部のゲームはスタッククッキーを使用してバッファオーバーフローを防止
最終結果
- クライアント側ゲーム機がホスト側ゲーム機に接続すると、悪意のあるセーブファイルをネットワーク経由で送信
- クライアント側ゲーム機がペイロード実行ファイルを受信して実行
- リモートコード実行と非同期ファイル転送に成功
GN⁺のまとめ
- この記事は Xbox のような旧世代ゲーム機のセキュリティ脆弱性を調査し、悪用する過程を扱う
- 旧世代ゲーム機はセキュリティ緩和策が少なく、ハッキング学習に適しており、さまざまなバグを通じてコード実行権限を獲得できる
- ネットワーク経由のリモートコード実行手法を探ることで、メモリーカードなしでもゲーム機をハックできる方法を提示
- 類似機能を持つ他のゲームでも脆弱性を発見して分析し、さまざまなハッキング手法を学べる
- この記事はハッキングおよびセキュリティ研究に関心のある人に有用な情報を提供し、旧世代ゲーム機のセキュリティ脆弱性の理解に役立つ
1件のコメント
Hacker Newsのコメント
habibiキーの公開鍵モジュラスは、MicrosoftのRSA公開鍵と4バイトしか違わない
2048ビット整数は比較的簡単に因数分解できる可能性がある
Xbox 360のソフトモッドは、Tony Hawkのゲーム内の公園名を通じて可能だった
strcpyの代わりにstrncpyを使うべきだったTony Hawkはセキュリティアナリストではなく、プロスケーターだ
habibiキーの秘密鍵が、いつ、どこで、どのように漏洩したのか気になる
PSXのデコンパイルをしていて、似たような事例を多く見つけた
memmoveはSDKライブラリ経由でリンクされるが、strcpyはBIOSで提供されるこの種のエクスプロイト解析を何度も読んできたし、これからも100回は読みたい
コンソール開発における誤ったセキュリティ思考の好例
VSCodeプラグインがトリック名を生成し、連続するキー入力に対してコンボポイントを採点するところを想像してみてほしい