Как остановить DDoS атаку

24.06.2018

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

Что представляет собой DDoS атака?

DDoS это сокращение от distributed denial of service (распределенная атака типа «отказ в обслуживании»). Главная цель DDoS атаки – забить запросами ваш сервер и либо нанести какой-то ущерб, либо просто вывести его из строя.
Такие типы атак отличаются одной неприятной особенностью – как правило, злоумышленник ничего не похищает и ничего не взламывает. Главная проблема DDoS атак связана с высокой нагрузкой, которая ложится на веб-сервер.

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

21 октября 2016 произошла крупнейшая в истории DDoS-атака (связанная с DNS), «положившая» такие крупные компании, как PayPal, Spotify, Twitter, Reddit и eBay.
Некоторые даже назвали ее «концом света для интернета». Поскольку сеть продолжает расти, неудивительно, что DDoS-атаки повторяются с угрожающей скоростью.
Согласно данным, предоставленным easyDNS, DDoS-атаки со временем становятся только ужаснее. Для многих сайтов попадание под атаку может стать лишь вопросом времени.

Многие хостинги используют дополнительные меры предосторожности, чтобы защититься от DDoS-атак. Мы рекомендуем обращаться к компаниям с крупной инфраструктурой и специальным софтом, предназначенным для предотвращения таких атак.
Cloudflare и Sucuri – два сервиса, которые мы рекомендуем всем пользователям WordPress и любых других платформ. Инвестирование в достойную защиту от DDoS позволит вам сэкономить время и деньги в будущем.

Остановка DDoS атаки на небольшой коммерческий сайт

В данном руководстве мы покажем вам, как остановить DDoS атаку на своем примере. У нас был небольшой коммерческий сайт WordPress, на котором стоял плагин Easy Digital Downloads.
Обычно сайт генерировал примерно 30-40 Мб в день в плане пропускной способности и имел пару сотен посетителей в день.

В июне он начал использовать гораздо больше пропускной способности, однако в Google Analytics не значилось никакого дополнительного трафика.
Сайт мгновенно перешел на передачу данных в 15-19 Гб в день! Прирост составил где-то 4650%. Нехорошо. И это, естественно, никак не связано с небольшим приростом трафика от ботов. К счастью, владелец сайта смог быстро это обнаружить.

Заметив такой прирост, мы решили проверить серверные логи, чтобы выяснить, что случилось. Подобные события могут легко выйти из-под контроля. За последний 7 дней страницы сайта были запрошены 5 110 000 раз, и было сгенерировано примерно 66 Гб трафика. И это для сайта, который в месяц обычно пропускает чуть больше 1 Гб данных. Мы сразу поняли, что что-то произошло.

Анализ топ 10 клиентских IP за последние 7 дней на сайте мгновенно выявил некоторые подозрительные действия. Большинство из них произвело свыше 10 000 запросов, и это довольно много. Помните, что мы говорим про небольшой сайт, который должен получать только пару тысяч запросов в месяц.

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

Смена URL

Первое, что мы сделали – это изменили URL аккаунта. Эта начальная мера является полезной. Однако это лишь позволило остановить атаку на какой-то короткий период, пока они не нашли новый URL. Помните, что, поскольку мы имеем дело с коммерческим сайтом, у него всегда должна быть публично доступная страница с входом в аккаунт. Очевидно, что в случае с блогом мы могли бы просто сменить URL для страницы входа и скрыть его, и это бы легко остановило многие такие типы атак. Но для коммерческих сайтов такой подход невозможен.

Взлом или попытки брутфорса?

Следующий шаг, который вам нужно будет сделать – это убедиться в том, что вас не пытаются взломать. В нашем случае попыток взлома не было. WP Security Audit Log – великолепный плагин, который позволяет быстро исследовать сайт и понять, были ли какие-либо неверные попытки входа. Вы можете также проверить логи, чтобы узнать, были ли какие-либо действия POST в большом количестве. По всей видимости, мы столкнулись с классической DDoS-атакой, в процессе которой просто шли огромные объема трафика на один из участков сайта, чтобы попытаться вывести его из строя.

IP блокировка

Если вы работаете со своим собственным сервером, то в таком случае следующим шагом будет установка плагина для IP-блокировки или файрвола, такого как WordFence. Однако большинство администрируемых (managed) WordPress хостингов запрещают такие плагины. И на то есть свои основания. Прежде всего, такие плагины могут оказывать огромное влияние на производительность (особенно их процесс сканирования). Также стоит отметить, что хостинги нередко используют балансировщики нагрузки с Google Cloud Platform, т.е. функции блокировки IP большую часть времени не будут работать.

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

Перенос сайта на Cloudflare не помог

Cloudflare неплохо справляется с блокировкой трафика основных ботов, однако если рассматривать их бесплатный план, то защита от DDoS там не самая лучшая. Мы перенесли сайт в Cloudflare, но это вылилось в еще больший подозрительный входящий трафик. Возможно, что это произошло из-за усиления атаки. Как видно ниже, атака доходила до 50 000 запросов в час. CDN от Cloudflare прекрасно работает, но если вам требуются и другие функции, то вам, скорее всего, придется платить.

Затем мы установили «ограничение скорости» на сайте. Такое ограничение позволяет создавать правила для трафика для URL и производить блокировку/ограничение его на основе активности. Возможность доступна для подключения в бесплатном тарифе и стоит $0.05 за 10 000 запросов. Однако темпы, которые мы наблюдали, привели бы к 36 млн запросам в месяц, что стоило бы нам 180 долларов в месяц. Очевидно, что это решение не самое удачное. И да, мы пробовали разные типы шаблонов.

