Глава 7. Поиск атак на основе устройства

Содержание

Глава 7. Поиск атак на основе устройства
Структура и компоненты сетевых устройств
Функциональная структура устройств взаимодействия
Физическая структура устройств взаимодействия
Архитектура коммутаторов локальной сети
Архитектура маршрутизаторов
Архитектура межсетевых экранов и устройств безопасности
Атаки в плоскости управления и как обороняться от них
Атаки брутальной силой на пароли консоли, Telnet и SSH
Как выполнять проверку на уязвимости
Как защищаться от атак
Атаки брутальной силой против паролей SNMP (общих строк)
Как можно скомпрометировать SNMP
Как защищаться от атак
Атаки брутальной силой против паролей HTTP/ HTTPS
Как атаковать
Как обороняться против атак
Атаки на прочие порты и службы
Как проверять на наличие уязвимостей
Как обороняться против атак
SYN- сканирование и имеющие целью процессы плоскости управления
Как проверять на наличие уязвимостей
Как обороняться против атак
Атаки в плоскости контроля и как обороняться против них
Относящиеся к плоскости контроля действия, которые воздействуют на ресурсы устройства
Маршрутизация и процессы маршрутизации
Шифрование - VPN и туннелирование
Опции IP и время жизни
Запросы ARP
Фрагментация
Атаки в плоскости данных и как противостоять им
Защита от интенсивного обмена через интерфейс
Атаки на системные ресурсы
Атаки на основе памяти, утечки памяти и переполнения буфера
Атаки на основе памяти и причины утечек памяти
Настройка предупреждений о низких объёмах свободной памяти
Защита от причин атак на основе памяти
Перегрузка и уязвимости ЦПУ
Выводы
Вопросы

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

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

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

В этой главе мы рассмотрим такие основные вопросы:

  • Структуру и компоненты сетевого устройства

  • Атаки на плоскость управления и как им противостоять

  • Атаки на плоскость контроля и как им противодействовать

  • Атаки на плоскость данных и как защищаться от них

  • Атаки на системные ресурсы

Структура и компоненты сетевых устройств

В данном разделе мы поговорим о функциональной и физической структуре устройств взаимодействия. Начнём мы с функциональной структуры.

Функциональная структура устройств взаимодействия

Как мы уже видели в разделе Плоскости данных, контроля и управления из Главы 1, Архитектура центров данных и корпоративной сетевой среды, а также их компоненты, структура устройств взаимодействия составлена из трёх плоскостей, разделённых на категории по выполняемым ими функциям следующим образом:

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

  • Плоскость контроля, предпринимающая решения о том куда перенаправлять полученные данные.

  • Плоскость данных или перенаправления, которая ответственна за пересылку данных.

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

  • Атаки на плоскость управления будут атаками, пытающимися вскрыть пароли, атаками на SNMP (Simple Network Management Protocol) с попытками считывания сведений или их записи в это устройство и тому подобное.

  • Атаки на плоскость контроля могут быть различного типа. Атака может представлять собой форму вредоносного обмена, который пробует перегружать ППУ (CPU) данного устройства и тем самым замедлять его, или же это может быть обмен, который вносит путаницу в протоколы контроля - скажем, в протоколы маршрутизации. Мы обсудим первый тип атак в данной главе, а второй тип в Главе 12, Атака на протоколы маршрутизации.

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

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

Физическая структура устройств взаимодействия

В сетях обмена данными устройство взаимодействия это аппаратный/ программный компонент, который принимает решения и переправляет пакеты в соответствии с этими решениями. Коммутатор локальной сети (LAN) перенаправляет пакеты в соответствии со сведениями Уровня 2 (то есть коммутирует таблицу перенаправления MAC - media access control); маршрутизатор перенаправляет пакеты на основе таблицы маршрутизации Уровня 3, межсетевой экран перенаправляет пакеты полагаясь на политику безопасности; и так далее. Давайте более подробно рассмотрим эти компоненты и увидим как они мугут подвергаться атакам.

 

Архитектура коммутаторов локальной сети

Коммутатор локальной сети работает на Уровнях 1 и 2 OSI-RM (Open Systems Interconnection Reference Model). Он перенаправляет кадры на основании сведений Уровня 2. На следующей схеме мы видим общую архитектуру коммутатора локальной сети:

 

Рисунок 7.1


Архитектура коммутатора локальной сети

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

Его таблица CAM (content- addressable memory, ассоциативной памяти) удерживает значения таблицы MAC адресов и изученных им портов. Таблицы FIB (forwarding information base, база данных маршрутизации), ACL (access control list, список контроля доступа) и QoS (quality of service, качество обслуживания) хранят дополнительные сведения, контурно описываемые так:

  • FIB удерживает считываемые сведения в зависимости от того куда надлежит перенаправлять приходящие в данный коммутатор кадры.

  • ACL принуждает к настроенным его сетевым администратором ограничениям - например, какие кадры надлежит отбрасывать, а какие следует перенаправлять.

  • Таблица QoS удерживает правила приоритета - то есть, какие кадры должны перенаправляться прежде прочих.

