ВЕРНУТЬСЯ

БАЗА ЗНАНИЙ

DDoS-атака: что это простыми словами и что делать с сайтом

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

DDoS-атака: что это простыми словами и что делать с сайтом

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

Что такое DDoS-атака простыми словами

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

Представьте магазин с одной кассой. Если в него зайдут пятьсот человек и каждый начнёт спрашивать цену, покупатель с деньгами просто не подойдёт к кассе. Товар на месте, продавец на месте, магазин не работает.

Схема: заражённые устройства шлют запросы через канал связи к серверу, настоящий посетитель не может открыть страницу
Запросы занимают канал и очередь сервера — обычный посетитель до сайта не доходит

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

О взломе владелец сайта узнаёт постфактум, иногда через недели. Атаку видно сразу: страница открывается по минуте или отдаёт ошибку, а в панели нагрузка уходит в потолок.

Чем DDoS отличается от DoS

DoS-атака идёт с одного источника, DDoS — со многих. Разница выглядит формальной, но от неё зависит, справитесь ли вы своими силами.

Схема: при DoS запросы идут из одного источника, при DDoS — из множества источников
Один источник блокируется правилом файрвола, тысячи — нет
Признак DoS DDoS
Источники трафика один адрес или небольшая группа тысячи адресов по всему миру
Как блокируется правилом для одного адреса фильтрация по поведению, а не по адресу
Мощность ограничена каналом атакующего складывается из каналов всех устройств
Кто справится администратор сервера нужна фильтрация на стороне сети провайдера

Заблокировать один адрес просто. Когда адресов тысячи и они меняются каждую минуту, список блокировок разрастается быстрее, чем вы его пополняете. Поэтому фильтры смотрят на поведение запросов, а не ведут перечень адресов.

Что такое ботнет и откуда берутся запросы

Ботнет — сеть заражённых устройств, которыми управляют без ведома владельцев. Это не только компьютеры: в ботнеты попадают домашние роутеры, камеры видеонаблюдения, телевизионные приставки, умные розетки и плохо настроенные серверы.

Схема ботнета: роутер, камера, приставка, ноутбук, телефон и сервер получают команду от управляющего сервера и шлют запросы жертве
Управляющий сервер раздаёт команду, устройства шлют запросы жертве

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

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

На что направлена DDoS-атака

Цель — исчерпать любой ресурс на пути к сайту. Слабых мест обычно четыре, и атакующие выбирают то, где у жертвы меньше запаса.

Схема: атака бьёт по каналу связи, сетевому стеку, веб-серверу или базе данных
Четыре места, где сайт упирается в предел

Канал связи забивается мусорным трафиком: полоса занята, полезные пакеты в неё не помещаются. Объём такой волны измеряется гигабитами в секунду. Сетевой стек сервера переполняется наполовину установленными соединениями, новые подключения встают в очередь и отваливаются по таймауту.

Веб-сервер упирается в число рабочих процессов: каждый занят обработкой запроса от бота, для посетителя свободного не остаётся. База данных страдает от тяжёлых запросов. Например, от поиска по каталогу, который вызывают сотнями в секунду с разными словами, чтобы не сработал кеш.

Чем выше уровень, тем меньше нужно трафика. Чтобы забить канал, нужны гигабиты в секунду. Чтобы положить поиск по каталогу, иногда хватает нескольких сотен запросов в секунду, а это трафик небольшого интернет-магазина в обычный день.

Типы DDoS-атак

Атаки делят по уровню, на котором они работают: сеть и протоколы (L3–L4 в модели OSI) или само приложение (L7). Деление практичное: от уровня зависит, кто и чем защищается.

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

Отдельно стоит амплификация: атакующий отправляет короткий запрос чужому открытому сервису — DNS, NTP, memcached — и подделывает обратный адрес. Сервис добросовестно отвечает, но ответ уходит жертве и весит в десятки раз больше запроса.

Схема амплификации: короткий запрос с подменённым адресом отправителя вызывает большой ответ, который уходит жертве
Атакующий тратит байты, жертва получает мегабиты

На практике атаки часто смешанные: сначала объёмная волна, следом запросы к тяжёлым страницам. Защита от одного типа не отменяет второй.

Зачем атакуют сайты

