arp spoofing что это

Отравление ARP: что это такое и как предотвратить ARP-спуфинг

«Отравление» ARP (ARP Poisoning) — это тип кибератаки, которая использует слабые места широко распространенного протокола разрешения адресов (Address Resolution Protocol, ARP) для нарушения или перенаправления сетевого трафика или слежения за ним. В этой статье мы вкратце рассмотрим, зачем нужен ARP, проанализируем его слабые места, которые делают возможным отравление ARP, а также меры, которые можно принять для обеспечения безопасности организации.

Что такое ARP?

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

Что такое отравление ARP?

«Отравление» (подмена) ARP заключается в использовании слабых сторон ARP для нарушения назначений MAC-IP для других устройств в сети. В 1982 году, когда был представлен протокол ARP, обеспечение безопасности не было первостепенной задачей, поэтому разработчики протокола никогда не использовали механизмы аутентификации для проверки сообщений ARP. Любое устройство в сети может ответить на запрос ARP, независимо от того, является ли оно адресатом данного запроса. Например, если компьютер A запрашивает MAC-адрес компьютера B, ответить может злоумышленник на компьютере C, и компьютер A примет этот ответ как достоверный. За счет этой уязвимости было проведено огромное количество атак. Используя легкодоступные инструменты, злоумышленник может «отравить» кэш ARP других хостов в локальной сети, заполнив его неверными данными.

Этапы отравления ARP

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

Типы атак ARP Poisoning

Имеется два основных способа отравления ARP: злоумышленник может либо дождаться запроса ARP в отношении конкретной цели и дать на него ответ, либо использовать самообращённые запросы (gratuitous ARP). Первый вариант ответа будет менее заметен в сети, но его потенциальное влияние также будет меньшим. Cамообращенные запросы ARP могут быть более эффективными и затронуть большее количество жертв, но они имеют обратную сторону — генерирование большого объема сетевого трафика. При любом подходе поврежденный кэш ARP на устройствах-жертвах может быть использован для дальнейших целей:

Атаки Man-in-the-Middle

Атаки MiTM, вероятно, являются наиболее распространенной и потенциально наиболее опасной целью отравления ARP. Злоумышленник отправляет ложные ответы ARP по заданному IP-адресу (обычно это шлюз по умолчанию для конкретной подсети). Это заставляет устройства-жертвы заполнять свой кэш ARP MAC-адресом машины злоумышленника вместо MAC-адреса локального маршрутизатора. Затем устройства-жертвы некорректно пересылают сетевой трафик злоумышленнику. Такие инструменты, как Ettercap, позволяют злоумышленнику выступать в роли прокси-сервера, просматривая или изменяя информацию перед отправкой трафика по назначению. Жертва при этом может не заметить каких-либо изменений в работе.
Одновременное отравление ARP и отравление DNSможет значительно повысить эффективность атаки MiTM. В этом сценарии пользователь-жертва может ввести адрес легитимного сайта (например, google.com) и получить IP-адрес машины злоумышленника вместо корректного адреса.

Отказ в обслуживании (Denial of Service, DoS)

DoS-атака заключается в том, что одной или нескольким жертвам отказывается в доступе к сетевым ресурсам. В случае ARP, злоумышленник может отправить ответ ARP, который ложно назначает сотни или даже тысячи IP-адресов одному MAC-адресу, что потенциально может привести к перегрузке целевого устройства. Атака этого типа, иногда называемая «лавинной рассылкой ARP» (ARP-флудингом), также может быть нацелена на коммутаторы, что потенциально может повлиять на производительность всей сети.

Перехват сеанса

Перехват сеанса по своей природе похож на MiTM за исключением того, что злоумышленник не будет напрямую перенаправлять трафик с машины жертвы на целевое устройство. Вместо этого он захватывает подлинный порядковый номер TCP или файл cookie жертвы и использует его, чтобы выдавать себя за жертву. Так он может, к примеру, получить доступ к учетной записи данного пользователя в соцсети, если тот в нее вошел.

