Pro Yearly is on sale from $80 to $50! »

LINE GAMEサービスのセキュリティ運営 / Security activity for LINE GAME services

LINE GAMEサービスのセキュリティ運営 / Security activity for LINE GAME services

2019/3/14にLINE KYOTOで行われたLINE Developer meetup #51での登壇資料です

53850955f15249a1a9dc49df6113e400?s=128

LINE Developers

March 14, 2019
Tweet

Transcript

  1. LINE 1 LINE GAMEサービスのセキュリティ運営 2019/03/14 LINE株式会社セキュリティ室game securityチーム 李明宰(myeongjae.lee@linecorp.com) 「LINE Developer

    meetup #51 in KYOTO」
  2. LINE • LINE GAMEサービスのセキュリティ運営とは • LINE GAMEの特徴 • LINE GAMEサービスの脅威

    • アプリに対する不正行為 • 最近のabusing傾向 • セキュリティ運営のために必要なことと工夫 • LINE GAME Security Life Cycle • セキュリティ運営業務紹介 • ガイドラインの提供 • セキュリティモジュールの提供(AIR ARMOR) • セキュリティチェック(AIR GO) • Abuserのモニタリングやデータ分析(AIR EYE) • その他 目次 2
  3. LINE • LINE GAMEのサービス提供から6周年(2018年)、NativeアプリとHTML5ゲームを提供 • LINEのHTML5ゲームサービス「LINE QUICK GAME」がオープン • LINE

    レンジャー全世界累積ダウンロード数5千万達成(2018年 3月) LINE GAMEサービスのセキュリティ運営とは ユーザ保護 リスク管理 LINE GAMEのサービスにおける様々な脅威からユーザを保護し、リスクを管理する 一連の取り組み
  4. 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
  5. 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
  6. 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
  7. LINE セキュリティ運営のために必要なことは 7 • クライアントはハッキングから安全なのか(アプリの安全性) • どれぐらいのabuserが存在しているか・把握できているのか(abuserの規模) • abuserの存在を確認したとき、すぐ対応できるのか(対応体制) •

    事前にあるいは定期的にリスクを自動的にチェックできるのか(リスク管理)
  8. LINE セキュリティ運営ための工夫 • Abuserのモニタリングツール • クライアントセキュリティモジュール • Rooting/cheating/バイナリ改ざん検知、難読化など • APK/IPAの自動脆弱性Scanツール

    自社ツールの開発と運営 https://platform.game.line.me/products/air https://air.line.me 8
  9. LINE LINE GAME Security Life Cycle Check Action Develop Plan

    Close start end 企画検討 ガイド提供、 コンサルティング セキュリティチェック モニタリング 換金処理、backupなど リリース前 リリース後 サービス終了 9
  10. LINE 10 セキュリティモジュール セキュリティ ガイドラインの提供 セキュリティチェック データ分析 および モニタリング セキュリティガイドラインの作成(社内Gitで公開)

    セキュリティモジュールをSDKとして開発し提供 ハッカーの立場でチートや攻撃 異常データを毎日検知し、abuserを対応 セキュリティ運営業務の一部紹介
  11. 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
  12. LINE 2. セキュリティモジュールの提供 • Root・jailbreak検知/チートツール検知/ファイル改ざん検知(悪意のあるユーザなどの規模な どを推測可能) • クライアントサイドを守る目的で作られたもの、完全な対策ではなく保険的(影響の軽減)な防 御とモニタリングの役割 •

    ログ収集を通じて、事後対応(BAN/警告など)が可能 • 悪意のあるユーザの分析作業を難しくするための装置でもある • ただし、専門知識を持っていて、どうしても突破したいハッカーには、いつかは突破される可 能性があると考える 12
  13. LINE 2. セキュリティモジュールの提供(難読化) 13

  14. 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
  15. LINE 3. セキュリティチェック ビルドファイル(.apk/.ipa)に対する脆弱性自動スキャン、Eメール通知 15 診断 .ipaファイル .apkファイル 入力 結果

    メール通知
  16. LINE 3. セキュリティチェック ビルドファイル(.apk/.ipa)に対する脆弱性自動スキャン、Eメール通知 16 • アプリの難読化チェック • 脆弱性の診断 •

    オープンソースライセンスチェック • マルウェアのチェック
  17. 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
  18. LINE 4. データモニタリング(クライアント側の悪意行為) AIR ARMORが収集したデータを分析し、異常ユーザを毎日モニタリングする ⇒BAN対応を行っている 18

  19. LINE Unityゲームの改ざん 改ざんAPKファイルを入手し、インストールして使用したユーザの探知 19 4. データモニタリング(クライアント側の悪意行為)

  20. LINE 4. データモニタリング(ゲームデータ) ゲームデータ(クライアント&サーバ)を分析し、異常ユーザを毎日モニタリングする ⇒BAN対応を行っている ・閾値ベース 閾値を設定してそれを超えた場合は、異常ユーザとして検知 ゲーム内通貨に対して効率的(Abuserの狙い:通貨>スコア>アイテム) ・スコアベース 正規分布からどれぐらい離れているかによって、ゲーム要素にスコアを付与し、

    スコアが高い場合は、異常ユーザとして検知(ゲーム要素にこだわらない) 20
  21. 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
  22. LINE 最後 22 コミュニケーション 迅速な対応 最高のセキュリティ