В чем заключается преимущество сохранения в памяти записей кэша arp на исходном компьютере
Чтобы уменьшить число широковещательных запросов, протокол ARP использует кэш сопоставлений IP-адресов и аппаратных адресов устройств. Каждый сетевой адаптер имеет свой кэш ARP. Он может содержать как динамические, так и статические записи. Динамические записи добавляются и удаляются автоматически, с течением времени. Статические записи остаются в кэше до тех пор, пока компьютер не будет перезагружен.
Каждая динамическая запись кэша ARP имеет потенциальное время жизни, равное 10 минутам. Новые записи, добавляемые в кэш, получают штамп времени. Если запись не будет повторно использована в течение двух минут после добавления, срок ее жизни истекает, и она удаляется из кэша ARP. Если запись будет повторно использована, срок ее жизни увеличивается на две минуты. Если запись будет использована еще раз, время ее жизни снова увеличивается на две минуты; максимальное значение времени жизни равно 10 минутам.
В большинстве систем имеется команда аrр, которую можно применять для изучения и обработки содержимого кэша ARP. Она обычно используется для добавления и удаления записей. Команда аrр -а отображает содержимое кэша; естественно, в каждой операционной системе у нее свой формат.
Команда аrр , как правило, используется в целях отладки и при работе со специальным оборудованием. Некоторые устройства не могут общаться по протоколу ARP (например, сетевые принтеры и специализированные графические мониторы), и для включения их в сеть нужно сконфигурировать другую машину в качестве агента-посредника ARP. Обычно этой цели служит команда аrр.
Если два компьютера в сети имеют одинаковый IP-адрес, то на одном из них запись в ARP-таблице будет правильной, а на другом — нет. С помощью команды аrр можно найти машину-нарушитель. Для ознакомления с параметрами команды arp введите команду arp /? в командную строку.
В нормальных условиях многие адреса, необходимые компьютеру, выявляются вскоре после начальной загрузки, поэтому протокол ARP не оказывает серьезного воздействия на загруженность сети.
Доброго времени суток, дорогие хабраюзеры. Этой статьей я хочу начать цикл повествования о протоколах, которые помогают нам прозрачно, быстро и надежно обмениваться информацией. И начать с протокола ARP.
Как известно, адресация в сети Internet представляет собой 32-битовую последовательность 0 и 1, называющихся IP-адресами. Но непосредственно связь между двумя устройствами в сети осуществляется по адресам канального уровня (MAC-адресам).
Так вот, для определения соответствия между логическим адресом сетевого уровня (IP) и физическим адресом устройства (MAC) используется описанный в RFC 826 протокол ARP (Address Resolution Protocol, протокол разрешения адресов).
ARP состоит из двух частей. Первая – определяет физический адрес при посылке пакета, вторая – отвечает на запросы других станций.
Протокол имеет буферную память (ARP-таблицу), в которой хранятся пары адресов (IP-адрес, MAC-адрес) с целью уменьшения количества посылаемых запросов, следовательно, экономии трафика и ресурсов.
Пример ARP-таблицы.
192.168.1.1 08:10:29:00:2F:C3
192.168.1.2 08:30:39:00:2F:C4
Слева – IP-адреса, справа – MAC-адреса.
Прежде, чем подключиться к одному из устройств, IP-протокол проверяет, есть ли в его ARP-таблице запись о соответствующем устройстве. Если такая запись имеется, то происходит непосредственно подключение и передача пакетов. Если же нет, то посылается широковещательный ARP-запрос, который выясняет, какому из устройств принадлежит IP-адрес. Идентифицировав себя, устройство посылает в ответ свой MAC-адрес, а в ARP-таблицу отправителя заносится соответствующая запись.
Записи ARP-таблицы бывают двух вид видов: статические и динамические. Статические добавляются самим пользователем, динамические же – создаются и удаляются автоматически. При этом в ARP-таблице всегда хранится широковещательный физический адрес FF:FF:FF:FF:FF:FF (в Linux и Windows).
Создать запись в ARP-таблице просто (через командную строку):
Вывести записи ARP-таблицы:
После добавления записи в таблицу ей присваивается таймер. При этом, если запись не используется первые 2 минуты, то удаляется, а если используется, то время ее жизни продлевается еще на 2 минуты, при этом максимально – 10 минут для Windows и Linux (FreeBSD – 20 минут, Cisco IOS – 4 часа), после чего производится новый широковещательный ARP-запрос.
- тип сети (16 бит): для Ethernet – 1;
- тип протокола (16 бит): h0800 для IP;
- длина аппаратного адреса (8 бит);
- длина сетевого адреса (8 бит);
- тип операции (16 бит): 1 – запрос, 2 — ответ;
- аппаратный адрес отправителя (переменная длина);
- сетевой адрес отправителя (переменная длина);
- аппаратный адрес получателя (переменная длина);
- сетевой адрес получателя (переменная длина).
А вот как происходит определение маршрута с участием протокола ARP.
Пусть отправитель A и получатель B имеют свои адреса с указанием маски подсети.
- Если адреса находятся в одной подсети, то вызывается протокол ARP и определяется физический адрес получателя, после чего IP-пакет инкапсулируется в кадр канального уровня и отправляется по указанному физическому адресу, соответствующему IP-адресу назначения.
- Если нет – начинается просмотр таблицы в поисках прямого маршрута.
- Если маршрут найден, то вызывается протокол ARP и определяется физический адрес соответствующего маршрутизатора, после чего пакет инкапсулируется в кадр канального уровня и отправляется по указанному физическому адресу.
- В противном случае, вызывается протокол ARP и определяется физический адрес маршрутизатора по умолчанию, после чего пакет инкапсулируется в кадр канального уровня и отправляется по указанному физическому адресу.
Главным достоинством проткола ARP является его простота, что порождает в себе и главный его недостаток – абсолютную незащищенность, так как протокол не проверяет подлинность пакетов, и, в результате, можно осуществить подмену записей в ARP-таблице (материал для отдельной статьи), вклинившись между отправителем и получателем.
Бороться с этим недостатком можно, вручную вбивая записи в ARP-таблицу, что добавляет много рутинной работы как при формировании таблицы, так и последующем ее сопровождении в ходе модификации сети.
Существуют еще протоколы InARP (Inverse ARP), который выполняет обратную функцую: по заданному физическому адресу ищется логический получателя, и RARP (Reverse ARP), который схож с InARP, только он ищет логический адрес отправителя.
В целом, протокол ARP универсален для любых сетей, но используется только в IP и широковещательных (Ethernet, WiFi, WiMax и т.д.) сетях, как наиболее широко распространенных, что делает его незаменимым при поиске соответствий между логическими и физическими адресами.
P.S. Эту статью писал я сам, никуда не подглядывая, основываясь только на своих знаниях, полученных в ходе изучения сетей.
Привет habr! Каждый будущий инженер в процессе изучения сетевых технологий знакомится с протоколом ARP (Address Resolution Protocol, далее ARP). Основная задача протокола – получить L2 адрес устройства при известном L3 адресе устройства. На заре профессиональной карьеры начинающий специалист, как мне кажется, редко сталкивается с ситуациями, когда нужно вспомнить про существование ARP. Создаётся впечатление, что ARP – это некоторый автономный сервис, не требующий никакого вмешательства в свою работу, и при появлении каких-либо проблем со связью многие по неопытности могут забыть проверить работу ARP.
Я помню свой порядок мыслей, когда я начинал работать сетевым инженером: «Так, интерфейс поднялся, ошибок по физике вроде как не видно. Маршрут, куда слать пакеты, я прописал. Списков доступа никаких нет. Так почему же не идёт трафик? Что маршрутизатору ещё не хватает?» Рано или поздно каждый сетевой инженер столкнётся с проблемой, причина которой будет лежать именно в особенностях работы/настройки ARP на сетевом оборудовании. Простейший пример: смена шлюза на границе сети (например, вместо сервера MS TMG устанавливаем маршрутизатор). При этом конфигурация маршрутизатора была проверена заранее в лабораторных условиях. А тут, при подключении к провайдеру никакая связь не работает. Возвращаем MS TMG — всё работает. Куда смотреть после проверки канального и физического уровня? Наиболее вероятный ответ – проверить работу ARP.
В данной заметке я не буду подробно описывать принципы работы ARP и протоколов этого семейства (RARP, InARP, UnARP и т.д.). На эту тему уже существует уйма статей в Интернете (например, здесь не плохо описаны разновидности ARP). Единственный теоретический момент, на котором я заострю чуть больше внимания, – механизм Gratuitous ARP (GARP).
Статья будет состоять из двух частей. В первой части будет немного теории и особенности работы ARP на маршрутизаторах Cisco, связанные с правилами NAT и с функцией Proxy ARP. Во второй части опишу отличия в работе ARP между маршрутизаторами Cisco и межсетевыми экранами Cisco ASA, а также поделюсь несколькими интересными случаями из практики, связанными с работой ARP.
Чуть-чуть теории
Ниже представлен пример обмена ARP-запросом/ARP-ответом в программе-сниффере Wireshark:
ARP-запрос отправляется на широковещательный MAC-адрес ff:ff:ff:ff:ff:ff. В теле ARP-запроса поле с неизвестным значением Target MAC Address заполняется нулями.
ARP-ответ отправляется на MAC-адрес получателя, отправившего ARP-запрос. В поле Sender MAC Address указывается запрашиваемый MAC-адрес устройства.
Поле opcode в заголовке ARP может принимает значение 1 для ARP-запроса и значение 2 для ARP-ответа.
Чтобы два устройства могли начать передавать трафика между собой, в их ARP-таблицах должна существовать соответствующая запись о соседнем устройстве. Логично предположить, чтобы ARP-запись появилась в таблицах, для каждого устройства должна отработать процедура ARP-запрос/ARP-ответ. То есть перед передачей трафика в сети должны пройти по два ARP-запроса и два ARP-ответа (ARP-запрос/ARP-ответ для первого компьютера и ARP-запрос/ARP-ответ для второго компьютера). Однако, данное предположение верно не для всех случаев. Сетевое оборудование Cisco добавляет новую запись в ARP-таблицу сразу по приходу ARP-запроса от удалённого устройства.
Рассмотрим пример. В широковещательный домен добавляется новое устройство с адресом 198.18.0.200. Запустим пинг с нового устройства и посмотрим debug arp на маршрутизаторе Cisco:
Как видно, сразу по пришествии ARP-запроса от неизвестного IP-адреса (rcvd req src 198.18.0.200), маршрутизатор создаёт соответствующую запись в своей ARP-таблице (creating entry for IP address: 198.18.0.200, hw: 64e9.50c8.d6cd).
Для текущей статьи я не проводил подробного исследования по вопросу, какое именно сетевое оборудование добавляет ARP-запись по пришествии ARP-запроса. Однако, предполагаю, описанное поведение присуще не только сетевому оборудованию Cisco, но и сетевому оборудованию других производителей, так как данный механизм позволяет существенно сократить ARP-трафик в сети.
Описанное поведение присуще сетевому оборудованию. Конечное оборудование в большинстве случаев, получает запись в ARP-таблицу только после полноценной процедуры ARP-запрос/ARP-ответ. Для примера, я проверил процедуру на компьютере с операционной системой Windows 7. Ниже представлен дамп ARP-пакетов. В данном примере был очищен arp-cache на маршрутизаторе Cisco и на Windows-компьютере. После этого был запущен пинг от маршрутизатора к компьютеру.
Из представленного дапма видно, что сперва маршрутизатор отправляет ARP-запрос и получает ARP-ответ. Но ARP-запрос от маршрутизатора не приводит к появлению требуемой записи в ARP-таблице Windows-компьютера, поэтому, в свою очередь, компьютер отправляет ARP-запрос и получает ARP-ответ от маршрутизатора.
Gratuitous ARP
Безусловно, маршрутизатор будет отвечать на ARP-запросы как для основного, так и для secondary IP-адреса.
Пример на маршрутизаторе Cisco. Включим debug arp и подключим в широковещательный домен новое устройство с адресом 198.18.0.200. До подключения нового устройства ARP-таблица маршрутизатора выглядит следующим образом:
Новая запись не появилась. Делаем пинг до нового адреса:
Новая запись появилась.
ARP и NAT на маршрутизаторах Cisco
- Если внутренний глобальный адрес находится в той же IP-подсети, что и адрес интерфейса маршрутизатора, маршрутизатор будет отвечать на ARP-запросы к этому адресу. При этом в собственной arp-таблице маршрутизатора создаётся статическая запись для внутреннего глобального адреса.
- Если внутренний глобальный адрес находится в IP-подсети, отличной от адреса интерфейса маршрутизатора, маршрутизатор не будет отвечать на ARP-запросы к этому адресу. В собственной arp-таблице статическая запись не создаётся. Чтобы связь с таким IP-адресом заработала, требуется дополнительная настройка. Мы рассмотрим данный случай более подробно далее в статье.
Примечание: для тестов использовался маршрутизатор C4321 с программным обеспечением 15.4(3)S3 и межсетевой экран Cisco ASA5505 c программным обеспечением 9.1(6)6.
Настройки интерфейсов маршрутизатора:
Добавим правило динамического NAT, чтобы транслировать адрес компьютера из LAN (192.168.20.5) во внутренний глобальный адрес 198.18.0.5 при обращении к компьютеру во вне (Wireshark). Добавим правило статического PAT для публикации TCP порта 3389 (RDP) компьютера из LAN под глобальным адресом 198.18.0.2.
Посмотрим ARP-таблицу на маршрутизаторе:
Видим, что в ARP-таблице присутствуют статические записи как для внешнего интерфейса маршрутизатора (198.18.0.1), так и для внутренних глобальных адресов из правил динамического и статического NAT.
Сделаем clear arp-cache на маршрутизаторе и посмотрим в Wireshark, какие Gratuitous ARP уведомления будут отправлены с внешнего интерфейса:
Как видно, маршрутизатор уведомил о готовности обслуживать адрес интерфейса, адрес из правила динамического NAT и адрес из правила статического NAT.
А теперь представим ситуацию, когда провайдер расширяет пул публичных адресов, выданных клиенту, за счёт другой подсети. Предположим, дополнительно к IP-подсети 198.18.0.0/24 на внешнем интерфейсе маршрутизатора мы получаем от провайдера новый пул 198.18.99.0/24 и хотим публиковать наши внутренние сервисы под новыми IP-адресами. Для наглядности приведу схему с провайдером:
Добавим правило статического PAT для публикации TCP порта 3389 (RDP) компьютера из LAN под новым глобальным адресом 198.18.99.2:
Если снова посмотреть ARP-таблицу маршрутизатора командой show arp, увидим, что статическая запись для IP-адреса 198.18.99.2 не добавилась.
Чтобы иметь возможность отправлять ARP-запросы в новую сеть 198.18.99.0/24 с компьютера Wireshark, расширим маску его сетевых настроек до 255.255.0.0 (/16). Напомню, для нашего примера компьютер Wireshark выступает в роли маршрутизатора Интернет-провайдера.
После ввода clear arp-cache сниффер по-прежнему показывает Gratuitous ARP только для трёх IP-адресов: 198.18.0.1, 198.18.0.2, 198.18.0.5. Для нового адреса 198.18.99.2 Gratuitous ARP не срабатывает. Попробуем открыть tcp-порт 3389 адреса 198.18.99.2 и одновременно посмотреть сниффер:
Неуспех. Проверим ARP-таблицу:
- Попросить провайдера прописать статические ARP-записи для каждого IP-адреса из нового диапазона. Это не очень удобно, если выдаётся широкий диапазон как в нашем примере.
- Попросить провайдера прописать статический маршрут. Часто, чтобы выдать дополнительный диапазон белых IP-адресов, провайдер прописывает на интерфейсе своего оборудования secondary IP-адрес. Вместо этого мы можем попросить провайдера прописать статический маршрут к новой IP-подсети через IP-адрес внешнего интерфейса маршрутизатора. В этом случае оборудование провайдера будет знать, что новая подсеть доступна через IP-адрес интерфейса маршрутизатора, а маршрутизатор, в свою очередь, будет отвечать на ARP-запросы, отправленные к собственному интерфейсу.
- Прописать secondary IP-адрес из нового диапазона на внешнем интерфейсе маршрутизатора. В этом случае любой IP-адрес нового диапазона будет принадлежать той же подсети, что и IP-адрес (пусть и secondary) интерфейса маршрутизатора. Маршрутизатор автоматически добавит статические записи в свою ARP-таблицу, будет слать Gratuitous ARP и отвечать на ARP-запросы.
- Использовать механизм Proxy Arp на маршрутизаторе. На этом варианте остановимся чуть более подробно.
- Целевой IP-адрес ARP-запроса находится в IP-подсети, отличной от IP-подсети, в которой ARP-запрос получен;
- Маршрутизатор имеет один или несколько маршрутов к целевому IP-адресу ARP-запроса;
- Маршруты к целевому IP-адресу ARP-запроса указывают на исходящий интерфейс, отличный от интерфейса, на который ARP-запрос был получен.
Настройка Proxy ARP на интерфейсе маршрутизатора:
Отключить Proxy ARP на всех интерфейсах маршрутизатора можно глобально:
Данная настройка имеет приоритет над настройками Proxy ARP, применёнными на интерфейсах.
Помимо команды ip proxy arp в настройках интерфейса существует команда ip local-proxy-arp. Данная команда работает только когда ip proxy arp включён на интерфейсе и позволяет маршрутизатору отвечать на ARP-запросы, даже если целевой IP-адрес находится в той же IP-подсети, откуда ARP-запрос поступил. Пример настройки:
Данная настройка может пригодится, если мы хотим, чтобы трафик в рамках одного широковещательного домена шёл через интерфейс нашего маршрутизатора. Данную задачу можно реализовать с использованием Protected port (PVLAN edge) настроек на L2-коммутаторе (switchport protected).
Включение Proxy ARP на внешнем интерфейсе маршрутизаторе позволит решить проблему с новым пулом адресов, выданных провайдером. Попробуем открыть tcp-порт 3389 адреса 198.18.99.2 после включения Proxy ARP на интерфейсе маршрутизатора и одновременно посмотреть сниффер:
Успех. Маршрутизатор отвечает на ARP-запрос и порт открывается. Таким образом, функциональность Proxy ARP также можно использовать при необходимости трансляции адресов в новый пул.
«Отравление» ARP (ARP Poisoning) — это тип кибератаки, которая использует слабые места широко распространенного протокола разрешения адресов (Address Resolution Protocol, ARP) для нарушения или перенаправления сетевого трафика или слежения за ним. В этой статье мы вкратце рассмотрим, зачем нужен ARP, проанализируем его слабые места, которые делают возможным отравление ARP, а также меры, которые можно принять для обеспечения безопасности организации.
Что такое отравление ARP?
ARP-спуфинг vs отравление ARP
Термины «ARP-спуфинг» и «отравление ARP» обычно используются как синонимы. Технически под спуфингом понимается выдача злоумышленником своего адреса за MAC-адрес другого компьютера, в то время как отравлением (подменой) называют повреждение ARP-таблиц на одной или нескольких машинах-жертвах. Однако на практике это элементы одной и той же атаки. Также эту атаку иногда называют «отравлением кэша ARP» или «повреждением ARP-таблицы».
Типы атак ARP Poisoning
Имеется два основных способа отравления ARP: злоумышленник может либо дождаться запроса ARP в отношении конкретной цели и дать на него ответ, либо использовать самообращённые запросы (gratuitous ARP). Первый вариант ответа будет менее заметен в сети, но его потенциальное влияние также будет меньшим. Cамообращенные запросы ARP могут быть более эффективными и затронуть большее количество жертв, но они имеют обратную сторону — генерирование большого объема сетевого трафика. При любом подходе поврежденный кэш ARP на устройствах-жертвах может быть использован для дальнейших целей:
Этапы отравления ARP
Этапы отравления ARP могут различаться, но обычно их минимальный перечень таков:
Статические ARP-таблицы
Можно статически назначить все MAC-адреса в сети соответствующим IP-адресам. Это очень эффективно для предотвращения отравления ARP, но требует огромных трудозатрат. Любое изменение в сети потребует ручного обновления ARP-таблиц на всех хостах, в связи с чем для большинства крупных организаций использование статических ARP-таблиц является нецелесообразным. Но в ситуациях, когда безопасность имеет первостепенное значение, выделение отдельного сегмента сети для статических ARP-таблиц может помочь защитить критически важную информацию.
Всего лишь одна из многих угроз
Хотя технология отравления ARP появилась значительно раньше, чем многие современные вредоносные программы, такие как вирусы-вымогатели, ARP Poisoning по-прежнему представляет собой угрозу, с которой необходимо бороться. Как и в отношении всех других киберугроз, лучше всего это делать комплексно. Решения по обнаружению угроз и реагированию помогут получить представление об общем уровне безопасности вашей организации. А решения типа Varonis Edge позволят обнаружить признаки утечки данных после отравления ARP.
Протокол ARP предназначен для определения адресов канального уровня (MAC-адресов) по известным IP-адресам. Это очень важный протокол, его работа напрямую влияет на работоспособность сети в целом.
Какова цель отравления ARP?
Другой целью может быть значительное нарушение работы сети. Например, довольно часто DoS-атаки выполняются не очень опытными хакерами просто для получения удовольствия от созданных проблем.
Что такое ARP?
ARP предназначен для определения MAC-адреса по IP-адресу другого компьютера. ARP позволяет подключенным к сети устройствам запрашивать, какому устройству в настоящее время назначен конкретный IP-адрес. Устройства также могут сообщать об этом назначении остальной части сети без запроса. В целях эффективности устройства обычно кэшируют эти ответы и создают список текущих назначений MAC-IP.
Перехват сеанса
Перехват сеанса по своей природе похож на MiTM за исключением того, что злоумышленник не будет напрямую перенаправлять трафик с машины жертвы на целевое устройство. Вместо этого он захватывает подлинный порядковый номер TCP или файл cookie жертвы и использует его, чтобы выдавать себя за жертву. Так он может, к примеру, получить доступ к учетной записи данного пользователя в соцсети, если тот в нее вошел.
ARP и IPv6
В IPv6 больше не используется ARP. На его замену пришел NDP (The Neighbor Discovery Protocol). Этот протокол описан в RFC 1122.
Отказ в обслуживании (Denial of Service, DoS)
Функционирование протокола ARP в подсетях
Для передачи данных от одного узла другому отправитель должен знать IP- и MAC-адрес получателя. Если он не может получить искомый физический адрес из собственной ARP-таблицы, инициируется процесс, называемый ARPзапросом, ко торый проиллюстрирован на рис. выше.
ARP-запрос позволяет узлу определить MAC-адрес получателя. Узел создает фрейм ARP-запроса и рассылает его всем сетевым устройствам. Фрейм ARP-запроса состоит из двух частей:
После получения ARP-ответа устройство-отправитель широковещательного ARP-запроса извлекает MAC-адрес из поля аппаратного адреса отправителя и обновляет свою ARP-таблицу. Теперь это устройство может надлежащим образом адресовать пакеты, используя как MAC-, так и IP-адрес. Полученная информация используется для инкапсуляции данных на втором и третьем уровнях перед их отправкой по сети. Когда данные достигают пункта назначения, на канальном уровне проводится проверка на соответствие адреса, отбрасывается канальный заголовок, который содержит MAC-адреса, и данные передаются на сетевой уровень. На сетевом уровне проверяется соответствие собственного IP-адреса и IP-адреса получателя, содержащегося в заголовке третьего уровня. На сетевом уровне отбрасывается IP-заголовок, и инкапсулированные данные передаются на следующий уровень модели OSI — транспортный (уровень 4). Подобный процесс повторяется до тех пор, пока оставшиеся, частично распакованные, данные не достигнут приложения (уровень 7), в котором будет прочитана пользовательская часть данных.
ARP-spoofing
ARP-spoofing (ARP-poisoning) — это вид сетевой атаки в Ethernet-сетях в котором используются особенности работы протокола ARP. Суть механизма данной атаки заключается в следующем: перехватив широковещательный ARP-запрос в домене широковещательных рассылок, отправителю высылается ложный ARP-ответ, в котором атакующая сторона выдает себя за получателя (например, за маршрутизатор), а затем начинает контролировать весь трафик предназначенный для настоящего объекта в сети.
Противодействовать атакам такого рода можно отслеживая работу ARP (с помощью arpwatch) или шифруя передаваемый трафик на сетевом уровне (IPSec) и другими способами.
Сетевая изоляция
Хорошо сегментированная сеть может быть менее восприимчива к отравлению кэша ARP в целом, поскольку атака в одной подсети не влияет на устройства в другой. Концентрация важных ресурсов в выделенном сегменте сети с более строгими мерами безопасности может значительно снизить потенциальное влияние атаки ARP Poisoning.
ARP кэш
На каждом хосте содержится ARP кэш (ARP cache). Записи в эше могут быть двух видов: статические и динамические. В современных сетевых ОС (Windows, Linux, BSD) можно просмотреть эти записи в консоли с помощью команды:
Очистка ARP кэша
Иногда в Windows ARP кэш оказывается поврежденным (действие вирусов, например) и его нужно очистить. «Симптомы» этой проблемы могут быть распознаны в не возможности отображения веб-страниц (time out) и ping`а других компьютеров.
Чтобы очистить ARP кэш в Windows нужно в командной строке набрать:
C:>netsh interface ip delete arpcache
Ok.
Еще одна команда для очистки ARP-кэша:
Как обнаружить отравление кэша ARP
Существует множество платных программ и программ с открытым исходным кодом для обнаружения отравления кэша ARP, однако проверить ARP-таблицы на своем компьютере можно даже без установки специального ПО. В большинстве систем Windows, Mac и Linux ввод команды arp-a в терминале или командной строке отобразит текущие назначения IP-адресов и MAC-адресов машины.
Такие инструменты, как arpwatch и X-ARP, позволяют осуществлять непрерывный мониторинг сети и могут предупредить администратора о выявлении признаков отравления кэша ARP. Однако достаточно высока вероятность ложных срабатываний.
Как предотвратить отравление ARP
Cуществует несколько методов предотвращения отравления ARP:
Защита коммутатора
DAI и аналогичные функции когда-то были доступны исключительно для высокопроизводительного сетевого оборудования, но теперь они представлены практически на всех коммутаторах бизнес-класса, в том числе используемых в небольших компаниях. Обычно рекомендуется включать DAI на всех портах, кроме подключенных к другим коммутаторам. Эта функция не оказывает значительного влияния на производительность; при этом, вместе с ней может понадобиться включение других функций, например DHCP Snooping.
Включение защиты порта на коммутаторе также может помочь минимизировать последствия отравления кэша ARP. Защиту порта можно настроить таким образом, чтобы разрешить использование только одного MAC-адреса на порте коммутатора, что лишает злоумышленника возможности применять несколько сетевых идентификаторов.
Назначение протокола ARP
Для взаимодействия устройств друг с другом необходимо, чтобы у передающего устройства был IP- и MAC-адреса получателя. Когда одно из устройств пытается установить связь с другим, с известным IP-адресом, ему необходимо определить MAC-адрес получателя. Набор протоколов TCP/IP имеет в своем составе специальный протокол, называемый ARP (Address Resolution Protocol — протокол преобразования адресов), который позволяет автоматически получить MAC-адрес. На рис. ниже проиллюстрирован процесс, позволяющий определить MAC-адрес, связанный с известным IP-адресом.
Получение MAC-адреса по известному IP-адресу
Некоторые устройства хранят специальные ARP-таблицы, в которых содержится информация о MAC- и IP-адресах других устройств, подключенных к той же локальной сети. ARP-таблицы позволяют установить однозначное соответствие между IP- и MAC-адресами. Такие таблицы хранятся в определенных областях оперативной памяти и обслуживаются автоматически на каждом из сетевых устройств (см. таблицы ниже). В редких случаях приходится создавать ARP-таблицы вручную. Обратите внимание, что каждый компьютер в сети поддерживает свою собственную ARP-таблицу.
Запись в ARP таблице
ARP-таблица для адреса 198.150.11.36
Куда бы не передавались сетевым устройством данные, для их пересылки всегда используется информация, хранящаяся в ARPтаблице (рис. ниже: одно из устройств хочет передать данные другому устройству).
Шифрование
Хотя шифрование не предотвращает ARP-атаку, оно может снизить потенциальный ущерб. Раньше популярной целью атак MiTM было получение учетных данных для входа в систему, которые когда-то передавались в виде обычного текста. Благодаря распространению шифрования SSL/TLS совершать такие атаки стало сложнее.
Последствия атак ARP Poisoning
Основной эффект отравления ARP заключается в том, что трафик, предназначенный для одного или нескольких хостов в локальной сети, вместо этого направляется на устройство, выбранное злоумышленником. Конкретные последствия атаки зависят от ее специфики. Трафик может направляться на машину злоумышленника или в несуществующее место. В первом случае заметного эффекта может не быть, в то время как во втором может быть заблокирован доступ к сети.
Само по себе отравление кэша ARP не оказывает длительного воздействия. Записи ARP кэшируются от нескольких минут на конечных устройствах до нескольких часов на коммутаторах. Как только злоумышленник перестает активно заражать таблицы, поврежденные записи просто устаревают, и вскоре возобновляется нормальный поток трафика. Само по себе отравление ARP не оставляет постоянной инфекции или «точек опоры» на машинах-жертвах. Однако нередко хакеры совершают ряд атак по цепочке, и отравление ARP может быть элементом более масштабной атаки.
Атаки Man-in-the-Middle
Физическая защита
Читайте также: