SOT

Security Orchestration Tools

Напишите нам на sales@securityvision.ru или закажите демонстрацию

ARP-спуфинг (ARP spoofing, ARP poisoning): что это такое

ARP-спуфинг (ARP spoofing, ARP poisoning): что это такое

Руслан Рахметов, Security Vision


Для реализации успешных кибератак злоумышленники непрерывно совершенствуют свои тактики, техники и процедуры, разрабатывают вредоносное ПО и ищут новые уязвимости. Однако некоторые типы современных атак осуществляются за счет небезопасных сетевых протоколов, которые были разработаны еще несколько десятков лет назад, когда о сетевой безопасности не задумывались. Одним из характерных примеров является сетевой протокол ARP, чьи особенности позволяют злоумышленникам выполнить атаку вида «ARP-спуфинг», которая является первым этапом реализации более серьезных MiTM-атак для перехвата учетных данных и подмены трафика даже в самых крупных корпоративных сетях. Атаке ARP spoofing и посвящена данная статья.

 

Для того, чтобы понимать, что такое атака ARP spoofing, для начала нужно объяснить, как работает протокол ARP. Протокол ARP (Address Resolution Protocol, протокол определения (разрешения) адресов) - это протокол канального уровня, который был описан в RFC 826 в 1982 году Дэвидом Пламмером (David C. Plummer), исследователем из Массачусетского технологического института. Протокол ARP позволяет определить MAC-адрес устройства по известному IP-адресу в рамках одного широковещательного домена (broadcast domain), т.е. одной подсети. В современных реалиях такой подсетью может являться группа устройств, подключенная к одному сетевому коммутатору (свитчу, switch) или роутеру (маршрутизатору), который обеспечивает выход подключенных устройств в интернет через шлюз (gateway). Для передачи данных в пределах одной подсети устройству-отправителю недостаточно знать только IP-адрес устройства-получателя - нужно знать его MAC-адрес, и именно для получения MAC-адреса хоста по его IP-адресу и используется протокол ARP. Данный протокол был разработан более 40 лет назад, когда наличие вредоносных устройств в компьютерных сетях казалось фантастикой и не учитывалось при моделировании угроз, поэтому в нём присутствуют определенные архитектурные особенности и уязвимости:


1. ARP - это протокол без контроля состояния (stateless), что позволяет атакующему осуществлять одностороннюю отправку ARP-сообщений жертве.


2. В протоколе ARP передающиеся данные не шифруются и не подписываются, что позволяет атакующему просматривать перехваченные ARP-сообщения и подделывать их.


3. В протоколе ARP не предусмотрена проверка подлинности сообщений и нет возможности достоверно установить устройство-отправитель ARP-сообщения.


4. На основе получаемых ARP-сообщений, которые могут быть подделаны атакующим, на устройстве формируется и кэшируется (временно сохраняется) APR-таблица, в которой сопоставлены IP-адреса и MAC-адреса других хостов, и на основании данных из этой таблицы сетевой трафик пересылается в пределах одной подсети.


5. Протокол ARP в соответствии со спецификацией допускает отправку и получение незапрошенных ARP-сообщений - так называемых Gratuitous ARP-оповещений (добровольных (самопроизвольных) оповещений ARP).

 

Все описанные особенности, а в особенности последний пункт, позволяют злоумышленнику реализовать атаку подмены ARP-сообщений (ARP-спуфинг, от англ. ARP spoofing), которая также называется "отравлением кэша ARP" (англ. ARP poisoning или ARP cache poisoning). Рассмотрим теперь, как реализуется подобная атака.

 

ARP-spoofing.png 

 

Для начала следует понять, как работает протокол ARP в нормальных условиях, без вредоносного воздействия атакующего:


