Пентест веб-приложений – попытка взлома прикладных систем (например, API-интерфейсов или внутренних серверов) для выявления уязвимостей, а в частности, незащищенных входных данных, которые подвержены атакам путем внедрения кода.
Тестирование на проникновение – смоделированная кибератака на компьютерную систему для её проверки на наличие уязвимостей. В контексте безопасности веб-приложений пентест обычно используется для усиления брандмауэра веб-приложений (Web Application Firewall, WAF).
Информация, полученная в результате теста на проникновение, может использоваться для тонкой настройки политик безопасности WAF и исправления обнаруженных уязвимостей.
Процесс тестирования можно разбить на пять этапов.
1. Планирование и разведка
2. Сканирование
На этом этапе мы определяем то, как целевое приложение будет реагировать на различные попытки вторжения. Обычно это делается с помощью:
3. Получение доступа
На этом этапе используются атаки веб-приложений для выявления уязвимостей – межсайтовый скриптинг (XSS), SQL-инъекция и бэкдоры. Затем пентестер пытается эксплуатировать найденные уязвимости, как правило, путем повышения привилегий, кражи данных, перехвата трафика и т. д., чтобы понять, какой ущерб он может нанести цели.
4. Сохранение доступа
Цель этого этапа — выяснить, можно ли использовать уязвимость для обеспечения постоянного присутствия в эксплуатируемой системе — достаточно долго, чтобы злоумышленник мог получить полный доступ. Идея состоит в том, чтобы сымитировать APT-угрозы, которые часто остаются в системе в течение нескольких месяцев, чтобы украсть самые конфиденциальные данные организации.
5. Анализ
Результаты теста на проникновение затем объединяются в отчет, в котором подробно описываются:
Эта информация анализируется персоналом службы безопасности, чтобы помочь настроить параметры WAF предприятия и другие решения безопасности приложений для исправления уязвимостей и защиты от будущих атак.
Внешнее тестирование
Внешние тесты на проникновение нацелены на активы компании, доступные в Интернете, например, само веб-приложение, сайт компании, а также почтовые серверы и DNS-серверы. Цель состоит в том, чтобы получить доступ и извлечь ценные данные.
Внутреннее тестирование
В ходе внутреннего тестирования пентестер, имеющий доступ к приложению за брандмауэром, имитирует атаку злоумышленника. Типичным стартовым сценарием может быть сотрудник, чьи учетные данные были украдены в результате фишинговой атаки.
Слепое тестирование
При слепом тестировании тестировщику сообщается только название целевой компании. Это позволяет сотрудникам службы безопасности в режиме реального времени видеть, как будет происходить фактическая атака на приложение.
Двойное слепое тестирование
В двойном слепом тесте ИБ-специалисты не имеют предварительных сведений о смоделированной атаке. Как и в реальном мире, у них не будет времени укрепить свою защиту перед попыткой взлома.
Целевое тестирование
В этом сценарии и тестер, и сотрудники службы безопасности работают вместе и держат друг друга в курсе своих действий. Это ценное учебное упражнение, которое дает команде безопасности обратную связь в режиме реального времени с точки зрения хакера.
Тестирование на проникновение и WAF являются эксклюзивными, но взаимовыгодными мерами безопасности.
Для многих видов ручного тестирования (за исключением слепых и двойных слепых тестов) тестер, скорее всего, будет использовать журналы WAF для обнаружения и эксплуатации уязвимостей приложения.
В свою очередь, администраторы веб-приложения изучат результаты пентеста и на их основе обновят конфигурации WAF, чтобы устранить обнаруженные уязвимости.
Кроме того, ручное тестирование удовлетворяет некоторым требованиям соответствия процедурам аудита безопасности – PCI DSS и SOC 2. А требования стандарта PCI-DSS 6.6 могут быть удовлетворены только при использовании сертифицированного WAF. Но это не делает тестирование менее полезным из-за его преимуществ и способности улучшать конфигурации WAF.
Сбалансированная диета для серого вещества