Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help


title: “モバイルデータ保護と検証観点” part: “Part 5” chapter: “5-4”

モバイルデータ保護と検証観点

本章では、モバイルアプリにおけるデータ保護の観点と、Pentest での検証ポイントを整理する。

本章のゴール

  • 前提:モバイルアプリの保存先(ファイル、DB、ログ等)と、通信観測の基本(プロキシ/証明書検証)の概念を把握している。
  • 到達目標:端末内ストレージ、バックアップ、デバッグ情報、通信保護の観点から、情報漏洩リスクの成立条件を整理し、レポートで説明できる。
  • 対応演習:演習用アプリを対象に、端末内に残る情報(トークン、個人情報、ログ等)の有無と保護状況を確認し、影響(紛失・盗難、root/Jailbreak)をシナリオとして整理する(確認結果は 学習ログテンプレート(Burp Academy / 演習) に記録する)。

デバイス上のデータ保護

モバイルアプリは、次のような形でデバイス上にデータを保存する。

  • 設定ファイル、SharedPreferences(Android)、UserDefaults(iOS)
  • SQLite データベース
  • キャッシュファイル、一時ファイル
  • ログファイル

図5-4: 端末内データの主な保存先(概要)

flowchart TB
    App[モバイルアプリ] --> Secure[セキュアストレージ\n(Keystore / Keychain)]
    App --> Local[端末内ストレージ(一般領域)]
    Local --> Prefs[設定ストア\n(SharedPreferences / UserDefaults)]
    Local --> DB[SQLite]
    Local --> Files[ファイル/キャッシュ]
    Local --> Logs[ログ/クラッシュレポート]
    Local --> Backup[バックアップ経路\n(設定/端末状態に依存)]

図5-4 のように、機密情報(トークン、鍵など)が「一般領域」に残っていないか、また「セキュアストレージ」を利用できているかを切り分けて確認すると、評価の観点が整理しやすい。加えて、バックアップ経路の有無は、紛失・盗難時や解析環境における取得可能性に影響する。

Pentest では、これらのファイルに「平文の機密情報」が含まれていないかを確認する。

  • 認証情報(ID/パスワード、アクセストークン、リフレッシュトークン)
  • 個人情報(氏名、メールアドレス、位置情報など)
  • 暗号鍵や秘密鍵

デフォルトストレージに機密情報を保管するのではなく、Android Keystore / iOS Keychain などのセキュアストレージを利用しているかを確認することが重要である。

バックアップとデバッグ情報

バックアップ機能やデバッグ設定により、意図せず機密情報が漏洩するケースもある。

  • Android のバックアップ許可設定(android:allowBackup="true")により、アプリデータがバックアップ経路から取得可能になっていないか
  • デバッグログやクラッシュレポートに、機密情報や内部構造が過剰に出力されていないか

MobSF や手動解析を通じて、これらの設定と実際のファイル内容を確認する。

通信の保護

Part 2〜4 で扱ったとおり、モバイルアプリとバックエンド API 間の通信は HTTPS を前提とすべきであり、TLS のバージョンや証明書検証、ピンニングの有無が重要となる。

Pentest では次の点を確認する。

  • 平文 HTTP 通信が残っていないか(クリアテキスト通信許可の有無)
  • 証明書検証が適切に行われているか(任意の自己署名証明書を受け入れていないか)
  • ピンニング実装の有無と、そのバイパス難易度(Frida 等を用いた検証)

モバイル固有リスクとレポーティング

モバイルアプリ特有のリスクは、Web / API の分類だけでは十分に表現しきれない場合がある。レポートでは、次のような観点で整理すると理解されやすい。

  • 「端末が紛失・盗難に遭った場合に何が漏れるか」
  • 「root / Jailbreak 端末上でアプリが実行された場合、どこまで攻撃を許容するか」
  • 「バックエンド API が安全でも、モバイルクライアントの実装によりどのようなリスクが追加されるか」

これらを踏まえ、キーマテリアルの保護、ストレージポリシー、ログポリシー、端末要件(root/Jailbreak 検知の方針)などを、設計と運用の両面で検討することが望ましい。

次に読む Part

本章のポイント

  • 端末内ストレージ(設定、DB、キャッシュ、ログ)に平文の機密情報が残っていないかを確認し、Keystore / Keychain 等のセキュアストレージ利用を評価する。
  • バックアップ許可やデバッグログなどの設定不備が情報漏洩に直結するため、MobSF と手動解析で設定と実データの両面を確認する。
  • 通信保護(TLS、証明書検証、ピンニング)と合わせて、紛失・盗難や root/Jailbreak といったモバイル固有の脅威シナリオでリスクを整理する。