ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Безопасность в сетях, построенных на Layer2 коммутаторах.
  #1  
Старый 29.05.2009, 19:10
Аватар для AlexSatter
AlexSatter
Постоянный
Регистрация: 29.01.2009
Сообщений: 333
Провел на форуме:
1168802

Репутация: 298
По умолчанию Безопасность в сетях, построенных на Layer2 коммутаторах.

В этой статье будет рассмотрено, как можно произвести атаки на Layer2 сети и как можно защитить такую сеть от нападения с помощью оборудования Cisco Systems.

Типы Layer2 аттак
  • Vlan Hopping Смысл атаки заключается в том, что злоумышленник может получить доступ к другому устройству в сети не из своего VLAN
  • Атака на STP Смысл атаки заключается в том, что злоумышленник, с помощью программных средств может отправить коммутатору пакет BPDU, в котором указать высокий приоритет и меньший MAC адрес и тем самым стать «корневым коммутатором» с целью перехвата сетевого трафика.
  • MAC спуфинг Злоумышленник может подменить MAC адрес, с целью захватить трафик необходимого ему устройства.
  • Атака на PVLAN Private Vlan, это виланы, которые составляют одну подсеть (как правило) и между хостами этого вилана связи быть не должно. Но злоумышленник может получить доступ к соседнему устройству PVLAN посредством устройства L3 (роутера).
  • Атака на DHCP Злоумышленник может заполнить весь пул DHCP с помощью генерации большого количества запросов с несуществующими MAC адресами. Что приведет к DOS атаке, т.е. отказу в обслуживании, т.к.. так как после заполнения пула сервер не сможет выделять адреса реальным хостам. После чего атакующий может поднять собственный, DHCP сервер и хосты сети будут получать от недоверительного сервера все настройки, которые укажет злоумышленник. Например, он может направить весь трафик через свой хост и таким образом перехватить и просканировать его на предмет служебной информации.

Рассмотрим эти атаки и меры борьбы с ними более подробно.

1. Переполнение CAM таблицы.

Коммутатор имеет CAM таблицу, где содержится "привязка", какие MAC адреса на каком порту принимаются.
Разумеется CAM таблица не бесконечна и имеет свои размеры. Например коммутатор Catalyst 2960 может содержать 8192 MAC адресов, Catalyst 6000 серии 128000 MAC адресов.
Стоит подумать, а что же произойдет, когда вся таблица будет занята? Новые записи не смогут добавляться, весь трафик будет проходить на все порты.
Что это даст атакующему вполне очевидно. Он может "прослушать" весь сетевой трафик и получить конфеденциальную информацию.
Стоит отметить, что всё это действенно для VLAN'а, в котором находится злоумышленник. т.е. после переполнения данной таблицы атакующий не сможет прослушивать весь сетевой трафик, который "ходит" через коммутатор, а лишь своего VLAN, но и это не очень радостно.
Какие же существуют способы борьбы с данным видом атаки?
Логика подсказывает, что для подавления такой атаки, нам необходимо указать, что на порте коммутатора, к которому подключен пользователь может быть скажем не больше одного MAC адреса, а в случае если появляется более одного, перевести порт в отключенное состояние и отправить сообщение администратору о нарушении безопасности (например на syslog сервер).
Рассмотрим на примере.
Допустим, у нас есть коммутатор Cisco Catalyst 2960,24 порта к которым подключены пользователи. Нужно сделать так, чтоб на каждом порту мог быть только один хост (иными словами только один MAC адрес, какой? сейчас нас это не интересует).
Для этого делаем:

Заходим в режим глобального конфигурирования:


Код:
switch# conf t
Затем перейдем к конфигурированию портов, выберем сразу все, с 1 по 24

Код:
 switch(config)#int range f0/1
Затем укажем что все эти порты являются портами доступа

Код:
 switch(config-if-range)#switchport mode access
Включаем защиту порта: port-security

