Защита от DDoS-атак на сервере
Рассматриваем разновидности DDoS-атак, а также основные методы и средства борьбы с ними.
Сегодня распределенные атаки типа «отказ в обслуживании» (DDoS) несут серьезную угрозу для серверов и IT-инфраструктуры в целом. В первом квартале 2023 года в России было зафиксировано 385 000 DDoS-атак, что на 58% больше, чем в 2022 году.
Независимо от того, являетесь ли вы IT-специалистом или же управляете бизнесом, материал освежит знания о DDoS и поможет подготовиться даже к самым непредсказуемым атакам.
DDoS-атаки и их цель
DDoS (Distributed Denial of Service) — это распределенная атака типа «отказ в обслуживании», которую используют хактивисты, чтобы нарушить нормальную работу целевого сервера, сайта или приложения с помощью мощного потока трафика.
Чрезмерное количество трафика вызывает отказ в обслуживании пользователей. Иначе говоря, атакуемый сервер просто перестает отвечать на запросы, потому что не успевает их обрабатывать. Такие действия могут быть мотивированы различными факторами: от финансовой выгоды и политической активности до личной неприязни и кибервандализма.
Один из методов организации таких атак — создание ботнета (его еще называют botmaster или bot herder), то есть сети взломанных устройств. Эти устройства иногда не связаны между собой напрямую, но при этом управляются одним злоумышленником. В ботнете могут состоять десятки тысяч компьютеров, каждый из которых способен отправлять сетевые запросы, что в совокупности нагружает цель, вызывая перебои в работе или полную недоступность сервиса.
Первая DDoS-атака произошла в 1996 году: тогда американский провайдер интернета Panix упал на целых 36 часов из-за действий хакеров. С тех пор такой метод атак на сервисы компаний только набирал популярность. В среднем от DDoS-атак ежегодно мировая экономика теряет около 1 миллиарда долларов.
Кстати, если встретите название этого типа атаки в русской транслитерации — например, «ддос» или «ддос-атака», то знайте, что это ошибка. У термина DDoS нет русскоязычного аналога, разве что «атака типа “отказ в обслуживании”».
Зачем устраивают DDoS-атаки
Цели могут быть любыми. Кто-то таким образом хочет подставить конкурента, чтобы переманить его недовольных клиентов к себе. Иногда за прекращение атаки даже требуют выкуп. Но могут быть и не связанные с финансовой выгодой причины, например:
- просто ради развлечения или практики для начинающих хакеров;
- с целью кражи персональных данных. Сама атака в этом не поможет, но она может служить отвлекающим маневром;
- личная неприязнь и конфликты любого масштаба.
В целом как правило атаки совершаются для того, чтобы сделать сервис недоступным, и таким образом испортить его репутацию и отпугнуть посетителей или клиентов. Есть даже целые компании, которые могут организовать DDoS-атаку на заказ.
Как устроены DDoS-атаки
Ботнеты состоят из множества взломанных систем. Злоумышленники управляют ими удаленно, направляя поток трафика на жертву. Современные DDoS-атаки могут иметь различное строение: от простых прямых атак до сложных многовекторных стратегий. Последние могут одновременно нацеливаться на разные уровни сетевой модели OSI, что усложняет обнаружение и борьбу с последствиями.
Алгоритм DDoS-атаки в большинстве случаев выглядит так:
- Злоумышленник развертывает вредоносный код на устройствах, которые удалось подключить к ботнету.
- Генерирует множество запросов с этих устройств.
- Анализирует результат атаки и при необходимости проводит ее еще раз с новой силой.
Если атака прошла успешно, атакуемый ресурс либо сильно снижает производительность, либо вовсе прекращает работать.
Иногда DDoS-атаки путают со слэдшот-эффектом. По сути это почти одно и то же: слэдшот-эффект возникает, когда сайт не выдерживает количества посетителей. Однако в данном случае речь идет об органическом трафике: то есть когда посетители пришли к вам на сайт сами. Это не целенаправленные действия злоумышленников, а лишь досадная неприятность.
Другой тип атаки, который легко спутать с отказом в обслуживании — это DoS-атака. Разница между DDoS и DoS состоит в том, что для первой атаки злоумышленники используют сеть из множества устройств, а для второй — только одно. Купировать DoS-атаку проще — нужно только определить и заблокировать IP-адрес, с которого выполняются запросы.
Диагностика проблемы
Есть несколько тревожных звоночков, которые могут сигнализировать об атаке:
- сайт подвисает, программное обеспечение работает некорректно,
- нагрузка на сервер резко и нетипично возрастает,
- появляются ошибки, пользователи жалуются в поддержку,
- страницы загружаются очень долго.
Если заметили что-то подобное, есть повод насторожиться. Следующие способы помогут убедиться, что в данный момент на ваш сайт совершается DDoS-атака.
1 способ: посмотрите логи, особенно переменные request_time и upstream_response_time. Первая — это скорость выполнения запроса вместе с задержками, а вторая — скорость выполнения запроса в бэкенде. Значение второй переменной особенно важно, если вы используете большое количество динамического контента.
2 способ: проверьте количество запросов и пакетов в секунду, а также нет ли резкого роста нагрузки на ресурсы сервера (CPU/RAM) и какие типы запросов приходят (множество однотипных запросов с разных IP — недобрый знак). Любое отклонение от нормы — слишком много или слишком мало запросов — может свидетельствовать о DDoS-атаке. Если количество запросов выросло, значит, ваш сайт атаковал разветвленный ботнет, а если их стало критически мало — возможно, сайт упал и обычные пользователи не могут на него зайти.
Классификация атак и их виды
Низкоуровневые атаки
Эти кибератаки направлены на сетевой (L3) и транспортный (L4) уровни сети. Их основная задача — переполнить пропускную способность и ресурсы цели, перегрузив ее огромным количеством трафика.
Основные виды низкоуровневых атак:
- UDP Flood — переполнение случайных портов цели UDP-пакетами;
- ICMP Flood (Ping Flood) — заполнение цели пакетами ICMP Echo Request;
- SYN Flood — потребление ресурсов сервера с помощью потока TCP/SYN-пакетов;
- NTP Amplification — использование публичных NTP-серверов для переполнения цели UDP-трафиком;
- DNS Amplification — использование публичных DNS-серверов для преумножения трафика через DNS-ответы.
В качестве примера можно рассмотреть атаку SYN Flood на популярный онлайн-магазин. Злоумышленники начинают массовую отправку SYN-пакетов на серверы магазина, вызывая дефицит свободных вычислительных ресурсов для установления TCP-соединений. В результате реальные клиенты не могут загрузить страницы сайта, так как сервер перегружен фиктивными запросами на подключение, и выручка магазина падает.
Высокоуровневые атаки
Такие атаки направлены на прикладной уровень (L7) сети. Один из используемых инструментов — веб-запросы. Хактивисты по HTTP переполняют ими сервер, который не успевает загружать и отправлять страницы. Этот метод сложнее обнаружить и нейтрализовать из-за схожести с легитимным веб-трафиком.
Наиболее часто встречающиеся виды высокоуровневых атак:
- HTTP Flood — отправка многочисленных HTTP-запросов для перегрузки веб-сервера или приложения;
- Slowloris — создание и поддержание множества медленных HTTP-соединений с целью исчерпания ресурсов сервера;
- SSL Exhaustion — перегрузка сервера, вызванная инициацией большого количества запросов на SSL-соединение;
- Zero-day DDoS — использование неизвестных уязвимостей в веб-приложениях или серверах.
Примером высокоуровневой атаки может служить HTTP Flood на новостной портал. Здесь злоумышленники используют ботнет для отправки большого количества HTTP-запросов к веб-серверу. Эти запросы могут быть нацелены на конкретные ресурсоемкие страницы или функции сайта, например форму поиска. В результате сервер перегружается, а посетители не могут читать новости или оставлять комментарии.
Высокоуровневая атака фокусируется на прикладном уровне, имитируя легитимные запросы к веб-приложениям. Из-за этого отличить ее от обычного трафика очень сложно.
Основное различие между низкоуровневыми и высокоуровневыми атаками в том, что первые обычно нацелены на нарушение работы сетевых компонентов, а последние — конкретных приложений и функций.
Атаки на инфраструктуру
- Атака йо-йо — используется для облачных приложений с автоматическим масштабированием. Количество трафика заставляет систему масштабироваться, затем трафик резко прекращается до тех пор, пока масштабирование не пойдет в обратную сторону. В этот момент трафик возобновляется.
- Ошибки программирования — злоумышленник находит уязвимости в архитектуре сервиса, который хочет атаковать. Затем специально пишет программу, которая использует эту уязвимость, чтобы положить сервис.
Мифы о DDoS-атаках
Как и любое распространенное явление, DDoS-атаки обросли множеством мифов. Обсудим самые популярные из них.
Миф: хостинг-провайдеры защищают сайты от DDoS-атак по умолчанию. Правда: невозможно найти универсальное решение, эффективное для всех. Разным сайтам нужно настраивать защиту по-своему. |
Миф: для мощной атаки нужен разветвленный ботнет. Правда: чтобы положить сайт, достаточно и вполне легального графика, например во время распродажи. |
Миф: для защиты достаточно базового брандмауэра операционной системы. Правда: при желании злоумышленник может обойти эту защиту, используя открытые порты брандмауэра. |
Миф: атаки совершают только на популярные сайты и крупные сервисы. Правда: заказать атаку можно на кого угодно. Порой так поступают конкуренты в среде малого и среднего бизнеса. |
Миф: в ботнет могут попасть только компьютеры и смартфон. Правда: частью зомби-сети может стать любое устройство с выходом в интернет — например, камера видеонаблюдения или роутер. |
Миф: корпоративные серверы по умолчанию защищены от DDoS-атак. Правда: чаще всего штатные системные администраторы не могут обеспечить полную защиту от всех видов кибератак. |
Миф: в сервис крупных CDN-провайдеров входит защита от DDoS-атак любой мощности. Правда: даже самые продвинутые провайдеры не могут обеспечить комплексную и гарантированную защиту. |
Чем опасны DDoS-атаки
DDoS-атаки несут угрозу не только стабильной работе серверов, но и безопасности данных, деловой репутации и финансам.
Группы риска
Некоторые отрасли более уязвимы к атакам из-за зависимости от цифровых и онлайн-сервисов. Основными объектами атак часто становятся:
- платформы электронной коммерции,
- СМИ,
- финансовые учреждения,
- медицинские организации,
- государственные учреждения,
- службы онлайн-игр.
Для этих организаций бесперебойная работа онлайн-сервисов имеет решающее значение, и любое нарушение может повлечь серьезные последствия.
По данным провайдера защиты StormWall за 2023 год, чаще всего DDoS-атакам подвержен финансовый сектор. Следом за ним идут государственный сектор, онлайн-торговля, телекоммуникации и сфера развлечений.
Ущерб от DDoS-атак
- Утечка данных. DDoS отвлекает внимание от более серьезных нарушений безопасности. Пока IT-команда занята борьбой с атакой, киберпреступники могут воспользоваться моментом для хищения данных. Такие утечки могут привести к раскрытию различных видов конфиденциальной информации.
- Финансовый ущерб. DDoS-атаки ведут как к прямым затратам на противодействие атаке и восстановление сервисов, так и к косвенным — например, потере клиентов, вынужденной выплате компенсаций и другим.
- Репутационный ущерб. DDoS может подорвать авторитет компании, что приведет к потере клиентов, партнеров и потенциально долгосрочному ущербу для бренда.
- Вымогательство. DDoS-атаки могут сопровождаться вымогательством, когда злоумышленники не только нарушают работу сервисов, но и угрожают зашифровать или раскрыть конфиденциальные данные.
- Проблемы с SEO. Поисковые боты отслеживают доступность сайта, и если он будет недоступен более двух суток, они опустят его в выдаче.
- Некорректная работа IT-инфраструктуры. Например, во время атаки пользователь может случайно увидеть внутреннюю информацию или отрывки кода.
- Судебные издержки. Иногда клиенты, которые не могут воспользоваться сервисом из-за атаки, подают на него в суд. Обычно с таким сталкиваются финансовые, технологические и фармацевтические компании.
- Трудности для службы технической поддержки. Во время DDoS-атак пользователи сталкиваются с перебоями в работе сервисов. Они начинают отправлять больше запросов и жалоб в техподдержку хостинг-провайдера. Это ведет к тому, что время решения одного тикета увеличивается. Другая сложность для техподдержки заключается в том, чтобы отличить обычные технические проблемы от тех, которые вызваны DDoS-атакой.
Методы защиты от DDoS-атак
Настройка файрвола
Важнейшие элементы защиты от DDoS — брандмауэры, они же файрволы, которые могут быть настроены на выявление и блокировку нелегитимного трафика. Главное — не оставлять в политиках файрвола стандартные настройки. Необходимо закрыть все, кроме доверенных адресов и портов.
Чтобы повысить эффективность файрвола, можно использовать WAF (Web Application Firewall). Он дополнительноконтролирует сетевые запросы по протоколам HTTP и HTTPS.
Использование CDN
CDN (сеть доставки контента) — это сеть распределенных серверов, которые доставляют веб-контент и страницы пользователю в зависимости от его географического положения. CDN предназначена для оптимизации скорости и эффективности за счет хранения кэшированного контента ближе к конечным пользователям, уменьшая задержки и нагрузку на другие серверы.
CDN распределяет содержимое веб-ресурса по глобальной сети серверов. Так уменьшается объем трафика, воздействующего на отдельный сервер. Кроме того, многие CDN предлагают встроенные функции защиты от DDoS, такие как автоматическое перенаправление трафика, алгоритмы обнаружения аномалий и способность поглощать и рассеивать большие объемы трафика.
Настройка DNS
- Очистка кэша. Эта процедура дает возможность хранить информацию об IP-адресах внутри сети и не обращаться к DNS-серверу при каждом запросе, снимая с него часть нагрузки. Другое преимущество очистки кэша DNS в том, что она сокращает ожидание ответа на запросы пользователей.
- Ограничение скорости ответа (Response Rate Limiting, RRL). Это техника, используемая в DNS-серверах для защиты от DDoS-атак, в частности от атак с усилением DNS. RRL работает за счет контроля количества ответов, которые DNS-сервер посылает за определенный промежуток времени.
Атака с усилением DNS — это тип DDoS-атаки, при котором злоумышленник использует функциональность публичных DNS-серверов для переполнения цели большим объемом трафика. Это делается путем отправки DNS-запросов с IP-адреса жертвы, заставляя DNS-сервер присылать ответы на адрес, который по факту в них не нуждается. Такой механизм называется «усилением», потому что злоумышленник превращает небольшой набор запросов в гораздо больший объем трафика, направленный на жертву.
Настройка фильтрации трафика
Фильтрация трафика подразумевает развертывание сетевых решений, которые тщательно проверяют входящий трафик и определяют, исходит ли он от легитимных пользователей или является частью DDoS-атаки. Эти системы используют различные критерии для выявления и блокировки вредоносного трафика, например IP-адрес источника, частоту трафика, целостность пакетов. Такой подход помогает не только защититься от атаки в реальном времени, но и понять принцип ее действия, чтобы предотвратить неприятности в будущем.
Предотвращение спама
Меры по предотвращению спама включают в себя развертывание CAPTCHA для проверки реальных пользователей и ботов, внедрение систем проверки электронной почты для предотвращения регистрации спам-ботов. А также ограничение попыток авторизации или отправки форм.
Использование модуля Testcookie
Модуль Testcookie, согданный Эльдаром Заитовым — это сложный инструмент, часто используемый в серверах Nginx. Он проверяет входящие соединения с помощью теста JavaScript, чтобы определить, кто является источником трафика — реальный пользователь или бот. Этот модуль эффективно блокирует запросы от автоматизированных ботнетов.
Код 444
В конфигурациях серверов Nginx код 444 указывает закрыть соединение, не отправляя в ответ ни заголовка, ни тела сообщения. Такой инструмент является эффективной мерой для обработки вредоносного трафика с минимальным потреблением ресурсов.
Блокировка по географическому признаку
Этот метод подразумевает блокировку или ограничение трафика из регионов с репутацией источников DDoS-атак. Такая защита может быть реализована с помощью правил брандмауэра или настроек конфигурации сети. Этот способ основан на идее о том, что у магазина игрушек в Ижевске вряд ли может быть много пользователей из Японии. Справедливо, однако данные GeoIP иногда ошибаются, а ижевчане могут летать в Японию.
Использование нейронной сети
Использование нейронных сетей для борьбы с DDoS предполагает анализ трафика и выявление «аномалий» с помощью искусственного интеллекта. Этот метод позволяет адаптивно реагировать на угрозы в режиме реального времени.
При использовании этого метода стоит иметь под рукой access.log, поскольку он описывает практически всех легальных клиентов, и на нем получится эффективно обучить нейронную сеть.
Использование специальных сервисов
Услуги компаний, специализирующихся на предотвращении DDoS, обеспечивают комплексную защиту от широкого спектра таких атак. Эти услуги обычно включают расширенную фильтрацию трафика, ограничение скорости, обнаружение ботнетов и автоматические механизмы реагирования.
Дополнительная настройка nginx
Настройки веб-сервера по умолчанию недостаточно для эффективной защиты. Кроме того, следует настроить следующие таймауты:
- reset_timedout_connection on,
- client_header_timeout,
- client_body_timeout,
- keepalive_timeout,
- send_timeout.
Для каждого из них нужно задать минимальное значение, при котором сайт продолжает работать в обычном состоянии. Определить его поможет тестирование с десктопа и мобильного браузера.
Лимитирование ресурсов и соединений в nginx
Необходимо ограничить размер используемых буферов и прописать их в конфигурации nginx. Кроме того можно протестировать, сколько запросов выдерживает ваш сайт, и также прописать это значение в конфиге.
Профилактика DDoS-атак
1. Общий анализ и диагностика IT-инфраструктуры
На первом этапе профилактики стоит оценить архитектуру сети, мощности серверов и существующие меры безопасности. Анализ IT-инфраструктуры выявит уязвимости, которые могут быть использованы в DDoS-атаке, и поможет устранить слабые места. Организовать этот процесс можно так:
- Закрыть его там, где он не требуется.
2. Составить подробный план инфраструктуры, которую вы используете.
3. Убедиться, что вы верно понимаете, где и как расположены все ее элементы.
4. Определить, к каким из этих элементов необходим внешний доступ.
2. Подготовка резервных ресурсов
Резервирование серверов и сетевых маршрутов гарантирует, что операции будут продолжаться даже во время DDoS-атаки. Эти резервные ресурсы могут взять на себя нагрузку по трафику, поддерживая доступность услуг, если основная система будет скомпрометирована.
3. Минимизация зоны атаки
Сокращение зоны атаки подразумевает ограничение точек доступа, которыми может воспользоваться злоумышленник. Этого можно достичь путем отключения ненужных служб, закрытия неиспользуемых портов и применения строгих мер контроля доступа. Чем меньше уязвимых точек содержится в сети, тем сложнее злоумышленнику проникнуть в нее.
Например, стоит по возможности перейти с HTTP на HTTPS, скрыть настоящие IP-адреса инфраструктуры и научиться распознавать нелегитимные запросы.
4. Настройка мониторинга
Постоянный мониторинг сетевого трафика и производительности системы помогает на ранней стадии обнаружить аномалии, которые могут сигнализировать о DDoS-атаке. Внедрение инструментов мониторинга, способных анализировать трафик и предупреждать о подозрительных действиях, является важным элементом для оперативного реагирования и смягчения последствий.
5. Подбор оптимальной инфраструктуры
Настройка конфигурации сети и систем безопасности в соответствии с потребностями может значительно усилить защиту от DDoS-атак. Конфигурация сети включает в себя настройку брандмауэров, систем обнаружения вторжений и других решений для выявления и блокирования вредоносного трафика.
Также стоит учитывать, что сетевой стек Windows Server и IIS довольно плохо справляется с большим количеством запросов, особенно без тонких настроек. Также веб-сервер Apache уязвим некоторым типам атак, например, Slowloris. Лучшим решением будет использовать кеширующий прокси вроде nginx или lighttpd перед веб-сервером.
Этапы борьбы с DDoS в дата-центрах
1. Обнаружение атаки
В центрах обработки данных используются мощные системы мониторинга, которые анализируют весь трафик в поисках признаков кибератаки. Быстрое выявление таких аномалий важно для своевременного реагирования.
2. Перенаправление трафика
После обнаружения DDoS-атаки главной задачей становится эффективное управление входящим трафиком. Он перенаправляется от основной цели к распределенным сетям или специализированным системам фильтрации. В этом может помочь, например, перенаправление средствами DNS или CDN. Эти методы позволяют «рассеять» атаку в более широкой сети, снизив ее воздействие на атакуемый сервер или IT-инфраструктуру в целом.
3. Фильтрация трафика
На этом этапе внедряются механизмы фильтрации, чтобы отделить легитимный трафик от атак. Для этого используются алгоритмы и методы распознавания образов, позволяющие идентифицировать и блокировать вредоносные пакеты данных.
4. Анализ атаки
После устранения последствий атаки нужно понять ее природу и источник: изучить логи, схемы трафика и векторы атак. Полученные сведения важны для укрепления защиты от атак в будущем. Готово — вы побороли DDoS!
Работа над ошибками и анализ атаки
1. Собрать данные о произошедшей атаке
Нужно зафиксировать, как долго длилась атака, сколько запросов поступало в секунду, каким оказался ущерб, какую цель преследовали злоумышленники. Эта информация поможет увидеть слабые места в архитектуре и усилить их защиту.
2. Оценить последствия
Определите, понес ли ваш бизнес денежные и репутационные потери. Эта информация поможет понять, стоит ли обратиться к стороннему провайдеру, чтобы обеспечить защиту в будущем, и обосновать это решение.
3. Подключить защиту от DDoS-атак
Это поможет минимизировать ущерб от атак в будущем. Если же вы уже используете такую защиту, возможно, следует найти ей более эффективную замену.