Содержание:

Что происходит при DDoS атаке: схемы и цели
Атака DDoS (Distributed Denial of Service) — это не просто перегрузка сервера большим количеством подключений. Основная цель в том, чтобы сделать целевой ресурс недоступным легитимным пользователям путём намеренного и спланированного захламления его инфраструктуры. В процессе участвуют сотни, тысячи, а порой и миллионы разнородных устройств, скоординированных для генерации лавины запросов к одной системе — чаще всего веб-сайту, API, онлайн-сервису.
Почему DDoS бьет по серверу, а не по клиенту? Потому что сервер — конечная точка, обрабатывающая запросы, доставляющая контент, работающая с базой данных, авторизацией, логикой сайта. Каждый входящий запрос — это цепочка из операций: от приема пакета на уровне сети до выполнения PHP– или Python-скрипта. Когда таких запросов становится сотни тысяч в секунду, ресурс устает. Так работает back-end нагрузка.
Типовые цели атакующие выбирают в зависимости от стратегии:
- Выведение из строя: полная остановка ресурса, особенно для конкурентных сервисов, интернет-магазинов, SaaS-платформ.
- Отвлекающий маневр: DDoS используется как фоновое прикрытие для взлома, утечки данных, подмены DNS-записей или действий внутри сети.
- Репутационные атаки: снижение доверия к компании, если сайт недоступен в момент пиковых продаж.
- Экономическое давление: вынуждение компании платить “за тишину”, особенно в случае повторяющихся атак.
DDoS — это не «взлом» в прямом смысле. Его задача — не проникновение, а “изматывание” инфраструктуры. Сеть наполняется шумом, ресурсы распыляются на бессмысленные действия, легальные пользователи ждут загрузку страницы по 40 секунд и уходят.
Классификация: какие бывают типы DDoS атак и чем они отличаются
Практически все DDoS атаки можно разложить на три уровня в зависимости от того, какой части инфраструктуры наносится основной удар.
- Сетевой уровень (Network-level): здесь атакующие заполняют канал связи до предела. Используются техники:
- UDP Flood: отправка большого количества UDP-пакетов на случайные порты, провоцируя отклики и потребление ресурсов.
- ICMP Flood: атака с помощью ping-запросов, вызывающих отклики и нагрузки на сеть/CPU.
- Транспортный уровень (Transport-level): этот уровень эксплуатирует особенности протоколов TCP/UDP:
- SYN Flood: инициируются тысячи полуоткрытых соединений (SYN), сервер резервирует ресурсы, но клиент не завершает соединение.
- TCP Connection Flood: вал соединений, которые быстро открываются-закрываются или остаются “висящими”.
- Прикладной уровень (Application-level): самый сложный и коварный. Атакующие эмулируют действия реальных пользователей:
- HTTP Flood: серия GET или POST-запросов, идентичных обычному трафику.
- Slowloris: отправка HTTP-заголовков частями, сервер “держит” соединение, истощая пул соединений.
- HTTP/2 abuse: эксплуатация особенностей одновременной обработки множественных потоков в современном протоколе.
Разные типы атак требуют разных объемов трафика:
| Тип атаки | Основная цель | Какую часть системы нагружает | Обходит CDN? |
| UDP Flood | Истощение канала | Сетевой стек | Да |
| SYN Flood | Истощение TCP-соединений | Сетевой/транспортный уровень | Да |
| HTTP Flood | Перегрузка веб-приложения | Приложение/сервер | Зависит от настроек |
| Slowloris | Занятие воркеров веб-сервера | Apache/Nginx-процессы | Частично |
Пример: HTTP Flood может показаться обычным посещением. Бот обращается ко всем страницам, загружает изображения, даже нажимает «Купить» — только делает это со скоростью 100 RPS и с тысяч разных IP-адресов. Статистика Google Analytics при этом почти не показывает аномалии.
Методы DDoS атак: от ботнетов до современных обходов защиты

