На предыдущую страницу
Безопасность

Как устроен пентест мобильных приложений

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

Для чего нужен пентест приложений

Несмотря на некоторую схожесть, десктопные и мобильные операционные системы принципиально различаются и требуют разных подходов к обеспечению безопасности. Некоторые типы уязвимостей, например классическая XSS более актуальны для web-приложений . То же самое с переполнением буфера: в мобильных приложениях оно встречается намного реже.

Все вопросы мобильной безопасности в основном относятся к хранению личных данных. Мобильный телефон, в прямом смысле слова, знает о человеке все и хранит множество чувствительной информации: изображения, видео, образцы голоса, заметки, учетные данные, история местоположений и многое другое.

Тестирование мобильных приложений

Современные мобильные операционные системы, такие, как Android И iOS предоставляют разработчикам множество возможностей для безопасного хранения данных и сетевого взаимодействия. А сами мобильные приложения используют API, которое предоставляется backend`ом и которое также нужно тестировать совместно с мобильным приложением. Но чтобы эти инструменты были по-настоящему эффективными, их нужно грамотно использовать. Хранение данных, межпроцессное взаимодействие, правильное использование криптографических ключей и безопасное сетевое взаимодействие — на любом из этих этапов можно допустить ошибку, которая будет стоить приложению безопасности. Пентест мобильных приложений помогает понять — есть ли возможность несанкционированного доступа к данным.

Методики

Существует несколько основных регламентов, которые описывают, как именно нужно проводить пентест. Это, например, OSSTMM (Open Source Security Testing Methodology Manual) или ISSAF (Information System Security Assessment Framework). В них подробно прописан буквально каждый шаг пентестера: методы поиска уязвимостей (например, в логах), правильная оценка уровня безопасности, действия по итогам работы, включая структуру итогового отчета.

Есть и отдельная методика для тестирования мобильных приложений, — OWASP Mobile Security Testing Guide. Она разработана одноименным проектом Open Web Application Security Project. Его авторы — достаточно авторитетные в сфере кибербезопасности люди, на счету которых обнаруженные уязвимости нулевого дня в инфраструктуре продуктов уровня IBM, Cisco VOIP, MS SQL Server и многое другое. Его создатели прямо заявляют: «Наше видение — определить индустриальный стандарт безопасности мобильных приложений». Создатели методики также озвучивают, что документ — результат попытки стандартизации разных подходов к безопасности мобильных приложений.

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

В руководстве описываются процессы, методы и инструменты пентеста, а также приведены примеры конкретных ситуаций с подробными разборами — все, чтобы специалист точно понял, что именно требуется сделать, и результаты были качественными. Документ состоит из разделов со следующими требованиями:

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

Требования разбиты на уровни: базовые, к безопасности (применимы ко всем мобильным приложениям), а также гибкие, для защиты от реверс-инжиниринга (когда на основе исполняемого файла восстанавливается исходный алгоритм работы программы).

Что именно проверяется

Для пентеста используют такой софт, как фреймворки (например, Mobile Security Framework) для динамического и статического анализа сборки, а также отладчики трафика (например, Fiddler). Вот наиболее характерные стратегии его использования.

Исследование релизов

Ценной находкой для пентестера станет отладочная информация или лог работы приложения, которые остались в релизных сборках. Благодаря им он поймет, как приложение устроено, какие базы данных и сервисы оно использует и так далее. Ему будет проще найти слабые места.

Также, если у вас нет ограничения на отправку SMS, пентестер обязательно зафиксирует это. Это очень серьезный баг, ведь у провайдеров таких услуг, как правило, нет ограничений на количество отправляемых сообщений. Если злоумышленник запросит у вашего провайдера единовременно огромное количество SMS, он полностью исчерпает предоплаченный пакет. После этого пользователи будут отрезаны от таких критических функций, как денежные переводы с подтверждением, двухфакторная аутентификация и тому подобное. Финансовые и репутационные потери в таком случае сложно предсказать.

Если есть функция создания резервной копии, пентестер обязательно проверит, насколько чувствительная информация в нем размещается.

Поиск уязвимостей в используемых компонентах

Например, внешние ссылки App Links по отношению к другим приложениям, всегда открыты. Если сервер приложения не проверяет подпись, злоумышленник может перехватить их и заменить на свою. Кроме того, потенциальные цели для атаки — открытые компоненты, которые могут обрабатывать запрос от других приложений на устройстве. Например, Activity, один из основных компонентов визуального интерфейса. Используемые фреймворки и библиотеки пентестер обязательно проверит на предмет бинарных уязвимостей — то же самое делает и потенциальный взломщик.

Разумеется, есть и множество других направлений для работы. Например, распространенное слабое место — отсутствие SSL Pinning. В этом случае пентестер попробует прочесть и изменить пакеты между сервером и приложением. И высока вероятность, что это у него получится.

Итог

Тестирование на проникновение поможет вам найти такие уязвимости в мобильном приложении, которые не обнаружить другими способами. Благодаря ему, вы по сути, подвергаетесь полноценной хакерской атаке, но без каких-либо последствий. Профессиональные пентестеры помогут закрыть все ваши уязвимости, чтобы личные данные пользователей оставались к безопасности. Лучше всего обращаться за этой услугой к профессионалам, у которых уже есть много соответствующих успешных кейсов.

Оцените данную статью

Be the first to know about new articles!

Подпишитесь на нашу рассылку
Нажимая на кнопку, Вы соглашаетесь с условиями «Политики конфиденциальности»