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
LINE GAMEサービスのセキュリティ運営 / Security activity for ...
Search
LINE Developers
March 14, 2019
Technology
2
1.3k
LINE GAMEサービスのセキュリティ運営 / Security activity for LINE GAME services
2019/3/14にLINE KYOTOで行われたLINE Developer meetup #51での登壇資料です
LINE Developers
March 14, 2019
Tweet
Share
More Decks by LINE Developers
See All by LINE Developers
LINEスタンプのSREing事例集:大きなスパイクアクセスを捌くためのSREing
line_developers
3
2.4k
Java 21 Overview
line_developers
6
1.3k
Code Review Challenge: An example of a solution
line_developers
1
1.5k
KARTEのAPIサーバ化
line_developers
1
600
著作権とは何か?〜初歩的概念から権利利用法、侵害要件まで
line_developers
5
2.3k
生成AIと著作権 〜生成AIによって生じる著作権関連の課題と対処
line_developers
3
2.3k
マイクロサービスにおけるBFFアーキテクチャでのモジュラモノリスの導入
line_developers
9
3.8k
A/B Testing at LINE NEWS
line_developers
3
1.1k
LINEのサポートバージョンの考え方
line_developers
2
1.4k
Other Decks in Technology
See All in Technology
Digitization部 紹介資料
sansan33
PRO
1
6.8k
Amazon Bedrock Knowledge Basesチャンキング解説!
aoinoguchi
0
140
Bedrock PolicyでAmazon Bedrock Guardrails利用を強制してみた
yuu551
0
220
生成AI時代にこそ求められるSRE / SRE for Gen AI era
ymotongpoo
5
3.1k
Codex 5.3 と Opus 4.6 にコーポレートサイトを作らせてみた / Codex 5.3 vs Opus 4.6
ama_ch
0
150
Webhook best practices for rock solid and resilient deployments
glaforge
1
280
Kiro IDEのドキュメントを全部読んだので地味だけどちょっと嬉しい機能を紹介する
khmoryz
0
180
顧客との商談議事録をみんなで読んで顧客解像度を上げよう
shibayu36
0
220
CDK対応したAWS DevOps Agentを試そう_20260201
masakiokuda
1
260
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.3k
生成AIを活用した音声文字起こしシステムの2つの構築パターンについて
miu_crescent
PRO
2
190
20260208_第66回 コンピュータビジョン勉強会
keiichiito1978
0
130
Featured
See All Featured
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
0
1.1k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
170
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
74
Ruling the World: When Life Gets Gamed
codingconduct
0
140
Ethics towards AI in product and experience design
skipperchong
2
190
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Bash Introduction
62gerente
615
210k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.3k
Transcript
LINE 1 LINE GAMEサービスのセキュリティ運営 2019/03/14 LINE株式会社セキュリティ室game securityチーム 李明宰(
[email protected]
) 「LINE Developer
meetup #51 in KYOTO」
LINE • LINE GAMEサービスのセキュリティ運営とは • LINE GAMEの特徴 • LINE GAMEサービスの脅威
• アプリに対する不正行為 • 最近のabusing傾向 • セキュリティ運営のために必要なことと工夫 • LINE GAME Security Life Cycle • セキュリティ運営業務紹介 • ガイドラインの提供 • セキュリティモジュールの提供(AIR ARMOR) • セキュリティチェック(AIR GO) • Abuserのモニタリングやデータ分析(AIR EYE) • その他 目次 2
LINE • LINE GAMEのサービス提供から6周年(2018年)、NativeアプリとHTML5ゲームを提供 • LINEのHTML5ゲームサービス「LINE QUICK GAME」がオープン • LINE
レンジャー全世界累積ダウンロード数5千万達成(2018年 3月) LINE GAMEサービスのセキュリティ運営とは ユーザ保護 リスク管理 LINE GAMEのサービスにおける様々な脅威からユーザを保護し、リスクを管理する 一連の取り組み
LINE • LINEプラットフォームと連携(LINEログイン/ゲストログイン、LINE STOREなど利用可能) • ソーシャル機能利用可能 (友だち招待、タイムライン投稿、ハート送信、ハートおねだ りなど) • 事前登録、ミッション達成するとLINEスタンプなどがもらえるキャンペーンの実績あり
• ゲーム内の通貨が存在(1次通貨、2次通貨)、友だち間での通貨の売買は不可能 • 配信形態: publishing, channeling • リリースタイトルの確認 • https://line.me/ja/games • http://game-blog.line.me/ • https://gdc.game.line.me/games/ • SDK提供(セキュリティモジュールを含む) LINE GAMEの特徴 4
LINE LINE GAMEサービスの脅威(ゲームアプリに対する不正行為) File Hacking Memory Hacking Network Hacking •
Memory Value Modification • Speed Modification • Memory Dump • Binary File Modification • Binary File Analyze • Data File Modification • Resource File Modification • MITM(Man in the Middle) • Packet Replay Attack • Packet Analyze
LINE Unity 改ざんのabusingが多かった。 • LINE GAME ではUnity 3d製作タイトルが多く存在している • クライアント側で重要ロジックが実装されていることも多い
• assembly-CSharp.dll の改ざんが多く発生している iOSバイナリ改ざんユーザの増加 • Androidだけがバイナリ改ざんの対象ではない • jailbreakされていない端末でも、改ざんバイナリ(ipa)をインストール可能 • 海外サイトでは、チート商品も登場 Google IAP refund(支払い戻し)を悪用するユーザの増加 • Google Play Voided Purchases API を利用して継続的なモニタリング・対応が必要 • https://developers.google.com/android-publisher/voided-purchases 最近のabusing (不正行為)傾向 6
LINE セキュリティ運営のために必要なことは 7 • クライアントはハッキングから安全なのか(アプリの安全性) • どれぐらいのabuserが存在しているか・把握できているのか(abuserの規模) • abuserの存在を確認したとき、すぐ対応できるのか(対応体制) •
事前にあるいは定期的にリスクを自動的にチェックできるのか(リスク管理)
LINE セキュリティ運営ための工夫 • Abuserのモニタリングツール • クライアントセキュリティモジュール • Rooting/cheating/バイナリ改ざん検知、難読化など • APK/IPAの自動脆弱性Scanツール
自社ツールの開発と運営 https://platform.game.line.me/products/air https://air.line.me 8
LINE LINE GAME Security Life Cycle Check Action Develop Plan
Close start end 企画検討 ガイド提供、 コンサルティング セキュリティチェック モニタリング 換金処理、backupなど リリース前 リリース後 サービス終了 9
LINE 10 セキュリティモジュール セキュリティ ガイドラインの提供 セキュリティチェック データ分析 および モニタリング セキュリティガイドラインの作成(社内Gitで公開)
セキュリティモジュールをSDKとして開発し提供 ハッカーの立場でチートや攻撃 異常データを毎日検知し、abuserを対応 セキュリティ運営業務の一部紹介
LINE 1. ガイドラインの提供 例1:Unity 制作ゲーム : IL2CPP コンパイルオプション https://engineering.linecorp.com/ja/blog/detail/110 11
例2:メモリチート対応において普通にミスしがちなもの https://assetstore.unity.com/packages/tools/utilities/anti-cheat-toolkit-10395
LINE 2. セキュリティモジュールの提供 • Root・jailbreak検知/チートツール検知/ファイル改ざん検知(悪意のあるユーザなどの規模な どを推測可能) • クライアントサイドを守る目的で作られたもの、完全な対策ではなく保険的(影響の軽減)な防 御とモニタリングの役割 •
ログ収集を通じて、事後対応(BAN/警告など)が可能 • 悪意のあるユーザの分析作業を難しくするための装置でもある • ただし、専門知識を持っていて、どうしても突破したいハッカーには、いつかは突破される可 能性があると考える 12
LINE 2. セキュリティモジュールの提供(難読化) 13
LINE 3. セキュリティチェック 脆弱性名 脆弱性説明 個人情報 漏洩可能性 ゲーム内順位への 影響 売上への影響
ユーザの再現可能性 脆弱性がtwitterやイン ターネットに公開される場 合の懸念 Memory Cheat ・メモリチートツールを利用し、メモ リ内のゲームのスコアなどを改ざ んできる ◦×- ◦×- ◦×- ◦×- ◦×- Abuse of Functionality ・プロキシツールを利用し、HTTPパ ラメータ(スコアなど)を改ざんでき る ・設定ファイル、saveデータなどを 操作 ◦×- ◦×- ◦×- ◦×- ◦×- Insufficient Process Validation ・saveデータをすり替え(他人と共 有)できる ◦×- ◦×- ◦×- ◦×- ◦×- Insufficient Anti- automation ・replay&自動プレイができる ◦×- ◦×- ◦×- ◦×- ◦×- Insufficient Authorization ・不適切なパーミッションが設定さ れている(android) ◦×- ◦×- ◦×- ◦×- ◦×- Information Leakage ・クライアントに端末情報(UDID、 MACアドレス)、デバック関連ファイ ルなどが保存されている ◦×- ◦×- ◦×- ◦×- ◦×- 不正購入 ・不正購入ができる ◦×- ◦×- ◦×- ◦×- ◦×- Insufficient Authentication ・他の人へのなりすまし (他人の購入したアイテムを自分 のアイテムとして使用可能) ◦×- ◦×- ◦×- ◦×- ◦×- 個人情報漏洩 ・ユーザ識別子がクライアントに保 存されている ・ユーザ識別子をHTTPで送信して いる ◦×- ◦×- ◦×- ◦×- ◦×- 14
LINE 3. セキュリティチェック ビルドファイル(.apk/.ipa)に対する脆弱性自動スキャン、Eメール通知 15 診断 .ipaファイル .apkファイル 入力 結果
メール通知
LINE 3. セキュリティチェック ビルドファイル(.apk/.ipa)に対する脆弱性自動スキャン、Eメール通知 16 • アプリの難読化チェック • 脆弱性の診断 •
オープンソースライセンスチェック • マルウェアのチェック
LINE 3. セキュリティチェック AIR GOの仕組み 17 デコンパイル (disassembly) パーシング パーシングされたデータと脆
弱性パータンとの比較 結果の出力 classes.dex(bytecode) -> smaliコード(instruction list) ▼Javaコード String message = "Toast Hello"; Toast toast = Toast.makeText(this, message, Toast.LENGTH_LONG); toast.show(); ▼smaliコード const-string v2, "Toast Hello" const/4 v3, 0x1 invoke-static {p0, v2, v3}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast; move-result-object v1 invoke-virtual {v1}, Landroid/widget/Toast;->show()V
LINE 4. データモニタリング(クライアント側の悪意行為) AIR ARMORが収集したデータを分析し、異常ユーザを毎日モニタリングする ⇒BAN対応を行っている 18
LINE Unityゲームの改ざん 改ざんAPKファイルを入手し、インストールして使用したユーザの探知 19 4. データモニタリング(クライアント側の悪意行為)
LINE 4. データモニタリング(ゲームデータ) ゲームデータ(クライアント&サーバ)を分析し、異常ユーザを毎日モニタリングする ⇒BAN対応を行っている ・閾値ベース 閾値を設定してそれを超えた場合は、異常ユーザとして検知 ゲーム内通貨に対して効率的(Abuserの狙い:通貨>スコア>アイテム) ・スコアベース 正規分布からどれぐらい離れているかによって、ゲーム要素にスコアを付与し、
スコアが高い場合は、異常ユーザとして検知(ゲーム要素にこだわらない) 20
LINE • 公開記事 • AIR GOの紹介 • https://engineering.linecorp.com/ja/blog/introducing-air-go/ • APK
Signingについて • https://engineering.linecorp.com/ja/blog/air-go-apk-signing/ • セキュリティエンジニアからみたUnityのこと • https://engineering.linecorp.com/ja/blog/detail/110 • 海外のコミュニティサイトについて • http://apk.tw • https://androidrepublic.org • https://iosgods.com • https://appzzang.me その他 21
LINE 最後 22 コミュニケーション 迅速な対応 最高のセキュリティ