DDoS великий и ужасный

Знаете ли Вы, что по данным исследований, проведённых Arbor Networks, Verisign Inc. и некоторыми другими компаниями: ежедневно наблюдается порядка 2000 DDoS атак; атака, способная «положить» небольшую компанию на неделю, стоит всего $150; около 2/3 участников исследований (63%) страдали хотя бы раз от DDoS в течение года; помимо прямых убытков и потери лояльности пользователей, атаки также влияют на продуктивность работы персонала; 11% респондентов были под атакой шесть и более раз за год; среди тех, кто за последние 12 месяцев был под атакой, 46% лежали более 5 часов, а 23% — более 12 часов; примерно треть всех случаев даунтайма у респондентов вызваны DDoS атаками. Каким бывает DDoS, можно ли с ним бороться и как можно предостеречься? Об этом я вкратце поведаю в данной статье.d9157a6d135f419ead0eb0968ef6e361.gif

Какой ты, DDoS? Все DDoS атаки можно разделить на три обширные группы: объёмные; атаки на уровне протоколов; атаки на уровне приложений. Подробнее отдельные виды атак будут рассмотрены ниже, а пока — небольшой обзор групп.Атаки, направленные на объём Данная категория атак направлена на насыщение полосы пропускания, соответственно, сила атаки измеряется в битах в секунду. К этой категории разносятся различные виды флудов: UDP, ICMP и прочие потоки сфальсифицированных пакетов. Сила атаки растёт с каждым годом, и если в далёком 2002 году 400 Мбит/с казалось чем-то из ряда вон выходящим, то сейчас отдельные атаки превышают 100 Гбит/с и способны «сдуть» некоторые «карманные» дата-центры.Пожалуй, единственный способ борьбы с такими атаками — фильтрация на уровне дата-центра (если он предоставляет такую услугу) или специализированных сервисов защиты. Они обладают достаточными канальными мощностями и вычислительными ресурсами, чтобы поглотить объём и передать на сервер пользователя уже отфильтрованный трафик. Для «выщипывания» остатков паразитного трафика можно также применить средства аппаратной защиты.

Атаки на уровне протоколов Эта категория направлена на ограничения оборудования или уязвимости различных протоколов. Такие атаки забивают ресурсы сервера либо промежуточного оборудования (фаерволы, балансировщики нагрузки и т.п.) паразитными пакетами, в результате чего системы оказываются неспособны обрабатывать полезные. Сила атаки измеряется в пакетах в секунду. К этой категории относятся SYN флуд, «пинг смерти», атаки с фрагментированными пакетами и другие.На этом уровне аппаратная защита становится ощутимо эффективнее. Специально разработанные производителями таких устройств алгоритмы помогают отсортировать и отфильтровать трафик. Естественно, любые алгоритмы несовершенны, и какая-то часть паразитного трафика всё-таки прорвётся к Вам, а какая-то часть полезного может быть утеряна. Сторонние сервисы фильтрации также могут быть вполне эффективны.

Атаки на уровне приложений Как можно понять из названия, атаки направлены на уязвимости в приложениях и операционных системах (Apache, Windows, OpenBSD и т.п.). Они приводят к неработоспособности какого-либо приложения или ОС в целом. Среди таких атак: Slowloris, атаки нулевого дня и прочие. Как правило, состоящие из вполне невинных свиду запросов, такие атаки «ложат» веб-сервер. Интенсивность измеряется в запросах в секунду.Данный тип атак наиболее «убийственный». Они чрезвычайно узко направлены, благодаря чему могут создать весьма серьёзные проблемы атакуемому при малых затратах ресурсов атакующего. За последние 3–4 года данный тип атак становится преобладающим, и простой флуд HTTP GET запросов является одним из наиболее распространённых видов.

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

Немного подробнее Существует немало видов DDoS атак, у каждой свой почерк и способы преодоления. Не все атаки можно ослабить или побороть. Иногда даже нет смысла пытаться, и проще переждать, грустно подсчитывая убытки. Изложить подробно механизмы противостояния каждому типу невозможно, об этом можно писать книги и защищать диссертации. Однако попробую представить описания сути наиболее распространённых видов атак и базовые принципы противодействия им.7b3f58747a9d4a569ae3e56f964542ee.jpg

