Кибербезопасность: все, что вы хотели знать о DDoS атаках-3

Кибербезопасность: все, что вы хотели знать о DDoS атаках

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

Леонид Шапиро, архитектор ИТ-систем

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

В рамках цикла по DDoS-атакам, начатого в первой и второй статьях, имеет смысл рассмотреть сканирование. Что оно собой представляет? Какие угрозы несет? Почему так важно ему противостоять? Начнем с определений. Что такое сканирование? Сканирование – это набор процедур, позволяющих идентифицировать узлы, порты и сервисы целевой системы. Сканирование сети позволяет злоумышленнику собрать профиль атакуемой организации.

Согласно руководству по этичному хаккингу (Ethical Hacking and Countermeasures EC-Council) различаются следующие типы сканирования:

сетевое сканирование – определение находящихся в сети узлов;
сканирование портов – выявление открытых портов и функционирующих сервисов;
сканирование безопасности системы – выявление известных уязвимостей системы.

Некоторые компании, специализирующиеся на защите от DDoS, не рассматривают сканирование в качестве атаки и не считают нужным ему противостоять. Действительно, на первый взгляд никакого вреда системе ведь нет, тем не менее с таким подходом трудно согласиться, ведь сканирование предваряет атаку, позволяя злоумышленнику выяснить, какие сервисы работают в целевой системе, а значит, подготовить и провести целенаправленную атаку против выявленных сервисов и их уязвимостей (см. рис. 1). Следовательно, бороться с разведкой злоумышленников необходимо.

Цели сканирования

Рисунок 1. Цели сканирования

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

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

Методы сканирования

Выявляем структуру сети. Самый простой способ сканирования – ICMP scanning. Принцип работы основан на протоколе ICMP, и такой тип

Сканирование ICMP sweep

Рисунок 2. Сканирование ICMP sweep

сканирования позволяет выяснить «живые» узлы в сети и построить схему сети с перечнем ее узлов. Суть метода заключается в отправке ICMP-запросов узлам сети, если компьютер или иное устройство, работающее со стеком протоколов TCP/IP, активно, то будет отправлен ответ. Это так называемый ping sweep или ICMP sweep (см. рис. 2). Существует огромное количество средств, позволяющих выполнить подобное сканирование.

Сканирование портов. Следующий этап разведки – выявление открытых портов. По сути своей, это дает возможность определить, какие сервисы работают на удаленном узле, список которых мы уже получили в результате предыдущего сканирования. Кроме того, из анализа полученных пакетов можно также выявить операционную систему и ряд других важных параметров (наличие фильтра пакетов, например).

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

Это могло бы выглядеть так:

Пилот: Шереметьево-Руление, Аэрофлот 502, разрешите предварительный.
Диспетчер: Аэрофлот 502, 25 правая1 по РД2 10, магистральной, РД5 предварительный разрешаю.
Пилот: Аэрофлот 502, 25 правая, по РД 10, магистральной, РД5 предварительный разрешили.
Что тут происходит? Пилот обратился к диспетчеру с запросом о разрешении руления и его маршруте. Диспетчер разрешил руление и определил маршрут следования. Пилот подтвердил маршрут следования и разрешение диспетчера. Все, можно двигаться – маршрут получен.

Очень похожее происходит и в TCP-взаимодействии. Здесь используется схема three-way-handshake, или «трехэтапного» согласования, встречается также термин «трехэтапное квитирование», которое позволяет синхронизировать передающий и получающий узлы и установить сессию (см. рис. 3.), что, в сущности, идентично примеру с радиопереговорами.

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

Установка TCP-сессии

Рисунок 3. Установка TCP-сессии

Некоторые методики сканирования портов. Самый эффективный и несложный способ сканирования – Full Connect Scan (Full Open Scan). Его принципы как раз показаны на рис. 3. Происходит попытка выполнить трехэтапное согласование (three-way-handshake), с интересующими исследователя узлами. Если искомый порт открыт, то мы получаем от него сообщение SYN+ACK, после этого посылаем узлу RST (сброс сессии), если закрыт, то нам приходит RST от проверяемого узла. Надо отметить, что такой способ сканирования легко идентифицируется, стало быть, противостоять ему несложно.

Другой способ сканирования сети называется Stealth Scan (Half-open Scan). В этом случае атакующий старается обойти защиту брандмауэра и замаскироваться под обычный сетевой трафик с тем, чтобы избежать фиксации события сканирования в логах системы. Здесь речь не идет о согласовании, исследователь просто отправляет SYN-пакет на интересующий порт требуемого сервера. Если в ответ приходит SYN+ACK, то порт открыт, если RST, то порт закрыт.

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

