Жертвами DDoS-атак за последние время месяцев становятся множество Российских компаний, онлайн-сервисы которых критичны для бизнеса — среди них интернет-магазины, СМИ и финансовые учреждения. Атаки типа DDoS набирают популярность и уже стали привычным явлением для интернет-бизнеса.
Для тех, кто мало знаком с данными атаками, мы подготовили бриф по распределенным атакам на отказ в обслуживании.
Цель DDoS-атаки — заблокировать на некоторое время доступ к онлайн-ресурсу путем перегрузки канала «мусорными» запросами, в результате чего бизнес несет существенные финансовые и репутационные потери. Ситуация усугубляется тем, что DDoS-атаку сегодня может организовать практически любой желающий — стоимость ее невелика, контакты исполнителей можно найти при помощи поисковых сервисов. Такая доступность и простота организации DDoS-атаки ставят под угрозу практически любую компанию, у которой есть недоброжелатели. Количество пострадавших варьируется в зависимости от географической принадлежности и сферы деятельности компаний. Даже если злоумышленникам не удается полностью лишить пользователя доступа к информационным ресурсам компании, их частичная недоступность также является серьезной проблемой. Многие организации по-прежнему не считают их серьезной угрозой. В то же время недоступность сайта и неудавшиеся транзакции — это только вершина айсберга. Если в случае взлома системы злоумышленники крадут данные клиентов и конфиденциальную информацию, то DDoS-атака может стать причиной потери репутации, оттока существующих клиентов или исков за непредоставленные услуги.
Что мы мы подразумеваем под DDoS атакой:
DoS-атака (Denial of Service) — атака направленная на отказ в обслуживании ресурса или канала;
DDoS-атака (Distributed Denial of Service) — множественная DoS-атака, осуществляемая из нескольких источников.
DDoS атаки можно разделить на три обширные группы:
- Атаки на канал – данная категория атак направлена на насыщение полосы пропускания. Обычно используются сотни тысяч ботов.
- Атаки на уровне протоколов — эта категория направлена на ограничения оборудования или уязвимости различных протоколов обычно используется десятки тысяч ботов
- Атаки на уровне приложений (7 lvl) — такие атаки направлены на уязвимости в приложениях и операционных системах, они приводят к неработоспособности какого-либо приложения или ОС в целом. Обычно используется сотни ботов.
Рассмотрим основные виды DDoS атак:
ICMP-флуд (Smurf-атака). В ней по широковещательному адресу злоумышленник отправляет поддельный ICMP-пакет, в котором адрес атакующего меняется на адрес жертвы. Все узлы присылают ответ на данный ping-запрос.
UDP-флуд. Этот вид атак использует UDP протокол. Его характерные особенности — отсутствие необходимости в установлении сессии и отправки какого-либо ответа. На случайные порты хост-машины приходит бесчисленное количество пакетов, принуждая постоянно проверять, слушает ли данный порт какое-то приложение, и в случае ошибки возвращать пакет «ICMP Destination Unreachable». Естественно, такая активность поглощает ресурсы хост-машины, приводя к её недоступности.
SYN-флуд. Данный вид атаки основан на попытке запуска большого числа одновременных TCP-соединений через посылку SYN-пакета с несуществующим обратным адресом. После нескольких попыток отослать в ответ ACK-пакет на недоступный адрес большинство операционных систем ставят неустановленное соединение в очередь. И только после n-ой попытки закрывают соединение. Поскольку поток ACK-пакетов очень большой, вскоре очередь оказывается заполненной, и ядро дает отказ на попытки открыть новое соединение.
HTTP-флуд. Атакующий отсылает небольшие http-пакеты, которые заставляют в свою очередь отвечать сервер пакетами, размеры которых значительно больше. Тем самым злоумышленник имеет большой шанс насытить полосу пропускания жертвы и вызвать отказ в работе сервисов.
Отраженная DDoS-атака с усилением. Эта атака основана на сетевом протоколе UDP, который активно используется многими важными интернет-сервисами, в частности DNS (всем известный, Domain Name Service) и NTP (менее известный, Network Time Protocol), хотя сегодня уже ведутся атаки и с помощью сервисов потокового вещания. Самое главное для нас в данном случае, что нет «рукопожатия», то есть сервис «не проверяет» адрес отправителя. Другими словами, кто угодно может послать UDP-пакет от чьего угодно имени (IP-адреса). Соответственно, атакующий посылает UDP-пакет на сервис (обычно DNS или NTP) от имени жертвы (с ее IP-адреса) и сервис отвечает не на IP-адрес атакующего, а на IP-адрес жертвы. Вот почему и название у атаки — «отражение». Но этого было бы мало для успешной DoS-атаки. В названии присутствует еще слово «усиление». В данном случае у DNS- и NTP-служб есть приятная для атакующего особенность — множитель. Это выглядит следующим образом: атакующий от имени жертвы отправляет на DNS- или NTP-сервер пакет размером 1 кбайт, а DNS- или NTP-сервер отвечает на адрес жертвы пакетом в N-раз больше! Вот это и есть то самое усиление, о котором было сказано в самом начале. Поэтому название «усиленная отраженная DDoS-атака» достаточно точно характеризует техническую суть данного явления.
Slow HTTP Post. Атака заключается в отправке серверу большого HTTP POST-запроса маленькими частями (по 1 байту). По стандарту HTTP-сервер должен дождаться полной передачи данных (получив содержимое размером байт) и может закрывать соединение только по таймауту. Таким образом, в случае подобной DDoS-атаки медленными соединениями атакуемый сервер открывает огромное количество соединений, катастрофически расходуя свои ресурсы (прежде всего, открытые в системе файловые дескрипторы).Преимущества этой атаки в том, что она не требует генерации огромного трафика и ее достаточно трудно выявить.
Slow HTTP headers. Аналогичен методу Slow HTTP Post, только вместо пост-запроса используется медленная отправка заголовка HTTP. Как и при атаке методом Slow Post, сервер ждет окончания заголовков, прежде чем закрыть соединение, что приводит к большому количеству открытых соединений и, как следствие, к перегрузке сервера.Подобные ддос-атаки сложно отличить от обычных запросов с медленным соединением.
Фальшивые Googlebots. Новая технология совершения DDoS-атак. Её основной особенностью является использование ботов, маскирующихся под Googlebots – роботов поисковой системы Google, которые отслеживают появление и обновление web-страниц для индексации сайтов в поисковых системах.
Существует еще множество других типов атак и зачастую кажется, что возможности злоумышленников безграничные — это утверждение верно если ничего не делать. Для любой компании работающий на просторах интернета необходимо защищаться от DDos атак. Всегда надо помнить что атака стоит меньше, чем конкуренция и убытки стоят дороже, чем защита.
Защищаться от DDoS-атак можно по-разному.
Первый способ, к которому обычно прибегают вначале, – это организация самостоятельной защиты, но подобный вид мер безопасности способен нейтрализовать лишь самые простые атаки: установка front-end Nginx, запрет протоколов ICMP и UDP могут значительно облегчить жизнь сервису, но только до определенного уровня.
Также защиту может предоставлять хостинг-провайдер или оператор связи, но их возможности ограничены доступным для них каналом, и ни один, ни другой не будут разбирать высокоуровневые протоколы HTTP/HTTPS.
Лучшей практикой будет использование облачного решения. Однако облако, которое действительно защищает от DDoS-атак, должно обладать следующими свойствами:
- Распределенность. В облаке должно быть несколько географически разнесенных узлов, чтобы вывод из строя любого из них не оказывал влияния на сервис.
- Собственная автономная система и собственные адресные блоки, из которых для защищаемого сервиса выделяется новый IP-адрес, скрывающий истинное его расположение в сети.
- Глобальная связность автономной системы с Интернетом. Только магистральные операторы в качестве провайдеров облачных сервисов дадут уверенность клиентам, находящимся под защитой облачного решения, в том, что их трафик не будет теряться вне зависимости от того, какие атаки осуществляются.
- Полная автоматизация процесса фильтрации. У хорошей системы защиты от DDoS-атак – тысячи клиентов и сотни инцидентов в день. Этот объем невозможно обработать вручную. Ручное вмешательство порождает ошибки, так как человек должен оперативно решать, какие фильтры подключать и пр., что не всегда приводит к нужному результату.
- Постоянная фильтрация должна быть приоритетной услугой, поскольку любое переключение по протоколу BGP или DNS означает время простоя сайта, измеряемое десятками минут, и раскрытие истинного местоположения сервера.
- Использование технологии MPLS (multiprotocol label switching) VPN в качестве резервной связности системы защиты и сервера. Это позволит даже при полностью забитых «мусором» каналах дата-центра сохранить полную работоспособность сервера.
- Использование статического контента на CDN.
Сам сервер должен обладать рядом качеств, которые позволят ему быть всегда доступным для клиента: возможность выдерживать рост легитимной нагрузки, чтобы не «падать» во время рекламных кампаний и быстро восстанавливаться, когда фильтры включились. Также важно понимать, что некоторое количество ботов (обычно 1–2%) может быть пропущено, и сервер должен быть способен это выдерживать.
«Один сервер – один сервис». Web-сервер должен быть на своем сервере единственным приложением. Иначе атакующая сторона узнает его IP, например из записи MX (Mail Exchanger – один из типов записей в DNS, указывающий способ маршрутизации электронной почты), или Web-сервер может быть выведен из строя исчерпанием ресурсов процессора за счет другого сервиса. Очень желательно использовать устойчивый распределенный DNS.
Какой бы метод защиты от DDoS ни выбрала компания, главное – помнить, что к атакам нужно быть готовым заранее. Кроме того, построенная IТ-инфраструктура должна полностью соответствовать объемам бизнеса компании. Это поможет минимизировать ущерб и не потерять лояльность клиентов даже в самый активный бизнес-сезон.