Код:
switch(config-if-range)#switchport port-security
Выбираем реакцию на нарушения нашей политики безопасности. Т.е. что будет коммутатор делать, когда на порту появится больше MAC адресов чем нами указано. В данном случае мы хотим чтоб порт выключался и посылалось соответсвующее сообщение по SNMP trap и syslog. Данную опцию можно не указывать принудительно, она действует по умолчанию. Так же существуют режимы: protect и restrict. Смысл этих режимов заключается в том, что порт не будет выключаться (т.е. переходить в состояние shutdown), а лишь будут блокироваться пакеты, если обнаружено нарушение связанное с MAC адресами. Protect от Restrict отличается тем, что при возникновении внештатной ситуации restrict может послать snmp trap и syslog сообщение о нарушении политики безопасности.

Код:
switch(config-if-range)#switchport port-security violation shutdown
Соответсвенно указываем сколько MAC адресов мы готовы увидеть на этом порту. В данном случае 1 MAC адрес, значение 1, устанавливается по умолчанию.

Код:
switch(config-if-range)#switchport port-security maximum 1
Поставим порт коммутатора в режим обучения, т.е. первый MAC адрес, который будет получен через этот порт, будет прописан автоматически в running-config. Запись будет сохраняться до тех пор не будет перезагружен коммутатор. Либо если сделать copy running-config startup config (или просто wr) то, значения привязка MAC адреса к порту будет сохранена и в дальнейшем может использоваться даже после перезагрузки коммутатора.

Код:
switch(config-if-range)#switchport port-security mac-address sticky
Данной меры вполне достаточно чтобы избежать атаку на переполнение CAM таблицы.

Несколько команд для просмотра установок сделанных на портах, связанных с port-security.

Код:
show port-security
Пример:

Код:
catalyst#show port-security 
Secure Port  MaxSecureAddr  CurrentAddr  SecurityViolation  Security Action
                (Count)       (Count)          (Count)
---------------------------------------------------------------------------
      Fa0/1              2           	 2             	 38174         		Restrict
      Fa0/2              2           	 2              	21601         		Restrict
      Fa0/3              3           	 3               	6346         		Restrict
      Fa0/4              2            	2             	 34777        		 Restrict
      Fa0/5              2            	2                  	0         			Restrict
skipped
     Fa0/48              2            	2                 	26         		Restrict
---------------------------------------------------------------------------
Total Addresses in System (excluding one mac per port)     : 35
Max Addresses limit in System (excluding one mac per port) : 8320
catalyst#
Команда покажет вам на каких портах включен port-security и как они сконфигурированы относительно безопасности port-security.

show port-security interface имя_интерфейса.
Пример:

Код:
catalyst#show port-security int f0/1

Port Security              : Enabled
Port Status                : Secure-up
Violation Mode             : Restrict
Aging Time                 : 0 mins
Aging Type                 : Absolute
SecureStatic Address Aging : Disabled
Maximum MAC Addresses      : 2
Total MAC Addresses        : 2
Configured MAC Addresses   : 0
Sticky MAC Addresses       : 2
Last Source Address:Vlan   : 001b.d491.4b1a:1
Security Violation Count   : 38176
catalyst#
В отличии от предыдущей команды, покажет вывод настроек конкретного интерфейса.
 
Ответить с цитированием

  #2  
Старый 29.05.2009, 19:30
Аватар для AlexSatter
AlexSatter
Постоянный
Регистрация: 29.01.2009
Сообщений: 333
Провел на форуме:
1168802

Репутация: 298
По умолчанию

2. Vlan Hopping

Рассмотрим более подробно данный вид атаки, способ реализации и как ее предотвратить.
Цель данной атаки в том, что пользователь может попытаться передать данные в другой vlan.
Давайте рассмотрим, как это сделать. Как подсказывает логика, это возможно когда атакующий может инициировать trunk режим.
В коммутаторах Cisco Catalyst, по умолчанию порт работает не в режиму mode access и не в режиме mode trunk, таким образом на порту работает протокол DTP (Dynamic Trunk Protocol).
В такой ситуации стоит атакующему "претвориться" коммутатором, как между ними будет установленно транковое соединения, и соответсвенно будут доступны vlan'ы сконфигурированные на коммутаторе и после чего передать данные в другой Vlan не составит труда.

