---
# System prepended metadata

title: Занятие 4. Web Application Firewall
tags: [WEB Basic]

---

---
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)

