Перейти к содержимому

Практика

Пентест мобильного приложения iOS и Android

Пентест мобильного приложения iOS и Android: что проверяют по OWASP MASVS, этапы, сроки, что подготовить и сколько это стоит в Беларуси — от 20 300 BYN.

30 июн. 2026 г./8 мин. чтения/Команда Viviar

Коротко. Пентест мобильного приложения — это ручная проверка iOS- и Android-приложения вместе с его серверной частью (API) по методике OWASP MASVS/MASTG: как приложение хранит данные на устройстве, как общается с сервером, как проверяет пользователя, что можно вытащить из него после декомпиляции и что произойдёт на взломанном (root/jailbreak) телефоне. Результат — отчёт с подтверждёнными уязвимостями, приоритетами и планом исправлений. У Viviar аудит защищённости одного продукта с разбором кода стоит от 20 300 BYN; полный пентест мобильного приложения с API считается по объёму после получасового разговора.

Статья для продуктовых руководителей, CTO и владельцев бизнеса, у которых есть или готовится к выпуску мобильное приложение — банковское, торговое, медицинское, для сотрудников.

Чем мобильный пентест отличается от проверки сайта

Веб-приложение живёт на вашем сервере: вы контролируете среду, а пользователь видит только то, что отдал браузер. Мобильное приложение — наоборот: его копия лежит на каждом телефоне, и атакующий может разобрать её у себя на столе без ограничений по времени. Отсюда три отличия.

  1. Код доступен атакующему. APK или IPA можно скачать, декомпилировать и прочитать: ключи API, адреса тестовых серверов, логику проверки подписки, зашитые пароли.
  2. Данные лежат на устройстве. Кэш, локальные базы, логи, снимки экрана в переключателе задач, буфер обмена, резервные копии — всё это места, где остаются токены и персональные данные.
  3. Среда не доверена. Телефон может быть с root/jailbreak, с подменённым сертификатом, с отладчиком, с оверлеем поверх экрана ввода PIN.

При этом серверная часть остаётся: значительная доля критичных находок в мобильных проектах — это уязвимости API, к которым приложение просто даёт удобный путь. Поэтому мобильный пентест почти всегда включает проверку API по методике веб-приложений.

Методика: OWASP MASVS и MASTG

Отраслевой стандарт для мобильных приложений — два документа OWASP:

  • MASVS (Mobile Application Security Verification Standard) — перечень требований к безопасности приложения, сгруппированных по областям: хранение данных (STORAGE), криптография (CRYPTO), аутентификация (AUTH), сеть (NETWORK), взаимодействие с платформой (PLATFORM), качество кода (CODE), устойчивость к реверс-инжинирингу (RESILIENCE), приватность (PRIVACY).
  • MASTG (Mobile Application Security Testing Guide) — руководство, как каждое требование проверять на практике: инструменты, техники, примеры для iOS и Android.

Если подрядчик не может сказать, по какому профилю MASVS проверяет и какие группы требований не вошли в объём, — сравнить предложения вы не сможете. Профиль зависит от приложения: корпоративному каталогу достаточно базового уровня, банковскому или медицинскому приложению нужны расширенный уровень и проверка устойчивости к реверс-инжинирингу. Команда наступательной безопасности Viviar фиксирует профиль и исключения в договоре до старта.

Что именно проверяют: по областям MASVS

