Защита коммутатора на канальном уровне
Обеспечение безопасности канального уровня средствами коммутаторов Cisco
Локалка стала доставлять много хлопот? Пользователи получают левые айпишники по DHCP? Красноглазые пионеры балуются спуфингом? Всю сеть время от времени штормит? Пора изучать матчасть и настраивать фирменный коммутатор!
Как ни банально звучит, но канальный уровень — это краеугольный камень безопасности компьютерной сети. Принципы работы коммутаторов Ethernet, а также протоколы ARP и DHCP, использующие широковещательные рассылки, разработаны много лет назад. В основе этих подходов — доверие участников сетевых взаимодействий друг к другу, что в сегодняшних реалиях неприемлемо. Атаковать узлы и/или нарушить работоспособность локальной сети, построенной на основе неуправляемых свитчей, — проще простого.
Сегментация сети как метод защиты снимает часть проблем, но порождает другие угрозы. Классикой уже успели стать различные техники, применяемые против виртуальных локальных сетей (VLAN): VLAN-hopping, нелегальный Q-in-Q и подобные. Служебные протоколы (STP, CDP, DTP) также успешно эксплуатируются для получения информации о сети и реализации некоторых видов атак.
Как же противостоять угрозам канального уровня? Это сложный вопрос. Но очевидно, что первый рубеж защиты приходится на уровень доступа к сетевой инфраструктуре. А основной инструмент борьбы со злом — управляемый коммутатор.
Для простейшей проверки того, насколько безопасна локальная сеть, достаточно… патчкорда. Им необходимо соединить две ближайшие розетки Ethernet. Если защита не совсем хороша, то созданная таким нехитрым способом петля вызовет лавинный рост широковещательного трафика. Пропускная способность сети резко упадет, а то и вовсе ее работа будет парализована.
Между тем коммутаторы Cisco позволяют эффективно контролировать широковещательный (broadcast), многоадресный (multicast) или одноадресный (unicast) трафик. Например, используя консоль, настроим устройство для борьбы с широковещательным штормом. Сначала войдем в режим конфигурирования:
Потом переключимся в режим конфигурирования интерфейса (например, gigabite ethernet 0/1) и введем две команды:
Первая команда устанавливает максимальный уровень широковещательного трафика в 20 процентов от полосы пропускания. Порог можно устанавливать не только в процентах, но и в битах в секунду (bps).
Чтобы в этом примере коммутатор автоматически восстанавливал порт, скажем, через 5 минут (равно 300 секунд) после отключения, нужно в глобальной конфигурации дать такие команды:
Можно в broadcast level указать два порога. Тогда при достижении первого порт будет отключаться, при падении broadcast-трафика до уровня второго — включаться:
У коммутаторов Cisco есть веб-интерфейс
Не консолью единой сильна Cisco
Использование интерфейса командной строки для управления коммутатором — чаще дело привычки, чем необходимость. Большинство рутинных операций в небольшой сети можно автоматизировать с помощью бесплатной фирменной утилиты Network Assistant (CNA, bit.ly/rrPPx). Она доступна для Windows и OS X. Максимальное количество управляемых устройств (коммутаторов, маршрутизаторов, беспроводных точек доступа) — 40. Ее интуитивный графический интерфейс позволяет решать основные задачи настройки, инвентаризации, оповещения о событиях, управления файлами и программным обеспечением оборудования.
Еще одним средством борьбы с петлями в сети является протокол STP. Кроме того, STP позволяет обеспечить дублирование линий передачи и, соответственно, отказоустойчивость. Все это хорошо, но излишняя толерантность конфигурации коммутатора приводит к плачевным последствиям: злоумышленник может манипулировать приоритетами с помощью параметров BPDU-пакетов.
Чтобы пресечь это зло на корню, делаем следующее. Во-первых, чтобы все работало быстрее, устанавливаем режим portfast на портах, к которым подключены рабочие станции:
И в глобальной конфигурации настраиваем portfast-порты так, чтобы при появлении BPDU-пакета порт отключался (там их не должно быть в принципе):
Во-вторых, защищаем Root Bridge. Для этого на магистральном интерфейсе выполняем команду:
Защищаем консоль коммутатора
Для ограничения доступа к администрированию сетевые интерфейсы устройств можно разместить в отдельном VLAN, «отгороженном» от остальной сети межсетевым экраном. В коммутаторах Cisco управляющий VLAN задается установкой IP-адреса на соответствующий VLAN-интерфейс.
Туда-сюда-туда
В консоли для выполнения команды show часто приходится выходить из режима конфигурирования, а потом снова набирать «conf t» и так далее. Чтобы сэкономить время, используй do, например: «do show ip route».
Использование в большой (или плохо контролируемой) сети DHCP-сервера для настройки протокола IP на узлах — это постоянный источник проблем для системного администратора. По иронии часто эти проблемы связаны не со злоумышленной активностью, а с деятельностью нерадивых пользователей. Почти классический пример — самовольное подключение к сети устройства с включенным DHCP-сервером, который наперегонки с легитимным сервером начинает раздавать IP-адреса рабочим станциям. Чей DHCP-ответ дойдет до клиента, того и адрес он себе поставит.
Функция коммутатора, которая предназначена для защиты от DHCP-атак, называется DHCP snooping. Ее основу составляет классификация всех портов на доверенные (trust) и ненадежные (untrust). Принципиальная разница в том, что с первых транслируются ответы DHCP-сервера, а со вторых — нет.
Итак, большую часть вопросов можно снять, включив DHCP snooping на коммутаторе и объявив доверенным тот порт, к которому подключен DHCP-сервер. Для этого нужно в режиме глобальной конфигурации выполнить следующие команды (вторая команда указывает, для каких VLAN включается опция защиты DHCP):
А в настройках порта, к которому подключен DHCP-сервер, указать:
Ненадежные порты настраивать не надо: они таковыми считаются по умолчанию.
Пусть есть коммутатор Cisco 2960, на борту которого 48 портов FastEthernet. К портам подключены розетки. Требуется реализовать политику, согласно которой к розетке можно подключить только один компьютер, создав препятствие к стихийному возникновению сетей на основе нелегальных SOHO-коммутаторов, а также пресечь попытки MAC-флудинга свитча.
В документации сказано, что технология Port Security позволяет регулировать входной трафик устройства Cisco путем ограничения (и идентификации) активных MAC-адресов на порту. А это, по сути, и требуется в данном случае.
Конечно, ограничение количества MAC-адресов — мера условная, и ее можно обойти, например с помощью SOHO-роутера с настроенной трансляцией сетевых адресов. Но во-первых, мы рассматриваем проблему в разрезе канального уровня. Во-вторых, SOHO-роутер дороже SOHO-коммутатора. А в-третьих, от попыток флудинга Port Security таки защищает.
В режиме конфигурирования укажем диапазон настраиваемых портов:
И непосредственно настройка портов (они уже находятся в access mode):
Первая строка — включаем Port Security. Вторая — определяем действие при нарушении политики безопасности. Третья задает количество разрешенных на порту MAC’ов (по умолчанию 1). Четвертая включает добавление обнаруженных на порту MAС’ов в running-config (если сохранить в startup-config, то будет действительно и после перезагрузки).
Режим protect — самый «гуманный» из возможных способов реакции на превышение допустимого количества MAC’ов. Трафик maximum адресов, «засветившихся» раньше других на этом порту, будет разрешен. Кадры от «лишних» источников будут отбрасываться. Режим restrict — то же, что и protect, но отправляется SNMP-трап, и делается запись в syslog (а еще счетчик инцидентов тикает).
Есть еще режим shutdown (по умолчанию) — если количество MAC’ов больше maximum, то порт отключается (error-disabled). Здесь опять будет полезным настроить автоматическое включения порта через заданное время после инцидента (errdisable recovery cause psecure-violation), чтобы каждый раз не писать «no shutdown» вручную.
С помощью Port Security можно создавать что-то вроде ACL канального уровня. Пусть, например, требуется разрешить доступ к порту только данным трем компьютерам. Решение заключается в выставлении maximum в 3 и указании всех трех MAC-адресов с помощью параметра mac-address:
Настройка Port Security на интерфейсе в CNA
В старых коммутаторах 2950 работа с листами контроля доступа (IP и MAC) была возможна только на улучшенных версиях прошивок. У свитчей 2960 эта опция стала частью базового ПО (LAN Base). На этих устройствах на физические интерфейсы можно добавлять следующие виды входящих (in) ACL:
- Стандартные IP ACL на основе IP-адреса источника (номера 1–99 и 1300–1999).
- Расширенные IP ACL на основе IP-адресов источника и получателя, а также опционально на типе протокола (100–199 и 2000–2699).
- Расширенные MAC ACL на основе MAC-адресов источника и получателя, а также опционально на типе протокола.
Если номеров будет мало, можно использовать символьные имена (MAC-списки у 2960 только именованные).
В работе с ACL два этапа: создание списка в режиме глобальной конфигурации и применение списка с данным номером (именем) к интерфейсу. Так, для привязки IP-адреса к интерфейсу сначала создадим ACL номер 5 с одной записью:
Действие по умолчанию в списке — запрет всего (deny any). Поэтому явно его указывать нет необходимости.
А затем применим ACL к интерфейсу, на котором «висит» 5-й адрес:
Для обозначения диапазона адресов в ACL у Cisco используется инверсная маска (wildcard mask). После ключевого слова eq в ACL для протокола TCP можно указать порт назначения. Например, запрещаем доступ из «первой» подсети в «нулевую» по протоколу Telnet:
С помощью именованных MAC ACL можно фильтровать не-IP-трафик (в том числе и на основе физических адресов). Например, так выглядит лист контроля доступа, запрещающий протокол netbios:
Чтобы применить его на интерфейсе:
Управление широковещательными штормами в CNA Создание ACL в CNA
Персонифицированный доступ к ресурсам сети является трендом, который сложно игнорировать. Во-первых, в Лету канули те времена, когда рабочие места сотрудников были стационарными и можно было легко идентифицировать конкретного пользователя по IP- или MAC-адресу сетевой карты его компьютера. С распространением мобильных систем отслеживать эти технические характеристики стало накладно. Впрочем, концепция BYOD (Bring Your Own Device) для проводных сетей не успела принять таких угрожающих масштабов, так как беспроводные гаджеты быстро вытесняют устройства с Ethernet-адаптерами.
Во-вторых, более сложные схемы идентификации (сертификаты, логины и пароли) предпочтительнее в плане безопасности, чем IP- или MAC-адреса, манипулировать которыми не составляет никакого труда.
Собрать стенд для тестирования 802.1X несложно. Во-первых, нужен RADIUS-сервер. Он будет обрабатывать запросы на аутентификацию, поступающие от коммутатора с поддержкой 802.1X (это во-вторых). В-третьих — клиент 802.1X на рабочей станции, который сможет передать необходимые параметры коммутатору. В этой схеме свитч выступает как посредник между RADIUS-сервером и рабочей станцией в процессе аутентификации, а также обеспечивает контроль доступа к порту и непосредственно авторизацию.
Настройки 802.1X на коммутаторе зависят от версии iOS. В глобальной конфигурации нужно настроить RADIUS-сервер, модели аутентификации/авторизации и активировать dot1X. Примерно так:
Далее нужно включить 802.1X в настройках соответствующих портов:
Можно также поиграться с VLAN’ами. Для порта dot1X можно установить пользовательский VLAN. В него рабочая станция помещается после успешной аутентификации. Он прописан в настройках порта, как обычно:
Есть также гостевой VLAN. В него помещаются клиенты, не поддерживающие 802.1X:
А еще есть Restricted VLAN. Туда попадает клиент, не прошедший аутентификацию:
При практическом внедрении 802.1X в корпоративную сеть придется учесть множество моментов: выбор программного обеспечения для аутентификации, настройка протокола IP на рабочих станциях, различные сценарии работы пользователей в сети, согласование групповых политик и так далее. В общем, это тема для отдельного разговора.
Разделяй и властвуй
Используя TFTP, в устройство можно заливать конфиг не только целиком, но и частями (настройки интерфейсов, ACL и прочее). Разложи эти куски по отдельным файлам и добавь в начале каждого команду no (no interface. no access-list. ), чтобы предварительно удалить старый фрагмент конфигурации.
Хороший коммутатор может дать немало для безопасности локальной сети. Еще больше может сделать хороший специалист, который сумеет настроить этот коммутатор.
VLAN Hopping по умолчанию
Одна из особенностей конфигурации по умолчанию у коммутаторов Cisco состоит в том, что на всех портах включен протокол DTP (switchport mode dynamic desirable). Он позволяет автоматически устанавливать тегированное транковое соединение, если вторая сторона его поддерживает. Это, конечно, удобно, но если на том конце патчкорда окажется злоумышленник — ему не составит труда «вытянуть» доступные VLAN’ы локальной сети. Поэтому для устройств, доставаемых из коробки, лучше сразу выключить все неиспользуемые порты (shutdown) или принудительно установить режим доступа (switchport mode access) для них. В последнем случае желательно назначать таким портам какой-нибудь незадействованный (гостевой) VLAN (switchport access vlan 13) или считать VLAN 1 гостевым.
Режем VLAN’ы
В настройках транка (switchport mode trunk) можно указать, какие VLAN’ы на нем запрещены/разрешены. Например, чтобы разрешить только заданные сети: «switchport trunk allowed vlan 2,999». Чтобы запретить: «switchport trunk pruning vlan 5».
Данная статья не является руководством для кулхацкеров. Все ниже написанное является частью изучения курса 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-таблицу.
Далее запускаем 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
Смотрим, что получилось
И посмотрим, что появилось в таблице соответствия
— — — — — — 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.
Оба хоста и шлюз находятся в vlan 1. В DAI для портов коммутатора есть две настройки: Trusted и Untrusted. По-умолчанию, все порты коммутатора
Untrusted, то есть ненадежные. Порт, который идет к шлюзу или порт, в который включен транком еще один коммутатор можно сделать Trusted, тогда ARP-запросы приходящие через него будут считаться надежными.
Теперь повторим атаку с самого начала. Пробуем делать 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
Данная опция позволяет восстановить порт и состояния errdisabled через 300 секунд. Если конечно несоответствие MAC-IP будет на этом порту продолжаться, то порт восстановлен не будет.
Здравствуй, читатель, сегодня обсудим атаки на один из уровней модели OSI – канальный уровень. Надеюсь, ты знаешь хотя бы немного о том, что такое OSI? Если не врубаешься совсем, тогда почему ты всё ещё здесь? Не медли, мужик, узнай о этом всё. Ну ладно, от слов к делу приступаем, но только с ведающими.
Дисклеймер
Вся информация, описываемая далее, не побуждает к действию и несёт исключительно информативный характер! Используйте добытые знания с умом.
Наш план:
- О первых двух уровнях модели OSI
- Переполнение CAM таблицы: просто и со вкусом
- VLAN Hopping
- Вооружившись топором, рубим STP дерево
- Подделка MAC-адреса
- Нападаем на DHCP
- Проникаем в PVLAN
- Arp spoofing и с чем его едят
Про первые два уровня модели OSI
Почему нет статьи про физический уровень?
Как по мне не обязательно писать об этом. Или я не прав?
На физическом уровне у нас работает концентратор (hub). Эта вещь получает пакет на один порт и отправляет его на все остальные. Все в сети получат этот пакет - никакой приватности, банально включите wireshark и просматривайте трафик!
И зачем нам тогда этот концентратор? Выкинем его?
Не стоит, он не пригоден в локальных сетях, но для отказоустойчивых сетях это сетевое устройство как нельзя кстати. Узлам кластера нужно всегда общаются друг с другом, а именно говорить
(I'm alive). Концентратор не составляет CAM таблиц и шлёт пакеты напрямую. В тех случаях, если один из узлов сети "умер", другой узнает о "смерти" первого.
Коммутатор (Switch) трудится на канальном уровне. Эта вещь умнее концентратора, поэтому отсылает пакеты не на все порты, а только на тот к которому подключен получатель этого пакета. Также коммутатор составляет CAM таблицы, а у них уже есть срок жизни. Если один из узлов "умрёт", то об этом узнают позднее, в отличии от концентратора.
Переполнение CAM таблицы
В CAM таблицах храниться информация о том, какие MAC-адреса к каком портам привязаны. Таблицы имеют ограничения, если мы переполним таблицу - коммутатор станет концентратором.
Утилита macof в помощь нам, установим и рассмотрим простой пример использования:
Переполним CAM таблицу коммутатора случайными MAC-адресами, предназначенными для 192.168.0.1:
Это всё равно, если мы сменим mac-адресс утилитой macchanger, перезагрузим интерфейс, затем подключимся к коммутатору, который добавит новый mac в таблицу, затем всё по новой.
Один из способов - ограничить количество подключаемых mac-адресов к порту. Рассматривать дальше всё будем на примере коммутаторов cisco, у которого есть 24 порта. Задача такова: чтобы только два mac-адреса могли подключиться к одному порту.
Подключимя к коммутатору с помощью консоли или удалённо. Вводим:
Всезнающая википедия расскажет нам о VLAN и DTP
VLAN (Virtual Local Area Network, виртуальная локальная сеть) — это функция в роутерах и коммутаторах, позволяющая на одном физическом сетевом интерфейсе (Ethernet, Wi-Fi интерфейсе) создать несколько виртуальных локальных сетей.
DTP (англ. dynamic trunking protocol — динамический протокол транкинга) — проприетарный сетевой протокол канального уровня, разработанный компанией Cisco для реализации транкинговой системы для связи в сети VLAN между двумя сетевыми коммутаторами и для реализации инкапсуляции.
Рекомендую для лучшего пониманию ознакомиться со
введение
Опасность проблем в безопасности на канальном уровне заключается в том, что взломав сеть на канальном уровне, атакующий может перешагнуть через средства защиты на более высоких уровнях. Например, в сети настроены ACL на сетевых устройствах или файрвол для разграничения доступа пользователей к ресурсам в сети. Но, выполняя подмену IP-адреса в пакете, атакующий свободно проходит через настроенные правила, поскольку выглядит как легитимный пользователь.
Как правило, атаки выполняются в комплексе, а не по одной. Удачное выполнение атаки может быть не целью, а средством получить что-то большее. Например, атака ARP -spoofing позволяет атакующему перехватывать весь трафик между интересующим ресурсом и каким-то пользователем (или подменять его). Однако выполнить эту атаку можно только в пределах широковещательного сегмента сети. Если в сети присутствует коммутатор Cisco с настройками по умолчанию, то можно поднять тегированный канал между компьютером атакующего и коммутатором и получить таким образом доступ к другим широковещательным сегментам сети. В таком случае выполнить ARP -spoofing можно в каждом из доступных сегментов.
атаки на канальном уровне сети
В зависимости от результата, который будет получен, атаки можно разделить на следующие типы (выделенные типы атак не охватывают все возможные атаки):
- Человек посередине (Man in the middle, MitM) — атакующий находится между двумя жертвами и либо прослушивает трафик, который передается между ними, либо перехватывает его и подменяет. При этом для жертв никаких видимых признаков атаки нет;
- Отказ в обслуживании (DoS) — атака на какой-то ресурс системы с целью довести его до отказа. На канальном уровне есть ряд атак, которые позволяют получить односторонний доступ к какому-то участку сети. Этого как раз достаточно для такого вида атаки;
- Несанкционированный доступ к сети или участкам сети — использование каких-то недостатков в протоколах позволяет получить доступ к тем участкам сети, которые теоретически должны быть недоступны. Возможно также выполнение других типов атак в этих участках сети;
- Нарушение работы сети или её участков — некоторые недостатки протоколов канального уровня не могут использоваться предсказуемым образом. То есть, нет возможности как-то преднамерено повлиять на их поведение, но есть возможность нарушить их нормальную работу и таким образом нарушить работу участка сети или всей сети.
Не все протоколы, которые будут рассматриваться далее, относятся к канальному уровню. Однако именно особенности работы этих протоколов на канальном уровне создают возможности для манипуляций. Поэтому часто соответствующие атаки и средства защиты относят к канальному уровню сети.
Распространенные атаки канального уровня:
тестирование безопасности сетевых протоколов с помощью различных сетевых утилит
Существует множество различных утилит, которые позволяют выполнять атаки на сеть. Некоторые позволяют моделировать только определенные атаки, другие — генерировать любой пакет.
Рассмотрим такие аспекты использования сетевых утилит, как тестирование функций и средств безопасности и тестирование уязвимостей настроек сетевых устройств и хостов.
Как правило, когда функция безопасности применяется одна, то редко возникают какие-то проблемы. Достаточно просто настроить её и проверить корректность работы. Гораздо сложнее настроить согласованную работу нескольких средств защиты, оставив при этом сеть работоспособной.
После настройки функций безопасности обязательно необходимо проверить корректность её работы. Во-первых, потому что бывают случаи, когда функция работает не совсем так, как было заявлено производителем или не совсем так как хотелось бы. Во-вторых, потому что функции влияют друг на друга, и добавление новой функции может привести к изменениям в поведении другой функции.
Помимо тестирования функций безопасности утилиты могут использоваться для проверки уязвимости некоторых настроек сетевых устройств и хостов. Например, на многих коммутаторах Cisco используются такие настройки по умолчанию, которые позволяют выполнить ряд атак и получить несанкционированный доступ к сети или вывести из строя сетевые устройства. Использование утилит в данном случае демонстрирует простоту взлома сети и уязвимость таких настроек коммутаторов.
Некоторые атаки, которые можно выполнять с помощью утилит, могут вызвать отказ в обслуживании. Поэтому их следует применять очень осторожно в рабочей сети.
Yersinia — сетевая утилита, позволяющая эксплуатировать недостатки ряда протоколов, использующихся активным сетевым оборудованием, и стандартных сетевых протоколов, использующихся в сети.
В настоящий момент возможны атаки на:
- стандартные сетевые протоколы:
- Dynamic Host Configuration Protocol ( DHCP ),
- Spanning Tree Protocol ( STP ),
- 802.1Q,
- 802.1X,
- проприетарные протоколы Cisco:
- Inter-Switch Link Protocol ( ISL ),
- VLAN Trunking Protocol ( VTP ),
- Cisco Discovery Protocol ( CDP ),
- Dynamic Trunking Protocol ( DTP ),
- Hot Standby Router Protocol ( HSRP ).
Scapy — сетевая утилита, написанная на языке Python, которая позволяет посылать, просматривать и анализировать сетевые пакеты. В отличие от многих других утилит, Scapy не ограничена перечнем каких-то протоколов, пакеты которых она может генерировать. Фактически, она позволяет создавать любые пакеты и комбинировать атаки различных типов.
роль коммутаторов в безопасности канального уровня
В современных локальных сетях обмен информацией, как правило, предполагает передачу данных через коммутатор. Поэтому и сам коммутатор, и протоколы, которые используют коммутаторы, могут быть целью атак. Более того, некоторые настройки коммутаторов (как правило, это настройки по умолчанию) позволяют выполнить ряд атак и получить несанкционированный доступ к сети или вывести из строя сетевые устройства.
Однако, коммутатор может быть и достаточно мощным средством защиты. Так как через него происходит всё взаимодействие в сети, то логично контролировать это на нем. Конечно использование коммутатора как средства защиты предполагает, что используется не простейший коммутатор 2-го уровня, а коммутатор с соответствующими функциями для обеспечения безопасности.
функции коммутаторов для обеспечения безопасности работы сети на канальном уровне
Port security — функция коммутатора, позволяющая указать MAC -адреса хостов, которым разрешено передавать данные через порт. После этого порт не передает пакеты, если MAC -адрес отправителя не указан как разрешенный. Кроме того, можно указывать не конкретные MAC -адреса, разрешенные на порту коммутатора, а ограничить количество MAC -адресов, которым разрешено передавать трафик через порт.
Используется для предотвращения:
- несанкционированной смены MAC -адреса сетевого устройства или подключения к сети,
- атак, направленных на переполнение таблицы коммутации.
DHCP snooping — функция коммутатора, предназначенная для защиты от атак с использованием протокола DHCP . Например, атаки с подменой DHCP -сервера в сети или атаки DHCP starvation, которая заставляет DHCP -сервер выдать все существующие на сервере адреса злоумышленнику.
- Dynamic ARP Protection (Inspection) — проверка ARP -пакетов, направленная на борьбу с ARP -spoofing,
- IP Source Guard — выполняет проверку IP-адреса отправителя в IP-пакетах, предназначенная для борьбы с IP-spoofingом.
Dynamic ARP Inspection (Protection)
Dynamic ARP Inspection (Protection) — функция коммутатора, предназначенная для защиты от атак с использованием протокола ARP . Например, атаки ARP -spoofing, позволяющей перехватывать трафик между узлами, которые расположены в пределах одного широковещательного домена.
IP Source Guard
IP Source Guard (Dynamic IP Lockdown) — функция коммутатора, которая ограничивает IP-трафик на интерфейсах 2го уровня, фильтруя трафик на основании таблицы привязок DHCP snooping и статических соответствий. Функция используется для борьбы с IP-spoofingом.
Читайте также: