Практическое задание №4 Web. 1) Используя стенд первой практической работы - изменить инфраструктуру в соответсвии со схемой. Главное условие - чтобы машинка с WAF была проксей для WEB-сервера, развернутого во время первой практической работы Настройки сервера с ModSecurity. ![](https://i.imgur.com/mvs1tWx.png) Настройки сетевых интерфейсов WAF и сервера с приложением. ![](https://i.imgur.com/IguMJOX.png) ![](https://i.imgur.com/2WOxxaa.png) 2) Установить WAF (ModSecurity 3) Для установки Modsecurity используем программное обеспечение Nginx. Проверив,что Nginx не установлен,ставим последнюю версию Nginx. Добавим репозиторий MAINLINE и обновим списки репозиториев. sudo add-apt-repository ppa:ondrej/nginx-mainline -y && sudo apt update ![](https://i.imgur.com/OQxjSuE.png) Установим Nginx. sudo apt install nginx-core nginx-common nginx nginx-full ![](https://i.imgur.com/nNyOnXe.png) Откроем файл конфигурации 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 ![](https://i.imgur.com/Rac6TVj.png) Далее: загрузим исходный код 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 ![](https://i.imgur.com/14pAfQz.png) Командой: ls убедимся что файл скачался. Командой: nginx -v подтвердим,что исходники совпадают с версией Nginx, установленной в вашей операционной системе Ubuntu. ![](https://i.imgur.com/u4PI00g.png) Установим ModSecurity на Nginx. С помощью Git клонируем репозиторий libmodsecurity3 Команда: git clone --depth 1 -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity /usr/local/src/ModSecurity/ ![](https://i.imgur.com/ClIBPVx.png) Для компиляции установим следующие зависимости: Команда: 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 ![](https://i.imgur.com/5uDCJdS.png) Установим подмодули: git submodule init git submodule update ![](https://i.imgur.com/RLXL5kn.png) Затем: Создадим окружение,команда: ./build.sh Выполним команду конфигурации: ./configure Теперь, когда вы создали и настроили среду скомпилируем ее с помощью команды: make Здесь к сожалению не сохранил скриншоты... После компиляции исходного кода запустим команду установки: sudo make install Создадим конф.файлы. ![](https://i.imgur.com/kFX2PsX.png) Настроим все необходимые конфигурации. Включим ModSecurity в nginx.conf добавив параметр: load_module modules/ngx_http_modsecurity_module.so; Добавим также код в раздел HTTP: modsecurity on; modsecurity_rules_file /etc/nginx/modsec/modsec-config.conf; ![](https://i.imgur.com/GDFZGs6.png) ![](https://i.imgur.com/z5cFjhy.png) По умолчанию в конфигурации ModSecurity механизм правил указан как DetectionOnly изменим на ON. ![](https://i.imgur.com/Ju1MQwr.png) Изменим строку ABIJDEFHZ на ABCEFHJKZ ![](https://i.imgur.com/uYSQmKg.png) 3) Установим правила owasp на modsecurity. Скачаем с помощью wget архив правил OWASP CRS 3.3.2 ![](https://i.imgur.com/HUM2ua8.png) Разархивируем. ![](https://i.imgur.com/BGetKUO.png) Включим правила файл конфига: 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 ![](https://i.imgur.com/DsaihED.png) Проверим что все работает и запускается: sudo nginx -t ![](https://i.imgur.com/sTxXtiI.png) Продемонстрировать что ранее развернутый web-сайт открывается при коннекте на машинку с WAF. ![](https://i.imgur.com/LdVOqyf.png) 4) Провести 3 атаки из списка OWASP top 10 и продемонстрировать работоспособность WAF. 4.1 Проведем атаку классической SQL инъекции. ![](https://i.imgur.com/a5Kd5Xn.png) Логи: ![](https://i.imgur.com/tF2cMCv.png) 4.2 Проверим уязвимость RCE. ![](https://i.imgur.com/1ndmp5I.png) Логи: ![](https://i.imgur.com/7Iz6AlB.png) 4.3 Узвимость межсайтового скриптинга. ![](https://i.imgur.com/6AJCSI4.png) Логи: ![](https://i.imgur.com/QLVR8LA.png) Та же увидим сработавшие правила. ![](https://i.imgur.com/Ibh6cTN.png)