Цифровизация изменила мир. Изменения коснулись нашего стиля жизни, досуга, подхода к работе и обучению. Каждая организация, которая хочет предоставлять услуги заказчикам и сотрудникам, должна защищать свою сеть. Система сетевой безопасности также помогает защитить конфиденциальную информацию от атак. В конечном счете речь идет и о защите репутации.
1.Атака Rogue DHCP Server
Цель этой атаки — подмена DHCP-сервера. Если в сети одновременно находятся два DHCP-сервера, один из которых является «врагом», некоторые клиенты будут настраивать для себя неверные адреса и другие сетевые параметры.
Переопределив шлюз по умолчанию, неавторизованный DHCP-сервер сможет прослушивать весь клиентский трафик и пересылать пакеты по назначению. Таким образом, у нас есть простейшая реализация атаки MitM (Man in the Middle), которая может быть проведена в большинстве современных сетей.
Вообще то атака с подменой DHCP-сервера чаще всего не является атакой, как таковой. Распространены случаи, когда по незнанию в сеть подключается SOHO роутер с настроенным DHCP-сервером, причем подключается он LAN-портом. После этого у клиентов, успевших получить у него IP-адреса, наблюдаются как минимум существенные потери скорости, а чаще всего полная невозможность использования локальных и глобальных ресурсов.
Способы защиты
Простейший способ защиты от атак подобного рода – включение на всех коммутаторах функции DHCP snooping. Далее необходимо определить два типа портов:
• Доверенные – порты коммутатора, к которым подключается DHCP-сервер, либо другой коммутатор.
• Недоверенные – порты для клиентских подключений, за которыми DHCP-сервер находиться не может, зато вполне может находиться атакующее устройство.
В этом случае отслеживание DHCP требуется, чтобы сообщить коммутатору, что он должен обращать внимание на предложения DHCP и пакеты подтверждения, проходящие через него, и не позволять этим пакетам проходить через ненадежные порты. Кроме того, широковещательные запросы от клиента (обнаружение и запрос) теперь будут перенаправляться только на доверенные порты. Топология должна выглядеть так:
Для конфигурирования функции DHCP snooping необходимо:
1) Включить ее на коммутаторе:
SW(config)#ip dhcp snooping
2) Указать для каких VLAN требуется отслеживать пакеты:
SW(config)#ip dhcp snooping vlan
3) Указать доверенные порты на коммутаторе (все остальные по умолчанию становятся недоверенными):
SW(config-if)#ip dhcp snooping trust
Спасти трафик от прослушки также может шифрование на стороне клиента, например туннелирование в транспортном режиме.
2.Атака DHCP starvation
Атака, исполняемая при помощи протокола DHCP. DHCP-пул, из которого клиенты получают IP-адреса, ограничен. Например, это может быть 253 адреса (при маске 255.255.255.0). Для нормальной работы сети этого должно хватить всем клиентам, но атака DHCP starvation стремится изменить данную ситуацию.
Как это происходит:
1) Атакующее устройство запрашивает себе IP-адрес у DHCP-сервера и получает его;
2) MAC-адрес атакующего устройства изменяется и оно запрашивает следующий, уже другой IP-адрес, маскируясь под нового клиента;
3) Такие действия повторяются до тех пор, пока весь пул IP-адресов на сервере не будет исчерпан.
Далее возможны два последствия, в зависимости от того, что является целью атаки:
• Отказ в обслуживании. IP-адреса исчерпаны, и новые хосты не могут получить их. Таким образом, их взаимодействие с сетью на этом закончится.
• Подмена DHCP-сервера. DHCP starvation отлично комбинируется с предыдущей атакой. Так как на основном DHCP-сервере свободных адресов не осталось, он выбывает из игры, и 100% клиентов достается вражескому атакующему DHCP-серверу.
Способы защиты
Самый простой способ защиты – ограничение числа MAC-адресов на порту коммутатора. Реализуется это с помощью функции port-security:
1) Переводим порт в access режим:
SW(config-if)#switchport mode access
2) Включаем port-security на интерфейсе:
SW(config-if)#switchport port-security
3) Ограничиваем число MAC-адресов на интерфейсе:
SW(config-if)switchport port-security maximum
4) Выберите способ запоминания коммутатором MAC-адресов (статический, постоянный): разница между статическим адресом и постоянным адресом заключается в том, что статические адреса должны быть написаны от руки, а постоянные адреса автоматически запоминаются и сохраняются в файле конфигурации.
SW(config-if)#switchport port-security mac-address <mac-address | sticky>
5) Задаем тип реагирования на превышение числа разрешенных MAC-адресов:
protect – после переполнения все пакеты, отправленные с других MAC-адресов отбрасываются.
restrict – то же самое, но с уведомлением в syslog или по SNMP.
shutdown – порт выключается до автоматического или ручного его поднятия, также отправляются уведомления.
SW(config-if)#switchport port-security violation <protect | restrict | shutdown>
Таким образом атакующее устройство просто не сможет исчерпать лимит IP-адресов DHCP-пула, так как коммутатор не позволит ему безнаказанно изменять свой MAC-адрес.
Также здесь может помочь все тот же DHCP snooping, а именно команда
SW(config-if)ip dhcp snooping limit rate
Эта команда ограничивает количество пакетов DHCP в секунду на порт (рекомендуется не более 100 пакетов в секунду), и если этот предел превышен, она переводит порт в состояние отключения из-за ошибки, то есть временно выключено. Обычный клиент не превысит этот лимит, но атакующее устройство, генерирующее сотни MAC-адресов в секунду, будет обнаружено.
3.Атака СAM-table overflow
Для того, чтобы понять, как работает данная атака, необходимо понимать принцип работы коммутатора.
Вообразим себе новое программное обеспечение коммутатора, к которому подключены два хоста PC1 (MAC 0000.1111.1111) и PC2 (MAC 0000.2222.2222). Вы уже настроили IP-адреса (10.0.0.1 и 10.0.0.2) и хотите общаться друг с другом. Поскольку они находятся в одной подсети, маршрутизатор не требуется, и весь обмен пакетами происходит через коммутатор. Итак, в каком порядке происходит их общение:
1) PC1 хочет связаться с PC2 по IP-адресу. Однако он не знает MAC-адрес ПК2, поэтому ПК1 использует ARP. Отправляется широковещательный запрос: «Компьютер с IP-адресом 10.0.0.2, сообщите свой MAC-адрес компьютеру с 10.0.0.1, чтобы я мог с вами общаться».
2) Коммутатор шлет запросы на все свои порты, но записывает соответствие между MAC-адресом отправителя (0000.1111.1111) и портом, теперь он будет напрямую пересылать все кадры, адресованные этому получателю, а не случайно, всем доступные интерфейсы.
3) PC2 получает направленный ему пакет, понимает, что он должен ответить, и сообщает свой MAC-адрес PC1. В этом случае коммутатор вносит в таблицу CAM (таблицу MAC-адресов) запись вида: (интерфейс gig1 / 2 — MAC 0000.2222.2222). Теперь, когда компьютеры будут обмениваться информацией, будут задействованы только два порта, за которыми они расположены. Информация не будет отправлена другим лицам.
Суть в том, что если коммутатор видит адрес назначения в своей таблице CAM, он пересылает кадр на определенный порт. Если он этого не видит, он организует трансляцию, надеясь, что кадр все же найдет получателя.
По этому принципу работает рассматриваемая атака. Дело в том, что размер таблицы MAC-адресов для любого данного коммутатора ограничен. В случае переполнения новые реальные адреса клиентов больше не смогут попасть в таблицу.
Ясно, что, просто нужно сгенерировать большое количество адресов и заставить коммутатор записать их в свою таблицу, чтобы реальные адреса реальных устройств постепенно покинули ее. В этом случае коммутатор начнет отправлять фреймы, адресованные определенному получателю, на все порты, расположенные в одной VLAN, поэтому атакующее устройство сможет их перехватить и прочитать.
Обратите внимание, что все коммутаторы, подключенные к атакуемой стороне, также получат поддельные MAC-адреса и начнут транслировать все кадры.
Способы защиты
1) Port-security на всех access-портах с лимитированием максимального количество MAC-адресов.
2) Шифрование трафика – в таком случае хоть все кадры и будут рассылаться широковещательно, а производительность сети сильно ухудшится, информация, попавшая в чужие руки, не будет прочитана.
Атака VLAN hopping
Следующая атака базируется на возможности коммутаторов автоматически согласовывать тип своего порта — access или trunk.
Немного теории о том, чем access порт отличается от trunk порта:
Известно, что протокол 802.1Q повсеместно распространен во всех современных сетях. Суть его в том, что он немного расширяет кадр Ethernet, добавляя несколько полей (в частности, VLAN Identifier, поле VID). На основе этого поля коммутатор может определить, какой группе портов адресован конкретный фрейм.
Благодаря полю VID клиенты из нескольких разных подсетей могут быть подключены к одному коммутатору, тем самым ограничивая широковещательный домен. Также появляется возможность объединять клиентов, подключенных к разным коммутаторам, в одну логическую сеть.
По сути 802.1Q — очень гибкий механизм для создания необходимой логической топологии поверх уже существующей физической.
Рассмотрим процесс передачи кадра в сети с протоколом 802.1Q.
1) PC1 подключен к access-порту fa2/1 коммутатора SW1 в 10 VLAN’е. Это означает, что при попадании кадра на порт коммутатора, в него будет добавлен 802.1Q header с информацией о принадлежности к VLAN10.
2) SW1 пересылает тегированный кадр на SW2 через trunk-порт.
3) SW2 получает кадр, смотрит в свою CAM-таблицу и отправляет кадр в соответствующий access-порт, заголовок 802.1Q снимается.
В данном случае можно выделить следующие особенности:
- Клиенты ничего не знают о своей принадлежности к определенному VLAN и работают с нетегированными кадрами, заголовок 802.1Q появляется только при прохождении кадра через access-порт;
- Порт может быть нетегирован (access) только в одном VLAN (верно для коммутаторов Cisco);
- Через тегированный (trunk) порт можно передавать кадры, принадлежащие к разным VLAN.
- Существует так называемый native VLAN – при попадании на trunk-порт кадра без тега, он автоматически будет причислен к native VLAN. Как правило native VLAN’ом по умолчанию считается VLAN1 (изменяемо).
При этом кадры, принадлежащие native VLAN и попавшие в access-порт, передаваться через trunk-порт будут без тега.
Сама атака:
Как уже упоминалось, переключение VLAN основано на том факте, что коммутаторы могут автоматически согласовывать тип порта. Для этого используется собственный протокол Cisco DTP (Dynamic Trunking Protocol). При его использовании (а он включен по умолчанию) возможны следующие состояния порта: dynamic auto, dynamic desirable, static access, static trunk.
Предоставим сводную таблицу, как согласуются состояния двух портов, подключенных друг к другу:
При определенных условиях, особенно в dynamic auto и dynamic desirable режимах, порт коммутатора может согласовывать свою работу в транковом режиме. Это означает, что если атакующее устройство ведет себя как порт в желаемом режиме, оно согласовывает магистральный порт и получает доступ к трафику из всех VLAN, на которых работает коммутатор.
Основная проблема коммутаторов Cisco в том, что по умолчанию все порты находятся в режиме auto. Следовательно, даже если порт настроен в режиме access/auto, состояние может измениться на trunk/auto при получении запроса на согласование.
Способы защиты
Решение данной проблемы очень простое, но многие при конфигурировании коммутаторов забывают его использовать. Командой
SW(config-if)#switchport nonegotiate
мы просто отключаем возможность автоматического согласования и делаем атаку нереализуемой.
Другой возможный вектор атаки VLAN hopping – использование native VLAN и добавление второго тега. Работает он только в том случае, если атакующее устройство находится в том VLAN, который является native VLAN для trunk-порта.
Отталкиваясь от определения native VLAN, кадр, пришедший на порт fa2/1, находящийся в VLAN1, будет передаваться через trunk-порт нетегированным, но, так как злоумышленник PC1 присвоил ему два заголовка, на выходе он окажется с тегом VLAN2 и дойдет до атакуемого клиента, чего при нормальной ситуации быть не должно.
Следует заметить, что такая атака является однонаправленной, так как невозможно по такой же схеме передать кадр обратно.
Способы защиты
Защититься можно следующим образом:
Назначаем на всех trunk-портах неиспользуемый VLAN в качестве native.
SW(config-if)# switchport trunk native vlan 999
Теперь атака неосуществима, так как VLAN 999 не относится ни к одному из access-портов.
Заключение
Решение для обеспечения безопасности веб-трафика контролирует использование Интернета сотрудниками, блокирует веб-угрозы и запрещает доступ к вредоносным веб-сайтам. Оно защищает веб-шлюз в локальной сети или в облаке. «Безопасность веб-трафика» также подразумевает меры по защите своего веб-сайта.