ARP Spoofing — недостатки в сетевой безопасности

Брандмауэры, прокси-серверы, демилитаризованные зоны (DMZ) — компании все чаще применяют подобные тактики для защиты своих частных сетей от опасностей Интернета. Но не все атаки приходят извне. Самым слабым звеном в цепи сетевой безопасности является локальная сеть (LAN). Злоумышленник, который уже находится внутри сети, имеет в своем распоряжении бесчисленное количество способов просматривать трафик данных и манипулировать им по своему усмотрению. Внутренние злоумышленники используют уязвимость протоколов ARP. Он используется в сетях Ethernet на базе IPv4 для преобразования IP-адресов в MAC-адреса, создавая проблемы безопасности для администраторов.

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

Определение ARP спуфинга

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

ARP: Адресация в локальной сети

В отличие от устройств в Интернете, устройства в локальной сети не общаются напрямую через IP-адреса. Вместо этого они используют физические аппаратные адреса для адресации в локальных сетях IPv4. Эти MAC-адреса (Media Access Control) представляют собой уникальные 48-битные числа и позволяют идентифицировать каждое устройство в локальной сети через его сетевую карту.

                Пример MAC-адреса: 00-80-41-ae-fd-7e

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

Если компьютер A хочет связаться с компьютером B в той же сети, он должен сначала определить соответствующий MAC-адрес для своего IP-адреса. Для этого используется протокол разрешения адресов (ARP), сетевой протокол, работающий по схеме «запрос-ответ».

После поиска соответствующего MAC-адреса компьютер A отправляет широковещательный запрос (или ARP-запрос) всем устройствам в сети. Этот запрос содержит следующую информацию:

Компьютер с MAC-адресом xx-xx-xx-xx-xx-xx и IP-адресом yyy.yyy.yyy.yyy хотел бы связаться с компьютером с IP-адресом zzz.zzz.zzz.zzz и требует соответствующий MAC-адрес.

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

Таким образом, все компьютеры в сети регистрируют широковещательный запрос вместе с сопутствующим адресом отправителя. Ответ на широковещательный запрос ожидается только от компьютера B. Его ARP-ответ содержит следующую информацию:

Это система с IP-адресом zzz.zzz.zzz.zzz.zzz. Запрашиваемый MAC-адрес — aa-aa-aa-aa-aa-aa.

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

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

Что такое ARP-подделка?

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

Чтобы остаться незамеченным, перехваченный трафик данных обычно передается в реальную целевую систему. В этом случае хакер становится «человеком посередине». Если перехваченные пакеты данных не пересылаются, а отбрасываются, ARP спуфинг может привести к отказу в обслуживании (DoS). ARP спуфинг функционирует как в локальных, так и в беспроводных сетях. Даже шифрование беспроводных сетей с помощью Wi-Fi Protected Access (WPA) не обеспечивает защиты. Для взаимодействия в локальных сетях IPv4 все подключенные устройства должны определить MAC-адреса, что можно сделать только с помощью ARP.

Одной из известных программ, которая специально затаивается на широковещательных запросах и отвечает поддельными ARP-ответами, является Cain&Abel. Но чтобы «заразить» ARP-кэш сетевого устройства, хакеру не обязательно ждать ARP-запросов. Другая стратегия включает в себя постоянную бомбардировку сети ложными ARP-ответами. Хотя большинство систем игнорируют ответные пакеты, которые не могут быть отнесены к запросу, ситуация меняется, как только компьютер в локальной сети начинает ARP-запрос и, соответственно, готов получить ответ. В зависимости от времени, либо ответ целевой системы, либо один из поддельных ответных пакетов прибудет к отправителю первым. Эта схема атаки может быть автоматизирована с помощью таких программ, как Ettercap.

Программное обеспечение для ARP-атак с первого взгляда