UDP флуд Этот вид атак использует простейший UDP протокол. Его характерные особенности — отсутствие необходимости в установлении сессии и отправки какого-либо ответа. На случайные порты хост-машины приходит бесчисленное количество пакетов, принуждая постоянно проверять, слушает ли данный порт какое-то приложение, и в случае ошибки возвращать пакет «ICMP Destination Unreachable». Естественно, такая активность поглощает ресурсы хост-машины, приводя к её недоступности. Один из простейших способов хотя бы частично защититься от данной проблемы — блокировка UDP трафика (если Ваше приложение его не требует, конечно). Для борьбы с более масштабными атаками подойдут аппаратные средства защиты и фильтрующие сети.ICMP флуд Схож с UDP флудом. На хост-машину с максимальной частотой посылаются ping-запросы, принуждающие её давать эхо-ответы. Невинный инструмент проверки доступности сетевого узла становится злобным пожирателем системных ресурсов. Именно поэтому некоторые системные администраторы напрочь блокируют ICMP запросы на уровне фаервола. Сервер или любое другое сетевое оборудование будет вполне доступным, но пропинговать его Вы не сможете.SYN флуд В этом виде атак используется один из базовых принципов, заложенных в протокол TCP — принцип «тройного рукопожатия». Машина, инициирующая соединение, отправляет хост-машине SYN пакет. Хост отвечает пакетом SYN-ACK, на что машина-инициатор должна ответить ACK пакетом. В случае SYN флуда ACK пакет не отправляется, в результате чего соединение некоторое время висит открытым и закрывается по тайм-ауту. Так как количество подключений, которые одновременно могут поддерживаться хост-машиной открытыми, ограничено, рано или поздно наступает насыщение, приводящее к отказу в обработке полезных пакетов.MAC флуд Весьма экзотический тип атаки, направленный в основном на сетевое оборудование. Атакующая сторона отправляет пустые Ethernet пакеты с разными MAC адресами. Свитч рассматривает такие пакеты как отдельные, и резервирует под каждый из них некое количество ресурсов. Насыщение ресурсов может привести к тому, что свитч перестанет отвечать на запросы, а в отдельных случаях — к полному сбою таблицы маршрутизации.Пинг смерти У этого вида разные имена: Ping of Death (пинг смерти), Teardrop (слезинка) и некоторые другие. На сегодняшний день он уже не является такой уж серьёзной угрозой, но в прежние времена всё было несколько иначе. Максимальный размер IP пакета — 65535 байт. Однако в процессе передачи по сети пакет дробится на части, соответствующие размеру окна. В результате манипуляций с получившимися субпакетами можно добиться, что при обратной «сборке» получится пакет, превышающий максимальный размер. Это может привести к переполнению выделенного буфера памяти и отказу в обслуживании для других пакетов.Slowloris Особо изощрённый и узко специализированный тип атаки, позволяющий относительно малыми ресурсами (достаточно одного сервера) положить веб-сервер, не затронув другие протоколы. Атакующий сервер пытается открыть как можно больше HTTP соединений и держать их как можно дольше, понемногу отправляя частичные запросы. Лимит одновременных подключений на атакуемом сервере весьма быстро заканчивается, и он перестаёт принимать полезные запросы. Лечится отлавливанием и блокировкой таких затягивающихся соединений.Отражённые атаки В данном типе пакеты с фальсифицированными IP отправителя рассылаются максимально возможному количеству машин. Ответы машин стекаются на IP жертвы, перегружая её сервер. Один из распространённых примеров — использование неверно настроенных DNS-серверов. DNS-серверам отправляются небольшие запросы якобы от IP жертвы. Размер ответа сервера в среднем в 10 раз превышает размер запроса. Таким образом, атакующий сервер, рассылающий 100 Мбит/с ложных запросов, может обрушить на атакуемый порядка гигабита паразитного трафика.Деградация сервиса Основная суть данного типа — множественная симуляция действий реальной аудитории. Самый примитивный вариант — частые запросы одной и той же страницы сайта. Лечится временной блокировкой страницы с отдачей сообщения об ошибке. Более сложные атакующие системы будут случайным образом ходить по Вашему сайту, запрашивать не только html документ, но и все сопутствующие картинки, скрипты и файлы стилей. В результате зомби-компьютеры будут истощать ресурсы сервера и приводить к деградации (или, по-простонародному, «тормозам»).Общий принцип борьбы — поведенческий анализ и отсеивание подозрительных IP на уровне фаервола. Например, повышенная частота запросов, повтор маршрутов продвижения по сайту разными IP или запрос исключительно html документов выглядят подозрительными и свидетельствуют в пользу необходимости блокировки таких IP. Однако чем более сложный алгоритм заложен в атакующую программу, тем сложнее выявить паразитный трафик и тем больше ложноположительных срабатываний, блокирующих доступ к ресурсу реальным пользователям. Не все захотят с этим мириться.