Какова цель отравления ARP?

У хакеров всегда самые разные мотивы, в том числе при осуществлении отравления ARP, начиная от шпионажа высокого уровня и заканчивая азартом создания хаоса в сети. В одном из возможных сценариев злоумышленник может использовать ложные сообщения ARP, чтобы взять на себя роль шлюза по умолчанию для данной подсети, эффективно направляя весь трафик на свое устройство вместо локального маршрутизатора. Затем он может следить за трафиком, изменять или сбрасывать его. Такие атаки являются «громкими», поскольку оставляют за собой улики, но при этом не обязательно влияют на работу сети. Если целью атаки является шпионаж, машина злоумышленника просто перенаправляет трафик изначальному адресату, не давая ему оснований подозревать, что что-то изменилось.

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

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

ARP-спуфинг vs отравление ARP

Термины «ARP-спуфинг» и «отравление ARP» обычно используются как синонимы. Технически под спуфингом понимается выдача злоумышленником своего адреса за MAC-адрес другого компьютера, в то время как отравлением (подменой) называют повреждение ARP-таблиц на одной или нескольких машинах-жертвах. Однако на практике это элементы одной и той же атаки. Также эту атаку иногда называют «отравлением кэша ARP» или «повреждением ARP-таблицы».

Последствия атак ARP Poisoning

Основной эффект отравления ARP заключается в том, что трафик, предназначенный для одного или нескольких хостов в локальной сети, вместо этого направляется на устройство, выбранное злоумышленником. Конкретные последствия атаки зависят от ее специфики. Трафик может направляться на машину злоумышленника или в несуществующее место. В первом случае заметного эффекта может не быть, в то время как во втором может быть заблокирован доступ к сети.

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

Как обнаружить отравление кэша ARP

Существует множество платных программ и программ с открытым исходным кодом для обнаружения отравления кэша ARP, однако проверить ARP-таблицы на своем компьютере можно даже без установки специального ПО. В большинстве систем Windows, Mac и Linux ввод команды arp-a в терминале или командной строке отобразит текущие назначения IP-адресов и MAC-адресов машины.

Такие инструменты, как arpwatch и X-ARP, позволяют осуществлять непрерывный мониторинг сети и могут предупредить администратора о выявлении признаков отравления кэша ARP. Однако достаточно высока вероятность ложных срабатываний.

Как предотвратить отравление ARP

Cуществует несколько методов предотвращения отравления ARP:

Статические ARP-таблицы

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

Читайте также:  при каком пульсе человек умирает минимальное значение

Защита коммутатора

Большинство управляемых коммутаторов Ethernet оснащены функциями предотвращения атак ARP Poisoning. Эти функции, известные как динамическая проверка ARP (Dynamic ARP Inspection, DAI), оценивают достоверность каждого сообщения ARP и отбрасывают пакеты, которые выглядят подозрительными или вредоносными. С помощью DAI также можно ограничить скорость прохождения сообщений ARP через коммутатор, эффективно предотвращая DoS-атаки.

DAI и аналогичные функции когда-то были доступны исключительно для высокопроизводительного сетевого оборудования, но теперь они представлены практически на всех коммутаторах бизнес-класса, в том числе используемых в небольших компаниях. Обычно рекомендуется включать DAI на всех портах, кроме подключенных к другим коммутаторам. Эта функция не оказывает значительного влияния на производительность; при этом, вместе с ней может понадобиться включение других функций, например DHCP Snooping.

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

Физическая защита

Предотвратить атаки ARP Poisoning также поможет надлежащий контроль физического доступа к рабочему месту пользователей. Сообщения ARP не выходят за пределы локальной сети, поэтому потенциальные злоумышленники должны находиться в физической близости к сети жертвы или уже иметь контроль над машиной в сети. Обратите внимание, что в случае беспроводной сети территориальная близость не обязательно означает прямой физический доступ: может быть достаточно сигнала, который достигает двора или парковки. Независимо от типа соединения (проводное или беспроводное), использование технологии наподобие 802.1x может гарантировать подключение к сети только доверенных и/или управляемых устройств.

Сетевая изоляция

Хорошо сегментированная сеть может быть менее восприимчива к отравлению кэша ARP в целом, поскольку атака в одной подсети не влияет на устройства в другой. Концентрация важных ресурсов в выделенном сегменте сети с более строгими мерами безопасности может значительно снизить потенциальное влияние атаки ARP Poisoning.

Шифрование

Хотя шифрование не предотвращает ARP-атаку, оно может снизить потенциальный ущерб. Раньше популярной целью атак MiTM было получение учетных данных для входа в систему, которые когда-то передавались в виде обычного текста. Благодаря распространению шифрования SSL/TLS совершать такие атаки стало сложнее.

Источник

Атака канального уровня ARP-spoofing и как защитить коммутатор Cisco

Данная статья не является руководством для кулхацкеров. Все ниже написанное является частью изучения курса Cisco SECURE.
В данном материале я покажу как на практике провести атаку канального уровня на коммутатор Cisco, а также покажу как защитить свою сеть от этого. Для лабораторного стенда я использовал Cisco 881 и Catalyst 3750G.
Наверное все, кто сталкивался хоть немного с сетями знают, что такое протокол ARP.
Вкратце напомню. Протокол ARP используется для преобразования IP-адреса в MAC-адрес. Рассмотрим такую топологию:

Что произойдет, если с хоста H1 пропинговать Gateway? Первым делом будет работать ARP протокол. H1 отправит широковещательный запрос (ARP-request), в котором будут указаны MAC и IP хоста H1 и IP получателя (GATEWAY). Далее GATEWAY получит запрос и видя, что в поле IP получателя содержится его адрес, дописывает к нему свой MAC и отправляет ответ ARP-reply. Хост H1 получает ответ и заносит его в ARP-таблицу.

Как можно перехватить трафик идущий от H1 к GATEWAY? Допустим атакующий (ATTACKER) находится в одном широковещательно домене с GATEWAY и H1. Если атакующий запустит сниффер, к примеру Wireshark, то в сниффере ничего интересного он не увидит, кроме своих броадкастов и прочей служебной информации. Для перехвата трафика можно использовать слабости протокола ARP. Данный протокол не имеет никакой защиты, никакой проверки подлинности запросов. А еще возможна отправка ARP ответов без ARP запросов, это так называемый gratuitous-ARP.
Это как раз то, что нужно. Использовать для атаки будем софт Cain & Abel, но для начала посмотрим ARP-таблицы на хосте H1 и на ATTACKER:

Далее запускаем Cain&Abel, включаем сниффер и добавляем все хосты из широковещательного домена.

Далее переходим на вкладку ARP, жмем + и выбираем адрес шлюза и хост, с которого будем перехватывать трафик.

Жмем кнопку ARP-poisoning и процесс изменения таблицы ARP на хосте H1 запустился.

Теперь посмотрим, как изменилась ARP-таблица на хосте H1.

Видим подмену MAC-адреса для IP 192.168.1.1

Теперь запустим на хосте H1 putty и попробуем зайти на GATEWAY через небезопасный протокол telnet. Так как протокол telnet передает данные в plain text, то атакующий в сниффере должен будет увидеть всю нужную информацию, то есть логин и пароль. Заходим и вводим логин/пароль и пароль enable.

Теперь на ATTACKER в сниффер, вкладка Passwords. Видно что какую-то информацию отловили

Смотрим эту запись и видим текст такого содержания:

User Access Verification

Username: яы яы яы яы’яэ яы яэ яъ P яряю яъ яряю’яэ яъ XTERMяряы$яю$admin

Все. Пароль от телнета перехвачен.

