Arxan導入前後で変わったこと
日本と海外(中国・台湾)のチート事情
株式会社ミクシィ
モンスト事業本部 開発室 室長
白川裕介
自己紹介
自己紹介
- 氏名
- 白川裕介
- 経歴
- 2012年に新卒でミクシィに入社
- SNS「mixi」でアドネットワークを担当したのちXFLAGのアドテクスタジオへ異動
- その後、モンスターストライクの開発に携わりマネージャーを経験
- 現在では開発室の室長として、モンストに関わるエンジニア組織を統括
モンスターストライク
モンスターストライク
自分のモンスターを引っ張って弾き、敵のモンスターに当てて倒していくという、スマートフォンの特性を活用した、
誰でも簡単に楽しめるアクションRPGです。ゲームはターン制をとっており、
一緒にいる友だちと最大4人まで同時に遊べる協力プレイ(マルチプレイ)が特長です。
日本・台湾・香港・マカオ・中国でサービスを展開しており
2013年の10月の提供開始から現在※までの世界累計利用者数4,900万人を突破
※ 2018年12月時点
「世界累計利用者数 4,900万人を突破したスマホアプリ」
チートとは
チートとは
チート(cheat)とは、広義にはコンピュータゲームにおいて、本来とは異な
る動作をさせる行為である。
狭義には、ゲームを優位に進めるために制作者の意図しない動作をさせる不正
行為(インチキ)を指す。
制作者が意図して組み込んだ裏技や、改造行為そのものを含む場合もある。
Wikipedia contributors. "チート." Wikipedia. Wikipedia, 4 Feb. 2019. Web. 4 Feb. 2019.
チートとは
• 一般的なゲームにおけるチート行為例
• 本来の難易度よりも大幅に簡単に進めることができる
• レアキャラクターやレアアイテムを簡単にゲット
• キャラクターを大幅に強くできる
• ユーザの保持アイテム(課金アイテム等)を増やす
• 運営側が本来想定していたゲームバランスが崩壊
• PvP系のゲームだと他の正規ユーザに大きな影響
チートを放置すると売上に影響あり、正規ユーザの離脱にもつながる
チート対策
チート対策
チート対策は大きく2種類に分類可能
1. サーバー側での対策
• サーバ側のロジックでの改竄防止、チート検知
2. クライアント側での対策
• クライアント上で動作するコードロジックでの対策・チート検知
チート対策
チート対策は大きく2種類に分類可能
1. サーバー側での対策
• 攻撃者からは関知不可能な部分なので有効
• 可能な限り改竄を事前に防止するプログラムを組むべき
2. クライアント側での対策
• アプリケーションが攻撃者の手に渡っている状況
• 攻撃者が解析・改竄が比較的容易な環境
• 攻撃者といたちごっこになる場合が多い
スマホゲームにおける一般的な攻撃例
• データファイルの改竄
• 通信内容の改竄
• バイナリの改竄
• メモリの改竄
• エミュレータによる自動化
モンストにおけるチート事情
モンストにおけるチート攻撃例
• データファイルの改竄
• ステージデータ / キャラデータの改竄
• 通信内容の改竄
• 課金アイテム / 獲得アイテム数の改竄
• バイナリの改竄
• ステージフェーズ飛ばし
• メモリの改竄
• 攻撃力 / 敵キャラ / 各種ゲームデータの改竄
• エミュレータによる自動化(※詳細は後述)
• 自動アカウント作成 / 自動進行等
• ゲーム内のアイテム取得を全自動化
モンストにおけるチート攻撃例
• ワンパンチート
• クエストを1撃でクリアするチート
• 毎ターンSS
• 特別な攻撃を毎回できるチート
• ドロ変
• 獲得したアイテムを改変 (アイテム数やレアアイテム)
• ずっと俺のターン
• 敵の攻撃が来ないチート
実際のチートの様子
• YouTubeで検索したチートの様子が撮られている動画
• 「モンスト ワンパン チート」
モンストのチート事情
• サーバー側での対策
• サーバー側で保存しているデータとの照合
• 不正なリクエストを受け付けない
• 各種ログから不正なリクエストを検知
攻撃を受ける前に対策を講じておくのが大事
攻撃への対策/検知をいかに攻撃者に隠すかも大事
モンストのチート事情
• クライアント側での対策
• バトル部分(in-game)のチートがメイン
• in-gameのゲームロジックはすべてクライアント上で実行
• ステージ攻略、キャラ獲得につながるので攻撃者から狙われやすい
• 各種ステータス・パラメータの改竄もある
先述したとおり攻撃者とのいたちごっこは目に見えている…
そこでArxanを導入
Arxanの導入
Arxanの導入
• EnsureIT
• データファイル改竄防止
• バイナリ改竄防止
• メモリ改竄防止
• 通信内容の改竄防止
• コードの難読化
• Arxan for Android
• エミュレータ検知
• Javaコードの難読化
EnsureIT(国内版モンスターストライク)
EnsureIT導入後の変化 (ワンパンチート数)
Arxan導入 BAN対応 個別チート対応
導入後の変化 (ワンパンチート数)
• EnsureITを導入
• 難読化のみではすべて解決はしない
• 個別に攻撃されている箇所の対策を実施する必要があり
• 導入時の注意点
• 厳重に守れば守るほどアプリの動作が重たくなる
• クラッシュログまで難読化される (fabric)
• BAN対応を実施しても一時的に減少するだけ
• 導入後に効果が現れているのはグラフからも顕著
EnsureIT(台湾版モンスターストライク)
EnsureIT導入後の変化 (ワンパンチート数)
Arxan導入 増加傾向
導入後の変化 (ワンパンチート数)
• 国内版に比べて1年程度導入が遅い
• 国内版で確立/実証されたチート対策が一気に導入された
• 導入後の効果
• グラフをみても明確な効果あり
• EnsureITの導入は攻撃者に対して有効な対策
• 一度対策を実施したとしても安心ではない
• 既存の改竄を防止しても攻撃者側で新たな対応を模索し実行される
Arxan for Android
Arxan for Android
導入を開始し効果 / 対応検討を実施中
• 主な目的はエミュレータの検知
• エミュレータによる大量のアカウント作成
• アプリ内キャンペーンの自動応募
• 現金やギフトカード / 海外旅行が当たるキャンペーンなど
• アプリ内報酬の自動獲得
• アプリ内の報酬を自動で大量に獲得
• 代行業者の温床
まとめ
• Arxan製品の導入
• チート行為に対する防止策としては大きな効果を発揮
• サーバー側での対策 / BAN対応などを混ぜて複合的に対応していくと効果大
• 攻撃者とのいたちごっこはつづく
• 攻撃者も対策をしてくるので継続的なチート防止対応は必要
• 攻撃者に対応内容/検知箇所が知られないようにすることが何より大事
• Arxanならガード(チート対策)をガード(チート対策)するといったことも可能
• Arxanならチート対策の発動率を調整することも可能
まとめ
我々の戦いは終わらない…
Arxan導入前後で変わったこと

Arxan導入前後で変わったこと