awesome-everything EN
↑ Обратно к восхождению

Сети и протоколы

Атаки усиления и истощение состояния

Суть Атаки усиления используют открытые сторонние серверы для умножения полосы атакующего в 50–1280 раз; атаки истощения состояния заполняют таблицы backlog TCP, отбрасывая легитимные соединения.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на middle-высоте — в небе
◷ 12 min

Ваш CDN поглощает атаку, но DDoS-трафик идёт от легитимных DNS-резолверов — не от IP атакующего. Блокировка резолверов блокирует весь DNS. Атакующий отправил один маленький запрос на каждый резолвер; каждый резолвер ответил жертве данными в 50 раз больше. Добро пожаловать в атаку усиления.

Усиление и отражение: механизм. Атака усиления эксплуатирует протокол без состояния на основе UDP на стороннем сервере. Атакующий отправляет маленький запрос с поддельным исходным IP (IP жертвы). Сторонний сервер отвечает на исходный IP — которым является жертва — намного большим ответом. Атакующему не нужно ничего получать; всю работу делает третья сторона. «Коэффициент усиления» — это соотношение размера ответа к размеру запроса.

ПротоколРазмер запросаРазмер ответаУсиление
DNS (ANY-запись)40 байт~1 700 байт42x
NTP (monlist)40 байт468 байт12x (до 556x)
Memcached (UDP)50 байт51 200 байт1 024x

Поток DNS-атаки усиления

  1. Атакующий отправляет DNS-запрос, исходный IP = IP жертвы, цель = открытый резолвер
  2. Открытый резолвер получает его и отвечает на исходный IP (жертве) большим ответом
  3. Жертва получает незапрошенные большие ответы от тысяч резолверов
  4. Каждый запрос атакующего стоит 40 байт; каждое попадание по жертве — ~1 700 байт
  5. Результат: 1 Гбит/с полосы атакующего → 42 Гбит/с атаки на жертву

HTTP/2 Rapid Reset (CVE-2023-44487). HTTP/2 позволяет несколько параллельных потоков. Атака Rapid Reset отправляет поток и немедленно его отменяет — до того, как сервер отправил ответ. Сервер всё равно выделяет память и CPU для запроса. Отправка и отмена тысяч потоков в секунду исчерпывает сервер на уровне CPU, не полосы. Маленький ботнет (20 000 машин) генерировал 398 миллионов запросов в секунду против Google с помощью этой техники в 2023 году. Исправление: HTTP/2-серверы должны ограничивать скорость создания потоков и считать клиентов с высоким темпом сброса атакующими.

Статистика атак из поля
Запросов/сек (HTTP/2 Rapid Reset)
398M
Крупнейший DDoS (дек 2025)
31,4 Тбит/с
Коэффициент усиления Memcached
1 024x
Машины ботнета (атака Rapid Reset)
~20K
Проследи
1/4

Проследите DNS-атаку усиления от атакующего к жертве.

1
Step 1 of 4
Шаг 1: что отправляет атакующий?
2
Locked
Шаг 2: что делает резолвер?
3
Locked
Шаг 3: какова роль атакующего после отправки запроса?
4
Locked
Шаг 4: почему это сложно защищать?

Истощение состояния: SYN-наводнения. TCP-рукопожатие требует, чтобы сервер хранил состояние для каждого соединения в процессе. SYN-наводнение отправляет миллионы SYN-пакетов с поддельными исходными IP. Для каждого SYN сервер выделяет слот в SYN backlog и ждёт ACK, который никогда не придёт (потому что исходный IP поддельный). Когда backlog заполняется, сервер отбрасывает новые SYN-пакеты — включая те, что от легитимных клиентов. Linux SYN backlog по умолчанию: 128–512 слотов; под атакой заполняется за миллисекунды.

SYN cookies: обмен памяти на CPU. SYN cookies Linux (включены по умолчанию с ядра 2.6) позволяют избежать хранения состояния backlog. Когда backlog переполнился бы, сервер кодирует параметры соединения (ISN) как cookie, выведенный из исходного IP, порта и timestamp. Слот не выделяется. Если клиент отвечает правильным ACK, сервер восстанавливает состояние из cookie и завершает рукопожатие. Стоимость: немного выше CPU на новое соединение; выгода: нет исчерпания памяти в условиях наводнения.

Викторина

В DNS-атаке усиления, почему атакующий использует поддельный исходный IP?

Викторина

Почему SYN cookie защита обменивает память на CPU?

Граничные случаи

ACK-наводнения — менее известный аналог SYN-наводнений. Атакующий отправляет миллионы ACK-пакетов на порт без активного соединения. Ядро должно ответить RST-пакетами (нет соединения для подтверждения). При сильном ACK-наводнении темп RST может потреблять значительный CPU. Защита: ограничение TCP RST (лимит RST в секунду по исходному IP) и подавление на уровне брандмауэра — отбрасывать ACK, не совпадающие ни с каким существующим соединением в таблице conntrack.

Вспомните перед уходом
  1. 01
    Почему усиление намного экономичнее прямого ботнет-наводнения?
  2. 02
    Что такое уязвимость HTTP/2 Rapid Reset и почему она обходит обычное ограничение скорости?
  3. 03
    Как SYN cookie защита устраняет исчерпание SYN backlog?
Итог

Атаки усиления эксплуатируют открытые UDP-сервисы (DNS, NTP, Memcached), которые отвечают на поддельные запросы — атакующий отправляет 40 байт, жертва получает 1 700+ байт на запрос, умноженные на тысячи резолверов. HTTP/2 Rapid Reset — эквивалент прикладного уровня: 20 000 машин ботнета генерировали 398M запросов/сек, используя отмену потоков. SYN-наводнения исчерпывают таблицы соединений сервера с помощью миллионов полуоткрытых соединений через поддельные IP; SYN cookies защищают, кодируя состояние в TCP sequence number вместо хранения в памяти. Все три атаки разделяют одно свойство: атакующий тратит мало, защитник платит много.

Связанные уроки
встречается в258
Продолжить восхождение ↑Ограничение скорости: алгоритмы и архитектура
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.