Не менее известные методы сканирования – Xmas Scan и Null Scan, однако мы не будем их рассматривать ввиду того, что защита от них реализована в рамках современных операционных систем Microsoft, поэтому они не будут представлять для нас большого интереса. Особенность этих типов сканирования – стелс режим работы, то есть без установки сессии. Впрочем, посмотреть детали можно в курсе Ethical Hacking или в книге «Network Security Test Lab». Эти типы сканирования эффективны только для операционных систем, где TCP-стек работает на основе RFC 793. Все современные операционные системы от Windows Vista и старше не подвержены этому риску.

Пожалуй, наиболее интересным способом сканирования является Idle Scan. Основная идея заключается в том, что злоумышленник может просканировать жертву, не показывая ей своего IP-адреса, то есть с точки зрения сканируемого узла злоумышленник с ней как бы и не общается. Используется «подставной» узел, который и может быть определен системами противодействия вторжениям в качестве источника атаки. Это весьма разумная методика, так называемый спуфинг, когда адрес отправителя подменяется на адрес другого устройства. Надо сказать, что «подставным» узлом или «зомби» может стать компьютер, который обладает определенными уязвимостями. Операционные системы, как правило, должны быть обновлены, однако это не всегда так, и атакующий всегда может найти «помощников», кроме того, в качестве «зомби» может быть использован сетевой принтер или другое сетевое устройство, которое работает с базовой функциональностью стека TCP/IP.

Это сканирование использует поле Identification в IP-заголовке (IPID). Значение IPID увеличивается на единицу в каждом следующем

Idle-сканирование (порт на сервере открыт)

Рисунок 4. Idle-сканирование (порт на сервере открыт)

пакете, который отправляет узел. В сущности, это и есть уязвимость, поскольку появляется возможность предсказать, какое количество пакетов было передано между двумя пакетами, которые были получены. Современные операционные системы используют случайное значение для поля IPID, однако, как уже было упомянуто выше, всегда можно найти решение. Для современных Unix и Windows систем от Windows Vista и старше эта проблема уже потеряла свою актуальность. На первом шаге (1) атакующий обращается к подставному устройству со стандартным SYN-пакетом (см. рис. 4).

Устройство отвечает пакетом SYN ACK (2) или SYN RST, что более вероятно, однако из заголовка пакета атакующему становится виден IPID. Его-то и надо запомнить (3). Далее атакующий обращается к интересующему его серверу (4), при этом подменяет свой IP-адрес на адрес подставного узла, то есть маскируется, используя спуфинг (подмену адресов). В ответ на этот запрос сервер, если порт открыт, посылает SYN/ACK на подставной адрес (5). Мы ведь выполнили подмену. Не зная, что делать с этим пакетом, подставной компьютер в ответ пошлет RST (сброс сессии), при этом увеличит значение своего IPID. В нашем случае он станет равным 30132 (6). Если порт закрыт, то сервер пошлет сброс сессии (RST) – см. рис. 5 (5).

Idle-сканирование (порт на сервере закрыт)

Рисунок 5. Idle-сканирование (порт на сервере закрыт)

IPID подставного узла остался неизменным, в нашем случае 30131, поскольку «зомби» никому больше ничего не отправлял. Теперь останется еще раз обратиться к «зомби», как мы это уже делали выше, выявить его IPID, сравнить его с имеющимся у нас значением. Если IPID увеличился на 2, то порт открыт.

Еще один важный момент, который хотелось бы отметить, – операционные системы имеют свою специфику при работе со стеком TCP/IP. Используя эти особенности при анализе пакетов, полученных при сканировании, вполне возможно выяснить, с какой ОС мы имеем дело, на этих принципах построены методики сканирования Banner Grabbing. Задача – выявить информацию о вычислительной системе и ее уязвимостях, что позволит атакующему использовать эти знания для своих последующих деструктивных действий. Любой современный сканер предоставит атакующему эту информацию.

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

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

Следовательно, службы ИБ организации должны внимательно отнестись к вопросам сканирования и обеспечить эффективное противодействие подобной разведке. Рассматривая средства противодействия вторжениям, стоит обратить внимание на их возможности по блокировке различных методик сканирования систем.

Окончание. Начало см.:

error: Content is protected !!