БАЗА ЗНАНИЙ
DDoS-атака: что это простыми словами и что делать с сайтом
Что такое DDoS-атака простыми словами: как она устроена, как отличить атаку от наплыва посетителей и что делать, если сайт под атакой. Без инструкций для атакующих.

DDoS-атака — что это такое: сайт заваливают запросами с множества устройств сразу, чтобы он перестал отвечать. Сервер не справляется с нагрузкой, и страница не открывается у обычных посетителей.
Что такое DDoS-атака простыми словами
DDoS (Distributed Denial of Service, «распределённый отказ в обслуживании») — это атака, при которой на сайт одновременно идут запросы с тысяч заражённых устройств, чтобы исчерпать его ресурсы. Ресурс может быть любым: ширина канала, память сервера, число одновременных соединений, время работы базы данных.
Представьте магазин с одной кассой. Если в него зайдут пятьсот человек и каждый начнёт спрашивать цену, покупатель с деньгами просто не подойдёт к кассе. Товар на месте, продавец на месте, магазин не работает.

При DDoS сайт обычно не взламывают. Данные остаются на месте, пароли не утекают, файлы не меняются. Ломается доступность, и этого хватает, чтобы интернет-магазин не принял заказы, а сервис не обслужил клиентов.
О взломе владелец сайта узнаёт постфактум, иногда через недели. Атаку видно сразу: страница открывается по минуте или отдаёт ошибку, а в панели нагрузка уходит в потолок.
Чем DDoS отличается от DoS
DoS-атака идёт с одного источника, DDoS — со многих. Разница выглядит формальной, но от неё зависит, справитесь ли вы своими силами.

| Признак | DoS | DDoS |
|---|---|---|
| Источники трафика | один адрес или небольшая группа | тысячи адресов по всему миру |
| Как блокируется | правилом для одного адреса | фильтрация по поведению, а не по адресу |
| Мощность | ограничена каналом атакующего | складывается из каналов всех устройств |
| Кто справится | администратор сервера | нужна фильтрация на стороне сети провайдера |
Заблокировать один адрес просто. Когда адресов тысячи и они меняются каждую минуту, список блокировок разрастается быстрее, чем вы его пополняете. Поэтому фильтры смотрят на поведение запросов, а не ведут перечень адресов.
Что такое ботнет и откуда берутся запросы
Ботнет — сеть заражённых устройств, которыми управляют без ведома владельцев. Это не только компьютеры: в ботнеты попадают домашние роутеры, камеры видеонаблюдения, телевизионные приставки, умные розетки и плохо настроенные серверы.

Устройство попадает в ботнет через незакрытую уязвимость или стандартный пароль вроде admin/admin. После этого оно живёт обычной жизнью: роутер раздаёт интернет, камера пишет видео. В нужный момент приходит команда, и устройство начинает слать запросы на чужой сайт.
Владелец роутера об этом не знает и замечает разве что просевшую скорость. Для атакуемого сайта это значит, что запросы приходят с настоящих домашних адресов разных провайдеров и стран. По одному только адресу отличить их от посетителей нельзя.
На что направлена DDoS-атака
Цель — исчерпать любой ресурс на пути к сайту. Слабых мест обычно четыре, и атакующие выбирают то, где у жертвы меньше запаса.

Канал связи забивается мусорным трафиком: полоса занята, полезные пакеты в неё не помещаются. Объём такой волны измеряется гигабитами в секунду. Сетевой стек сервера переполняется наполовину установленными соединениями, новые подключения встают в очередь и отваливаются по таймауту.
Веб-сервер упирается в число рабочих процессов: каждый занят обработкой запроса от бота, для посетителя свободного не остаётся. База данных страдает от тяжёлых запросов. Например, от поиска по каталогу, который вызывают сотнями в секунду с разными словами, чтобы не сработал кеш.
Чем выше уровень, тем меньше нужно трафика. Чтобы забить канал, нужны гигабиты в секунду. Чтобы положить поиск по каталогу, иногда хватает нескольких сотен запросов в секунду, а это трафик небольшого интернет-магазина в обычный день.
Типы DDoS-атак
Атаки делят по уровню, на котором они работают: сеть и протоколы (L3–L4 в модели OSI) или само приложение (L7). Деление практичное: от уровня зависит, кто и чем защищается.

