Атака MITM обычно выполняется во внутренней корпоративной сети. Злоумышленник использует этот тип атаки с целью перехвата конфиденциальной информации, которая передается между устройствами. Как вы понимаете, «человек посередине» (Man-in-the-middle) — это просто указание на то, где находится злоумышленник. Он располагается между устройством (устройствами) жертвы и получателем. Машина злоумышленника используется для перехвата всех сообщений между жертвой получателем.
Большинство пользователей не знают о незащищенных сетевых протоколах, которые используются для передачи их сообщений от источника к получателю. Эти незащищенные протоколы передают сообщения в виде обычного текста, позволяя злоумышленнику перехватить и просмотреть фактические данные.
Чтобы лучше понять, как работает MITM-атака, давайте посмотрим на следующий рисунок:
Как показано на предыдущем рисунке, если PC1 захочет отправить какие-либо данные через Интернет, они отправляются на шлюз по умолчанию, которым является R1. Кроме того, для всех коммуникаций, которые происходят в локальной сети, устройства пересылают сообщения, используя MAC-адрес назначения, найденный в кадре, а не IP-адрес назначения. IP-адрес назначения важен только тогда, когда сообщение должно быть переадресовано за пределы локальной сети, например, в другую подсеть или удаленную сеть. Следовательно, когда PC1 захочет отправить сообщение через Интернет, он пересылает сообщение на MAC-адрес назначения, известный как BBBB.BBBB.BBBB, который принадлежит R1. Когда R1 должен пересылать какие-либо сообщения (пакеты) на PC1, он будет использовать MAC-адрес назначения AAAA.AAAA.AAAA. Таким образом, изначально сообщения на машину злоумышленника не отправляются.
Злоумышленник может использовать уязвимость в протоколе разрешения адресов (Address Resolution Protocol - ARP), чтобы гарантировать, что все сообщения, которыми обмениваются между PC1 и R1, отправляются через его машину, как показано на следующем рисунке:
Протокол ARP работает между уровнем 2 (канальный уровень) и уровнем 3 (уровень Интернета) стека протоколов TCP/IP. Он предназначен для преобразования IP-адреса в MAC-адрес потому, что коммутаторы не могут считывать адресацию уровня 3, например IP-адресацию внутри пакета. Коммутаторы могут только читать MAC-адреса и пересылать кадры на основе MAC-адреса назначения, найденного в заголовке кадра уровня 2. По этой причине ARP необходим в любой сети.
Когда устройство, такое как PC1, не знает MAC-адрес целевого хоста, такого как R1, оно будет отправлять ARP-запрос в сеть, спрашивая, у кого есть MAC-адрес для конкретного пункта назначения, как показано на следующем рисунке:
Запрос ARP отправляется на все устройства. Только устройство, имеющее IP-адрес назначения, ответит ARP-ответом, содержащим его MAC-адрес, как показано на следующем рисунке:
Затем MAC-адрес временно сохраняется в кэше ARP исходного устройства, PC1. Исходное устройство затем вставляет MAC-адрес назначения в заголовок кадра уровня 2 перед размещением сообщения в сети. Коммутатор, который получает сообщение от PC1, проверяет MAC-адрес назначения, найденный в заголовке уровня 2, и пересылает сообщение на хост назначения.
Злоумышленник может обманом заставить PC1 поверить в то, что он — это R1, а также заставить R1 думать, что он — это PC1. Злоумышленник может притвориться PC1 для R1 и наоборот. С технической точки зрения злоумышленник выдает себя за другую машину в сети — это называется подменой MAC-адресов. Кроме того, злоумышленник отправит безвозмездное сообщение ARP, содержащее ложное сопоставление IP-адресов и MAC-адресов. Каждое сообщение создается специально для PC1 и R1. Безвозмездное сообщение ARP — это ответ, который не был инициирован запросом ARP.
Другими словами, это когда одно устройство отправляет обновление ARP без запроса. Это позволяет злоумышленнику выполнять атаку с подменой ARP и отправлять ложные сообщения ARP устройствам, заставляя их вставлять неверные сопоставления IP-адресов в MAC-адреса в их кэш ARP. Это известная уязвимость, обнаруженная в ARP и TCP/IP.
На следующем рисунке показано, как злоумышленник отправляет безвозмездное сообщения ARP на PC1 и R1:
Это приведет к тому, что весь трафик между PC1 и R1 будет отправлен на атакующую машину, что приведет к атаке MITM.
На следующем скриншоте показан пример инструмента тестирования на проникновение, известного как arpspoof, который используется для отправки бесплатных сообщений ARP на хост-устройства в сети для создания атак MITM:
Как показано на предыдущем скриншоте, инструмент постоянно заполняет компьютер жертвы (10.10.10.11) и шлюз по умолчанию (10.10.10.1) ложными сведениями о сопоставлении IP-адресов с MAC-адресами. На следующем рисунке показан захват Wireshark, отображающий ложные сообщения ARP, отправляемые по сети:
Обратите внимание, как Wireshark выделил сообщения желтым цветом как подозрительные для изучения. Существует множество функций безопасности уровня 2, которые уже предварительно загружены в коммутаторы Cisco IOS, и все они могут быть реализованы специалистом по безопасности. Вот некоторые из этих функций безопасности:
- Port security: Port security используется для фильтрации неавторизованных MAC-адресов от входа в интерфейс коммутатора.
- Dynamic ARP Inspection (DAI): DAI проверяет информацию об адресе IP-to-MAC, найденную в пакете, поступающем в коммутатор. Если будет найдено поддельное сообщение, коммутатор отклонит его, чтобы защитить сеть уровня 2.
- IP Source Guard: это еще одна функция безопасности, которая позволяет устройствам Cisco разрешать в сети только IP-адреса доверенных источников, предотвращая атаки с подменой IP-адресов.