Методология аудита безопасности веб-приложения
Сегодня мы поговорим о методологии проведения тестирования на проникновение веб-приложений. Одним из методов аудита веб-сайта является тестирование на проникновение BlackBox (BlackBox — «черный ящик»), при котором специалист располагает только общедоступной информацией о цели исследования.
В данном методе используется модель внешнего злоумышленника, мотивированного на взлом некого веб-сайта для извлечения коммерческой выгоды или из хулиганских побуждений. Об исследуемой системе обычно заранее ничего, кроме названия компании и адреса веб-сайта, неизвестно. В контексте данной статьи будет рассмотрено как поведение злоумышленника, так и пентестера, легитимность действий которого подтверждена заказчиком аудита. Подтверждение аудита может происходить разными способами — как информационным письмом с указанием объекта аудита (и исключений), так и с помощью специальных маркеров непосредственно на атакуемом сайте.Для полной картины атаки на сайт и действий сотрудников служб ИТ/ИБ отделов крайне не рекомендуется ставить последних в известность. Этим заказчик может проверить готовность своих сотрудников к реагированию на инциденты ИБ.
Основные задачи тестирования на проникновение:
анализ и проверка безопасности архитектуры Web-сервера; выявление, оценка и попытка эксплуатации (по согласованию с заказчиком) всех возможных уязвимостей в Web-приложении; описание векторов атаки и оценка рисков; предоставление рекомендаций по улучшению информационной безопасности Web-приложения. Основные задачи злоумышленника: получения доступа к критичным данным; выведение сайта из строя; монетизация/профит. Несмотря на расхождение целей, большинство методов работы злоумышленника и пентестера совпадают. При атаке злоумышленник обычно не придает особого значения морально-этическим нормам, такая атака может привести к необратимым деструктивным последствиям. При аудите легитимным пентестером согласуются наличие резервных копий и риск деструктивных последствий сводится к минимальному (особенно если у заказчика есть возможность развернуть тестовый стенд).Злоумышленники обычно идут по пути от простого к сложному: выявляют явные уязвимости с помощью популярных утилит и сканеров и пытаются эксплуатировать выявленные уязвимости. Параллельно могут проводить фишинговые атаки с рассылкой вредоносных файлов или ссылок. Основная цель с минимальными усилиями получить необходимые данные.
Пентестеры обрабатывают все возможные уязвимости и векторы атак, в том числе с использованием социотехнических методов (если такое согласовано с заказчиком), но без вредоносных вложений. Дополнительно могут быть исследованы бизнес-процессы и манипулирование бизнес-логикой приложения.
Основные методы аудита похожи на действия злоумышленника и включают в себя:
Разведку и сбор информации об атакуемой системе: в ход идут специальные поисковые запросы (google dork), обнаружение почтовых адресов сотрудников, профилей компании на сайтах вакансий (по вакансиям можно определить используемые технологии), поиск информации в кеше поисковиков, сканирование портов; Выявление защитных средств сайта — IDS/IPS/AntiDDoS/WAF систем; Сканирование веб-приложения популярными утилитами и сканерами — здесь достаточно широкий выбор, как платных, так и бесплатных программ, например веб-сканер w3af; Сканирование директорий веб-сайта для поиска чувствительной информации (файлы, бэкапы базы данных и прочее) — к примеру утилитой dirbuster; Ручной анализ уязвимостей — с помощью проксирующих средств происходит обработка запросов и анализ на предмет наличия потенциальных уязвимостей, одна из популярных утилит — Burpsuite. Эти методы включают в себя следующие этапы: Пассивный сбор информации; Определение веб-окружения и платформы; Определение типа CMS; Сканирование портов/cбор баннеров; Автоматические сканирования; Анализ данных; Определение «узких мест» ресурса; Ручной анализ; Сбор и анализ полученной информации; Анализ векторов атаки; Подтверждение полученных векторов; Составление отчета. Полученные векторы анализируются и проверяются, фиксируется время обнаружения, поскольку не исключены моменты обнаружения аномальной активности персоналом заказчика путем анализа, к примеру, access log и реализации мер по оперативному устранению уязвимости или атаки. Найденные формы авторизации или сервисы подвергаются т.н. bruteforce-атаке (подбор паролей).В случае с пентестерами данные агрегируются в системы типа Dradis для анализа и оптимизации полученной информации. На основании полученных данных формируется отчет, распределенный по уязвимым сервисам, с детальным описанием уязвимостей, сценариями атаки, состоящими из нескольких векторов, оценкой рисков и рекомендациями по их устранению.
Только при полном и ответственном аудите заказчик получает максимально реалистичную картину зрелости системы информационной безопасности своего веб-сайта.