А теперь самое главное. Как защитить свою сеть от таких атак. На помощь нам приходит инструмент Dynamic ARP Inspection (DAI).
DAI предназначен для регулировки ARP-запросов, то есть решает — какие пропускать, а какие отбросить. Грубо говоря, DAI полностью защищает сеть от атаки ARP-spoofing, которая происходит на канальном уровне, благодаря незащищенности протокола ARP.
Немного о том, как работает DAI. Для того, чтобы работал этот механизм, нам необходимо в сети использовать DHCP и на коммутаторе должен быть включен DHCP Snooping. Если в сети используется статическая адресация, то DAI работать не будет.
Как работает DHCP Snooping. Допустим DHCP сервер у нас настроен на GATEWAY. Злоумышленник ATTACKER решил поднять у себя dhcp сервер и раздавать какие-то свои адреса. DHCP snooping предназначен для регулировки запросов и будет отбрасывать запросы сервера злоумышленника. Все очень просто. Есть Untrusted и Trusted порты. Надежным портом мы назначаем порт, которые ведет к GATEWAY, так как он у нас будет авторизованным DHCP сервером. Все остальные порты будут ненадежными и серверные запросы от них будут отбрасываться.

При этом строится таблица соответствия адресов dchp snooping database. Включаем на коммутаторе SW функцию DHCP snooping

ip dhcp snooping vlan 1

ip dhcp snooping database flash:/dhcp-snoop.db
ip dhcp snooping

На порту, смотрящему в сторону GATEWAY

SW(config-if)# ip dhcp snooping trust

Смотрим, что получилось

SW#sh ip dhcp snooping
Switch DHCP snooping is enabled
DHCP snooping is configured on following VLANs:
1
DHCP snooping is configured on the following Interfaces:
Insertion of option 82 is enabled
circuit-id format: vlan-mod-port
remote-id format: MAC
Option 82 on untrusted port is not allowed
Verification of hwaddr field is enabled
Interface Trusted Rate limit (pps)
— — — FastEthernet1/0/47 yes unlimited

И посмотрим, что появилось в таблице соответствия

SW#sh ip dhcp snooping binding
MacAddress IpAddress Lease(sec) Type VLAN Interface

— — — — — — E8:03:9A:BE:0C:D8 192.168.1.50 26268 dhcp-snooping 1 FastEthernet1/0/13
50:B7:C3:78:B4:1A 192.168.1.10 69421 dhcp-snooping 1 FastEthernet1/0/1
Total number of bindings: 2

Теперь, если атакующий захочет стать dhcp сервером, то запросы его коммутатор будет отбрасывать.

На основании базы dhcp snooping, где содержится соответствие всех MAC и IP адресов и будет работать механизм Dynamic ARP Inspection.

Перейдем к настройке. На коммутаторе Cisco данный инструмент включается для каждого vlan отдельно. В нашем случае, достаточно на коммутаторе SW дать команду:
SW(config)#ip arp inspection vlan 1

Читайте также:  протезы синовиальной жидкости коленного сустава какие лучше

Оба хоста и шлюз находятся в vlan 1. В DAI для портов коммутатора есть две настройки: Trusted и Untrusted. По-умолчанию, все порты коммутатора
Untrusted, то есть ненадежные. Порт, который идет к шлюзу или порт, в который включен транком еще один коммутатор можно сделать Trusted, тогда ARP-запросы приходящие через него будут считаться надежными.

SW(config-if)#ip arp inspection trust

Теперь повторим атаку с самого начала. Пробуем делать ARP-poisoning через Cain&Abel. Атака не проходит и в логах коммутатора появились следующие записи:

18:11:19: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Fa1/0/1, vlan 1.([50b7.c378.b41a/192.168.1.10/0000.0000.0000/192.168.1.1/18:11:19 UTC Mon Mar 1 1993])
18:11:19: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Res) on Fa1/0/1, vlan 1.([50b7.c378.b41a/192.168.1.10/001d.4641.02b4/192.168.1.1/18:11:19 UTC Mon Mar 1 1993])
18:11:19: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Res) on Fa1/0/13, vlan 1.([e803.9abe.0cd8/192.168.1.1/50b7.c378.b41a/192.168.1.10/18:11:19 UTC Mon Mar 1 1993])
18:11:19: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Res) on Fa1/0/13, vlan 1.([e803.9abe.0cd8/192.168.1.10/001d.4641.02b4/192.168.1.1/18:11:19 UTC Mon Mar 1 1993])
18:11:21: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Res) on Fa1/0/1, vlan 1.([50b7.c378.b41a/192.168.1.10/001d.4641.02b4/192.168.1.1/18:11:21 UTC Mon Mar 1 1993])
18:11:21: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Res) on Fa1/0/13, vlan 1.([e803.9abe.0cd8/192.168.1.1/50b7.c378.b41a/192.168.1.10/18:11:21 UTC Mon Mar 1 1993])
18:11:21: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Res) on Fa1/0/13, vlan 1.([e803.9abe.0cd8/192.168.1.10/001d.4641.02b4/192.168.1.1/18:11:21 UTC Mon Mar 1 1993])
18:11:24: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Req) on Fa1/0/1, vlan 1.([50b7.c378.b41a/192.168.1.10/001d.4641.02b4/192.168.1.1/18:11:24 UTC Mon Mar 1 1993])
18:11:25: %SW_DAI-4-DHCP_SNOOPING_DENY: 1 Invalid ARPs (Res) on Fa1/0/1, vlan 1.([50b7.c378.b41a/192.168.1.10/001d.4641.02b4/192.168.1.1/18:11:25 UTC Mon Mar 1 1993])

Коммутатор отбрасывает «неправильные» arp-запросы. Теперь атакующий ничего не сможет перехватить.
Включим еще дополнительную проверку DAI

SW(config)#errdisable recovery cause arp-inspection

Данная опция позволяет восстановить порт и состояния errdisabled через 300 секунд. Если конечно несоответствие MAC-IP будет на этом порту продолжаться, то порт восстановлен не будет.

Просмотреть trusted и untrusted порты и статистику можно командой

SW#show ip arp inspection interfaces

На этом всё.
Спасибо за внимание.

Источник

ARP-spoofing

Материал из Xgu.ru

ARP-spoofing (ARP-poisoning) — техника сетевой атаки, применяемая преимущественно в Ethernet, но возможная и в других, использующих протокол ARP сетях, основанная на использовании недостатков протокола ARP и позволяющая перехватывать трафик между узлами, которые расположены в пределах одного широковещательного домена. Относится к числу spoofing-атак.

В статье детально описана техника атаки ARP-spoofing, на примере атаки, выполненной с помощью программы ettercap; рассмотрены такие методы обнаружения и предотвращения ARP-атак, как слежение за ARP-активностью с помощью arpwatch, наложение специальных патчей для придания иммунитета системам, использование VLAN и PPPoE. Показано как решать имеющие непосредственное отношение к протоколу ARP задачи: поиск компьютеров по известному MAC-адресу и обнаружение новых компьютеров в сети.

Содержание

Протокол ARP и атаки с его использованием

Что такое и для чего нужен ARP

Протокол ARP предназначен для преобразования IP-адресов в MAC-адреса. Чаще всего речь идёт преобразовании в адреса Ethernet, но ARP используется и в сетях других технологий: Token Ring, FDDI и других.

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

Протокол может использоваться в следующих случаях:

В любом из этих случае узлом A будет использоваться протокол ARP, только в первом случае для определения MAC-адреса узла B, а во втором — для определения MAC-адреса маршрутизатора R. В последнем случае пакет будет передан маршрутизатору для дальнейшей ретрансляции.

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

Проблемы ARP

Протокол ARP является абсолютно незащищённым. Он не обладает никакими способами проверки подлинности пакетов: как запросов, так и ответов. Ситуация становится ещё более сложной, когда может использоваться самопроизвольный ARP (gratuitous ARP).

