Когда говорят «DDoS», имеют в виду разные вещи. Атака на канал — это одно, атака на приложение — совсем другое. И защита нужна разная.
flowchart TB
subgraph L3["L3 - Сетевой уровень"]
A1[IP Flood] --> A2[ICMP Flood]
A2 --> A3[IP Fragmentation]
end
subgraph L4["L4 - Транспортный уровень"]
B1[SYN Flood] --> B2[UDP Flood]
B2 --> B3[ACK Flood]
end
subgraph L7["L7 - Прикладной уровень"]
C1[HTTP Flood] --> C2[Slowloris]
C2 --> C3[API Abuse]
end
L3 --> |"Большой объём"| Target[Цель]
L4 --> |"Исчерпание ресурсов"| Target
L7 --> |"Имитация пользователей"| Target
Сетевой уровень
ICMP flood, IP fragmentation. Забивают канал «мусором». Защита: фильтрация у провайдера/дата-центра.
Транспортный уровень
SYN flood, UDP flood. Забивают таблицу соединений. Защита: SYN cookies, rate-limit на firewall.
Прикладной уровень
HTTP flood, Slowloris, атаки на формы. Самые хитрые — выглядят как пользователи. Защита: WAF, капча, rate-limit по URL.
L3/L4: Сетевые атаки
Цель — исчерпать полосу пропускания или ресурсы сетевого оборудования. Ваш сервер даже не видит эти пакеты как HTTP-запросы.
Типичные атаки:
- SYN Flood — миллионы «полуоткрытых» соединений
- UDP Flood — мусорные UDP-пакеты
- Amplification — усиление через DNS/NTP
L7: Прикладные атаки
Это сложнее. Атакующий отправляет валидные HTTP-запросы, которые выглядят как обычные пользователи. Но их много, и они бьют по тяжёлым местам.
Популярные цели:
- Страница логина (брутфорс)
- Поиск (тяжёлые запросы к базе)
- Каталог с фильтрами
- API без rate-limit