owasp-mobile-security-checker について
OWASP Mobile Top 10(2024)に基づき、Flutter モバイルアプリを確認するセキュリティレビュー用スキルです。4 種類の自動スキャナーと、残るリスク項目の手動レビュー資料を備えています。
主な機能
- 01ハードコードされた秘密情報のスキャン
- 02依存パッケージのバージョンと既知の CVE の確認
- 03ネットワークセキュリティ設定の確認
- 04機密データの保存方法の分析
- 05手動レビューと修正のガイド
活用シーン
- 01リリース前の Flutter アプリ監査
- 02コミット前のソースコード内の秘密情報確認
- 03プルリクエストでの自動セキュリティスキャン
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ harishwarrior/ flutter-claude-skills --skill owasp-mobile-security-checkerインストール後、Claude Code で/owasp-mobile-security-checkerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/owasp_mobile_top_10_2024.mdscripts/analyze_storage_security.pycheck_dependencies.pycheck_network_security.pyscan_hardcoded_secrets.py詳細
OWASP モバイルセキュリティチェッカー
要件
- Python 3.7 以降
pubspec.yamlを含む Flutter/Dart プロジェクト- Android および/または iOS のターゲット
- スクリプトはプロジェクトのルートディレクトリから実行してください
OWASP Mobile Top 10(2024)に基づき、Flutter およびモバイルアプリケーションの包括的なセキュリティ分析を行います。
自動スキャナー
4 つの Python スキャナーで、自動化しやすいリスクカテゴリを網羅します。<skill-dir> はスキルのインストール先(例:~/.claude/skills/owasp-mobile-security-checker)に置き換えてください。
M1 — ハードコードされたシークレット
python3 <skill-dir>/scripts/scan_hardcoded_secrets.py /path/to/project
Dart コードと設定ファイル内の API キー、トークン、パスワード、AWS 認証情報、Firebase キーを検出します。
M2 — 依存関係の脆弱性
python3 <skill-dir>/scripts/check_dependencies.py /path/to/project
pubspec.yaml を分析し、古いパッケージ、any のバージョン制約、既知の CVE を検出します。
M5 — ネットワークセキュリティ
python3 <skill-dir>/scripts/check_network_security.py /path/to/project
HTTP と HTTPS の使用状況、証明書ピンニング、Android Network Security Config、iOS ATS 設定を確認します。
M9 — 安全でないストレージ
python3 <skill-dir>/scripts/analyze_storage_security.py /path/to/project
暗号化されていない SharedPreferences、プレーンテキストでのファイル保存、暗号化されていないデータベース、安全でないバックアップ設定を特定します。
手動分析
M3、M4、M6、M7、M8、M10 ではコードレビューが必要です。各カテゴリの Flutter 固有の脆弱性パターン、攻撃フロー、対策については、references/owasp_mobile_top_10_2024.md を参照してください。
ワークフロー
Is this a comprehensive audit?
├─ YES → Run all 4 scanners → Review JSON outputs → Manual analysis (M3/M4/M6/M7/M8/M10) → Generate report
└─ NO → Continue...
Specific risk category?
├─ M1 → scan_hardcoded_secrets.py
├─ M2 → check_dependencies.py
├─ M5 → check_network_security.py
├─ M9 → analyze_storage_security.py
└─ M3/M4/M6/M7/M8/M10 → references/owasp_mobile_top_10_2024.md → manual analysis
Quick pre-release check?
└─ YES → Run all 4 scanners → Fix CRITICAL and HIGH findings only
クイックスタート:完全監査
# Run all automated scanners from the project root
python3 <skill-dir>/scripts/scan_hardcoded_secrets.py .
python3 <skill-dir>/scripts/check_dependencies.py .
python3 <skill-dir>/scripts/check_network_security.py .
python3 <skill-dir>/scripts/analyze_storage_security.py .
# Outputs produced:
# owasp_m1_secrets_scan.json
# owasp_m2_dependencies_scan.json
# owasp_m5_network_scan.json
# owasp_m9_storage_scan.json
- 重大度に基づいて優先順位を付ける — リリース前に CRITICAL と HIGH を修正します
- M3、M4、M6、M7、M8、M10 について —
references/owasp_mobile_top_10_2024.mdを参照してください - 修正計画を作成する — コード例とスケジュールを含めます
OWASP Mobile Top 10(2024)— クイックリファレンス
| リスク | 問題 | 自動化 | 主な確認項目 |
|---|---|---|---|
| M1 | ハードコードされた認証情報 | ✅ スキャナー | ソースコード/設定内の API キー、トークン |
| M2 | 脆弱な依存関係 | ✅ スキャナー | 古いパッケージ、または制約のないパッケージ |
| M3 | 弱い認証 | 手動 | トークンの保存、MFA、セッションの有効期限 |
| M4 | 入力検証 | 手動 | SQL インジェクション、WebView 内の XSS、IDOR |
| M5 | 安全でない通信 | ✅ スキャナー | HTTP の使用、証明書ピンニングの欠如 |
| M6 | プライバシー侵害 | 手動 | ログ/分析データ内の PII、過剰な権限 |
| M7 | バイナリ保護の欠如 | 手動 | --obfuscate の未指定、ルート検出の欠如 |
| M8 | 設定ミス | 手動 | 本番環境でのデバッグフラグ、詳細なログ出力 |
| M9 | 安全でないストレージ | ✅ スキャナー | SharedPreferences 内の機密データ |
| M10 | 弱い暗号方式 | 手動 | MD5/SHA1/ECB の使用、ハードコードされた鍵 |
スキャン結果の確認方法
| 重大度 | 意味 | 対応 |
|---|---|---|
| CRITICAL | 直ちに悪用可能 | 今すぐ修正してください — リリースしないでください |
| HIGH | 重大な脆弱性 | リリース前に修正してください |
| MEDIUM | 対応が望ましい | 次のスプリントで対応する計画を立ててください |
| LOW | ベストプラクティスの改善 | 時間があるときに対応してください |
よくある誤検知
- M1:テスト/サンプル用のキー、
YOUR_API_KEYのようなプレースホルダー - M2:開発時のみ使用する依存関係(リンター、テストツール)
- M5:開発時の
localhost/127.0.0.1に対する HTTP - M9:SharedPreferences 内の機密ではないデータ(テーマ設定、言語)
検出結果を脆弱性として報告する前に、必ず状況に照らして確認してください。
使用しないケース
- Web アプリケーションのセキュリティ監査 — このスキルはモバイル/Flutter 専用です
- バックエンド API またはサーバーのセキュリティレビュー
- プロフェッショナルなペネトレーションテストや正式なセキュリティ監査の代替
- Flutter/Dart または
pubspec.yamlを使用していないプロジェクト
リファレンスドキュメント
references/owasp_mobile_top_10_2024.md では、リスクごとに以下を説明しています。
- 実際の攻撃シナリオと事例
- Flutter 固有の脆弱性パターン(Dart コード)
- 安全でないコードと安全なコードの例
- プラットフォーム固有のガイダンス(Android Keystore/NSC、iOS Keychain/ATS)
- 包括的な緩和策
統合ポイント
| 段階 | アクション |
|---|---|
| プリコミット | 軽量なシークレットチェックとして scan_hardcoded_secrets.py を実行します |
| プルリクエスト | 4つのスキャナーをすべて実行し、検出結果をPRコメントとして投稿します |
| リリースビルド | 10カテゴリすべてを対象に、手動分析を含む完全な監査を実施します |
| インシデント対応 | 報告された脆弱性カテゴリを対象とするスキャナーを実行します |