ОбластьЧто ищемТипичная находка
Хранение данныхтокены, пароли, персональные данные в незашифрованных файлах, логах, бэкапах, буфере обменасессионный токен в SharedPreferences / plist без шифрования
Криптографиясамодельные алгоритмы, устаревшие режимы, ключи в кодеключ шифрования базы зашит в APK
Аутентификация и сессииобход биометрии, бесконечные сессии, слабые PIN, отсутствие проверки на серверебиометрия проверяется только в интерфейсе, сервер не участвует
Сетьотсутствие или обход certificate pinning, доверие любым сертификатам, открытые HTTP-запросытрафик читается через перехватывающий прокси с пользовательским CA
Платформанебезопасные deep link, экспортированные компоненты Android, утечки через WebView, лишние разрешенияэкспортированная Activity открывает экран без авторизации
Кодустаревшие библиотеки, отладочные функции в релизе, отключённые защиты компиляторатестовый эндпоинт с доступом к данным остался в продуктиве
Устойчивостьработа на root/jailbreak, отладка, подмена функций во время выполнения, отсутствие обфускациилогика проверки подписки переписывается «на лету»
Приватностьсбор данных сверх заявленного, передача сторонним SDKаналитический SDK получает номер телефона пользователя
Серверная часть (API)авторизация на уровне объектов, лимиты запросов, инъекциичужой заказ открывается по подмене ID в запросе

iOS и Android: где разница

Принципы одни, инструменты и типичные ошибки разные. Android — открытая платформа: приложение проще декомпилировать, больше точек входа (Activity, Service, Broadcast Receiver, Content Provider), больше вариантов прошивок. iOS — закрытая: сложнее получить jailbreak-устройство под нужную версию, но разработчики чаще излишне доверяют платформе — например, хранят данные в Keychain с неверным классом доступа или полагаются на Face ID без серверной проверки. Если у вас оба клиента, проверять нужно оба: одна и та же функция часто реализована разными командами по-разному.

Как проходит проверка: этапы

  1. Определение объёма. Какие приложения (iOS, Android, версии), какой API, какие роли пользователей, что нельзя трогать (продуктив с реальными платежами, партнёрские системы). Фиксируется в договоре вместе с окном тестирования и правилами остановки.
  2. Доступы. Сборки для тестирования — лучше без обфускации и с отладочными символами («серый ящик» находит больше за то же время), тестовые учётные записи под каждую роль, тестовый контур API. При «белом ящике» — исходный код.
  3. Статический анализ. Декомпиляция, поиск секретов, разбор манифеста и конфигурации, разбор используемых библиотек и их известных уязвимостей.
  4. Динамический анализ. Приложение запускается на подготовленных устройствах и эмуляторах: перехват трафика, инструментирование во время выполнения, обход pinning и проверок root/jailbreak, попытки вмешаться в логику.
  5. Тестирование API. Авторизация, бизнес-логика, лимиты, обработка ошибок — то, к чему приложение является только клиентом.
  6. Отчёт и разбор. Каждая находка с шагами воспроизведения, доказательством, оценкой критичности по CVSS и рекомендацией. Отдельно — резюме для руководства. Как читать такой документ — в отдельной статье.
  7. Ретест. После исправлений — повторная проверка закрытых пунктов.

По срокам ориентируйтесь на 2–4 недели для одного приложения с API среднего размера; два клиента и большая серверная часть — дольше.

Сколько стоит пентест мобильного приложения

Цена определяется числом платформ, размером API, глубиной (профиль MASVS) и форматом. Публичные ориентиры Viviar, действующие с 1 сентября 2026 года (нижняя граница, минимальная конфигурация):

ФорматЧто входитЦена
Аудит защищённости одного продукта (пакет «Запуск безопасной разработки»)разбор кода и приложения, что и как чинить по шагамот 20 300 BYN
То же с внедрением проверок в сборкуSAST/DAST/SCA в CI, чтобы новые версии проверялись автоматическиот 43 600 BYN
Полный пентест мобильного приложения (iOS + Android + API)по согласованному объёму и профилю MASVSиндивидуально
ИБ-сопровождениерегулярная проверка новых релизов, сканирование зависимостейот 5 200 BYN/мес

Для продуктов, которые Viviar разрабатывает сама, проверка безопасности входит в пакеты разработки — например, в MVP-Стартер (от 14 500 BYN): по принципу «сначала на себе» команда проверяет то, что сделала. Подробнее о ценообразовании — из чего складывается стоимость пентеста; все пакеты — на странице цен.

Чек-лист: что подготовить до старта

  • сборки iOS и Android для тестирования (не из магазина), по возможности без обфускации;
  • тестовые учётные записи под каждую роль: клиент, оператор, администратор;
  • тестовый контур API или согласованное окно на продуктиве;
  • список того, что трогать нельзя: реальные платежи, SMS-шлюз, партнёрские интеграции;
  • документация по API (OpenAPI/Swagger), схема архитектуры — если есть;
  • контакт разработчика, который ответит на вопросы в течение дня;
  • решение, кто получает отчёт и кто отвечает за исправления;
  • предыдущие отчёты и результаты автоматического сканирования — чтобы не платить за уже известное.

Типичные ошибки заказчика

Проверять только клиент. Самые дорогие инциденты — утечки через API: приложение чистое, а сервер отдаёт чужие данные по подмене идентификатора.

Ставить обфускацию вместо исправлений. Обфускация замедляет атакующего, но не убирает уязвимость; зашитый в код ключ остаётся ключом.

Тестировать один раз перед релизом. Каждый релиз — новые экраны, новые библиотеки. Разумный минимум: полная проверка раз в год и после крупных изменений, автоматическое сканирование зависимостей — на каждой сборке.

Забывать про 99-З. Если приложение обрабатывает персональные данные, вы — оператор по Закону № 99-З, и меры защиты (ст. 17) — ваша обязанность; пентест — одно из подтверждений, что они приняты. Что ещё требуется от оператора — в статье о требованиях 99-З.

Частые вопросы

Нужен ли пентест, если приложение прошло проверку App Store и Google Play?

Да. Модерация магазинов проверяет соответствие правилам платформы и отсутствие вредоносного поведения, а не защищённость ваших данных и вашего API. Приложение с открытым токеном в коде и API без авторизации пройдёт публикацию без замечаний — и будет уязвимо в день выхода.

Можно ли проверить приложение без исходного кода?

Можно: сборку декомпилируют и анализируют как «чёрный» или «серый ящик» — так делает реальный атакующий. Но доступ к коду (белый ящик) находит больше за то же время и обычно не стоит дороже, поэтому для собственных приложений его разумно предоставить под NDA.

Что делать, если приложение разработано на аутсорсе и подрядчик против проверки?

Право заказывать пентест собственного продукта у вас как у владельца; подрядчику важно заранее сообщить сроки и попросить сборки для тестирования. Хороший разработчик заинтересован в отчёте: он получает список исправлений с приоритетами, а не претензии после инцидента.

Сколько времени занимает пентест мобильного приложения?

Обычно 2–4 недели для одного приложения с API среднего размера: неделя — статический и динамический анализ клиента, неделя — API, остальное — отчёт, разбор и ретест. Точный срок зависит от числа платформ, ролей и размера серверной части и фиксируется в договоре.

Достаточно ли автоматического сканера для мобильного приложения?

Сканер полезен как регулярная гигиена: найдёт устаревшие библиотеки, открытые компоненты, часть проблем с хранением данных. Но он не обойдёт pinning, не подменит логику во время выполнения и не заметит, что сервер отдаёт чужой заказ по подмене ID. Для запуска и ежегодной проверки нужна ручная работа.

Вывод

Пентест мобильного приложения — это проверка трёх слоёв: кода, который лежит у атакующего на столе, данных на устройстве и API, к которому приложение даёт путь. Методика — OWASP MASVS/MASTG, результат — подтверждённые находки с приоритетами. Ориентир по цене у Viviar — от 20 300 BYN за аудит одного продукта, полный проект — по объёму. Опишите приложение и что оно обрабатывает — назовём объём и сумму после получасового разговора.

Источники: OWASP MASVS и OWASP MASTG — проект OWASP Mobile Application Security (owasp.org); OWASP Mobile Top 10 (owasp.org); OWASP API Security Top 10 (owasp.org); CVSS v4.0 (first.org); Закон Республики Беларусь от 07.05.2021 № 99-З «О защите персональных данных» (pravo.by); цены — публичные пакеты Viviar, /pricing, действуют с 01.09.2026.

Об авторе

Команда Viviar

Профиль в LinkedIn