SlideShare a Scribd company logo
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA Technology Conference 2017
DeNAでのチート診断・脆弱性診断の取り組み
株式会社ディー・エヌ・エー
システム本部セキュリティ部
セキュリティ技術グループ
杉山 俊春
1
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
自己紹介
 所属:株式会社ディー・エヌ・エー
• セキュリティ部 セキュリティ技術グループ
 名前:杉山 俊春
 前職:セキュリティ関連の会社
⁃ 脆弱性診断(Web、スマートフォンアプリ)
⁃ Web脆弱性診断ツール(VEX)開発・販売
⁃ SaaS型Web診断サービス開発
⁃ 技術記事執筆 など
 入社:2012年1月
 現在の業務:
⁃ 脆弱性診断、社内システムセキュリティ、
セキュリティログ管理、セキュリティ設計 など
 好きなもの:猫、デザイン・イラスト系のもの
2
星野君のWebアプリ
ほのぼの改造計画 (@IT)
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA セキュリティ部(技術グループ)と私
3
2012
2013
2015
2013/4
セキュリティ
グループ発足
2014/4
セキュリティ部発足
・セキュリティ技術グループ←こっち
・セキュリティ推進グループ
Join!
セキュリティ部の位置づけ 技術グループの成り立ち
2017/2
現在9名
セキュリティ会社出身:2名
社内教育でメンバー育成
2014
2016
2017
:異動
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
DeNA セキュリティ部(技術グループ)のお仕事
 リリースするアプリ・サービスのチート・脆弱性診断全般
 本番ネットワークのセキュリティ(踏み台サーバ)
 社内ネットワークのセキュリティ
 セキュリティ相談・設計
 脆弱性情報調査・社内共有
 各種セキュリティの仕組み、ツールの作成
など色々
4
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
セキュリティって?
5
皆さん セキュリティってどうしてますか?
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
セキュリティって?
「セキュリティ」と言っても幅広いので、例えば、
 スマートフォンアプリのセキュリティ
 ゲームアプリのセキュリティ
といわれて、何をしなきゃいけないかがイメージでき
ますか?
6
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
セキュリティって?
とあるゲームで
「まだリリースしていないアイテムを所持している
ユーザがいました」
この時、考えられる原因と対策は?
7
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
セキュリティって?
8
セキュリティって難しい?
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
情報セキュリティ人材の不足
9
出典:経済産業省 IT人材の最新動向と将来推計に関する調査結果について
http://www.meti.go.jp/policy/it_policy/jinzai/27FY_report.html
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
情報セキュリティ人材の不足
10
現在
情報セキュリティ人材 28.1万人
+13.2万人不足
すごく足りていない!?
出典:経済産業省 IT人材の最新動向と将来推計に関する調査結果について
http://www.meti.go.jp/policy/it_policy/jinzai/27FY_report.html
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
情報セキュリティ人材の不足
11
でも、ちょっと待って!
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
情報セキュリティ人材の不足
12
現在
情報セキュリティ人材 28.1万人
IT人材 91.9万人
現時点でIT人材の約3割が
情報セキュリティ人材(というデータでの話)
出典:経済産業省 IT人材の最新動向と将来推計に関する調査結果について
http://www.meti.go.jp/policy/it_policy/jinzai/27FY_report.html
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
情報セキュリティ人材の不足
13
いい人材が見つかるまで待つ
セキュリティ人材を育てる
実はセキュリティ人材はたくさんいる
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
情報セキュリティ人材の不足
14
セキュリティって難しい?
↓
範囲を明確にして、ひとつずつちゃんと
見ていけばそんなにややこしい話ではない!
はず…
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
情報セキュリティ人材の不足 – 人材育成への取り組み
 実際のゲームのセキュリティに近い形のサンプル
アプリ
• Cocos-2dx (C++)で作成
• (ソースコードのデコンパイルは困難)
• Android OS上で動作
• サーバへの通信は暗号化(?)されている
このアプリを利用して、セキュリティ・キャンプ等
のイベントでハンズオンの講義なども実施
http://dena.com/jp/csr/blog/cat277/2016/09/02/003185© DeNA
 チート勉強用サンプルアプリ1
15
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
情報セキュリティ人材の不足 – 人材育成への取り組み
 チート勉強用サンプルアプリ2
 チートをしないと絶対にクリアできないゲーム
• HTML + JavaScript
⁃ ソースコードの閲覧、改変は簡単
• ブラウザ上で動作
→ CTF形式の 高校生向け セキュリティイベント用に作成
16
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
簡単なゲームでの具体的なチート例
17
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
簡単なゲームでの具体的なチート例
 具体的な例を見てみましょう!(※勉強用のサンプルアプリです)
18
戦う相手を選んで
コマンド選択して倒す!
スタミナ回復アイテムもある
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
簡単なゲームでの具体的なチート例
19
 大まかなシステムの図
プレイデータ
の保存
バトルの実行
処理
データ要求、結果保存
データの応答
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
簡単なゲームでの具体的なチート例
 できてしまったら困りそうなことを適当に列挙してみる
⁃ 敵のHPを1にする
⁃ 敵の攻撃力、防御力を-99999999にする
⁃ ユーザのHPを99999999にする
⁃ ユーザの攻撃力、防御力を99999999にする
⁃ 戦闘後にもらえる経験値を99999999にする
⁃ ユーザのレベルを99にする
⁃ 使えないコマンドを使う
⁃ ひたすら連続攻撃をする
⁃ 選択できない敵と戦う
⁃ 回復アイテムを無限に使う
⁃ スタミナを消費しないで戦闘を行う
20
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
簡単なゲームでの具体的なチート例
21
実際にどうなるかを見てみましょう!
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
提供するサービス、アプリ、ゲームでのセキュリティ
 できてしまったら困りそうなこと
