--- tags: WEB Basic --- # Занятие 4. Web Application Firewall ## Практическая работа ### 1. Настройка инфраструктуры, установка nginx #### Настройка ВМ * Создали 2 ВМ ![](https://i.imgur.com/ebYReRt.png) * IP-адрес WAF 192.168.0.3 ![](https://i.imgur.com/wHTyQTB.png) * IP-адрес Web-сервера 192.168.0.4 ![](https://i.imgur.com/53r5TF5.png) * Обновили операционную систему ![](https://i.imgur.com/a02HVJy.png) #### Установка Nginx * Установили nginx mainline ![](https://i.imgur.com/Hc4pRzJ.png) * Установили nginx ![](https://i.imgur.com/2zbDySu.png) #### Настройка reverse-proxy * Настроили файл конфигурации ![](https://i.imgur.com/U3E13g3.png) * Перезапустили сервис, проверили статус ![](https://i.imgur.com/rZqvgUE.png) * Обратились на IP-адрес WAF, открылся WEB-ресурс. Соответсвенно reverse-proxy отрабатывает ![](https://i.imgur.com/5FJArTA.png) #### Добавление исходного кода nginx в репозиторий * Открытили конфиг и раскомментировали строку ![](https://i.imgur.com/Nex5tCn.png) #### Создание каталога * Создали каталог и перешли в него ![](https://i.imgur.com/skCDNIL.png) #### Установка зависимостей * Загрузили исходный пакет ![](https://i.imgur.com/DV8tEGg.png) * Просмотрели установленные пакеты ![](https://i.imgur.com/avOM5rb.png) * Проверили версию nginx ![](https://i.imgur.com/lAFZKwa.png) ### 2. Установка ModSecurity #### Клонирование репозитория ModSecurity из GitHub * Установили git ![](https://i.imgur.com/esfJLB1.png) * Клонировали репозиторий ModSecurity ![](https://i.imgur.com/QmTDnqA.png) * Перешли в папку, проверили содержимое ![](https://i.imgur.com/tJENA5z.png) #### Установка зависимостей libmodsecurity3 * Установили зависимости ![](https://i.imgur.com/Na7JvAJ.png) * Установили подмодули и обновили ![](https://i.imgur.com/abFyaH9.png) #### Построение среды ModSecurity * Создали среду ![](https://i.imgur.com/Sv4j0xv.png) * Сконфигурировали ![](https://i.imgur.com/wotNsnm.png) #### Компиляция исходного кода ModSecurity * Скомпилировали код ![](https://i.imgur.com/HbotCp0.png) * Запустили установку ![](https://i.imgur.com/f4p0E9Y.png) #### Установка ModSecurity-connector nginx #### Клонирование репозитория ModSecurity-nginx с GitHub * Произвели клонирование ![](https://i.imgur.com/P00exNS.png) #### Установка зависимостей ModSecurity-nginx * Перешли в исходный каталог и установили зависимости ![](https://i.imgur.com/WyUDZk5.png) * Скомпилировали модуль MS-nginx ![](https://i.imgur.com/ZgxgUGH.png) * Создали динамические модули ![](https://i.imgur.com/EROoZrH.png) * Скопировали модули ![](https://i.imgur.com/UufsgeY.png) #### Загрузка и настройка ModSecurity-nginx Connector с Nginx #### Включение ModSecurity в nginx * Отредактировали конфиг ![](https://i.imgur.com/1YOvtQt.png) #### Создание и настройка каталогов и файлов для ModSecurity * Создали директорию ![](https://i.imgur.com/upJhjbd.png) * Скопировали файл конфигурации ![](https://i.imgur.com/wKoTaF1.png) * Отредактировали конфиг ![](https://i.imgur.com/mtiVup4.png) ![](https://i.imgur.com/M3Fvaqt.png) * Создали modsec-config и добавили запись ![](https://i.imgur.com/ToqCXOk.png) * Скопировали unicode.mapping ![](https://i.imgur.com/5HfA3K7.png) * Сделали пробный запуск, конфигурация верна ![](https://i.imgur.com/NViUp21.png) * Перезапустили службу и проверили статус ![](https://i.imgur.com/lkxb8ie.png) * Еще раз проверили, что при запросе WAF открывается WEB-сервер ![](https://i.imgur.com/eEEE6oT.png) ### 3. Настройка WAF с детектированием OWASP top 10 #### Установка базового набора правил OWASP для ModSecurity * Загрузили архив OWASP CRS 3.3.2 ![](https://i.imgur.com/sPXRA3w.png) * Установили unzip ![](https://i.imgur.com/Z7l05pc.png) * Распаковали архив ![](https://i.imgur.com/48n7FvH.png) * Скопировали конфиг ![](https://i.imgur.com/3ExbsRI.png) * Включили правила в файле конфигурации ![](https://i.imgur.com/fKABjMN.png) * Сделали пробный запуск nginx, перезапустили сервис и проверили статус ![](https://i.imgur.com/4qyhIyK.png) * Открыли журнал, в которые будут писаться логи ![](https://i.imgur.com/O9upGa7.png) #### Score-board * Открыли код стартовой страницы, обнаружили ![](https://i.imgur.com/8NNI9R5.png) * Открыли json скрипт во вкладке Отладчик и выбрали "Печать исходников" ![](https://i.imgur.com/T7smi2p.png) * Обнаружили нужный путь - path: score-board ![](https://i.imgur.com/Q9YFZgy.png) * Ввели это в адресной строке. Открылась сводная таблица со списком атак ![](https://i.imgur.com/9OBbRwS.png) ### 4. Атаки на OWASP Juice Shop #### SQL Injection 1 * Попытались войти под администратором и паролем 12345. Получили ошибку 403 Forbidden ![](https://i.imgur.com/Rf1t7y1.png) * В логах имеется запись о сработанном правиле на SQLi. Также виден указанные данные при обращении к серверу (administrator'--/12345) ![](https://i.imgur.com/x7Sup3X.png) #### SQL Injection 2 * Ввели в поле регистрации следующие данные: ' + OR+1=1 -- /123. Запрос завершился ошибкой ![](https://i.imgur.com/Jmx0ySk.png) * В журнале были обнаружены уведомления о атаках SQLi ![](https://i.imgur.com/E4iYKYd.png) #### XSS * Перехватили POST запрос через BurpSuite ![](https://i.imgur.com/7l2Hixr.png) * Изменили тело запроса и отправили его на сервер. В ответе присутствует ошибка ![](https://i.imgur.com/LQiBTgu.png) * В журнале была обнаружена информация об XSS-атаке ![](https://i.imgur.com/uwXFV5z.png) #### CSRF * Открыли вкладку profile ![](https://i.imgur.com/OyTUFVg.png) * Перехватили оригинальный запрос через burpsuite ![](https://i.imgur.com/fwLlYjU.png) * Вставили скрипт и отправили запрос ![](https://i.imgur.com/biRLaUt.png) * В ответе обнаружили ошибку 403 Forbidden ![](https://i.imgur.com/TgSePVB.png) * Страница в браузере также показала ошибку ![](https://i.imgur.com/q6lIrdV.png) * В логах эта информация была также отражена ![](https://i.imgur.com/kVPR4Oq.png) * Помимо файла modsec_audit_log все ошибки также отображаются в файле nginx/error.log ![](https://i.imgur.com/TiqH3dR.png)