Проведення аудиту безпеки мобільного додатку
Аудит починається не з запуску інструментів, а з розуміння, що саме захищаємо. Фінтех-додаток з біометричною авторизацією та медичний трекер, який пише у 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, обидві), наявність серверної частини у скопусі.
За результатами аудиту пропонуємо повторну перевірку — перевірку, що знайдені вразливості дійсно закрити, а не просто помічені як виправлені.







