Skip to content
← Все статьи

WAF (Web Application Firewall): базовый гайд

WAF (Web Application Firewall): базовый гайд

WAF (Web Application Firewall) — это прокси, который фильтрует HTTP-трафик на прикладном уровне и блокирует атаки по сигнатурам и правилам: SQL injection, XSS, path traversal, RCE-паттерны, credential stuffing, DDoS. В отличие от классического network firewall (L3/L4), WAF работает на L7 — видит полный URL, заголовки, тело запроса. Разбираем варианты (self-hosted mod_security, Cloudflare, AWS WAF), OWASP Core Rule Set и когда WAF реально нужен.

Что делает WAF

Типы WAF

Self-hosted (mod_security, Coraza)

ModSecurity — opensource WAF для Apache, nginx, IIS. Coraza — Go-реализация для Envoy/Caddy/hyper. Плюсы: бесплатно, полный контроль. Минусы: нужно админить, свои правила, обновления.

Cloud WAF

OWASP Core Rule Set (CRS)

OWASP CRS — открытый набор правил для ModSecurity/Coraza, покрывающий OWASP Top 10: SQLi, XSS, LFI/RFI, RCE, session-hijack. Включается одной командой:

# На Debian/Ubuntu с nginx
apt install libmodsecurity3 modsecurity-crs
# Подключить в nginx.conf
modsecurity on;
modsecurity_rules_file /etc/modsecurity/crs-setup.conf;
modsecurity_rules_file /etc/modsecurity/rules/*.conf;

Paranoia Level: от 1 (мало false positives) до 4 (параноидальный). В production начинайте с PL1, постепенно поднимайте.

Пример правила mod_security

SecRule ARGS "@rx (?i)(union|select|insert|drop|update|delete)\s" \
    "id:1001,phase:2,deny,status:403,msg:'SQL injection attempt',tag:'attack-sqli'"

SecRule REQUEST_URI "@rx (\.\./|%2e%2e%2f)" \
    "id:1002,phase:1,deny,status:403,msg:'Path traversal attempt'"

Cloudflare WAF (пример)

В dashboard: Security → WAF → Managed Rules → включить OWASP Core Ruleset, Cloudflare Managed Ruleset. Custom Rules для geo-block:

(ip.geoip.country eq "CN" or ip.geoip.country eq "RU") and http.request.uri.path contains "/admin"
=> Block

Когда WAF реально нужен

Для маленького бизнес-сайта на WordPress CloudFlare Free + Fail2ban закроет 80% угроз.

False positives и тюнинг

Главный риск WAF — заблокировать легитимный трафик. Типичные ложняки:

Стратегия: 1) включить WAF в DetectionOnly режиме, 2) 2–4 недели собирать логи, 3) добавить exception на ваши endpoint'ы, 4) переключить в Blocking.

WAF vs другие защиты

WAF — это слой, не замена. Он не заменяет:

WAF — компенсационный контроль. Если приложение фундаментально дырявое, WAF просто делает атаку более шумной.

Мониторинг

Следите за: rate блокированных запросов, топ-10 правил по срабатываниям, false-positive rate, latency overhead (WAF добавляет 5–50 мс). Рекомендую enterno monitors на 403/503 rate.

FAQ

Замедляет ли WAF сайт? Cloud WAF — 5–30 мс, self-hosted ModSecurity — 10–50 мс на сложных правилах. На UX обычно неощутимо.

Защищает ли WAF от zero-day? Managed rules обновляются быстрее вашего кода — да, частично.

Нужен ли WAF с SSL/TLS проверку? Да. HTTPS защищает от MITM, WAF — от атак внутри валидного HTTPS-запроса.

WAF или IDS/IPS? IDS смотрит трафик на L3/L4, WAF — на L7. Для web-приложений нужен WAF.

Вывод

WAF — обязателен для e-commerce, финтеха, public API. Минимум — Cloudflare Free (базовые managed rules) + OWASP CRS. Мониторьте ложняки, отслеживайте латенси. Связанное: rate limiting, XSS, Security Scanner.

Проверьте ваш сайт прямо сейчас

Проверить →
Другие статьи: SEC
SEC
CSP (Content Security Policy): настройка с нуля
15.04.2026 · 4 просм.
SEC
Миграция с HTTP на HTTPS: редиректы, mixed content, HSTS
15.04.2026 · 7 просм.
SEC
API Rate Limiting: token bucket, 429, Retry-After
15.04.2026 · 4 просм.
SEC
Защита от Clickjacking: X-Frame-Options vs frame-ancestors
15.04.2026 · 6 просм.