DDoS-атака

Оригинальное название: Distributed Denial-of-Service (DDoS)

Коротко

Атака на доступность, при которой запросы идут одновременно с тысяч устройств или сетей, поэтому её нельзя остановить блокировкой одного адреса.

Что такое «DDoS-атака»

Буква D в начале — distributed, распределённая. В отличие от простой DoS-атаки, источником служит ботнет: заражённые компьютеры, роутеры, камеры и другие устройства, которыми управляет один оператор. Каждый узел шлёт немного, но вместе они создают поток, с которым не справляется ни сервер, ни канал хостинга. Адреса участников постоянно меняются, а среди них легко затеряться настоящим посетителям.

Какими бывают атаки

  • Объёмные — забивают канал мусорным трафиком. Часто используют усиление: маленький запрос с поддельным адресом жертвы отправляется на открытый DNS- или NTP-сервер, и тот отвечает жертве в десятки раз большим пакетом.
  • На уровне протоколов — например, SYN-флуд, который исчерпывает таблицу соединений сервера или сетевого оборудования.
  • На уровне приложения — внешне обычные HTTP-запросы к тяжёлым страницам: поиску, фильтру каталога, корзине. Их меньше всего, но каждый заставляет PHP и базу работать.

Что происходит с сайтом на хостинге

При сильной объёмной атаке хостинг нередко сам отключает атакуемый IP, отправляя весь трафик к нему в «чёрную дыру». Это спасает соседей по сети, но сайт всё равно недоступен. Поэтому против крупных атак помогают не настройки сервера, а внешняя фильтрация: сервисы защиты от DDoS и CDN, которые принимают трафик на свою распределённую сеть, отсеивают ботов и пропускают к сайту только чистые запросы. По той же причине устойчивы anycast-сети.

Пример: ограничение частоты в nginx

От слабой атаки уровня приложения с небольшого числа адресов может защитить ограничение частоты запросов. Первую строку размещают в блоке http:

limit_req_zone $binary_remote_addr zone=perip:10m rate=10r/s;

server {
    location / {
        limit_req zone=perip burst=20 nodelay;
    }
}

Это не замена внешней защите, но заметно снижает нагрузку от одиночных агрессивных клиентов и парсеров. Ограничение стоит проверить на реальном трафике, чтобы не отрезать поисковых роботов и посетителей за общим NAT.

Обновлено:

Все термины раздела «Доменные имена и DNS»

Что будем искать? Например,Продвижение