Атаки «отказ в обслуживании» (DoS) влияют на доступность информационных ресурсов. Успешно реализованные атаки имеют непосредственное влияние на бизнес клиентов и носят деструктивные последствия. К примеру, если атаке подвергается интернет-магазин, то продолжительный отказ в обслуживании может нанести огромные финансовые убытки компании -"жертвы".
Denial of Service, или сокращенно – DDoS обозначает отказ от обслуживания. В этом случае речь идёт о большом количестве злонамеренных запросов, которые поступают на сервер "жертвы" из множества различных мест. Как правило такие атаки организуются посредством бот-сетей.
В этой статье мы расскажем какие типы DDoS-трафика и какие виды DDoS-атак существуют.
Содержание:
Типы DDoS-трафика
Самый простой вид трафика —HTTP-запросы . Для того, чтобы сформировать HTTP-запрос, необходимо составить стартовую строку, а также задать по крайней мере один заголовок — это заголовок Host, который является обязательным, и должен присутствовать в каждом запросе.
Запрашивающая сторона может использовать огромное количество заголовков, придавая им нужные свойства. Злоумышленники проводящие DDoS, могут изменять эти и многие другие HTTP-заголовки, делая их труднораспознаваемыми для выявления DDoS-атаки.
HTTP GET
- HTTP(S) GET-запрос — этот метод является самым распространенным и запросы к серверу чаще всего происходят с его использованием. Cоздать запрос методом GET- это набрать URL-адрес в адресную строку браузера.
- HTTP(S) GET-флуд — этот метод атаки прикладного уровня (7) модели OSI, при котором атакующий посылает мощный поток запросов на сервер. Цель атаки заключается в том, чтобы заставить сервер выделить как можно больше ресурсов для обслуживания атаки, тем самым лишив легитимных пользователей доступа к ресурсам сервера.
HTTP POST
- HTTP(S) POST-запрос — метод, при котором данные помещаются в тело запроса (Entity-Body) для последующей обработки на сервере. HTTP POST-запрос кодирует передаваемую информацию и помещает на форму, а затем отправляет этот контент на сервер. Данный метод используется при необходимости передавать большие объемы информации.
- HTTP(S) POST-флуд — это тип атаки, при котором количество POST-запросов переполняют сервер так, что сервер не в состоянии ответить на все запросы. Это может привести к повышенному использованию системных ресурсов сервера, и, в последствии, к его остановке.
Каждый из описанных выше HTTP-запросов может передаваться по защищенному протоколу HTTPS. В этом случае все пересылаемые между клиентом (злоумышленником) и сервером данные шифруются. Получается, что «защищенность» тут играет на руку злоумышленникам: чтобы выявить злонамеренный запрос, сервер должен сначала расшифровать его. Т.е. расшифровывать приходится весь поток запросов, которых во время DDoS-атаки поступает очень много. Это создает дополнительную нагрузку на сервер-жертву.
SYN-флуд (TCP/SYN) - одна из разновидностей сетевых атак типа отказ от обслуживания, которая заключается в отправке большого количества SYN-запросов (запросов на подключение по протоколу TCP) в достаточно короткий срок. Клиент генерирует SYN-пакет, запрашивая новую сессию у сервера. Поскольку TCP сессия открыта (алгоритм “трехэтапного рукопожатия TCP” исполнен), хост будет отслеживать и обрабатывать каждую пользовательскую сессию, пока она не будет закрыта. Во время SYN Flood атакуемый сервер с большой скоростью получает поддельные SYN-запросы, содержащие поддельный IP-адрес источника. SYN-флуд поражает сервер, занимая всю память таблицы соединений (Transmission Control Block (TCB) table), обычно используемую для хранения и обработки входящих пакетов. Это вызывает критическое падение производительности и, как итог, отказ в работе сервера.
UDP-флуд - заключается в отправке множества UDP-пакетов (как правило, большого объёма) на определённые или случайные номера портов удалённого хоста, который для каждого полученного пакета должен определить соответствующее приложение, убедиться в отсутствии его активности и отправить ответное ICMP-сообщение «адресат недоступен». В итоге атакуемая система окажется перегруженной: в протоколе UDP механизм предотвращения перегрузок отсутствует, поэтому после начала атаки паразитный трафик быстро захватит всю доступную полосу пропускания.
ICMP-флуд - на сервер-жертву посылается большое количество поддельных ICMP пакетов с широкого диапазона IP-адресов. Цель злоумышленника - заполнение канала и перегрузка сервера-жертвы потоком поддельных запросов. Учитывая, что пакеты ICMP не требуют подтверждения о получении, как TCP, “мусорный” трафик по протоколу ICMP так же тяжело выявлять, как и UDP. ICMP Flood может быть реализован с целью сбора информации о сервере (открытые порты, и адрес назначения), чтобы затем организовать узконаправленную атаку по порту или приложению.
MAC-флуд - редкий вид атаки, направленный в основном на сетевое оборудование. Атакующая сторона отправляет пустые Ethernet пакеты с разными MAC адресами. Свитч рассматривает такие пакеты как отдельные, и резервирует под каждый из них некое количество ресурсов. Насыщение ресурсов может привести к тому, что свитч перестанет отвечать на запросы, а в отдельных случаях — к полному сбою таблицы маршрутизации.
Классификация и цели DDoS-атак по уровням OSI
OSI – это семиуровневая эталонная модель, которая описывает схему взаимодействия сетевых устройств. Виды DDoS атак и защит от них, доступных на каждом из уровней, различны. Рассмотрим их более подробно.
1-й уровень OSI: Физический - самый низкий уровень, на котором передаются двоичные данные. Работает благодаря протоколам 100BaseT, 1000 Base-X, а также концентраторы, розетки и патч-панели, которые их используют.
Последствия: сетевое оборудование приходит в негодность и требует ремонта для возобновления работы.
Что делать: использовать систематический подход к мониторингу работы физического сетевого оборудования.
2-й уровень OSI: Канальный - связывает сети на уровне каналов и работает через коммутаторы и концентраторы. Имеет два подуровня: LLC (Logical Link Control) — управление логическим каналом и MAC (Media Access Control) — управление доступом к среде передачи. На канальном уровне задействованы такие протоколы, как протокол связи двух устройств PPP (Point-to-Point), стандарта передачи данных FDDI (Fiber Distributed Data Interface), протокол обнаружения соединений между устройствами CDP (Cisco Discovery Protocol)
Последствия: Потоки данных от отправителя получателю блокируют работу всех портов.
Что делать: Многие современные свитчи могут быть настроены таким образом, что количество MAC адресов ограничивается надежными, которые проходят проверку аутентификации, авторизации и учета на сервере (протокол ААА) и в последствии фильтруются.
3-й уровень OSI: Сетевой - маршрутизация и передача информации между различными сетями. Работает по протоколу IP (Internet Protocol), ICMP, ARP, RIP и роутеры, которые их используют.
Последствия: Снижение пропускной способности атакуемой сети и возможная перегруженность брандмауэра.
Что делать: Ограничить количество обрабатываемых запросов по протоколу ICMP и сократить возможное влияние этого трафика на скорость работы Firewall и пропускную способность интернет-полосы.
4-й уровень OSI: Транспортный - гарантирует надёжную передачу данных на пути из «А в Б». Основные протоколы модели OSI этого уровня: UDP, который не устанавливает соединение при передаче данных (например, видео, музыки, простых файлов), и TCP, который всегда устанавливает соединение (например, при передаче архивов, программ и паролей).
Последствия: Достижение пределов по ширине канала или по количеству допустимых подключений, нарушение работы сетевого оборудования.
Что делать: Фильтрация DDoS-трафика, известная как blackholing — метод, часто используемый провайдерами для защиты клиентов (мы и сами используем этот метод). Однако этот подход делает сайт клиента недоступным как для трафика злоумышленника, так и для легального трафика пользователей. Тем не менее, блокировка доступа используется провайдерами в борьбе с DDoS-атаками для защиты клиентов от таких угроз, как замедление работы сетевого оборудования и отказ работы сервисов.
5-й уровень OSI: Сеансовый -обеспечивает устойчивую связь между устройствами на время сеанса. Например, в качестве сеанса может выступить видеоконференция. Этот уровень функционирует за счёт таких протоколов, как SMPP, который используется при USSD-запросах, отправке SMS, и PAP, который отправляет пароль и имя пользователя без шифрования.
Последствия: Делает невозможным для администратора управление свитчем.
Что делать: Поддерживать прошивки аппаратного обеспечения в актуальном состоянии для уменьшения риска появления угрозы.
6-й уровень OSI: Представительский - отвечает за преобразование данных в нужный формат. Например, модифицирует изображение формата JPEG в биты (ноли и единицы) для быстрой передачи и возвращает в JPEG по достижении адресата. Уровень работает на основании следующих протоколов и кодировок: PNG, JPEG, GIF, TIFF, MPEG, ASCII и других.
Последствия: Атакуемые системы могут перестать принимать SSL соединения или автоматически перегружаться.
Что делать: Для уменьшения вреда обратите внимание на такие средства, как распределение шифрующей SSL инфраструктуры (т.е. размещение SSL на отличном сервере, если это возможно) и проверка трафика приложений на предмет атак или нарушение политик на платформе приложений. Хорошая платформа гарантирует, что трафик шифруется и отправляется обратно начальной инфраструктуре с расшифрованным контентом, находившимся в защищенной памяти безопасного узла-бастиона.
7-й уровень OSI: Прикладной - самый высокий уровень, на котором организуется связь приложений с сетью. Например, на этом уровне происходит просмотр страниц с помощью протокола HTTP, передача и получение почты с помощью POP3 и SMTP и др.
Последствия: Нехватка ресурсов. Чрезмерное потребление системных ресурсов службами на атакуемом сервере.
Что делать: Мониторинг приложений — систематический мониторинг ПО, использующий определенный набор алгоритмов, технологий и подходов (в зависимости от платформы, на котором это ПО используется) для выявления 0day-уязвимостей приложений (атаки 7 уровня). Идентифицировав такие атаки, их можно раз и навсегда остановить и отследить их источник. На данном слое это осуществляется наиболее просто.
Защита от DDoS-атак
Несмотря на то, что разработчики ПО устраняют проблемы с безопасностью и регулярно выпускают обновления, злоумышленники постоянно совершенствуют возможности DDoS — придумывают новые способы привести системы к отказу.
Чтобы защитить свой проект от атак DDoS на низком уровне, стоит увеличить ёмкость канала или делать профилактику и глубокий анализ сетевой инфраструктуры. Чтобы защититься от высокоуровневых атак, рекомендуется регулярно анализировать TCP-клиентов и TCP-пакеты на сервере, а также использовать постоянный мониторинг состояния системы в целом и программного обеспечения в частности.