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

Подмена МАС адреса

В соответствии с иерархической моделью OSI канальный уровень отвечает за установление надежных соединений «точка‑точка» и обеспечение безошибочной передачи данных. Для идентификации узлов здесь используются МАС адреса, а основными устройствами, работающими на этом уровне являются коммутаторы.

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

Или просто получить физический доступ к сетевой розетке непосредственно на территории организации. Однако не стоит пренебрегать безопасностью на канальном уровне, так как это может привести к неприятным последствиям.

Даже если у вас на коммутаторах используется фильтрация по МАС адресам, для хакеров это не будет большой проблемой. Злоумышленники могут манипулировать MAC‑адресом своего сетевого интерфейса, чтобы выдать себя за законное устройство в сети. Здесь стоит сразу оговориться, что не для любой сетевой карты можно сменить МАС адрес. Некоторым сетевым картам адрес назначается производителем и сменить его без перепрошивки микросхем сетевого адаптера невозможно.

Но не стоит на это рассчитывать. Боль��инство внешних сетевых карт, например переходники USB/Ethernet позволяют менять МАС адреса.

Так что, злоумышленнику достаточно лишь узнать, какой МАС адрес разрешен на той или иной сетевой розетке для того, чтобы затем его подменить. Например, с помощью утилиты macchanger из состава Kali Linux:

sudo macchanger --mac=XX:XX:XX:XX:XX:XX eth1

Здесь XX:XX:XX:XX:XX:XX — MAC, на который нужно сменить.

Кстати, для того, чтобы узнать какие МАС адреса разрешены на розетках совершенно необязательно слушать трафик. На многих устройствах их адреса указаны прямо на корпусе.

И злоумышленнику при наличии физического доступа достаточно лишь найти соответствующую наклейку на корпусе устройства.

Итак, наш хакер сумел обойти фильтрацию по МАС адресам на порту коммутатора и получил доступ в сеть. Посмотрим, что он может сделать.

“Любимый” ARP-Spoofing

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

На рисунке ниже узел 192.168.0.2 хочет узнать МАС адрес узла 192.168.0.12. Для этого рассылается широковещательный запрос для получения ответа от соответствующей машины.

В результате на каждом компьютере формируется ARP таблица, в которой зафиксированы соответствия МАС и IP адресов.

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

Для реализации атаки необходимо прежде всего разрешить на машине атакующего пересылку пакетов с помощью команды:


echo 1 > /proc/sys/net/ipv4/ip_forward

Далее отравляем ARP таблицы обоих участников сетевого обмена с помощью утилиты arpspoof:

arpspoof -i eth0 -t [ip шлюза жертвы] -r [ip атакуемого пользователя]

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

Также, многие современные коммутаторы поддерживают функции защиты от ARP‑спуфинга, например Dynamic ARP Inspection (DAI). Эти технологии проверяют ARP‑пакеты и блокируют поддельные ARP‑ответы.

Поддельный транк

Технология VLAN (Virtual Local Area Network) позволяет разделить одну физическую сеть на несколько логических сегментов. Это помогает изолировать трафик различных подразделений или групп в организации. Например, можно создать отдельные VLAN для отделов HR, PR и аналитики. Также, с помощью VLAN можно уменьшить широковещательный трафик так как широковещательные пакеты распространяются только в пределах одной VLAN.

Однако, злоумышленники могут попытаться обойти сегментацию VLAN. Например, узел хакера может попытаться сам представиться коммутатором и отправить специально сформированный Data Trunking Protocol фрейм. В результате настоящий коммутатор будет думать что общается с другими коммутатором и начнет пересылать ему трафик изо всех VLAN в режиме транка.

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

Протокол Spanning Tree

Протокол связующего дерева (STP) отвечает за предотвращение зацикливаний в коммутируемых сетях. Для построения сетевой топологии этот протокол производит выбор корневого коммутатора, через который затем идет весь трафик. Выбор основывается на МАС адресах сетевых интерфейсов коммутаторов.

Злоумышленник может также представиться коммутатором и отправить поддельный BPDU фрейм с МАС меньшим адресом, чем у других участников сетевой топологии. В результате узел злоумышленника будет выбран корневым и весь трафик пойдет через него.

Для защиты мы можем жестко, с помощью приоритетов указать тот коммутатор, который будет использоваться в качестве корневого. Также современные коммутаторы имеют механизмы Root Guard и BPDU Guard позволяющие защититься от подмены корневого коммутатора. Данные режимы необходимо включить на тех портах, за которыми нет и не может быть коммутаторов.

Ну и не забываем про атаки типа «отказ в обслуживании» (DoS). Злоумышленник может периодически отправлять в сеть BPDU фреймы, имеющие меньшие МАС адреса, чем у текущего корневого коммутатора. В результате в STP начинаются выборы нового корневого коммутатора, на время которых сеть будет недоступна. Когда выборы закончатся, атакующий на время отключит свой интерфейс, в результате свежевыбранный root исчезнет из сети и выборы начнутся заново. Далее злоумышленник снова повторит свои действия и сеть продолжит быть недоступна.

И DHCP…

Протокол DHCP используется в сети для выдачи IP адресов и сетевых параметров, включая шлюз по умолчанию и DNS серверы. Злоумышленник может вывести из строя легальные DHCP серверы просто отправив на них большое количество запросов с разных МАС адресов.

В результате, когда ресурсы легального сервера будут исчерпаны, он запустит свой DHCP сервер, который будет раздавать те сетевые настройки, которые позволят атакующему направить трафик через подконтрольное устройство.

Защититься от атак на DHCP можно с помощью защитных механизмов, используемых на коммутаторах. Так DHCP Snooping не позволяет поддельному DHCP серверу ответить на запрос от клиента.

Для реализации представленных атак достаточно воспользоваться инструментами, входящими в состав Kali Linux. Так утилита Yersinia позволяет создавать поддельные фреймы канального уровня для представленных сценариев.

Заключение

Для предотвращения атак на канальном уровне администраторам прежде всего необходимо знать свою сеть. То есть важно понимать за какими портами коммутатора могут быть другие коммутаторы или серверы, а за какими находятся только пользовательские узлы.

Помимо встроенных на коммутаторах защитных механизмов о которых мы уже упоминали в статье, используйте также различные средства мониторинга, например для обнаружения ARP спуфинга или DoS.

Используйте защищенные протоколы канального уровня, такие как IEEE 802.1X для аутентификации на основе портов. Примените лучшие методы настройки VLAN, такие как использование списков контроля доступа к VLAN (VACL).

Регулярно обновляйте встроенное ПО и программное обеспечение сетевых устройств для устранения любых известных уязвимостей в протоколах канального уровня передачи данных.

И не забывайте об использовании шифровании для протоколов прикладного уровня, которые работают в вашей сети. Тогда реализация многих из представленных атак станет просто бесполезной.


В продолжение темы безопасности инфраструктуры, рассмотренной в нашей статье, приглашаем вас на курс «Внедрение и работа в DevSecOps», где вы сможете систематизировать и углубить свои знания в области защиты современных технологических стеков. Чтобы узнать, подойдет ли вам программа курса, пройдите вступительный тест.

Также приглашаем вас на открытые уроки:

  • «Безопасность k8s: актеры и роли» — 13 ноября в 20:00. Записаться

  • «SAST, их много, почему столько, а сколько нужно нам? А главное какие?» — 20 ноября в 20:00. Записаться

Рост в IT быстрее с Подпиской — дает доступ к 3-м курсам в месяц по цене одного. Подробнее

Комментарии (0)