Неумышленный DDoS Собственно, это нельзя назвать атакой. Этот вид DDoS-а происходит, когда ссылка на какой-то сайт попадает, например, в топовый новостной ресурс или популярный блог, вызывая резкий рост посещаемости, к которому сайт оказывается не готов. Широко известным в узких кругах примером является хабраэффект. Бороться с этим не нужно, скорее нужно радоваться, что Ваш сайт растёт. Ну, и пора задуматься об апгрейде.Атака нулевого дня К этому типу относят атаки, которые фиксируются впервые. Как и в случае с новыми вирусами, новыми бактериями и новыми паразитами, понадобится время, чтобы проанализировать атаку и подобрать эффективное лекарство.Многовекторные атаки Наиболее сложный вид атак. Атакующая сторона использует несколько разных типов и инструментов атаки, что существенно усложняет или даже делает невозможным идентификацию составляющих и подбор средств борьбы.Насколько это доступно? Безмерно доступно. На сегодняшний день существует немало свободно доступных в интернете приложений для проведения DDoS атак. Некоторые из них используют механизмы атак, которым сложно противодействовать, другие позволяют объединить всех пользователей в добровольный ботнет, что даёт возможность пользоваться чужими ресурсами для проведения атак и раздавать взамен свои. При этом таким на первый взгляд аматорским атакам бывает сложно противостоять даже хорошо подготовленным коммерческим системам.Другой способ — аренда ресурсов ботнета. Интернет полон ресурсов, предоставляющих подобные услуги по весьма символическим ценам: от $5 за час, от $40 за сутки. За такие, можно сказать, смешные деньги запросто можно «заказать» своих конкурентов по электронной коммерции и принести им намного более существенные убытки.

4c50b7c6f52242aea201452dc548e319.jpeg

Зачем это нужно? Думаю, ответ известен всем. Чаще всего причиной служит недобросовестная конкуренция. Спектр атакуемых сайтов и ресурсов чрезвычайно широк. На сегодняшний день это не только финансовые учреждения, игровые сайты и интернет-магазины, зафиксированы случаи атак даже на правительственные сайты и службы доставки пиццы.Широкая доступность инструментов для атак постепенно переводит их из разряда сугубо оружия экономической борьбы к более широкому применению, вплоть до идеологической борьбы, народного протеста, мести обиженного клиента неугодному сервису и банального интернет-вандализма. Лично мне пока верится слабо, но некоторые отчёты утверждают, что в последние годы именно идеологический хактивизм и интернет-вандализм возглавляют список, отодвинув конкурентную борьбу на более низкие позиции.

9a1cd41adf3844ca8f122aaef046b279.jpg

Как с этим жить? Мы совместно с нашими клиентами неоднократно сталкивались с проблемой DDoS разного типа и масштаба. Некоторые атаки лечились грамотной настройкой фаервола на сервере, другие же требовали аппаратной или внешней фильтрации. Бывало, что дата-центр просто нульрутил IP, т.к. входящий объём трафика внезапно превышал входящий канал не только сервера, но и всего шкафа в целом. Являясь провайдером услуг по аренде серверов, мы проповедуем политику, согласно которой пользователь и только он — главная заинтересованная в сохранности и доступности данных сторона. Таким образом, резервное копирование, своевременное устранение программных брешей в безопасности и наличие договорённости с сервисом защиты от DDoS — святые обязанности любого переживающего за свой проект человека.Однако мы с удовольствием поделимся некоторыми полезными на наш взгляд рекомендациями. Если Ваш проект относится к тем категориям ресурсов, которые чаще всего оказываются под атакой, Вам стоит своевременно задуматься о нескольких простых и очевидных, но нередко игнорируемых шагах, которые помогут если не уберечься от атак, то хотя бы снизить их отрицательное влияние.