В зависимости от производителя и размера коммутатора существуют и прочие таблицы и механизмы. С точки зрения атаки или защиты именно такую архитектуру надлежит рассматривать когда мы планируем атаки или оборону.

 

Архитектура маршрутизаторов

Маршрутизатор это устройство, которое принимает решения на основании сведений Уровня 3 поступающих к нему пакетов и перенаправляет их. На своей следующей схеме мы наблюдаем типовую архитектуру маршрутизатора:

 

Рисунок 7.2


Архитектура маршрутизатора

При подобной архитектуре маршрутизатора у нас имеются операции Уровня 1, Уровня 2 и Уровня 3 - Уровень 1 поскольку пакеты принимаются и отправляются по кабелю, Уровень 2 по причине того что пакеты перенаправляются с порта в порт, а Уровень 3 из- за решений, основанных на адресах IP (Internet Protocol) и таблицах маршрутизации. По этой причине помимо атак Уровня 3, на маршрутизаторы также оказывают воздействие атаки Уровня 2.

В данной плоскости контроля у нас имеются различные типы запущенных в маршрутизаторе процессов. Самый первый тип, конечно же процессы маршрутизации - именно они составляют протоколы маршрутизации, которые выполняют обмен информацией с прочими маршрутизаторами в данной сетевой среде. Прочие процессы, которые перенаправляют обмен контроля это - например - ACL, которые пересылают или блокируют обмен, как это настроено его сетевым администратором, механизмы QoS, NAT (network address translation, трансляция сетевых адресов) многое иное.

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

 

Архитектура межсетевых экранов и устройств безопасности

Межсетевые экраны, балансировщики нагрузки и прочие устройства взаимодействия это приспособления, которые работают на Уровне 2 и выше, переправляют пакеты и выполняют прочие действия согласно типу устройства.

Межсетевые экраны переправляют пакеты в соответствии с политикой безопасности при помощи таких механизмов:

  • Фильтрация пакетов, которая принимает решение какие пакеты и сеансы переправлять, а какие блокировать.

  • Инспектирование с учётом состояния соединения, которое отслеживает направления сеанса и позволяет открывать сеансы только в определённом направлении.

  • Выявление и предотвращение внедрений (IDP, Intrusion detection and prevention) которое обнаруживает шаблоны внедрения и блокирует попытки внедрения в свою сетевую среду

  • Фильтрация содержимого, которая отслеживает собственно содержимое пакетов на верхних уровнях и принимает решение будут ли они перенаправляться или отбрасываться.

  • Механизмы противовирусные, анти- спам и противодействия вредоносному программному обеспечению, которые отслеживают содержимое отправляемого в эту сетевую среду обмена и отбрасывают его в случае его заражённости.

  • Такие механизмы как песочницы, которые прежде чем выгружать некий файл исполняют его локально в своём устройстве песочницы; шлюзы VoIP (Voice over IP), проверяющие наличие риска внутри поступающих голосовых вызовов: WAF (web application firewalls, межсетевые экраны веб приложений), выполняющие проверки внутри содержимого приложения и тому подобные.

[Замечание]Замечание

Существует разница между режимом перенаправления межсетевого экрана и тем решением, которое некий межсетевой экран предпринимает по отношению к тому переправлять пакеты или нет. Относительно режима перенаправления, данный межсетевой экран может быть настроен для работы в качестве коммутатора локальной сети (то есть, выполнять решения перенаправления на основании MAC адресов Уровня 2) - или же работать в качестве маршрутизатора (или перенаправлять пакеты основываясь на таблицах маршрутизации Уровня 3, что более распространено). В обеих ситуациях политика безопасности реализуется в тех пакетах, которые пересекают данный межсетевой экран.

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

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

Атаки в плоскости управления и как обороняться от них

Плоскость управления это та часть конкретного устройства, которая отвечает за контролирование самого устройства - то есть, за регистрацию в данном устройстве и его настройке, за получение команд SNMP, за отправку ловушек SNMP и сообщений Syslog (System Logging Protocol, протокола регистрации в системе) в консоль управления и тому подобного.

По этой причине атаки плоскости управления могут быть поделены на категории следующим образом:

  • Атаки перебором (брутальные атаки) обнаружения пароля - Telnet, SSH (Secure Shell)

  • Атаки перебором (брутальные атаки) относительно паролей SNMP (общих строк)

  • Атаки перебором (брутальные атаки) против паролей HyperText Transfer Protocol (HTTP)/ HTTP Secure (HTTPS)

  • Атаки перебором (брутальные атаки) на приложения с частным доступом

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

  • Атаки NTP (Network Time Protocol, протокола сетевого времени)

  • Атаки FTP (File Transfer Protocol, протокола передачи файла) и TFTP (Trivial FTP)

  • Сканирование SYN (Synchronize, пакеты SYN TCP - Transmission Control Protocol - которые предназначены для открытия TCP) и атаки с целью доступности процессов плоскости управления

Давайте посмотрим как осуществляются такие атаки и как от них обороняться.

Атаки брутальной силой на пароли консоли, Telnet и SSH

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

 

Как выполнять проверку на уязвимости

В Главе 5, Поиск уязвимостей протокола мы обсуждали атаки перебором в разделе Взлом имён пользователей и паролей (атаки брутальной силой).