Самыми распространенными операторами DDoS-атак остаются ботнеты — распределенные сети заражённых устройств, управляемые централизованно через командный сервер. Сбор таких сетей начинается с массового заражения (например, через уязвимости в прошивках роутеров, камер наблюдения, устаревших версий CMS или IoT-устройств). Известная сеть Mirai включала до 600 000 устройств — один из крупнейших DDoS-ресурсов в истории.
Устройство ботнета часто выглядит следующим образом:
- Командный сервер (C&C) — принимает команды оператора и раздает инструкции ботам.
- Боты — устройства, отправляющие DDoS-трафик на заданные цели.
- Обфускация — шифрование команд, подписи трафика, ротация IP для усложнения обнаружения.
Но не только боты. Многие атаки строятся на принципе усиления — amplification:
- DNS Amplification: подделывается IP-отправителя в запросе к открытому DNS-серверу с большим ответом. В результате жертва получает лавину трафика без открытия сессий с атакующим.
- NTP Amplification: аналогичная техника с использованием серверов времени.
Обостряют ситуацию методы маскировки:
- IP spoofing: подделка IP-адресов отправителя, скрывая реального инициатора.
- Micro-bursting: атака с короткими пиками нагрузки, сложноотслеживаемыми системами мониторинга.
- IP rotation: постоянная смена IP-адресов с помощью прокси-сетей и ботов.
В последние годы активно используются так называемые “CDN-aware” атаки — они заранее сконструированы так, чтобы обходить или использовать в своих интересах легальные каналы доставки контента. Например:
- Атакующий узнает структуру кэширования CDN и генерирует уникальные запросы, которые CDN не кеширует, заставляя их идти до origin-сервера.
- Использование Cloudflare Workers, Google AMP или других edge-технологий для легитимного перенаправления запросов с вредной начинкой.
Также наблюдаются адаптивные DDoS-атаки. Пример сценария:
- Начинается массированная атака UDP Flood. Система защиты отбрасывает её, активирует защиту на L3.
- Атакующий переходит к медленному HTTP Flood с гео-распределением и нормальной user-agent строкой.
Такой маневр вынуждает администратора снижать чувствительность систем фильтрации, чтобы не мешать обычным пользователям — и как следствие, целевая система принимает в себя легально выглядящий, но разрушительный поток.
По данным Imperva, каждый третий L7-бот сейчас копирует поведение пользователя с учетом mouse movement patterns и cookies, чтобы обойти JavaScript-challenge на стороне защиты. Борьба уже перешла с уровня “фильтруем пакеты” к стадии “как отличить человека от машины без дискриминации легитимных действий” — и это делает современные DDoS не просто угрозой веб-инфраструктуре, а вызовом технологиям в области поведенческого анализа и машинного обучения.
Как понять, что на сайте происходит DDoS атака (и как отличить от обычной нагрузки)

Разобраться, подвергся ли сайт DDoS атаке, бывает не так просто. Особенно это касается атак на прикладном уровне, где запросы выглядят правдоподобно, а IP-адреса — допустимыми. Первым маркером становится аномальный рост метрик — но как отличить «вирусный» успех маркетинга от атаки?
На что в первую очередь стоит обратить внимание:
- Всплески на графиках трафика — если за 5 минут количество входящих соединений выросло в 30 раз, без очевидной причины. Особенно, если сегмент пользователей резко переместился: например, из России и СНГ в Бразилию, Индию или анонимные сети IP-аренды.
- Резкая смена источников подключений — множество различных IP, географии, user-agent строк без признаков когерентного поведения.
- Увеличение времени ответа сервера (TTFB, latency) и рост количества “висящих” соединений.
- Зависания админки, тайм-ауты при получении данных и скачки загрузки CPU — особенно на балансировщиках и в логах proxy-серверов.
Иногда администратор ошибочно интерпретирует DDoS как резкий успех маркетинга. Например, после запуска новой кампании в таргетированной рекламе виден рост трафика — но пользователи вместо действий просто генерируют запросы к статическим страницам без логинов и заказов. Поведенческий профиль не совпадает с живыми клиентами.
Основные технические признаки:
- Количество активных соединений (TCP connections) превышает лимит пула, появляется очередь на балансировщике.
- Превышение лимитов на количество запросов в логи Nginx, Apache или Fail2ban.
- Ошибки 502, 504, нестабильная отдача CSS/JS, обрезанные коммутируемые сессии по WebSocket или обнуление token’ов авторизации.
Например, при HTTP Flood нагрузка на веб-приложение не всегда выражается в пиковом трафике, но производит разрушительный эффект за счёт максимального использования дорогостоящих операций — например, обращений к базе. Если один бот знает, что кнопка «Каталог» запускает медленный SQL-запрос, он просто повторяет его 1000 раз в секунду. Визуально метрики “нормальные”, но веб-сервер останавливается.
Какие ошибки вызывает DDoS, и что они говорят

