
Laboratório prático de treinamento em segurança Android da OWASP com 78 módulos MASVS/MASTG que combinam aplicativos vulneráveis, seguros e de atacante para demonstrar fraquezas móveis e suas correções.
Projeto Oficial da OWASP — Um Laboratório Prático de Treinamento em Segurança OWASP MASVS/MASTG para Desenvolvedores Android e Pentesters — Arquitetura Espelhada: Vulnerável ↔ Seguro ↔ Atacante
O Android Security Masterclass é um projeto oficial da OWASP projetado com uma Arquitetura Espelhada para ensinar desenvolvedores Android e pesquisadores de segurança exatamente como as vulnerabilidades se parecem e exatamente como corrigi-las usando práticas modernas de desenvolvimento Android.
Em vez de caçar bugs em bases de código Java desatualizadas, este projeto utiliza uma stack tecnológica de ponta (Kotlin, Jetpack Compose, MVVM, Material 3) e é estruturado em torno de um sistema "Package-by-Feature" massivamente escalável.
🌐 Portal do Projeto OWASP & Documentação:
- Página do Projeto OWASP: https://owasp.org/projects/android-security-masterclass
- Portal de Documentação: https://owasp.github.io/Android-Security-Masterclass/
- Whitepaper & Matriz de Mapeamento de 78 Módulos: Disponível no portal de documentação.
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 attackerO projeto utiliza uma arquitetura Hiper-Modular abrangendo mais de 80 módulos no total:
MasterclassDataDiferente de outros projetos educacionais que usam dados triviais ("admin:password"), nossas simulações de vazamento usam payloads de nível regulatório:
💡 Dica: Você pode visualizar todos esses dados simulados ao vivo no seu dispositivo clicando no botão "Data Vault" no Dashboard do app vulnerável ou do seguro.
Mapeamos todo o padrão OWASP MASVS em 78 módulos distintos distribuídos em 8 domínios:
Os seguintes módulos têm sua lógica de negócio, arquitetura MVI, testes unitários e simulações de ataque/defesa totalmente implementados:
-assumenosideeffects) e wrappers SecureLog.adb backup ou backup em nuvem do Google Drive. Protegido via android:allowBackup="false", dataExtractionRules e fullBackupContent.(Veja o docs/mapping_matrix.md no site MkDocs para a análise completa dos 78 vetores).
app-vulnerable ou app-secure e implante em um emulador.Build Variants e selecione debug. Execute o app e verifique o Logcat. Você verá os vazamentos no app vulnerável.release. A minificação do R8 (ProGuard) entrará em ação. No app-secure, todos os logs críticos serão removidos completamente!:app-attacker)Para ver as consequências reais dessas vulnerabilidades, instale o módulo :app-attacker junto com o :app-vulnerable no mesmo dispositivo.
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 malwareConcedendo Permissão READ_LOGS (Para MASWE-0005):
Por padrão, o Android não permite que apps leiam logs do sistema. Para demonstrar como um app malicioso pode ler logs se tiver permissão concedida (ou em dispositivos rooteados/antigos), você deve conceder essa permissão manualmente via ADB:
adb shell pm grant com.hasantuncay.mobsec.attacker android.permission.READ_LOGS
Nota para Dispositivos Físicos: Se estiver testando em MIUI, ColorOS, etc., você deve ir em Opções do Desenvolvedor e habilitar "Depuração USB (configurações de segurança)" para permitir que o ADB conceda permissões.
Este projeto foi criado estritamente para fins educacionais. As vulnerabilidades demonstradas no módulo :app-vulnerable são reais e perigosas. Não use o código do módulo :app-vulnerable em ambientes de produção. Sempre consulte o módulo :app-secure para melhores práticas.
Acolhemos contribuições da comunidade! Por favor, leia nosso abrangente Guia de Contribuição antes de abrir um Pull Request. Ele cobre nossa filosofia de projeto (Arquitetura Espelhada Package-by-Feature), padrões de codificação e o processo passo a passo para gerar e implementar lógica dentro dos módulos :features:masweXXXX.
Líder do Projeto:
Comunidade & Suporte:
| Camada de Módulo | Função | Status |
|---|
:common | A fundação. Contém o gerador de payload de alta fidelidade MasterclassData, metadados do Dashboard, tema de UI principal e componentes genéricos de navegação. | Fundação ✅ |
:features:masweXXXX | 78 módulos Gradle totalmente isolados (0001 a 0078). Cada módulo contém tanto a lógica vulnerável quanto a segura para uma única fraqueza específica, prevenindo completamente o vazamento de código entre módulos. | 78 Módulos Gerados ✅ |
:app-vulnerable | Um app orquestrador "Thin Shell". Ele conecta os componentes de UI inseguros de todos os 78 módulos de feature para demonstrar a consequência exata das violações da OWASP. | Ativo ✅ |
:app-secure | Um app orquestrador "Thin Shell". Conecta as implementações seguras utilizando padrões modernos (Jetpack Security, Tink, SQLCipher, ProGuard). | Ativo ✅ |
:app-attacker | Um app malicioso de terceiros simulado. Demonstra exploits de IPC ao vivo através de um processo secundário executando concorrentemente no dispositivo. | Ativo ✅ |