パスワードを忘れた? アカウント作成
13349016 story
ゲーム

ゲームでキャラクターを倒すとリモートコード実行が可能になるSource Engineの脆弱性 26

ストーリー by headless
必勝 部門より
ゲーム内キャラクターを倒すことでリモートからのコード実行が可能となるValveのSource SDKの脆弱性について、発見したOne Up Securityが解説している(One Up Securityの記事The Vergeの記事)。

脆弱性が存在するのは倒されたキャラクターに適用されるラグドールモデルの処理に関する部分だ。Source Engineではマップファイルにカスタムコンテンツを格納することでユーザーがマップにコンテンツを追加できる。ラグドールモデルファイルをオリジナルと同じリソースパスでマップファイルに格納すれば、オリジナルを置き換えることが可能となる。

ラグドールモデルのルールはトークン化して読み込まれるが、トークン化の際に適切な境界チェックが行われない。そのため、特別に細工したラグドールデータを読み込ませるとバッファーサイズを超えるトークンが生成され、バッファーオーバーフローが発生する。さらにsteamclient.dllではASLRが有効になっていないため、メモリーアドレスは予測可能だという。PoCは30日以内の公開が予告されており、Shell32.dllを読み込ませてcmd.exeを実行するものとのこと。

報告を受けたValveでは、Counter Strike: Global OffensiveTeam Fortress 2Half-Life 2: DeathmatchPortal 2Left 4 Dead 2などの修正を行い、パッチの提供を6月に開始している。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 脆弱性じゃない。 (スコア:5, おもしろおかしい)

    by captainalice (36396) on 2017年07月23日 10時12分 (#3248801)
    ゲームだから裏技。

    #仮面ライダーエグゼイドが面白い
    • by Anonymous Coward on 2017年07月23日 10時38分 (#3248806)

      ソースエンジンは野良ユーザの立てたサーバに導入されているMODを接続時にクライアントに落とさせることができるので、この脆弱性はヤバいのですよ。
      あとオンライプレイしていなくても、カスタムマップやカスタムモデルはSteam WorkshopというValve公式のプラットフォームからダウンロードさせることができるため、シングルプレイしかしてなくても危険はあります。

      親コメント
      • by Anonymous Coward

        PCゲームはMODで改変できますからね。ただ開発元がMODに前向きな場合この手の動作を脆弱性と呼ぶかどうかは怪しい。というかこんな回りくどいことをしなくても配布したコードを簡単に実行できるゲームが結構ある。例えば有名ドコロだとスカイリム等。

        • by Anonymous Coward

          MODに前向きだったとしても、システム改変(改ざん?)を伴う挙動はあかんやろ。。。
          #HDDバースト で検索

        • by Anonymous Coward

          オンラインゲームでサーバーに接続することが回りくどいとは思いませんが。

      • by Anonymous Coward

        SAO辺りでこの脆弱性をモデルにしたエピソードを作れそうですね。

    • by Anonymous Coward

      ネトゲ(死語)ならチート

    • by Anonymous Coward

      ネットワーク接続は出来たとしても別付けのアダプターを使う必要があり、本体のファームウェアの書き換えも出来ない頃の機種なら確かに裏技扱いですね。

      こういうのとか
      FF6に任意のコードを実行できる脆弱性が発見される
      https://it.srad.jp/story/15/04/21/0428213 [it.srad.jp]

      ちなみに発見者のおやつさんは、TASを使ったプレイやROM解析より、ロマサガシリーズを人間として間違ってるレベルの縛りプレイでバグ技なしまたは極めて限定的にしか使わないプレイでクリアする事で有名です。

      • by Anonymous Coward

        FF6でバグ技を制限しなかったらひどい目にあったのでバグ技禁止するようになったのかと

        • by Anonymous Coward

          FF6はひたすら楽してシリーズで、レベル制限等の縛りなし・余計な稼ぎなし・無駄な戦闘もなし・編集は頑張らない、というコンセプトでやっており、ひたすら楽をした結果です。
          当然、楽してるのか怪しい事は多々ありますけど。

          ロマサガ3はひらめきだけで最小戦闘回数とか、セレクトボタン禁止RTAとか、そういう狂った縛りが入ります。

  • ハッカー「リモートコード実行されたくなかったら敵1体も倒すな!」
    ゲーマー「はい」
    PC「デデーン ゲームクリアおめでとう」
    ハッカー「」

    • by Anonymous Coward

      倒す過程で生じる血しぶきの溜りはドール化してないんだろうか?

  • ので、脆弱性っていえばそうか。

    # 任意コード実行とか穴どころではないけど、意図しない悪意あるコードが実行されるわけじゃないから、脆弱性とはいえない、のか?

    --
    M-FalconSky (暑いか寒い)
  • ニーアオートマタ、すっごい楽しかった

  • 敵を無敵にすれば対策完了ですね。

  • by Anonymous Coward on 2017年07月23日 11時25分 (#3248823)

    Windowsは、*nixというかgcc/clangで言うところの-fpic/-fPIC相当の機能にしか対応してないだろ。
    -fpie/-fPIE相当の機能は完全には未対応。

    というより、今時、拡張子でファイルが実行可能かどうか判定していたり、
    如何なる権限があっても、使用中のファイルを書き換えできなかったりするWindowsでは、
    今後も位置独立実行形式には対応できず、完全な意味でのASLR対応は事実上不可能。
    ましてやOpenBSDやLinuxのようにカーネル自体にもASLRを施すKASLR対応なんて夢のまた夢。

    とまあ散々Disっといてなんだが、PIC/PIEってのは今時のCPUでは無視できるレベルであってもリソース食うし、
    髪の毛1本分であってもパフォーマンスの欲しいゲームや動画系においては、PIC/PIEオフでビルドするなんて普通によくある話じゃないんだろうか。
    実際、X.orgの動作に欠かせないMesa 3Dや、x264、x265、ffmpegあたりをno-pic、no-pieでビルドしてるディストリなんてごまんとあるだろ。
    Source EngineがASLR有効でないからといって大騒ぎする意味がわからない。

    境界チェックが微妙ってのも同様の理由でSSPオフでビルドしてるんだろうな。
    さすがにそこまでやってると、わずかなバグでもすぐにこういう脆弱性に発展するからどうかと思うが、
    ゲーマーからしたらそれでも削ってビルドしていて欲しいんじゃないだろうか。

    • by Anonymous Coward

      実行中のファイル書き換えとASLRになんの関係があるんだ?

      • by Anonymous Coward

        > 実行中のファイル書き換えとASLRになんの関係があるんだ?

        まずはOSの原理を勉強しましょう
        勉強すれば
        実行中のファイル書き換えとASLRの関係も理解できるようになります

        • by Anonymous Coward

          実行ファイルの基底アドレスの変更は実行ファイル自身の変更を伴わなくてもできるが?
          そもそもメモリ上にあるのにどうしてファイルの変更が必要だと思ったの?

    • by Anonymous Coward

      >> というより、今時、拡張子でファイルが実行可能かどうか判定していたり、

      未だにこんなことを言ってるバカがいるとは……
      MS-DOSの時代からヘッダーでチェックしてるぞ。

  • by Anonymous Coward on 2017年07月23日 11時48分 (#3248829)

    例えば百年後とか千年後とか、遠い未来であれば、こういう問題も乗り越えられているのだろうか。

    • by Anonymous Coward on 2017年07月23日 13時28分 (#3248851)

      根絶は無理でも隔離なら可能ですね
      マシンパワーにあかせて全てを仮想サンドボックスにしてしまえばいい
      上層へ抜ける穴をどう塞ぐかすら多層構造の力技みたいな
      要は致命的な攻撃が致命的なところに届かなければよいので

      # 当たらなければどうということはない

      親コメント
      • by Anonymous Coward

        IBMの新しいメインフレーム向けCPU、z14がこの方向ですね。
        メモリ、ファイル上のすべてのデータを力任せに暗号化してしまう。

    • by Anonymous Coward

      「プログラマーが気をつければいい」 [developers.srad.jp]とかいう老害がのさばっているうちは無理だろ。

    • by Anonymous Coward

      人間ができる事なら人工知能でもできるようになるはず。
      サーバー攻撃・防御の双方が技術的特異点を超えて、
      人間ハッカーでは手を出しようがなくなる日はそう遠くないかもしれない。

typodupeerror

最初のバージョンは常に打ち捨てられる。

読み込み中...