Сам сайт на внешнем уровне в момент атаки может вести себя по-разному: от полной недоступности до «редких» тайм-аутов. Однако определённые ответы сервера (HTTP-коды) — лучший индикатор типа происходящей атаки.
- 502 Bad Gateway — ошибка от CDN/обратного прокси, означает, что запрос пользователя не смог корректно дойти до origin-сервера. Часто возникает, когда промежуточный сервер перегружен соединениями или не получает ответа вовремя.
- 503 Service Unavailable — сервер недоступен, чаще всего используется как официальная реакция на превышение лимита запросов. Иногда выставляется вручную при атаке.
- 504 Gateway Timeout — сервер не ответил вовремя. Признак, что обработка запроса «зависла» где-то на backend‘е: возможно, БД не отвечает, очередь запросов переполнена, возникло залипание на уровне балансов.
Ошибки на стороне клиента также закономерны:
- «Не удалось загрузить страницу», как реакция браузера на частичные ответы (например, CSS отдался, а JS — нет).
- Разрывы WebSocket — особенно опасно для онлайн-чатов, игр, финансовых систем.
- Обнуление сессий, потеря куки — из-за отказов в обработке фоновых запросов авторизации.
В самом приложении при L7 атаке наблюдаются:
- Перемежающая отдача картинок, стилей, шрифтов.
- Залипание или падение MySQL/PostgreSQL при десятках тысяч параллельных SELECT‘ов.
- Кэш Purge на стороне CDN, если атакующий вызывает запреты через HEAD/POST.
Пример: ботнет “научился” запрашивать динамическую витрину интернет-магазина тысячами POST-запросов с параметрами сортировки и фильтрации. PHP нагружается, кэш не работает, а сервер отдаёт 504 каждые 5 секунд. Пользователи думают: «Сайт лагает» — и просто уходят.
Чем отличается масштабная DDoS атака от “точечного” перегруза: на что смотреть

Ошибочно считать, будто только массивная DDoS-атака — проблема. Напротив, многие из наиболее разрушительных атак происходят при относительно низком количестве RPS (requests per second), но высоком IQ атакующего. Разберём два сценария.
- Сценарий A: 10 000 RPS с одного IP — легко определяются, фильтруются через geo/IP/country ACL.
- Сценарий B: 1500 RPS с 100 тысяч IP, разбросанных по всему миру, включая NAT-пулы обычных операторов — намного труднее обнаружить и остановить.
Второй случай требует менее «шумного» подхода. Используются прокси-цепочки, купленные IP-блоки, зараженные резидентные устройства (смартфоны, SmartTV), даже облачные аккаунты с виртуалками. Все выглядят как “нормальные” пользователи, но каждый генерирует 0.01 RPS — в итоге сайт падает.
Дополнительные признаки интеллектуальной атаки:
- Отключенные session cookies на 50% устройств (исключение повторного отслеживания).
- Большая доля TLS-соединений с «чистой криптографией» — никакого compromized SSL.
- Почти идеальный user-agent (от Safari до Samsung Browser).
Также бывают ситуации, когда сайт «ложится» вовсе не из-за атаки, а из-за неправильно настроенных фильтров или WAF (Web Application Firewall). Защитная система определяет легитимные действия как бот-трафик и режет его — это называется false positive. Парадокс DDoS в том, что иногда защита наносит урон больше, чем сама атака.
Поэтому важно анализировать не только количество входящего трафика, но и то, какие действия реально потребляют ресурсы, какие процессы “застревают” и на каком уровне происходят отказы.
На что обращать внимание при защите: базовые и технические рекомендации
Успешная защита от DDoS-атак строится на многослойной архитектуре. Ошибка — пытаться решить проблему только на одном уровне (например, через модуль Apache). Атаки могут происходить на сетевом, транспортном, прикладном уровнях — следовательно, защита должна охватывать каждый из них.
Основные тактические меры защиты включают:
- Фильтрация на уровне сети (L3/L4):
- Rate Limiting — ограничение числа подключений с одного IP;
- Connection throttling — лимит активных сеансов с одного источника (например, не более 10 TCP-соединений в секунду);
- Geo-blocking — блокировка стран, с которыми нет клиентского взаимодействия.
- Транспортные фильтры:
- SYN-кэш — позволяет серверу задерживать создание полной TCP-сессии до подтверждения от клиента;
- RST/ACK анализ — автоматическое отбрасывание неоформленных соединений;
- Обнаружение ложных IP через ассиметрию маршрутизации (например, TCP Flag Analysis).
- Прикладной уровень (L7):
- JS-challenge — требование выполнить код на стороне клиента до обработки запроса;
- CAPTCHA или puzzle-проверка — особенно полезна на страницах формы и входа;
- Cookie-check — оценка того, может ли клиент сохранить и отдать обратно уникальный токен.
Хорошей практикой считается применение контрольных точек до попадания запроса на “глубину” приложения. Если бот не может пройти challenge или отдает подозрительный user-agent — его запрос останавливается до момента выполнения тяжёлой логики (например, SQL-запросов или рендеринга).
На крупных проектах рекомендуется активно использовать специализированные DDoS-фильтры. Среди них:
- Cloudflare: автоматическое определение атак, Rate Limiting, Firewall Rules;
- Radware DefensePro: NL и ML-анализ на аппаратном уровне;
- Imperva, Arbor, Qrator: SaaS-решения с возможностью подключения через GRE/IPSec тоннели.
Ключевой момент — атака может быть не моментальной, а разворачивающейся. За первые 30 минут в вас стреляют UDP, а затем — переключаются на долгие POST. Поэтому логирование и сохранение трафика в момент атаки особенно важно:
- PCAP трассировки — запись “сырых” пакетов;
- Логи балансировщиков, reverse proxy (nginx/HAProxy) с временем и статусами;
- События WAF и правила, которые сработали;
- Процентное соотношение успешных запросов к неуспешным в минуту времени атаки.
Часто после атаки необходимо не только обеспечить восстановление, но и расследовать инцидент: откуда шли атакующие, остались ли закладки (например, постоянные 10 RPS на «щуп»), какие IP участвовали. Без анализа логов это невозможно.
Проверка на DDoS-устойчивость: что можно сделать до атаки