Самопроизвольный ARP — такое поведение ARP, когда ARP-ответ присылается, когда в этом (с точки зрения получателя) нет особой необходимости. Самопроизвольный ARP-ответ это пакет-ответ ARP, присланный без запроса. Он применяется для определения конфликтов IP-адресов в сети: как только станция получает адрес по DHCP или адрес присваивается вручную, рассылается ARP-ответ gratuitous ARP.

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

Несмотря на эффективность самопроизвольного ARP, он является особенно небезопасным, поскольку с его помощью можно уверить удалённый узел в том, что MAC-адрес какой-либо системы, находящейся с ней в одной сети, изменился и указать, какой адрес используется теперь.

ARP-spoofing

До выполнения ARP-spoofing’а в ARP-таблице узлов A и B существуют записи с IP- и MAC-адресами друг друга. Обмен информацией производится непосредственно между узлами A и B. (зелёная стрелка)

В ходе выполнения ARP-spoofing’а компьютер C, выполняющий атаку, отправляет ARP-ответы (без получения запросов):

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

После того как атака выполнена, когда компьютер A хочет передать пакет компьютеру B, он находит в ARP-таблице запись (она соответствует компьютеру C) и определяет из неё MAC-адрес получателя. Отправленный по этому MAC-адресу пакет приходит компьютеру C вместо получателя. Компьютер C затем ретранслирует пакет тому, кому он действительно адресован — т.е. компьютеру B. (синие стрелки)

Инструменты для выполнения ARP-spoofing’а

В настоящее время существует несколько инструментов для выполнения ARP-spoofing’а, работающие как в ОС Linux, так и в ОС Windows.

Все названные программы распространяются свободно.

Выполнение ARP-spoofing’а c помощью ettercap

[Пример выполнения атаки с помощью ettercap.] Рассмотрим как выполнить вышеописанную атаку с помощью ettercap.

Детально рассмотрим как выполняется ARP-spoofing. В качестве инструмента будем использовать программу ettercap, однако другие инструменты для выполнения ARP-spoofing’а работают аналогичным образом.

Атаку выполняет hostC против узлов hostA и hostB.

Установить ettercap принятым в системе способом:

Выполнить атаку против узлов hostA и hostB:

В качестве аргументов указываются IP-адреса машин, против которых нужно выполнять атаку ARP-spoofing.

Пусть, например, в это время узел A обращается к узлу B по протоколу POP3, классическому примеру незащищённого, но очень распространённого протокола — проверяет почту.

Данные передающиеся между клиентом hostA и сервером hostB проходят через узел C. Они выводятся на экран и записываются в файлы.

После того как атака завершена для выхода из ettercap необходимо нажать q. Программа отсылает ARP-пакеты для восстановления старых записей в кэше ARP узлов, чтобы они общались друг с другом напрямую.

В текущем каталоге должны появиться два файла, начинающиеся словом, указанным после ключа -L при вызове ettercap:

Просмотреть их содержимое можно с помощью программы etterlog, входящей в пакет ettercap:

Как видно, пароль был успешно перехвачен.

Посмотрим как на узле hostA (атакуемом) меняется ARP-таблица

Если смотреть, что происходит на интерфейсе eth0 компьютера hostA (через который выполняется атака), можно увидеть, что как только начинается атака, на интерфейс поступают ARP-пакеты, которые указывают, что MAC-адрес машины 192.168.15.254 изменился. Пакеты приходят постоянно. Когда атака завершена, MAC-адрес в пакета внезапно меняется на другой. А потом они вообще перестают приходить.

Такая техника гарантирует, что таблица ARP на жертвах будет восстановлена и никто не заметит атаки.

Методы обнаружения

arpwatch

Программа arpwatch отслеживает всю ARP-активность на указанных интерфейсах. Когда она замечает аномалии, например, изменение MAC-адреса при сохранении IP-адреса, или наоборот, она сообщает об этом в syslog.

