Уровень применения DDoS «Beyond Brute Force»

В наши дни кажется, что DDoS все больше и больше приближается к тому, что известно как «уровень приложений DDos». В то время как DDoS сетевого уровня состоит из бессмысленных пакетов (таких как поддельные ICMP-пакеты или поток пакетов SYN TCP), которые не предназначены для выполнения какой-либо значимой транзакции, DDoS прикладного уровня состоит из реальных запросов на обслуживание, и это именно то, что делает это так проблематично.

Преодоление атаки на сетевом уровне, как правило, заключается в наличии достаточного количества процессора и пропускной способности. Содержание самой атаки бессмысленно. Однако, когда атака состоит из, казалось бы, невинных запросов, защита не тривиальна - и хакеры это прекрасно понимают. Все, что требуется, - это всего несколько тысяч запросов в секунду для уничтожения большинства современных стеков приложений, всего на порядок больше, и даже сами веб-серверы сгибаются. Фактически, только два или три источника могут убить гигантского сервера Linux, потому что независимо от того, насколько впечатляющей является спецификация сервера, если запрос обрабатывается LAMP, нагрузка на базу данных и язык сценариев достаточны, чтобы привести к возможному взятию неработающий сервер (около 5-10 тыс. об / мин). Клиент прост: он открывает соединение, отправляет запрос на один URL и повторяет это объявление до бесконечности.

В этом типе атаки злоумышленнику необходимо открыть реальные TCP-соединения, чтобы они могли фактически эффективно блокироваться (в отличие от поддельных ICMP-пакетов, которые вы на самом деле не знаете, откуда они приходят).

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

Здесь есть несколько проблем: во-первых, даже если все работает, требуется время для отображения всего ботнета, и до тех пор служба, вероятно, будет недоступна. Кроме того, мы видели бот-сети, которые ограничивают скорость трафика, приходящего с одного IP-адреса, а также используют HTTP / 1.1 для повторного использования соединений, что делает эту технику еще менее эффективной.

Некоторые люди даже идут дальше и предлагают блокировать целый географический регион (например, APAC), используя диапазоны IP-адресов. Исходя из нашего опыта, если вы готовы принять некоторый побочный ущерб, белый список может быть эффективным методом. Ниже вы можете увидеть пример положительно идентифицированных агентов в средней атаке (6000 одновременных ботов); если бы мы попали в белый список Соединенных Штатов, мы бы сократили трафик на 90%. Конечно, для белого списка необходим очень детальный анализ IP-адресов.

Другим распространенным подходом является выявление общих закономерностей в трафике и их блокирование на основе этого. Например: конкретный URL, конкретный пользовательский агент и т. Д.

Хотя все это иногда бывает эффективным, проблема в том, что по мере развития (быстро) бот-сетей они все больше вкладывают средства в маскировку своего поведения, нарушая закономерности.

Вот два примера недавних ботнетов, с которыми мы имели дело:

** Ботнет A ** ** Ботнет B ** ** Нет. одновременных источников ** ** 2000-3000 ** ** 7000-8000 ** ** шаблон запросов бота ** 500 запросов, а затем бот замолкает (это занимает около 2 минут на ротацию) 200-300 запросов за цикл в медленном темпе (около 3-4 минут за цикл) со вторым временем ожидания между запросами. ** Техника обслуживания соединения ** Боты повторно используют одно и то же соединение, используя HTTP / 1.1 (поэтому каждый бот открывает только 1-2 соединения. Боты пытаются сделать запросы максимально запоминающимися для веб-сервера, используя пустые незавершенные запросы POST и HTTP /1.1 keep alive. ** Использование HTTP ** Боты поддерживают пользовательские сеансы и принятые cookie-файлы сервера. Боты используют словарь из сотен существующих пользовательских агентов с целевыми URL-адресами, изменяющимися со временем.

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

Вот некоторые из наших выводов:

  • Несмотря на то, что все злоумышленники стремятся к атакам на уровне приложений, ботнеты по-прежнему способны на все традиционные сетевые атаки. Поэтому важно быть полностью масштабируемым и гибким. Это означает, что сеть должна быть способна обрабатывать много гигабит нагрузки и эффективно ее распределять.
  • После того, как IP был идентифицирован как часть ботнета, крайне важно заблокировать его напрямую или у вышестоящего провайдера.
  • Единственный способ остановить атаку уровня приложения - на уровне приложения. Вы должны различать людей и ботов - подумайте CAPTCHA. Хотя плохое настроение каждого посетителя веб-сайта делает DDoS как минимум частично успешным, существует множество менее навязчивых тестов (большинство ботов не поддерживают файлы cookie, не говоря уже о Javascript, DOM и многих других типах поведения), и вы не Они должны подчинить всех, только обычных подозреваемых.

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

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