豚吐露@wiki

1335_cheat

最終更新:

ohden

- view
管理者のみ編集可

LOCAL Developer Day Online '22 /Security

13:35~14:20
Session.1:オンラインゲームにおけるチート行為とその対策/松田和樹(eagle0wl)(株式会社ラック デジタルイノベーション統括部 デジタルペンテスト部)

オンラインゲームセキュリティ
→オンラインゲームにおけるチート行為に対する対策。

チート
  • 裏技
意図的に入れた処理。バグを仕様と言い張った
  • ずる、イカサマ
glitchを含むデザイン、仕様に反する処理のうち開発者がイカサマと認定した処理
→ 通常プレイの範疇では実行できない。

  • メモリ空間改ざん
  • プログラム改ざん
  • 通信の改ざん

  • オフラインであれば他人に迷惑をかけない
→ 遊び方の問題
  • オンラインであれば他人に迷惑がかかる
→ 他プレイヤー、運営

一般userが自身の保身のためにできることはない

チート:プラットフォーム
PC/スマホ
→ 解析ツール、ノウハウが多数ある
専用機
→ ツール、ノウハウが少ない
ゲームの対応
→マルチ:PC/スマホ/専用機

ゲーム開発者はセキュリティ対策をやりたくない
→やらなきゃってことはわかってる
 →完璧な対策はできない
 →前よりは良くすることはできる
  →工数がかかる
  →ゴールが無い
→対策するなら効果測定したい
 →効果が見えないままではコストをかけれない
  →そもそもの効果測定はどうする?
   →被害金額
   →ユーザの離脱防止
   →離脱ユーザが戻るか?
   →対策してる間に飽きられる
 →コストが最優先になる
  →どれだけ売れるか分からないものにコストはかけたくない
 →対策に見合う価値はあるのか?
  →セキュリティ対策してもゲームは面白くならない
  →チーターを放置するとクソゲー化が進む
  →チートが困難なデザイン

クライアント/サーバー型
1.クライアント:キー入力
2.クライアント:キー入力orデータの送信
3.サーバー:受信データをもとに進行状況を更新
4.サーバー:進行状況を返却
5.クライアント:進行状況を更新して出力

クライアントは改造される可能性がある。
→sourceを見られても大丈夫な処理だけ書く
→隠したい機能、処理はすべてサーバー側に実装

クラウドゲーム(C/S型):クレーンゲームも含む
→クライアント側にキー、データ送信の機能のみ
→サーバーはストリーミング映像を出力し、クライアントはそれを表示するのみ
 →チート対策の観点ではクラウドゲーム最強
  →画像解析によるbotは可能
→すべてのオンラインゲームはクラウドゲームになるか?
 →当分ならない
  →サーバー負荷が高い
  →基本無料のビジネスモデルと相性最悪
  →映像をストリーミングし続けるので安定した常時接続環境が必須
   →海外の通信環境を考えると非現実的
  →通信量がすごい
  →遅延
  →Googleのstadiaも勢いがまるで無い

事例と対策
  • クライアント側の脆弱を付く場合
  • サーバー側の脆弱性を突く場合

  • パラメータチェック不備
改造によって本来指定できない値を指定すると...
→パラメータをいじってガチャの回数を指定する
 →負数を指定:実装が悪いと異常な処理になる場合がある
  →-1回回すになるとどうなるのか?
→パラメータチェックを厳密にする
 →クライアントからくるパラメータは全て改造可能
  →入力/送信時の改造は防げない
   →受診時にチェックするしか無い
    →1or10以外認めない
    →urlにパラメータを含める
     →1回の場合はこのurl、10回の場合はこのurlみたいな運用。

  • 排他制御不備
1つしかないアイテムを、複数人が同時に拾ったら
→発生:アイテムの受け取り
→移動:送料は変わらないが、アイテムと金の所有者が移る
→更新:チケットを使用したか、未使用か?
 →これらにおいて排他処理が適切でない場合
  →複数端末で多重ログインして同時に受け取ると、どちらの端末でも受け取れてしまい数が増えることがある。
→クライアントを改造して、複数回要求を連続して行うこともできる。
→データベースでトランザクション処理で排他する
 →ロールバック考慮できるか?
 →要ログ:特に課金関係。

  • まとめ
現状、こんな単純な事象は無い。と思いたい。
→ライブラリ、フレームワーク、開発ツールがフォローしてくれる。

ゲームにおける問題は多岐にわたる
→驚異を全方位でカバーするのは無理
→労力がすごい


更新日: 2022年07月26日 (火) 22時34分51秒

名前:
コメント:

すべてのコメントを見る
記事メニュー
目安箱バナー