Атаки канального уровня

Атаки канального уровня — атаки на протоколы второго уровня модели OSI, называемого также канальным уровнем.

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

Задача активного атакующего — получить доступ к определённым ресурсам или нарушить нормальную работу сети (отказ в обслуживании). Можно считать, что злоумышленник находится в локальной сети или использует посредника для проведения атак. Обычно выполняются несколько атак вместе; успех одной может являться подготовкой базы для успешного проведения следующей.

В зависимости от результата успешной атаки, можно выделить несколько типов угроз:
 Спуфинг с целью прозрачного перехвата информации;
 Отказ в обслуживании какого-то ресурса системы;
 Несанкционированный доступ к участкам сети;
 Нарушение правильной работы сети или её участков.

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

Статистика атак 
Согласно докладу компании Qrator за 2015 год большинство современных сетевых атак совмещают в себе атаки на канальный и прикладной уровни. Компания Arbor Networks в своём ежегодном докладе за 2016 год отмечает рост DDoS атак такого рода на 14 % от общего количества DDoS атак, с 42 % до 56 %. Несмотря на то, что нападения извне исключительно на канальный уровень утратили свою актуальность, они продолжают быть ключевой составляющей большинства сетевых атак. Также необходимо учитывать, что значительная часть внутренних нападений основана именно на атаках на протоколы канального уровня.

Атаки против коммутатора 

Коммутаторы для своей работы постоянно используют таблицу MAC адресов, называемую также мостовой таблицей. Это улучшение по сравнению с функционированием концентраторов позволяет снизить объём широковещательного трафика в сети. Однако мостовая таблица не является бесконечной. Один из видов атак направлен на переполнение таблицы MAC-адресов, что приводит к снижению скорости передачи пользовательского трафика вплоть до полной неработоспособности сети.

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

Атака на дерево STP 

Классический протокол остовного дерева использует ряд таймеров для обеспечения своей работы, что приводит к некоторой задержке (порядка 40 сек) начала передачи пользовательского трафика. Поскольку построенная топология является деревом, в ней существует корневой коммутатор, через который проходит весь трафик. Всё вместе является узким местом не только в смысле быстрого и правильного функционирования сети, но также и с точки зрения её безопасности.

Пусть изначально в сети было два коммутатора: Root, корневой, и Switch1. Затем злоумышленник подключил контролируемый им коммутатор Rogue, настроенный так, чтобы стать корневым узлом дерева STP.

 Теперь весь легитимный трафик может быть перехвачен атакующим, что является реализацией атаки «человек посередине».
 Появилась возможность вывести всю сеть из строя, периодически включая/выключая Rogue коммутатор. С точки зрения его соседей будет происходить изменение топологии, то есть возникнет необходимость в запуске STP, хотя никакого «реального» изменения сети не происходит. Вследствие инерционности протокола, сеть станет недоступной для пользовательского трафика на некоторое время, что означает успешность атаки на нарушение правильной работы.

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

Подмена MAC адреса 

Подмена MAC-адресов является одной из самых простых атак. Помимо реализации «человек посередине», она позволяет также вывести из строя сеть посредством нарушения связности, что может привести к отказу в обслуживании для ряда клиентов.

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

Подмена DHCP сервера 

Несмотря на то, что DHCP является протоколом прикладного уровня модели OSI, основная его работа сосредоточена на канальном уровне. Это означает, что возникновение проблем с его функционированием будет иметь последствия на одном из самых базовых уровней сети.

Первое сообщение DHCP Discover от клиента Host является широковещательным, то есть его получат все пользователи сети, в том числе сервер DHCP_server и злоумышленник Rogue. Они отправят свои ответы DHCP Offer клиенту, из которых он должен выбрать то, что его «устроит». По умолчанию в большинстве систем клиент выбирает первое пришедшее предложение, игнорируя остальные. Таким образом, открывается брешь: если ответ от Rogue придёт раньше, атака окажется успешной. Сервер может быть физически более удалён от клиента, чем злоумышленник, а также быть менее быстрым, поэтому вероятность успешной реализации атаки довольно высока.

Последствия:
 Злоумышленник может в своём ответе клиенту указать неправильные данные о сети, что приведёт к невозможности его дальнейшей работы, то есть будет реализован отказ в обслуживании.
 В большинстве случаев протокол DHCP предоставляет клиенту информацию о шлюзе по умолчанию. Таким образом, злоумышленник имеет возможность указать себя в качестве шлюза, что является реализацией атаки «человек посередине» на сетевом уровне.
Одно из решений — функция коммутатора, называемая DHCP Snooping, заключающаяся в следующем:
 Все порты коммутатора делятся на доверенные (trusted), к которым подключены DHCP сервера, и ненадёжные (untrusted);
 Сообщения, отправляемые DHCP серверами (DHCP Offer, Ack, Nack, LeaseQuery) и приходящие на ненадёжные порты, отбрасываются;
 Сообщения DHCP, приходящие на ненадёжные порты, которые содержат MAC-адрес, несовпадающий с MAC-адресом отправителя, отбрасываются;
 Сообщения DHCP, приходящие на ненадёжный порт и содержащие опцию 82, отбрасываются;
 Сообщения DHCP Discover рассылаются только по доверенным портам.

Атака на ARP 

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

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

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

Атака на VLAN 
Для передачи трафика разных VLAN между коммутаторами обычно используются магистральные каналы, или trunk каналы, при прохождении через которые фреймы определённым образом маркируются. Самым распространённым протоколом маркировки для магистрального канала является 802.1q. Он использует понятие native VLAN, кадры которого не тегируются. При неправильной настройке коммутатора злоумышленник может получить возможность пересылать трафик в другие VLAN, заранее маркируя кадры, что в общем случае не является ожидаемым поведением сети.

Рассмотрим топологию, изображённую на рисунке. Пусть native VLAN имеет номер 1 (по умолчанию). Router выполняет роль Router on a stick для всей сети, в том числе числе разграничивает доступ одних VLAN к другим. Пусть VLAN10 может пересылать информацию в любую другую VLAN, но обратный поток запрещён. Пусть Host — легитимный пользователь, а Rogue — злоумышленник. Пусть атакующий отсылает кадр, маркированный как принадлежащий VLAN10. Коммутатор SW1, получив фрейм с порта, принадлежащего native VLAN, не маркирует его, а пересылает дальше через trunk. Однако коммутатор SW2 на другом конце, получив кадр, замечает, что он маркирован, выясняет, какой VLAN он принадлежит, убирает маркировку и пересылает кадр далее во VLAN10. Как видно на рисунке, кадры злоумышленника выглядят так же, как и кадры легитимного пользователя для SW2. Таким образом, атакующий смог обойти ограничения, обеспечиваемые маршрутизатором Router, и переслать информацию напрямую между разными VLAN.

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

См. также 
 IP-спуфинг
 Широковещательный шторм
 MAC-flooding
 MAC-spoofing

Источники

Ссылки 
xgu.ru

Атаки и эксплойты
Информационная безопасность