Подготовка к DDoS — как страховка: когда всё хорошо, она кажется излишней, но в момент необходимости — незаменима. Чтобы оценить готовность сайта к атаке, нужно провести нагрузочное тестирование, близкое к реальной DDoS-среде.
Имитация нагрузок:
- Используйте утилиты вроде wrk, ab (Apache Benchmark), или k6 для создания множества HTTP-запросов;
- Инструменты типа Locust или JMeter позволяют моделировать именно пользовательское поведение (клики, формы, переходы);
- Важно: тестировать нужно в песочнице или на копии продакшн инфраструктуры — не делайте “стресс” на живом сайте!
Какие параметры мониторить:
- Время ответа (latency, TTFB);
- Процент ошибок (502/503/504);
- CPU, RAM и I/O на сервере или в Kubernetes pod‘ах;
- Уровень насыщения канала — можно запросить диаграммы у хостинг-провайдера или в панели CDN;
- Очередь запросов в ряде компонентов (Nginx worker queue, MySQL Thread pool, Kafka topics).
Для веб-приложений полезно зафиксировать момент, когда система начинает “сыпаться” — например, что при 6000 RPS сервер отдает стабильный статус 200 OK, а при 6700 уже начинаются статусы 503. Это так называемый срыв устойчивости.
Обратите особое внимание на:
- Страницы с тяжелым функционалом (много SQL, внешние API);
- Незащищенные эндпоинты (например, /checkout, /api/v3/status);
- Открытые websocket-подключения;
- Поведение под анонимизированным трафиком (через TOR, VPN, мобильные прокси);
Практика показывает: большинство сайтов в России не выдерживает и 300 RPS на прикладном уровне — особенно если не используется отдельный пул серверов под бэк-логику. Поэтому проактивная подготовка — это экономия времени, денег и нервов в случае инцидента.
Наличие заранее прописанных playbook’ов (чётких шагов действий на случай атаки), контактных лиц у провайдера и резервной схемы маршрутизации — та самая разница между «мы отбились» и «все упало, убыток 14 миллионов».
Обратитесь в German Web, чтобы получить качественный продающий сайт для вашего бизнеса. Опишите нам, каким вы видите свой будущий проект, а все остальные задачи мы возьмем на себя.