| Тип | Что перегружает | Как выглядит со стороны сайта |
|---|---|---|
| Объёмная (флуд) | ширину канала: объём трафика больше, чем вмещает полоса | сайт недоступен целиком, сервер при этом почти не загружен |
| Протокольная (SYN-флуд, UDP-флуд) | таблицу соединений, пакеты летят на случайные порты | соединение не устанавливается, страница «думает» и отваливается |
| Амплификация | канал, чужими ответами | то же, что объёмная, но трафик приходит от обычных серверов |
| HTTP-флуд (L7) | процессы веб-сервера | нагрузка на сервере высокая, в логах — обычные с виду запросы |
| Медленные сессии | лимит соединений | трафика мало, свободных соединений нет |
Отдельно стоит амплификация: атакующий отправляет короткий запрос чужому открытому сервису — DNS, NTP, memcached — и подделывает обратный адрес. Сервис добросовестно отвечает, но ответ уходит жертве и весит в десятки раз больше запроса.

На практике атаки часто смешанные: сначала объёмная волна, следом запросы к тяжёлым страницам. Защита от одного типа не отменяет второй.
Зачем атакуют сайты
Мотивов немного, и почти все они денежные или эмоциональные.
- Конкуренция: магазин уводят в офлайн в день распродажи, сервис бронирования — в сезон.
- Вымогательство: короткая атака, письмо с требованием выкупа и угрозой повторить.
- Отвлечение: пока администраторы поднимают сайт, в другом месте идёт попытка взлома.
- Идеология и месть: злоумышленник действует по принципу «эта компания мне не нравится». Это бывший сотрудник, недовольный клиент или случайный человек.
- Проба сил: часть атак — проверка работоспособности ботнета на случайной цели.
Поэтому под атаку попадают не только крупные компании. Сайт-визитка или блог могут оказаться мишенью без всякой причины, просто потому что попали в список целей.
Атака на чужой ресурс — уголовное преступление. В зависимости от обстоятельств применяются статьи 272–274 УК РФ: неправомерный доступ к информации, создание и использование вредоносных программ, нарушение правил эксплуатации. Заказчик отвечает наравне с исполнителем.
Атака или наплыв посетителей: как отличить
Сайт лёг, и первый вопрос обычно звучит не «какой тип атаки», а «это вообще атака или нас показали по телевизору». Ошибиться дорого: от ответа зависит, звать поддержку или срочно докупать ресурсы.

| Что смотреть | Наплыв посетителей | Атака |
|---|---|---|
| Рост нагрузки | плавный, за минуты | резкий, за секунды |
| Страницы | разные, с переходами по сайту | одна и та же или случайные адреса |
| Счётчик посещаемости | растёт вместе с нагрузкой | почти не меняется |
| Заказы и регистрации | растут | стоят на месте |
| Источник переходов | поиск, реклама, соцсети | прямые заходы без реферера |
| Коды ответов | 200, редкие 5xx | много 499, 502, 503 |
Главный признак — расхождение между нагрузкой и полезным результатом. Счётчик посещаемости считает людей с браузером и JavaScript, боты его обычно не запускают. Если в логах сервера тысячи запросов в минуту, а в Метрике ровная линия, это не посетители.
Коды ответов тоже подсказывают. Код 499 в логах nginx означает, что клиент отключился, не дождавшись ответа: так ведут себя и боты с коротким таймаутом, и люди, которым надоело ждать. Код 502 или 503 говорит, что сервер приложений перестал отвечать веб-серверу.
Дальше смотрим логи. На сервере с доступом по SSH хватает двух команд: посмотреть последние записи и посчитать запросы по адресам.

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

Что происходит с сайтом на хостинге и на VPS
От того, где живёт сайт, зависит, что делаете вы, а что делают за вас.

На виртуальном хостинге сервером занимается провайдер: он фильтрует трафик на границе сети, держит лимиты и следит за нагрузкой. У этого есть обратная сторона. На одном сервере живут сайты многих клиентов, и если атака на ваш сайт начинает мешать соседям, провайдер может временно закрыть к нему доступ, чтобы остальные продолжали работать.
На VPS сеть точно так же фильтрует провайдер, но всё, что выше уровня сети, ваша зона. Лимиты в nginx, правила файрвола, кеширование, подключение CDN и WAF настраиваете вы. Соседей нет, отключать вас из-за них никто не станет, но и с HTTP-флудом разбираться придётся самостоятельно.
Что делать, если сайт уже под атакой
Порядок действий на первый час одинаковый и для магазина, и для блога. Отличается только глубина настроек.

