Сетевые угрозы: 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 (шифрование)
MITMTLS-сертификаты и проверка CA
DNS-спуфингDNSSEC, HTTPS
ARP-спуфингстатические ARP, сегментация сети

Зачем это веб-разработчику

Большинство этих угроз закрывает один шаг — повсеместный HTTPS. Понимание почему он обязателен (а не «потому что Google так сказал») помогает принимать правильные решения: не отключать проверку сертификатов «чтобы заработало», ставить флаг Secure на cookies, не доверять открытым Wi-Fi.

Итог

  • Сниффинг — пассивное чтение трафика; защита — HTTPS.
  • MITM — посредник перехватывает и подменяет; защита — TLS-сертификаты.
  • Спуфинг — подделка адресов (IP/ARP/DNS); DNS-спуфинг уводит на двойник.
  • Повсеместный HTTPS закрывает большинство этих угроз сразу.
Проверьте себя
1. Что такое атака «человек посередине» (MITM)?
AПерегрузка сервера запросами
BЗлоумышленник встаёт между клиентом и сервером, перехватывая и подменяя трафик
CПодбор пароля перебором
DУдаление данных с диска
2. Почему TLS-сертификат защищает от MITM?
AОн ускоряет соединение
BЧтобы выдать себя за домен, нужен валидный сертификат от доверенного CA, который атакующий получить не может
CОн скрывает IP-адрес
DОн блокирует все входящие соединения
3. Что делает DNS-спуфинг?
AШифрует DNS-запросы
BПодсовывает поддельный ответ DNS, уводя жертву на сайт-двойник
CУскоряет резолвинг
DУдаляет DNS-записи
Поддержать проект