DDoS: типы и митигация

Урок про атаки на доступность и про то, какими слоями защиты их смягчают.

DDoS (distributed denial of service) — распределённая атака, цель которой исчерпать ресурс и лишить сервис доступности; защита называется митигацией.

Почему DDoS труден

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

Типы атак

ТипСутьПример
Объёмныезабить канал трафикомUDP-флуд, усиление
Протокольныеисчерпать ресурсы стекаSYN-флуд
Прикладныедорогие запросы к приложениюлавина тяжёлых HTTP-запросов

Как работает под капотом (на примере SYN-флуда)

При установке TCP-соединения сервер, получив SYN, резервирует ресурсы и ждёт завершения рукопожатия. SYN-флуд шлёт множество SYN и не завершает их — таблица полуоткрытых соединений переполняется. Защита — SYN cookies: сервер не резервирует состояние, пока рукопожатие не подтверждено корректно.

Атакующий -- много SYN --> [ Сервер ]
   рукопожатие не завершается
   -> очередь полуоткрытых переполнена
Защита: SYN cookies = не держать состояние до подтверждения

Слои митигации

  • На сервисе: rate-limit, лимиты соединений, кэширование, отбрасывание INVALID.
  • На периметре: фильтрация аномального трафика, anti-DDoS-устройства.
  • У провайдера/облака: поглощение объёмных атак на широких каналах, scrubbing-центры, CDN.

Объёмные атаки в одиночку не отбить — нужен апстрим с большой полосой. Поэтому крупную защиту берут как сервис у провайдера или облака.

Частые ошибки

  • Надеяться отбить объёмный DDoS на своём узком канале.
  • Отсутствие rate-limit на дорогих эндпоинтах.
  • Нет плана реагирования: куда звонить, как включить фильтрацию.
  • Раскрытие реального IP за CDN — обход защиты.

Итоги

  • DDoS бьёт по доступности объёмом, а не уязвимостью.
  • Митигация многослойна: сервис, периметр, провайдер/облако.
  • Объёмные атаки требуют апстрим-фильтрации; в одиночку их не отбить.
Проверьте себя
1. Почему DDoS трудно отбить в одиночку на своём канале?
AАтака использует сложные уязвимости
BОбъём трафика может превышать пропускную способность канала
CDDoS невозможно обнаружить
DЭто всегда внутренняя атака
2. Как SYN cookies защищают от SYN-флуда?
AШифруют SYN-пакеты
BНе резервируют состояние соединения, пока рукопожатие не подтверждено
CБлокируют весь TCP-трафик
DУвеличивают размер очереди бесконечно
3. Где смягчают объёмные DDoS-атаки эффективнее всего?
AНа самом сервере приложения
BУ провайдера/в облаке с широкими каналами и scrubbing
CВ браузере пользователя
DВ DNS-записях