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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
gree_tech
PRO
September 18, 2020
Technology
0
810
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
3.5k
マネジメントに役立つ Google Cloud
gree_tech
PRO
0
41
今この時代に技術とどう向き合うべきか
gree_tech
PRO
3
2.5k
生成AIを開発組織にインストールするために: REALITYにおけるガバナンス・技術・文化へのアプローチ
gree_tech
PRO
0
260
安く・手軽に・現場発 既存資産を生かすSlack×AI検索Botの作り方
gree_tech
PRO
0
250
生成AIを安心して活用するために──「情報セキュリティガイドライン」策定とポイント
gree_tech
PRO
1
1.6k
あうもんと学ぶGenAIOps
gree_tech
PRO
0
380
MVP開発における生成AIの活用と導入事例
gree_tech
PRO
0
400
機械学習・生成AIが拓く事業価値創出の最前線
gree_tech
PRO
0
280
Other Decks in Technology
See All in Technology
AI が Approve する開発フロー / How AI Reviewers Accelerate Our Development
zaimy
1
260
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
マイグレーションガイドに書いてないRiverpod 3移行話
taiju59
0
340
チームメンバー迷わないIaC設計
hayama17
5
3.5k
技術キャッチアップ効率化を実現する記事推薦システムの構築
yudai00
2
170
大規模な組織におけるAI Agent活用の促進と課題
lycorptech_jp
PRO
5
7.6k
AWS CDK の目玉新機能「Mixins」とは / cdk-mixins
gotok365
2
320
OSSで構築するIT基盤管理実践事例: NetBox・Snipe-IT・FreeRADIUS+PrivacyIDEA / Practical Case Studies of IT Infrastructure Management Using OSS
nttcom
0
140
パネルディスカッション資料 (at Tableau Now! - 2026-02-26)
yoshitakaarakawa
0
1k
2026-02-25 Tokyo dbt meetup プロダクトと融合したCI/CD で実現する、堅牢なデータパイプラインの作り方
y_ken
0
160
ヘルシーSRE
tk3fftk
2
220
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
4k
Featured
See All Featured
How to make the Groovebox
asonas
2
2k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.1k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
220
BBQ
matthewcrist
89
10k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.7k
From π to Pie charts
rasagy
0
140
The browser strikes back
jonoalderson
0
750
Color Theory Basics | Prateek | Gurzu
gurzu
0
220
Designing for Timeless Needs
cassininazir
0
150
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
170
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
470
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