Практическое задание №4 Web.
1) Используя стенд первой практической работы - изменить инфраструктуру в соответсвии со схемой. Главное условие - чтобы машинка с WAF была проксей для WEB-сервера, развернутого во время первой практической работы
Настройки сервера с ModSecurity.

Настройки сетевых интерфейсов WAF и сервера с приложением.


2) Установить WAF (ModSecurity 3)
Для установки Modsecurity используем программное обеспечение Nginx.
Проверив,что Nginx не установлен,ставим последнюю версию Nginx.
Добавим репозиторий MAINLINE и обновим списки репозиториев.
sudo add-apt-repository ppa:ondrej/nginx-mainline -y && sudo apt update

Установим Nginx.
sudo apt install nginx-core nginx-common nginx nginx-full

Откроем файл конфигурации sources.list.
sudo nano /etc/apt/sources.list.d/ondrej-ubuntu-nginx-mainline-*.list
Раскомментируем там строку:
# deb-src http://ppa.launchpad.net/ondrej/nginx-mainline/ubuntu/ focal main

Далее: загрузим исходный код Nginx, чтобы скомпилировать динамический модуль ModSecurity. Для скачаем исходный пакет и сохраним его в каталоге /etc/local/src/nginx.
Создадим под него каталог:
sudo mkdir /usr/local/src/nginx && cd /usr/local/src/nginx
Выполним загрузку:
sudo apt install dpkg-dev -y && sudo apt source nginx

Командой: ls убедимся что файл скачался.
Командой: nginx -v подтвердим,что исходники совпадают с версией Nginx, установленной в вашей операционной системе Ubuntu.

Установим ModSecurity на Nginx.
С помощью Git клонируем репозиторий libmodsecurity3
Команда: git clone --depth 1 -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity /usr/local/src/ModSecurity/

Для компиляции установим следующие зависимости:
Команда: sudo apt install gcc make build-essential autoconf automake libtool libcurl4-openssl-dev liblua5.3-dev libfuzzy-dev ssdeep gettext pkg-config libpcre3 libpcre3-dev libxml2 libxml2-dev libcurl4 libgeoip-dev libyajl-dev doxygen -y

Установим подмодули:
git submodule init
git submodule update

Затем:
Создадим окружение,команда: ./build.sh
Выполним команду конфигурации: ./configure
Теперь, когда вы создали и настроили среду скомпилируем ее с помощью команды: make
Здесь к сожалению не сохранил скриншоты...
После компиляции исходного кода запустим команду установки: sudo make install
Создадим конф.файлы.

Настроим все необходимые конфигурации.
Включим ModSecurity в nginx.conf добавив параметр:
load_module modules/ngx_http_modsecurity_module.so;
Добавим также код в раздел HTTP:
modsecurity on;
modsecurity_rules_file /etc/nginx/modsec/modsec-config.conf;


По умолчанию в конфигурации ModSecurity механизм правил указан как DetectionOnly изменим на ON.

Изменим строку ABIJDEFHZ на ABCEFHJKZ

3) Установим правила owasp на modsecurity.
Скачаем с помощью wget архив правил OWASP CRS 3.3.2

Разархивируем.

Включим правила файл конфига:
sudo nano /etc/nginx/modsec/modsec-config.conf
Правила:
Include /etc/nginx/modsec/coreruleset-3.3.2/crs-setup.conf
Include /etc/nginx/modsec/coreruleset-3.3.2/rules/.conf

Проверим что все работает и запускается:
sudo nginx -t

Продемонстрировать что ранее развернутый web-сайт открывается при коннекте на машинку с WAF.

4) Провести 3 атаки из списка OWASP top 10 и продемонстрировать работоспособность WAF.
4.1 Проведем атаку классической SQL инъекции.

Логи:

4.2 Проверим уязвимость RCE.

Логи:

4.3 Узвимость межсайтового скриптинга.

Логи:

Та же увидим сработавшие правила.
