Для чего нужен пентест приложений
Несмотря на некоторую схожесть, десктопные и мобильные операционные системы принципиально различаются и требуют разных подходов к обеспечению безопасности. Некоторые типы уязвимостей, например классическая 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. В этом случае пентестер попробует прочесть и изменить пакеты между сервером и приложением. И высока вероятность, что это у него получится.
Итог
Тестирование на проникновение поможет вам найти такие уязвимости в мобильном приложении, которые не обнаружить другими способами. Благодаря ему, вы по сути, подвергаетесь полноценной хакерской атаке, но без каких-либо последствий. Профессиональные пентестеры помогут закрыть все ваши уязвимости, чтобы личные данные пользователей оставались к безопасности. Лучше всего обращаться за этой услугой к профессионалам, у которых уже есть много соответствующих успешных кейсов.