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.3k
Java 21 Overview
line_developers
6
1.2k
Code Review Challenge: An example of a solution
line_developers
1
1.4k
KARTEのAPIサーバ化
line_developers
1
550
著作権とは何か?〜初歩的概念から権利利用法、侵害要件まで
line_developers
5
2.2k
生成AIと著作権 〜生成AIによって生じる著作権関連の課題と対処
line_developers
3
2.2k
マイクロサービスにおけるBFFアーキテクチャでのモジュラモノリスの導入
line_developers
9
3.6k
A/B Testing at LINE NEWS
line_developers
3
1k
LINEのサポートバージョンの考え方
line_developers
2
1.3k
Other Decks in Technology
See All in Technology
5分でカオスエンジニアリングを分かった気になろう
pandayumi
0
240
今!ソフトウェアエンジニアがハードウェアに手を出すには
mackee
12
4.7k
2025年になってもまだMySQLが好き
yoku0825
8
4.7k
OCI Oracle Database Services新機能アップデート(2025/06-2025/08)
oracle4engineer
PRO
0
110
「全員プロダクトマネージャー」を実現する、Cursorによる仕様検討の自動運転
applism118
21
10k
バイブスに「型」を!Kent Beckに学ぶ、AI時代のテスト駆動開発
amixedcolor
2
540
Django's GeneratedField by example - DjangoCon US 2025
pauloxnet
0
140
会社紹介資料 / Sansan Company Profile
sansan33
PRO
6
380k
Practical Agentic AI in Software Engineering
uzyn
0
100
Generative AI Japan 第一回生成AI実践研究会「AI駆動開発の現在地──ブレイクスルーの鍵を握るのはデータ領域」
shisyu_gaku
0
150
Webアプリケーションにオブザーバビリティを実装するRust入門ガイド
nwiizo
7
790
Obsidian応用活用術
onikun94
2
480
Featured
See All Featured
RailsConf 2023
tenderlove
30
1.2k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
Visualization
eitanlees
148
16k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
520
How to Ace a Technical Interview
jacobian
279
23k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Optimizing for Happiness
mojombo
379
70k
Designing for Performance
lara
610
69k
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 コミュニケーション 迅速な対応 最高のセキュリティ