активное фото
60 000+ клиентов уже выбрали Макхост

Защита сайта от DDoS-атак: подробная инструкция

DDoS (Denial of Service) — это кибератака, при успешной реализации которой сайт перестает отвечать на любые запросы или замедляется до такой степени, что выполнение даже простых операций отнимает большое количество времени. Атаку направляют на уязвимые места в системе: это может быть вся ИТ-инфраструктура, конкретный сервис или его отдельный канал. Хакеры заражают устройства обычных пользователей вирусом, превращая их в «зомби» и объединяя в сеть — ботнет. Она является инструментом ДДоС, который выводит сайт из строя. Защита сайта от DDoS спасает личные данные его пользователей от утечки, сохраняет репутацию веб-сервиса в поисковой выдаче и прибыль бизнеса. Разбираем 10 актуальных в 2022 году методов по защите веб-ресурса от ДДоС.

10 методов защиты от DDoS-атак в 2022 году

DDoS переводится с английского как «распределенный отказ в обслуживании». Хакеры управляют ботнетом и отправляют ему команду атаковать выбранный веб-ресурс. Это значит, что на сайт одновременно отправляются нецелевые запросы с огромного количества IP-адресов. Сервер пытается обработать каждое обращение, но его вычислительные ресурсы ограничены, в определенный момент их становится недостаточно, и сайты «падают». DDoS предшествовала DoS-атака, при которой все запросы поступали с одного компьютера. Многочисленные обращения к серверу с единственного IP-адреса выглядели подозрительно, поэтому ДоС-атаку было легко поймать в самом начале и отразить, заблокировав бота. ДДоС — более сложная кибератака. Если ботов в сети много, они быстро выведут сайт из строя. Отличить их от подлинных юзеров сложно. Если вводить защиту только после начала атаки, то нельзя гарантировать ее успешное отражение до того, как сайт полностью отключится.

Защита сайта от DDoS-атак.

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

Как определить наличие атаки:

  1. Необходимо подключиться к веб-серверу по SSH.
  2. С помощью команд ps и top проверяем рост количества процессов httpd (apache2), php-fpm или nginx.
  3. Считаем количество процессов веб-сервера и количество подключений на 80 порт (443, если на сайте установлен SSL-сертификат) с помощью команд:

    ps aux | grep -с <имя демона-процесса веб-сервера>

    netstat -na | grep -с :”80”

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

DDoS-атака — продвинутый вариант ДоС. Однако развитие подобного вида угроз безопасности не остановилось на этом. Злоумышленники находят в системе новые уязвимости и появляются более современные виды ДДоС. Они используют слабые места каждого из семи уровней взаимодействия пользователя и сайта в сети L1–L7. Самыми распространенными являются HTTP-, SYN-, ICMP- и UDP-флуд. Универсальных мер защиты нет, однако можно выбрать и использовать сразу несколько способов, которые вместе могут обеспечить надежный уровень безопасности. Перечислим десять наиболее эффективных в 2022 году:

  1. Фильтрация входящего трафика.
  2. Своевременное обновление ПО.
  3. Включение сторонней защиты от DDoS.
  4. Мониторинг доступности сайта.
  5. Оптимизация запросов.
  6. Не экономьте на оборудовании.
  7. Отслеживание количества запросов в секунду.
  8. Отказ от Windows Server.
  9. Использование модуля testcookie.
  10. Анализ ошибок.

Ниже мы подробнее разберем каждый способ защиты от ДДоС.

№1. Фильтрация входящего трафика

Базовую защиту от DDoS-атак может обеспечить хостинг-провайдер. Как правило, в бесплатную защиту от хостера входит фильтрация трафика на уровне L3 и L4. Пакеты данных, поступающие на сайт клиента, анализируются на наличие маркеров атаки. Начало ДДоС определяется по таким признакам, как уникальность IP-адресов, скорость доставки пакетов, скорость передачи данных и так далее. Если находятся отклонения, включается L3/L4-фильтрация, после которой на сайт поступают запросы только от настоящих пользователей. Базовый уровень защиты подойдет небольшим проектам.

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

№2. Своевременное обновление ПО

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

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

