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 бьёт по доступности объёмом, а не уязвимостью.
- Митигация многослойна: сервис, периметр, провайдер/облако.
- Объёмные атаки требуют апстрим-фильтрации; в одиночку их не отбить.