スマートフォンゲームのチート事情

35,161 views
36,752 views

Published on

@ITセキュリティセミナーでの発表資料です。動画等の一部スライドを除いています。このため発表時よりモンスト成分薄めです。ご了承ください。講演時の様子は以下です。
http://xflag.com/blog/sp_cheat.html

Published in: Engineering
0 Comments
89 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
35,161
On SlideShare
0
From Embeds
0
Number of Embeds
4,942
Actions
Shares
0
Downloads
57
Comments
0
Likes
89
Embeds 0
No embeds

No notes for slide

スマートフォンゲームのチート事情

  1. 1. 『モンスターストライク』の事例に見る ~スマートフォンゲームのチート事情~ Copyright mixi, Inc Information Security Office
  2. 2. 目次 ・はじめに ・チートとは ・チーターの心理 ・チートのリスク ・チート手法の紹介 ・ミクシィにおける取組み ・まとめ Copyright mixi, Inc Information Security Office
  3. 3. コミュニケーションを軸にしたサービスを提供し、新しい文化を創っています について
  4. 4. 自己紹介 ■氏名 :亀山直生 (かめやまなおき) ■会社 :株式会社 ミクシィ ■出身地 :埼玉県 ■趣味 :スノーボード、ゲーム、マンガなど ■資格等 :情報セキュリティスペシャリスト(IPA) ■仕事 :脆弱性診断、セキュリティ関連の教育メニューなど Copyright mixi, Inc Information Security Office チートも診ます
  5. 5. チートとは • 広義には、コンピュータゲームにおいて本来とは異なる動作をさせる 行為である。 • 狭義には、ゲームを優位に進めるため、制作者の意図しない動作を させる不正行為を指す。 • cheatを直訳すれば「ズル」あるいは「騙す」という意味の英単語。 ※ウィキペディアより一部抜粋 Copyright mixi, Inc Information Security Office
  6. 6. 例えば…? Copyright mixi, Inc Information Security Office モンストにおけるサンプルをご覧下さい。
  7. 7. 例えば…? チートの例 アイテムの増殖 ステージの全開放 獲得アイテムの改変 お金無限 ステータスの改変(敵・味方) 当り判定の拡大や縮小 スコアの改変 壁が透ける 空を飛ぶ ....etc Copyright mixi, Inc Information Security Office → ゲームによって、ズルの仕方はさまざま。
  8. 8. チーターの心理 • ズルして、ラクして、強くなりたい。 • 他人に自慢したい。 • チートの結果をお金に変えたい。 • 最終的にチートと判断がつかないギリギリのラインを探す。 Copyright mixi, Inc Information Security Office
  9. 9. チートのリスク • ゲームプレイにおいて不公平が生じてしまう。フェアでない。 • プレイヤーの一人としては気持ちの良いものではない。 • ゲームの寿命の短縮。 • 課金数の低下、課金機会の損失。 • イベント収益、売上の低下。 • ブランドイメージの低下。 • ユーザ対応コストの増加。 Copyright mixi, Inc Information Security Office ゲームを提供する私達にとって、具体的にどんなまずいことがあるのか。
  10. 10. チートの手法紹介 • メモリ改変 • 通信改変 • ローカルデータ改変 • クライアントアプリ解析・改造(リバースエンジニアリング) Copyright mixi, Inc Information Security Office これが多い
  11. 11. メモリ改変 ■説明 メジャーな手法。プロセスメモリエディタと呼ばれるツールを使用して、 メモリに格納される値(HP・攻撃・お金など)を改変する。基本的には jailbreak・root化が必要。例えば以下のようなツールがある。 iGameGuadian GameGuadian GameGem GameKiller (CheatEngine) ※PC 【基本的な使い方】 1.ターゲットとなるプロセスを選択する。 2.書き換えたい値(HP・攻撃・お金など)をメモリ内から検索する。 ※多数検索ヒットする場合は値を変化させて絞込み検索を行う。 3.目当ての値のメモリ番地が特定できたら、好きな値に書き換える。 Copyright mixi, Inc Information Security Office
  12. 12. ケース1 メモリ改変 ゴールド編 Copyright mixi, Inc Information Security Office (ゲーム内の通貨)
  13. 13. ケース1 メモリ改変 ゴールド編 Copyright mixi, Inc Information Security Office Lvl 99 そせいやく 500 G x 1 やくそう 50 G x 0 どくけし 999 G x 0 フリスク 100 G x 0 買う 売る どうぐ はなす 所持金 1000Gshop shop ゲーム 現在の所持金は1000G いらしゃい スタスタ ここからプロセスメモリエディタを使用して、 所持金1000Gを増やす場合の流れを説明します。 ※一般的なRPGの買い物画面だと思ってください。
  14. 14. ケース1 メモリ改変 ゴールド編 Copyright mixi, Inc Information Security Office Lvl 99 そせいやく 500 G x 1 やくそう 50 G x 0 どくけし 999 G x 0 フリスク 100 G x 0 買う 売る どうぐ はなす 所持金 1000Gshop shop Lvl 99 そせいやく 500 G x 1 やくそう 50 G x 0 どくけし 999 G x 0 フリスク 100 G x 0 買う 売る どうぐ はなす 所持金 1000Gshop shop 1000 検索 7件 ヒット -------------------------------------------------- 000D7DD0 1000 000D7DD4 1000 000D7DD8 1000 000D7DDC 1000 000D7DE0 1000 000D7DE4 1000 000D7DE8 1000 ゲーム プロセスメモリエディタ 現在の所持金は1000G プロセスメモリエディタ で「1000」を検索 いらしゃい スタスタ
  15. 15. ケース1 メモリ改変 ゴールド編 Copyright mixi, Inc Information Security Office Lvl 99 そせいやく 500 G x 1 やくそう 50 G x 0 どくけし 999 G x 0 フリスク 100 G x 0 買う 売る どうぐ はなす 所持金 1000Gshop shop Lvl 99 そせいやく 500 G x 1 やくそう 50 G x 0 どくけし 999 G x 0 フリスク 100 G x 0 買う 売る どうぐ はなす 所持金 1000Gshop shop 1000 検索 7件 ヒット -------------------------------------------------- 000D7DD0 1000 000D7DD4 1000 000D7DD8 1000 000D7DDC 1000 000D7DE0 1000 000D7DE4 1000 000D7DE8 1000 ゲーム プロセスメモリエディタ 現在の所持金は1000G 1000で検索すると 7件 どれが所持金かわからない プロセスメモリエディタ で「1000」を検索 いらしゃい スタスタ
  16. 16. ケース1 メモリ改変 ゴールド編 Copyright mixi, Inc Information Security Office Lvl 99 そせいやく 500 G x 1 やくそう 50 G x 0 どくけし 999 G x 0 フリスク 100 G x 0 買う 売る どうぐ はなす 所持金 500Gshop shop ゲーム 現在の所持金は500G 蘇生薬 1つ 買います うぃ 1つ500Gの「そせいやく」を購入します。 先ほどの7件の中から目当ての値をみつけるために、 「500」で絞込み検索を行います。
  17. 17. ケース1 メモリ改変 ゴールド編 Copyright mixi, Inc Information Security Office Lvl 99 そせいやく 500 G x 1 やくそう 50 G x 0 どくけし 999 G x 0 フリスク 100 G x 0 買う 売る どうぐ はなす 所持金 500Gshop shop Lvl 99 そせいやく 500 G x 1 やくそう 50 G x 0 どくけし 999 G x 0 フリスク 100 G x 0 買う 売る どうぐ はなす 所持金 1000Gshop shop 500 検索 1件 ヒット -------------------------------------------------- 000D7DE8 500 ゲーム プロセスメモリエディタ プロセスメモリエディタ で「500」を検索 現在の所持金は500G 蘇生薬 1つ 買います うぃ
  18. 18. ケース1 メモリ改変 ゴールド編 Copyright mixi, Inc Information Security Office Lvl 99 そせいやく 500 G x 1 やくそう 50 G x 0 どくけし 999 G x 0 フリスク 100 G x 0 買う 売る どうぐ はなす 所持金 500Gshop shop Lvl 99 そせいやく 500 G x 1 やくそう 50 G x 0 どくけし 999 G x 0 フリスク 100 G x 0 買う 売る どうぐ はなす 所持金 1000Gshop shop 500 検索 1件 ヒット -------------------------------------------------- 000D7DE8 500 ゲーム プロセスメモリエディタ 1件なのでコレだ! 500で検索すると 1件! プロセスメモリエディタ で「500」を検索 現在の所持金は500G 蘇生薬 1つ 買います うぃ
  19. 19. ケース1 メモリ改変 ゴールド編 Copyright mixi, Inc Information Security Office Lvl 99 そせいやく 500 G x 1 やくそう 50 G x 0 どくけし 999 G x 0 フリスク 100 G x 0 買う 売る どうぐ はなす 所持金 1000Gshop shop 500 検索 1件 ヒット -------------------------------------------------- 000D7DE8 999999_ プロセスメモリエディタ 500 を 999999 に改変 所持金を保持している箇所が判明したので、 好きな金額に改変します。 この状態でゲームに戻り、表示が更新されると…
  20. 20. ケース1 メモリ改変 ゴールド編 Copyright mixi, Inc Information Security Office Lvl 99 そせいやく 500 G x 1 やくそう 50 G x 0 どくけし 999 G x 0 フリスク 100 G x 0 買う 売る どうぐ はなす 所持金 999999Gshop shop Lvl 99 そせいやく 500 G x 1 やくそう 50 G x 0 どくけし 999 G x 0 フリスク 100 G x 0 買う 売る どうぐ はなす 所持金 1000Gshop shop 500 検索 1件 ヒット -------------------------------------------------- 000D7DE8 999999_ ゲーム プロセスメモリエディタ ! お金持ち お金持ち!
  21. 21. ケース2 メモリ改変 ドロップ改変(モンスト) 動画でご覧下さい。 Copyright mixi, Inc Information Security Office
  22. 22. 通信改変 ■説明 ローカルプロキシツールなどを利用し、クライアントとサーバの間の通 信を改変する手法。例えば以下のような部分を書き換える。 ・ゲームのプレイ結果をサーバに送信する際、スコアを書換える。 ・キャラステータスをサーバから受信する際、攻撃力を書換える。 例えば以下のようなツールがある。 Fiddler Burp Proxy Copyright mixi, Inc Information Security Office
  23. 23. ケース3 通信改変 ステージ編 Copyright mixi, Inc Information Security Office
  24. 24. ケース3 通信改変 ステージ編 Copyright mixi, Inc Information Security Office Now Loading... ステージ1 近所の草むら 「ステージ1」の情報を下さい 「ステージ1」のデータどうぞ ゲーム ゲームをしていると、このような場面を 見かけることがあると思います。
  25. 25. ケース3 通信改変 ステージ編 Copyright mixi, Inc Information Security Office Now Loading... ステージ1 近所の草むら 「ステージ1」の情報を下さい 「ステージ1」のデータどうぞ ゲーム このサーバとの通信の内容を狙います。
  26. 26. ケース3 通信改変 ステージ編 Copyright mixi, Inc Information Security Office Now Loading... ステージ1 近所の草むら 「ステージ1」の情報を下さい ゲーム ステージのIDである 1 を 100 に改変 「ステージ100」のデータどうぞ
  27. 27. ケース3 通信改変 ステージ編 Copyright mixi, Inc Information Security Office \ いきなりラスボス!! / player1 player2 player3 === player4 なぐる ける どうぐ はなす BOSS ! やたら早く最終ステージ ~ステージ100 魔王城~ よくきた 成功すれば、いきなり最終ステージに チャレンジできる場合などがあります。
  28. 28. ローカルデータ改変 ■説明 ローカルストレージやSDカードなどのユーザが触れやすい所に、 セーブデータやゲームに関する情報を保存している場合、PCや ツールでデータを改変することで、チートが可能な場合がある。 特殊な操作やツールなど無しでチート可能なのが特徴。 (これで可能なケースはあまり無いかもしれません ) Copyright mixi, Inc Information Security Office
  29. 29. クライアントアプリ解析・改造 ■説明 クライアントアプリを逆コンパイル・逆アセンブルするなどし、構造や処理 内容を解析する手法。解析に成功した場合、チーターに都合の良いよう にクライアント処理を改造するなども考えられます。 クライアントアプリの改ざんチェックなどが存在する場合もありますが、改 ざんチェックの処理そのものを潰すことも有り得ます。 Copyright mixi, Inc Information Security Office 参考程度ですが、例えば以下のようなツールがあります。 ・JD-GUI (逆コンパイラ Java) ・ILSpy (逆コンパイラ C#など) ・IDA Pro (逆アセンブラ)
  30. 30. EX チート手法の併用 1つの手法でチートが行えない場合でも、複数の手法を組合わせるこ とで、効率的にチート可能な場合があります。 (例) • プロセスメモリエディタでの検索が妨害される場合 →通信改変で目当ての値を書換える。 • 通信改変の検知を行っている場合 →通信解析などで値を確認し、プロセスメモリエディタで改変する。 • 通信パラメータもメモリの値も暗号化されている場合 →逆解析で暗号/復号のロジックをスクリプト等で再現して改変する。 Copyright mixi, Inc Information Security Office
  31. 31. チートではないがよくある話 Copyright mixi, Inc Information Security Office
  32. 32. マクロ ■説明 ゲームの処理を自動化し、ゲーム内で利益を得ようとする手法。 自動化する処理は多種多様で、スマホエミュレータとPC操作記録ツール 等を併用して自動化するなどがある。スクリプトやなんらかのマクロ機能 を利用し、通信を特定の手順で送るなども考えられます。 エミュレータには、例えば以下のようなものがあります。 Genymotion BlueStacks Andy Copyright mixi, Inc Information Security Office
  33. 33. 過剰なリセマラ ■説明 ゲームアカウントを何度も作り直し、招待特典を獲得したり、初回特典ガ チャなどを引き直すなどして、ゲーム内で優位に立とうとする行為。 チートでは無いが、あまりやられると無駄にリソースを消費する場合が ある。また、招待代行でお金を要求したり、良いアカウントを転売してい る場合もある。 Copyright mixi, Inc Information Security Office
  34. 34. ミクシィにおける取組み Copyright mixi, Inc Information Security Office
  35. 35. ミクシィにおける取組み • プログラミングによる対策 • アカウントBAN • ノウハウの蓄積および展開 • 捜査機関との連携 • チート診断 Copyright mixi, Inc Information Security Office
  36. 36. ミクシィにおける取組み • プログラミングによる対策 • アカウントBAN • ノウハウの蓄積および展開 • 捜査機関との連携 • チート診断 Copyright mixi, Inc Information Security Office この辺りを中心に紹介します。
  37. 37. ノウハウの蓄積および展開 • チートに詳しい人もいるが、そうでない人のほうが多い。 • 全員のプログラムをチェックするのは困難。 • ゲームの面白さや快適さが優先なので、開発時に意識が向かない。 • 開発の早い段階で話題に出ないと、開発者がやりづらい可能性。 Copyright mixi, Inc Information Security Office ■課題
  38. 38. ノウハウの蓄積および展開 • 個々人で持っているチートや対策の知識 • 過去事例 • 制作に携わる人の心構え Copyright mixi, Inc Information Security Office ゲームセキュリティ講習会 集約 チート対策のガイドライン
  39. 39. ゲームセキュリティ講習会 ・チート手法や対策手法の解説が中心。 ・リスク説明や心構えなど啓発的な内容。 ・ゲーム制作に携わる社員を中心に受講者を募集。 ・受講者には開発エンジニアが多いが、企画やサポート担当者も。 ・パートナー企業の方にも一緒に受講頂いている。 ・今後の施策の参考材料として、アンケートを実施。 Copyright mixi, Inc Information Security Office
  40. 40. アンケートの一部を紹介 Copyright mixi, Inc Information Security Office Q 新たな知識や気づきを得られましたか。 ・ 約9割の方が得られたと回答 ・ 約1割の方が既にチートに精通 受講者の中には既にチート事情 に精通している方もいましたが、 全体としてはまだ理解や認識が 不十分であったことが読み取れ ます。まだ、今後も取り組む余地 があるかもしれません。
  41. 41. アンケートの一部を紹介 Copyright mixi, Inc Information Security Office Q ぶっちゃけチートしたことがある。 ・ 約5割の方がないと回答。 ・ 調査熱心な方も半数。 ・ 家庭用ゲームが比較的多い。 (世代による?) ・ 今後はスマホ比率が増える?
  42. 42. 捜査機関との連携 • 各県警のサイバー犯罪対策課等。 • インターネット上の犯罪行為を捜査している。 • 事件になりそうなものは、内容の調査、個人の特定等を行う。 Copyright mixi, Inc Information Security Office 捜査機関 • 捜査機関からの依頼に基づいた技術的な調査。 • 特定された情報を基に照会があった場合の対応。 • 必要であれば調書などの作成。 ミクシィ
  43. 43. 捜査機関との連携 Copyright mixi, Inc Information Security Office http://www.sankei.com/west/news/151122/wst1511220045-n1.html 産経のニュース記事 (2015.11.22 15:53)最悪逮捕に至るケースもある チート実行用の端末を販売 本件の罪状は著作権違反 チート手法はメモリ改変 ツール自体は汎用ツール (自作ではない)
  44. 44. Copyright mixi, Inc Information Security Office モンストに限らず、チート行為はやめましょう。 チートで逮捕? 事件になるかは、他人に迷惑がかかるかどうかが重要のよう。 他社の過去事例などをみると、罪状は何種類かあるよう。
  45. 45. ミクシィにおける取組み • プログラミングによる対策 • アカウントBAN • ノウハウの蓄積および展開 • 捜査機関との連携 • チート診断 Copyright mixi, Inc Information Security Office この辺りに関して少しだけ。
  46. 46. Copyright mixi, Inc Information Security Office よくイタチごっこなどと言われますが…
  47. 47. Copyright mixi, Inc Information Security Office その通りだと思います。
  48. 48. 何故か Copyright mixi, Inc Information Security Office クライアント側のスマホ端末はユーザの所有物であり、 現状好き勝手に触れる領域である。 バトルなどのアクション性の高い部分をクライアント側で 処理していることが多い。(ダメージ計算や当り判定) バトルなどの部分は特にイタチごっこになりやすい。 アイテム数の管理などはサーバでも行いやすいためチェック可能。
  49. 49. 現状 値や処理の改変行為自体を完全に無くすことはほぼ不可能。 バランス良くチェックや検知を強化しつつ、BANを行う。 どこまでプログラミングで対処するか予め明確しておくことも重要。 未来 クラウドゲーミング? ゲーム処理が外から手の届かない所にあれば、改変行為が困難。 突き詰めれば今の手法がほぼ無意味になる可能性。 Copyright mixi, Inc Information Security Office 一体どうすれば…
  50. 50. まとめ 【狙われるポイント】 Copyright mixi, Inc Information Security Office アプリ プロセスメモリエディタで メモリ上の値も改変できる 本人であれば比較的 容易に改変できる マクロ等で自動化できる リバースエンジニアリング により解析・改造できる ローカルプロキシなどで 解析・改変できる チーターがほぼ 手出し出来ない
  51. 51. プレゼンテーションは以上となりますが Copyright mixi, Inc Information Security Office
  52. 52. Copyright mixi, Inc Information Security Office XFLAG™スタジオ 仲間を募集しています。
  53. 53. ご静聴ありがとうございました。 Copyright mixi, Inc Information Security Office

×