Мотивов немного, и почти все они денежные или эмоциональные.

  • Конкуренция: магазин уводят в офлайн в день распродажи, сервис бронирования — в сезон.
  • Вымогательство: короткая атака, письмо с требованием выкупа и угрозой повторить.
  • Отвлечение: пока администраторы поднимают сайт, в другом месте идёт попытка взлома.
  • Идеология и месть: злоумышленник действует по принципу «эта компания мне не нравится». Это бывший сотрудник, недовольный клиент или случайный человек.
  • Проба сил: часть атак — проверка работоспособности ботнета на случайной цели.

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

Атака на чужой ресурс — уголовное преступление. В зависимости от обстоятельств применяются статьи 272–274 УК РФ: неправомерный доступ к информации, создание и использование вредоносных программ, нарушение правил эксплуатации. Заказчик отвечает наравне с исполнителем.

СЕРВЕР ПОД ВАШИ ЗАДАЧИ БЫСТРО И БЕЗ ЛИШНИХ СЛОЖНОСТЕЙ

Подберите конфигурацию, оплатите и начните работу за несколько минут — без сложной настройки

Атака или наплыв посетителей: как отличить

Сайт лёг, и первый вопрос обычно звучит не «какой тип атаки», а «это вообще атака или нас показали по телевизору». Ошибиться дорого: от ответа зависит, звать поддержку или срочно докупать ресурсы.

Два графика: при наплыве посетителей растут и запросы, и заказы; при атаке растут только запросы
При настоящем наплыве растут и запросы, и заказы. При атаке — только запросы
Что смотреть Наплыв посетителей Атака
Рост нагрузки плавный, за минуты резкий, за секунды
Страницы разные, с переходами по сайту одна и та же или случайные адреса
Счётчик посещаемости растёт вместе с нагрузкой почти не меняется
Заказы и регистрации растут стоят на месте
Источник переходов поиск, реклама, соцсети прямые заходы без реферера
Коды ответов 200, редкие 5xx много 499, 502, 503

Главный признак — расхождение между нагрузкой и полезным результатом. Счётчик посещаемости считает людей с браузером и JavaScript, боты его обычно не запускают. Если в логах сервера тысячи запросов в минуту, а в Метрике ровная линия, это не посетители.

Коды ответов тоже подсказывают. Код 499 в логах nginx означает, что клиент отключился, не дождавшись ответа: так ведут себя и боты с коротким таймаутом, и люди, которым надоело ждать. Код 502 или 503 говорит, что сервер приложений перестал отвечать веб-серверу.

Дальше смотрим логи. На сервере с доступом по SSH хватает двух команд: посмотреть последние записи и посчитать запросы по адресам.

Терминал: вывод последних записей access.log и подсчёт запросов по IP-адресам командой awk, sort и uniq
Формат вывода команд. Значения в примере вымышленные, адреса из документационных диапазонов

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

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

Терминал: команды uptime и ss показывают высокую среднюю нагрузку и тысячи соединений в состоянии syn-recv
Много соединений в состоянии syn-recv — характерный след SYN-флуда

Что происходит с сайтом на хостинге и на VPS

От того, где живёт сайт, зависит, что делаете вы, а что делают за вас.

Сравнение: на хостинге фильтрацию и настройки берёт на себя провайдер, на VPS сеть фильтрует провайдер, а настройки сервера остаются на владельце
Граница ответственности на хостинге и на своём сервере

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

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

Что делать, если сайт уже под атакой

Порядок действий на первый час одинаковый и для магазина, и для блога. Отличается только глубина настроек.

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

Чего делать не стоит: разбираться самому, если сайт на хостинге, и отвечать на письмо с требованием выкупа. Оплата не останавливает атаку и делает вас удобной целью для повторов.

Как защищаются от DDoS

Защита собирается из нескольких слоёв, и каждый закрывает свой тип атак.