№3. Включение сторонней защиты от DDoS

Объем трафика может возрасти по естественным причинам, например, во время проведения рекламных акций или в период продажи сезонных товаров. Поэтому рост трафика не всегда связан с DDoS-атакой. Если заблокировать обычных посетителей сайта, это сразу негативно скажется на его репутации. Необходимо настроить фильтрацию входящего трафика так, чтобы до сайта доходили только настоящие запросы и под блокировку не попадали добросовестные пользователи. Стандартная фильтрация не учитывает особенности проекта и защищает только от DDoS низкого уровня. Для обеспечения более высокого уровня безопасности потребуются дополнительные меры:

  • карта киберугроз «Лаборатории Касперского» — позволяет установить страны, трафик из которых наиболее опасен для проектов;
  • файрвол — готовая система фильтров, целью которой является борьба с вирусами;
  • Anti-DDoS — сервисы, которые настраивают фильтры для отражения атак в зависимости от их мощности и типа.

Более гибкие и глубокие методы профилактики и борьбы с ДДоС обычно обеспечиваются сторонними сервисами. Формируются индивидуальные алгоритмы защиты для проекта. Составляется модель нормального взаимодействия пользователя с конкретным сайтом или приложением. Входящий трафик анализируется и сравнивается с данной моделью. Чтобы найти отклонения, необходимо выявить:

  • из каких стран приходит основной трафик;
  • с какой интенсивностью обычно поступают запросы;
  • какие заголовки и методы чаще всего выбирают пользователи для обращения к серверу;
  • какой объем трафика характерен для проекта;
  • особенности услуг компании и т. д.

Появляются дополнительные правила фильтрации трафика. Сайт защищается на всех уровнях взаимодействия с пользователем от L1 до L7. Появляется возможность ограничить доступ к сайту устройствам ботнета по геопризнаку, а также блокировать атаки типа UDP, SYN, ACK, RST Flood, атаки на TLS-сервисы и смарт-атаки.

№4. Мониторинг доступности сайта

Чем раньше вы узнаете, что у сайта появились проблемы с доступом, тем быстрее сможете найти их решение. Существуют специальные сервисы, которые проверяют сайт и отправляют владельцу уведомление, если он стал недоступен. Веб-ресурс проверяется монитором с определенной периодичностью, например раз в час. Тестируется доступность по HTTP, DNS и PING.

№5. Оптимизация запросов

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

По количеству ресурсов, которые сервер будет тратить на обработку запросов. Чтобы сайт оставался работоспособным, можно установить лимит на вычислительные ресурсы сервера, которые он будет тратить на обработку каждого запроса. Таким образом будут фильтроваться входящие пакеты, которые могут перегрузить веб-ресурс. В первую очередь устанавливаются лимиты для оперативной памяти, а точнее на объем данных, который помещается в буфере. Параметры устанавливаются в конфиге nginx:

  • client_max_body_size — максимальный размер тела запроса пользователя;
  • client_header_buffer_size — размер буфера для заголовка запроса;
  • large_client_header_buffers — размер буфера для запросов с объемным заголовком.

По тайм-ауту, возникающему при взаимодействии пользователя и сайта. Данный фильтр поможет защитить сервер от мусорных запросов, целью которых является не получение ответа (как у реального пользователя), а создание нагрузки на канал. Устанавливается оптимальное время, в течение которого сервер должен обработать запрос, а клиент принять ответ. Если этого не происходит, соединение разрывается. Сервер освобождается и переходит к обработке следующего обращения. Параметры в nginx:

  • send_timeout — время, в течение которого клиент должен принять ответ от сервера, прежде чем сеанс будет автоматически завершен;
  • keepalive_timeout — время до принятия сервером решения о разрыве соединения c пользователям после отправки keepalive (сообщения для проверки активности соединения между устройствами);
  • client_body_timeout и client_header_timeout — нормальное время для чтения заголовка и тела сообщения;
  • reset_timedout_connection on — помогает вовремя закрыть соединение между устройствами на фазе FIN-WAIT, если одна из сторон направила запрос на завершение сеанса, но не получила от другой подтверждения.

