
waf-checker v1.1.0
Автоматизированный инструмент оценки WAF, который определяет производителей брандмауэров, тестирует 19 категорий атак с использованием продвинутых обходных полезных нагрузок и предоставляет цветовой анализ обхода через CLI, Cloudflare Worker или Docker.
WAF Checker
Этот проект помогает проверить, насколько хорошо ваш Web Application Firewall (WAF) защищает ваш продукт от распространённых веб-атак. Его можно запускать как Cloudflare Worker (со встроенным интерактивным веб-интерфейсом) или как автономный CLI-инструмент Node.js.
🧪 Покрытие тестами и статус
Все пакеты тщательно протестированы с помощью автоматизированных наборов модульных, интеграционных тестов, тестов на основе свойств (фаззинг fast-check), тестов на устойчивость к сетевым сбоям и тестов на обратную разработку (100% соответствие требованиям безопасности SSRF, методы обхода протоколов и средства форматирования отчётов):
| Пакет | Покрытие строк | Операторы | Функции | Набор тестов |
|---|---|---|---|---|
@waf-checker/core | 93.0% 🟢 | 92.6% | 96.4% | 🟢 282 проходят |
@waf-checker/cli | 93.5% 🟢 | 92.8% | 96.7% | 🟢 54 проходят |
@waf-checker/worker | Проходят 🟢 | — | — | 🟢 30 проходят |
| Всего по монорепозиторию | 93.2% | 92.7% | 96.6% | 🟢 366 тестов проходят |
Возможности
Основное тестирование
- Введите целевой URL, выберите HTTP-методы (GET, POST и т. д.) и категории атак.
- Отправляет запросы с полезными нагрузками атак (в параметрах, заголовках или в виде путей к файлам).
- Цветовая маркировка результатов в терминале и веб-интерфейсе: 🟢 403/BLOCKED = заблокировано, 🔴 2xx/5xx = возможный обход, 🟠 3xx = перенаправление.
- Результаты отображаются в фильтруемой таблице с подробностями для каждой полезной нагрузки.
🕵️ Обратная разработка WAF и матрица CRS (--reverse)
- Сопоставление с OWASP Core Rule Set (CRS v3/v4): Аудит активных и отключённых идентификаторов правил (
920xxx,921xxx,930xxx,931xxx,932xxx,933xxx,934xxx,941xxx,942xxx,943xxx,944xxx) с уровнями паранойи (PL1-PL4). - Обнаружение ограничения размера тела запроса при инспекции: Бинарный поиск (8 КБ – 128 КБ, точность ~1 КБ) для определения границ усечения буфера.
- Обнаружение режима оценки аномалий: Проверяет совместный режим оценки в сравнении со строгим режимом блокировки по регулярным выражениям и определяет пороговые значения оценки.
- Безопасное зондирование ограничения частоты запросов: Безопасное постепенное увеличение до 30 запросов/с с немедленным досрочным прекращением при получении HTTP 429 и извлечением
Retry-After.
🛡️ Виртуальное патчинг WAF и автоматическое устранение (--patch / команда patch)
- Мгновенное устранение: автоматически преобразует обнаруженные обходы WAF (HTTP 200) в готовые к развёртыванию правила межсетевого экрана, конфигурации обратного прокси и Infrastructure-as-Code (Terraform HCL / Cloud CLI).
- Поддерживаемые платформы (11 диалектов):
- Cloudflare WAF: выражения Wirefilter (
http.request.uri.query contains .../matches ...) и Terraform HCLcloudflare_ruleset. - AWS WAF v2: нативные JSON Rule Statements (
ByteMatchStatement,RegexPatternSet,OrStatement) и Terraform HCLaws_wafv2_rule_group. - Google Cloud Armor: выражения CEL (
request.path.matches(...),request.headers[...]), CLI-командыgcloud compute security-policiesи Terraformgoogle_compute_security_policy. - Azure WAF (Front Door и App Gateway): JSON-определения Custom Rule, CLI-команды
az network front-door waf-policyи Terraformazurerm_cdn_frontdoor_firewall_policy. - ModSecurity и OWASP Coraza: директивы
SecRule(SecLang), совместимые с OWASP CRS, со свёртыванием токенов@pm. Поддерживается через--patch modsecurityили--patch coraza. - NGINX: нативные блоки конфигурации
location ~* \.(ext)$ { return 403; },location ~ /\.(git|svn)иmap. - HAProxy: высокопроизводительные нативные ACL (
path_end -i,path_beg -i,query -m sub -i,req.hdr()) сhttp-request deny deny_status 403. - Caddy Server: идиоматичные именованные матчеры Caddyfile (
@waf_patch_*) с выражениями CEL (expression {http.request.uri.query}.matches(...)) иrespond 403. - Apache HTTP Server: правила
mod_rewrite(RewriteCond %{QUERY_STRING}/%{REQUEST_URI}/%{HTTP_USER_AGENT}+RewriteRule ^ - [F,L]) дляhttpd.conf,<VirtualHost>или.htaccess. Поддерживается через--patch apache. - Envoy Proxy: записи маршрутов, сопоставляющие
:path/заголовки через RE2safe_regexсdirect_response: 403(или forward-and-tag в режиме симуляции) для virtual_host в route_configuration. Поддерживается через--patch envoy. - Kubernetes Ingress (K8s): готовые к эксплуатации манифесты YAML
kind: Ingressс аннотациямиnginx.ingress.kubernetes.io/server-snippet.
- Cloudflare WAF: выражения Wirefilter (
- Двухуровневая защита:
- Строгий хотфикс: точные сигнатуры токенов с 0% риска ложных срабатываний для немедленного реагирования на инциденты нулевого дня.
- Эвристический шаблон: обобщённые регулярные выражения, охватывающие всю структуру класса уязвимости.
- Web UI Remediation Studio: интерактивное модальное окно панели управления с живым предпросмотром для всех вендоров, копированием в буфер обмена в один клик, переключением форматов и экспортом файлов.
Категории атак (всего 28)
SQL-инъекции, XSS, инъекции команд, обход путей, SSRF, локальное включение файлов, конфиденциальные файлы, открытый редирект, SSTI, XXE, NoSQL-инъекции, GraphQL-инъекции, атака на JWT (заголовок), атака на JWT (параметр), загрязнение прототипа (JSON-тело), загрязнение прототипа (URL/параметр), LDAP-инъекции, XPath-инъекции, инъекции формул в электронные таблицы, Log4Shell (JNDI), CRLF-инъекции, загрязнение HTTP-параметров, User-Agent, обход IP, контрабанда HTTP-запросов, отравление веб-кэша, обход UTF8/Unicode, обход ограничения инспекции WAF (паддинг).
Обнаружение WAF
- Автоматическое определение типа WAF перед тестированием (Cloudflare, AWS WAF, OWASP Coraza, BunkerWeb, ModSecurity, Akamai, Imperva, F5 BIG-IP и др.).
- Предлагает конкретные методы обхода на основе обнаруженного WAF.
- Может автоматически переключаться на расширенные полезные нагрузки, специфичные для WAF.
Расширенные полезные нагрузки и кодирование
- Полезные нагрузки для обхода WAF — двойное кодирование, unicode, смешанный регистр, инъекция комментариев, полиглотные полезные нагрузки.
- Улучшенные полезные нагрузки — современные методы уклонения.
- Вариации кодирования — URL, Unicode, HTML Entity, Hex, Octal, Base64 с автоматическими комбинациями.
- Обходы, специфичные для Cloudflare, AWS WAF, ModSecurity.
Манипуляции с HTTP-протоколом
- Подмена HTTP-метода (HTTP Verb Tampering) — проверка необычных HTTP-методов.
- Загрязнение параметров (Parameter Pollution) — дублирование и разделение параметров между query и body.
- Путаница Content-Type — альтернативные типы содержимого для обхода правил.
- Заголовки Request Smuggling.
- Вариации инъекции Host-заголовка.
- Переопределение HTTP-метода через заголовки (
X-HTTP-Method-Overrideи т. п.).
Пакетное тестирование
- Тестирование нескольких URL одновременно.
- Настраиваемая конкурентность и задержка между запросами.
- Отслеживание прогресса в реальном времени.