Бороться с этим не легко, а очень легко.
Для начала нужно все используемые интерфейсы коммутатора перевести принудительно в режимы access и trunk, где это положено.
Неиспользуемые порты необходимо перевести в shutdown, и перенести их в несуществующий VLAN, который будет известен только данному коммутатору, т.е. не передавался по trunk портам другим коммутаторам.

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

Код:
switch# conf t
Заходим в настройку порта:

Код:
switch(conf)#int f0/1
Указываем принудительно режим доступа:

Код:
 switch(config-if)#switchport mode access
Для того чтобы перевести порт коммутатора в режим trunk,в режиме конфигурации интерфейса выполнить следующую команду:

Код:
switch(config-if)#switchport mode trunk
Для неактивных портов, создадим специальный VLAN, скажем под номером 666, дадим ему имя unconnected и перенесем все неиспользуемые порты в этот самый VLAN и сделаем им shutdown.
Создаем VLAN.

Код:
switch(conf)#vlan 666
Даем ему имя:

Код:
switch(config-vlan)#name Unconnected  
switch(config-vlan)#exit
Переносим необходимые нам порты (например с 12 по 24) в созданный VLAN.

Код:
 switch(conf)#int range f0/12 - 24
 switch(config-if-range)#switchport access vlan 666
 switch(config-if-range)#shut
Описанные настройки позволят противостоять атакам типа Vlan Hopping.

3. Атака на STP.

Как известно, STP (Spanning Tree Protocol) это протокол, предназначенный для предотвращения зацикливания пакетов в сети, при наличии дублирующих маршрутов. В кратце как это работает.
Сначала происходит обнаружения коммутаторов которые связаны между собой, Здесь точка. Затем... Выбирается так называемый Root Bridge, т.е. главный «корневой коммутатор» . Далее по специальному алгоритму будут заблокированы порты коммутатора, которые создают петли в получившейся топологии.
Более подробно работу STP мы не будем рассматривать.
Что может сделать атакующий?
Атакующий может так же "претвориться" коммутатором, направить в сторону коммутатора BPDU пакет, в котором может подделать приоритет, mac адрес, для того чтобы стать «корневым коммутатором», и с его помощью перехватить сетевой трафик.
Корневой коммутатор становится тот, у которого самый высокий приоритет. Если приоритет у нескольких коммутаторов одинаковый, то для выбора корневого коммутатора используется MAC адрес, у кого он меньше тот и становится корневым.
Постараемся избавиться от этой уязвимости.
Что для этого необходимо?

  • Запретить хождение BPDU пакетов с портов, в которых мы точно знаем, что там не должно быть никаких коммутаторов. И в случае если такой пакет всё же пришёл, переводить этот порт в shutdown.
  • Обезопасить наш корневой коммутатор, чтоб не при каких условиях не могу быть выбран другой корневой коммутатор, в том числе и наш атакующий (атакующему не составит труда поставить приортитет лучше чем у настояшего главного коммутатора, и MAC адрес поменьше, что будет гарантировано, что атакующий будет root.)

Перейдем к реализации данной идеи непосредственно на коммутаторе.
Для начала, на всех портах доступа поставим специальный режим STP, который называется portfast. После этого клиент , подключенный к такому порту, не будет принимать участие в разрешении маршрутов по алгоритму STP и данные будут передаваться ему сразу. Если данная опция включена не будет, то сначала подключенный клиент инициирует пересчет маршрутов по алгоритму STP (это может занять достаточно много времени, десятки секунд и даже больше) и лишь после того будут начинать передаваться пользовательские данные через порт.
По умолчанию portfast на Cisco Catalyst отключен и это нужно будет сконфигурировать вручную.


