
OWASPによる実践的なAndroidセキュリティトレーニングラボ。78のMASVS/MASTGモジュールで、脆弱なアプリ、安全なアプリ、攻撃者アプリをペアにしてモバイルの弱点とその修正方法を実演します。
公式 OWASP プロジェクト — Android 開発者とペンテスター向けのハンズオン OWASP MASVS/MASTG セキュリティトレーニングラボ — ミラーアーキテクチャ: 脆弱 ↔ セキュア ↔ 攻撃者
Android セキュリティ マスタークラスは、公式 OWASP プロジェクトであり、ミラーアーキテクチャを採用して設計されています。Android 開発者とセキュリティ研究者に対して、脆弱性が実際にどのようなものか、そして最新の Android 開発手法を用いて正確にどのように修正するかを教えることを目的としています。
古い Java コードベースの中からバグを探し回る代わりに、このプロジェクトは最先端の技術スタック(Kotlin、Jetpack Compose、MVVM、Material 3)を使用し、大規模にスケール可能な「Package-by-Feature」システムを中心に構成されています。
🌐 OWASP プロジェクトポータル & ドキュメント:
- OWASP プロジェクトページ: https://owasp.org/projects/android-security-masterclass
- ドキュメントポータル: https://owasp.github.io/Android-Security-Masterclass/
- ホワイトペーパー & 78 モジュールマッピングマトリクス: ドキュメントポータルで入手可能です。
graph TD
COMMON("🧱 :common<br/>Shared Data · Theme<br/>Dashboard Metadata")
subgraph FEATURES ["📦 Package-by-Feature (78 Isolated MASWE Modules)"]
direction LR
M1(":features:maswe0001<br/>Private Storage")
M2(":features:maswe0002<br/>External Storage")
M5(":features:maswe0005<br/>Logging Leaks")
MDOT("...<br/>... ")
M78(":features:maswe0078<br/>Privacy")
end
VULN("❌ :app-vulnerable<br/>Thin Shell Orchestrator")
SEC("✅ :app-secure<br/>Thin Shell Orchestrator")
ATK("😈 :app-attacker<br/>Simulated Malware")
COMMON --> FEATURES
FEATURES -- "Insecure Implementation" --> VULN
FEATURES -- "Hardened Implementation" --> SEC
VULN -. "Active Exploit<br/>IPC / Logcat" .-> ATK
classDef common fill:#4A90D9,stroke:#2C5F8A,color:#fff,stroke-width:2px,font-weight:bold
classDef feat fill:#F39C12,stroke:#D35400,color:#fff,stroke-width:2px,font-weight:bold
classDef vuln fill:#E74C3C,stroke:#C0392B,color:#fff,stroke-width:2px,font-weight:bold
classDef secure fill:#27AE60,stroke:#1E8449,color:#fff,stroke-width:2px,font-weight:bold
classDef attacker fill:#8E44AD,stroke:#6C3483,color:#fff,stroke-width:2px,font-weight:bold
class COMMON common
class M1,M2,M5,MDOT,M78 feat
class VULN vuln
class SEC secure
class ATK attacker
このプロジェクトは、合計 80 を超えるモジュールにまたがるハイパーモジュラーアーキテクチャを採用しています:
| モジュール層 | 役割 | ステータス |
|---|---|---|
:common | 基盤。MasterclassData 高忠実度ペイロードジェネレーター、ダッシュボードメタデータ、コア UI テーマ、および汎用ナビゲーションコンポーネントを含みます。 | 基盤 ✅ |
:features:masweXXXX | 78 個の完全に分離された Gradle モジュール(0001 から 0078)。各モジュールには、単一の特定の弱点に対する脆弱なロジックとセキュアなロジックの両方が含まれており、モジュール間のコード漏洩を完全に防止します。 | 78 モジュール生成済み ✅ |
:app-vulnerable | 「シンシェル」オーケストレーターアプリ。78 個すべての機能モジュールから安全でない UI コンポーネントを組み合わせて、OWASP 違反の正確な結果を示します。 | 稼働中 ✅ |
:app-secure | 「シンシェル」オーケストレーターアプリ。最新の標準(Jetpack Security、Tink、SQLCipher、ProGuard)を利用したセキュアな実装を組み合わせます。 | 稼働中 ✅ |
:app-attacker | シミュレートされた悪意のあるサードパーティアプリ。デバイス上で同時に実行されるセカンダリプロセスを介して、ライブ IPC エクスプロイトを実演します。 | 稼働中 ✅ |
MasterclassData 高忠実度モデル些細なデータ(「admin:password」など)を使用する他の教育プロジェクトとは異なり、当プロジェクトの漏洩シミュレーションでは規制グレードのペイロードを使用します:
💡 ヒント: 脆弱なアプリまたはセキュアなアプリのダッシュボードにある 「Data Vault」 ボタンをクリックすると、このシミュレートされたデータをすべてデバイス上でライブ表示できます。
OWASP MASVS 標準全体を、8 つのドメインにわたる 78 個の個別モジュールにマッピングしました:
以下のモジュールは、ビジネスロジック、MVI アーキテクチャ、ユニットテスト、および攻撃/防御シミュレーションが完全に実装されています:
-assumenosideeffects)および SecureLog ラッパーによって強化されています。adb backup または Google Drive クラウドバックアップを介した機密データ抽出を実演します。android:allowBackup="false"、dataExtractionRules、および fullBackupContent によって強化されています。(完全な 78 ベクターの内訳については、MkDocs サイトの docs/mapping_matrix.md を参照してください)。
app-vulnerable または app-secure の実行構成を選択し、エミュレーターにデプロイします。Build Variants ツールウィンドウを開き、debug を選択します。アプリを実行し、Logcat を確認します。脆弱なアプリで漏洩が表示されます。release に切り替えます。R8(ProGuard)の縮小が有効になります。app-secure では、すべての重要なログが完全に削除されます!:app-attacker)のセットアップ