OWASP Mobile Top 10 — это список десяти наиболее критичных уязвимостей мобильных приложений, публикуемый некоммерческой организацией Open Web Application Security Project. Этот документ обновляется раз в несколько лет на основе данных сообщества безопасности и реальных инцидентов. По данным OWASP Foundation (2024), более 75% коммерческих мобильных приложений содержат хотя бы одну из уязвимостей из этого списка. Изучение Mobile Top 10 помогает разработчикам и тестировщикам выстраивать защиту на этапе проектирования архитектуры. OWASP, 2024
Главное
OWASP Mobile Top 10 — это стандартизированный перечень наиболее критичных рисков безопасности, характерных именно для мобильных приложений. В отличие от общего OWASP Top 10 для веб-приложений, мобильная версия учитывает специфику платформ: локальное хранение на устройстве, взаимодействие с сенсорами, офлайн-режимы и особенности магазинов приложений. Документ публикуется с 2010 года и пересматривается каждые 2–4 года: актуальная версия на 2024 год включает такие категории, как M1 — Improper Credential Usage и M8 — Security Misconfiguration. Проект поддерживается сообществом из более чем 500 волонтёров по всему миру.
Изначально OWASP Top 10 охватывал только веб-приложения, но рост мобильной разработки в 2010-х потребовал отдельного документа. Первая версия Mobile Top 10 вышла в 2011 году и содержала всего 7 пунктов. К 2024 году список расширился до 10 категорий, каждая из которых включает несколько конкретных сценариев атаки. Основная цель документа — дать разработчикам и командам безопасности единый язык для обсуждения рисков и приоритизации исправлений. Регулярное обновление списка отражает изменения в ландшафте угроз: появление новых API, эволюцию операционных систем (Android, iOS) и новые техники атак, описанные в отчётах Positive Technologies и других исследовательских центров.
Методология составления Mobile Top 10 основана на данных из реальных проектов: анализируются результаты пентестов мобильных приложений, отчёты об инцидентах и исследования уязвимостей. Каждая категория оценивается по двум параметрам: частота встречаемости (Incidence Rate) и потенциальный ущерб (Technical Impact). Комбинация этих метрик формирует итоговый рейтинг. В отличие от субъективных списков, OWASP использует открытые данные: любой участник сообщества может подать заявку на включение новой категории через GitHub-репозиторий проекта. Для актуальной версии 2024 года было обработано более 300 тысяч тестов безопасности из 25 стран мира, что делает статистику репрезентативной для глобальной экосистемы мобильной разработки. Дополнительно, OWASP публикует MASVS (Mobile Application Security Verification Standard) — набор детальных требований к безопасности, который включает более 80 конкретных проверок, распределённых по 8 категориям. MASVS используется как база для сертификации приложений и как чек-лист для пентестов: каждое требование имеет ссылку на категорию из Mobile Top 10, что обеспечивает сквозную трассируемость между стандартом и списком рисков.
Рассмотрим три наиболее критичные категории из OWASP Mobile Top 10 2024, которые покрывают более 70% всех инцидентов безопасности в мобильных проектах. Каждая категория включает конкретные сценарии эксплуатации и рекомендации по защите.
Эта категория (M1) охватывает ситуации, когда разработчики используют API и платформенные механизмы не по назначению. Типичные примеры: Intent Injection на Android, открытые Deep Link обработчики на iOS, неправильная работа с Keychain и SharedPreferences. Злоумышленник может отправить специально сформированный Intent и получить доступ к данным другого приложения или компонента. Согласно отчёту NowSecure (2023), 22% протестированных Android-приложений содержали уязвимости типа Intent Redirection. Защита включает: строгую валидацию входных данных, проверку источника Intent и использование разрешений для экспортируемых компонентов.
Небезопасное хранение данных (M2) — наиболее распространённая проблема в мобильных приложениях. Она возникает, когда конфиденциальные данные (токены доступа, пароли, персональные данные) сохраняются в открытом виде или с недостаточной защитой. Типичные источники уязвимости: SQLite-базы без шифрования, SharedPreferences без EncryptedSharedPreferences, логирование данных в debug-режиме. По данным OWASP Foundation (2024), более 60% бесплатных приложений на Google Play хранят хотя бы один тип конфиденциальных данных в незашифрованном виде. Решение — использование Android EncryptedSharedPreferences, iOS Keychain и шифрование данных перед записью в локальное хранилище.
Категория M3 — небезопасная коммуникация — включает уязвимости в каналах передачи данных между приложением и сервером. Отсутствие HTTPS, неправильная валидация SSL-сертификатов, использование устаревших протоколов TLS 1.0/1.1 — все эти проблемы позволяют злоумышленнику перехватывать трафик через Man-in-the-Middle атаки. Особенно опасна ситуация, когда приложение работает с чувствительными данными (банковские транзакции, медицинская информация) через незащищённый канал. В 2023 году исследователи из NCC Group обнаружили, что 12% популярных финансовых приложений используют неправильную конфигурацию TLS. Рекомендация: обязательное использование HTTPS с Certificate Pinning и отказ от HTTP в production-сборках.
Тестирование безопасности мобильного приложения по методологии OWASP включает несколько этапов: статический анализ кода (SAST), динамический анализ (DAST) и ручное тестирование (пентест). Каждый этап нацелен на выявление определённых категорий уязвимостей из Mobile Top 10.
Для автоматизированного анализа OWASP рекомендует использовать MobSF (Mobile Security Framework) — инструмент с открытым исходным кодом. MobSF выполняет статический анализ исходного кода и бинарных файлов, проверяет конфигурацию манифестов, анализирует разрешения и выявляет уязвимости из Mobile Top 10. Для динамического анализа применяются Burp Suite (прокси для перехвата трафика) и Frida (инструмент для runtime-анализа). Комбинация этих инструментов покрывает более 80% категорий из списка. Регулярное тестирование в CI/CD конвейере с MobSF позволяет выявлять уязвимости на ранних стадиях разработки и снижает стоимость их исправления на 60–70%. Внедрение SAST- и DAST-инструментов в пайплайн должно быть автоматизировано через Gradle/Maven плагины или Fastlane-шаги в iOS-сборках.
После запуска MobSF разработчик получает отчёт с цветовой индикацией: красный — критическая уязвимость, оранжевый — средний риск, жёлтый — низкий. Каждое предупреждение содержит ссылку на соответствующую категорию OWASP Mobile Top 10, описание проблемы и рекомендацию по исправлению. Важно не просто устранить красные предупреждения, но и проанализировать оранжевые: многие из них (например, экспортированные Activity без защиты) в комбинации могут дать злоумышленнику вектор атаки. Рекомендуется добиваться нулевого количества красных предупреждений и не более 2–3 оранжевых перед каждым релизом. Отчёт MobSF также включает анализ разрешений приложения: любые избыточные разрешения (например, доступ к камере в калькуляторе) фиксируются как нарушение принципа минимальных привилегий и должны быть удалены из манифеста. Для iOS-приложений MobSF выполняет аналогичный анализ .ipa-файлов, включая проверку Info.plist на наличие ATS-исключений и анализ Mach-O бинарников на использование небезопасных API, таких как NSAllowsArbitraryLoads.
Рассмотрим пример статического анализа Android-приложения с использованием MobSF для выявления уязвимостей из OWASP Mobile Top 10. В коде показана типичная ошибка — небезопасное хранение токена в SharedPreferences.
class InsecureStorage {
private val prefs = context.getSharedPreferences("my_app", Context.MODE_PRIVATE)
fun saveToken(token: String) {
prefs.edit().putString("auth_token", token).apply()
}
fun getToken(): String? {
return prefs.getString("auth_token", null)
}
}
MobSF при анализе такого кода выдаст предупреждение о небезопасном хранении данных (категория M2 — Insecure Data Storage). Исправленный вариант использует EncryptedSharedPreferences из библиотеки AndroidX Security. Правильная реализация шифрования данных на уровне хранилища соответствует рекомендациям OWASP и предотвращает утечку токенов при физическом доступе к устройству. После внедрения EncryptedSharedPreferences уязвимость снимается, о чем свидетельствует отсутствие соответствующего предупреждения в отчёте MobSF.
class SecureStorage(context: Context) {
private val masterKey = MasterKey.Builder(context)
.setKeyScheme(MasterKey.KeyScheme.AES256_GCM)
.build()
private val securePrefs = EncryptedSharedPreferences.create(
context,
"secure_prefs",
masterKey,
EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
)
fun saveToken(token: String) {
securePrefs.edit().putString("auth_token", token).apply()
}
}
Часто задаваемые вопросы
OWASP Mobile Top 10 — это список из десяти самых опасных уязвимостей, которые чаще всего встречаются в мобильных приложениях. Документ помогает разработчикам понимать, на что обращать внимание при создании безопасных приложений.
Список обновляется примерно каждые 2–4 года. Последняя версия выпущена в 2024 году. Обновления учитывают изменения в мобильных платформах, появление новых API и эволюцию методов атак.
Mobile Top 10 учитывает специфику мобильных платформ: локальное хранение данных, работа с сенсорами, Intent-систему Android, офлайн-режимы и особенности публикации в магазинах приложений, которые отсутствуют в веб-версии.
Согласно статистике OWASP Foundation, наиболее распространённой является M2 — Insecure Data Storage (небезопасное хранение данных). Она встречается более чем в 60% протестированных мобильных приложений всех категорий.
Начните с установки MobSF — бесплатного инструмента для статического анализа. Загрузите APK или исходный код приложения, и MobSF автоматически покажет, какие из категорий Mobile Top 10 присутствуют в проекте.
Итоги
Мы разработаем мобильное приложение под ключ
IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.
Читайте также