1 ポイント 投稿者 GN⁺ 2024-08-08 | 1件のコメント | WhatsAppで共有

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件のコメント

 
GN⁺ 2024-08-08
Hacker Newsのコメント
  • habibiキーの公開鍵モジュラスは、MicrosoftのRSA公開鍵と4バイトしか違わない

    • MSキーは2048ビットのRSAキー
    • 指数値を3に変更すれば、類似したキーを簡単に見つけられる
    • しかし、habibiキーを使うペイロードはRSA署名検証ルーチンの指数を変更していない
    • 依然として指数65537を使って検証しているように見える
    • これがどうして可能なのかは確信が持てない
  • 2048ビット整数は比較的簡単に因数分解できる可能性がある

    • コードは4バイトをランダムに変更して因数分解を試みる形で動作しているのかもしれない
    • その結果、小さな因数を多く持つ公開モジュラスが生成される可能性がある
    • RSAモジュラスは通常2つの素因数を持つが、より多くの因数を持っていても数学的には問題ない
  • Xbox 360のソフトモッドは、Tony Hawkのゲーム内の公園名を通じて可能だった

    • 24セグメントのROPチェーンを使用
    • ハイパーバイザーに関する簡潔な機能説明とx360ボットネットについての考察が、Xbox 360への郷愁を呼び起こす
  • strcpyの代わりにstrncpyを使うべきだった

    • Tony Hawkは安全装備を推奨することで有名
    • THUG PROモッド向けのエクスプロイトなのが残念
    • このモッドは10年以上前のもので、元の開発者は姿を消している
    • 今ではこのモッドは使えず、完全権限エクスプロイトの危険のため誰も使いたがらない
    • この記事がモッドのパッチに関心のある人に届くことを願う
  • Tony Hawkはセキュリティアナリストではなく、プロスケーターだ

    • 90年代後半から2000年代初頭にかけて、コードを監査する代わりに、ゲームシリーズを自然なものにすることに時間を費やしていた
  • habibiキーの秘密鍵が、いつ、どこで、どのように漏洩したのか気になる

    • OPはMSキーとhabibiキーの4バイト差分にパッチを当てて、署名されていない実行ファイルを動かせた
    • これは秘密鍵を手に入れていたことを意味する
  • PSXのデコンパイルをしていて、似たような事例を多く見つけた

    • memmoveはSDKライブラリ経由でリンクされるが、strcpyはBIOSで提供される
    • 1997年までには、SDKの後続バージョンでライブラリ版へパッチできたはず
  • この種のエクスプロイト解析を何度も読んできたし、これからも100回は読みたい

    • 素晴らしい記事だ
  • コンソール開発における誤ったセキュリティ思考の好例

    • 「自分たちが保存したデータだけをパースすればいい」という考え方は間違っている
    • コンソールはユーザーを敵とみなすべきではない
    • しかし、そうするのであれば、ゲーム側もそれに見合ったセキュリティ思考を持つべきだ
  • VSCodeプラグインがトリック名を生成し、連続するキー入力に対してコンボポイントを採点するところを想像してみてほしい

    • Tony Hawk's Pro-grammer