web-threat-mitigation
Лабораторная работа по обнаружению и смягчению угроз веб-приложений с использованием OWASP ZAP, Burp Suite и ModSecurity WAF (с OWASP CRS). Пример: Spring4Shell (CVE-2022-22965). Локальная настройка на базе Docker.
Лабораторная работа по смягчению веб-угроз – OWASP ZAP, ModSecurity и эксплуатация уязвимостей CVE
В этом репозитории документируется лабораторная работа, посвящённая моделированию, анализу и смягчению распространённых угроз веб-приложений. Она включает установку уязвимых целей, инструментов сканирования, развёртывание WAF (ModSecurity с OWASP CRS), а также живую эксплуатацию CVE-2022-22965 (Spring4Shell).
Цели лабораторной работы
- Развернуть уязвимое веб-приложение (WebGoat) с помощью Docker
- Выполнить сканирование уязвимостей с использованием OWASP ZAP и Burp Suite
- Настроить обратный прокси-сервер с Nginx + ModSecurity + OWASP CRS 4.9.0
- Проанализировать результаты до и после внедрения WAF
- Эксплуатировать Spring4Shell и проверить эффективность WAF
Используемые инструменты
- Docker + Docker Compose
- OWASP ZAP и Burp Suite
- ModSecurity (через libnginx-mod-http-modsecurity)
- OWASP Core Rule Set (CRS 4.9.0)
- Kali Linux с Metasploit Framework
- CentOS 9 Stream и Debian 12
Рабочий процесс лабораторной работы
- Развёртывание WebGoat на CentOS с помощью Docker, доступен на порту 8080.



- Первоначальное сканирование с Kali Linux с помощью OWASP ZAP:
- Высокорисковые оповещения: SQL-инъекция, Spring4Shell
- Средний уровень: отсутствие CSP, токены CSRF, подмена параметров
- Информационные: утечки версий, возможный XSS, проблемы с сессиями


- Развёртывание обратного прокси на Debian 12 с помощью nginx.

- Настройка WAF с OWASP CRS и правилами, загруженными из:
/etc/nginx/coreruleset-4.9.0/crs-setup.conf
/etc/nginx/coreruleset-4.9.0/rules/*.conf
Правила были протестированы и включены путём проверки логов ModSecurity.



- Сканирование после WAF с помощью OWASP ZAP показало:
- Сокращение оповещений (заблокированные или замаскированные ответы)
- Подтверждение защиты WAF


- Тестирование эксплуатации с помощью Metasploit против Spring4Shell:
- Без WAF: успешное удалённое выполнение кода (RCE) (полезная нагрузка reverse shell)
- С WAF: эксплуатация заблокирована из-за обнаружения CRS


Заключение
Лабораторная работа показывает важность многоуровневой защиты:
- Уязвимое приложение может быть легко раскрыто без защиты
- ZAP/Burp помогают выявить и классифицировать уязвимости
- ModSecurity и OWASP CRS эффективно сокращают поверхность атаки
- WAF могут блокировать реальные CVE, такие как Spring4Shell, при правильной настройке
Автор
Bruno Paolo Huamán Vela (Лима, Перу)
Студент по кибербезопасности – Уральский федеральный университет (UrFU)