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

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

Сетевая безопасность: пережить эшелонированный DDoS

Суть Практический проект — постройте небольшой сервис, загоните его в L7-перегрузку с обходом кэша, затем наслоите rate limiting, тюнинг WAF и adaptive concurrency, пока он не выживет, доказывая каждый шаг числами до/после.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на senior-высоте — в орбите
◷ 240 min

Читать про defense in depth — не то же самое, что держать сервис на ногах, пока его атакуют. Постройте небольшую мишень, загоните её в перегрузку реалистичной L7-атакой и добавляйте слои юнита по одному — измеряя, что реально даёт каждый слой, прежде чем добавить следующий.

Цель

Превратите эшелонированную модель юнита в воспроизводимый цикл: инструментируйте сервис, воспроизведите атаку, обходящую наивные per-IP лимиты, затем добавляйте rate limiting, тюнинг WAF и adaptive concurrency в порядке приоритета — проверяя каждый слой числами до/после при идентичной нагрузке.

Проект
0 из 7
Цель

Возьмите небольшой HTTP-сервис с одним дорогим кэшируемым эндпоинтом и удержите p99-латентность под целью, а origin живым под распределённым L7-flood с обходом кэша — не просто докупив 10x ёмкости — доказывая каждый слой защиты измерениями.

Требования
Критерии приёмки
  • Таблица до/после: cache-hit rate, пик in-flight origin, rate 503, p99 легитимных запросов, измеренные при одной нагрузке — не на глаз.
  • Доказательство, что per-IP rate limiting в одиночку проваливается против распределённой атаки (зазор показан, а не предположен), и что adaptive concurrency его закрывает.
  • Измеренный rate ложных срабатываний WAF/эвристики на легитимном трафике, с заявленным решением, работает ли он в режиме блокировки или детектирования и почему.
  • Абзац-разбор: какой слой остановил какой вариант атаки, в каком порядке вы их добавляли и почему adaptive concurrency оказался слоем, реально спасшим origin.
Senior-стретч
  • Добавьте измерение SYN-flood: включите tcp_syncookies и покажите, что хост выживает под спуфнутым SYN-flood, который роняет легитимные соединения с выключенными cookies.
  • Добавьте on-call runbook: пять сигналов, пороги эскалации (rate запросов 10x базовой линии, cache-hit ниже 80% при всплеске, падение энтропии source-IP) и порядок дёргания каждого рычага.
  • Добавьте mTLS между edge и origin, чтобы origin принимал соединения только от идентичности edge, и покажите, что атака напрямую на origin отвергается на handshake.
  • Смоделируйте экономику атаки: оцените стоимость атакующего (аренда ботнета) против стоимости вашей защиты с общим edge и без него и напишите абзац-аргумент, почему защита в одиночку проигрывает.
Итог

Это цикл, который вы проходите в каждом реальном DDoS-инциденте: сначала инструментируйте, воспроизведите атаку, обходящую наивную защиту, затем добавляйте слои по приоритету — поглощение на edge, rate limiting, WAF, adaptive concurrency — измеряя, что даёт каждый, прежде чем добавить следующий. Закрепляющийся урок: per-IP rate limiting проваливается против распределённого flood с обходом кэша, а слой, реально спасающий origin, — это adaptive concurrency, реагирующий на реальную перегрузку. Сделав это однажды на игрушечном сервисе, вы превращаете продакшн-версию в мышечную память.

Продолжить восхождение ↑Двенадцать слоёв: один URL, семь действующих лиц
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.