⁃ 敵のHPを1にする
⁃ 敵の攻撃力、防御力を-99999999にする
⁃ ユーザのHPを99999999にする
⁃ ユーザの攻撃力、防御力を99999999にする
⁃ 戦闘後にもらえる経験値を99999999にする
⁃ ユーザのレベルを99にする
⁃ 使えないコマンドを使う
⁃ ひたすら連続攻撃をする
⁃ 選択できない敵と戦う
⁃ 回復アイテムを無限に使う
⁃ スタミナを消費しないで戦闘を行う
22
できる
できるがいまいち
※0.000001とかが正解できる
できる
できる?
できる
できる
できる
できるが無効? ※expを変えるべき
できない
できない
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
提供するサービス、アプリ、ゲームでのセキュリティ
 攻撃シナリオを雑に割り当ててみる
⁃ 敵のHPを1にする
• ソースコードの変更、利用中の値の直接変更
⁃ 敵の攻撃力、防御力を-99999999にする
• ソースコードの変更、利用中の値の直接変更
⁃ ユーザのHPを99999999にする
• ソースコードの変更、利用中の値の直接変更
⁃ ユーザの攻撃力、防御力を99999999にする
• ソースコードの変更、利用中の値の直接変更
⁃ 戦闘後にもらえる経験値を99999999にする
• サーバに送る値の変更
⁃ ユーザのレベルを99にする
• ソースコードの変更、利用中の値の直接変更、サーバに送る値の変更
⁃ 使えないコマンドを使う
• ソースコードの変更、特定命令の強制実行
⁃ ひたすら連続攻撃をする
• ソースコードの変更、特定命令の強制実行
⁃ 選択できない敵と戦う
• ソースコードの変更、特定命令の強制実行、サーバに送る値の変更、サーバから受け取る値の変更
⁃ 回復アイテムを無限に使う
• ソースコードの変更、サーバに送る値の変更、サーバから受け取る値の変更
⁃ スタミナを消費しないで戦闘を行う
• ソースコードの変更、サーバに送る値の変更、サーバから受け取る値の変更
23
以下の4つくらいのパターンで分類
・ソースコード、レスポンスの変更
・利用中の値の直接変更
・特定命令の強制実行
・サーバに送る値の変更
※厳密にはここに書いてある組み合わせ
でもできると思います
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
提供するサービス、アプリ、ゲームでのセキュリティ
24
悪い人が最終的に不正として実現したいことは……
↓
サーバ上のデータを不正なものにしたい
プレイデータの保存時
に不正なデータになっ
ていることが重要
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
提供するサービス、アプリ、ゲームでのセキュリティ
25
ブラウザアプリ(JavaScript)だとチート簡単?
↓
スマホアプリも原理的には似たようなもの!
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
スマホ向けゲームのシステム構成の色々
26
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
ゲームのシステム構成の色々
 ローカルのみ
27
アプリダウンロード
課金処理
IAP、IAB
※IAP, IAB:In App Purchase (App Store) , In App Billing (Google Play)
App Store
Google Play
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
ゲームのシステム構成の色々
 クライアントアプリ+サーバ(単純なデータの保存のみ)
28
アプリダウンロード
課金処理 App Store
Google Play
データ読み込み
データ保存
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
ゲームのシステム構成の色々
 クライアントアプリ+サーバ側ロジック
29
アプリダウンロード
課金処理 App Store
Google Play
ゲームサーバ
データ読み込み、処理結果
処理実行
課金検証
各種検証、処理実行
検証結果
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
ゲームのシステム構成の色々
 クライアントアプリ+サーバ側ロジック+SNS or プラットフォーム連
携
30
アプリダウンロード
課金処理 App Store
Google Play
ゲームサーバ
データ読み込み
処理結果
処理実行
課金検証
各種検証、
処理実行
検証結果
データ読み込み
処理結果
処理実行
ゲームプラットフォーム
データ読み込み
処理結果
処理実行
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
スマホ向けゲームアプリに対する攻撃
31
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
攻撃されうるポイント
32
アプリダウンロード
課金処理 App Store
Google Play
ゲームサーバ
データ読み込み、処理結果
処理実行
課金検証
検証結果
メモリ改ざん
不正な通信
(リクエスト)
データ
ファイル改ざん
アプリ改ざん
不正な通信
(レスポンス)
大半の最終的な
ターゲットはここ!
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
スマホ向けゲームにおけるチート、不正行為
33
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
チート勉強用サンプルアプリ - デモ画面
レスポンス改ざんで
使えるようにできる
34
© DeNA© DeNA
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
チート勉強用サンプルアプリ - 通信の改ざん
リクエスト
レスポンス
普通の通信
Proxyツールを利用した改ざん
リクエスト
悪い事をする人の環境
改ざん
改ざんされた
レスポンス
改ざんされた
リクエスト
Proxy
ツール
35
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
チート勉強用サンプルアプリ - デモ画面
 送られてるリクエストの例
POST /sfx/get_user_info.php HTTP/1.1
Accept-Encoding: identity
User-Agent: Dalvik/1.6.0 (Linux; U; Android 4.1.2; sdk Build/MASTER)
Host: appdemo.example.com
Connection: Keep-Alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 80
WgMBAQ1RU1FLX1BHRwpEUlJIGwY2Gg1RQk0RDlIaERIRFEMKXUpcQB1aRFsHTxkUGB
NFUV5EXUtJDFAW
Base64っぽいけどデコードしても謎文字列
36
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
チート勉強用サンプルアプリ - 通信の改ざん
Proxyツールを利用した再送
リクエスト
Proxy
ツール
悪い事をする人の環境
37
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
チート勉強用サンプルアプリ - デモ画面
 バイナリ解析の様子(リクエスト暗号化?の鍵を探す)
対策をしていないと、
簡単・一般的なロジックの場合、
一瞬で復号するプログラムを
作成されてしまう場合がある
1. 「Base64」で検索
2.ロジックをちょっと追って
鍵っぽい文字列を探す
38
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
チート勉強用サンプルアプリ - 通信の自動改ざん
リクエストを加工する例
③平文を
手動で改ざん
⑤改ざんされた
暗号文
Proxyツール
復号・再暗号化
モジュール
Intercept
①
②復号
④
悪い事をする人の環境
39
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
チート勉強用サンプルアプリ - デモ画面
40
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
チート勉強用サンプルアプリ - メモリ改ざん
 端末上のメモリを改ざんする例