1. Предположим, что пользователь A хочет отправить сообщение по сети пользователю B, при этом пользователь A знает только свой IP-адрес и IP-адрес хоста B (10.10.10.20). Хосту-отправителю A нужно получить MAC-адрес хоста-получателя B для того, чтобы сообщение было отправлено по сети. Для этого хост A отправляет широковещательный ARP-запрос, который содержит запрос MAC-адреса от хоста B с IP 10.10.10.20, а также IP-адрес запрашивающего информацию хоста A (10.10.10.10) и MAC-адрес хоста A (AA:AA:AA:AA:AA:AA). Запрос называется широковещательным, поскольку отправляется всем устройствам в пределах одной подсети, объединенной коммутатором. Такой запрос в качестве MAC-адреса назначения использует специальный широковещательный MAC-адрес FF:FF:FF:FF:FF:FF. Хост A вынужден делать такую "массовую рассылку" по всем устройствам в сети, поскольку пока не знает, куда именно отправлять запрос, и даже не знает, есть ли сейчас в сети хост B.


2. Все устройства в пределах одной подсети получают широковещательный ARP-запрос от хоста A, но отвечать будет только хост B, поскольку он видит, что в запросе содержится его IP-адрес 10.10.10.20 - значит, запрос предназначен ему.


3. Хост B отправляет ARP-ответ хосту A, в котором содержится запрошенный MAC-адрес хоста B (BB:BB:BB:BB:BB:BB), а также IP-адрес хоста B (10.10.10.20). При этом хост B отправляет ARP-ответ хосту A, используя в качестве MAC-адреса назначения переданный в исходном запросе MAC-адрес хоста A (AA:AA:AA:AA:AA:AA).


4. В результате, хост A получает информацию, что хост B с IP 10.10.10.20 имеет MAC-адрес BB:BB:BB:BB:BB:BB. Соответственно, у хоста B остаётся информация, что хост A с IP 10.10.10.10 имеет MAC-адрес AA:AA:AA:AA:AA:AA. Эти данные (сопоставление IP-адреса и MAC-адреса) записываются в APR-таблицы на каждом из хостов. Эти таблицы кэшируются на устройствах для того, чтобы в следующий раз не запрашивать ту же информацию повторно - формируется так называемый кэш ARP (англ. ARP cache). При этом срок хранения записей в ARP-таблицах для различных типов ОС составляет по умолчанию от 15 до 45 секунд (может быть изменено вручную), а для сетевых устройств срок хранения ARP-кэша может составлять несколько часов (например, 4 часа для устройств Cisco).


5. Пользователь A теперь может по сети отправлять сообщения пользователю B, а он - отвечать.

 

Механизм отправки самопроизвольных оповещений ARP (Gratuitous ARP), заложенный создателями протокола ARP, изначально предполагал решение следующих задач:


1. Обновление ARP-таблиц: в случае изменения своего IP-адреса устройство должно оповестить соседей по подсети о том, что теперь его MAC-адрес соответствует новому IP-адресу. Аналогичное оповещение отправляется и при смене MAC-адреса устройства.


2. Разрешение конфликта IP-адресов в одной подсети: если у нескольких устройств в сети появляется один и тот же IP-адрес, то отправленные ими ARP-оповещения, содержащие одинаковые IP-адреса, помогут выявить данный конфликт и принять меры. Такое может произойти, например, когда два пользователя вручную назначили себе одинаковые IP-адреса в настройках ОС - в зависимости от типа ОС алгоритм решения конфликта будет разный.


3. После перезагрузки устройства, после подключения хоста к локальной сети, при смене или включении сетевого адаптера в ОС также автоматически отправляются Gratuitous ARP-оповещения, которые позволяют устройствам в подсети заранее обновить свои ARP-таблицы.


4. Отправленное хостом Gratuitous ARP-оповещение позволит коммутатору перестроить свою таблицу сопоставлений сетевых портов и MAC-адресов в подсети.

 

Однако именно подобная механика позволяет атакующим реализовать атаки ARP spoofing, поскольку:


1. Любое устройство в сети может отправить Gratuitous ARP-оповещение.


2. В Gratuitous ARP-оповещении могут быть подделаны любые поля - в частности, вредоносный хост может проанонсировать новое сопоставление IP-адреса и MAC-адреса для любого устройства в сети.


3. Данные ARP-таблиц на всех устройствах в подсети изменятся сразу после получения подобного оповещения, даже если срок хранения закэшированных записей в ARP-таблицах еще не прошёл.

Рассмотрим приведенную выше иллюстрацию в случае, если началось вредоносное воздействие атакующего:


