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

Дата публикации:Июль 25, 2017

В данной статье мы покажем вам, как остановить 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. Как вы можете видеть, все вернулось к изначальной передаче данных 30-40 Мб в день.

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

Нас активно атакуют боты, расположенные на Amazon AWS и Google Cloud. Может ли файрвол Sucuri помочь с этим? В настоящее время мы используем WPEngine, которые имеют встроенный файрвол (ничего не блокирующий) и CloudFlare (тоже пропускает спам). Надеюсь, что Sucuri поможет с этим.

Если вы уже пробовали другие решения, то в таком случае воспользуйтесь Sucuri. Не поймите нас неправильно. CLoudflare – тоже хорошее решение для большинства сайтов, и мы рекомендуем этот сервис своим клиентам. Их планы за $200 в месяц, скорее всего, позволили ли быстро смягчить DDoS-атаки, однако всегда полезно иметь представление о других решениях. Особенно, если вы имеете лимитированный бюджет.

Источник: kinsta.com

Поделиться

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

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