Инсталляция и конфигурирование arpwatch

Процедуру инсталляции и конфигурирования arpwatch рассмотрим на примере системы Debian GNU/Linux.

Установка arpwatch выполняется традиционным для дистрибутива способом:

После того как демон проинсталлирован, он автоматически запускается. (в других системах его, возможно, нужно будет запускать вручную.)

Демон не имеет никаких конфигурационных файлов. Конфигурация arpwatch полностью определяется набором передаваемых ему ключей. В Debian GNU/Linux ключи указываются в конфигурационном файле /etc/default/arpwatch (в FreeBSD — в файле /etc/rc.conf).

Читайте также:  какой клапан больше по размеру и почему

При необходимости изменить конфигурацию arpwatch (в частности, заставить его прослушивать другие интерфейсы), нужно править указанный файл:

Если конфигурация была изменена, демон должен быть перезапущен:

Когда демон запускается, он обнаруживает новые станции. Не выполняется никаких активных действий — просто прослушивается ARP-трафик. Обнаруженные узлы запоминаются; о том, что обнаружен новый узел arpwatch сообщает в syslog.

Обо всех зафиксированных им аномалиях в работе протокола ARP демон также сообщает в syslog:

Обратите внимание на строку

которая сообщает о том, что узел 192.168.15.254 изменил MAC-адрес.

Возможно, это означает, что против узла, на котором запущен arpwatch выполняется ARP-spoofing с целью перехвата трафика, которым он обменивается с узлом 192.168.15.254.

Дополнительная информация

Обнаружение узла, выполняющего ARP-spoofing

Если коммутатор управляемый, можно определить, на каком из его портов работает узел, имеющий определённый MAC-адрес.

Например, это можно сделать с помощью скрипта mac2port. Скрипт связывается с коммутатором по SNMP и опрашивает его таблицу соответствия MAC-адресов портам. Полученная информация выдаётся в удобном для поиска виде на стандартный поток вывода. Для упрощения использования скрипт выводит MAC-адреса в таком же формате, как это делает arpwatch.

Условия для использования скрипта:

Пример использования скрипта:

Если ранее с помощью arpwatch была зафиксирована атака:

можно воспользоваться скриптом, и определить с какого порта коммутатора она производилась (при этом не имеет значения, истинный ли это MAC-адрес сетевой карты атакующего или он был изменён):

Важно чтобы определение выполнялось быстро, пока информация об атакующем ещё хранится в памяти коммутатора.

Для этого имеет смысл вызывать скрипт поиска автоматически при обнаружении соответствующей записи в системном журнале. Анализ журнала можно выполнять, например, такими средствами как swatch или syslog-ng.

Например, если используется syslog-ng.

можно создать скрипт, выполняющий анализ:

и подключить его к syslog-ng.

Для этого нужно в конфигурационном файле syslog-ng.conf указать следующие строки:

можно и не указывать, но на нагруженных системах, она существенно снижает нагрузку.

В этом случае при выполнении arp-spoofing’а происходит следующее:

Вот как это выглядит в файле:

Текст скрипта mac2port

Другие средства обнаружения

Методы предотвращения

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

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

Борьба с ARP-spoofing’ом с помощью arpwatch и подобных инструментов оказывается хотя и очень простой, но далеко не эффективной.

В основе рассматриваемых способов противодействия ARP-атакам лежат два совершенно различных принципа, каждый из которых обладает как достоинствами, так и недостатками.

Статический ARP

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

Если не отключать использование ARP на сетевых интерфейсах, MAC-адрес заданный статически имеет приоритет. Если MAC-адрес для какого-то IP-адреса не задан, используется ARP-запрос.

Статическую ARP-таблицу можно получить на основе существующей ARP-таблицы маршрутизатора:

она запишется в файл /etc/ethers