1. Атакующий на хосте C (IP 10.10.10.30, MAC: CC:CC:CC:CC:CC:CC) начинает рассылать поддельное Gratuitous ARP-оповещение о том, что IP-адресу 10.10.10.20 соответствует MAC-адрес CC:CC:CC:CC:CC:CC. При этом IP-адрес 10.10.10.20 по-прежнему присвоен хосту B, а MAC-адрес, указанный в оповещении, принадлежит сетевой карте вредоносного хоста C.


2. Адресатом подобного поддельного Gratuitous ARP-оповещения может быть любой хост в сети, но мы предположим, что цель атаки - это пользователь A на хосте A и пользователь B на хосте B.


3. Хост A, получив поддельное Gratuitous ARP-оповещение от вредоносного хоста C, перезапишет свою ARP-таблицу новыми данными, в соответствии с которыми IP-адресу настоящего хоста B (10.10.10.20) соответствует MAC-адрес вредоносного хоста C (CC:CC:CC:CC:CC:CC).


4. Когда пользователь A начнет по сети отправлять сообщения пользователю B, они будут перенаправлены на хост C, где атакующий сможет их прочитать или изменить, а затем отправить пользователю B так, как будто они были отправлены пользователем A.


5. Аналогично, хост B, получив поддельное Gratuitous ARP-оповещение от вредоносного хоста C, перезапишет свою ARP-таблицу новыми данными, а пользователь B начнет отправлять ответы пользователю A через «подслушивающий» хост C атакующего.


6. В наиболее распространенных вариантах этой атаки, встречающихся в реальных киберинцидентах даже в достаточно серьезных инфраструктурах, злоумышленники подменяют собой сетевой шлюз для того, чтобы перехватить весь трафик, идущий в соседние корпоративные подсети или в интернет. Например, если на иллюстрации хост B - это шлюз по умолчанию (default gateway) для хоста A, то атакующий сможет проксировать через себя весь интернет-трафик от пользователя A, при этом хост C будет выполнять роль шлюза (например, за счет второй сетевой карты, подключенной в интернет), а хост B при этом не будет получать от хоста A никакой информации.

 

Атака ARP-спуфинга (встречаются также названия ARP Spoofing, ARP Cache Poisoning) хорошо известна и описана в том числе в матрице MITRE ATT&CK. Метод ARP Spoofing можно применить и для организации DoS (атака отказа в обслуживании) в пределах подсети, но главная цель атакующих - перехват и подмена интернет-трафика корпоративных пользователей. ARP-спуфинг - это первый шаг для более серьёзной атаки Man-In-The-Middle, в рамках которой можно, например, реализовать атаки SMB Relay / NTLM Relay или постараться получить доступ к HTTPS-трафику (например, применяя технику SSL Stripping или отображая пользователю поддельный Captive-портал с инструкциями по установке сертификата, выпущенного атакующим для перехвата зашифрованного веб-трафика).

 

Отметим, что у протокола ARP есть следующие особенности:


1. Протокол ARP применяется только в сетях на базе IPv4, а в IPv6 используется протокол NDP (Neighbor Discovery Protocol).


2. Описанные особенности протокола ARP в полной мере характерны и для проводных, и для беспроводных Wi-Fi сетей. Единственное отличие в том, что для реализации ARP-спуфинга в беспроводной сети атакующий должен сначала к ней подключиться, т.е. узнать или подобрать пароль (доступ к проводным сетям, как правило, более тривиален). При этом если в беспроводной сети настроен механизм изоляции точки доступа (Access Point Isolation, AP Isolation), то все коммуникации между подключенными к одной сети устройствами будут запрещены, соответственно, атака методом ARP-спуфинга не будет возможна.


3. Для работы с протоколом ARP в большинстве современных ОС есть встроенная утилита "arp".

 

Для реализации атак методом ARP-спуфинга существует целый ряд инструментов, включая такие, как Cain and Abel, Ettercap, Intercepter-NG, arpspoof (из состава Kali Linux) и ряд других. Для защиты можно использовать следующие методы:


