В компьютерных сетях ARP -спуфинг (также отравление кэша ARP или отравленная маршрутизация ARP ) — это метод, с помощью которого злоумышленник отправляет ( поддельные ) сообщения протокола разрешения адресов (ARP) в локальную сеть . Как правило, цель состоит в том, чтобы связать MAC-адрес злоумышленника с IP-адресом другого хоста , например шлюза по умолчанию , в результате чего любой трафик, предназначенный для этого IP-адреса, отправляется злоумышленнику.
ARP-спуфинг может позволить злоумышленнику перехватывать кадры данных в сети, изменять трафик или останавливать весь трафик. Часто атака используется как открытие для других атак, таких как отказ в обслуживании , man in the middle или атаки перехвата сеанса . [1]
Атака может быть использована только в сетях, использующих ARP, и требует, чтобы злоумышленник имел прямой доступ к локальному сегменту сети , который будет атакован. [2]
Протокол разрешения адресов (ARP) — широко используемый протокол связи для преобразования адресов интернет-уровня в адреса канального уровня .
Когда датаграмма Интернет-протокола (IP) отправляется с одного хоста на другой в локальной сети , IP-адрес назначения должен быть преобразован в MAC-адрес для передачи через канальный уровень . Когда IP-адрес другого хоста известен и требуется его MAC-адрес, в локальную сеть отправляется широковещательный пакет . Этот пакет называется запросом ARP . Затем машина назначения с IP-адресом в запросе ARP отвечает ответом ARP , который содержит MAC-адрес для этого IP-адреса. [2]
ARP — это протокол без сохранения состояния . Сетевые хосты автоматически кэшируют любые полученные ими ответы ARP, независимо от того, запрашивали ли их сетевые хосты. Даже записи ARP, срок действия которых еще не истек, будут перезаписаны при получении нового пакета ответа ARP. В протоколе ARP нет метода, с помощью которого хост может аутентифицировать однорангового узла, от которого был получен пакет. Такое поведение является уязвимостью, которая позволяет осуществлять подмену ARP. [1] [2] [3]
Основной принцип ARP-спуфинга заключается в использовании отсутствия аутентификации в протоколе ARP путем отправки поддельных сообщений ARP в локальную сеть. Атаки ARP-спуфинга могут быть запущены с скомпрометированного хоста в локальной сети или с машины злоумышленника, которая напрямую подключена к целевой локальной сети.
Злоумышленник, использующий ARP-спуфинг, будет маскироваться под хост для передачи данных по сети между пользователями. [4] Тогда пользователи не будут знать, что злоумышленник не является настоящим хостом в сети. [4]
Как правило, цель атаки — связать MAC-адрес хоста атакующего с IP-адресом целевого хоста , так что любой трафик, предназначенный для целевого хоста, будет отправлен на хост атакующего. Атакующий может выбрать проверку пакетов (шпионаж), пересылая трафик в фактическое место назначения по умолчанию, чтобы избежать обнаружения, изменять данные перед их пересылкой ( атака «человек посередине» ) или запустить атаку типа «отказ в обслуживании» , заставив некоторые или все пакеты в сети быть отброшенными.
Самая простая форма сертификации — использование статических записей, доступных только для чтения, для критических служб в кэше ARP хоста. Сопоставления IP-адресов с MAC-адресами в локальном кэше ARP могут быть введены статически. Хостам не нужно передавать запросы ARP, если такие записи существуют. [5] Хотя статические записи обеспечивают некоторую защиту от подмены, они приводят к усилиям по обслуживанию, поскольку сопоставления адресов для всех систем в сети должны быть сгенерированы и распространены. Это не масштабируется в большой сети, поскольку сопоставление должно быть установлено для каждой пары машин, что приводит к n 2 - n записям ARP, которые должны быть настроены, когда присутствуют n машин; На каждой машине должна быть запись ARP для каждой другой машины в сети; n-1 записей ARP на каждой из n машин.
Программное обеспечение, которое обнаруживает подмену ARP, обычно полагается на некоторую форму сертификации или перекрестной проверки ответов ARP. Несертифицированные ответы ARP затем блокируются. Эти методы могут быть интегрированы с сервером DHCP , так что как динамические , так и статические IP- адреса сертифицируются. Эта возможность может быть реализована на отдельных хостах или может быть интегрирована в коммутаторы Ethernet или другое сетевое оборудование. Существование нескольких IP-адресов, связанных с одним MAC-адресом, может указывать на атаку подмены ARP, хотя существуют законные применения такой конфигурации. В более пассивном подходе устройство прослушивает ответы ARP в сети и отправляет уведомление по электронной почте при изменении записи ARP. [6]
AntiARP [7] также обеспечивает предотвращение спуфинга на уровне ядра Windows. ArpStar — это модуль Linux для ядра 2.6 и маршрутизаторов Linksys, который отбрасывает недействительные пакеты, нарушающие сопоставление, и содержит опцию повторного отравления или лечения.
Некоторые виртуализированные среды, такие как KVM, также предоставляют механизмы безопасности для предотвращения подмены MAC-адресов между гостями, работающими на одном и том же хосте. [8]
Кроме того, некоторые адаптеры Ethernet предоставляют функции защиты от подмены MAC-адресов и VLAN. [9]
OpenBSD пассивно отслеживает хосты, выдающие себя за локальный хост, и уведомляет в случае любой попытки перезаписать постоянную запись. [10]
Операционные системы реагируют по-разному. Linux игнорирует незапрошенные ответы, но, с другой стороны, использует ответы на запросы от других машин для обновления своего кэша. Solaris принимает обновления записей только после тайм-аута. В Microsoft Windows поведение кэша ARP можно настроить с помощью нескольких записей реестра в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters, ArpCacheLife, ArpCacheMinReferenceLife, ArpUseEtherSNAP, ArpTRSingleRoute, ArpAlwaysSourceRoute, ArpRetryCount. [11]
Методы, которые используются в ARP-спуфинге, также могут использоваться для реализации избыточности сетевых служб. Например, некоторое программное обеспечение позволяет резервному серверу выдавать необоснованный ARP-запрос , чтобы взять на себя управление неисправным сервером и прозрачно предложить избыточность. [12] [13] Circle [14] и CUJO — две компании, которые коммерциализировали продукты, основанные на этой стратегии.
ARP-спуфинг часто используется разработчиками для отладки IP-трафика между двумя хостами при использовании коммутатора: если хост A и хост B взаимодействуют через коммутатор Ethernet, их трафик обычно невидим для третьего контролирующего хоста M. Разработчик настраивает A так, чтобы у него был MAC-адрес M для B, а у B — MAC-адрес M для A; а также настраивает M для пересылки пакетов. Теперь M может отслеживать трафик, точно так же, как при атаке «человек посередине».
Некоторые инструменты, которые можно использовать для проведения атак ARP-спуфинга:
{{cite web}}
: CS1 maint: архивная копия как заголовок ( ссылка )