
YAML-управляемый фреймворк для тестирования правил Web Application Firewall (WAF) с использованием базовых наборов правил OWASP Core Rule Set. Автоматизирует обнаружение регрессий и проверяет пользовательские правила WAF с помощью повторяемых симуляций HTTP-атак.
Этот проект был создан исследователями из ModSecurity и Fastly для обеспечения строгих тестов правил WAF. Он использует OWASP Core Ruleset V3 в качестве базового набора для проверки правил на WAF. Каждое правило из набора загружается в YAML-файл, который отправляет HTTP-запросы, вызывающие срабатывание этих правил. Пользователи могут проверить выполнение правила после запуска тестов, чтобы убедиться, что ожидаемый ответ получен от атаки.
Цели / Варианты использования включают:
Объявление о выпуске версии 1.0 см. в блоге OWASP CRS
git clone https://github.com/coreruleset/ftw.gitcd ftwvirtualenv env && source ./env/bin/activatepip install -r requirements.txtpy.test -s -v test/test_default.py --ruledir=test/yamlОснова FTW — это его расширяемые тесты на основе yaml. В этом разделе перечислены несколько ресурсов о том, как они форматируются, как их писать и как вы можете их использовать.
OWASP CRS написал отличный пост в блоге, описывающий, как пишутся и выполняются тесты FTW.
YAMLFormat.md — это истина в последней инстанции по всем полям yaml, которые в настоящее время понимает FTW.
Прочитав эти два ресурса, вы сможете приступить к написанию тестов. Скорее всего, вы будете проверять ответы по коду состояния или ответы веб-запросов с помощью директивы log_contains. Для интеграции FTW для тестирования регулярных выражений в журналах WAF обратитесь к ExtendingFTW.md
Если вам нужна среда для тестирования правил WAF, существует созданная среда с Apache, Modsecurity и версией 3.0.0 основного набора правил OWASP. Развертывание можно выполнить следующим образом:
git clone https://github.com/fastly/waf_testbed.gitvagrant up