Будем конфигурировать Portfast на портах f0/1 - 24.

Код:
 switch# conf t
 switch(config)#int range f0/1 - 24
 switch(config-if-range)#spanning-tree portfast
Далее укажем что на этих портах хождение BPDU пакетов противопоказано, для этого в режиме глобальной конфигурации необходимо сделать следующее:

Код:
 switch(config)#spanning-tree portfast bpduguard default
Теперь, при появлении на портах, на которых указан режим STP portfast, BPDU пакета, порт будет отключаться, т.е. переходить в режим shutdown.
И последнее, необходимо обезопасить наш Root Bridge. Для этого необходимо перейти в конфигурацию интерфейса, к которому подключен другой коммутатор и сделать следующее:

Код:
 switch(config)# int f0/1
 switch(config-if)spanning-tree guard root
Теперь, в случае если появится злоумышленник и направит в сторону коммутатора пакет BPDU с максимальным приоритетом и меньшим MAC адресом, это не позволит стать ему «корневым коммутатором»
 
Ответить с цитированием

  #3  
Старый 29.05.2009, 19:37
Аватар для AlexSatter
AlexSatter
Постоянный
Регистрация: 29.01.2009
Сообщений: 333
Провел на форуме:
1168802

Репутация: 298
По умолчанию

4. MAC Spoofing.

MAC Spoofing, это атака, реализуемая путем подделывания MAC адреса, например атакующий может подделать MAC адрес, который использовал другой хост сети. Что это может дать атакующему зависит от политики безопасности сети. Для того чтобы предотвратить данный тип атаки необходимо выполнить меры, которые описаны в пункте 1. «Переполнение CAM таблицы , т.е. необходимо, указать максимальное количество mac адресов на порту, указать действие, которое будет выполнено в случае нарушения нашей политики (shutdown, restrict, protect).
Указать MAC адреса статически, динамически, либо в режиме обучении.
Для указания mac адреса статическим, в режими конфигурирования интерфейса необходимо выполнить:
Switch(config-if)# switchport port-security mac-address 3234.2343.fa12
Где, 3234.2343.fa12 mac адрес клиента.
Для указания динамического mac адреса, ничего дополнительного не делается, необходимо только включить фурнкцию port-security, как было описано выше.
Чтобы указать режим обучения mac-адресов необходимо выполнить в режиме конфигурирования интерфейса:
switch(config-if-range)#switchport port-security mac-address sticky
Указать время жизни записей arp-таблице. Рассмотрим пример, в котором установим максимальное количество адресов на порту в 1, действие shutdown и укажем что arp таблица имеет таймер в 60 секунд.


Код:
switch# conf t
 switch(config)#int range f0/1 - 24
switch(config-if-range)#switchport mode access 
switch(config-if-range)#switchport port-security
 switch(config-if-range)#switchport port-security violation shutdown
 switch(config-if-range)#switchport port-security maximum 1
 switch(config-if-range)#arp timeout 60
В этом примере все порты коммутатора FastEthernet с 1 по 24 переведены в режим доступа, применена технология port-security. На каждом порту может находиться лишь один клиент одновременно, об этом говорит команда switchport port-security maximum 1, данный параметр установлен по умолчанию и поэтому в конфигурационном файле этой команды видно не будет. В случае если на порту появилось сразу два и более MAC адреса, порт переводится в режим shutdown. Команда arp timeout 60, говорит о том, что mac адрес будет находиться в ARP кеше 60 секунд без обновления.

5. Атака на PVLAN (Private VLAN).

В технологии PVLAN в отличии от VLAN порты могут находиться в трёх режимах:
  • Promiscuous
  • Community
  • Isolated

