Проведение аудита безопасности мобильного приложения
Аудит начинается не с запуска инструментов, а с понимания, что именно защищаем. Финтех-приложение с биометрической авторизацией и медицинский трекер, который пишет в HealthKit, — разные модели угроз, разные приоритеты проверки, разный объём работы.
Стандартная точка отсчёта — OWASP Mobile Top 10. Но это не чеклист для галочки, а структура для покрытия основных классов уязвимостей.
Статический анализ (SAST)
Первый этап — анализ без запуска приложения. Декомпиляция APK через apktool + jadx даёт читаемый Java/Kotlin код. Для iOS — IDA Pro или Ghidra для бинарника, class-dump для Objective-C заголовков, strings для поиска захардкоженных секретов.
Что ищем статически:
- Hardcoded credentials: API-ключи, токены, пароли в строках.
grep -r "api_key\|secret\|password" --include="*.java"находит очевидное, но jadx показывает деобфусцированный код, где это зашито в константы классов - Небезопасное хранение: использование
SharedPreferencesилиUserDefaultsдля чувствительных данных, SQLite без шифрования - Неправильные флаги компонентов Android:
exported="true"у Activity/Service/BroadcastReceiver без proper intent-filter validation открывает атаку на глубокие ссылки и inter-process communication - Слабая криптография:
DES,MD5для паролей,ECB mode, нулевой IV, предсказуемый seed дляRandom
На Flutter приложениях SAST сложнее — Dart компилируется в нативный код через dart compile. Используем reFlutter для патчинга движка и дампа snapshot'ов, потом dumpapp для восстановления символов.
Динамический анализ (DAST)
Запускаем приложение на рутованном Android (Magisk + LSposed) или jailbroken iOS (Checkra1n/Unc0ver) и смотрим поведение в runtime.
Сетевой трафик. Burp Suite как прокси, сертификат добавляется в системное хранилище. Если приложение использует Certificate Pinning — обходим через Frida скрипт, хукая TrustManager или SSLPinningMode. После расшифровки трафика смотрим: передаются ли чувствительные данные в query-параметрах (логируются серверами), есть ли аутентификация на всех эндпоинтах API, корректные ли заголовки (Strict-Transport-Security, X-Content-Type-Options).
Файловая система. objection — фреймворк на базе Frida — позволяет в реальном времени смотреть файлы, созданные приложением: env print показывает все директории, file cat читает содержимое. Ищем незашифрованные базы данных, логи с персональными данными, кэшированные ответы API.
Память. fridump дампит heap приложения. В памяти часто живут дольше, чем нужно: credentials после logout, decrypted payloads, приватные ключи. Ищем паттерны через strings по дампу.
Reverse engineering и runtime tampering. Проверяем, работают ли защиты: jailbreak/root detection, anti-debugging, certificate pinning. Если всё обходится за 10 минут стандартными Frida-скриптами — уровень защиты минимальный.
Типичные находки по категориям
Чаще всего встречаем: захардкоженные ключи Firebase или AWS в strings.xml или GoogleService-Info.plist, отсутствие Certificate Pinning в финтех-приложениях, логирование запросов API с токенами через Log.d (остаётся в продакшне), небезопасные deep link обработчики без валидации источника, отсутствие экрана конфиденциальности при переходе приложения в фон (FLAG_SECURE / UIScreen.main.brightness).
Реже, но критичнее: SQL-инъекции через параметры deep link, небезопасная десериализация в broadcast receivers, возможность обхода биометрии через патчинг результата BiometricPrompt.
Отчётность и классификация
Каждая находка получает CVSS-оценку и описание вектора атаки — не просто «найдена уязвимость», а «злоумышленник с физическим доступом к устройству может за 15 минут извлечь токен авторизации из незашифрованной базы данных и использовать его для доступа к API». К каждому пункту — конкретная рекомендация по исправлению с примером кода.
Финальный отчёт делим на две части: технический (для разработчиков, с кодом, скриншотами, Frida-скриптами) и исполнительский (для менеджеров, с приоритетами и бизнес-рисками).
Процесс и сроки
Минимальный аудит небольшого приложения (до 50 экранов, без сложной бизнес-логики) — 1–2 недели. Комплексный аудит корпоративного приложения с серверной частью, несколькими платформами и требованиями соответствия (PCI DSS, HIPAA) — до 2–3 месяцев. Стоимость рассчитывается после первичного анализа: нужно понять объём функциональности, платформы (iOS, Android, оба), наличие серверной части в скоупе.
По итогам аудита предлагаем ретест — проверку, что найденные уязвимости действительно закрыты, а не только помечены как исправленные.







