付録:モバイル演習用アプリの準備ガイド

Part 5(モバイル)の演習では、MobSF による静的解析や、必要に応じて Frida / objection による動的解析を行う。
そのため、解析対象となる 検証用アプリ(APK / IPA) を事前に用意する必要がある。

本付録は、読者が「何を用意すればよいか」で詰まらないよう、対象アプリの要件、入手方法、選定観点を整理する。

前提(必須)

  • 解析対象は 許可された検証用アプリ に限定する(第三者のアプリを無断で解析しない)。
  • 本番データ・実在ユーザー情報・実在の認証情報を投入しない(テスト用データに限定する)。
  • 解析はローカル環境(または許可された検証環境)で実施する。
  • 配布元のライセンス/利用規約において、検証・解析・改変の可否と範囲を確認する(不明な場合は利用しない)。

対象アプリの要件(静的解析:MobSF)

静的解析(MobSF)を行うには、少なくとも次の条件を満たす必要がある。

  • Android:APK を用意できること
  • iOS:IPA を用意できること
  • 解析対象が「検証目的で配布されてよい」状態であること(社内アプリ、演習用アプリ等)

対象アプリの要件(動的解析:Frida / objection)

動的解析は前提条件が重いため、最初は静的解析を主とし、必要な場合に限定して実施することを推奨する。

実施する場合、一般に次のような前提が必要になる。

  • Android:root 化端末または Frida Gadget 等、計装の前提が満たせること
  • iOS:Jailbreak 環境等、計装の前提が満たせること

選定観点(推奨)

初学者が Part 5 を進めやすい対象アプリの特徴を示す。

  • ログイン等の 認証フロー があり、トークンやセッション相当の概念が存在する
  • API 通信があり、プロキシで観測できる(HTTPS の場合、検証端末側の証明書設定が可能)
  • 端末内に保存されるデータ(設定、キャッシュ、ログ等)があり、保護状況を確認できる
  • 機能が多すぎず、観察ポイントを作りやすい(初学者が迷子になりにくい)

避けるべき対象(推奨)

  • 本番向けアプリ、個人利用アプリ、第三者提供アプリ(許可のないもの)
  • 強い改ざん検知や解析妨害により、前提条件なしでは観察が成立しにくいもの(初学者は後回しにする)

入手方法(推奨順)

本リポジトリでは、検証用アプリ(APK / IPA)を同梱しない。
演習では、配布元が「検証目的での利用」を想定して公開しているアプリを取得し、ローカル環境でのみ解析する。

1) 公開されている検証用アプリを取得する(推奨)

以下は、執筆時点で入手しやすい例である。配布条件(ライセンス、利用規約)と改変・解析の許諾範囲は各配布元で要確認である。

  • OWASP MASTG Hacking Playground(モバイル検証用アプリ)
    • 入手先:https://github.com/OWASP/MASTG-Hacking-Playground/releases
    • 提供物:*.apk(Android)、*.ipa(iOS)
    • ライセンス:GPL-3.0(執筆時点、LICENSE.md
    • 最短手順(ブラウザ):ReleasesLatestAssets から *.apk / *.ipa をダウンロードする。
    • 最短手順(CLI / 任意):gh release download --repo OWASP/MASTG-Hacking-Playground --pattern '*.apk'
  • InsecureBankv2(Android 検証用アプリ)
    • 入手先:https://github.com/dineshshetty/Android-InsecureBankv2
    • 提供物:InsecureBankv2.apk(Android)
    • ライセンス:MIT(執筆時点、LICENSE
    • 最短手順(ブラウザ):リポジトリ直下の InsecureBankv2.apk をダウンロードする。
    • 最短手順(CLI / 任意):curl -L -o InsecureBankv2.apk https://github.com/dineshshetty/Android-InsecureBankv2/raw/master/InsecureBankv2.apk

補足:Google Play / App Store 等のストア配布アプリは、利用規約上の制約がある場合がある。iOS では、ストア配布アプリの IPA は暗号化されるため、MobSF の静的解析対象として扱いにくい場合がある。演習では、配布元が検証用として提供する APK / IPA を利用する。

2) ソースからビルドして APK / IPA を用意する(必要に応じて)

  • Android:Android Studio / Gradle で debug ビルドを作成し、生成された APK(例:app-debug.apk)を利用する。
  • iOS:Xcode でビルドし、配布用にエクスポートした *.ipa を利用する。
  • いずれも「演習用として配布・解析してよい」ことが前提であり、第三者アプリのビルド成果物を共有しない。

取得後の整理(推奨)

  • 取得元 URL、取得日時、対象 OS / バージョン、アプリのバージョン情報をメモする。
  • sha256sum 等でハッシュを記録し、どのバイナリを解析したか追跡できるようにする。
  • 実端末にインストールする前に、信頼できる配布元であること(改ざんされていないこと)を確認する。

例(ハッシュの記録):

sha256sum InsecureBankv2.apk

進め方(最小)

  1. 本付録の「入手方法」に従い、許可された検証用アプリ(APK / IPA)を用意し、ハッシュ等のメタ情報を記録する。
  2. 付録『演習環境クイックスタート』に従い MobSF を起動する。
  3. 対象アプリを投入し、静的解析結果から「重点確認項目」を抽出する。
  4. 確認結果は付録『学習ログテンプレート(Burp Academy / 演習)』の粒度で記録する。