DoS
Denial of Service · одиночная атака отказа в обслуживании
Что это
DoS (Denial of Service) — атака, направленная на то, чтобы сервис перестал отвечать легитимным пользователям. Классический DoS — один атакующий против одной цели.
Как работает
Идея — исчерпать какой-то ограниченный ресурс:
- Пропускная способность канала — забить входящий канал мусорным трафиком
- CPU — заставить сервер жечь процессор на тяжёлых запросах
- Оперативную память — держать миллион полу-открытых соединений
- Дисковый I/O, количество открытых сокетов, лимиты API
Классические примеры
- SYN flood — шлём тонну SYN-пакетов, не отвечаем на SYN-ACK. У сервера кончается очередь half-open соединений. Уровень L4
- Slowloris — открываем много HTTP-соединений и очень медленно шлём заголовки, никогда не завершая запрос. Сервер держит все открытыми. Уровень L7
- Ping of Death — исторический баг: слишком большой ICMP-пакет ронял TCP/IP-стек
- Fork bomb — локальный DoS:
:(){ :|:& };:— процесс, бесконечно клонирующий себя
DoS vs DDoS
- DoS — один источник. Легко заблокировать по IP
- DDoS — много источников (ботнет), заблокировать сложнее. См. DDoS
Защита
- Файрвол, rate limiting
- fail2ban — банит IP после N плохих запросов
- SYN cookies — обход SYN flood без хранения очереди
- Обратный прокси (Cloudflare, nginx) — фильтрация до backend
Юридически
В РФ и почти во всех странах — уголовно наказуемо. В РФ — статья 274 УК РФ («нарушение правил эксплуатации средств хранения»), а также 273 УК РФ. Штраф + лишение свободы.