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 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.
Читайте також