# Занятие 4. Web Application Firewall #
# В данной лабораторной работе использовался следующий стенд #

Затем к waf был подключён host

Для того чтобы конвертировать vdi в qcow2 была скачена программа qemo

На virtual box была установлена ubuntu 20.04

После утсановки были произведенны операции обновления репазитория и программ ос. Затем следующий командой был конвертирован файл диска в qcow2

Важно, чтобы имя файла qcow2 было virtio.qcow2 иначе образ не будет запускаться. Так же в virtual box нужно изменить тип подключения на IDE как показано на скриншоте

Посел того как утилита qemo завершит работу можно отправлять файл на EVE NG для этого использовалась утилита xftp

После копирования файла на сервере EVE NG была выполнена комада после чего сервер был перезагружен

Теперь образ ос появился в списке

# Обновление ОС #
Обновим репозиторий и установим обновления

У пользователя есть доступ к sudo

Nginx не установелна

# Добавим последнюю стабильную версию nginx #
Установим PPA

После установки PPA и обновления репазитория усатновим nginx

Изменим файлы конфигурации чтобы можно было загрузить исходных код nginx


Расскоментируем строчку

Сохраним файл и обнвим список репазиториев

# Скачивание исходного кода Nginx #
Создайте местоположение следующим образом

Изменим права доступа для каталога

Затем загрузим исходный пакет


Установленная версия nginx MAINLINE


# Установите libmodsecurity3 для ModSecurity #
Сначала установим git

Затем клонируем репазиторий libmodsecurity3 следующим образом

Для компиляции потребуется установить следующие зависимости следующим образом

Теперь, чтобы закончить, установим следующие подмодули GIT следующим образом

Затем обновите подмодули

Следующим шагом теперь является создание среды

Запустим команду конфигурации

Скомпилируем. При переустановки я использовал клчючь -j чтобы задеёствовать все ядра процессора


После компиляции можно выполнить установку

# Установить коннектор ModSecurity-nginx #
Клонируем репазиторий

Затем переместите каталог CD в исходный каталог Nginx следующим образом

Теперь установим необходимые зависимости

Далее вы скомпилируете модуль ModSecurity-nginx Connector только с флагом –with-compat следующим образом

Теперь создадим динамические модули с помощью следующей команд

Затем, находясь в исходном каталоге Nginx, используем следующую команду, чтобы переместить только что созданный динамический модуль, сохраненный в папке

# Загрузить и настроить коннектор ModSecurity-nginx с помощью Nginx #
Нжуно внести правки в файл конфигурации nginx, а именно указать путь до модуля безопастности и включить ModSecurity




Сохраняем изменения в файле
# Создание и настройка каталога и файлов для ModSecurity #
Создадим каталог для хранения файлов конфигурации и правил

Скопируем образец файла конфигурации ModSecurity обратно из клонированного каталога GIT

Откроем файл modsecurity.conf

Данная строчка не изменялась так как далее в методичке написано, что из за этого могут возникнуть ошибки

Изменим значение в строчке 224

Сохраним изменения и закроем файл.
Затем нужно создать фалй modsec-config.conf. В этот фай добавляются пути до правил

Наконец, скопируйте файл unicode.mapping ModSecurity с помощью команды CP следующим образом


Чтобы изменения вступили в силу, перезапустите службу Nginx с помощью команды systemctl

Настроим proxy внеся следующие изменения в файл /etc/nginx/sites-enabled/default


Указываем адрес веб-сервера.
Выполним подключение к waf через браузер и увидим что страница веб приложения доступна

# Установите основной набор правил OWASP для ModSecurity #
С помощью команды wget загрузите архив OWASP CRS 3.3.2 следующим образом

Теперь распакуйте архив master.zip следующим образом

Как и раньше, как и пример конфигурации modsecurity.conf, OWASP CRS поставляется с образцом файла конфигурации, который необходимо переименовать. Лучше всего использовать команду CP и сохранить резервную копию на будущее, если вам потребуется перезапустить снова

Чтобы включить правила, добавим пару строчек в файл /etc/nginx/modsec/modsec-config.conf

Ошибок нет

Перезапускаем nginx

Чтобы проверить работает ли OWASP CRS в браузере перейдём по следующему адресе

Получена ошибка 403 значит защита работает.
# Проведение атак #
SQL инъекции
Зайдём под учётной записью администратора. Вероятно что администратор это первая запись в таблице пользователей


Логи


Атака не удалась.
Выполним ту же атаку на веб сервере


DOS атака
Дос атака с сервера waf


Была получена ошибка 404. Просмотрим логи


Дос атака с удалённого хоста

Защита так же сработала. Логи


XSS атака
Попробуем через отправку комментария вызвать скрипт оповещения.

Логи


Защита сработала успешно.
# Sniper #
Попробуем создать большое количество пользолватеелй
Создадим пользователя и перехватим пакет

Находим запрос и отправляем его в intruder


Нажмём сюда чтобы убрать лишние параметры и сделать чистый запрос

Чтобы добавить символ нужно нажать на эту кнопку


Переходим на вкладку

Выберем тип нагрузки

От 1 до 12 с шагом 1

Теперь можно нажать start attack


Создание пользователей

Логи

Все пользователя были созданы защита нет

Нужно писать отдельное правило, чтобы waf смог блокировать подобные атаки.