Изучите свою сеть. У любого сервиса есть некоторые характерные черты использования сети: типы и объём трафика, суточная кривая и т.п. Например, сайтам для взрослых характерен плавный рост трафика в вечернее время с постепенным спадом за полночь, плюс небольшой пик во время обеденного перерыва. Не поленитесь изучить стандартные характеристики и регулярно отслеживать текущую картину. Атаки редко приходят как по щелчку рубильника, чаще они приходят, как волна. Начинается всё с небольшого подъёма активности, который вскоре начинает активно нарастать. Если Вы сможете отловить начало волны, у Вас появится шанс заранее принять меры.

Знайте, с кем связаться. Вы должны чётко знать, к кому обратиться в случае, если Вы уже под атакой либо чувствуете её приближение. Это может быть внутренний отдел безопасности, удалённый сотрудник, инженер дата-центра, сервис сопровождения по вопросам безопасности и т.п. Лопатить поисковые результаты, читать наспех отзывы, обзванивать или списываться с представителями различных сервисов — это последнее, что Вам нужно, когда беда уже пришла. Пока Вы выберете исполнителя, атака может уже рассосаться сама по себе, а вопрос наличия гарантированного контакта помощи опять будет отложен до очередной критической ситуации. И так до бесконечности.Проработайте план действий. Несмотря на всю характерную славянской душе спонтанность, критичные бизнес-процессы нужно по возможности стандартизировать и документировать. Наличие контакта «службы спасения» — это немаловажно, но Ваши сотрудники должны знать, как с ней корректно и оптимально взаимодействовать. Если в проекте участвуют два-три человека, можно просто проговорить последовательность действий на словах. Но если у Вас достаточно большой штат, есть круглосуточные дежурные сетевики, лучше всего, чтобы краткая пошаговая инструкция была прописана на бумаге и висела рядом с планом эвакуации при пожаре. В момент атаки на смене может оказаться сотрудник с малой квалификацией или без практического опыта решения такой проблемы, и важно, чтобы у него не возникало необходимости много думать и искать решение.

Проводите «учебные тревоги». Особенно этот пункт актуален, если у Вас достаточно крупное и критическое приложение. На заводах (и не только) периодически проводят проверочные эвакуации в случае пожара или какого-либо другого стихийного бедствия. DDoS — это тоже своего рода стихийное бедствие. Почему бы не устраивать периодические проверки навыков оперативной обработки критических ситуаций? Это позволит закрепить навыки и выявить слабые места в процедурах. С поправкой на наш менталитет — необходимо также правильно подать эти тренировки сотрудникам, чтобы это не воспринималось, как «очередная корпоративная дуристика».

Знайте, что блокировать. Любой сервис обладает определённым набором основных портов, необходимых для его работы. Заблаговременно заблокируйте на фаерволе всё лишнее. Это позволит сузить поле для атаки. Если у Вас есть опдерелённый список ключевых клиентов, позаботьтесь о добавлении их адресов в предопределённый белый список, чтобы в случае атаки не резать их запросы.

Знайте, где блокировать. Блокировать трафик на фаерволе или на роутере? Подключать аппаратный DDoS или внешний сервис фильтрации трафика? Если Вы предпочли не отдавать обеспечение защиты полностью на откуп сторонним сервисам, а проводить базовую диагностику и решать хотя бы часть проблем самостоятельно, не забудьте в плане ликвидации прописать диагностические процедуры и правила действий в тех или иных ситуациях. Это позволит избавиться от метода проб и ошибок тогда, когда на него совершенно нет времени.

Как я уже говорил, эти шаги не станут панацеей, но помогут свести к минимуму простой и убытки. Буду признателен за любые дополнения и рекомендации из личной практики.

Чистого Вам канала.

© Habrahabr.ru