23.06.2025

ARP-протокол: алгоритм работы и атаки

Неотъемлемой частью любой организации стали компьютерные сети, которые позволили перенести бизнес-процессы с бумаги на различные устройства. Для их коммуникации с 90-х годов активно разрабатывали открытую систему взаимодействия, благодаря, которой стало возможно обмениваться информацией, почти где угодно. Компании стали активно использовать сетевые технологии и нанимать специалистов по работе с ними.

Одним из важных протоколов в сетевом соединении меж канальным и сетевым уровнем является ARP или Address Resolution Protocol (arp протокол). Который позволил перейти от стадии архитектуры, где устройства общались в общей канальной среде, к сетевой сегментации. Именно она разделяет LAN и WAN, в данном материале рассмотрим алгоритм работы протокола, уязвимости, а так же меры его защиты.

Алгоритм работы ARP

ARP или же Address Resolution Protocol, протокол, который позволяет соотнести IP-адрес и MAC-адрес запрашиваемого устройства. ARP таблицы, в которых прописывается это соответствие, ведутся только у устройств третьего уровня, по-отдельности у каждого.

Напомним, что все устройства в рамках одной подсети общаются только через коммутаторы, повторители и прочие пассивные и активные сетевые устройства. Маршрутизаторы необходимы, когда мы обращаемся к подсети, которой нет в таблице маршрутизации нашего устройства. А значит, что общение в рамках нашей подсети можем назвать канальной средой. Рассмотрим пример работы ARP-протокола и поймем какую функцию он выполняет:

Скриншот №1 — Схема работы

При первом подключении и пустых таблицах на устройствах происходит коммуникация по четырем основным пунктам. Представим, что мы захотели подключиться к локальному серверу с hostname Debian.local по SSH.

Предварительно, наше устройство сверит адреса сети, если они одинаковые, значит мы в одной подсети и устройство напрямую обратится с arp запросом через интерфейс gi 1/0/4. Но если мы в рамках канальной среды не обращаемся к маршрутизатору, то как нам по IP найти нужное устройство? Как раз для этого и есть ARP-протокол, наше устройство в первой стадии отправило широковещательный пакет, где спрашивает: “Какой MAC-адрес у такого устройства с IP-адресом <любой адрес>”. Пакет с запросом доходит до коммутатора и он стандартно пересылает пакеты всем. Пакет со второй стадии уйдет на все доступные порты канальной среды коммутатора.

Скриншот №2 — ARP-пакет

Debian.local получит этот пакет и видит, что он состоит из IP.src, MAC.src и IP.dst и MAC.dst. Значит ему необходимо заполнить поле с его MAC адресом, многие его ошибочно называют ARP адрес, и отправить обратно автору данного пакет по source адресам. После чего Debian.local запишет в свою ARP таблицу, из пакета ARP данные об отправителе и будет знать, что 192.168.58.134 соотносится с MAC-адресом 00:0c:29:bc:8b:d2. В это время пакет дошел обратно до клиента и он записал ответ в свою таблицу. После чего пакет канальной среды Ethernet необходимо заполнить, чтобы коммутатор смог отправить его в нужную точку назначения, адрес теперь клиент берет из своей ARP-таблицы.

А что если на такой пакет ответит не легитимное устройство, а хакерское? Это называется ARP Spoofing или подмена ARP-пакета, которая является частью уже MitM атаки или же человека по середине.

ARP Spoofing

Скриншот №3 — ARP-Spoofing

К сожалению, в ARP протокол не встроены функции аутентификации, поэтому проверить легитимность ответа не возможно без дополнительных технологий, на подобие DHCP-Snooping или Port Security. Обычно атака выглядит следующим образом:

  1. Рано или поздно устройство хочет обновить свои данные ARP-таблицы, из-за некоторых факторов, могут использовать команду arp -d <hostname>;
  2. Нарушитель в заранее отправляет в сеть “зараженные APR-ответы”, пока жертва не поймает его;
  3. Теперь зараженная запись вносится в таблицу, где IP-адрес, к примеру, маршрутизатора соотносится с MAC-адресом устройства нарушителя.
  4. Весь трафик направляется в интерфейс нарушителя и он производит его сниффинг или считывание;
  5. После чего перенаправляется в конечную точку, в данном случае подменный “маршрутизатор”.

Для защиты от такого рода атаки, с учетом особенностей работы важного протокола используют разграничение канальных сред с помощью VLAN, назначают адреса доступные для работы по Port Security, конфигурируют статические IP для важных узлов, настраивают технологию DHCP Snooping. Суть последней заключается в том, что назначаются доверенные порты, на которых стоит DHCP и записывает соответствие MAC-адресов, тем IP, которые выдает в лизинг машинам.

При нехватке собственных мощностей можно воспользоваться облачными серверами от Serverspace, для этого перейдем к созданию сервера, на любой из двух платформ vStack cloud или же VMware cloud. Нажмем на кнопку Создать сервер и выберем конфигурацию, подходящую под наши задачи, затем нажмем кнопку Создать:

Скриншот №4 — Создание сервера