1. アプリを止める
2. 特定の値を持つアドレスをメモリ内で検索
3. アプリを再開し、目的の値をアプリ上で変更
4. アプリを止める
5. 手順2で見つかったアドレスのうち変更後の値になったアドレスを
検索
6. 見つかったアドレス全てを目的の値に置換
7. アプリを再開
41
A68332F3 002b 0000 0050 f91f a600 0000
000a 0000
A6833303 0000 0000 0000 3039 0000 0000
0000 0000
A6833313 0000 0000 0073 0065 0000 0000
0000 0000
A6833323 0000 0000 0000 0000 0000 0000
0000 0000
:
A68332F3 002b 0000 0050 f91f a600 0000
000a 0000
A6833303 0000 0000 0000 3011 0000 0000
0000 0000
A6833313 0000 0000 0073 0065 0000 0000
0000 0000
A6833323 0000 0000 0000 0000 0000 0000
0000 0000
:
範囲指定、変化量などで
特定する方法もあり
変化を観測可能
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
チート勉強用サンプルアプリ - 診断に使っているツール
 Proxyツール
⁃ PacketProxy (自社ツール)
• OWASP ZAP や BurpSuite といったツールもよく利用される
 バイナリ解析ツール
⁃ IDA Pro
 メモリ改ざんツール
⁃ MemoryPatching (自社ツール)
• (一般的にGameGuardianなどの実際のチートに利用されるツールなども
利用されることがある)
 上記のような専用のツールが必要となるが、使い方を習得すれば
一定程度のチート診断が可能
42
例えば、「最低限カジュアルなチートは防ぐ」などの
どのレベルのチートを想定するかなどを決めておくことが重要
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
ゲームにおけるチート、不正行為 - チートは何が困るのか? -
 チートをされてしまうと起こること
⁃ ゲームバランスが崩壊 → ゲームの寿命を著しく縮める
⁃ ユーザの不公平感を生む
⁃ 非チートユーザへの直接的被害
• PvP、GvGなどのプレイヤー間での戦闘など
⁃ 課金による発生するはずの利益の損失
→特にオンラインゲームだと影響範囲や非チートユーザの関わり方が
複雑になるため致命的になりやすい
43
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
スマホ向けゲーム開発におけるチート対策例
44
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
スマホ向けゲーム開発におけるチート対策例
45
アプリダウンロード
課金処理 App Store
Google Play
ゲームサーバ
データ読み込み、処理結果
処理実行
課金検証
検証結果
メモリ改ざん
不正な通信
(リクエスト)
データ
ファイル改ざん
アプリ改ざん
不正な通信
(レスポンス)
 基本的には攻撃されうるポイントを対策していけばよい
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
スマホ向けゲーム開発におけるチート対策例
 チート対策の難しい部分
⁃ 特にクライアント上の対策については、仕組み上どう頑張っても完
璧な対策が無理な場合がある。いたちごっこ状態。
• 一定は運用でカバーする、という選択肢もある
⁃ 巧妙なチートユーザは発見が難しい
• チートなのか、単純に運がいい・上手いプレイなのかの区別がつかない
• 複製アイテムの所有者が善意の第三者の場合がある など
46
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
スマホ向けゲーム開発におけるチート対策例
 攻撃されうるポイントへの対策
⁃ 不正な通信(リクエスト・レスポンス)
• サーバサイドでの値チェック
⁃ 取りうる値の範囲、条件
⁃ パラメータの形式チェック など
• 通信の保護
⁃ 証明書Pinning
• 単純な通信のhttps化などだけではチート対策にはならない
⁃ 通信データの独自暗号化
⁃ 送受信データの改ざん検知 など
→仮に突破されても不正の兆候を捕らえられるようにしておくと
Good
47
Proxy
ツール
Pinning
値チェック
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
スマホ向けゲーム開発におけるチート対策例
 攻撃されうるポイントへの対策
⁃ メモリ改ざん、データ改ざん
• 暗号化して保存する!
⁃ 暗号ロジック、鍵がすぐに取り出せるとほとんど意味がないので、
「解析・デコンパイル対策」も頑張る
48
A68332F3 002b 0000 0050 f91f a600 0000
000a 0000
A6833303 1c80 d55b 1e6c 3658 0000 0000
0000 0000
A6833313 0000 0000 0073 0065 0000 0000
0000 0000
A6833323 0000 0000 0000 0000 0000 0000
0000 0000
:
A68332F3 002b 0000 0050 f91f a600 0000
000a 0000
A6833303 af40 0ff5 67ff a4c7 0000 0000
0000 0000
A6833313 0000 0000 0073 0065 0000 0000
0000 0000
A6833323 0000 0000 0000 0000 0000 0000
0000 0000
:
メモリ
見た目の変化とメモリ上の変化が異なる
見た目上の変化:12345 -> 12032
メモリ上の変化:1e6c 3658 -> 67ff a4c7
暗号化されて読めないデータ
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
スマホ向けゲーム開発におけるチート対策例
 攻撃されうるポイントへの対策
⁃ 解析・デコンパイル対策
• デコンパイルが難しい言語を使う
⁃ 例えば、Androidの場合、重要な処理はJavaで書かず、JNI等を使っ
て別の言語で記述した処理を呼び出す など。
⁃ できない場合は難読化を頑張る
• 暗号化などは一般的なものをそのまま使わない
⁃ 例えば、「AESだ!」とわかったら、ロジックを解析する必要はな
く、鍵だけ探せば復号できてしまう
• Packerのような解析対策の仕組みを導入する
• バイナリ内のシンボル情報を削除する
などの対策をいれる
49
※基本的にどのくらい解析が難しくなるか、という問題
Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
まとめ
 チート対策をするには、まず、『何ができるの
か』を知る事が重要
⁃ 簡単なサンプルから始めて原理を理解できると
よい
 チートの難易度と対策・運用のコストを考えなが
らバランスよく運営をしていく必要がある
50

More Related Content

What's hot

[CEDEC2017] LINEゲームのセキュリティ診断手法
[CEDEC2017] LINEゲームのセキュリティ診断手法[CEDEC2017] LINEゲームのセキュリティ診断手法
[CEDEC2017] LINEゲームのセキュリティ診断手法
LINE Corporation
 
カスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについてカスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについてalwei
 
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
Ryo Suzuki
 
FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎
ken_kitahara
 
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容
sairoutine
 
開発もQAも自動テスト!「LOST JUDGMENT:裁かれざる記憶」のQAテスター参加で進化した「テスト自動化チーム(仮)」の取り組みについて
開発もQAも自動テスト!「LOST JUDGMENT:裁かれざる記憶」のQAテスター参加で進化した「テスト自動化チーム(仮)」の取り組みについて開発もQAも自動テスト!「LOST JUDGMENT:裁かれざる記憶」のQAテスター参加で進化した「テスト自動化チーム(仮)」の取り組みについて
開発もQAも自動テスト!「LOST JUDGMENT:裁かれざる記憶」のQAテスター参加で進化した「テスト自動化チーム(仮)」の取り組みについて
SEGADevTech
 
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
Unity Technologies Japan K.K.
 
FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術
dena_study
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
 
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
Masahiro Nishimi
 
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
sairoutine
 
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things
UnityTechnologiesJapan002
 
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
Yasuhiro Mawarimichi
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
 
インタフェース完全に理解した
インタフェース完全に理解したインタフェース完全に理解した
インタフェース完全に理解した
torisoup
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
murachue
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門
torisoup
 

What's hot (20)

[CEDEC2017] LINEゲームのセキュリティ診断手法
[CEDEC2017] LINEゲームのセキュリティ診断手法[CEDEC2017] LINEゲームのセキュリティ診断手法
[CEDEC2017] LINEゲームのセキュリティ診断手法
 
カスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについてカスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについて
 
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
 
FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎
 
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容
 
開発もQAも自動テスト!「LOST JUDGMENT:裁かれざる記憶」のQAテスター参加で進化した「テスト自動化チーム(仮)」の取り組みについて
開発もQAも自動テスト!「LOST JUDGMENT:裁かれざる記憶」のQAテスター参加で進化した「テスト自動化チーム(仮)」の取り組みについて開発もQAも自動テスト!「LOST JUDGMENT:裁かれざる記憶」のQAテスター参加で進化した「テスト自動化チーム(仮)」の取り組みについて
開発もQAも自動テスト!「LOST JUDGMENT:裁かれざる記憶」のQAテスター参加で進化した「テスト自動化チーム(仮)」の取り組みについて
 
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
 
FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣デキるプログラマだけが知っているコードレビュー7つの秘訣
デキるプログラマだけが知っているコードレビュー7つの秘訣
 
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
 
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things
 
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
 
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
 
インタフェース完全に理解した
インタフェース完全に理解したインタフェース完全に理解した
インタフェース完全に理解した
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門
 

Similar to DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み

STFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テストSTFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テスト
Toshiyuki Hirata
 
「納品のない受託開発」にみるソフトウェア受託開発の未来
「納品のない受託開発」にみるソフトウェア受託開発の未来「納品のない受託開発」にみるソフトウェア受託開発の未来
「納品のない受託開発」にみるソフトウェア受託開発の未来
Yoshihito Kuranuki
 
「納品のない受託開発」にみるソフトウェア受託開発の未来
「納品のない受託開発」にみるソフトウェア受託開発の未来「納品のない受託開発」にみるソフトウェア受託開発の未来
「納品のない受託開発」にみるソフトウェア受託開発の未来
Yoshihito Kuranuki
 
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
Toshiharu Sugiyama
 
Klocworkのご紹介
Klocworkのご紹介Klocworkのご紹介
Klocworkのご紹介
Masaru Horioka
 
Social Change 〜 ソフトウェア開発者が経営者になるまでと、これからの戦略
Social Change 〜 ソフトウェア開発者が経営者になるまでと、これからの戦略Social Change 〜 ソフトウェア開発者が経営者になるまでと、これからの戦略
Social Change 〜 ソフトウェア開発者が経営者になるまでと、これからの戦略
Yoshihito Kuranuki
 
アプリの「無事故リリース」を目指して~品質管理部によるSmartBeat活用事例~
アプリの「無事故リリース」を目指して~品質管理部によるSmartBeat活用事例~ アプリの「無事故リリース」を目指して~品質管理部によるSmartBeat活用事例~
アプリの「無事故リリース」を目指して~品質管理部によるSmartBeat活用事例~
CYBIRD Co.,Ltd.
 
Pull request時の画面差分取得の自動化
Pull request時の画面差分取得の自動化Pull request時の画面差分取得の自動化
Pull request時の画面差分取得の自動化
Shunsuke Maeda
 
Jasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12Q
Jasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12QJasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12Q
Jasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12Q
Yoshihito Kuranuki
 
ウェアラブルデバイスとモーションセンサーの融合
ウェアラブルデバイスとモーションセンサーの融合ウェアラブルデバイスとモーションセンサーの融合
ウェアラブルデバイスとモーションセンサーの融合
Kaoru NAKAMURA
 
【AdStir】グローバル×スマホゲームの勝ち方!セミナー資料1102
【AdStir】グローバル×スマホゲームの勝ち方!セミナー資料1102【AdStir】グローバル×スマホゲームの勝ち方!セミナー資料1102
【AdStir】グローバル×スマホゲームの勝ち方!セミナー資料1102AdStir
 
【Ad stir】グローバル×スマホゲームの勝ち方!セミナー資料1102
【Ad stir】グローバル×スマホゲームの勝ち方!セミナー資料1102【Ad stir】グローバル×スマホゲームの勝ち方!セミナー資料1102
【Ad stir】グローバル×スマホゲームの勝ち方!セミナー資料1102
Katsuaki Sato
 
スマートアップ スマートフォンサービス マーケティング手法 〜避けよう!弊社の失敗談編〜
スマートアップ スマートフォンサービス マーケティング手法 〜避けよう!弊社の失敗談編〜スマートアップ スマートフォンサービス マーケティング手法 〜避けよう!弊社の失敗談編〜
スマートアップ スマートフォンサービス マーケティング手法 〜避けよう!弊社の失敗談編〜
Koichiro Sumi
 
