Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
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
1.1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
1on1、進捗確認だけになっていませんか?〜明日から使えるTips〜
gree_tech
PRO
0
3
AI画像認識を活用したゲーム内決済処理検証の自動化
gree_tech
PRO
0
960
長期運営で肥大化したExcelマスターデータの解消に向けた移行事例
gree_tech
PRO
0
1k
ゲームにおけるメディアミックス展開との向き合い方 -ヘブンバーンズレッドのメディアミックス企画の立て方-
gree_tech
PRO
0
1k
課題発見から始めるプロダクト密着型TA組織立ち上げ 〜小規模TAチームが3Dアセットの生産性を倍にした方法〜
gree_tech
PRO
0
1.1k
属人化を叩き割れ!「制作加速」と「安定化」の矛盾を打破する:8年目プロダクトが辿り着いた「ミスが起こり得ない」アセット制作フローの全貌
gree_tech
PRO
0
960
20年続く長寿タイトルが、15年目にして売上を伸ばせた理由
gree_tech
PRO
0
1.5k
我々はどう生きるか
gree_tech
PRO
2
1.1k
変わるもの、変わらないもの :OSSアーキテクチャで実現する持続可能なシステム
gree_tech
PRO
0
5.6k
Other Decks in Technology
See All in Technology
顧客に向き合う開発組織へ。リアーキテクチャとフィーチャーチーム化で挑む組織改革
safie
0
2.5k
2026-09-18 gotanda.sre Terraformで複数環境作ったり、複数Stateに分割したりそれとTerragrunt / Terraform multi envs and multi states
masasuzu
4
740
AWS FinOps Agent 結局何が得意なの?
siromi
0
170
バイブコーディング時代のWebアプリ開発入門~Cloud Runで学ぶセキュアなビルドとデプロイ
waiwai2111
1
150
AWS DevOps Agent スキルをつかいこなそう / Master AWS DevOps Agent Skills
kinunori
1
490
Oracle Cloud Infrastructure(OCI):Onboarding Session(はじめてのOCI/Oracle Supportご利⽤ガイド)
oracle4engineer
PRO
2
21k
手を動かして実感する、Kiro が変える開発体験
inariku
0
330
AIで社員の自主発信に広報目線を組み込む
_mossann_t
0
140
Deployment の 先にある AI Agent 基盤 - kagent vNext、Agent Substrate、Hermes から読み解く Agent Runtime の現在地 / k8s-matsuri-2-ai-agent-platform-amsy810
masayaaoyama
5
740
エージェントはローカル、検証はMicroVM — Lambda MicroVMsでつくるServerless CI
fujioka6789
3
800
時うどん〜Socket.getifaddrsで学ぶネットワーク編 / Tokiudon: The Socket.getifaddrs Edition
coe401_
4
270
ScotSecure West 2026 - Glasgow
raybugg
0
170
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Technical Leadership for Architectural Decision Making
baasie
3
580
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Side Projects
sachag
456
43k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
370
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.6k
Building the Perfect Custom Keyboard
takai
2
890
Design in an AI World
tapps
1
330
How to Think Like a Performance Engineer
csswizardry
28
2.8k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.1k
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