mcpField
M
Mobile Application Security

Mobile Application Security

github.com/masriyanセキュリティ527115 回インストール1 週間前に更新
リポジトリ

Mobile Application Security について

OWASP MASVS と MASTG に基づき、Android・iOS アプリの評価を支援する Claude スキルです。静的解析、動的テスト、不審アプリのトリアージを案内し、自所有または明示的に許可されたアプリのみを対象とします。

主な機能

  1. 01APK と IPA の静的解析
  2. 02ストレージと鍵保護の確認
  3. 03通信と証明書ピンニングの検証
  4. 04Frida と objection による動的テスト支援
  5. 05プラットフォーム連携と改ざん対策の確認
  6. 06不審な APK のマルウェアトリアージ

活用シーン

  1. 01Android のマニフェスト、コンポーネント、ハードコードされた秘密情報の確認
  2. 02iOS アプリの設定と機密データ保存の評価
  3. 03テスト端末での TLS と実行時動作の検証
  4. 04不審な APK の権限と潜在的な兆候の調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/masriyan/claude-code-cybersecurity-skill --skill mobile-application-security

インストール後、Claude Code で/mobile-application-securityを入力して読み込まれたか確認します。

同梱ファイルexamples/example_usage.mdscripts/apk_analyzer.py

詳細

モバイルアプリケーションセキュリティ

目的

Claude が Android および iOS アプリケーションのセキュリティを OWASP MASVS(Mobile Application Security Verification Standard)に照らして評価し、OWASP MASTG(Mobile Application Security Testing Guide)のテストを実行できるようにします。Claude は APK/IPA の成果物に対する静的解析を行い、動的インストルメンテーション(Frida/objection)を案内し、安全なストレージ、通信、プラットフォーム連携の制御を確認し、悪意のある可能性があるモバイルアプリをトリアージします。

認可が必要です:所有している、または評価する明示的な認可を得ているアプリケーションのみをテストしてください。サードパーティ製アプリの逆コンパイルや改変は、ライセンスや法律に違反する可能性があります。開始前に書面で範囲を確認してください。


起動条件

次の内容についてユーザーから質問された場合に、このスキルが起動します。

  • Android(APK/AAB)または iOS(IPA)アプリケーションのセキュリティテスト
  • OWASP MASVS/MASTG の検証、またはモバイルペンテストのチェックリスト
  • モバイルアプリの逆コンパイル、リバースエンジニアリング、静的解析
  • 安全でないデータストレージ、ハードコードされたシークレット、キーストア/キーチェーンの確認
  • 証明書ピンニング、SSL バイパス、モバイル TLS/通信セキュリティ
  • Frida/objection による動的インストルメンテーション、またはランタイムフック
  • AndroidManifest.xml、エクスポートされたコンポーネント、ディープリンク、Info.plist の確認
  • モバイルマルウェアの解析、または不審な APK のトリアージ
  • ルート化/脱獄の検出、改ざん、またはリバースエンジニアリング対策

前提条件

pip install requests pyaxmlparser

追加機能(任意):

  • apktool — APK のデコード/再ビルド
  • jadx — Dalvik → Java デコンパイラー
  • apkid — パッカー/難読化ツール/コンパイラーのフィンガープリンティング
  • frida/objection — 動的インストルメンテーション
  • mobsf(MobSF)— 自動静的・動的解析プラットフォーム
  • Android SDK platform-tools(adb)、unzip、openssl

主な機能

1. APK の静的解析