На следующем шаге мы изучили существующие файрволы. Многие пользователи этого не делают, а бесплатный тариф Cloudflare не включает в себя их. Однако без них остановить современные DDoS-атаки практически невозможно. Вы можете обновиться до тарифа Cloudflare за $20/месяц. Однако существуют и другие сторонние решения.

Сравнение Cloudflare с Sucuri

По нашему мнению, два лучших решения, которые существуют сегодня в сфере веб-файрволов и которые проще всего применить для любых типов сайтов – это Cloudflare и Sucuri. Примечание: мы никак не связаны ни с одной из этих компаний, они нам не платят. Если вы изучите их, то вы увидите, что Sucuri является более эффективным, хотя оба сервиса предлагают планы за $20 в месяц.

Cloudflare

Тариф Cloudflare Pro предлагает вам расширенную защиту от DDoS на уровнях 3 и 4. Это поможет автоматически остановить атаки TCP SYN, UDP и ICMP на их серверах, в результате чего такие атаки никогда не дойдут до вашего сервера. Чтобы получить защиту уровня 7, вам нужно будет перейти на план $200 в месяц. Помните, что мы имеем дело с небольшим коммерческим сайтом, потому 200 долларов в месяц – неподъемная сумма для нас.

Sucuri

С тарифом Sucuri вы получите расширенную защиту от DDoS на уровнях 3 и 4 вместе с уровнем 7. Это помогает автоматически обнаруживать внезапные изменения трафика и защищаться от POST-флуда и DNS-атак, потому они никогда не дойдут до вашего сервера. Таким образом, если говорить напрямую, вы, скорее всего, увидите лучшее смягчение атак DDoS, если воспользуетесь Sucuri. В нашем случае нам требуется уровень 7 для защиты от HTTP-флуда.

HTTP-флуд – это атаки уровня 7, в которых используется стандартные доверенные GET/POST-запросы для получения информации, как во время обычных запросов данных (изображений, информации) в рамках SSL-сессии. Флуд HTTP GET/POST – это объемная атака, которая не использует поддельные пакеты, спуфинг и т.д.

Sucuri также предлагает балансировку нагрузки за $70 в месяц, тогда как Cloudflare включает довольно много сборов, связанных с разными аспектами балансировки нагрузки – к примеру, прайс в зависимости от использования, в зависимости от географических данных и т.д.

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

Помните о том, что ни одна компания не сможет вам пообещать 100% гарантию на защиту от DDoS. Все, что они могут сделать – смягчить атаку.

Перенос сайта в Sucuri

Перенос сайта в Sucuri – простой процесс. Как в случае с Cloudflare, ничего устанавливать не нужно, поскольку сервис работает как полноценный прокси. По существу это веб-файрвол (WAF), который находится между клиентом и сайтом.

Консоль Sucuri, по нашему мнению, не такая современная и привлекательная, как в Cloudflare, но в случае с файрволом это не так и важно. Главное, чтобы он работал хорошо. Как вы можете видеть ниже, он определяет ваш текущий IP хостинга и предлагает IP файрвола. На него вы и должны направлять ваши DNS (запись A + запись AAAA).

Вы можете все запустить в Sucuri всего за пару минут. Это хорошо в случае с активной DDoS-атакой. Единственное, что нужно будет сделать – подождать, пока пройдет распространение DNS. Также Sucuri включает в себя HTTP/2 Anycast CDN. Так что это не просто файрвол. Он позволяет также ускорить работу сайта WordPress. Но вы также можете использовать и свои CDN, такие как KeyCDN.

Они предлагают бесплатный SSL-сертификат Let’s Encrypt. Вы можете также загрузить и свой сертификат. Единственный недостаток — Let’s Encrypt не автоматизирован, вам нужно будет создавать тикет. Еще один совет для повышения производительности – вы можете включить кэширование сайта. Но, скорее всего, у вас уже имеется кэширование на вашем хостинге WordPress.

Возможности дополнительной защиты

На странице безопасности вы можете легко заблокировать весь XML-RPC трафик, агрессивных ботов, включить дополнительные заголовки безопасности, такие как HSTS и т.д. Примечание: XML-RPC уже был заблокирован на нашем коммерческом сайте.

Просмотр в реальном времени

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

Другие полезные отчеты

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

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

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

Среди других возможностей стоит отметить контроль доступа, где можно вести белые и черные списки IP-адресов и путей, блокировать user-agent, куки, HTTP-рефереры, а также защищать определенные страницы с помощью капчи, двухфакторной аутентификации или простого пароля.

Помог ли Sucuri нашему небольшому коммерческому WordPress-сайту? Через час после того, как DNS закончил свое распространение, пропускная полоса и запросы тут же стабилизировались, и с тех пор не было ни единой проблемы. Это хорошая инвестиция и экономия времени, если вы столкнулись с подобными неприятностями.

Даже если вы не находитесь под атакой, возможно, вам нужен способ исключения ботов, чтобы они не забивали вашу пропускную способность. Sucuri помогли WP Beginner заблокировать свыше 450 000 атак за 3 месяца.

НАЗАД К СПИСКУ НОВОСТЕЙ
Комментариев нет
Комментариев пока нет, будьте первым.

Добавить комментарий

*
*