Имеются различные типы средств проверки. Для угадывания паролей у нас имеются такие инструменты Linux как nmap, John the Ripper, ncrack, Hydra и Crunch.

Для обнаружения SNMP мы можем воспользоваться такими средствами как платформа OpenNMS, сканеры SNMP, подобные Lansweeper или иные инструменты с открытым исходным кодом или коммерческие.

Для взлома пароля HTTP/ HTTPS вы можете применять nmap или множество прочих средств проверки проникновения, например skipfish.

 

Как защищаться от атак

Существуют различные простые меры для осуществления в противодействие атакам перебора, контурно обозначим их:

  • RADIUS/TACACS+: Самый первый способ состоит в применении служб RADIUS (Remote Authentication Dial-In User Service, служба дистанционной аутентификации подключаемых по коммутируемым линиям связи пользователей) или TACACS+ (Terminal Access Controller Access-Control System Plus, терминал контроллера доступа системы контроля подключений плюс). Как вы можете видеть на следующем снимке экрана, для удостоверения пользователей эти службы пользуются сервером аутентификации:

     

    Рисунок 7.3


    Аутентификация RADIUS

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

    Настройка устройства с применением RADIUS или TACACS это зависящая от производителя процедура. Вы можете реализовать ей через Cisco, Juniper Networks и прочих производителей.

    Для серверов RADIUS существует множество версий с открытым исходным кодом, например, FreeRADIUS, помимо коммерческих реализаций, подобных ISE (Identity Service Engine) от Cisco и реализаций прочих производителей.

    [Замечание]Замечание

    RADIUS это открытый стандарт, впервые стандартизованный IETF (Internet Engineering Task Force, инженерной группой по развитию Интернета) в RFC (Request for Comments) 2138 (June 2000). TACACS+ это частный протокол Cisco. RADIUS применяет порты UDP (User Datagram Protocol) 1812 для аутентификации и 1813 для учётных записей, в то время как TACACS+ применяет порт TCP 49 для обеих целей. Оба протокола используются для AAA (authentication, authorization и accounting), то есть аутентификации пользователей, их авторизации на конкретные действия и ведения учётных записей, которые отслеживают их действия с незначительными отличиями между ними.

  • Ограничивать доступ с определённых станций: Второе средство, предпринимаемое для атак перебором заключается в ограничении доступа к устройствам взаимодействия на конкретные станции - скажем, на станции сетевого администратора. Это следует выполнять посредством ACL в самом устройстве. Для настройки ACL имеются различные процедуры производителей - например, в Cisco, в Juniper, в Hewlett Packard Enterprise (HPE) (аналогично Cisco) и так далее.

    [Замечание]Замечание

    Каждый производитель обладает своим собственным справочником команд, а в некоторых случаях вы обнаружите различные команды в разных устройствах взаимодействия одного и того же производителя. Когда вы разберётесь что защищать и как это оборонять, для вас останется лишь задача поиска этого в Google и чтении соответствующего руководства. В этой главе мы будем в основном применять примеры от Cisco, которая является одним из лидеров в сетях взаимодействия, хотя в некоторых представляющих интерес ситуациях мы воспользуемся образцами от прочих производителей - Juniper Networks, Extreme Networks, HPE, когда это будет существенным. В любом случае, основная цель данной главы снабдить вас методологией и перечнем что-делать. Для списка как-делать отсылаем вас к руководствам вашего сетевого оборудования.

  • Сильные и зашифрованные пароли: Естественно, последним моментом выступает настройка сильных и зашифрованных паролей.

    В Cisco вам придётся настроить enable secret, аналогично этому:

    
    enable secret <password>
    		

    Или же вы можете настроить имя пользователя и пароль так:

    
    username <name> secret <password>
    		
    [Замечание]Замечание

    Не забывайте, что Console, Telnet и SSH это три различных метода доступа. Вы обязаны настроить различные пароли и методы безопасности для каждого из них. Для каждого из них настройте безопасный доступ или отключите его.

  • Другой функциональной возможностью является Login Password Retry Lockout (блокировка числа повторов регистрации пароля), которая ограничивает значение числа попыток с тем, чтобы при атаках перебором заблокировать на какое- то время данной устройство взаимодействия.

Давайте перейдём к следующей потенциальной уязвимости - SNMP.

Атаки брутальной силой против паролей SNMP (общих строк)

Второй способ атаки грубой силой может быть успешным при попытке взлома пароля SNMP - то есть, строки сообщества в SNMPv1 и SNMPv2 . В SNMPv3 у нас имеются зашифрованные пароли, а потому с ними это сложнее сделать.

 

Как можно скомпрометировать SNMP

SNMP поставляется в трёх версиях: SNMPv1, SNMPv2c и SNMPv3. Первые две из этих версий пользуются строками сообщества, которые просто являются паролями простого текста на полномочия доступа только на чтение и на чтение - запись. Третья версия, SNMPv3, может настраиваться с механизмами шифрования имени пользователя и пароля, а это более безопасно.

