13 мин чтения Скорость, безопасность, хостинг

DDoS-атака: как она кладёт сайт и что помогает защититься

ddos атаказащита от ddos атак
Содержание11

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

Что такое DDoS-атака

DDoS расшифровывается как Distributed Denial of Service — распределённый отказ в обслуживании. «Лаборатория Касперского» определяет её как отправку большого количества запросов на веб-ресурс, в результате которой ресурс может перестать работать. Слово «распределённый» означает, что запросы идут не с одного компьютера, а с тысяч устройств одновременно.

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

От взлома DDoS отличается целью. Взломщику нужны данные или контроль над сайтом, а DDoS просто делает сайт недоступным. После атаки база, файлы и пароли остаются на месте. Как защищаться от взлома, разбирали в статье безопасность сайта: от SSL до защиты от взлома; здесь речь только об отказе в обслуживании.

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

DDoS не крадёт данные, он отнимает доступность: сайт цел, но открыть его нельзя.

Как DDoS-атака кладёт сайт

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

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

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

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

Какие бывают DDoS-атаки?

MDN выделяет два больших типа: сетевые атаки, которые забивают канал, и атаки на уровне приложения, которые перегружают сам сайт и его базу данных. «Лаборатория Касперского» делит подробнее:

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

HTTP-флуд «Касперский» сравнивает с многократным обновлением браузера на многих компьютерах. Такие запросы похожи на настоящих посетителей, поэтому их труднее отсеять. Объёмные атаки берут грубой силой: используют всю доступную полосу пропускания сервера, отправляя огромные объёмы данных.

Для малого бизнеса важнее всего прикладные атаки. Объёмную обычно отражает хостер или провайдер, если у них есть защита, а HTTP-флуд по тяжёлой странице может положить сайт даже небольшим потоком.

Факт. По классификации MDN, DDoS-атаки делятся на сетевые, которые забивают канал, и прикладные, которые перегружают сайт и базу данных запросами.

Зачем атакуют обычный сайт компании?

Кажется, что DDoS грозит только банкам и крупным сервисам. Но «Лаборатория Касперского» называет типичными целями сайты электронной коммерции и любые организации, предлагающие онлайн-услуги. Под это определение попадает любой интернет-магазин и сервис записи.

Мотивы бывают разные:

  • Вымогательство — злоумышленник может потребовать плату за прекращение атаки.
  • Конкуренция — атака может быть попыткой дискредитировать или навредить бизнесу конкурента, особенно в сезон или во время акции.
  • Месть и хулиганство — недовольный клиент, бывший сотрудник, случайная мишень.
  • Прикрытие — пока администраторы заняты атакой, кто-то пытается взломать сайт или почту.

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

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

Как отличить DDoS-атаку от наплыва клиентов

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

Признаки, которые указывают именно на атаку:

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

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

Мнение. Если сайт лёг, а в аналитике обычный день и вы ничего не запускали, считайте это атакой и сразу пишите хостеру. Если лёг после рассылки или рекламы, скорее всего, не хватает мощности, а не защиты.

Чем DDoS опасен для бизнеса и позиций в поиске

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

Есть и отложенный ущерб — поиск. Справка Яндекс Вебмастера предупреждает: если поисковому роботу не удалось подключиться к сайту из-за ошибки сервера, то сайт может полностью пропасть из поиска. Google описывает похожее поведение: при ошибках сервера 5xx и 429 его роботы временно замедляют сканирование, а уже проиндексированные адреса сохраняются в индексе, но в скором времени удаляются.

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

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

Что защищает от DDoS-атак?

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

Уровень защиты От каких атак Ограничения
Защита у хостинга объёмные и на протоколы на дешёвых тарифах режет только грубый поток
Сервис защиты или CDN-прокси все виды, включая HTTP-флуд работает, только если реальный IP сервера скрыт
WAF прикладные атаки и подбор паролей требует настройки правил под сайт
Ограничение запросов на сервере небольшой HTTP-флуд не спасает от объёмных атак
Кэширование страниц снижает нагрузку от любых запросов не работает для корзины и кабинета

Сервис защиты ставят перед сайтом: весь поток идёт сначала через его сеть, где фильтруется, и только чистые запросы доходят до вашего сервера. Межсетевой экран веб-приложений, WAF, по описанию «Касперского», работает так же — как обратный прокси-сервер перед защищаемыми серверами. Сети доставки контента выполняют похожую роль для статики и заодно хорошо подходят для обработки пиков трафика.

Важное условие: реальный IP-адрес сервера должен остаться неизвестным. Если он засветился в старых DNS-записях, заголовках писем с формы или поддомене без защиты, атакующий пойдёт мимо фильтра.

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

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

Ограничение запросов на сервере: пример для nginx

Если сайт работает на своём сервере или VPS, базовую защиту от небольших прикладных атак можно включить в веб-сервере. Модуль nginx limit_req позволяет ограничить скорость обработки запросов, в том числе поступающих с одного IP-адреса. Лишние запросы задерживаются, а при превышении лимита отклоняются с ошибкой.

http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

    server {
        location /search/ {
            limit_req zone=one burst=5;
        }
    }
}

По документации nginx, такие директивы позволяют в среднем не более 1 запроса в секунду со всплесками не более 5 запросов с одного адреса. Ставить такой жёсткий лимит на весь сайт нельзя: обычная страница тянет десятки файлов. Ограничение вешают на тяжёлые места — поиск, фильтры, вход в админку, отправку форм.

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

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

Действуйте по порядку, не тратя время на поиск виноватых:

  1. Напишите хостеру или провайдеру

    Они видят поток на уровне сети и могут включить фильтрацию. Спросите, есть ли у них защита и как её подключить.

  2. Подключите сервис защиты

    Если у хостера защиты нет, переведите сайт за сервис защиты или CDN-прокси сменой DNS. После этого смените IP-адрес сервера: старый атакующие уже знают.

  3. Отключите рекламу

    Не платите за клики, пока сайт не открывается.

  4. Включите кэш и закройте тяжёлое

    Временно отключите поиск и фильтры или поставьте на них ограничение запросов.

  5. Сохраните логи

    Они понадобятся для настройки фильтров и для обращения в правоохранительные органы.

  6. Не платите вымогателям

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

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

Источники

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

Можно ли полностью защититься от DDoS?

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

Может ли DDoS-атака взломать сайт или украсть данные?

Сама по себе нет: она только делает сайт недоступным. Но атаку иногда используют как прикрытие для взлома, поэтому после неё проверьте журналы входа в админку и обновления CMS.

Поможет ли переезд на другой хостинг?

Только если у нового хостинга есть защита от DDoS, а новый IP-адрес сервера скрыт за фильтром. Простая смена хостинга без защиты даст передышку до тех пор, пока атакующие не узнают новый адрес.

Поделиться
ВКонтакте Telegram MAX
Рубрика статьи
Скорость, безопасность, хостинг
Ещё 18 статей в рубрике →
Рядом в разделе

Расскажите о задаче — посчитаем смету

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