Схема: входящий трафик проходит через фильтрацию по объёму, протоколу, частоте запросов и правилам WAF, до сервера доходят только настоящие запросы
Мусорный трафик отбрасывается до того, как дойдёт до сервера
  • Фильтрация на границе сети: инфраструктура провайдера отбрасывает мусорный трафик до того, как он займёт канал клиента. Против объёмных атак работает только этот слой: если канал уже забит, на сервере делать нечего.
  • Анализ протоколов: отсев полуоткрытых соединений и пакетов, не похожих на настоящие. Закрывает SYN-флуд и его родственников.
  • Ограничение частоты запросов: один адрес не должен запрашивать страницу сто раз в секунду. Настраивается на сервере и стоит недорого.
  • WAF: правила на уровне приложения отличают запрос человека от запроса скрипта по заголовкам, порядку действий и поведению.
  • Кеш и CDN: статику раздаёт сеть доставки, к серверу доходит малая часть запросов. Помогает и в обычные дни, страницы открываются быстрее.

Ни один слой не работает в одиночку. CDN не спасёт от атаки на форму входа, а лимит запросов — от гигабитного флуда в канал.

Что уже включено в тарифы ZION

Защита от DDoS входит в стоимость всех тарифов, отдельной услугой её покупать не нужно. Фильтрация работает на границе сети, то есть закрывает тот слой, который владелец сайта закрыть не может.

WAF тоже включён без доплаты: правила на уровне приложения отсекают запросы, которые прошли сетевой фильтр, но не похожи на действия человека.

Поддержка отвечает круглосуточно, серверы стоят в российских городах, заявленный аптайм — 99,9 %. Если сайт начал вести себя странно, а вы не уверены, атака это или нагрузка, напишите в поддержку: со стороны провайдера видно, что происходит с трафиком до сервера.

Посмотреть тарифы можно на главной странице.

Чего защита не умеет

Абсолютной защиты не существует. Любая фильтрация — компромисс между строгостью и удобством. Чем жёстче правила, тем выше шанс, что под них попадёт живой посетитель с мобильного интернета или корпоративного адреса.

Хуже всего видны умные атаки на приложение. Если бот ходит по сайту как человек, с браузерными заголовками, паузами и загрузкой картинок, отличить его от посетителя сложно и фильтру, и вам. Тут выручают лимиты на тяжёлые операции: поиск, выгрузки, отправку форм.

Ошибки сайта фильтр не исправит. Страница, которая при каждом открытии делает полсотни запросов к базе, ляжет и без атаки: достаточно попасть в рассылку или подборку.

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

Чек-лист: подготовиться заранее

Всё это делается за один спокойный вечер и сильно облегчает неспокойный.

Чек-лист подготовки: кеш, лимиты запросов, мониторинг, резервные копии, контакты поддержки, белый список для админки, план на час простоя
Семь пунктов, которые стоит закрыть до первой атаки

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

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

Частые вопросы

Сайт замедляется, а затем перестаёт отвечать: браузер долго ждёт и показывает ошибку. Данные при этом остаются целыми, недоступен только сам сайт.
От нескольких минут до нескольких суток. Короткие атаки чаще всего проба сил или попытка вымогательства, длинные — целенаправленная работа против конкретной компании.
Адреса в логах принадлежат заражённым устройствам, а не организатору. Установить заказчика — задача правоохранительных органов, для этого нужно заявление и сохранённые логи.
Сетевую часть атаки отражает провайдер. Если нагрузка начинает мешать другим сайтам на сервере, доступ к вашему могут временно ограничить, поэтому при первых признаках стоит написать в поддержку.
Частично. CDN хорошо закрывает статику и снимает часть нагрузки, но запросы к динамическим страницам — поиску, корзине, форме входа — всё равно доходят до сервера.
Редко. Если атака идёт по доменному имени, новый адрес найдут за минуты, а посетители в это время останутся без сайта из-за кеширования DNS.
Нет. Это уголовное преступление, применяются статьи 272–274 УК РФ. Заказ такой атаки наказуем так же, как её проведение.
Взлом — это проникновение внутрь: кража данных, подмена файлов, доступ к админке. DDoS в систему не проникает, он лишает сайт возможности отвечать.
Базовая — да. Часть атак идёт по случайным целям, и небольшой сайт с одним сервером выходит из строя быстрее крупного. Кеш, лимиты запросов и фильтрация на стороне провайдера закрывают типичные случаи.
Нагрузка и число соединений возвращаются к обычным, в логах пропадают повторяющиеся запросы, а счётчик посещаемости снова совпадает с числом запросов к сайту.