antiCisco blogs » Blog Archive » Защита на канальном уровне. Port-security.

antiCisco blogs


блоги по технологиям и оборудованию cisco от инструкторов

Опубликовано 11 Ноябрь , 2011

У коммутаторов есть основная задача — передать фрейм из одного порта в другой. По возможности быстро. Эту задачу все производители научились решать, используя аппаратный метод передачи при помощи таблицы коммутации и карточек ASIC. Скорости работы передающей шины впечатляют: до 160 ГБит/сек для довольно доступного 3750-E.
Однако, кроме скорости еще хотелось бы достичь устойчивости работы и безопасности на канальном уровне.

Поговорим, какие же угрозы могут быть реализованы на уровне L2.

Во-первых, атаки на самое основное, практически святое — таблицу МАС-адресов (САМ table). Для этого атакующий, не долго думая, применяет такой метод: флуд (массовую рассылку) поддельными фреймами с различными МАС-адресами источника. Под *nix системы таких приложений есть несколько и реализуют они эту атаку очень просто. Если не предпринимать никаких мер, то такой агрессивный флуд вызовет быстрое заполнение САМ-таблицы (обычный размер — около 8000 записей). Напомню, что коммутатор очень дружелюбен по своей сути, поэтому при переполнении таблицы он уже не сможет запоминать корректные МАС-адреса источника (нормальных пользователей). А значит через некоторое время, когда истечет время хранения записи (у коммутаторов cisco по умолчанию это 5 минут) он будет все получаемые фреймы размножать во все порты, кроме порта источника.

Выгод у атакующего в этом случае несколько.
— Просто вывести коммутатор из строя, ведь фреймы, которые необходимо размножить в несколько портов (это броадкасты, мультикасты и фреймы с неизвестным МАС-адресом назначения) обрабатываются процессором, который у коммутаторов весьма слаб. Резко подскочивший уровень загрузки CPU при небольшом уровне загрузки при прерываниях указывает на такую атаку. Вот пример – 99% в данном случае загрузка CPU, а 20% — эта загрузка собственно прерываниями (непосредственной передачей фреймов)

Cat3560#show processes cpu sorted
CPU utilization for five seconds: 99%/20%; one minute: 97%; five minutes: 97%

Загрузка CPU на 100% может привести к непредсказуемым последствиям.
Полезная ссылка по теме:
http://www.cisco.com/en/US/docs/switches/lan/catalyst3750/software/troubleshooting/cpu_util.html

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

Защита, понятно, существует. Эта технология называется port-security. Она позволяет ограничить максимальное количество МАС-адресов, которые могут зарегистрироваться на интерфейсе. Также, возможно указать явно те МАС-адреса, которые являются легитимными для данного порта. Настраивается это так:
!
! Включение технологии на интерфейсе
switchport port-security
!
! указание максимального количества МАС-адресов.
switchport port-security maximum
!
! явное указание защищенного МАС-адреса
switchport port-security mac-address {HHHH.HHHH.HHHH}

Можно также указать, что делать при нарушении правила

switchport port-security violation {shutdown,protect,restrict}

По умолчанию стоит значение shutdown, при котором порт укладывается в err-disable состояние до вмешательства администратора и отправляется SNMP-trap.
protect означает, что если на порту уже зарегистрировано максимальное количество МАСов, то «Не пускать втихаря», пока не освободится свободное «местечко» на интерфейсе
restict означает «Не пускать громко», пока не освободится свободное «местечко» на интерфейсе. «Громко» значит с каждым нарушением увеличивать счетчик нарушений и отправлять SNMP-trap.

Также дополнительно можно настроить время истечения «наказания», после которого порт переводится в обычное состояние (актуально для shutdown). Настраивается командой

switchport port-security aging

Помните, что после включения технологии автоматически срабатывают настройки по умолчанию: максимум один зарегистрированный, действие при нарушении — блокировка порта (shutdown).

Распространенная ситуация, когда за портом не просто компьютер, а сначала воткнут ip-телефон, а уже через него компьютер. В этом случае необходимо прописать максимум не 1, а 2 МАС-адреса. В новых IOS можно еще добавить, что для голосового VLAN 1 адрес, который можно явно указать, и для VLAN данных 1 МАС-адрес.

switchport port-security maximum 1 vlan access
switchport port-security maximum 1 vlan voice

К сожалению, некоторые IOS содержат ошибку, при которой трафик от телефона иногда (!) рассматривается коммутатором как трафик данных и блокируется, как нарушивший правило port-security.

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

Однако, в больших сетях неиерархичность МАС-адресов (они все – плоские, без адресов «сетей») может превратиться в головную боль админов, если система защиты построена на привязке МАС-адресов к портам. Для упрощения задачи cisco коммутаторы имеют технологию sticky. При помощи нее МАС-адрес компьютера, который пришлет фрейм, будет не просто динамически изучен, но и записан в таблицу САМ и в файл конфигурации статически. Это позволит уменьшить ручную работу. Для более сложных топологий с периодической сменой портов возможно настроить запись в САМ не навсегда, а на некоторое время. Либо можно вручную удалять соответствующую строчку из конфига при переезде компьютера.

switchport port-security mac-address sticky

Следующая статья >>>

 

Метки: , , ,
Опубликовано: Безопасность cisco

 

3 комментария “Защита на канальном уровне. Port-security.”

comment rss - Trackback

  1. […] еще хотелось бы достичь устойчивости работы и Читать далее Tweet VK.init({apiId: 2672059, onlyWidgets: true}); VK.Widgets.Like('vk_like_6945', {type: […]

  2. nihilo666:

    Есть одна очень простая L2 атака, позволяющая любому желающему реализовать man-in-the-middle в подавляющем большинстве сетей, даже в которых есть port security. Называется ARP poisoning, реализована под win в cain & abel, эксплуатирует механизм gratuitous ARP. Хост злоумышленника рассылает самопроизвольные ARP ответы жертве, в которых выдает себя за другой IP, например адрес шлюза по умолчанию. Можно отключить его на всех хостах в сети или поставить что-то вроде host-IPS, которая распознает атаку. А что делать если пользователи приходят со своими ноутбуками? На уровне сети защититься можно только если коммутатор будет строить таблицу соответствий IP-MAC и фильтровать arp, в которых распознается нарушитель. Такая фича — Dynamic ARP Inspection (DAI) поддерживается только на L3 коммутаторах по очевидным причинам. И это еще один жирный плюс в пользу L3 на access уровне.

    • Вы совершенно правы! Есть такая атака с отравление кэша АРП.
      И про DAI я собираюсь тоже рассказать (выдаю малыми порциями — как всегда нехватка времени на проверку всех команд и нормальное оформление).

» Оставить комментарий

Вы должны войти чтобы прокомментировать.