Чтобы убедиться в защите ваших устройств против уязвимостей SNMP изучите следующие сведения:

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

  • Для сетевых сред от средних до больших или более сложных: Запустите программное обеспечение SNMP и включите обнаружение установленных по умолчанию строк сообщества - то есть общедоступных для Read-Only (RO) и частных для Read-Write (WR). Убедитесь что не были пропущены для обнаружения устройства с SNMP.

[Замечание]Замечание

SNMP это протокол агента управления, в котором у вас имеется приложение управления, обладающее тремя функциями: считывания сведений из запущенного агента в этом устройстве, запись информации в устройство и получение инициируемых таким устройством сообщений. Считывание информации осуществляется командами GET, GET_NEXT и GET_BULK; операции записи в устройство выполняются командой SEND, а инициируемые имеющимся агентом сообщения вызываются TRAP (SNMPv1/v2c) или INFORM (только SNMPv3). Следует тщательно рассматривать обладание полномочиями на доступ - считывая сведения из устройства мы будем изучать топологию и функциональные возможности рассматриваемой сетевой среды, а запись в устройство способна вносить в эту сеть изменения.

Для тестирования SNMP мы можем применять такие средства:

  • Для Windows: Любое программное обеспечение SNMP, такое как PRTG (Paessler Router Traffic Grapher) с https://www.paessler.com/ или SNMPc с https://www.castlerock.com/; подобные ManageEngine инструменты зачистки/ сканирования SNMP https://www.manageengine.com/products/oputils/download.html и прочие. Наилучший способ состоит в установке системы управления SNMP - существует большое число коммерческих систем, помимо аналогичных с открытым исходным кодом, например, Cacti (https://www.cacti.net/info/downloads) и Zabbix (https://www.zabbix.com/download), которые предоставят вам приличные результаты.

  • В Linux: Для отдельного устройства воспользуйтесь snmp-check. Вы можете наблюдать на приводимом ниже снимке экрана некий образец, в котором вы видите откликающийся на SNMP 172.30.122.254, в то время как 172.30.116.254 не откликается:

     

    Рисунок 7.4


    snmp-check с откликом

Теперь, когда мы взглянули на уязвимости SNMP и как на них можно нападать, давайте рассмотрим как защищаться от подобных атак.

 

Как защищаться от атак

Для защиты от считывания сведений с устройств взаимодействия выполните следующее:

  • Когда имеется такая возможность, пользуйтесь SNMPv3. Вы можете найти как это осуществлять для устройствCisco и Juniper.

  • Когда нет нужды в сложности SNMPv3 (скажем, в сетевых средах с требованиями низкого уровня доступности), замените устанавливаемые по умолчанию значения строк сообщества, к тому же предпочтительным будет запрещение варианта WRITE.

    [Замечание]Замечание

    SNMPv1 и SNMPv2c обладают устанавливаемыми по умолчанию строками сообщества - словом public для READ-ONLY и словом private длч READ-WRITE. Измените эти настройки по умолчанию!

  • В использующих ACL для ограничения доступа к устройству взаимодействия исключительно на систему управления приборах. Разрешите запросы SNMP только для IP адресов системы управления.

  • Наконец, создайте сильные строки сообщества (буквы в верхнем и нижнем регистре, цифры, специальные символы).

Поскольку у нас теперь имеется чёткое представление о первых двух способах доступа к устройствам взаимодействия, давайте рассмотрим последний, то есть HTTP и HTTPS.

Атаки брутальной силой против паролей HTTP/ HTTPS

HTTP (порт 80) и HTTPS (порт 443) также являются распространёнными портами, по которым выполняется доступ к устройствам взаимодействия и которые должны тщательно обрабатываться.

 

Как атаковать

При некоторых обстоятельствах будет просто взломать ваш веб сервер. Испробуйте следующие этапы:

  • Испытайте значения по умолчанию устройств. Имеются маршрутизаторы, коммутаторы и прочие устройства взаимодействия, которые поставляются с настроенными по умолчанию именами пользователей и паролями HTTP и HTTPS, а потому попробуйте их. Вы можете обнаружить эти полномочия на вебсайтах производителей, к тому же имеются применяющие их сотовые приложения - WiFi Router Password – Router Master, All Router Admin и прочие.

  • Воспользуйтесь средствами взлома паролей, такими как nmap со сценариями http-brute, John the Ripper и Hydra. Дополнительно прочитать о них вы можете в разделе Взлом имён пользователей и паролей (атаки брутальной силой) из Главы 5, Поиск уязвимостей протокола.

  • И, естественно, попробуйте стандартные пароли - имя пользователя, Cisco, Telnet, abcd1234 - и все те пароли, которые - к сожалению - (для пользователей) более широко распространены чем мы могли бы это предположить.

Теперь, когда мы поговорили о средствах атаки, давайте посмотрим как защищаться от таких типов атак.

 

Как обороняться против атак

Для защиты от взломов серверов HTTP/HTTPS устройств взаимодействия выполните следующее:

  • Когда вы не пользуетесь HTTP или HTTPS и предпочитаете CLI ( command-line interface, интерфейс командной строки), запретите их.

  • Когда применяются инструменты CLI, для аутентификации пользуйтесь RADIUS или TACACS+.

  • Настройте ACL, которые позволят доступ только со станций сетевого управления.

  • Воспользуйтесь (и проверьте это) сильными паролями.

Теперь давайте рассмотрим прочие потенциальные риски и как обороняться против них.

Атаки на прочие порты и службы

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

 

Как проверять на наличие уязвимостей

Вот пример. Запустите сканер NMAP (Zenmap, который - как вы можете это увидеть в верхней полоске на приводимом ниже снимке экрана - является графической версией nmap), и проверьте открытые службы. Вы можете видеть как это осуществляется:

 

Рисунок 7.5


Сканирование NMAP на уязвимости маршрутизатора

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

 

Как обороняться против атак

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

К примеру, давайте воспользуемся отсканированным нами в предыдущем примере маршрутизатором. У нас имеются три открытых порта, а именно:

  • Порт 23 (Telnet) - Рекомендуется закрыть Telnet и открыть доступ через SSH. Для выполнения этого в тестируемом нами маршрутизаторе Cisco просто под line vty 0 4 добавьте команду transport input ssh.

  • Порт 25 (SMTP) - В маршрутизаторе, коммутаторе или ином устройстве взаимодействия нет причин держать открытым порт 25. Для его закрытия воспользуйтесь ACL чтобы блокировать данный порт - это будет выполняться настройкой правил ACL для блокирования любого доступа к данному маршрутизатору.

  • Порт 1720 (H.323/Q.931) - Поскольку данные порты применяются для телефонии, а в данном маршрутизаторе не применяется никакая телефония, быстрый поиск по Google сообщит нам, что это поддельные порты, откликающиеся с межсетевого экрана Check Point, установленного перед данным маршрутизатором.

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

SYN- сканирование и имеющие целью процессы плоскости управления

Когда с некого внешнего устройства происходит масштабное нападение TCP-SYN, в плоскости управления могут происходить уязвимости, откликающиеся на сообщения SYN, что вызывает высокую степень загрузки ЦПУ или памяти в подвергающемся такой атаке устройстве. Против подобных типов атак имеются меры противодействия. Давайте рассмотрим как проверять наличие и защищаться от подобных уязвимостей.

 

Как проверять на наличие уязвимостей

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

  1. Для сканирования портов воспользуйтесь Nmap/Zenmap или иным программным обеспечением. Пример этого мы наблюдаем на Рисунке 7.5, на котором открыты порты 23, 25 и 1720. В данном примере мы видим открытыми порты 23 и 25.

  2. По выявленному общим сканированием открытому порту (например, порту 25 на Рисунке 7.5) запустите генератор пакетов (скажем, Colasoft Packet Builder) для производства наполнения SYN данного устройства взаимодействия.

  3. Для этого настройте Colasoft Packet Builder на пакеты TCP SYN с применением данного средства, как это описывается в последующих шагах.

  4. Откройте данное программное обеспечение, выберите Add, а в открывшемся окне для добавления в производимый обмен пакетов TCP выберите TCP Packet, что иллюстрируется следующим снимком экрана:

     

    Рисунок 7.6


    Генерация пакетов SYN TCP

  5. В отображаемой структуре пакета TCP настройте необходимые параметры, как это показано на приводимом ниже снимке экрана:

     

    Рисунок 7.7


    Настройка пакетов SYN TCP

  6. Вырабатывайте предназначенные для проверяемого устройства пакеты. Чтобы понять как это осуществлять, взгляните на следующий снимок экрана:

     

    Рисунок 7.8


    Генерация пакетов

  7. Кликните по кнопке Send.

  8. Выберите тот интерфейс, с которого вы будете производить обмен. Вы можете указать это его IP адресом.

  9. Настройте цикл с короткой задержкой между соответствующими пакетами и запустите производство пакетов.

    [Замечание]Замечание

    Существуют средства непосредственной выработки пакетов SYN. При помощи подобных Colasoft Packet Builder инструментов, вы способны получать необходимые биты и байты, а также выполнять настройку и вносит изменения в отправляемый обмен. Вы можете отправлять флаг SYN или иную комбинацию, которая способна нагружать проверяемое вами устройство.

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

На Рисунках 7.9 и 7.10 вы можете наблюдать иные образцы, в которых мы применяем при нападении два этапа, а именно:

  1. Для записи своего сканирования запускаем nmap с применением Wireshark.

  2. Запускаем Colasoft Packet Builder и множим свою атаку.

На следующем этапе мы воспользуемся nmap со следующей строкой: nmap -T4 -A -v 172.30.0.241. Давайте рассмотрим что означает каждая из команд в этой строке:

  • -T4: режим для агрессивного сканирования

  • -A: режим включения дополнительных параметров

  • -v: для подробностей - то есть, показывает результаты сканирования

Давайте рассмотрим что происходит:

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

     

    Рисунок 7.9


    Настройка nmap на сканирование устройства

  2. Выгрузите файл .pcap и сгенерируйте необходимую атаку. Это осуществляется при помощи функциональной возможности Import Colasoft Packet Builder (из меню File) при высокой скорости.

  3. Откройте файл, который вы захватили на Шаге 1.

  4. Как это проиллюстрировано приводимым ниже снимком экрана, запустите генератор пакетов в цикле на короткий промежуток времени:

     

    Рисунок 7.10


    Как запускать генератор пакетов

  5. Как мы можем наблюдать на Рисунке 7.10, получаемые результаты можно просматривать непосредственно в самом коммутаторе или в системе управления.

При помощи команды show processes cpu history вы можете наблюдать на нашем следующем снимке экрана вы можете наблюдать результаты такой атаки на Cisco Catalyst 2960:

 

Рисунок 7.11


Вывод show processes cpu history

Наконец, то что мы увидим в своей консоли управления (для данного примера это PRTG), это пики загрузки, что отображает наш следующий снимок экрана:

 

Рисунок 7.12


Индикация нагрузки в программном обеспечении SNMP

Основная причина, по которой мы наблюдаем загруженность в командной строке Cisco 80% и 70% в PRTG обусловлены собственно средствами измерения метода: при использовании CLI между образцами мы имеем интервалы в 1 секунду, в то время как при PRTG мы обладаем интервалами в 1 минуту.

Важный момент состоит в применении системы управления, которая выдаст предупреждение при загруженности ЦПУ на 70-75%; при подобных значениях наше устройство начнёт обладать медленными откликами. При более высоких значениях в 90-95% это устройство будет функционировать очень плохо с высокими задержками и при большой вероятности утраты пакетов.

 

Как обороняться против атак

Для защиты плоскости управления против атак переполнением TCP SYN мугут настраиваться различные механизмы контурно обозначим их:

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

  • Настройте пороговые значения - пороговое значение на загруженность ЦПУ (обычно выше 90%) и пороговое значение на использование памяти (как правило, 80-90%; проверьте имеющиеся рекомендации производителя).

  • Настройте уведомления о проблемах с памятью, например утечки памяти и переполнения буфера. О проблемах с памятью мы поговорим позднее в разделе Атаки на основе памяти, утечки памяти и переполнения буфера.

  • Настройте резервирование памяти для консольного доступа. Когда имеется атака, которая задействует все ресурсы памяти данного оборудования, вы всё ещё будете способны зарегистрироваться с применением такой консоли.

Большинство устройств с именем обладают собственными механизмами для защиты от атак SYN. В Cisco нам следует разрешить параметр TCP Intercept; для Juniper вы можете разрешить опцию экрана защиты посредника SYN-ACK-ACK, объясняемую в их документации; для Extreme Networks настройте dos-protect.

Для всякого настраиваемого вами устройства прочтите соответствующие рекомендации производителя для упрочнения и безопасности самого устройства или программного обеспечения.

Атаки в плоскости контроля и как обороняться против них

Как мы уже наблюдали ранее в данной главе, плоскость контроля содержит соответствующие протоколы и процессы, которые взаимодействуют между сетевыми устройствами для перемещения пакетов по всей имеющейся сетевой среде. В данной категории мы обладаем протоколами Уровня 2, такими как STP (Spanning Tree Protocol)/ RSTP (Rapid STP); протоколами маршрутизации Уровня 3, которые изучают топологии сетевой среды, например, CDP (Cisco Discovery Protocol) или LLDP (Link Layer Discovery Protocol), которые представляют сведения об оборудовании своим соседям; RSVP (Resource Reservation Protocol), который устанавливает и обеспечивает канал E2E (end-to-end) предварительно определённым QoS; ICMP (Internet Control Message Protocol), который используется для тестирования достижимости сетевой среды; а также прочие.

В Главе 10, Выявление атак LAN на основе IP и TCP/ UDP и в Главе 12, Атака на протоколы маршрутизации мы углубимся в подробности того как защищать сами сетевые протоколы. То что мы обсудим в данном разделе, это атаки на ресурсы устройства и как обороняться от них.

Относящиеся к плоскости контроля действия, которые воздействуют на ресурсы устройства

Существуют осуществляемые самими коммуникационными устройствами действия, которые оказывают воздействие в основном на имеющиеся интерфейсы устройства - коммутацию Уровня 2, к примеру. Имеются действия, которые влияют на ресурсы всего устройства - скажем, загрузку ЦПУ устройства, памяти и хранилища. При атаке на устройство мы сосредоточимся на втором типе: когда нашими целями выступают процессы, которые при своей загруженности переполняют ресурсы устройства до того момента, при котором оно замедляется и даже прекращает свою работу. В данном разделе мы рассмотрим наиболее распространённые.

[Замечание]Замечание

До точки отказа устройства взаимодействия способны загружать многие проблемы. Одним их указателей на некую атаку на устройство является то, что оно замедляется и наилучшим способом (конечно же) является установка порогового значения, которое будет отправлять уловленное состояние в вашу систему управления при высокой нагрузке. Для проверки вариантов высокого уровня нагрузки пользуйтесь командами устройства, такими как show processes (Cisco), show system processes extensive (Juniper) или командой иного производителя и проверяйте уровень процесса, который загружает данное устройство. Может оказаться, что это проблема в размере устройства, когда оно слишком мало и слабо для вашей сетевой среды, но также это может оказаться и атакой на его ресурсы. Относительно шаблонов атак отсылаем вас к Главе 9, Применение анализа поведения и выявление аномалий.

Давайте взглянем на те процессы, которые способны потреблять значительные системные ресурсы. Контурно обозначим основные принципы:

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

  2. Нестандартные протоколы и функциональные возможности - опции IP, нестандартные флаги TCP для маршрутизации портов плоскости контроля (например, порт TCP 179 для BGP - Border Gateway Protocol): нестандартные флаги могут быть сочетанием стандартных или недопустимых SYN и PSH, SYN-URG и так далее - а это может вызывать высокое потребление ресурсов.

  3. Протоколы безопасности (туннелирование, шифрование, аутентификация) - при некоторых обстоятельствах не существует никаких дополнительных аппаратных модулей для этого, а если это обрабатывается ЦПУ самого устройства, это может потреблять значительные ресурсы.

  4. Протоколы управления - опрос SNMP с высокой частотой или NetFlow способны вызывать значительное потребление ресурсов ЦПУ.

Давайте подробнее рассмотрим это.

 

Маршрутизация и процессы маршрутизации

Процессы маршрутизации способны загружать ЦПУ самого маршрутизатора. Обычно загружающими маршрутизатор протоколами обычно выступают протоколы BGP.

Атаки на процессы маршрутизации подробно будут рассмотрены в Главе 12, Атака на протоколы маршрутизации. Для процессов проверки жизнеспособности устройства убедитесь что нет никакой нагрузки, поступающей от маршрутизации.

 

Шифрование - VPN и туннелирование

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

Когда вы наблюдаете высокую загруженность ЦПУ по причине процесса шифрования, убедитесь в следующем:

  • Подключённые клиенты известны вам.

  • Процессы шифрования настроены вами.

Давайте обсудим ARP (Address Resolution Protocol).

 

Опции IP и время жизни

Всякий пакет с параметрами IP, фрагментацией, а также пакеты с равным 1 полем TTL (Time-To-Live) переправляются для обработки в ЦПУ.

Параметры IP были представлены в имевшемся стандарте IPv4 (IP version 4), но никогда в реальности не применялись вплоть до начала 2021, когда они были определены вновь для таких функциональных возможностей как ILNP (Identifier-Locator Network Protocol, RFC 6746, November 2012), Label Edge Router Forwarding of IPv4 Option Packets (Помеченный пограничный маршрутизатор, пересылающий варианты опции пакетов IPv4, RFC 6178, March 2011), реализованный в MPLS (Multi-Protocol Label Switching) и некоторые иные функциональные возможности, которые не применяются в корпоративных сетевых средах. По этой причине, их использование способно загружать ЦПУ устройства.

Ещё одна проблема заключается в поле TTL пакета. Для TTL = 1, что применяется в некоторых протоколах маршрутизации в качестве механизма защиты, это также нечто, подлежащее обработке а ЦПУ и потенциально грузящее его.

 

Запросы ARP

ARP это протокол, который применяется для разрешения MAC адреса своего получателя из его IP. В разделе Атаки L3 и на основе ARP из Главы 6, Поиск атак на основе сетевой среды, мы обсуждали атаки ARP. Данный тип атак способен вызывать сетевые ошибки, как мы рассмотрели это в Главе 6, Поиск атак на основе сетевой среды, но они к тому же способны загружать ресурсы устройства.

Для защиты от атак отравления ARP вы можете пользоваться пределом частоты ARP. Для исключения данной проблемы отсылаем вас к Dynamic ARP Inspection в руководстве соответствующего производителя.

Давайте обсудим проблемы IP.

 

Фрагментация

Фрагментация IP это стандартный механизм, который применяется при необходимости передачи через кадры Ethernet больших пакетов IP, которые обладают максимальной полезной нагрузкой в 1 500 байт (1 518 байт включая свой заголовок; 1 522 байта включая свой заголовок и тег VLAN - virtual LAN, когда он имеется). Очертим здесь некоторые проблемы, которые могут вызываться фрагментацией:

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

  • Вторая проблема состоит в том, что в таком фрагменте может скрываться червь и обнаруживается он лишь после сборки.

  • Третья проблема возникает при попытке вызова задачи повторной сборки в принимающем устройстве. Одним из полей в заголовке IP является поле значения смещения фрагмента, которое указывает величину смещения содержащихся в фрагменте данных от начала исходного пакета без фрагментации. Когда сумма смещения и размера одного фрагментированного пакета отличается от суммы следующего фрагментированного пакета, такие пакеты перекрываются и способны вызывать сбой того сервера, который пытается собрать данный пакет. Для предотвращения атак фрагментации IP настройте ACL, который запрещает приём фрагментов IP соответствующим маршрутизатором или имеющимися процессами маршрутизации.

Для осуществления этого отсылаем вас к руководствам производителей - например, Cisco Security Configuration Guide или Juniper. Теперь, когда мы рассмотрели что может подвергаться атакам, давайте посмотрим как от таких атак защищаться.

Атаки в плоскости данных и как противостоять им

Как мы видели ранее, плоскость данных это та часть нашего сетевого устройства, которая отвечает за сам обмен данными через это устройство, а следовательно атаки на такую плоскость данных это те, которые имеют целью процессы и службы, отвечающие за обмен данными. Службы плоскости данных это такие службы как ICMP, ARP и RARP Reverse ARP, помимо ряда прочих.

