---
# System prepended metadata

title: Занятие 4. Web Application Firewall

---

# Занятие 4. Web Application Firewall #

# В данной лабораторной работе использовался следующий стенд #
![](https://i.imgur.com/xiqz0pU.png)
Затем к waf был подключён host
![](https://i.imgur.com/dNbOgrK.png)

Для того чтобы конвертировать vdi в qcow2 была скачена программа qemo
![](https://i.imgur.com/I7frRFS.png)
На virtual box была установлена ubuntu 20.04
![](https://i.imgur.com/C1PDP3e.png)
После утсановки были произведенны операции обновления репазитория и программ ос. Затем следующий командой был конвертирован файл диска в qcow2
![](https://i.imgur.com/8TX97wk.png)
Важно, чтобы имя файла qcow2 было virtio.qcow2 иначе образ не будет запускаться. Так же в virtual box нужно изменить тип подключения на IDE как показано на скриншоте
![](https://i.imgur.com/uuSLBU5.png)
Посел того как утилита qemo завершит работу можно отправлять файл на EVE NG для этого использовалась утилита xftp
![](https://i.imgur.com/6zbZfTD.png)
После копирования файла на сервере EVE NG была выполнена комада после чего сервер был перезагружен
![](https://i.imgur.com/YzpOIXe.png)
Теперь образ ос появился в списке
![](https://i.imgur.com/6cfY9uj.png)

# Обновление ОС #
Обновим репозиторий и установим обновления
![](https://i.imgur.com/SZCqTc5.png)
У пользователя есть доступ к sudo
![](https://i.imgur.com/ts8gzxV.png)
Nginx не установелна
![](https://i.imgur.com/rc1aX73.png)
# Добавим последнюю стабильную версию nginx #
Установим PPA
![](https://i.imgur.com/VSFitxk.png)
После установки PPA и обновления репазитория усатновим nginx
![](https://i.imgur.com/C2kG77p.png)
Изменим файлы конфигурации чтобы можно было загрузить исходных код nginx
![](https://i.imgur.com/JUfDSTg.png)
![](https://i.imgur.com/O0UaFVx.png)
Расскоментируем строчку
![](https://i.imgur.com/goixCuD.png)
Сохраним файл и обнвим список репазиториев
![](https://i.imgur.com/J3ZbxL9.png)
# Скачивание исходного кода Nginx #
Создайте местоположение следующим образом
![](https://i.imgur.com/hyI6n9k.png)
Изменим права доступа для каталога
![](https://i.imgur.com/EVyrf4v.png)
Затем загрузим исходный пакет
![](https://i.imgur.com/wyrL5dp.png)
![](https://i.imgur.com/ZkOndfM.png)
Установленная версия nginx MAINLINE
![](https://i.imgur.com/j3hEZuy.png)
![](https://i.imgur.com/zMbWQzl.png)

# Установите libmodsecurity3 для ModSecurity #
Сначала установим git
![](https://i.imgur.com/D2OcK9H.png)
Затем клонируем репазиторий libmodsecurity3 следующим образом
![](https://i.imgur.com/pzS85iP.png)
Для компиляции потребуется установить следующие зависимости следующим образом
![](https://i.imgur.com/eZV8N6t.png)
Теперь, чтобы закончить, установим следующие подмодули GIT следующим образом
![](https://i.imgur.com/at2UhKZ.png)
Затем обновите подмодули
![](https://i.imgur.com/KAeqiTZ.png)
Следующим шагом теперь является создание среды
![](https://i.imgur.com/93icB2I.png)
Запустим команду конфигурации
![](https://i.imgur.com/SYSRsih.png)
Скомпилируем. При переустановки я использовал клчючь -j чтобы задеёствовать все ядра процессора
![](https://i.imgur.com/gKAKrlG.png)
![](https://i.imgur.com/tHqxSoj.png)
После компиляции можно выполнить установку
![](https://i.imgur.com/Sg6ejp7.png)

# Установить коннектор ModSecurity-nginx #
Клонируем репазиторий
![](https://i.imgur.com/wcyQbFQ.png)
Затем переместите каталог CD в исходный каталог Nginx следующим образом
![](https://i.imgur.com/JgUJD4d.png)
Теперь установим необходимые зависимости
![](https://i.imgur.com/1dEEZ3G.png)
Далее вы скомпилируете модуль ModSecurity-nginx Connector только с флагом –with-compat следующим образом
![](https://i.imgur.com/i7BS6la.png)
Теперь создадим динамические модули с помощью следующей команд
![](https://i.imgur.com/gTgytk0.png)
Затем, находясь в исходном каталоге Nginx, используем следующую команду, чтобы переместить только что созданный динамический модуль, сохраненный в папке
![](https://i.imgur.com/rkVHWb1.png)

# Загрузить и настроить коннектор ModSecurity-nginx с помощью Nginx #
Нжуно внести правки в файл конфигурации nginx, а именно указать путь до модуля безопастности и включить ModSecurity
![](https://i.imgur.com/yAP0in4.png)
![](https://i.imgur.com/pCdRVS5.png)
![](https://i.imgur.com/bx0qGL1.png)
![](https://i.imgur.com/sr07IJB.png)
Сохраняем изменения в файле

# Создание и настройка каталога и файлов для ModSecurity #
Создадим каталог для хранения файлов конфигурации и правил 
![](https://i.imgur.com/llkeHDY.png)
Скопируем образец файла конфигурации ModSecurity обратно из клонированного каталога GIT
![](https://i.imgur.com/JHWxdN5.png)
Откроем файл modsecurity.conf
![](https://i.imgur.com/kOS7Vzu.png)
Данная строчка не изменялась так как далее в методичке написано, что из за этого могут возникнуть ошибки
![](https://i.imgur.com/wHbjqHc.png)
Изменим значение в строчке 224
![](https://i.imgur.com/IsqLa4x.png)
Сохраним изменения и закроем файл. 
Затем нужно создать фалй modsec-config.conf. В этот фай добавляются пути до правил
![](https://i.imgur.com/neKJZKn.png)
Наконец, скопируйте файл unicode.mapping ModSecurity с помощью команды CP следующим образом
![](https://i.imgur.com/enQXjIj.png)
![](https://i.imgur.com/F1BlAR0.png)
Чтобы изменения вступили в силу, перезапустите службу Nginx с помощью команды systemctl
![](https://i.imgur.com/WEXi9X0.png)

Настроим proxy внеся следующие изменения в файл /etc/nginx/sites-enabled/default
![](https://i.imgur.com/ASGOiUP.png)
![](https://i.imgur.com/xkhnw4W.png)
Указываем адрес веб-сервера.
Выполним подключение к waf через браузер и увидим что страница веб приложения доступна
![](https://i.imgur.com/H1gdUaR.png)

# Установите основной набор правил OWASP для ModSecurity #
С помощью команды wget загрузите архив OWASP CRS 3.3.2 следующим образом
![](https://i.imgur.com/btK5M31.png)
Теперь распакуйте архив master.zip следующим образом
![](https://i.imgur.com/fqdWhkw.png)
Как и раньше, как и пример конфигурации modsecurity.conf, OWASP CRS поставляется с образцом файла конфигурации, который необходимо переименовать. Лучше всего использовать команду CP и сохранить резервную копию на будущее, если вам потребуется перезапустить снова
![](https://i.imgur.com/PuyEcrG.png)
Чтобы включить правила, добавим пару строчек в файл /etc/nginx/modsec/modsec-config.conf
![](https://i.imgur.com/tvSR1ti.png)
Ошибок нет
![](https://i.imgur.com/dGnfDwW.png)
Перезапускаем nginx
![](https://i.imgur.com/5WPJaaE.png)
Чтобы проверить работает ли OWASP CRS в браузере перейдём по следующему адресе
![](https://i.imgur.com/lL6Zu8e.png)
Получена ошибка 403 значит защита работает. 

# Проведение атак #
SQL инъекции 
Зайдём под учётной записью администратора. Вероятно что администратор это первая запись в таблице пользователей
![](https://i.imgur.com/JiK5tBa.png)
![](https://i.imgur.com/shazBcx.png)
Логи
![](https://i.imgur.com/zg9LNsx.png)
![](https://i.imgur.com/pLFuQdO.png)
Атака не удалась.
Выполним ту же атаку на веб сервере
![](https://i.imgur.com/YBvmvqA.png)
![](https://i.imgur.com/fv1jWfy.png)

DOS атака
Дос атака с сервера waf
![](https://i.imgur.com/lv1EeRk.png)
![](https://i.imgur.com/Zb05NQT.png)
Была получена ошибка 404. Просмотрим логи
![](https://i.imgur.com/TdVZHHf.png)
![](https://i.imgur.com/uoFWN2n.png)
Дос атака с удалённого хоста
![](https://i.imgur.com/R4pzPZD.png)
Защита так же сработала. Логи
![](https://i.imgur.com/A4wmhbr.png)
![](https://i.imgur.com/7xtnCih.png)


XSS атака
Попробуем через отправку комментария вызвать скрипт оповещения. 
![](https://i.imgur.com/eHZwBcV.png)
Логи
![](https://i.imgur.com/Uhes8xd.png)
![](https://i.imgur.com/PcrJJ6g.png)
Защита сработала успешно. 

# Sniper #
Попробуем создать большое количество пользолватеелй
Создадим пользователя и перехватим пакет
![](https://i.imgur.com/JMLGZD7.png)
Находим запрос и отправляем его в intruder
![](https://i.imgur.com/ajXQhJt.png)
![](https://i.imgur.com/FqnXaQX.png)
Нажмём сюда чтобы убрать лишние параметры и сделать чистый запрос
![](https://i.imgur.com/EZoEr50.png)
Чтобы добавить символ нужно нажать на эту кнопку
![](https://i.imgur.com/weC0dUZ.png)
![](https://i.imgur.com/OWVvD8s.png)
Переходим на вкладку 
![](https://i.imgur.com/pdHvvUu.png)
Выберем тип нагрузки
![](https://i.imgur.com/Uo8foeI.png)
От 1 до 12 с шагом 1
![](https://i.imgur.com/nbmGi7p.png)
Теперь можно нажать start attack
![](https://i.imgur.com/KIhYx8n.png)
![](https://i.imgur.com/xdPSL4I.png)
Создание пользователей
![](https://i.imgur.com/s4Qm6mX.png)
Логи
![](https://i.imgur.com/LD9VCCQ.png)
Все пользователя были созданы защита нет
![](https://i.imgur.com/Xu6nysq.png)
Нужно писать отдельное правило, чтобы waf смог блокировать подобные атаки. 