По IP-адресу для GET-запросов. Блокировка по IP эффективна для защиты от HTTP-флуда. Необходимо получить доступ к лог-файлам от HTTP-сервера. Для этого нужно перейти по ссылке на сайте хостера, альтернативный путь — поиск журнала через системные папки веб-сервера, например, на apache log-файл будет расположен по следующему адресу: /etc/httpd/logs/access_log. В журнале веб-сервера нужно выделить IP-адреса устройств, поведение которых напоминает ботов — с них поступает большое количество GET-запросов за короткий промежуток времени. Затем создается файл .htaccess в корневой папке сайта, в нем прописывается код:

                    
                    <Limit GET POST>
                    order allow,deny
                    deny from 000.000.00.00
                    deny from ...
                    allow from all
                    </Limit>
                    
                

Подозрительные IP-адреса подставляются вместо 000.000.00.00.

По геопризнаку. Таким образом можно устранить запросы из стран, в которых нет целевой аудитории проекта, но из которых постоянно поступает мусорный трафик. Подключите к nginx GeoIP-модуль. Выведите информацию о геопривязке в access_log и добавьте отсеянных по этому признаку пользователей в бан. Не попав на сайт, пользователь получит в ответе от сервера код «444 Not Found»

№6. Не экономьте на оборудовании

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

  • высокая пропускная способность сети;
  • наличие производительного канала связи с дата-центром;
  • расстояние между пользователями сайта и сервером;
  • тип накопителя;
  • характеристики CPU;
  • отсутствие ограничений по трафику.

№7. Отслеживание количества запросов в секунду

Следите за изменением объема запросов, которое поступает на сайт за одну секунду. О ДДоС-атаке будет сигнализировать как резкий рост обращений, так и сильное снижение этого показателя. По увеличению трафика можно установить начало атаки, а по падению — стадию обрушения сайта. Провести оценку этой величины можно с помощью shell-команды в nginx:

echo $(($(fgrep -c "$(env LC_ALL=C date --date=@$(($(date \
    +%s)-60)) +%d/%b/%Y:%H:%M)" "$ACCESS_LOG")/60))

№8. Отказ от Windows Server

Когда соединений становится очень много, Windows Server начинает плохо отвечать. Причина неудачи кроется в сетевом стеке Виндовс. ОС из семейства Linux лучше защищены от атак, поэтому многие владельцы серверов выбирают дистрибутивы для своих VPS и выделенных серверов. Linux имеет базовые инструменты для быстрой блокировки ботов по IP — утилиты iptables и ipset. Кроме того, можно настроить ядро Линукс по тайм-аутам и размерам буфера.

№9. Использование модуля testcookie

Testcookie-nginx — модуль, который работает как фильтр между ботами и бэкэндом во время DDoS-атаки L7 и позволяет блокировать мусорные запросы. Testcookie защищает только от ботов без механизмов HTTP-cookie и редиректа. Модуль проверяет клиента на умение выполнять redirect, поддержку JavaScript и его соответствие браузеру, за который он себя выдает.

№10. Анализ ошибок

Проанализируйте по логам объем трафика, время ответа сервера и количество возникающих ошибок. Для этого в журнале nginx проверьте время выполнения запроса с учетом всех задержек, возникающих при соединении между пользователем и сервером, по переменной request_time, а затем время, которое понадобилось бэкенду сайта, чтобы выполнить операцию и дать ответ пользователю, по переменной upstream_response_time. Формат лог-файла задается с помощью следующего конфига:

log_format xakep_log '$remote_addr - $remote_user [$time_local]  '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" $request_time \
$upstream_response_time';

Заключение

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

Автор: Макхост

Оцените статью

10 методов защиты от DDoS-атак в 2022 году №1. Фильтрация входящего трафика №2. Своевременное обновление ПО №3. Включение сторонней защиты от DDoS №4. Мониторинг доступности сайта №5. Оптимизация запросов №6. Не экономьте на оборудовании №7. Отслеживание количества запросов в секунду №8. Отказ от Windows Server №9. Использование модуля testcookie №10. Анализ ошибок Заключение

Другие полезные статьи

Макхост — лидер авторитетных рейтингов