Сетевые угрозы: MITM и спуфинг
Знакомимся с базовыми сетевыми угрозами — не чтобы атаковать, а чтобы понимать, от чего защищают HTTPS и другие меры.
Понимание атак — обязательная часть защиты. Нельзя грамотно защищаться от того, чего не понимаешь. Этот урок — обзор для разработчика.
Сниффинг: пассивное прослушивание
Сниффинг (sniffing) — перехват и чтение трафика, проходящего через сеть. В открытой Wi-Fi-сети или на скомпрометированном узле злоумышленник может видеть всё, что передаётся незашифрованным. Если вы заходите на сайт по HTTP (без S), пароль уходит открытым текстом.
Защита: HTTPS. Зашифрованный трафик для сниффера выглядит как случайный шум.
MITM: человек посередине
MITM (Man-in-the-Middle) — злоумышленник встаёт между вами и сервером, перехватывая и при желании подменяя данные. Для вас он притворяется сервером, для сервера — вами.
Вы <--> [ Злоумышленник ] <--> Сервер
притворяется сервером притворяется вами
видит и может менять весь трафик
Защита: TLS-сертификаты. Чтобы выдать себя за bank.com, атакующему нужен валидный сертификат на это имя, подписанный доверенным CA, — а его он получить не может. Поэтому при MITM браузер покажет ошибку сертификата. Вот почему нельзя «прокликивать» предупреждения о сертификатах.
Спуфинг: подделка адресов
Спуфинг (spoofing) — подделка адреса отправителя, чтобы выдать себя за другого. Бывает разных видов:
| Вид | Что подделывают | Цель |
| IP-спуфинг | IP-адрес источника в пакете | скрыть себя, обойти фильтры |
| ARP-спуфинг | соответствие IP↔MAC в локальной сети | перенаправить трафик на себя (MITM) |
| DNS-спуфинг | ответ DNS (подсунуть чужой IP) | увести жертву на фейковый сайт |
DNS-спуфинг особенно коварен: вы вводите верный адрес bank.com, но получаете IP сайта-двойника. Защита — DNSSEC (подпись DNS-ответов) и, опять же, HTTPS: даже попав на двойник, вы не увидите валидного сертификата на bank.com.
Сводка: что от чего защищает
| Угроза | Главная защита |
| Сниффинг | HTTPS (шифрование) |
| MITM | TLS-сертификаты и проверка CA |
| DNS-спуфинг | DNSSEC, HTTPS |
| ARP-спуфинг | статические ARP, сегментация сети |
Зачем это веб-разработчику
Большинство этих угроз закрывает один шаг — повсеместный HTTPS. Понимание почему он обязателен (а не «потому что Google так сказал») помогает принимать правильные решения: не отключать проверку сертификатов «чтобы заработало», ставить флаг Secure на cookies, не доверять открытым Wi-Fi.
Итог
- Сниффинг — пассивное чтение трафика; защита — HTTPS.
- MITM — посредник перехватывает и подменяет; защита — TLS-сертификаты.
- Спуфинг — подделка адресов (IP/ARP/DNS); DNS-спуфинг уводит на двойник.
- Повсеместный HTTPS закрывает большинство этих угроз сразу.