Automation with SoftLayer and Zabbix
Automation with SoftLayer and ZabbixAutomation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbix
softlayerjp
 
はじめてのKinect for windows v2
はじめてのKinect for windows v2はじめてのKinect for windows v2
はじめてのKinect for windows v2
Kaoru NAKAMURA
 
Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境
Toshiyuki Hirata
 
New Integration "X" 新インテグレーションソリューション
New Integration "X" 新インテグレーションソリューションNew Integration "X" 新インテグレーションソリューション
New Integration "X" 新インテグレーションソリューション
motani_kamakura
 
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Shinya Nakajima
 
「機械学習とは?」から始める Deep learning実践入門
「機械学習とは?」から始める Deep learning実践入門「機械学習とは?」から始める Deep learning実践入門
「機械学習とは?」から始める Deep learning実践入門
Hideto Masuoka
 
CIが分からない PE(SETエンジニア)1年生が VRT(ビジュアルリグレッションテスト)をハードル低くCIを運用した
CIが分からないPE(SETエンジニア)1年生がVRT(ビジュアルリグレッションテスト)をハードル低くCIを運用したCIが分からないPE(SETエンジニア)1年生がVRT(ビジュアルリグレッションテスト)をハードル低くCIを運用した
CIが分からない PE(SETエンジニア)1年生が VRT(ビジュアルリグレッションテスト)をハードル低くCIを運用した
ssuser0be501
 

Similar to DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み (20)

STFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テストSTFとAppiumをもちいたAndroidアプリの自動テスト
STFとAppiumをもちいたAndroidアプリの自動テスト
 
「納品のない受託開発」にみるソフトウェア受託開発の未来
「納品のない受託開発」にみるソフトウェア受託開発の未来「納品のない受託開発」にみるソフトウェア受託開発の未来
「納品のない受託開発」にみるソフトウェア受託開発の未来
 
「納品のない受託開発」にみるソフトウェア受託開発の未来
「納品のない受託開発」にみるソフトウェア受託開発の未来「納品のない受託開発」にみるソフトウェア受託開発の未来
「納品のない受託開発」にみるソフトウェア受託開発の未来
 
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
 
Klocworkのご紹介
Klocworkのご紹介Klocworkのご紹介
Klocworkのご紹介
 
Social Change 〜 ソフトウェア開発者が経営者になるまでと、これからの戦略
Social Change 〜 ソフトウェア開発者が経営者になるまでと、これからの戦略Social Change 〜 ソフトウェア開発者が経営者になるまでと、これからの戦略
Social Change 〜 ソフトウェア開発者が経営者になるまでと、これからの戦略
 
アプリの「無事故リリース」を目指して~品質管理部によるSmartBeat活用事例~
アプリの「無事故リリース」を目指して~品質管理部によるSmartBeat活用事例~ アプリの「無事故リリース」を目指して~品質管理部によるSmartBeat活用事例~
アプリの「無事故リリース」を目指して~品質管理部によるSmartBeat活用事例~
 
Pull request時の画面差分取得の自動化
Pull request時の画面差分取得の自動化Pull request時の画面差分取得の自動化
Pull request時の画面差分取得の自動化
 
Jasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12Q
Jasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12QJasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12Q
Jasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12Q
 
ウェアラブルデバイスとモーションセンサーの融合
ウェアラブルデバイスとモーションセンサーの融合ウェアラブルデバイスとモーションセンサーの融合
ウェアラブルデバイスとモーションセンサーの融合
 
【AdStir】グローバル×スマホゲームの勝ち方!セミナー資料1102
【AdStir】グローバル×スマホゲームの勝ち方!セミナー資料1102【AdStir】グローバル×スマホゲームの勝ち方!セミナー資料1102
【AdStir】グローバル×スマホゲームの勝ち方!セミナー資料1102
 
【Ad stir】グローバル×スマホゲームの勝ち方!セミナー資料1102
【Ad stir】グローバル×スマホゲームの勝ち方!セミナー資料1102【Ad stir】グローバル×スマホゲームの勝ち方!セミナー資料1102
【Ad stir】グローバル×スマホゲームの勝ち方!セミナー資料1102
 
スマートアップ スマートフォンサービス マーケティング手法 〜避けよう!弊社の失敗談編〜
スマートアップ スマートフォンサービス マーケティング手法 〜避けよう!弊社の失敗談編〜スマートアップ スマートフォンサービス マーケティング手法 〜避けよう!弊社の失敗談編〜
スマートアップ スマートフォンサービス マーケティング手法 〜避けよう!弊社の失敗談編〜
 
Automation with SoftLayer and Zabbix
Automation with SoftLayer and ZabbixAutomation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbix
 
はじめてのKinect for windows v2
はじめてのKinect for windows v2はじめてのKinect for windows v2
はじめてのKinect for windows v2
 
Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境Androidアプリ開発のテスト環境
Androidアプリ開発のテスト環境
 
New Integration "X" 新インテグレーションソリューション
New Integration "X" 新インテグレーションソリューションNew Integration "X" 新インテグレーションソリューション
New Integration "X" 新インテグレーションソリューション
 
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
 
「機械学習とは?」から始める Deep learning実践入門
「機械学習とは?」から始める Deep learning実践入門「機械学習とは?」から始める Deep learning実践入門
「機械学習とは?」から始める Deep learning実践入門
 
CIが分からない PE(SETエンジニア)1年生が VRT(ビジュアルリグレッションテスト)をハードル低くCIを運用した
CIが分からないPE(SETエンジニア)1年生がVRT(ビジュアルリグレッションテスト)をハードル低くCIを運用したCIが分からないPE(SETエンジニア)1年生がVRT(ビジュアルリグレッションテスト)をハードル低くCIを運用した
CIが分からない PE(SETエンジニア)1年生が VRT(ビジュアルリグレッションテスト)をハードル低くCIを運用した
 

Recently uploaded

論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
CRI Japan, Inc.
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 

Recently uploaded (16)

論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LBカタログ
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 

DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み

  • 1. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA Technology Conference 2017 DeNAでのチート診断・脆弱性診断の取り組み 株式会社ディー・エヌ・エー システム本部セキュリティ部 セキュリティ技術グループ 杉山 俊春 1
  • 2. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 自己紹介  所属:株式会社ディー・エヌ・エー • セキュリティ部 セキュリティ技術グループ  名前:杉山 俊春  前職:セキュリティ関連の会社 ⁃ 脆弱性診断(Web、スマートフォンアプリ) ⁃ Web脆弱性診断ツール(VEX)開発・販売 ⁃ SaaS型Web診断サービス開発 ⁃ 技術記事執筆 など  入社:2012年1月  現在の業務: ⁃ 脆弱性診断、社内システムセキュリティ、 セキュリティログ管理、セキュリティ設計 など  好きなもの:猫、デザイン・イラスト系のもの 2 星野君のWebアプリ ほのぼの改造計画 (@IT)
  • 3. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA セキュリティ部(技術グループ)と私 3 2012 2013 2015 2013/4 セキュリティ グループ発足 2014/4 セキュリティ部発足 ・セキュリティ技術グループ←こっち ・セキュリティ推進グループ Join! セキュリティ部の位置づけ 技術グループの成り立ち 2017/2 現在9名 セキュリティ会社出身:2名 社内教育でメンバー育成 2014 2016 2017 :異動
  • 4. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. DeNA セキュリティ部(技術グループ)のお仕事  リリースするアプリ・サービスのチート・脆弱性診断全般  本番ネットワークのセキュリティ(踏み台サーバ)  社内ネットワークのセキュリティ  セキュリティ相談・設計  脆弱性情報調査・社内共有  各種セキュリティの仕組み、ツールの作成 など色々 4
  • 5. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. セキュリティって? 5 皆さん セキュリティってどうしてますか?
  • 6. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. セキュリティって? 「セキュリティ」と言っても幅広いので、例えば、  スマートフォンアプリのセキュリティ  ゲームアプリのセキュリティ といわれて、何をしなきゃいけないかがイメージでき ますか? 6
  • 7. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. セキュリティって? とあるゲームで 「まだリリースしていないアイテムを所持している ユーザがいました」 この時、考えられる原因と対策は? 7
  • 8. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. セキュリティって? 8 セキュリティって難しい?
  • 9. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 情報セキュリティ人材の不足 9 出典:経済産業省 IT人材の最新動向と将来推計に関する調査結果について http://www.meti.go.jp/policy/it_policy/jinzai/27FY_report.html
  • 10. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 情報セキュリティ人材の不足 10 現在 情報セキュリティ人材 28.1万人 +13.2万人不足 すごく足りていない!? 出典:経済産業省 IT人材の最新動向と将来推計に関する調査結果について http://www.meti.go.jp/policy/it_policy/jinzai/27FY_report.html
  • 11. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 情報セキュリティ人材の不足 11 でも、ちょっと待って!
  • 12. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 情報セキュリティ人材の不足 12 現在 情報セキュリティ人材 28.1万人 IT人材 91.9万人 現時点でIT人材の約3割が 情報セキュリティ人材(というデータでの話) 出典:経済産業省 IT人材の最新動向と将来推計に関する調査結果について http://www.meti.go.jp/policy/it_policy/jinzai/27FY_report.html
  • 13. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 情報セキュリティ人材の不足 13 いい人材が見つかるまで待つ セキュリティ人材を育てる 実はセキュリティ人材はたくさんいる
  • 14. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 情報セキュリティ人材の不足 14 セキュリティって難しい? ↓ 範囲を明確にして、ひとつずつちゃんと 見ていけばそんなにややこしい話ではない! はず…
  • 15. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 情報セキュリティ人材の不足 – 人材育成への取り組み  実際のゲームのセキュリティに近い形のサンプル アプリ • Cocos-2dx (C++)で作成 • (ソースコードのデコンパイルは困難) • Android OS上で動作 • サーバへの通信は暗号化(?)されている このアプリを利用して、セキュリティ・キャンプ等 のイベントでハンズオンの講義なども実施 http://dena.com/jp/csr/blog/cat277/2016/09/02/003185© DeNA  チート勉強用サンプルアプリ1 15
  • 16. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 情報セキュリティ人材の不足 – 人材育成への取り組み  チート勉強用サンプルアプリ2  チートをしないと絶対にクリアできないゲーム • HTML + JavaScript ⁃ ソースコードの閲覧、改変は簡単 • ブラウザ上で動作 → CTF形式の 高校生向け セキュリティイベント用に作成 16
  • 17. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 簡単なゲームでの具体的なチート例 17
  • 18. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 簡単なゲームでの具体的なチート例  具体的な例を見てみましょう!(※勉強用のサンプルアプリです) 18 戦う相手を選んで コマンド選択して倒す! スタミナ回復アイテムもある
  • 19. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 簡単なゲームでの具体的なチート例 19  大まかなシステムの図 プレイデータ の保存 バトルの実行 処理 データ要求、結果保存 データの応答
  • 20. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 簡単なゲームでの具体的なチート例  できてしまったら困りそうなことを適当に列挙してみる ⁃ 敵のHPを1にする ⁃ 敵の攻撃力、防御力を-99999999にする ⁃ ユーザのHPを99999999にする ⁃ ユーザの攻撃力、防御力を99999999にする ⁃ 戦闘後にもらえる経験値を99999999にする ⁃ ユーザのレベルを99にする ⁃ 使えないコマンドを使う ⁃ ひたすら連続攻撃をする ⁃ 選択できない敵と戦う ⁃ 回復アイテムを無限に使う ⁃ スタミナを消費しないで戦闘を行う 20
  • 21. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 簡単なゲームでの具体的なチート例 21 実際にどうなるかを見てみましょう!
  • 22. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 提供するサービス、アプリ、ゲームでのセキュリティ  できてしまったら困りそうなこと ⁃ 敵のHPを1にする ⁃ 敵の攻撃力、防御力を-99999999にする ⁃ ユーザのHPを99999999にする ⁃ ユーザの攻撃力、防御力を99999999にする ⁃ 戦闘後にもらえる経験値を99999999にする ⁃ ユーザのレベルを99にする ⁃ 使えないコマンドを使う ⁃ ひたすら連続攻撃をする ⁃ 選択できない敵と戦う ⁃ 回復アイテムを無限に使う ⁃ スタミナを消費しないで戦闘を行う 22 できる できるがいまいち ※0.000001とかが正解できる できる できる? できる できる できる できるが無効? ※expを変えるべき できない できない
  • 23. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 提供するサービス、アプリ、ゲームでのセキュリティ  攻撃シナリオを雑に割り当ててみる ⁃ 敵のHPを1にする • ソースコードの変更、利用中の値の直接変更 ⁃ 敵の攻撃力、防御力を-99999999にする • ソースコードの変更、利用中の値の直接変更 ⁃ ユーザのHPを99999999にする • ソースコードの変更、利用中の値の直接変更 ⁃ ユーザの攻撃力、防御力を99999999にする • ソースコードの変更、利用中の値の直接変更 ⁃ 戦闘後にもらえる経験値を99999999にする • サーバに送る値の変更 ⁃ ユーザのレベルを99にする • ソースコードの変更、利用中の値の直接変更、サーバに送る値の変更 ⁃ 使えないコマンドを使う • ソースコードの変更、特定命令の強制実行 ⁃ ひたすら連続攻撃をする • ソースコードの変更、特定命令の強制実行 ⁃ 選択できない敵と戦う • ソースコードの変更、特定命令の強制実行、サーバに送る値の変更、サーバから受け取る値の変更 ⁃ 回復アイテムを無限に使う • ソースコードの変更、サーバに送る値の変更、サーバから受け取る値の変更 ⁃ スタミナを消費しないで戦闘を行う • ソースコードの変更、サーバに送る値の変更、サーバから受け取る値の変更 23 以下の4つくらいのパターンで分類 ・ソースコード、レスポンスの変更 ・利用中の値の直接変更 ・特定命令の強制実行 ・サーバに送る値の変更 ※厳密にはここに書いてある組み合わせ でもできると思います
  • 24. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 提供するサービス、アプリ、ゲームでのセキュリティ 24 悪い人が最終的に不正として実現したいことは…… ↓ サーバ上のデータを不正なものにしたい プレイデータの保存時 に不正なデータになっ ていることが重要
  • 25. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 提供するサービス、アプリ、ゲームでのセキュリティ 25 ブラウザアプリ(JavaScript)だとチート簡単? ↓ スマホアプリも原理的には似たようなもの!
  • 26. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. スマホ向けゲームのシステム構成の色々 26
  • 27. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ゲームのシステム構成の色々  ローカルのみ 27 アプリダウンロード 課金処理 IAP、IAB ※IAP, IAB:In App Purchase (App Store) , In App Billing (Google Play) App Store Google Play
  • 28. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ゲームのシステム構成の色々  クライアントアプリ+サーバ(単純なデータの保存のみ) 28 アプリダウンロード 課金処理 App Store Google Play データ読み込み データ保存
  • 29. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ゲームのシステム構成の色々  クライアントアプリ+サーバ側ロジック 29 アプリダウンロード 課金処理 App Store Google Play ゲームサーバ データ読み込み、処理結果 処理実行 課金検証 各種検証、処理実行 検証結果
  • 30. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ゲームのシステム構成の色々  クライアントアプリ+サーバ側ロジック+SNS or プラットフォーム連 携 30 アプリダウンロード 課金処理 App Store Google Play ゲームサーバ データ読み込み 処理結果 処理実行 課金検証 各種検証、 処理実行 検証結果 データ読み込み 処理結果 処理実行 ゲームプラットフォーム データ読み込み 処理結果 処理実行
  • 31. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. スマホ向けゲームアプリに対する攻撃 31
  • 32. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 攻撃されうるポイント 32 アプリダウンロード 課金処理 App Store Google Play ゲームサーバ データ読み込み、処理結果 処理実行 課金検証 検証結果 メモリ改ざん 不正な通信 (リクエスト) データ ファイル改ざん アプリ改ざん 不正な通信 (レスポンス) 大半の最終的な ターゲットはここ!
  • 33. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. スマホ向けゲームにおけるチート、不正行為 33
  • 34. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. チート勉強用サンプルアプリ - デモ画面 レスポンス改ざんで 使えるようにできる 34 © DeNA© DeNA
  • 35. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. チート勉強用サンプルアプリ - 通信の改ざん リクエスト レスポンス 普通の通信 Proxyツールを利用した改ざん リクエスト 悪い事をする人の環境 改ざん 改ざんされた レスポンス 改ざんされた リクエスト Proxy ツール 35
  • 36. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. チート勉強用サンプルアプリ - デモ画面  送られてるリクエストの例 POST /sfx/get_user_info.php HTTP/1.1 Accept-Encoding: identity User-Agent: Dalvik/1.6.0 (Linux; U; Android 4.1.2; sdk Build/MASTER) Host: appdemo.example.com Connection: Keep-Alive Content-Type: application/x-www-form-urlencoded Content-Length: 80 WgMBAQ1RU1FLX1BHRwpEUlJIGwY2Gg1RQk0RDlIaERIRFEMKXUpcQB1aRFsHTxkUGB NFUV5EXUtJDFAW Base64っぽいけどデコードしても謎文字列 36
  • 37. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. チート勉強用サンプルアプリ - 通信の改ざん Proxyツールを利用した再送 リクエスト Proxy ツール 悪い事をする人の環境 37
  • 38. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. チート勉強用サンプルアプリ - デモ画面  バイナリ解析の様子(リクエスト暗号化?の鍵を探す) 対策をしていないと、 簡単・一般的なロジックの場合、 一瞬で復号するプログラムを 作成されてしまう場合がある 1. 「Base64」で検索 2.ロジックをちょっと追って 鍵っぽい文字列を探す 38
  • 39. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. チート勉強用サンプルアプリ - 通信の自動改ざん リクエストを加工する例 ③平文を 手動で改ざん ⑤改ざんされた 暗号文 Proxyツール 復号・再暗号化 モジュール Intercept ① ②復号 ④ 悪い事をする人の環境 39
  • 40. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. チート勉強用サンプルアプリ - デモ画面 40
  • 41. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. チート勉強用サンプルアプリ - メモリ改ざん  端末上のメモリを改ざんする例 1. アプリを止める 2. 特定の値を持つアドレスをメモリ内で検索 3. アプリを再開し、目的の値をアプリ上で変更 4. アプリを止める 5. 手順2で見つかったアドレスのうち変更後の値になったアドレスを 検索 6. 見つかったアドレス全てを目的の値に置換 7. アプリを再開 41 A68332F3 002b 0000 0050 f91f a600 0000 000a 0000 A6833303 0000 0000 0000 3039 0000 0000 0000 0000 A6833313 0000 0000 0073 0065 0000 0000 0000 0000 A6833323 0000 0000 0000 0000 0000 0000 0000 0000 : A68332F3 002b 0000 0050 f91f a600 0000 000a 0000 A6833303 0000 0000 0000 3011 0000 0000 0000 0000 A6833313 0000 0000 0073 0065 0000 0000 0000 0000 A6833323 0000 0000 0000 0000 0000 0000 0000 0000 : 範囲指定、変化量などで 特定する方法もあり 変化を観測可能
  • 42. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. チート勉強用サンプルアプリ - 診断に使っているツール  Proxyツール ⁃ PacketProxy (自社ツール) • OWASP ZAP や BurpSuite といったツールもよく利用される  バイナリ解析ツール ⁃ IDA Pro  メモリ改ざんツール ⁃ MemoryPatching (自社ツール) • (一般的にGameGuardianなどの実際のチートに利用されるツールなども 利用されることがある)  上記のような専用のツールが必要となるが、使い方を習得すれば 一定程度のチート診断が可能 42 例えば、「最低限カジュアルなチートは防ぐ」などの どのレベルのチートを想定するかなどを決めておくことが重要
  • 43. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ゲームにおけるチート、不正行為 - チートは何が困るのか? -  チートをされてしまうと起こること ⁃ ゲームバランスが崩壊 → ゲームの寿命を著しく縮める ⁃ ユーザの不公平感を生む ⁃ 非チートユーザへの直接的被害 • PvP、GvGなどのプレイヤー間での戦闘など ⁃ 課金による発生するはずの利益の損失 →特にオンラインゲームだと影響範囲や非チートユーザの関わり方が 複雑になるため致命的になりやすい 43
  • 44. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. スマホ向けゲーム開発におけるチート対策例 44
  • 45. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. スマホ向けゲーム開発におけるチート対策例 45 アプリダウンロード 課金処理 App Store Google Play ゲームサーバ データ読み込み、処理結果 処理実行 課金検証 検証結果 メモリ改ざん 不正な通信 (リクエスト) データ ファイル改ざん アプリ改ざん 不正な通信 (レスポンス)  基本的には攻撃されうるポイントを対策していけばよい
  • 46. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. スマホ向けゲーム開発におけるチート対策例  チート対策の難しい部分 ⁃ 特にクライアント上の対策については、仕組み上どう頑張っても完 璧な対策が無理な場合がある。いたちごっこ状態。 • 一定は運用でカバーする、という選択肢もある ⁃ 巧妙なチートユーザは発見が難しい • チートなのか、単純に運がいい・上手いプレイなのかの区別がつかない • 複製アイテムの所有者が善意の第三者の場合がある など 46
  • 47. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. スマホ向けゲーム開発におけるチート対策例  攻撃されうるポイントへの対策 ⁃ 不正な通信(リクエスト・レスポンス) • サーバサイドでの値チェック ⁃ 取りうる値の範囲、条件 ⁃ パラメータの形式チェック など • 通信の保護 ⁃ 証明書Pinning • 単純な通信のhttps化などだけではチート対策にはならない ⁃ 通信データの独自暗号化 ⁃ 送受信データの改ざん検知 など →仮に突破されても不正の兆候を捕らえられるようにしておくと Good 47 Proxy ツール Pinning 値チェック
  • 48. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. スマホ向けゲーム開発におけるチート対策例  攻撃されうるポイントへの対策 ⁃ メモリ改ざん、データ改ざん • 暗号化して保存する! ⁃ 暗号ロジック、鍵がすぐに取り出せるとほとんど意味がないので、 「解析・デコンパイル対策」も頑張る 48 A68332F3 002b 0000 0050 f91f a600 0000 000a 0000 A6833303 1c80 d55b 1e6c 3658 0000 0000 0000 0000 A6833313 0000 0000 0073 0065 0000 0000 0000 0000 A6833323 0000 0000 0000 0000 0000 0000 0000 0000 : A68332F3 002b 0000 0050 f91f a600 0000 000a 0000 A6833303 af40 0ff5 67ff a4c7 0000 0000 0000 0000 A6833313 0000 0000 0073 0065 0000 0000 0000 0000 A6833323 0000 0000 0000 0000 0000 0000 0000 0000 : メモリ 見た目の変化とメモリ上の変化が異なる 見た目上の変化:12345 -> 12032 メモリ上の変化:1e6c 3658 -> 67ff a4c7 暗号化されて読めないデータ
  • 49. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. スマホ向けゲーム開発におけるチート対策例  攻撃されうるポイントへの対策 ⁃ 解析・デコンパイル対策 • デコンパイルが難しい言語を使う ⁃ 例えば、Androidの場合、重要な処理はJavaで書かず、JNI等を使っ て別の言語で記述した処理を呼び出す など。 ⁃ できない場合は難読化を頑張る • 暗号化などは一般的なものをそのまま使わない ⁃ 例えば、「AESだ!」とわかったら、ロジックを解析する必要はな く、鍵だけ探せば復号できてしまう • Packerのような解析対策の仕組みを導入する • バイナリ内のシンボル情報を削除する などの対策をいれる 49 ※基本的にどのくらい解析が難しくなるか、という問題
  • 50. Copyright (C) DeNA Co.,Ltd. All Rights Reserved. まとめ  チート対策をするには、まず、『何ができるの か』を知る事が重要 ⁃ 簡単なサンプルから始めて原理を理解できると よい  チートの難易度と対策・運用のコストを考えなが らバランスよく運営をしていく必要がある 50