Порты которые отмечены как Isolated, не могут передавать данные в своем VLAN между клиентами. Данные передаваться могут только между Isolated и Promiscuous портами.
Promiscuous порты это порты в PVLAN, в которые можно передавать данные со всех Isalated и Community портов. как и в обычном VLAN.
Community это группы портов, между членами которых можно передавать данные, можно назвать vlan в vlan'е.
Если атакующему доступно устройство Layer 3 (например маршрутизатор, либо коммутатор третьего уровня), он может установить связь между клиентами, которые находятся в одном PVLAN, между Isolated портами.
Как это можно реализовать?
Пользователь может подделать пакет, в котором IP назначения он укажет необходимое ему устройство (которое находится на другом порту Isolated), источник останется без изменения, т.к. ip атакающего, как и MAC адрес, а вот в качестве MAC адрес назначения он укажет MAC устройства L3. L3 устройство получится данный пакет и может переправить его по указанному адресу. Принимающая сторона может сделать тоже самое, тем самым обеспечив передачу данных между Isolated портами.
Предотвращение такой атаки сводится к тому, что на устройстве L3 создается специальный Access List в котором запрещается прямая передача данных между сегментом сети.
Рассмотрим пример настройки.


Код:
router#conf t
router(config)#ip access-list extended pvlan
router(config-ext-nacl)#deny ip 10.0.0.0 0.0.0.255 10.0.0.0 0.0.0.255
router(config-ext-nacl)#permit any any
router(config-ext-nacl)#exit
router(config)#int f0/1
router(config-if)#ip access-group pvlan in
Таким образом был создан список управления досутпом под названием pvlan, в котором указывается что с сети 10.0.0.0/24 запрещено передавать данные в 10.0.0.0/24, всё остальное разрешено. И этот список доступа, последней командой был связан с интерфейсом f0/1.
Описанные выше настройки не позволят атакующему установить связь между клиентами одного PVLAN, между Isolated портами используя L3 устройство.


6. Атака на DHCP

Существуеет несколько способов атаковать DHCP сервер.

1.Злоумышленник может сформировать и послать DHCP серверу огромное количество DHCP запросов, с разными MAC адресами. Сервер будет выделять IP адреса из пула и рано или поздно весь DHCP pool закончится, после чего сервер не сможет обслуживать новых клиентов. Данный вид атаки можно классифицировать как DOS (Denial of service - Откзал в обслуживании). Нарушается работоспособность сети.


Метод борьбы с такими атаками называется DHCP Snooping.
В кратце рассмотрим как это работает.
Когда коммутатор получает пакет сравнивает MAC-адрес указанный в DHCP-запросе и MAC-адрес, который был прописан на порту коммутатора. Если адреса совпадают, то коммутатор отправляет пакет дальше. Если адреса не совпадают, то коммутатор отбрасывает пакет.

2. Злоумышленник может поставить свой DHCP сервер и выдавать свои настройки пользователям сети. (может указать любой DNS,Gateway и т.д.) и воспользоваться уже по своему усмотрению, начиная от прослушивания трафика, до подделки DNS ответов, и т.д.
Если в сети существует несколько DHCP серверов, то на запрос будут отвечать все серверы, но клиентом будет обработан только первый ответ. Какой из DHCP серверов ответит быстрее и чей ответ быстрее дойдет до клиента зависит от многих факторов, таких как: загрузка DHCP сервера, загрузка сети и т.д.
Для того чтоб злоумышленник был уверен, что именно от его DHCP сервера клиент получит ответ, атакующим может быть предварительно произведена DOS атака на легальные DHCP сервера способом описанным в пункте 1
В технологии DHCP Snooping существует поняетие доверительных и не доверительных портов. (trusted и untrusted соответсвенно)
Доверительные порты, это порты с которых может приходить ответ DHCP (DHCPOFFER и так далее), а не доверительные порты, это порты с которых не могут приходить ответы DHCPOFFER. Доверительные порты указываются вручну. Все порты, которые не указаны доверительными, автоматически становятся недоверительными.
Порт, который непосредственно подключен к DHCP серверу должен быть объявлен как доверительный (trust порт).
DHCP Snooping настраивается для каждого VLAN.
Для настройки DHCP snooping необходимо сделать сначала включить snooping в режиме глобальной конфигурации, затем включить на нужном vlan, затем указать trust порты. Рассмотрим на примере.


