Виды DDoS-атак: как именно выводят из строя сервисы

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

Покупай VPS/VDS сервер!

Быстрые VPS серверы на VZ и KVM с бесплатной админкой 24/7, тестом и ежедневными бэкапами


Уровни атак: L3/L4 против L7

Атаки уровней L3/L4 осуществляются на сетевом (L3) и транспортном (L4) уровнях согласно архитектуре сетевой модели OSI. Их основная цель – перегрузить канал связи, используемый сервером. Их усиление может происходить за счёт сети и её ресурсов, в частности, путём формирования множества запросов от объёмных ботнетов (объединенных в сеть групп ботов). Обычно её легко обнаружить, например, по резкому всплеску трафика в «тихие» часы суток.

Атаки уровня L7 отвечают прикладному уровню модели OSI и направлены на сетевые приложения. Их цель – вывести эти приложения «из строя». «Нападению» могут подвергаться веб-серверы, CMS-системы, разнообразные онлайн-сервисы и другие веб-компоненты, число которых постоянно растёт. Усиление может осуществляться только за счёт машинных ресурсов – CPU, RAM и др. Самая опасная характеристика L7 – сложность обнаружения, поскольку она действует медленно и незаметно. А результат может быть губительным для всей системы.

Flood-атаки (SYN, UDP) — «забиваем канал»

Эти виды «работают» на уровне транспортных протоколов и преследуют цель свести до нуля пропускную способность канала передачи данных. Отсюда и название – Flood (переполнение или избыточность)

SYN-флуд является классическим видом атак этого типа. Суть их действия заключается в отправке на атакуемый сервер множества SYN-пакетов для установки TCP-соединения. Однако его установка никогда не завершается, поскольку со стороны спамера (тот, кто инициировал атаку), в нарушение существующих правил, не отправляется ACK-пакет в ответ на SYN-ACK. В результате, на сервере в специальной таблице состояний создаётся множество записей для всех незавершённых соединений, что ведёт к её переполнению. После этого сервер переходит из рабочего режима обработки запросов в режим «отказ в обслуживании», что равносильно выходу его из строя.

UDP-флуд стал дальнейшим развитием SYN-флуда и сейчас является одним из наиболее распространённых видов DDoS. Его название происходит от названия пакетов типа UDP (User Datagram Protocol), которые в большом количестве отправляются спамером на целевой сервер. В ответ на каждый такой запрос он вынужден отправлять ICMP-сообщение о том, что порт недоступный (Destination Unreachable), что ведёт к перегрузке сети и расходованию производственной мощности сервера (CPU, RAM, ...). В итоге, через какое-то время (в зависимости от интенсивности «штурма») сервер переходит в режим «отказ в обслуживании».

Изощрённость UDP-флуда ещё и в том, что спамер, в большинстве случаев, подделывает IP-адреса отправителей UDP-пакетов или «зомби» (скомпрометированные устройства, составляющие ботнет). В результате, ICMP-ответы сервера перенаправляются на другие адреса и не мешают «зомби» долгое время сохранять свою работоспособность и быть анонимными. Для его осуществления часто используются такие программы, как, например, UDP Unicorn.  

Усиление (DNS, NTP) — «увеличиваем трафик в 10–100 раз»

Одними из наиболее губительных по масштабам причинённого вреда, являются «усиленные» или amplification-атаки на DNS-сервера. Теоретически они способны вывести из строя целые сектора Интернет-сети, которые, как известно, привязываются к определённым DNS-серверам. «Штурмы» могут быть осуществлены, как путём захвата системных ресурсов сервера, так и путём «забивания» полосы пропускания канала связи.

Главная их задача – перевести DNS-сервер в режим «Denial of Service» и таким образом вывести его из строя. В этом случае http-запросы на «разрешение» IP-адресов сайтов по их доменному имени не будут приводить к положительному результату, и поэтому сайты будут недоступны для просмотра.

