Статья 6

Автоматизированные атаки с помощью GoTestWAF

Курс "PTAF PRO Getting Started"
Приветствуем вас в шестой статье курса «PTAF PRO Getting Started»!

В прошлых материалах мы уже познакомились с тем, что нам предлагает PT AF PRO для обеспечения безопасности нашего веб-приложения.

В данной же статье мы осуществим базовую настройку политики PT AF PRO и протестируем её с помощью GoTestWaf:
  • Опишем макет и схему подключения;
  • Настроим сеть и базовую политику PT AF PRO;
  • Протестируем решение GTWом

Схема

Дополним нашу схему уязвимым приложением в виде metasploitable сервера и смоделируем удаленного пользователя через kali linux, запустив на нем GoTestWaf в докере.
Начнем с Kali linux. Установим последний дистрибутив и запускаем его. Далее осуществляем sudo apt update и sudo apt upgrade для актуализации пакетов. Установим ip адрес на интерфейс согласно макету и пропишем путь.

Затем устанавливаем докер командой: sudo apt install -y docker. io

Ищем контейнер через sudo docker search gotestwaf и выбираем интересующий.

Для данного макета берем следующий:
И пулим его на нашу машину с помощью sudo docker pull wallarm/gotestwaf

Теперь подготовим уязвимое приложение.

Делаем запрос в браузере на скачивание Metasploitable 2. Получаем архив с готовым диском и подключаем его к виртуальной машине.

Запускаем и вводим логин/пароль: msfadmin/msfadmin.

Указываем ему локальный адрес (например 192.168.2.3/24). Прописываем дефолт-роут через 192.168.2.1/24.

Позже установим этот адрес на PT AF.

Настройка PT AF PRO

Первым делом пропишем необходимые нам интерфейсы.

Для тестов нам понадобится eth-ext1 и eth-int1. Еth-mgmt должен быть сконфигурирован для доступа в веб интерфейс устройства. При установке данный шаг был пропущен, поскольку доступ к веб интерфейсу был выдан через dhcp. Теперь же нам необходимо их отредактировать. Все настройки осуществляем через оболочку wsc.

Первым делом отключаем автоматическое назначение ip адресов с mgmt интерфейса и переносим wan роль на ext1:
if mode eth-mgmt static
dhcp set routers false
if del eth-mgmt inet_gateway *.*.*.*
if mode eth-ext1 static
if set eth-ext1 inet_address *.*.*.* inet_netmask 255.255.255.255 inet_gateway *.*.*.* (чтобы выпускать waf в интернет сеть)

После этого у вас будет переназначена роль WAN на данный интерфейс. Если этого не произошло, то назначьте в ручном порядке.

Также задаем локальный ip адрес на интерфейс int1:
if set eth-int1 inet_address 192.168.2.1 inet_netmask 255.255.255.255
Также нужно прописать путь до локальной сети:
route add 192.168.2.0/24 dev eth-int1
В итоге будет добавлена следующая настройка:
После всех действий сохраняем конфигурацию: config commit

Переходим в веб-интерфейс PT AF во вкладке «схема конфигурации»:
Это основной центр конфигурации политик.

И само создание политики состоит из 5 основных этапов:
  1. Добавление защищаемого сервера;
  2. Добавления ip-адреса для прослушивания;
  3. Добавление профиля трафика;
  4. Создание набора системных правил и политики безопасности (либо используем шаблонные)
  5. Объединение всех элементов во вкладке веб-приложения для запуска защиты

Как видно на скриншоте выше, можно будет даже подсветить цепочку элементов, с которыми построена связь. Рассмотрим все по порядку.

Добавление защищаемого сервера

Здесь мы просто указываем ip-адрес доступа к нашему приложению на сервере, а также прописываем порт.

Добавление ip-адреса для прослушивания

Здесь прописываем wan-адрес и указываем направление передачи трафика при обращении на прослушиваемый интерфейс. Также указываем маршрут, по которому идёт трафик от прослушиваемого ip адреса.

Добавление профиля трафика

В нем мы выстраиваем «соединение» от прослушиваемого интерфейса до защищаемого сервера.
И указываем тип балансировки трафика между серверами.
В качестве примера мы возьмем шаблонную политику безопасности.

Финальное «соединение»

И последний штрих — запускаем безопасность веб приложения. Указываем созданный профиль трафика, а также политику безопасности, согласно которой будет осуществляться проверка поступающего трафика:
Теперь мы сможем увидеть связность всех элементов, чем подтвердим корректную настройку защиты веб-приложения.

Тестирование решения GTWом

Переходим в Kali linux и запускаем докер с GoTestWafом следующей командой: sudo docker run --rm -it -v ${PWD}/reports:/app/reports \ wallarm/gotestwaf --url=http://10.10.30.29:80/ --workers 20
В конце теста получаем среднее значение между True-positive blocked и true-negative passed в районе 61%.

Напоминаем, что это с учетом установки (по-сути «из коробки»). Не задавая особых условий или дополнительных правил.
На этом закончим данную статью. В следующей статье курса мы рассмотрим события безопасности и информацию, которая сгенерировалась PT AFом.

До встречи на TS University!