APK の解析を依頼された場合:

  1. 展開とデコード — apktool d app.apk を実行し、AndroidManifest.xml、classes*.dex、resources.arsc、ネイティブライブラリ(lib/)、アセットを抽出します。
  2. マニフェストの確認 — 次の項目にフラグを立てます。
    • android:debuggable="true"、android:allowBackup="true"
    • 権限のないエクスポート済みコンポーネント(exported="true" が設定された、または intent-filter により暗黙的にエクスポートされた activity/service/receiver/provider)
    • usesCleartextTraffic="true"/制限の緩い network_security_config
    • 危険または過剰な権限、弱い protectionLevel のカスタム権限
    • ディープリンク/android:autoVerify(アプリリンクの乗っ取り)、エクスポート済み ContentProvider のパス
  3. シークレットの探索 — デコードしたソース、リソース、アセットをスキャンし、API キー、トークン、秘密鍵、クラウド認証情報、ハードコードされた暗号鍵/IV、バックエンド URL を探します。
  4. 逆コンパイル — jadx で Java に変換し、認証、暗号、WebView(addJavascriptInterface、setJavaScriptEnabled、信頼できない入力を使った loadUrl)、SQL を確認します。
  5. ネイティブコードとパッキング — apkid でパッカー/難読化ツールを調べ、lib/*/*.so の JNI エントリーポイントとハードコードされたデータを確認します。
  6. 署名 — 署名方式(v1/v2/v3)、デバッグ証明書の使用、完全性を検証します。

自動化された初回チェックには scripts/apk_analyzer.py を使用します。

2. iOS(IPA)の静的解析

IPA の解析を依頼された場合:

  1. IPA を解凍し、Payload/<App>.app/ を探します。
  2. Info.plist — NSAppTransportSecurity の例外(NSAllowsArbitraryLoads)、URL スキーム、UIFileSharingEnabled、権限の使用理由を確認します。
  3. バイナリの確認 — 暗号化(cryptid)、PIE、スタックカナリア、ARC を確認し、otool/class-dump でハードニングの欠如を検出します。
  4. シークレットの探索 — strings とリソースのスキャンでキー、エンドポイント、トークンを探します。
  5. データストレージ — NSUserDefaults、Core Data、Keychain のアクセシビリティクラス(kSecAttrAccessibleAlways は避けます)、保存時の plist データを確認します。
  6. 埋め込みプロビジョニングプロファイル — エンタイトルメント、アドホック配布とエンタープライズ配布の別を確認します。
3. 安全でないデータ保存(MASVS-STORAGE)

機密データが保存時にどこへ格納されるかを確認します。

  • Android:SharedPreferences、SQLite、内部/外部ファイル、ログ、WebView のキャッシュ、クリップボード。機密情報には Keystore によって保護された鍵が使用されていることを確認します。
  • iOS:Keychain(適切なアクセシビリティ設定)、NSUserDefaults/plist に秘密情報がないこと、アプリのスナップショット/バックアップに機密データがないことを確認します。
  • PII、トークン、認証情報が平文、またはアプリから導出した鍵で保存されている場合は指摘します。
4. ネットワークと転送(MASVS-NETWORK)
  • すべての通信で TLS が使用され、平文通信へのフォールバックがないことを確認します。
  • 証明書/公開鍵のピンニングが実装され、検証されていることを確認します。テスト時の objection/Frida によるバイパス方法を記録します。
  • 中間者プロキシ(Burp/mitmproxy)で API トラフィックを調査し、Web と同じ API の不備をテストします(→ Skill 09):IDOR、不適切な認証、マスアサインメント。
5. 動的解析とインストルメンテーション

ルート化/ジェイルブレイク済みのテストデバイスまたはエミュレーターで、実行時テストを実施します。

  • objection による簡単な確認:android sslpinning disable、android root disable、キーストア/Keychain のダンプ、アクティビティの一覧表示、エクスポートされたコンポーネントの起動。
  • Frida で暗号 API、認証チェック、ルート化/ジェイルブレイク検知のバイパスをフックし、機密性の高いメソッド呼び出しをトレースします。
  • 使用中のファイルシステムと logcat を監視し、データ漏えいを確認します。
6. プラットフォーム連携と改ざん対策(MASVS-PLATFORM / RESILIENCE)
  • IPC:エクスポートされたコンポーネント、インテント処理、ContentProvider の権限、カスタム URL スキーム/ディープリンクの検証を確認します。
  • WebView:不要な場合は JS を無効にします。信頼できないコンテンツに、特権を持つ JS インターフェースを決して公開しないでください。
  • レジリエンス(多層防御であり、それ自体は脆弱性ではありません):ルート化/ジェイルブレイク検知、デバッグ対策、フック対策、コード難読化、整合性チェック。
7. モバイルマルウェアのトリアージ

不審な APK については、apkid によるパッキングの確認、要求された権限と申告された機能の比較、アクセシビリティサービスの悪用、SMS/ダイヤラー/オーバーレイの権限(バンキング型トロイの木馬の兆候)、文字列内の C2 URL、動的コード読み込み(DexClassLoader)を調査します。確認済みの IOC は → Skill 06 に、より詳細な RE は → Skill 04/05 に引き継ぎます。


出力基準

# Mobile App Security Assessment — [App / Package]
Date: [Date] | Platform: [Android/iOS] | Version: [x.y.z] | Analyst: [Name]

## Executive Summary
[Posture, count by severity, top risks]

## MASVS Coverage
| Category | Result | Notes |
|----------|--------|-------|
| STORAGE | Fail | Token in SharedPreferences plaintext |
| CRYPTO  | Pass  | ... |
| NETWORK | Partial | No pinning |
| PLATFORM | ... |
| CODE / RESILIENCE | ... |

## Findings
### [M-01] Hardcoded API Key in resources  (High)
- MASTG-TEST ref / MASVS-STORAGE
- Evidence: res/values/strings.xml:api_key=...
- Impact / Remediation: [rotate, move to backend, ...]

## Recommendations (Prioritized)

スクリプトリファレンス

apk_analyzer.py
# Static triage of an APK: manifest flags, permissions, exported components, secrets
python scripts/apk_analyzer.py --apk app.apk --output apk_report.json

# Secret-scan the decoded sources too (point at an apktool/jadx output dir)
python scripts/apk_analyzer.py --apk app.apk --sources ./jadx_out --output apk_report.json

スキル連携

次のステップ条件対象スキル
バックエンド API テストアプリが REST/GraphQL API と通信する→ Skill 09
より詳細なネイティブ/バイナリ RE.so/難読化されたロジック→ Skill 04
マルウェアの分類不審な/パッキングされた APK→ Skill 05
IOC の相関分析C2/悪意のあるインフラが見つかった→ Skill 06
暗号実装のレビューアプリに独自の暗号処理がある→ Skill 13

参考資料

コメント