OWASP 动手实践 Android 安全培训实验室,包含 78 个 MASVS/MASTG 模块,将存在漏洞的应用、安全应用和攻击者应用配对,以演示移动端弱点及其修复方法。
官方 OWASP 项目 — 面向 Android 开发人员与渗透测试人员的动手实践 OWASP MASVS/MASTG 安全培训实验室 — 镜像架构:易受攻击 ↔ 安全 ↔ 攻击者
Android 安全大师课 是一个官方 OWASP 项目,采用 镜像架构 设计,旨在向 Android 开发人员和安全研究人员传授漏洞的确切样貌,以及如何使用现代 Android 开发实践确切地修复它们。
本项目不再在过时的 Java 代码库中寻找漏洞,而是采用最先进的技术栈(Kotlin、Jetpack Compose、MVVM、Material 3),并围绕一个可大规模扩展的“按功能分包”系统进行构建。
🌐 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 多个模块:
MasterclassData 高保真模型与其他使用简单数据(“admin:password”)的教育项目不同,我们的泄漏模拟使用符合法规级别的载荷:
💡 提示: 您可以通过点击易受攻击或安全应用仪表盘上的 “Data Vault” 按钮,在您的设备上实时查看所有这些模拟数据。
我们将整个 OWASP MASVS 标准映射到 8 个领域的 78 个不同模块中:
以下模块的业务逻辑、MVI 架构、单元测试以及攻击/防御模拟均已完全实现:
-assumenosideeffects)和 SecureLog 包装器进行加固。adb backup 或 Google Drive 云备份提取敏感数据。通过 android:allowBackup="false"、dataExtractionRules 和 fullBackupContent 进行加固。(请参阅 MkDocs 站点上的 docs/mapping_matrix.md 以获取完整的 78 向量分解)。
app-vulnerable 或 app-secure 运行配置,并部署到模拟器。Build Variants 工具窗口并选择 debug。运行应用并检查 Logcat。您将在易受攻击的应用中看到泄漏。release。R8(ProGuard)压缩将生效。在 app-secure 中,所有关键日志将被完全剥离!:app-attacker)要查看这些漏洞的真实后果,请在同一设备上同时安装 :app-attacker 模块和 :app-vulnerable。
graph LR
subgraph VICTIM ["❌ :app-vulnerable"]
direction TB
LOG("📋 Log.d sends PII<br/>to system Logcat")
FP("📂 FileProvider<br/>exported paths")
end
subgraph MALWARE ["😈 :app-attacker"]
direction TB
LE("🔍 LogcatExploitScreen<br/>reads all logs")
ER("📥 ExploitReceiverScreen<br/>steals files via URI")
end
LOG -- "READ_LOGS permission" --> LE
FP -- "content:// URI interception" --> ER
classDef victim fill:#E74C3C,stroke:#C0392B,color:#fff,stroke-width:2px
classDef malware fill:#8E44AD,stroke:#6C3483,color:#fff,stroke-width:2px
class LOG,FP victim
class LE,ER malware授予 READ_LOGS 权限(用于 MASWE-0005):
默认情况下,Android 不允许应用读取系统日志。为了演示恶意应用在获得权限(或在已 root/较旧设备上)如何读取日志,您必须通过 ADB 手动授予此权限:
adb shell pm grant com.hasantuncay.mobsec.attacker android.permission.READ_LOGS
物理设备注意事项: 如果在 MIUI、ColorOS 等系统上测试,您必须前往 开发者选项 并启用 “USB 调试(安全设置)”,以允许 ADB 授予权限。
本项目严格出于教育目的创建。:app-vulnerable 模块中演示的漏洞是真实且危险的。请勿在生产环境中使用 :app-vulnerable 模块中的代码。请始终参考 :app-secure 模块以获取最佳实践。
我们欢迎社区的贡献!在提交 Pull Request 之前,请阅读我们全面的 贡献指南。它涵盖了我们的项目理念(按功能分包镜像架构)、编码标准,以及在 :features:masweXXXX 模块中生成和实现逻辑的分步流程。
项目负责人:
社区与支持:
| 模块层 | 作用 | 状态 |
|---|
: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 漏洞利用。 | 活跃 ✅ |