Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
WFSの認証基盤SDKのセキュリティーに関する取り組み
Search
gree_tech
PRO
September 18, 2020
Technology
900
0
Share
WFSの認証基盤SDKのセキュリティーに関する取り組み
GREE Tech Conference 2020 で発表された資料です。
https://techcon.gree.jp/2020/session/ShortSession-7
gree_tech
PRO
September 18, 2020
More Decks by gree_tech
See All by gree_tech
変わるもの、変わらないもの :OSSアーキテクチャで実現する持続可能なシステム
gree_tech
PRO
0
4.3k
マネジメントに役立つ Google Cloud
gree_tech
PRO
0
52
今この時代に技術とどう向き合うべきか
gree_tech
PRO
3
2.7k
生成AIを開発組織にインストールするために: REALITYにおけるガバナンス・技術・文化へのアプローチ
gree_tech
PRO
0
370
安く・手軽に・現場発 既存資産を生かすSlack×AI検索Botの作り方
gree_tech
PRO
0
370
生成AIを安心して活用するために──「情報セキュリティガイドライン」策定とポイント
gree_tech
PRO
1
2.2k
あうもんと学ぶGenAIOps
gree_tech
PRO
0
500
MVP開発における生成AIの活用と導入事例
gree_tech
PRO
0
520
機械学習・生成AIが拓く事業価値創出の最前線
gree_tech
PRO
0
390
Other Decks in Technology
See All in Technology
20260513_生成AIを専属DSに_AI分析結果の検品テクニック_ハンズオン_交通事故データ
doradora09
PRO
0
230
AI 時代の Platform Engineering
recruitengineers
PRO
1
210
Fラン学生が考える、AI時代のデザインに執着した突破口
husengs7
1
110
AI-Assisted Contributions and Maintainer Load - PyCon US 2026
pauloxnet
1
150
How to learn AWS Well-Architected with AWS BuilderCards: Security Edition
coosuke
PRO
0
140
AI時代に、 データアナリストがデータエンジニアに異動して
jackojacko_
0
930
オライリーイベント登壇資料「鉄リサイクル・産廃業界におけるAI技術実応用のカタチ」
takarasawa_
0
410
続 運用改善、不都合な真実 〜 物理制約のない運用改善はほとんど無価値 / 20260518-ssmjp-kaizen-no-value-without-physical-constraints
opelab
2
230
20260515 ID管理は会社を守る大切な砦!〜🔰情シス向け〜
oidfj
0
570
Claude Codeウェビナー資料 - AWSの最新機能をClaude Codeで高速に検証する
oshanqq
0
850
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
100k
20260516_SecJAWS_Days
takuyay0ne
2
430
Featured
See All Featured
Claude Code のすすめ
schroneko
67
220k
From π to Pie charts
rasagy
0
180
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
210
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
Why Our Code Smells
bkeepers
PRO
340
58k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
170
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
550
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.2k
Statistics for Hackers
jakevdp
799
230k
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