Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
WFSの認証基盤SDKのセキュリティーに関する取り組み
Search
gree_tech
PRO
September 18, 2020
Technology
0
710
WFSの認証基盤SDKのセキュリティーに関する取り組み
GREE Tech Conference 2020 で発表された資料です。
https://techcon.gree.jp/2020/session/ShortSession-7
gree_tech
PRO
September 18, 2020
Tweet
Share
More Decks by gree_tech
See All by gree_tech
変わるもの、変わらないもの :OSSアーキテクチャで実現する持続可能なシステム
gree_tech
PRO
0
2.4k
マネジメントに役立つ Google Cloud
gree_tech
PRO
0
27
今この時代に技術とどう向き合うべきか
gree_tech
PRO
3
2.4k
生成AIを開発組織にインストールするために: REALITYにおけるガバナンス・技術・文化へのアプローチ
gree_tech
PRO
0
160
安く・手軽に・現場発 既存資産を生かすSlack×AI検索Botの作り方
gree_tech
PRO
0
150
生成AIを安心して活用するために──「情報セキュリティガイドライン」策定とポイント
gree_tech
PRO
1
1.5k
あうもんと学ぶGenAIOps
gree_tech
PRO
0
270
MVP開発における生成AIの活用と導入事例
gree_tech
PRO
0
290
機械学習・生成AIが拓く事業価値創出の最前線
gree_tech
PRO
0
210
Other Decks in Technology
See All in Technology
[Data & AI Summit '25 Fall] AIでデータ活用を進化させる!Google Cloudで作るデータ活用の未来
kirimaru
0
170
NIKKEI Tech Talk #41: セキュア・バイ・デザインからクラウド管理を考える
sekido
PRO
0
200
S3を正しく理解するための内部構造の読解
nrinetcom
PRO
3
240
SQLだけでマイグレーションしたい!
makki_d
0
1.2k
AI との良い付き合い方を僕らは誰も知らない
asei
0
220
プロンプトやエージェントを自動的に作る方法
shibuiwilliam
15
16k
意外と知らない状態遷移テストの世界
nihonbuson
PRO
1
160
AWS re:Invent 2025 re:Cap LT大会 データベース好きが語る re:Invent 2025 データベースアップデート/セッションの紹介
coldairflow
0
140
ZOZOの独自性を生み出す「似合う4大要素」の開発サイクル
zozotech
PRO
0
110
Amazon Connect アップデート! AIエージェントにMCPツールを設定してみた!
ysuzuki
0
120
2025年 開発生産「可能」性向上報告 サイロ解消からチームが能動性を獲得するまで/ 20251216 Naoki Takahashi
shift_evolve
PRO
2
210
20251219 OpenIDファウンデーション・ジャパン紹介 / OpenID Foundation Japan Intro
oidfj
0
390
Featured
See All Featured
SEO for Brand Visibility & Recognition
aleyda
0
4.1k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
170
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
0
940
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
How STYLIGHT went responsive
nonsquared
100
6k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.2k
Mind Mapping
helmedeiros
PRO
0
38
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
190
Done Done
chrislema
186
16k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.8k
Transcript
WFS認証基盤SDKのセキュリティに関する取り組み 株式会社WFS エンジニア 秦 泳
• 名前:秦 泳(シン エイ) • 所属:株式会社WFS WFSゲームプラットフォームチーム • 担当:WFS認証基盤Gamelib SDKの開発、サポート
自己紹介 2
•WFS認証基盤とは •WFS基盤SDKのセキュリティ取り組み、対策 •まとめ 目次 3
• WFS自社開発、正式名称はGameLibrary • 課金などに対して共通なAPI機能を提供 • 様々なOS、プラットフォーム、ゲームエンジンをサポート • Android / iOS
/ Windows • GooglePlay / AppStore / AmazonStore / Steam • Cocos2d-x / Unity / UE4 ネイティブゲーム向けの認証、課金、SNS連携などの共通基盤機能を提 供するAPIサービスとSDKの総称 WFS認証基盤とは 4
• API通信データの不正改ざん • ゲーム内不正課金 • 実行中ゲームデータを改ざん • ゲームの解析、改造(Repackaging) • など
様々なセキュリティ問題を直面 モバイルゲームのセキュリティ課題 5
•SDKとサーバー間のAPI通信を守る対策 •不正課金を防止する対策 •リバースエンジニアリングチート行為の対策 Gamelib基盤SDKに認証、課金など機能を安全に行えるため、様々な セキュリティ対策が講じた 基盤SDKのセキュリティ取り組み 6
•コードの解析ツール • Android:APKTOOL、Xposed • iOS:IDA、Cycript •コードの不正改造、Repackaging • Android:APKTOOL、smali • iOS:insert_dylib
ゲームの解析、改造を目的とするリバースエンジニアリングツールが存在 リバースエンジニアリング 7
Gamelibには様々な対策を取っている!
•JARの難読化 •APK不正改造の検知 •実行環境の検知 •SafetyNetの実装 Gamelib SDKでリバースエンジニアリング不正行為に取った対策は リバースエンジニアリング対策 9
•SDKのJARをDecompileで内部の実装を解読可能 •Proguardで内部実装を難読化 JARの難読化でGamelib Android SDKの内部実装ロジックを解読しに くくなる 難読化 10
Gamelib Android SDK JAR難読化 JAR難読化
•getAppSignature API • APKに添付される証明書Signatureを取得 • 開発元でないSignatureの場合、改造APKと判定 ゲームAPKは改造されたものかを検知 APK不正改造の検知 12
getAppSignature API 開発元 証明書 Game APK 改造者 開発証 明書 改造Game
APK 開発元証 明書 Signature 改造者開 発証明書 Signature ≠ getAppSignature() 一致しない場合、APKが 改造された可能性!
• VerifyDevice API • ROOT化や脱獄の検知 • エミュレータの検知 • Debug状態の検知 •
インストーラーの検知 ゲームが正常な端末環境中に実行するのか 実行環境を検知 14
• 特に問題があったのは • ROOT化や脱獄の検知 • エミュレータの検知 • 検知アルゴリズム • ROOT化や脱獄の検知BYPASSツールが存在
検知結果100%正確とは限らない 検知の精度問題 15
GamelibにGoogle SafetyNetを実装
•Google SafetyNet Attestation APIを利用 • Google Play Service API •
正規Android デバイスか、正規のアプリかを評価するAPI • 収集したデバイス、アプリ情報のJSON(JWS)を返却 Root化、エミュレータの検知に一定の信頼性を求める場合 Google SafetyNet APIを使用 SafetyNet Attestation API 17
{ "timestampMs": 9860437986543, "nonce": "R2Rra24fVm5xa2Mg", "apkPackageName": "com.package.name.of.requesting.app", "apkCertificateDigestSha256": ["base64 encoded,
SHA-256 hash of the certificate used to sign requesting app"], "ctsProfileMatch": true, "basicIntegrity": true } SafetyNet Attestation APIの返却JWSのPayload SafetyNetのデータ 18 Google認証された正規Androidデバイスであれば、「ctsProfileMatch」と 「basicIntegrity」の値はともに「true」になる
しかし、このデータを本当に信用できる?
•SafetyNet Attestation APIで返却した JWS(JsonWebSignature)をGamelibサーバーに送信 •JWSの署名を検証、評価 • 本当にGoogle発行したものか? • 異常ユーザーか? GamelibはセキュアなSafetyNet実装を採用
SafetyNetの実装 20
Gamelib SafetyNet実装の構成 Gamelib Server JWS検証 Gamelib SDK Google Play Service
Google Server Game Server Game App ②Attestation API With Nonce ①Nonce ③JWS 異常ユーザー 取得API
Gamelibは高い精度でROOT化を検知できる!
•DeviceVerify APIで取集した端末実行環境情報を Gamelibサーバーで評価 •異常と判断した場合、異常ユーザーとしてDBに記録 •GamelibはBANしない •ゲームサーバーにAPIを提供、検索可能 不正を検知した場合、Gamelibは異常ユーザーとして記録 異常ユーザー 23
Gamelib SafetyNet実装の構成 Gamelib Server JWS検証 Gamelib SDK Google Play Service
Google Server Game Server Game App ②Attestation API With Nonce ①Nonce ③JWS 異常ユーザー 取得API
•Gamelib SDKにはリバースエンジニアリング不正を検知 APIを提供 •Gamelib SDKのSafetyNet実装で高い精度でROOT化 を検知 • 不正を行った異常ユーザーをゲームに提供するAPI まとめ 25
Happy Hacking
None