Защита от интенсивного обмена через интерфейс

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

  • Пороговое значение

  • Контроль шторма

Настройка порогового значения: 80-90% полосы пропускания интерфейса должны представлять разумное значение. Скажем, для Cisco, а для Juniper.

[Замечание]Замечание

Во многих местах мы включаем ссылки на документы производителей. Включаемые нами ссылки относятся лишь к наиболее употребимым производителям - Cisco, Juniper Networks и прочим, что основывается лишь на популярности.

Контроль шторма конфигурации: Данная команда ограничивает процентную величину общего объёма данных, которые обмениваются через интерфейс. Контроль шторма должен быть ограничен 10-15% обмена интерфейса. Для настроек контроля шторма отсылаем вас к руководствам вашего производителя.

Теперь давайте поговорим об атаках на ресурсы оборудования.

Атаки на системные ресурсы

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

Атаки на основе памяти, утечки памяти и переполнения буфера

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

 

Атаки на основе памяти и причины утечек памяти

Утечки памяти могут быть такими:

  • Некое приложение, которое непрерывно хранит данные в памяти, причём не высвобождает эту память для прочих приложений.

  • Неэффективное приложение, которое блокирует большой объём памяти без реальной потребности в ней, препятствуя прочим приложениям в доступе к этой части памяти.

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

Давайте взглянем на то как настраивать уведомления во избежание утечек памяти.

 

Настройка предупреждений о низких объёмах свободной памяти

Относительно того как это делать отсылаем вас к руководствам Cisco и Juniper.

 

Защита от причин атак на основе памяти

Настройте минимальное резервирование памяти при котором данное сетевое устройство будет способно отсылать критически важные уведомления. Отсылаем вас к руководствам Cisco и Juniper.

Давайте обсудим проблемы ЦПУ.

Перегрузка и уязвимости ЦПУ

ЦПУ устройства может быть перегруженным по причине допустимых и недопустимых операций, в то время как недопустимые операции способны вызываться атаками DoS/DDoS (denial of service / distributed DoS) или иного типа атак.

Для защиты от атак на основе ЦПУ в устройствах Cisco настройте предупреждения о высоком потреблении ЦПУ. Для настройки уведомлений вам необходимо выполнить следующие команды:

  • snmp-server enable traps cpu <threshold>

  • snmp-server host <ip-address> traps <my-community-string> cpu

  • process cpu threshold type total rising <high-value> interval <time-high> falling (low-value> interval <low-time>

Чтобы сделать то же самое на устройствах Juniper, отсылаем вас к руководству Juniper.

Основной принцип заключается в отправке некого перехвата когда загруженность ЦПУ превосходит заданное значение, настроенное в параметре <high-value> на промежуток времени, настроенный в параметре <high-time>. Другая ловушка будет отправляться когда она уходит ниже низкого значения, настроенного в параметре <low-value> на промежуток времени, настроенный в параметре <low-time>, который должен быть настроен для величины значения обычной работы, обычно около 30%.

Выводы

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

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

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

Вопросы

  1. Атаки на плоскость контроля нацелены на:

    1. Данные, которыми обмениваются эти устройства

    2. Сведения контроля устройствами, которые обмениваются через них

    3. Протоколы взаимодействия, которые используются для обмена сведениями через эти устройства

    4. Управление таким устройством

  2. Атаки грубой силой это атаки которые:

    1. Генерируют большой объём обмена для крушения своей цели

    2. Применяют механизмы предсказания паролей для проникновения в устройство

    3. Насильно блокируют доступ к устройству взаимодействия

    4. Аналогичны атакам на плоскости контроля и управления

  3. Вам следует настраивать в своих сетевых устройствах SNMPv3:

    1. Всегда - SNMPv3 это версия с наивысшей безопасностью, а следовательно её надлежит всегда настраивать.

    2. Это зависит от значения уровня безопасности, который необходим и тех рисков, предметом которых вы являетесь.

    3. Только для защиты плоскости управления.

    4. Только для защиты плоскости контроля.

  4. Атаки SYN это атаки, которые:

    1. Генерируются для сканирования сетевого устройства на предмет открытых портов TCP

    2. Генерируются для загрузки ресурсов устройства и его замедления, потенциально приводя к его крушению

    3. Генерируются для синхронизации DDoS атак на сервер организации

    4. Генерируются для взлома паролей устройства

  5. Каковы значения загруженности ЦПУ, для которых надлежит настраивать уведомления по их достижению этим устройством?

    1. Нам следует настроить в качестве порогового значения 98%. Устройство должно быть полностью работающим вплоть до этого максимума.

    2. Нам следует настроить в качестве порогового значения 80-90% с тем, чтобы мы были способны получить уведомление прежде чем возникнет данная проблема, а не после этого.

    3. Нам следует настроить в качестве порогового значения 95% с тем, чтобы это было по возможности наиболее близким к событию замедления.

    4. Нам следует настроить в качестве порогового значения 90% с тем, чтобы это было по возможности наиболее близким к событию замедления.