1. Простейшей защитой от данного типа атак может стать создание статических записей в ARP-таблицах на хостах (например, жестко прописать сопоставление IP-адреса шлюза его MAC-адресу).


2. На сетевых устройствах следует использовать механизм Port Security и/или применять аутентификацию устройств на канальном уровне с помощью технологии Dot1x (IEEE 802.1x) - это поможет ограничить доступ посторонних устройств в сеть.


3. Для защиты беспроводных Wi-Fi сетей следует использовать оборудование с поддержкой современного стандарта безопасности WPA3, применять технологию EAP для аутентификации устройств по сертификатам при подключении к беспроводной сети, использовать механизм изоляции точки доступа (AP Isolation) и фильтрацию MAC-адресов подключающихся к беспроводной сети устройств.


4. На различных типах сетевого оборудования могут присутствовать встроенные способы выявления и защиты от ARP-спуфинга, например, за счет создания правил ARP-based ACL или включения технологии Dynamic ARP Inspection.

ИБ для начинающих Нарушители ИБ Практика ИБ

Похожие статьи

Security Vision NG SGRC, или Новые горизонты автоматизации процессов
Security Vision NG SGRC, или Новые горизонты автоматизации процессов
Масштабное обновление Security Vision SIEM
Масштабное обновление Security Vision SIEM
Технологии сетевого сканирования и поиска уязвимостей
Технологии сетевого сканирования и поиска уязвимостей
Что такое Trusted Platform Module (TPM-модуль) и как он используется для обеспечения кибербезопасности конечных точек
Что такое Trusted Platform Module (TPM-модуль) и как он используется для обеспечения кибербезопасности конечных точек
Когда база данных становится открытой книгой
Когда база данных становится открытой книгой
Управление инцидентами и оркестрацией различных СЗИ. Обзор NG SOAR
Управление инцидентами и оркестрацией различных СЗИ. Обзор NG SOAR
Что такое XSS-уязвимости и как защититься от них с помощью Content Security Policy
Что такое XSS-уязвимости и как защититься от них с помощью Content Security Policy
Антифрод системы - что это и как работает
Антифрод системы - что это и как работает
Сравнительный обзор: Shodan, ZoomEye, Netlas, Censys, FOFA и Criminal IP. Часть 3
Сравнительный обзор: Shodan, ZoomEye, Netlas, Censys, FOFA и Criminal IP. Часть 3
Фишинг – что это такое, как защититься от фишинговых атак и писем. Часть 1
Фишинг – что это такое, как защититься от фишинговых атак и писем. Часть 1
Технология дипфейк и вопросы безопасности
Технология дипфейк и вопросы безопасности

Похожие статьи

Security Vision NG SGRC, или Новые горизонты автоматизации процессов
Security Vision NG SGRC, или Новые горизонты автоматизации процессов
Масштабное обновление Security Vision SIEM
Масштабное обновление Security Vision SIEM
Технологии сетевого сканирования и поиска уязвимостей
Технологии сетевого сканирования и поиска уязвимостей
Что такое Trusted Platform Module (TPM-модуль) и как он используется для обеспечения кибербезопасности конечных точек
Что такое Trusted Platform Module (TPM-модуль) и как он используется для обеспечения кибербезопасности конечных точек
Когда база данных становится открытой книгой
Когда база данных становится открытой книгой
Управление инцидентами и оркестрацией различных СЗИ. Обзор NG SOAR
Управление инцидентами и оркестрацией различных СЗИ. Обзор NG SOAR
Что такое XSS-уязвимости и как защититься от них с помощью Content Security Policy
Что такое XSS-уязвимости и как защититься от них с помощью Content Security Policy
Антифрод системы - что это и как работает
Антифрод системы - что это и как работает
Сравнительный обзор: Shodan, ZoomEye, Netlas, Censys, FOFA и Criminal IP. Часть 3
Сравнительный обзор: Shodan, ZoomEye, Netlas, Censys, FOFA и Criminal IP. Часть 3
Фишинг – что это такое, как защититься от фишинговых атак и писем. Часть 1
Фишинг – что это такое, как защититься от фишинговых атак и писем. Часть 1
Технология дипфейк и вопросы безопасности
Технология дипфейк и вопросы безопасности