Как остановить DDoS-атаку
Опубликовано: 2023-03-24Время безотказной работы является основной проблемой как для фронтенд-, так и для бэкенд-разработчиков, но также имеет решающее значение для всех видов серверных администраторов. К сожалению, один из наиболее эффективных способов для злоумышленников разрушить ваш сайт — это отключить его с помощью атаки распределенного отказа в обслуживании (DDoS) и сократить время его безотказной работы. Таким образом, большинство из вас, кто работает с веб-сайтами, захотят узнать, как остановить DDoS-атаку или, по крайней мере, смягчить ее.
В этом посте мы рассмотрим, как остановить DDoS-атаку. Но прежде чем мы перейдем к конкретным шагам, давайте установим сцену. Для этого мы сначала рассмотрим, что такое DDoS-атака, и научимся ее идентифицировать.
Что такое DDoS-атака
В общих чертах, обычная (не распределенная) атака типа «отказ в обслуживании» (DoS) направлена на то, чтобы перегрузить ресурсы сервера, чтобы вывести сайт из сети. Злоумышленник будет использовать лишние запросы, чтобы нарушить работу служб хоста в сети, в результате чего законные запросы не смогут попасть на сайт.
Вы можете думать об этом как о протесте возле магазина. Если люди блокируют вход в здание, покупатели не могут попасть внутрь, и, по сути, магазин не может торговать оптимально (или вообще не может).
Атака DDoS (распределенный отказ в обслуживании) использует множество удаленных компьютеров в сети для достижения этой цели. На самом деле это похоже на «эффект Slashdot», когда законный, беспрецедентный трафик (часто из-за ссылки с веб-сайта с высокой посещаемостью) может вызвать замедление работы или сбой сайта. Однако, хотя для этого есть законная причина, DDoS-атака всегда является запланированной и злонамеренной.
Например, многие машины, которые будут использоваться для DDoS-атаки, подверглись эксплойту или внедрению вредоносного ПО. Злоумышленник будет управлять этими «ботами», используя удаленные инструкции для нацеливания на определенный IP-адрес, и каждый из них может выглядеть законным.
Одним из ключевых факторов успешной DoS-атаки является то, что у цели более низкая скорость интернета, чем у атакующего. Современные вычислительные технологии усложняют эту задачу, поэтому атаки DDoS намного лучше для злоумышленника.
В целом, распределенный характер DDoS-атаки затрудняет идентификацию атаки в типичных обстоятельствах.
Как определить DDoS-атаку
Если вы хотите узнать, как остановить DDoS-атаку, вам нужно сначала понять, как она выглядит. Это может быть сложно, так как у ваших высоких показателей трафика может быть законная причина.
На высоком уровне, если сайт замедляется или падает, это признак того, что вам нужно реализовать свой план действий на случай стихийных бедствий (подробнее об этом позже). Отсюда вам нужно обратить внимание на ряд контрольных признаков:
- Много трафика, который представляет собой общие сигнатуры. Это может означать, что трафик исходит с одного и того же IP-адреса или диапазона адресов. В других случаях вы можете обнаружить трафик, исходящий из похожего местоположения, ссылающегося веб-сайта или типа устройства.
- Также может быть всплеск трафика на одну конечную точку сайта — обычно на определенную страницу. Множество ошибок 404 также могут быть явным признаком.
- Шаблоны трафика, которые не соответствуют тому, что вы ожидаете получить от своего сайта. Например, это может быть пик за пределами вашего обычного временного диапазона или неестественное событие, такое как всплески активности в течение часа.
- Любой из них может быть законным, а не злонамеренным. Таким образом, вы захотите положиться на свое аналитическое программное обеспечение, чтобы выяснить, что актуально и связано.
Вы также должны иметь в виду, что не все DDoS-атаки одинаковы, и разные типы могут значительно усложнить эту проблему. Поэтому важно знать об этих типах, если вы хотите знать, как остановить DDoS-атаку.
Различные типы DDoS-атак, с которыми вы столкнетесь
«Подключение к сети» может показаться простой фразой для описания того, как компьютеры подключаются к Интернету, но это заблуждение. Модель взаимодействия открытых систем (OSI) показывает фактические многоуровневые сложности сетевых подключений и систем связи:
DDoS-атаки делятся на разные категории в зависимости от того, на какой уровень они нацелены. Тем не менее, вы можете объединить их в разные группы. Хотя вы можете сделать это для каждого уровня, также допустимо классифицировать их по тому, на что нацелена DDoS-атака.
Например, объемные атаки пытаются перегрузить сетевой и транспортный уровни (третий и четвертый). Атаки здесь могут изменить способ перемещения данных по сети и эффективность протоколов передачи.
Один тип — атака с усилением системы доменных имен (DNS) — использует «ботнеты» для подделки целевого IP-адреса и выполнения запросов к открытому DNS-серверу. Это заставляет сервер реагировать на целевой IP-адрес и перегружать ресурсы.
Атаки на протокольном уровне
Атаки на уровне протокола или инфраструктуры также нацелены на третий и четвертый уровни и представляют собой типичный способ проведения DDoS-атаки. Здесь ресурсы сервера и сетевое оборудование не могут обработать поступающие данные.
Примером здесь является атака отражения протокола пользовательских дейтаграмм (UDP). Это использует природу UDP без сохранения состояния. Вы можете создать действительный пакет запроса UDP, используя практически любой язык программирования. Чтобы провести успешную атаку, вам нужно всего лишь указать IP-адрес цели в качестве адреса источника UDP.
Сервер, к которому направляются эти данные, будет усиливать данные для создания большего пакета ответа, а затем отражать его обратно на целевой IP-адрес. Таким образом, злоумышленнику не нужно в любой момент подключаться к серверу, что обходится дешево.
Когда вы подключаетесь к веб-серверу, вы выполняете «трехстороннее рукопожатие» между клиентом и сервером, которое включает в себя пакеты синхронизации ( SYN ) и подтверждения ( ACK ). В то время как сервер отправляет комбинированный пакет SYN-ACK , клиент отправляет отдельные пакеты SYN и ACK .
При SYN- флуд-атаке клиент — в данном случае злонамеренный пользователь — отправляет несколько пакетов SYN , но не отправляет последний пакет ACK . Это оставляет много полуоткрытых соединений по протоколу управления передачей (TCP), что означает, что серверу не хватает мощности для приема новых. Это еще один способ защитить доступные подключения от законных пользователей.
Атаки на прикладном уровне
Вы увидите DDoS-атаки не только на третьем и четвертом уровнях. Прикладной уровень — номер семь — находится на верхнем уровне. Это означает, что он обрабатывает взаимодействие человека с компьютером и позволяет приложениям получать доступ к сетевым службам.
Таким образом, существует множество DDoS-атак, которые манипулируют этим уровнем, часто используя HTTP-запросы. Для клиента HTTP-запрос обходится дешево, но для сервера ответ на него обходится дорого с технической точки зрения. Атаки могут выглядеть как законный трафик, главным образом потому, что они используют одни и те же методы для доступа к сайту.
Например, HTTP-флуд очень похож на нажатие кнопки обновления в вашем браузере в непрерывном цикле. Как только этот тип DoS-взаимодействия становится DDoS-атакой , он становится более сложным.
Стиль HTTP-флуда также может быть сложным, при котором будет использоваться множество разных IP-адресов и случайных сигнатур для нацеливания на огромный диапазон веб-URL-адресов для расширения масштабов атаки. Даже простая реализация, нацеленная на один URL-адрес, нанесет большой ущерб.
Для хакера атака Slowloris занимает меньше полосы пропускания, но может вызвать больше хаоса. Здесь каждый запрос занимает бесконечное количество времени для обработки сервером и монополизирует все доступные соединения. Поскольку эта атака эффективна против серверов с относительно доступным небольшим количеством одновременных подключений, вы увидите, что это часто затрагивает небольшие веб-сайты.
Как подготовиться к DDoS-атаке
Подготовка — это то, как остановить DDoS-атаку, ведь чем быстрее вы сможете вернуться к нормальной жизни, тем лучше. На самом деле, вы, скорее всего, не сможете полностью устранить угрозу, но вы можете свести потенциальные проблемы к минимуму.
Однако перед этим вы захотите «подсчитать», сколько вы готовы потратить, поскольку денежный поток может определить ваш план того, как остановить DDoS-атаку. Вы должны начать с того, сколько будет стоить атака вашему бизнесу, а затем определить доступный вам бюджет. Это не расчет, который вы захотите сделать в середине атаки.
Оттуда вы захотите отметить три ключевые области, на которых вы должны сосредоточиться на своей подготовке.
- Создайте план аварийного восстановления и восстановления, так как он подробно расскажет всем в вашей команде, что делать.
- Оттуда вы можете потратить часть своего бюджета на специальную службу защиты от DDoS. Это позволит экспертам отслеживать сайты, «отбивать» часть вредоносного трафика, который вы получаете, и многое другое.
- Научитесь определять, когда начнется DDoS-атака. Здесь решающее значение будет иметь аналитика вашего сайта, поскольку вы сможете отслеживать явные признаки DDoS-атаки и реагировать до того, как произойдет что-то катастрофическое.
На техническом уровне вы можете сделать гораздо больше, чтобы остановить DDoS-атаку до ее начала. Мы рассмотрим это далее.
Как смягчить DDoS-атаку
Поскольку одной из самых больших проблем, связанных с остановкой DDoS-атаки, является попытка отличить хороший трафик от плохого, вы не можете полагаться только на одно решение, чтобы смягчить его. Это особенно верно, если вы посмотрите на «многовекторную» DDoS-атаку, т. е. атакующую несколько уровней OSI.
Таким образом, вы также захотите увеличить уровень своего снабжения, чтобы помочь своей защите. Есть несколько простых способов сделать это:
- Маршрутизация через черную дыру . Здесь вы фильтруете трафик по нулевому маршруту и отбрасываете его из сети. Без специальной фильтрации вы выбросите весь трафик, что не будет идеальным.
- Ограничение скорости . Хотя одного этого будет недостаточно, чтобы остановить DDoS-атаку, вы можете ограничить количество действий, выполняемых каждым пользователем.
- Сетевая диффузия . Если вы возьмете трафик, попадающий на ваш сайт, и распределите его по распределенной сети, теоретически вы распространите воздействие DDoS-атаки.
Таким образом, масштабирование пропускной способности, сетевых подключений и других ресурсов является одним из лучших способов борьбы с DDoS-атакой. Некоторые из решений, о которых мы поговорим позже, представляют собой облачные службы, которые распределяют трафик в качестве защиты.
Вы также можете использовать локальные решения, такие как CAPTCHA, для защиты важных конечных точек на вашем сайте. Именно здесь ваши страницы входа требуют высокого уровня безопасности, потому что вы можете размещать ресурсоемкие элементы вашего сайта за экранами входа или другими защитными аспектами.
Более того, вы можете реализовать некоторые технические соображения вручную. Например, вы можете установить более низкие пороговые значения SYN или UDP и установить тайм-аут для полуоткрытых соединений на сервере.
Стратегия из четырех шагов, как остановить DDoS-атаку
В оставшейся части этой статьи мы покажем вам, как остановить DDoS-атаку за четыре шага. Хорошая новость заключается в том, что совет, который мы дадим, не является предписывающим и строгим. Таким образом, вы можете адаптировать идеи к своим потребностям.
Вот что мы рассмотрим:
- Как план реагирования и кризисная стратегия могут спасти вас.
- Какой подход следует использовать для защиты веб-сервера.
- Преимущества и недостатки локальной защиты от DDoS.
- Чем может быть вам полезна облачная защита от DDoS-атак.
Начнем с темы, о которой мы уже упоминали, — разработки стратегии.
1. Сформулируйте стратегию и план реагирования
Это фантастическая идея закрепить все, что вы собираетесь делать, в официальном плане действий при стихийных бедствиях и ликвидации их последствий. Это должен быть один из самых подробных документов в вашем бизнесе, и он должен включать все шаги, которые вы предпримете, чтобы остановить атаку и восстановить свои ресурсы.
Вот несколько замечаний, которые следует включить:
- Шаги, которые должен выполнить каждый член команды, когда вы отвечаете на DDoS-атаку.
- Должны быть инструкции для тех, кто не входит в команду и должен сообщать о проблемах покупателям, клиентам, поставщикам, поставщикам и любой другой заинтересованной стороне.
- Вы захотите включить важные контактные данные службы защиты от DDoS-атак вашего интернет-провайдера (ISP) и других лиц, находящихся на передовой.
Как только это будет сделано, вся компания поймет, что ей нужно сделать, чтобы защитить сервер вашего сайта.
2. Выясните, как защитить свой веб-сервер
Есть две основные проблемы с DDoS-атаками:
- Трудно сказать, когда происходит приступ.
- Если вам нужно отреагировать на продолжающуюся атаку, уже слишком поздно.
Чтобы решить обе эти проблемы, вам понадобится служба защиты от DDoS-атак. Cloudflare является одним из лучших и включает в себя выделенную серверную архитектуру в глобальном масштабе для перехвата, распространения и фильтрации веб-трафика.
Имея это в виду, вы не захотите вводить статические пороги трафика или заполнять свой черный список IP-адресов, так как этого будет недостаточно, и в большинстве случаев это мера реагирования. Поскольку масштабируемость является одним из лучших способов остановить DDoS-атаку, «доморощенный» метод имеет ограничения пропускной способности, с которыми выделенные службы справляются лучше.
3. Внедрите локальную защиту
Локальная защита от DDoS использует аппаратные устройства в сети для фильтрации трафика для защищаемых серверов. Это может быть жизнеспособным и изощренным способом смягчить и остановить DDoS-атаку.
Radware и F5 производят аппаратные устройства защиты от DDoS-атак, а некоторые также производят аппаратные WAF (брандмауэры веб-приложений).
Однако локальная защита может сделать очень мало и не сможет остановить крупномасштабную атаку, особенно DDoS. Таким образом, вы захотите дополнить облачную настройку DDoS для лучшего ответа на то, как остановить DDoS-атаку.
4. Рассмотрите облачное решение DDoS
На самом деле все больше сайтов полагаются на облачную защиту, поскольку она масштабируема, всегда включена и дешевле аппаратного обеспечения. Затраты на техническое обслуживание также низкие.
Вы найдете некоторые службы DDoS, которые работают только на уровне интернет-провайдера, но те, которые работают в облаке, имеют больше возможностей для защиты. Часто эти службы имеют огромные сети компьютеров для распределения трафика.
Например, Amazon AWS Shield использует преимущества своей сети для автоматического обнаружения и смягчения последствий DDoS-атак. Более того, вы можете настроить, как этот инструмент защищает ваш сервер вместе с собственным WAF.
Magic Transit от Cloudflare может хорошо работать в качестве дополнения к существующему локальному решению. Вы также получите полный набор инструментов для управления виртуальной сетью, таких как балансировщики нагрузки, расширенная фильтрация пакетов и многое другое.
Вывод 🔥
DDoS-атака увидит, что ваш сайт переиграл перед лицом злонамеренной попытки сломать его. Хотя это может показаться пораженческим, но нет реального способа полностью остановить любую атаку, не говоря уже о DDoS-атаках. Таким образом, ответ на вопрос, как остановить DDoS-атаку, сложен.
Смягчение атаки — хорошая стратегия, и есть множество реализаций, которые вы можете реализовать на уровне сервера. Важно выяснить, какой будет ваша стратегия и как вы хотите защитить свой веб-сервер. Локальная защита — фантастическая идея, и WAF почти необходим. Облачные решения, такие как AWS Shield, также работают, как и локальные облачные стандарты, такие как CAPTCHA.
У вас есть вопросы о том, как остановить DDoS-атаку? Спросите в разделе комментариев ниже!