Путеводитель по DDoS: основные виды и методы борьбы
Всем привет! На связи Николай Едомский, руководитель группы сетевых инженеров в ЕДИНОМ ЦУПИС.
В этой статье я простыми словами расскажу о том, что из себя представляет DDoS, о самых распространенных видах DDoS и методах борьбы с ними. Основная цель материала — на простых примерах передать суть этого явления и обозначить особую важность грамотного построения защиты от DDoS.
Кому будет полезна статья:
управляющему персоналу ИТ-сегмента и смежных направлений,
начинающим сетевым инженерам и специалистам по ИБ,
опытным специалистам, перед которыми стоит задача коммуникации по этой теме с нетехническим персоналом.
ЕДИНЫЙ ЦУПИС — это высоконагруженный финтех, который состоит из множества продуктов и сервисов. Как и многие другие компании, мы не раз сталкивалась с таким неприятным явлением как кибератака. Одним из ее видов является DDoS-атака. Давайте разберемся, что же это такое и как она может навредить инфраструктуре компании.
DDoS (Distributed denial of service) — это совокупность злонамеренных действий, которая направлена на прекращение функционирования вашего бизнеса. Также атака может заставить вас снизить качество и количество предоставляемых вами услуг. Например, DDoS может сильно увеличить время обработки запросов, заставить вас географически ограничить ваших клиентов или же выключить часть важного функционала площадки. Приставка «distributed» говорит о том, что атака распределенная, т.е. действует обширная совокупность географически распределенных узлов, которая выполняет те или иные деструктивные действия.
Кто DDoS-ит?
Непосредственные действия по дестабилизации площадки могут выполнять зараженные сетевые устройства, контролируемые злоумышленником, обычные пользователи, организованные в группу и выполняющие определенные действия, а то и высококвалифицированные инженеры. При этом если достаточно часто можно слышать о привлечении к ответственности исполнителей, то заказчики почти всегда остаются в тени. Очень трудно не то что заставить их отвечать за нанесенный ущерб, но и даже доподлинно установить их личности. В рамках задачи по организации защиты компании от DDoS-атак я бы не стал акцентировать свое внимание на этом.
Объект DDoS
Объектом DDoS-атаки обычно является компания в целом. Например, все слышали про DDoS-атаки на крупные российские банки или на Яндекс. Техническая цель атаки может быть конкретизирована одним или несколькими инфраструктурными узлами или даже меняться со временем. Но при этом главная цель злоумышленников — нанести убытки именно компании, а не вывести из строя конкретные объекты инфраструктуры.
Итак, объектом DDoS может быть любой критичный объект инфраструктуры, который может повлиять на качество предоставления услуг — ваш веб-сервер, сетевые устройства, логические сущности вроде канала передачи данных или облачного балансировщика. Обычно вывод из строя этого узла достигается за счет исчерпания его ресурсов. Соответственно, вам нужно очень хорошо понимать, какие именно ресурсы есть в вашем бизнесе и какие из них могут быть относительно легко исчерпаны злоумышленником.
Чтобы облегчить процесс инвентаризации ресурсов инфраструктуры, я предлагаю провести несложные аналогии, не связанные с техническими понятиями. Они помогут нам определиться с критическими составляющими нашей инфраструктуры, которые могут быть уязвимы для DDoS.
Представьте, что у вас есть бизнес — магазин воздушных шариков. И легко представить, какими же ресурсами обладает такой магазин:
продавец шариков, который поддерживает некие бизнес-процессы (надувает шарики, принимает оплату, выдает чек),
непосредственно само помещение, которое вы арендовали под этот бизнес,
дорожки, ведущие к магазину и из него.
Бизнес-процесс такого предприятия достаточно прост — покупатель заходит в наш магазин по дорожке, знакомится с ассортиментом товара, приобретает товар и, счастливый, направляется на выход.
И давайте теперь при помощи такой нехитрой аналогии рассмотрим самые распространенные типы DDoS-атак. А именно — что нужно сделать, чтобы хозяин магазина начал терпеть убытки.
Распространенные виды DDoS-атак
Атака на входящие каналы
Так уж случилось, что у вашего магазина воздушных шариков появился недоброжелатель-конкурент, который хочет навредить вашему бизнесу. Он где-то находит группу школьников и платит им за то, чтобы они встали у входа в ваш ларек в прайм-тайм и начали вести себя неподобающим образом — толпились на дорожке у входа, создавая ажиотаж и суету. Покупателям будет просто не пройти в ваш магазин из-за такого столпотворения. А если кто-то все-таки и протиснется вовнутрь, то время обслуживания клиента уже будет увеличено, что негативно сказывается на вашем бизнесе. Переходя на технический язык, суть данного вида DDoS — перегрузить ваши входящие каналы связи мусорным трафиком. Чаще всего это делается путем создания большого количества ICMP или UDP-трафика. К вашей площадке начинает поступать весьма значительный объем такого трафика. При этом его объем может в разы превышать ширину ваших каналов, и клиент даже не сможет дойти до вашей зоны ответственности, так как его запрос будет отброшен полисером оператора. Такая атака прежде всего опасна тем, что она реализуется вне вашей зоны ответственности. Соответственно, самостоятельно отбить ее, скорее всего, не получится. Даже если вы отфильтруете мусорный трафик на своей площадке, это не поможет уберечь легитимный трафик от сбрасывания, потому что происходит это на стороне оператора связи. Также она достаточно проста в реализации и не требует технических компетенций и много ресурсов.
Атака на исходящие каналы
Собственно, раз можно исчерпать входящий канал, значит можно исчерпать и исходящий. Этот вид атаки работает немного сложнее. Разберемся на примере.
Представьте, что ваш недоброжелатель дает тем же школьникам денежные средства и инструктирует их приобретать самые большие шарики, доступные в вашем магазине, создав тем самым толчею уже на выходе. Клиенты-недоброжелатели будут разом пытаться выйти с огромными шарами, заблокировав тем самым выходную дорожку. Даже если ваш покупатель смог попасть в ваш магазин и что-то купить, то выйти он уже сможет с большим трудом, потому что дорожка, ведущая из магазина, теперь труднопроходима из-за школьников, которые пытаются покинуть магазин со своими огромными шарами.
Технически такая атака может быть представлена выкачиванием с вашего ресурса тяжелых файлов, например, pdf-каталога или шрифтов. Вы начинаете отдавать со своей площадки слишком много трафика. При этом трафик по сути является легитимным, потому что ничего предосудительного в скачивании каталога нет. Здесь важна именно динамика запросов. При этом другие сервисы перестанут работать, так как ответы на запросы просто не пройдут из-за перегруженного исходящего канала. Главная опасность этой атаки заключается в том, что, по сути, это легитимный трафик, и достаточно тяжело будет отделить злоумышленников от пользователей, кто действительно решил скачать каталог. Также она вообще не требует для реализации специальных средств. Достаточно организовать любыми средствами параллельное скачивание определенных файлов.
Атаки на сервер
Syn flood
Представьте, что те же самые школьники, нанятые вашим недоброжелателем, начинают заходить в ваш магазин по 1–2 человека и отвлекать продавца, начиная говорить фразу, но при этом обрывая себя на полуслове. Продавец вынужден переключать внимание с одного школьника на другого, стараясь при этом обслуживать легитимных клиентов. В конце концов, внимание продавца начинает рассеиваться, он начинает нервничать, ошибаться в расчетах и кричать на клиентов.
Технически это выглядит так: злоумышленник начинает отправлять очень много запросов на установку соединения, но при этом не завершая эту процедуру. Наш узел при этом вынужден тратить время на обработку таких соединений, а, что еще хуже — такие соединения очень быстро переполнят максимально возможное количество соединений на узле. Основная опасность этой атаки заключается в простоте ее реализации и в трудностях в ее диагностике, так как она сама по себе не генерирует большого объема трафика.
Еще один неприятный вид DDoS-атаки, который можно отбить уже только специальными средствами вроде WAF (о них ниже). Опасность этого DDoS заключается в том, что операции не будут отличаться от легитимных, и вашим специалистам понадобится время, чтобы понять, что же идет не так.
Представьте, что недоброжелатель случайно заметил в вашем магазине один воздушный шарик, который очень сложно надуть и завязать, то есть на него тратится очень много времени и сил продавца. Злоумышленник начинает намеренно заказывать у вас этот сложный в исполнении шарик, продавец тратит на него все свои силы, и остальные покупатели просто устают ждать своей очереди и покидают ваш магазин.
Технически это обычно выглядит как какой-то тяжелый поисковой запрос. Или это может быть любая другая операция, которая занимает много ресурсов и времени для обработки. Количество сессий растет, старые не закрываются, новые зависают. Цель DDoS достигнута — покупатели уходят из магазина, не дождавшись товара.
Этот тип атак можно сравнить с умышленно медлительным покупателем. Представьте, что в ваш магазин пришел покупатель, который либо очень медленно запрашивает товар, то есть разговор идет по существу, но очень заторможено, либо же вообще начинает параллельно с запросом товара разговаривать на отвлеченные темы, шарить по карманам и другими способами задерживать очередь. Люди в очереди начнут нервничать и уходить, а продавец будет вынужден тратить нервы и время на обработку таких покупателей, так как это входит в его должностные обязанности.
Технически такая атака выглядит как соединение с очень редкой итерацией обмена данными. То есть устанавливается оно корректно, но все процессы взаимодействия в рамках такого соединения искусственно замедляются злоумышленником. Скорее всего, наличие большого количества таких соединений вскоре приведет к сбоям в работе сервера, так как на поддержание таких соединений тратится значительное количество ресурсов. Опасность атаки заключается в простоте ее реализации и в сложности ее выявления. Скорее всего, первое время вообще будет тяжело понять, что, собственно, идет не так. Такие соединения тяжело отличить от легитимных, так как логически они полностью корректны.
Существуют также и другие специфичные виды DDoS. Вариаций таких атак может быть очень много, их специфика будет зависеть от конкретной площадки.
В качестве примера можно упомянуть Router flood. Предположим, что злоумышленник понял, что вы хорошо защитили свою серверную инфраструктуру, но на вашем пограничном маршрутизаторе обнаружился адрес, маршрутизируемый в сети Интернет. И как раз этот адрес начинают забрасывать всяким мусором либо же специально составленными запросами, из-за чего происходит деградация работы маршрутизатора. В результате он либо полностью перестает пропускать через себя трафик, либо значительно увеличивается время прохождения пакетов через этот маршрутизатор. Цель DDoS достигнута.
Подобных сценариев может быть достаточно много, для каждой площадки сценарий такой атаки подбирается индивидуально.
Принципы построения защиты
Давайте теперь поговорим, какие основные линии защиты могут быть выстроены для противодействия перечисленным видам атак.
Защита от атак на входящий канал
Первое, о чем нужно помнить, когда мы говорим про защиту внешних каналов от DDoS: всегда будет атака, которая шире, чем ваши каналы связи, поэтому я бы вообще не стал рассматривать фильтрацию DDoS-трафика на своей площадке. Дешевле и эффективнее осуществлять такую фильтрацию при помощи контрагентов — операторов связи, предоставляющих опцию защиты от DDoS, или же организаций, полностью специализирующихся на таких услугах. Возвращаясь к аналогии с нашим магазином, это можно сравнить с привлечением сотрудников ЧОП к дежурству возле нашего ларька с целью недопущения столпотворения.
Стоит сказать, что в случае привлечения контрагента как ваша защита, так и стабильность площадки будут полностью зависеть от компетентности контрагента. А именно — от отзывчивости технической поддержки, скорости реакции на ваши запросы и грамотности технических специалистов. Например, контрагент должен быстро и эффективно обработать ваш запрос на ложное срабатывание одного из компонентов защиты. Или же, наоборот, принять срочные меры по корректировке политик в том случае, когда нежелательный трафик не фильтруется.
Защита от атак на исходящие каналы и от атак на сервер
Подобные атаки могут быть отбиты уже в пределах площадки. Некоторые типы таких атак можно обить непосредственно на веб-сервере, оптимизировав его настройки, но в большинстве случаев для эффективного противодействия таким атакам понадобится использование Web Application Firewall (WAF). Можно сравнить решение WAF с этаким эффективным менеджером в нашем магазине, который принимает клиентские запросы, фильтрует их и уже только после этого направляет заказ на исполнение к продавцу.
Такие программные продукты позволяют анализировать пользовательскую активность на седьмом уровне модели OSI, проводить поведенческий анализ клиента и принимать решения на основе этого анализа. Также обычно существует сигнатурный и репутационный фильтры. И если защита входящего канала не потребует от вас действий по непрозрачному перенаправлению трафика на хосты фильтрации, то в случае использования WAF ситуация другая. Обычно WAF ставится в разрыв между площадкой и клиентом по принципу проксирования. Только такая схема может гарантировать выполнение точного анализа пользовательского трафика.
WAF при этом может быть развернут как в пределах своей площадки, так и делегирован контрагенту. Целесообразность того или иного подхода зависит от особенностей площадки и ресурсов, которыми располагает проект по построению защиты от DDoS.
Выводы
После того, как взаимодействие с контрагентом было выстроено, обязательно позаботьтесь о проведении регулярных учений по отражению DDoS-атак.
На своем опыте могу сказать, что если даже учебные атаки не были отбиты, то об эффективной защите не может быть и речи. И если результаты учений можно оценить хотя бы на «хорошо», то это уже будет означать, что у вас есть некоторый шанс устоять под DDoS-атакой. В рамках учений также следует настроить и проверить систему оповещения, которая поможет вам вовремя узнать о начале атаки.
Разумеется, обязательно нужно подготовить План Б. Например, подключить не одного контрагента по фильтрации DDoS, а два, при этом с разными технологическими решениями. И в случае, если один контрагент по той или иной причине не отразит атаку, всегда можно будет попробовать переключиться на решение от второго контрагента. Разумеется, это потребует дополнительных ресурсов.
Также следует обязательно изучить свою матчасть: держать под рукой логины и пароли для доступа в кабинеты управления средствами защиты, хорошо ориентироваться в интерфейсе этих решений, а также уметь пользоваться базовыми функциями. Это поможет быстро среагировать в экстренной ситуации и продолжать оперативно реагировать на изменения обстановки. Если во время атаки придется, например, тратить драгоценное время на восстановление пароля к кабинету управления решением фильтрации, то об эффективной защите говорить уже не приходится.
Еще один важный фактор — доведение настроек средств защиты от DDoS до такого состояния, когда они не препятствуют легитимным процессам вашей инфраструктуры и не вызывают аварийных ситуаций, но при этом продолжают надежно защищать вашу инфраструктуру от DDoS. Скорее всего, это потребует значительных сил и времени, но важно понимать, что только так можно минимизировать риск получения простоя при начале атаки.
И напоследок, DDoS — это пожар. Не готов — сгоришь!
Если вы не подготовитесь заранее и защиты как таковой у вас нет, то шансов пережить DDoS у вас практически нет. Инфраструктура будет неработоспособна столько, сколько злоумышленник будет продолжать DDoS-атаку, а если учитывать, что некоторые виды атак весьма просты в реализации, то продолжать их можно практически бесконечно.