Пентест мобильных приложений сегодня — это уже не просто анализ .apk или .ipa, а разностороннее исследование: от бизнес-логики и API до бинарных обфускаций и Bluetooth-интерфейсов.
Уязвимости в кроссплатформенных приложениях
Фреймворки позволяют создавать приложения с единой кодовой базой. Но с точки зрения безопасности это создаёт парадокс: меньше кода — больше рисков.
Что может пойти не так:
- Хранение чувствительных данных во фронте. Даже если используется SQLite, SharedPreferences или SecureStore — всё это подлежит анализу.
- Неправильная работа с API. При отсутствии строгой серверной валидации злоумышленник может напрямую обратиться к бэкенду — минуя ограничения интерфейса.
- Логические уязвимости. Например, возможность пропустить этап оплаты или обойти ограничения через подмену локальных значений.
Фреймворки часто прячут детали реализации, но именно они могут оказаться уязвимыми.
Анализ бинарных файлов и защита от реверс-инжиниринга
Пентест мобильного приложения обязательно включает статический анализ .apk или .ipa-файла. Это позволяет выявить:
- Закомментированные, но доступные функции;
- Остатки дебаг-кода;
- API-ключи и строки подключения;
- Используемые библиотеки и их уязвимости.
Для Flutter-приложений, например, важно понимать, что интерфейс и логика могут быть скомпилированы в .so-файлы (native libraries), но строки часто остаются незащищёнными.
Методы защиты:
- Обфускация (ProGuard, R8);
- Использование NDK для критичных функций;
- Защита от дебаггинга и рутованных устройств;
- Шифрование строк и чувствительных данных;
- Runtime checks (например, anti-frida, anti-emulator).
Однако даже с обфускацией есть инструменты, которые облегчают анализ.
Не только код: атаки через BLE, NFC и другие интерфейсы
Современные мобильные приложения всё чаще взаимодействуют с внешним миром: фитнес-браслеты, терминалы, умные замки, транспорт. Это расширяет площадь атаки.
Bluetooth Low Energy (BLE)
Многие BLE-устройства не проверяют подлинность клиента — любое приложение может подключиться и прочитать данные. Часто команды управления передаются без шифрования.
NFC
Платёжные или идентификационные системы через NFC могут быть уязвимы к повторному воспроизведению сигнала (replay attack). Особенно, если метки не подписаны или отсутствует nonce.
QR-коды и WebView
Некоторые приложения используют QR-коды для входа, оплаты или передачи параметров. При неправильной реализации возможна атака через подделку кода, подгрузку вредоносного URL или JavaScript-инъекции через WebView.
Особенности тестирования iOS
iOS более закрыта, но это не значит — более безопасна.
Сложности:
- Подпись и шифрование .ipa-файлов;
- Невозможность запуска на эмуляторе без Xcode;
- Сложности с jailbreak и ограничение на динамическое внедрение кода.
Решения:
- Использование симуляторов с логированием;
- Jailbreak (если допустимо по правилам тестирования);
- Использование frida-ios-dump и других утилит для снятия ограничений.
Мобильные приложения — это не просто оболочка над API. Это сложные системы, в которых безопасность зависит не только от кода, но и от инфраструктуры, сторонних библиотек, каналов передачи данных и поведения пользователей. Кроссплатформенные фреймворки дают удобство, но и усложняют анализ.
Пентест мобильного приложения требует многослойного подхода: от изучения логики до анализа низкоуровневого кода и взаимодействия с внешними устройствами. Это не только Android и iOS. Это уже — полноценная экосистема, которую нужно уметь взламывать, чтобы уметь защищать.
