
Практический учебный стенд OWASP по безопасности Android с 78 модулями MASVS/MASTG, объединяющими уязвимые, защищённые и атакующие приложения для демонстрации мобильных слабостей и их исправлений.
Официальный проект OWASP — Практическая лаборатория по обучению безопасности OWASP MASVS/MASTG для Android-разработчиков и пентестеров — Зеркальная архитектура: Уязвимое ↔ Безопасное ↔ Атакующий
Мастер-класс по безопасности 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/
- White paper и матрица соответствия из 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» на Dashboard как уязвимого, так и безопасного приложения.
Мы сопоставили весь стандарт OWASP MASVS с 78 отдельными модулями в 8 доменах:
Следующие модули имеют полностью реализованную бизнес-логику, MVI-архитектуру, модульные тесты и симуляции атак/защиты:
-assumenosideeffects) и обёртки SecureLog.adb backup или облачное резервное копирование Google Drive. Защищено через android:allowBackup="false", dataExtractionRules и fullBackupContent.(См. docs/mapping_matrix.md на сайте MkDocs для полной разбивки по 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 не позволяет приложениям читать системные логи. Чтобы продемонстрировать, как вредоносное приложение может читать логи при наличии разрешения (или на рутированных/старых устройствах), вы должны предоставить это разрешение вручную через 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. Оно охватывает нашу философию проекта (Зеркальная архитектура Package-by-Feature), стандарты кодирования и пошаговый процесс генерации и реализации логики внутри модулей :features:masweXXXX.
Руководитель проекта:
Сообщество и поддержка:
| Слой модуля | Роль | Статус |
|---|
:common | Основа. Содержит генератор высокоточных полезных нагрузок MasterclassData, метаданные Dashboard, основную тему UI и общие компоненты навигации. | Основа ✅ |
:features:masweXXXX | 78 полностью изолированных Gradle-модулей (от 0001 до 0078). Каждый модуль содержит как уязвимую, так и безопасную логику для одной конкретной слабости, полностью предотвращая утечку кода между модулями. | 78 модулей сгенерировано ✅ |
:app-vulnerable | Приложение-оркестратор «Thin Shell». Оно связывает небезопасные UI-компоненты из всех 78 функциональных модулей, чтобы продемонстрировать точные последствия нарушений OWASP. | Активно ✅ |
:app-secure | Приложение-оркестратор «Thin Shell». Связывает безопасные реализации, использующие современные стандарты (Jetpack Security, Tink, SQLCipher, ProGuard). | Активно ✅ |
:app-attacker | Симулированное вредоносное стороннее приложение. Демонстрирует живые IPC-эксплойты через вторичный процесс, работающий параллельно на устройстве. | Активно ✅ |