Программы, работающие в рамках ARP спуфинга как хакерское программное обеспечение, обычно представляются как инструменты безопасности и доступны бесплатно в Интернете. Администраторы могут использовать эти программы для тестирования своей сети и защиты от распространенных моделей атак. Наиболее распространенными приложениями являются ARP0c/WCI, Arpoison, Cain&Abel, Dsniff, Ettercap, FaceNiff и NetCut.

  • ARP0c/WCI: По словам поставщика, ARP0c/WCI — это инструмент, который использует подмену ARP для перехвата соединений в частной сети. Для этого программа отправляет ложные пакеты ARP-ответов, которые перенаправляют трафик на систему, в которой запущен ARP0c/WCI. Встроенный мостовой механизм используется для пересылки информации к реальной целевой системе. Пакеты, не доставленные локально, пересылаются ARP0c/WCI на соответствующий маршрутизатор. Атака «человек посередине» обычно остается незамеченной. Программа доступна для Linux и Windows и может быть бесплатно загружена с сайта поставщика.
  • Arpoison: Инструмент командной строки Arpoison генерирует пользовательские ARP-пакеты, в которых пользователь может задать адреса отправителя и цели. Arpoison может использоваться для анализа сети, но также применяется в качестве программы для атак. Инструмент доступен бесплатно и работает под лицензией GNU.
  • Cain&Abel: Программа Cain&Abel, разработанная как старый инструмент для восстановления паролей, позволяет перехватывать сети и расшифровывать их зашифрованные пароли. Начиная с версии 2.5, программа также содержит функции ARP poisoning, которые перехватывают IP-трафик в коммутируемых локальных сетях. Даже соединения SSH и HTTPS не являются препятствием для Cain&Abel. Для анализа сетевого трафика WLAN программа, начиная с версии 4.0, поддерживает адаптер AirPcap, который позволяет пассивно считывать трафик данных в WLAN. Атаки на беспроводные сети с защитой WPA стали возможны с версии 4.9.1.
  • Dsniff: Dsniff — это набор программ, предоставляющих разнообразные инструменты для анализа сети и тестов на проникновение: с помощью Dsniff, Filesnarf, Mailsnarf, Msgsnarf, Urlsnarf и Webspy можно шпионить в сетях и перехватывать данные, электронные письма или пароли. Arpspoof, Dnsspoof и Macof позволяют обнаружить данные, которые обычно недоступны в коммутируемых сетях. Атаки типа «человек посередине» на защищенные соединения SSH и SSL/TLS могут быть реализованы с помощью программ SShmitm и Webmitm.
  • Ettercap: Удобный в использовании инструмент подмены APR Ettercap в основном используется для атак типа «человек посередине». Программа поддерживает различные дистрибутивы Linux, а также Max OS X (Snow Leopard и Lion). Установка на Windows возможна, но требует дополнительных настроек. В дополнение к пользовательскому интерфейсу доступны графические интерфейсы ncurses front-end и GTK2 GUI.  Такие действия, как сниффинг, ARP-атака и сбор паролей, могут быть автоматизированы. Ettercap может манипулировать перехваченными данными и атаковать соединения, защищенные с помощью SSH или SSL. Программа официально предлагается как программное обеспечение безопасности и используется при тестировании продуктов.
  • FaceNiff: Приложение FaceNiff для Android позволяет пользователям читать куки сеансов в сетях WLAN и перехватывать сеансы предложения. Хакеры используют этот инструмент для взлома аккаунтов Facebook, Amazon или Twitter, поэтому не имеет значения, является ли беспроводная сеть свободно доступной или зашифрованной с помощью WEP, WPA-PSK или WPA2-PSK. Надежную защиту от FaceNiff можно найти в протоколе аутентификации EAP (Extensible Authentication Protocol), таком как SSL. Программа для Android основана на расширении Firefox Firesheep и может использоваться на смартфонах в сочетании с ранее установленным стандартным браузером.
  • NetCut: С помощью программы управления сетью NetCut администраторы могут управлять своей сетью на основе ARP. Программа обнаруживает все устройства, подключенные к сети, и выдает их MAC-адреса. Простого нажатия на один из перечисленных адресов достаточно, чтобы отключить устройство от сети. NetCut особенно подходит для DoS-атак, если атакующий находится в той же сети, что и жертва; атаки типа «человек посередине» не могут быть реализованы с помощью этой программы.

Подмена ARP и шифрование

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

Многочисленные инструменты, которые могут быть использованы для атак типа «человек посередине», предоставляют функции подмены ARP, а также реализацию клиента и сервера для SSL/TLS, SSH и других протоколов шифрования. Они способны имитировать соответствующие сертификаты и устанавливать зашифрованные соединения. Cain&Abel, например, имитирует веб-сервер с поддержкой SSL, который затем отправляет ненадежный SSL-сертификат системе-жертве. Конечно, в этом случае пользователей сети предупреждают, но эти предупреждения обычно либо игнорируются, либо неверно интерпретируются пользователем, поэтому на уроках по теме сетевой безопасности следует также рассказывать об ответственном обращении с цифровыми сертификатами.

Меры противодействия