Для проведения «штурма», например, может быть использована атака вида UDP Flood DNS, которая является частным случаем UDP-флуда, направленного на DNS-сервера. При этом обычно используется 53 порт. Суть формируемых к серверу запросов состоит в запросе информации об IP-адресе несуществующего домена. При этом объём ответов DNS-сервера значительно превышает объём поступивших запросов, что может в десятки и даже сотни раз усилить атаку и превратить её в мощнейший DDoS-«штурм» для любого сервера.      

Следует отметить, что не все DNS-сервера могут «упасть» под действием таких атак, а только те, которые используют набор протоколов расширений безопасности DNSSEC и неправильно сконфигурированы. Таких серверов в мире насчитывается около 70-ти тысяч, большая часть которых находятся на территории Беларуси, России, Кореи, Чили, Аргентины, Китая и Тайваня. Именно на них направлены основные усилия злоумышленников.

В последние годы значительно возросло число атак на сервера NTP (Network Time Protocol). Они обеспечивают синхронизацию времени по сети с использованием NTP-протокола, являющегося разновидностью UDP-протокола. Вместе с тем, как известно, все UDP-сервисы имеют один существенный недостаток – для любого запроса может быть легко произведена подмена IP-адреса источника пакетов. Это даёт возможность усилить атаку в 1000 раз (!). Этому также способствует большое количество программных инструментов, имеющихся на рынке ПО. Такой вид атаки получил название NTP-флуд, как одна из разновидностей UDP-флуда.

Application-атаки (HTTP flood, API abuse)

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

HTTP-флуд маскируется под обычный пользовательский трафик и мало зависит от пропускной способности канала связи. Например, «штурм» небольшой интенсивности в 100 запросов в секунду способен вывести из строя множество сайтов среднего уровня. Причём, кэширование на уровне сервера здесь не поможет. Входящие URL динамически изменяются и приложение вынуждено перезагружать контент из БД для каждого запроса с созданием новой страницы. При этом возникает «перегруз» сервера и приложения.

Выделим основные виды HTTP-флуда:

Базовый. Сюда относятся наиболее простые «штурмы», суть которых заключается в периодических попытках получения доступа к одной и той же веб-странице. При этом чаще всего используется один и тот же диапазон IP-адресов источников. 

Рандомизированный. Это более сложный тип, когда задействуется большой пул IP-адресов источников и выполняется рандомизация URL.

С обходом кэша. Одна из разновидностей рандомизированного HTTP-флуда, которая действует в обход механизма кэширования приложений.

WordPress XMLRPC. Здесь для проведения атак используется пингбэк WordPress. Это позволяет любой сайт с включенным пингбэком использовать в качестве генератора большого количества случайных запросов. Этот механизм способен значительно увеличить масштаб атаки. Достаточно одного пингбэк-запроса к XML-RPC-файлу, и несколько тысяч сайтов на CMS WordPress станут участниками атаки на стороне спамера.

Ещё один вид атак уровня приложений использует уязвимости в API – прикладном программном интерфейсе приложений. К таким уязвимостям, например, можно отнести погрешности в коде, неправильную конфигурацию в любой части API-стёка и другие «слабые места» безопасности приложений. В результате, может быть нарушена работа сервисов, а спамер получит несанкционированный доступ к управлению сайтом. 

Чем опасны атаки L7

Выделим наиболее опасные характеристики атак уровня приложений или L7-уровня, которые усложняют борьбу с ними: 

Multi-vector атаки

Этот вид объединяет в себе несколько других видов, например, атаки уровней L3/L4 (сетевой и протокольный уровни) с L7 (уровень приложений). На практике это может быть реализовано в виде комбинации UDP-флуда для перегрузки сети, DNS-амплификации для уменьшения пропускной способности канала и HTTP-флуда для вывода веб-сервера из рабочего состояния. Противостоять подобному «штурму» будет непросто даже для таких «гигантов», как, например, CloudFlare или Google.   

Вывод: не существует «единого типа DDoS»

Рассмотрев всё разнообразие использующихся на практике DDoS-атак, можно сделать о них несколько выводов:

  1. Не существует DDoS одного типа;
  2. Их главная задача – сделать систему неработоспособной;
  3. Для борьбы с DDoS необходим комплексный подход.

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