Код:
 switch(config)# ip dhcp snooping
 switch(config)# ip dhcp snooping vlan 10
 switch(config)#int f0/1
 switch(config-if)#ip dhcp snooping trust
В данном примере, мы включили защиту DHCP на vlan 10. Интерфейс f0/1 у нас подключен непосредственно к DHCP серверу, поэтому на нем мы включили trust.
Так же можно включить или выключить опции 82 DHCP (которая отвечает за информацию relay, т.е. через какие коммутаторы прошёл данный пакет, аналогию можно провести с таблицей маршрутизации). Делается в режиме глобального конфигурирования командой:


Код:
 switch(config)#ip dhcp snooping information option
Так же есть возможность включить ограничение количество запросов DHCP в секунду. Делается это на интерфейсе, в нашем случае f0/1. К этому параметру нужно относиться с осторожностью. Если количество запросов в секунду будет больше чем мы указали (в нашем примере 100), то запросы будут отклонены.

Код:
 switch(config)#interface fa0/1
 switch(config-if)#ip dhcp snooping limit rate 100
В статье мы рассмотрели основные виды Layer 2 Атак, и рассмотрели как с ними можно бороться.
Описанные меры должны применяться комплексно, для повышения безопасности сети в целом.
 
Ответить с цитированием

  #4  
Старый 29.05.2009, 20:24
Аватар для iv.
iv.
Moderator - Level 7
Регистрация: 21.03.2007
Сообщений: 1,200
Провел на форуме:
7134052

Репутация: 1204


По умолчанию

Layer2 коммутаторы/сети? Прошу пояснить.
 
Ответить с цитированием

  #5  
Старый 29.05.2009, 20:44
Аватар для SpangeBoB
SpangeBoB
Moderator - Level 7
Регистрация: 12.07.2008
Сообщений: 1,705
Провел на форуме:
5914048

Репутация: 1350


По умолчанию

ссылку на авторство ставить не будем?
 
Ответить с цитированием

  #6  
Старый 29.05.2009, 21:44
Аватар для AlexSatter
AlexSatter
Постоянный
Регистрация: 29.01.2009
Сообщений: 333
Провел на форуме:
1168802

Репутация: 298
По умолчанию

автортство мое.
публиковал статью в журнале "Системный администратор" в декабре.

есть концентратоы (точнее были, которые работали на Layer 1, обычные хабы)
есть коммутаторы, которые работают на Layer 2 (грубо говоря понимает MAC адресацию)
Есть Layer 3 (которые разбирают до уровня IP в OSI)
Есть MLS (Multilayer Switch), которые могут работать на 3,4 и др уровнях.
В данной статье я расмотрел настройку оборудования Layer2.
 
Ответить с цитированием

  #7  
Старый 29.05.2009, 22:39
Аватар для iv.
iv.
Moderator - Level 7
Регистрация: 21.03.2007
Сообщений: 1,200
Провел на форуме:
7134052

Репутация: 1204


По умолчанию

Цитата:
есть концентратоы (точнее были, которые работали на Layer 1, обычные хабы)
есть коммутаторы, которые работают на Layer 2 (грубо говоря понимает MAC адресацию)
Есть Layer 3 (которые разбирают до уровня IP в OSI)
Есть MLS (Multilayer Switch), которые могут работать на 3,4 и др уровнях.
В данной статье я расмотрел настройку оборудования Layer2.
Ок, я просто обычно встречаю терминологию физический-канальный-сетевой-... уровни
 
Ответить с цитированием

  #8  
Старый 30.05.2009, 00:06
Аватар для AlexSatter
AlexSatter
Постоянный
Регистрация: 29.01.2009
Сообщений: 333
Провел на форуме:
1168802

Репутация: 298
По умолчанию

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





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