Какие сетевые атаки нужно знать разработчику: MITM, DDoS, DNS-спуфинг?
Производительность и безопасность сети
Разработчику нужно знать три класса атак (перехват трафика MITM, подмену ответов DNS и отказ в обслуживании DDoS) и механизм защиты от каждой.
MITM
- Злоумышленник встаёт между клиентом и сервером: поддельная Wi-Fi-точка, ARP-спуфинг в локальной сети.
- Защита — TLS с проверкой сертификата и HSTS. Частая ошибка в коде —
verify=FalseилиrejectUnauthorized: false, оставленные «на время отладки». - SSL stripping понижает соединение до HTTP при первом заходе — закрывается HSTS preload.
- Мобильные приложения дополнительно используют certificate pinning.
DNS-спуфинг
- Резолверу подсовывают поддельный ответ (cache poisoning, атака Каминского), и пользователь уходит на чужой IP.
- Защита: рандомизация порта и ID запроса, DNSSEC подписывает записи, DoH и DoT шифруют канал до резолвера.
- На HTTPS-сайте поддельный сервер не предъявит валидный сертификат.
DDoS
- Объёмные — UDP-флуд, усиление через DNS, NTP, memcached — забивают канал; спасают провайдер и CDN со scrubbing-центрами.
- Протокольные — SYN flood исчерпывает очередь полуоткрытых соединений; помогают SYN cookies.
- Прикладные — тяжёлые запросы, Slowloris; похожи на обычный трафик, нужны rate limiting, таймауты на чтение заголовков, кеш, капча.
Коротко для собеседования
От MITM защищают TLS с проверкой сертификата и HSTS, от DNS-спуфинга — DNSSEC и тот же TLS, от DDoS — CDN, SYN cookies и rate limiting. Главная ошибка разработчика — отключённая проверка сертификата; рядом стоит SSRF, когда сервер ходит по чужому URL во внутреннюю сеть.