付録:モバイル演習用アプリの準備ガイド
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) - 最短手順(ブラウザ):
Releases→Latest→Assetsから*.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
進め方(最小)
- 本付録の「入手方法」に従い、許可された検証用アプリ(APK / IPA)を用意し、ハッシュ等のメタ情報を記録する。
- 付録『演習環境クイックスタート』に従い MobSF を起動する。
- 対象アプリを投入し、静的解析結果から「重点確認項目」を抽出する。
- 確認結果は付録『学習ログテンプレート(Burp Academy / 演習)』の粒度で記録する。