← Back to blog

L7 Security: Anti-DDoS

⚙️ Теория

🌊 Типы атак

Обычно выделяют три крупных класса:

  • Volumetric (сaturation канала, вплоть до Tbps масштаба);
  • Protocol attacks (эксплуатация state/protocol behavior);
  • Application attacks (L7, HTTP/S API pressure).

🛡️ Архитектурные принципы защиты

  • Anycast: распределить входящий поток по edge.
  • Traffic scrubbing: очистка и фильтрация на внешнем защитном слое.
  • Rate limiting: ограничить стоимость запроса на ключ.
  • Challenge-response: отделить человека от автоматизированного потока.
  • Connection limiting: не дать исчерпать таблицы соединений и worker limits.

Надёжная защита это комбинация этих механизмов, а не один «серебряный» инструмент.


🐢 Slow HTTP mitigation

Для slowloris/slow POST критично ограничить время и состояние на клиент:

  • client_header_timeout;
  • client_body_timeout;
  • лимиты соединений на IP/account;
  • контролируемая буферизация и лимиты тела запроса.

Цель: не позволить дешёвыми медленными соединениями удерживать дорогие ресурсы edge/origin.


Что нужно уметь объяснить

Почему anycast помогает против DDoS?

Атака распределяется на множество PoP, что снижает локальную концентрацию перегрузки и повышает шанс удержать сервис.

Почему challenge-response полезен именно на L7?

Потому что отделяет браузер/человека от ботов там, где трафик формально выглядит валидным HTTP.

Почему slow HTTP требует таймаутов, а не только bandwidth-защиты?

Slow-атака может почти не потреблять канал, но «занимать» connection/request state. Поэтому важны именно таймауты и лимиты состояния.


🧪 Практика

1. Установите таймауты и лимиты в NGINX

http {
    client_header_timeout 10s;
    client_body_timeout 10s;
    send_timeout 15s;

    limit_conn_zone $binary_remote_addr zone=conn_per_ip:20m;

    server {
        location / {
            limit_conn conn_per_ip 20;
            proxy_pass http://backend;
        }
    }
}

2. Проверьте поведение на медленных клиентах

  • сгенерируйте slow headers/body трафик;
  • проверьте, что соединения закрываются по таймаутам;
  • проверьте, что origin не уходит в saturation.

3. Включите challenge/rate policies на edge

Сравните до/после:

  • входящий трафик на origin;
  • p95/p99;
  • ошибочные блокировки (FP).

4. Мониторьте ключевые индикаторы

  • active connections;
  • handshake/connection rate;
  • доля challenge/block;
  • origin CPU и upstream timeouts.

🧾 Вывод

Anti-DDoS это архитектура эшелонированной защиты: распределение нагрузки, ранняя фильтрация и строгий контроль state/timeouts.
Особенно для L7/slow-атак важно помнить: угроза не в bandwidth, а в удержании ограниченных ресурсов обработки.


📚 Ссылки


Проверка источников

L7 Security: Anti-DDoS | Aleksandr Suprun