Поскольку подмена ARP использует протокол разрешения адресов, все сети IPv4 подвержены атакам такого рода. Внедрение IPv6 также не смогло решить эту основную проблему. Новый стандарт IP отказывается от ARP и вместо этого контролирует разрешение адресов в локальной сети через протокол NDP (Neighbor Discovery Protocol), который также уязвим для атак спуфинга. Пробел в безопасности может быть устранен с помощью протокола Secure Neighbor Discovery (SEND), но он не поддерживается многими настольными операционными системами.

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

Еще одной мерой против злоупотребления ARP является разделение сетей на коммутаторы третьего уровня. Неконтролируемые широковещательные запросы достигают только тех систем, которые находятся в том же сегменте сети. ARP-запросы в других сегментах проверяются коммутатором. Если они работают на сетевом уровне (Layer 3), то IP-адрес сопоставляется с MAC-адресом и предыдущими записями. Если есть какие-либо несоответствия или частые переназначения, коммутатор подаст сигнал тревоги. Однако необходимое оборудование стоит довольно дорого. Администраторы должны оценить, оправдывает ли повышение уровня безопасности финансовые затраты. С другой стороны, значительно более выгодные коммутаторы уровня 2, работающие на канальном уровне, не являются адекватными. Хотя они регистрируют изменение MAC-адреса, назначение соответствующего IP-адреса остается незатронутым.

Многочисленные производители программного обеспечения предлагают программы мониторинга, которые могут контролировать сети и обнаруживать подозрительные процессы ARP. Известными инструментами являются программа с открытым исходным кодом Arpwatch, а также ARP-Guard и XArp. Кроме того, системы обнаружения вторжений, такие как Snort, могут быть использованы для мониторинга разрешения адресов через ARP.

  • Arpwatch: Если кроссплатформенный инструмент с открытым исходным кодом Arpwatch интегрирован в локальную сеть IPv4, он непрерывно регистрирует все действия ARP в локальной сети. Все входящие ARP-пакеты принимаются программой вместе с сопутствующей адресной информацией и сохраняются в центральной базе данных. Если обнаруживаются старые записи, которые не соответствуют данным, отправляемым в данный момент, программа отправляет администратору предупреждение по электронной почте. Процедура эффективна, но подходит только для сетей со статическими IP-адресами. Если IP-адреса локальной сети распределяются динамически через DHCP-сервер, любое изменение в сопоставлении IP/MAC приводит к ложной тревоге.
  • ARP-Guard: ARP-Guard от компании ISL также осуществляет мониторинг внутренней сети и полагается на два различных датчика. Датчик LAN работает аналогично Arpwatch, анализируя входящие пакеты данных и подавая сигнал тревоги в случае каких-либо несоответствий. В архитектуре управления датчиками программы также имеется датчик SNMP, который использует протокол Simple Network Management Protocol (SNMP) для доступа к устройствам, подключенным к локальной сети, и считывания их ARP-таблиц. Таким образом, ARP-атаки не только локализуются и предотвращаются; интегрированное управление адресами также позволяет администраторам обнаруживать нежелательные устройства и предотвращать их доступ к сети.
  • XArp: Программное обеспечение XArp использует активные и пассивные модули для защиты сети от ARP-спуфинга. Пассивные модули анализируют ARP-пакеты, отправляемые по сети, и сопоставляют сопутствующие назначения адресов со старыми записями. Если замечены расхождения, программа подает сигнал тревоги. Механизм контроля основан на статистическом анализе и проверяет сетевой трафик на основе различных паттернов, которые, по мнению разработчиков, указывают на ARP-атаки. Чувствительность этого фильтра трафика можно регулировать постепенно. Активные модули программы посылают в сеть собственные пакеты, чтобы проверить ARP-таблицы доступных устройств и заполнить их корректными записями.

Система обнаружения вторжений (IDS) Snort также работает с использованием встроенного препроцессора arpspoof, что позволяет ей отслеживать трафик данных в сети и вручную составлять списки сравнения. Но это сравнительно дорого.

Более того, IDS в основном используется только для перехода во внешние сети. Вопрос об использовании в локальной сети должен решаться в индивидуальном порядке. Иногда против таких мер выступает производственный совет. Администратор, контролирующий сеть через IDS, имеет доступ ко всей сети и, следовательно, может также контролировать все действия сотрудников компании — в результате функция контроля доступна, но, как правило, нежелательна.

Оцените статью
cdelat.ru
Добавить комментарий