Пентест web- и мобильных приложений: для чего проводить, что тестировать и как часто
На рынках с большой конкуренцией у компаний не остается другого выбора, как постоянно развивать клиентские сервисы и улучшать пользовательский опыт. Чтобы клиент в два клика мог арендовать машину, заказывать продукты или перевести деньги с любого устройства, бизнес создает web и мобильные приложения, которые часто становятся мишенью для злоумышленников.
Успешная атака киберпреступников может привести к остановке работы всей компании и утечке персональных данных пользователей. Из-за простоев бизнес часто теряет деньги, доверие и лояльность своих клиентов, а за утечку данных по 152-ФЗ регуляторы могут привлечь компанию к административной ответственности, в том числе выписать крупные штрафы.
В этом материале специалисты ITGLOBAL.COM Security рассказали, что такое web и мобильные приложения, зачем их тестировать на проникновение и чем пентест одного отличается от другого.
Разница web и мобильных приложений
Web и мобильные приложения часто путают между собой или считают, что это одно и тоже, но на самом деле у них есть принципиальные различия.
Web-приложения — интерактивный сайт, который можно открыть в браузере через любое мобильное устройство: смартфон, планшет, ноутбук. Пользователь получает онлайн-доступ к данным без установки программного обеспечения и может совершать в приложении различные действия. Например, бронировать отель, заказывать продукты, оставлять отзывы и так далее.
Мобильные приложения — программное обеспечение, которое необходимо скачать из магазина (App Store или Google Play) и установить на устройство. В отличие от web-приложений, мобильные обычно предполагают расширенную функциональность, использование уникальных свойств смартфона/планшета и персонализацию контента под конкретного клиента. Например, создание подборки вещей на основании просмотров и лайков пользователя.
Зачем делать пентест приложений
Компании делают пентест приложений (как web, так и мобильных), чтобы:
- найти уязвимости и ошибки в конфигурации. Разработчики часто оставляют в исходном коде приложения комментарии или данные служебных учетных записей, с помощью которых в инфраструктуру компании могут проникнуть киберпреступники;
- оценить надежность защиты приложений. Перед выходом в production с помощью пентеста специалисты убеждаются, что риски утечки информации и взломов сведены к минимуму;
- повысить общий уровень информационной безопасности. Чтобы защита всей инфраструктуры компании была на высоком уровне, необходимо предусмотреть ИБ всех ее составляющих: критически важных данных, сайтов, приложений, сервисов;
- минимизировать риск недоступности сервиса. Например, для банков или служб заказа такси доступность — один из самых главных показателей, потому что даже минута простоя может обернуться для компании миллионными потерями;
- предотвратить повторные хакерские атаки. Если злоумышленники один раз взломали интернет-магазин, то есть высокий риск повторения ситуации. Поэтому лучше провести пентест, найти уязвимости и устранить их.
Кто проводит пентест
В компании может быть организован внутренний цикл безопасной разработки. Тогда штатные специалисты самостоятельно на ранних этапах находят баги и уязвимости в приложении и оперативно устраняют их. А перед запуском в production в обязательном порядке проводят пентест.
Если у бизнеса нет собственных временных и кадровых ресурсов, то специалисты обращаются к сторонним организациями, таким как ITGLOBAL.COM Security, которые проводят тестирование на проникновение перед выходом продукта на рынок или после того, как инцидент ИБ уже произошел. В рамках пентеста специалисты ITGLOBAL.COM Security выясняют, насколько надежно защищены приложения компании и персональные данные пользователей.
Что проверяют в ходе пентеста
Для web и мобильных приложений характерны разные типы уязвимостей, которые требуют своих подходов к проведению пентеста.
Пентест web-приложений тесно связан с методологией тестирования самого веба, веб-сервера и продукта. Пентестеры проверяют фронтэнд и бэкэнд (клиентская и серверная часть веб-приложений), тестируют конфигурацию программного обеспечения, бизнес-логику, среды передачи данных, корректность обработки входной информации, настройки механизмов аутентификации и разграничения прав доступа.
У мобильных приложений своя специфика из-за того, что пользователь хранит в устройствах много личной информации: фотографии, видео, учетные данные, геолокация. Поэтому мобильное приложение помещают в тестовую среду или производят его реверс-инжиниринг, а затем анализируют его поведение. Например, сохраняются ли данные банковских карт или как приложение взаимодействует с соседними.
Также тестируют API, то есть проверяют, как сервер откликается на запросы мобильного приложения. Если необходимо более глубокая проверка, то у заказчика запрашивают исходный код. Подробнее о методиках пентеста можно прочитать в статье «Как устроен пентест мобильных приложений»
По итогам тестирования организация получает развернутый отчет, где указаны данные, к которым пентестеру удалось получить доступ, найденные уязвимости и рекомендации, как их устранить.
Сколько времени занимает тестирование
Пентест web-приложений занимает обычно 20-25 рабочих дней. Тестировать на проникновение мобильные приложения сложнее и дольше, поэтому срок проверки может доходить до 40 дней.
Как часто проводить пентест
Специалисты ITGLOBAL.COM Security рекомендуют делать пентест не реже, чем раз в год. Поводом для тестирования могут стать выход мажорных обновлений продукта, то есть версии с добавлением новой функциональности. И появление новой критической уязвимости в технологии, на которой построено приложение. В этом случае лучше дополнительно проверить, повлияет ли это на работу сервиса.
Саммари: отличия и сходства пентеста web- и мобильных приложений
- Принцип работы. Web-приложения — это интерактивные сайты, мобильные — это ПО, которые необходимо устанавливать на устройство.
- Цель. Пентест web и мобильных приложений проводят, чтобы найти уязвимости, оценить надежность приложения, повысить общий уровень ИБ, минимизировать риск недоступности сервиса, предотвратить повторные хакерские атаки.
- Исполнитель. Если у компании есть внутренний цикл безопасной разработки, то уязвимости находят на этапе разработки. Если внутренних ресурсов нет, то бизнес обращается к сторонней организации.
- Предмет проверки. Тестирование web-приложения тесно связано с методологией тестирования самого веба, веб-сервера и продукта, а пентест мобильных приложений больше направлен на минимизацию утечек персональных данных пользователей.
- Длительность. Пентест web-приложения обычно занимает 20-25 рабочих дней, а мобильных приложений — до 40 дней.
- Периодичность. Тестировать на проникновение приложения необходимо не реже, чем раз в год. Дополнительно проводить пентест необходимо, когда вышли мажорные обновления продукта или появилась критическая уязвимость в технологии, на базе которой построено приложение.