狠狠撸
Submit Search
CEDEC 2015 チートチャレンジ
Sep 1, 2015
5 likes
2,688 views
Akira Saso
CEDEC 2015 チート&クラッキングチャレンジでの発表資料です。 今回の大会では、 @y_hag, @Ga_ryo_ と協力して取り組みました。
Engineering
Read more
1 of 56
Download now
Downloaded 14 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Ad
Recommended
PDF
Etwest2014 ts 6
Shinji Kobayashi
?
PDF
スマートフォンゲームのチート事情
直生 亀山
?
PDF
SECCON 2015 × CEDEC CHALLENGE
kusano_k
?
PDF
とある颁辞肠辞蝉2诲虫アプリのチート编
kumin1030
?
PDF
一般的なチートの手法と対策について
優介 黒河
?
PDF
SECCON 2015 x CEDEC CHALLENGE (vulscryptos)
Charo_IT
?
PDF
オンラインゲームのチートとセキュリティ
Hayato Doi
?
PDF
とある诊断员の厂贰颁颁翱狈オンライン予选
zaki4649
?
PDF
【Unity道場スペシャル 2017京都】スマホゲーム開発者なら知っておくべきチートのリスク&対策
Unity Technologies Japan K.K.
?
PPTX
顿别狈础冲罢别肠丑肠辞苍2017冲顿别狈础でのチート?脆弱性诊断への取り组み
Toshiharu Sugiyama
?
PDF
滨苍迟别谤辞辫2015-肠4-3-モハ?イルケ?ームのチート対策
Osamu Kurokochi
?
PDF
アカウントハッキングと戦う!モバイルゲームに今、求められるセキュリティ
NHN テコラス株式会社
?
PPTX
摆颁贰顿贰颁2012闭ネットワークゲームの不正行為と対策
gree_tech
?
PPTX
ソーシャルゲームにレコメンドエンジンを导入した话
Tokoroten Nakayama
?
PPTX
オンラインゲームとセキュリティ改
土井 勇人
?
PPTX
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
DeNA
?
PDF
CEDEC?CHALLENGE ゲームAI プログラミングコンテスト 2013 in?CEDEC
Kazunori Sakamoto
?
PPT
Component basedgameenginedesign
DADA246
?
PDF
社会シミュレーションとデジタルゲーム
Youichiro Miyake
?
PDF
GDC2018 Amazon Overview
Amazon Web Services Japan
?
PPT
础颈-尝耻驳(础颈锄耻.尝罢×つくらぐ)「2.情报大学生ならゲームつくろうぜ!」
louis 0023
?
PDF
【厂罢搁3 パネルトーク】
Up Hatch
?
More Related Content
Similar to CEDEC 2015 チートチャレンジ
(14)
PDF
【Unity道場スペシャル 2017京都】スマホゲーム開発者なら知っておくべきチートのリスク&対策
Unity Technologies Japan K.K.
?
PPTX
顿别狈础冲罢别肠丑肠辞苍2017冲顿别狈础でのチート?脆弱性诊断への取り组み
Toshiharu Sugiyama
?
PDF
滨苍迟别谤辞辫2015-肠4-3-モハ?イルケ?ームのチート対策
Osamu Kurokochi
?
PDF
アカウントハッキングと戦う!モバイルゲームに今、求められるセキュリティ
NHN テコラス株式会社
?
PPTX
摆颁贰顿贰颁2012闭ネットワークゲームの不正行為と対策
gree_tech
?
PPTX
ソーシャルゲームにレコメンドエンジンを导入した话
Tokoroten Nakayama
?
PPTX
オンラインゲームとセキュリティ改
土井 勇人
?
PPTX
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
DeNA
?
PDF
CEDEC?CHALLENGE ゲームAI プログラミングコンテスト 2013 in?CEDEC
Kazunori Sakamoto
?
PPT
Component basedgameenginedesign
DADA246
?
PDF
社会シミュレーションとデジタルゲーム
Youichiro Miyake
?
PDF
GDC2018 Amazon Overview
Amazon Web Services Japan
?
PPT
础颈-尝耻驳(础颈锄耻.尝罢×つくらぐ)「2.情报大学生ならゲームつくろうぜ!」
louis 0023
?
PDF
【厂罢搁3 パネルトーク】
Up Hatch
?
【Unity道場スペシャル 2017京都】スマホゲーム開発者なら知っておくべきチートのリスク&対策
Unity Technologies Japan K.K.
?
顿别狈础冲罢别肠丑肠辞苍2017冲顿别狈础でのチート?脆弱性诊断への取り组み
Toshiharu Sugiyama
?
滨苍迟别谤辞辫2015-肠4-3-モハ?イルケ?ームのチート対策
Osamu Kurokochi
?
アカウントハッキングと戦う!モバイルゲームに今、求められるセキュリティ
NHN テコラス株式会社
?
摆颁贰顿贰颁2012闭ネットワークゲームの不正行為と対策
gree_tech
?
ソーシャルゲームにレコメンドエンジンを导入した话
Tokoroten Nakayama
?
オンラインゲームとセキュリティ改
土井 勇人
?
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
DeNA
?
CEDEC?CHALLENGE ゲームAI プログラミングコンテスト 2013 in?CEDEC
Kazunori Sakamoto
?
Component basedgameenginedesign
DADA246
?
社会シミュレーションとデジタルゲーム
Youichiro Miyake
?
GDC2018 Amazon Overview
Amazon Web Services Japan
?
础颈-尝耻驳(础颈锄耻.尝罢×つくらぐ)「2.情报大学生ならゲームつくろうぜ!」
louis 0023
?
【厂罢搁3 パネルトーク】
Up Hatch
?
CEDEC 2015 チートチャレンジ
1.
2015/08/26SECCON 2015 x
CEDEC CHALLENGE ゲームクラッキング&チートチャレンジ 担当:Team m1z0r3 Androidアプリ 診断報告 セクコン株式会社 様
2.
m1z0r3(みぞれ)について ? 早稲田大学の情報セキュリティの研究室の有志で活動して いるCTFチーム 2 2013: m1z0r3結成 SECCON決勝大会出場 2014: MWS Cup
準優勝 SECCON決勝大会出場 2015: 危機管理コンテスト 経済産業大臣賞写真の出典: http://www.atmarkit.co.jp/ait/articles/1507/03/news101.html 主な活動実績
3.
発表について ? ゲームのセキュリティ診断士として、セクコン株式会社 の開発者および経営者に対して報告を行う ? ゲームの仕様が知らされていない中で、アプリを解析す るだけで、チートの可能性等のセキュリティ上の問題が ないか調査した 3
4.
2015/08/26SECCON 2015 x
CEDEC CHALLENGE ゲームクラッキング&チートチャレンジ 担当:Team m1z0r3 Androidアプリ 診断報告 セクコン株式会社 様
5.
目次 ? 診断概要 ? セキュリティの重要性 ?
チートの基本的な手法 ? 診断の総評 ? 通信改ざんによるスコアのチート(SandBag1) ? 通信の偽装による大量のアカウント作成(SandBag1) ? メモリ改ざんによるチート(SUNIDRA) ? まとめ 5
6.
診断概要 ? 依頼について – 現在開発中のゲームのセキュリティ診断 –
セキュリティ上の問題を引き起こす手法、影響度、対策方法 について報告を行う ? 診断環境 – 利用した端末:Nexus 7 (Android 4.4.4) – 診断日時:2015/08/01 11:00 ~ 2015/08/10 23:59 6
7.
セキュリティの重要性 7 ユーザー ゲームがつまらなくなる 課金が無駄になる 開発者 クラッカーへの対応に追われる リリース後の対策は、変更箇所が多くなる 経営者 ユーザーからの苦情の対応が生じる 企業の信用低下&売り上げが下がる セキュリティ問題が起こることによる被害
8.
チートとは ? 開発者が想定していない手法を利用して、高得点を叩き出 したり、有利にゲームを進めること ? アプリやサーバーとの通信に対しクラックを行う 8 アプリ ?
スコア ? ユーザー情報 サーバー オンラインゲームの構成 通信
9.
チートの基本的な手法 9 パターン① Proxyの利用 ? Proxyを利用してAndroidの通信を改ざんし、サーバーに送 信を行う
10.
チートの基本的な手法 10 パターン② 通信の偽装 ? プログラムを用いて通信を偽装し、サーバへリクエストを 送る void
cheat() { ??? } Program
11.
チートの基本的な手法 11 ライフの値 100 攻撃力 20 制限時間
300 9999 パターン③ メモリの改ざん ? 端末のメモリを改ざんし、パラメタを書き換える
12.
目次 ? 診断概要 ? セキュリティの重要性 ?
チートの基本的な手法 ? 診断の総評 ? 通信改ざんによるスコアのチート(SandBag1) ? 通信の偽装による大量のアカウント作成(SandBag1) ? メモリ改ざんによるチート(SUNIDRA) ? まとめ 12
13.
セキュリティ問題の評価指標 ? 問題の危険度を「実現可能性」と「被害の規模」を軸とし て3段階に分ける 13 被害の規模 実 現 可 能 性 High Medium Low ? 攻撃の実現可能性(縦軸):環境要因によるものや人的要因を考慮 ?
被害の规模(横轴):被害者数や被害の种类などを考虑
14.
総評 ? ゲームの面白さを損ねかねない影響度の大きな問題点が 複数発見された ? いくつかの初歩的なセキュリティ対策が行われておらず、 容易にチートが可能である 14
15.
発見された問題一覧 15 アプリ 項目 危険度 SandBag1 スコアの改ざんが容易
High アカウントの大量作成が可能 High 他ユーザーの名前を書き換えることが可能 Low 他ユーザーの通信改ざんが可能 Low SUNIDRA メモリ改ざんによるチートが可能 High メモリ改ざんによるキャラクターのパラメ タの改ざんが可能 Medium
16.
発見された問題一覧 16 アプリ 項目 危険度 SandBag1 スコアの改ざんが容易
High アカウントの大量作成が可能 High 他ユーザーの名前を書き換えることが可能 Low 他ユーザーの通信改ざんが可能 Low SUNIDRA メモリ改ざんによるチートが可能 High メモリ改ざんによるキャラクターのパラメ タの改ざんが可能 Medium SandBag1 ? スコアの改ざんが 容易 ? アカウントの大量 作成が可能 SUNIDRA ? メモリ改ざんに よるチートが可能
17.
SandBag1 スコアの改ざんが容易 17 SandBag1 ? スコアの改ざんが 容易 ? アカウントの大量 作成が可能 SUNIDRA ?
メモリ改ざんに よるチートが可能
18.
【概要】スコアの改ざんが容易 ? サーバーに送信されるスコアを書き換えることができ、 不正にランキング上位に入ることが出来る 18 SandBag1 ? スコアの改ざんが 容易 ?
アカウントの大量 作成が可能 SUNIDRA ? メモリ改ざんに よるチートが可能 SandBag1
19.
19 ? Proxyを用いて通信を中継する際にリクエストを書き換える HTTPリクエストヘッダ スコア情報 【再現手法】通信の改ざんが容易SandBag1 ? スコアの改ざんが 容易 ?
アカウントの大量 作成が可能 SUNIDRA ? メモリ改ざんに よるチートが可能 SandBag1
20.
20 ? Proxyを用いて通信を中継する際にリクエストを書き換える HTTPリクエストヘッダ スコア情報 99999 【再現手法】通信の改ざんが容易SandBag1 ? スコアの改ざんが 容易 ?
アカウントの大量 作成が可能 SUNIDRA ? メモリ改ざんに よるチートが可能 SandBag1
21.
? 送信する値を書き換えて上位にランクインできる 21 実際のスコア 448 pt 改ざん後のスコア 2147483647
pt 【再現手法】通信の改ざんが容易SandBag1 ? スコアの改ざんが 容易 ? アカウントの大量 作成が可能 SUNIDRA ? メモリ改ざんに よるチートが可能 SandBag1
22.
【影響】通信の改ざんが容易 22 モチベーション の低下 通常プレイでは到達できない スコアが1位にいる SandBag1 ? スコアの改ざんが 容易 ? アカウントの大量 作成が可能 SUNIDRA ?
メモリ改ざんに よるチートが可能 SandBag1
23.
【対策 1/3】通信の改ざんが容易 23 ? サーバー側で異常な値を送信してくるアカウントのデータ を削除する –
開発の必要はない – DB内の不正なユーザーを削除することで一般ユーザーに対す る影響を一時的に取り除くことができる SandBag1 ? スコアの改ざんが 容易 ? アカウントの大量 作成が可能 SUNIDRA ? メモリ改ざんに よるチートが可能 SandBag1
24.
24 ? 値の改ざんが行われていないかチェックするパラメタを追 加する – クライアントとサーバーサイドでの開発が必要。必要な工数 は少ない –
pointから計算できるハッシュ値も同時に送るようにして、値 とハッシュ値の関係が正しいかを判定する 【対策 2/3】通信の改ざんが容易SandBag1 ? スコアの改ざんが 容易 ? アカウントの大量 作成が可能 SUNIDRA ? メモリ改ざんに よるチートが可能 SandBag1
25.
【対策 2/3】通信の改ざんが容易 25 http://dobon.net/vb/dotnet/string/md5.html サンプルコード(クライアント側) uuidとスコアを連結した ものをハッシュ化 SandBag1 ? スコアの改ざんが 容易 ?
アカウントの大量 作成が可能 SUNIDRA ? メモリ改ざんに よるチートが可能 SandBag1
26.
【対策 2/3】通信の改ざんが容易 26 サンプルコード(サーバ側) スコアの正当性をチェック SandBag1 ? スコアの改ざんが 容易 ?
アカウントの大量 作成が可能 SUNIDRA ? メモリ改ざんに よるチートが可能 SandBag1
27.
【対策 3/3】通信の改ざんが容易 27 ? 通信内容の秘匿 –
開発コスト高い – 通信内容のパラメタも暗号化することで、どのようなパラメ タのやりとりが行われるかを秘匿する SandBag1 ? スコアの改ざんが 容易 ? アカウントの大量 作成が可能 SUNIDRA ? メモリ改ざんに よるチートが可能 SandBag1
28.
【対策まとめ】通信の改ざんが容易 28 対策方法 開発コストの 低さ ユーザビリ ティ セキュリティ 強度 備考 ログ監視 ○ ○
× 根本的な 解決では ない パラメタ 追加 △ ○ △ パラメタ の設定方 法なども 考える必 要がある 通信内容 の秘匿 × ○ ○ SandBag1 ? スコアの改ざんが 容易 ? アカウントの大量 作成が可能 SUNIDRA ? メモリ改ざんに よるチートが可能 SandBag1
29.
SandBag1 アカウントの大量作成が可能 29 SandBag1 ? スコアの改ざんが 容易 ? アカウントの大量 作成が可能 SUNIDRA ?
メモリ改ざんに よるチートが可能
30.
【概要】アカウントの大量作成が可能 ? 偽装した通信を大量に送ることで、アカウントを量産し、 ランキングを荒らすことができる 30 void cheat() { ??? } SandBag1 ?
スコアの改ざんが 容易 ? アカウントの大量 作成が可能 SUNIDRA ? メモリ改ざんに よるチートが可能 SandBag1 Program
31.
【再現手法】アカウントの大量作成が可能 ? アカウントを大量に作成するためのスクリプトを用意する。 31 ※httpコマンドについては、 https://github.com/jkbrzt/httpie
を参照してく ださい。 SandBag1 ? スコアの改ざんが 容易 ? アカウントの大量 作成が可能 SUNIDRA ? メモリ改ざんに よるチートが可能 SandBag1 uuidの値を変化させながら リクエストを送信する
32.
SandBag1 ? スコアの改ざんが 容易 ? アカウントの大量 作成が可能 SUNIDRA ?
メモリ改ざんに よるチートが可能 【再現手法】アカウントの大量作成が可能 32 ※他ユーザーに影響を少なくするために、pointの値は負の値を用いている SandBag1 ? アカウントを大量に作成することでランキングが大幅に 下がる アカウント量産前 34位 アカウント量産後 276位
33.
【影響】アカウントの大量作成が可能 ? ランキングの正当性が失われてしまうため、ユーザーは ゲームに対しての信頼を失ってしまう 33 SandBag1 ? スコアの改ざんが 容易 ?
アカウントの大量 作成が可能 SUNIDRA ? メモリ改ざんに よるチートが可能 SandBag1
34.
【対策 1/3】アカウントの大量作成が可能 ? IPアドレスによる制限を設ける –
不正に大量作成を行っているユーザーがないかを監視する – 問題のあるアクセスを行っているユーザーがあった場合は、 逐一そのIPアドレスからアクセスできないようにする 34 SandBag1 ? スコアの改ざんが 容易 ? アカウントの大量 作成が可能 SUNIDRA ? メモリ改ざんに よるチートが可能 SandBag1
35.
【対策 2/3】アカウントの大量作成が可能 ? CAPTCHAの利用 –
ログインしていないユーザーもランキングに乗せたい場合の 選択肢 – ボット対策の有名な手法 – 悪性ユーザーが大量にアカウントを作成することを防ぐこと ができる 35 SandBag1 ? スコアの改ざんが 容易 ? アカウントの大量 作成が可能 SUNIDRA ? メモリ改ざんに よるチートが可能 SandBag1 引用:http://www.captcha.net/
36.
【対策 3/3】アカウントの大量作成が可能 ? ログイン機能を実装する –
開発コスト高い – 画面の追加が必要なため、ユーザービリティへの影響も大き い – メールアドレスやSNS連携(Twitter やFacebook)などで登録 を行う – 登録が完了したユーザーのみランキングに反映させるように する – 登録をしないユーザーは遊べるが、ランキングへの反映がさ れないように変える 36 SandBag1 ? スコアの改ざんが 容易 ? アカウントの大量 作成が可能 SUNIDRA ? メモリ改ざんに よるチートが可能 SandBag1
37.
【対策まとめ】アカウントの大量作成が可能 37 対策方法 開発コス トの低さ ユーザビ リティ セキュリ ティ強度 備考 IPアドレスによ る作成制限を設 ける ○ ○ ×
根本的な解 決ではない CAPTCHAの利 用 △ × ○ ログイン機能を 実装する × △ ○ SandBag1 ? スコアの改ざんが 容易 ? アカウントの大量 作成が可能 SUNIDRA ? メモリ改ざんに よるチートが可能 SandBag1
38.
SUNIDRA メモリ改ざんによるチートが可能 38 SandBag1 ? スコアの改ざんが 容易 ? アカウントの大量 作成が可能 SUNIDRA ?
メモリ改ざんに よるチートが可能
39.
【概要】メモリ改ざんによるチートが可能 ? メモリの改ざんにより、制限時間を改ざんすることができる 39 SandBag1 ? スコアの改ざんが 容易 ?
アカウントの大量 作成が可能 SUNIDRA ? メモリ改ざんに よるチートが可能 SUNIDRA
40.
【再現手法】メモリ改ざんによるチートが可能 ? Androidのメモリエディッタ(GameGuardian)を利用 ? メモリ内からtimer
の値を見つけて上限値に固定し、 ゲームを通常にクリアする 40 SandBag1 ? スコアの改ざんが 容易 ? アカウントの大量 作成が可能 SUNIDRA ? メモリ改ざんに よるチートが可能 SUNIDRA Timerの値が保持 されているアドレス 300秒(制限時間の上限) に書き換える
41.
【影響】メモリ改ざんによるチートが可能 ? ランキング上位に入ることが出来る ? 正攻法でやっているユーザーのモチベーションへ深刻な 悪影響がある 41 SandBag1 ?
スコアの改ざんが 容易 ? アカウントの大量 作成が可能 SUNIDRA ? メモリ改ざんに よるチートが可能 SUNIDRA 通常プレイでは獲得 し得ないスコア
42.
【対策 1/3】メモリ改ざんによるチートが可能 ? ルート化検知を導入する –
クライアント側での開発が必要 – 端末上でのメモリ改ざんではAndroidがルート化されている 場合が多く、ルート化を検知することで対策になる – ルート化検知参考リンク: ? https://blog.netspi.com/android-root-detection-techniques/ ? http://docs.unity3d.com/ScriptReference/AndroidJavaClass.html 42 SandBag1 ? スコアの改ざんが 容易 ? アカウントの大量 作成が可能 SUNIDRA ? メモリ改ざんに よるチートが可能 SUNIDRA
43.
【対策 2/3】メモリ改ざんによるチートが可能 ? 値の検索を困難にする –
クライアント側での開発が必要 – 値をそのまま保持せず、メモリに対する検索などを妨害する – 例:値を定数値とXORしてメモリ上に保持 43 SandBag1 ? スコアの改ざんが 容易 ? アカウントの大量 作成が可能 SUNIDRA ? メモリ改ざんに よるチートが可能 SUNIDRA
44.
【対策 3/3】メモリ改ざんによるチートが可能 ? メモリ改ざんが行われていないかチェックする –
クライアント側での開発が必要 – 時間の値が不正に改ざんされていないか判別する関数を、時 間の更新と共に評価を行う – 適正な値か調べる(二重保持、ハッシュ値の保持) 44 SandBag1 ? スコアの改ざんが 容易 ? アカウントの大量 作成が可能 SUNIDRA ? メモリ改ざんに よるチートが可能 SUNIDRA
45.
【対策まとめ】メモリ改ざんによるチートが可能 45 対策方法 開発コス トの低さ ユーザビ リティ セキュリ ティ強度 備考 ルート化検知を 導入する △ ○
△ ルート化検 知の回避法 が存在 値の検索を困難 にする × ○ ○ メモリ改ざんが 行われていない かチェックする × ○ ○ SandBag1 ? スコアの改ざんが 容易 ? アカウントの大量 作成が可能 SUNIDRA ? メモリ改ざんに よるチートが可能 SUNIDRA
46.
まとめ ? チートに関する基本的な手法の説明を行った ? SandBag1とSUNIDRAに対してセキュリティ診断を行い、 セキュリティ上で特に問題と思われる点に対し、概要、再 現手法、影響度、対策方法の観点で報告を行った 46
47.
ご清聴ありがとうございました。 47
48.
補足 48
49.
ツール一覧 ? Burp – https://portswigger.net/burp/ ?
GameGuardian – https://gameguardian.net/forum/forum/68-android/ 49
50.
通信の改ざんが容易 再現手法 ? Proxy
を用いてHTTP リクエストを改ざんする。Proxy には Burp Suite Free Edition v1.6を用いた ? Android 端末のNetworkの設定でBurpを起動させているマ シンをProxyとして設定し、サーバに対するリクエストを フックする ? リクエストのpointに関するパラメタを改ざんしサーバに 送信する 50
51.
他ユーザーの名前を書き換えることが可能 概要 ? 他ユーザーのuuidを入手できた場合、ユーザー名を書き換 えることが出来る 51 書き換え 前 書き換え 後
52.
他ユーザーの通信改ざんが可能 ? サーバーとの通信がHTTPで行われているため、名前の変 更やスコアの書き換えが可能である。 ? 手法
ARP SpoofingなどでMITM攻撃をする。 ? 影響度 低い ? 対策 HTTPS通信にする。 ? 備考 サービスには深刻な影響を与える可能性は高いが、 攻撃を行うための準備が難しいため、サービス全体への影 響度は低い。 52
53.
他ユーザーの名前を書き換えることが可能 再現手法 ? 他ユーザーのuuidを入手できた場合、書き換えたいユー ザー名とポイントの更新を行う情報をサーバーに送る。 53
54.
他ユーザーの名前を書き換えることが可能 影響度 ? uuidは、.NETの機能を用いて生成されており、ランダムで 推測は難しく影響度が低い ? しかし、サーバーとの通信はHTTPで通信されていないた め傍受されていたさいにはuuidが漏えいする危険性はある 54
55.
他ユーザーの名前を書き換えることが可能 対策手法 ? この攻撃にはpointの更新、uuidに対して認証が必要ない という問題1-1と1-2の条件が必要である ? そのため、これらの問題のどちらかが解決できれば、この 攻撃も行えなくなる 55
56.
【再現手法】メモリ改ざんによるチートが可能 ? メモリの改ざんを行うことで、キャラクターのHPや攻撃力 を改ざんすることができる 56 SandBag1 ? スコアの改ざんが 容易 ?
アカウントの大量 作成が可能 SUNIDRA ? メモリ改ざんに よるチートが可能 SUNIDRA HPの値を大幅に 高くした ←メモリ改ざん
Download