- Убедитесь, что это атака: логи, счётчик посещаемости, коды ответов. Две минуты проверки экономят час метаний.
- Напишите в поддержку. Укажите время начала, симптомы и приложите выдержку из логов: на стороне провайдера видно то, что не видно вам, и фильтрация включается там.
- Включите кеш. Отдавать готовую страницу дешевле, чем собирать её заново. Для сайта на CMS это самая быстрая мера: даже при потоке запросов сервер продолжает отвечать.
- Ограничьте частоту запросов. Лимит на число запросов с одного адреса в секунду отсекает самые грубые атаки. В nginx это
limit_req, в CMS — плагины и встроенные настройки. - Сохраните вход в админку: отдельный адрес входа, доступ по белому списку адресов. Если сайт перегружен, администратор всё равно должен попасть внутрь.
- Не меняйте DNS в панике. Новые записи расходятся по интернету не мгновенно, а атака часто идёт по адресу сервера, а не по имени домена. Помогает это редко, а сайт теряет доступность даже у тех, у кого он работал.
Чего делать не стоит: разбираться самому, если сайт на хостинге, и отвечать на письмо с требованием выкупа. Оплата не останавливает атаку и делает вас удобной целью для повторов.
Как защищаются от DDoS
Защита собирается из нескольких слоёв, и каждый закрывает свой тип атак.

- Фильтрация на границе сети: инфраструктура провайдера отбрасывает мусорный трафик до того, как он займёт канал клиента. Против объёмных атак работает только этот слой: если канал уже забит, на сервере делать нечего.
- Анализ протоколов: отсев полуоткрытых соединений и пакетов, не похожих на настоящие. Закрывает SYN-флуд и его родственников.
- Ограничение частоты запросов: один адрес не должен запрашивать страницу сто раз в секунду. Настраивается на сервере и стоит недорого.
- WAF: правила на уровне приложения отличают запрос человека от запроса скрипта по заголовкам, порядку действий и поведению.
- Кеш и CDN: статику раздаёт сеть доставки, к серверу доходит малая часть запросов. Помогает и в обычные дни, страницы открываются быстрее.
Ни один слой не работает в одиночку. CDN не спасёт от атаки на форму входа, а лимит запросов — от гигабитного флуда в канал.
Что уже включено в тарифы ZION
Защита от DDoS входит в стоимость всех тарифов, отдельной услугой её покупать не нужно. Фильтрация работает на границе сети, то есть закрывает тот слой, который владелец сайта закрыть не может.
WAF тоже включён без доплаты: правила на уровне приложения отсекают запросы, которые прошли сетевой фильтр, но не похожи на действия человека.
Поддержка отвечает круглосуточно, серверы стоят в российских городах, заявленный аптайм — 99,9 %. Если сайт начал вести себя странно, а вы не уверены, атака это или нагрузка, напишите в поддержку: со стороны провайдера видно, что происходит с трафиком до сервера.
Посмотреть тарифы можно на главной странице.
Чего защита не умеет
Абсолютной защиты не существует. Любая фильтрация — компромисс между строгостью и удобством. Чем жёстче правила, тем выше шанс, что под них попадёт живой посетитель с мобильного интернета или корпоративного адреса.
Хуже всего видны умные атаки на приложение. Если бот ходит по сайту как человек, с браузерными заголовками, паузами и загрузкой картинок, отличить его от посетителя сложно и фильтру, и вам. Тут выручают лимиты на тяжёлые операции: поиск, выгрузки, отправку форм.
Ошибки сайта фильтр не исправит. Страница, которая при каждом открытии делает полсотни запросов к базе, ляжет и без атаки: достаточно попасть в рассылку или подборку.
Резервные копии защита тоже не отменяет. DDoS данные не портит, но простой часто совпадает с другими проблемами, а восстанавливаться проще с рабочей копией.
Чек-лист: подготовиться заранее
Всё это делается за один спокойный вечер и сильно облегчает неспокойный.

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


