Услуги Портфолио Контакты БлогНовости +7 (800) 302‑79‑27 Обсудить проект

Аудит безопасности мобильного приложения: проверка APK по OWASP MASVS

Проверка приложения на уязвимости без пентеста: загрузите Android APK, и за пару минут анализ APK покажет отладку в релизе, открытый HTTP, доступные снаружи компоненты, зашитые ключи, SDK и трекеры, параметры подписи. Отчёт сопоставлен с OWASP MASVS и честно показывает, что статикой не проверить.

Бесплатно Без регистрации APK не покидает браузер Только свои и публичные приложения

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

Загрузите APK

APK обрабатывается в вашем браузере. На сервер не отправляется.

Файл, имя пакета, строки и найденные ключи остаются на вашем компьютере. В аналитику уходят только счётчики.

Разбираем APK…

    Что нашли в сборке

    Статический осмотр не заменяет тестирование на проникновение. «Нет находок» не значит «безопасно».

    Главные находки

      Все находки

        Все находки с местом в сборке и инструкцией «как исправить», полные списки разрешений и компонентов откроются после запроса отчёта. Отчёт придёт на почту, ключи в нём замаскированы.

        Покрытие OWASP MASVS

        КонтрольЧто требуетПроверка статикойНаходок

        SDK и трекеры

        Найдены по именам пакетов в коде. Наличие библиотеки — признак, а не доказательство, что она передаёт данные.

        Разрешения и компоненты

        Что статически проверить нельзя

        Эти требования MASVS видны только при работе приложения и с исходным кодом. Их закрывают пентест и аудит кода.

          Как устроен аудит APK

          50 правил в девяти группах. Правила публичные и одинаковые для любой сборки, включая приложения, которые разрабатывает YuSMP.

          Манифест и платформаОтладка и тестовые флаги, резервные копии, открытый HTTP, экспортированные компоненты и провайдеры, FileProvider, deep links, targetSdk и minSdk.
          СетьNetwork security config: открытый HTTP, доверие пользовательским сертификатам, пиннинг; адреса http:// в коде; отключение проверки сертификата.
          СекретыПриватные ключи и хранилища ключей, токены AWS, Stripe, Telegram, GitHub, ключи Google API, JWT. Значения маскируются.
          ПодписьСхемы v1–v3.1, отладочный сертификат, алгоритм и длина ключа, срок действия, отпечаток SHA-256 для сверки с консолью.
          WebView и кодJavaScript-мосты, доступ к файлам, отладка WebView, динамическая загрузка кода, слабые режимы шифрования.
          SDK и приватностьОколо 170 SDK аналитики, рекламы, атрибуции, пушей и платежей: страна поставщика, трекеры, отечественные аналоги.
          Что такое OWASP MASVS

          MASVS (Mobile Application Security Verification Standard) — открытый стандарт безопасности мобильных приложений от OWASP. В версии 2 в нём 24 контроля в восьми группах: хранение данных, криптография, аутентификация, сеть, платформа, код, устойчивость и приватность. Каждой находке мы ставим в соответствие контроль и даём ссылку на его описание.

          По одной сборке без запуска приложения полностью проверяются только 4 контроля из 24, частично — 11, по косвенным признакам — 4. Остальные 5 требуют ручного тестирования. Таблица покрытия есть в каждом отчёте.

          Как читать серьёзность

          Критично — ключ или секрет, дающий доступ к инфраструктуре или подписи. Серьёзно — условие, которым можно воспользоваться без особых условий. Умеренно — нужно сочетание условий или проверка на месте. Низко — гигиена. Справочно — не проблема, а информация о сборке.

          Пометка «проверьте вручную» означает индикатор: в коде есть вызов или строка, но по сборке не видно, как она используется. Общего балла нет: честное «не проверено» полезнее красивой цифры.

          Почему «нет находок» не значит «безопасно»

          Статический осмотр видит настройки сборки, строки и библиотеки. Он не видит, как приложение хранит данные во время работы, как сервер проверяет права, что происходит в нативном коде и на стороне API. Это задачи пентеста и аудита кода.

          Приватность: файл остаётся у вас

          Разбор идёт в фоновом потоке браузера, который не может отправлять запросы в сеть. На сервер не уходят ни файл, ни имя пакета, ни строки из него. Если вы запросите отчёт на почту, отправится сам отчёт с замаскированными ключами, а в заявку — только количество находок.

          Нейтральность

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

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

          Загружается ли APK на сервер?
          Нет. Файл читается в фоновом потоке вашего браузера, у которого нет доступа к сети. На сервер не уходят ни файл, ни имя пакета, ни строки из него. Если запросить отчёт на почту, отправится только отчёт с замаскированными ключами.
          Можно ли проверять чужое приложение?
          Только своё, приложение вашего заказчика или опубликованное в магазине. Перед загрузкой это нужно подтвердить. Инструмент не восстанавливает исходный код, не показывает его и не содержит эксплойтов, а найденные ключи маскирует.
          Чем это отличается от пентеста?
          Это быстрый статический осмотр сборки: настройки, строки, библиотеки и подпись. Пентест проверяет работающее приложение и сервер: хранение данных, авторизацию, API, обход защиты. По сборке полностью проверяются только 4 из 24 контролей MASVS.
          Что такое OWASP MASVS?
          Открытый стандарт безопасности мобильных приложений от OWASP: 24 контроля в восьми группах. Каждая находка в отчёте привязана к контролю, а таблица покрытия показывает, что проверено полностью, частично или не проверяется.
          Почему не принимается AAB или iOS?
          В первой версии разбирается только APK. В AAB манифест хранится в другом формате, а IPA устроен иначе. Из архивов XAPK и APKS распакуйте base.apk и загрузите его. AAB можно превратить в APK через bundletool.
          Почему найден «секрет», а в консоли ключ ограничен?
          Мы видим строку в сборке, но не видим настроек ключа в консоли. Ключи Firebase и Google Maps по замыслу публикуются в приложении: если у ключа есть ограничения по приложению и API, находку можно закрыть. Если считаете находку ошибочной, нажмите «Сообщить о ложном срабатывании».
          Нашли трекеры: это нарушение 152-ФЗ?
          Не обязательно. Наличие SDK не доказывает, что он передаёт персональные данные. Если зарубежный SDK получает данные пользователей из России, это трансграничная передача: нужны основания, уведомление Роскомнадзора и упоминание в политике. Оценку даст юрист, отчёт — справочная информация.
          Что делать с находками?
          Начните с критичных и серьёзных: у каждой есть инструкция «как исправить». Находки с пометкой «проверьте вручную» передайте разработчикам. Если приложение принимаете у подрядчика, внесите их в чек-лист приёмки.