Нужно чтобы в таблице было максимальное количество машин сети. Нужно или строить таблицу в момент пика сетевой активности или предварительно пройдясь по всему диапазону адресов пингами: for i in `seq 1 255` do

done (здесь 192.168.15.0/24 — сеть, для которой выполняется сканирование).

После того как файл /etc/ethers создан, его можно загружать с помощью команды:

Дальше можно вообще отключить ARP на интерфейсе, и те кто не прописан в /etc/ethers, вообще не смогут пользоваться маршрутизатором.

Преимущества и недостатки

Метод ручного формирования ARP-таблиц имеет следующие недостатки:

Патчи ядра системы

Существует патч (предложенные buggzy) для ядер Linux/FreeBSD, который позволяет свести к минимуму опасность успешного выполнения атаки ARP-spoofing против пропатченных систем.

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

Если выполняется атака настоящая система, имеющая этот IP-адрес, ответит на запрос, и, таким образом, атака будет распознана. Если же изменение MAC-адреса было связано не с атакой, а со стандартными ситуациями, ответа, содержащего «старый» MAC-адрес, не будет, и по прошествию определенного таймаута система обновит запись в кеше.

При обнаружении подозрительной ситуации («двойника») ядро выводит сообщение: «ARP_ANTIDOTE: Possible MITM attempt!», и не обновляет запись ARP-кеша, а наоборот, прописывает старую запись как статическую. После того как источник атаки выявлен и обезврежен, статическую запись можно удалить.

Патчи, реализующие этот метод борьбы:

Патчи работают только с ядром серии 2.4.

Другие методы борьбы с ARP-spoofing’ом

К сожалению, этот метод не применим к Windows-системам, и другим системам, работающим под управлением ОС, исходный код которых недоступен.

Необходимо решить проблему кардинально: нужно так построить сеть, чтобы выполнение ARP-spoofing’а в ней было принципиально невозможно. А если возможным, то бесполезным.

Это можно сделать двумя способами:

Использование VLAN

Компьютер C может использовать ARP-spoofing против компьютера A только в том случае, если они находятся в одной сети канального уровня. В том случае, если они разделены маршрутизатором, атака невозможна (возможна атака на маршрутизатор, но это совсем другое дело).

Преимущества
Недостатки

Существует мнение, что некоторые коммутаторы позволяют пересылать трафик из одного VLAN’а напрямую в другой в обход запрета прямой пересылки кадров между VLAN’ами. Об одном из способов подробнее можно почитать на странице [1]

Использование packet filtering ACL на коммутаторах

Современные коммутаторы Dlink и Cisco поддерживают продвинутые инструменты анализа пакетов и фильтрацию по их параметрам. Существуют два направления фильтрации:

Настройку ACL для предотвращения ARP-spoofing’а зачастую увязывают в один комплекс с выдачей ip по DHCP с использованием опции 82, позволяющей выдавать ip по порту устройства и IP-Mac-Port binding, запрещающего подмены IP/MAC на третьем уровне.

Настройка коммутаторов Dlink описана в FAQ(1, 2, 3) и на форуме dlink.ru (1, 2), настройка коммутаторов ProCurve в этом wiki.

Преимущества
Недостатки

Использование PPPoE

Преимущества
Недостатки

Мифы и заблуждения, касающиеся ARP-spoofing

Функция port-security коммутатора позволяет защититься от смены MAC-адреса на порту коммутатора. В том случае если компьютер, подключенный к порту коммутатора меняет MAC-адрес или если меняется компьютер, коммутатор замечает подмену и перестаёт передавать пакеты отправленные с новым обратным адресом. Кроме этого, могут выполняться другие действия: отсылка SNMP-трапа, запись в syslog и тому подобное.

При ARP-spoofing’е MAC-адрес отправителя (атакующего) не меняется и поэтому с точки зрения port-security никаких аномалий нет. Функция port-security никак не отвечает за соответствие IP-адресов и MAC-адресов, а атака ARP-spoofing построена именно на этом.-

Источник

Сказочный портал