Что такое DDoS-атака
Атаки типа «отказ в обслуживании» DoS (Denial of Service) – это перегрузка сети паразитным трафиком (т.н. флуд), когда на атакуемый ресурс отправляется большое количество злонамеренных запросов, из-за чего полностью «забиваются» все каналы сервера или вся полоса пропускания входного маршрутизатора. При этом передать легитимный трафик на сервер становится невозможно. Запросов может быть так много, что сервер не успевает их обрабатывать и переходит в режим «отказа в обслуживании». На жаргоне специалистов это называется «положить сервер».
Если такая атака ведется не от одного компьютера, а от многих, то такая атака называется распределенной атакой DDoS (Distributed DoS).

Схема DDoS-атаки
Виды DDoS-атак
Атаки 3-4 уровня OSI
Это атаки на сетевом и транспортном уровнях. Злоумышленники «забивают» каналы передачи большим количеством передаваемых пакетов. Канал не может справиться с нагрузкой и выдает ошибку «отказ в доступе». DDoS-атаки могут использовать недостатки сетевых протоколов, перегружая сервер, в результате чего сервер перестает отвечать на запросы.
Атаки 7 уровня OSI
Атаки на уровне приложений потребляют не только сетевые ресурсы, но и ресурсы сервера. Сервер не выдерживает нагрузку, что приводит к его недоступности. Атака при этом направлена непосредственно на операционную систему или приложение с целью вынудить их превысить лимит вычислительной мощности сервера. При этом атакам подвергаются конкретные приложения, сервисы и службы. Атаки могут продолжаться длительное время (несколько часов или дней).
Типы DDoS-атак
- HTTP-флуд: самый простой вид запросов, например, при помощи HTTP-заголовка пакета, который указывает запрашиваемый ресурс сервера. Злоумышленник может использовать сколько угодно заголовков, придавая им нужные свойства. При DDoS-атаке HTTP-заголовки могут изменяться, делая их труднораспознаваемыми для выявления атаки. Кроме того, HTTP-запросы атаки могут передаваться по защищенному протоколу HTTPS. В этом случае все пересылаемые между клиентом (злоумышленником) и сервером данные шифруются. При этом «защищенность» идет атакующему только на пользу: чтобы выявить злонамеренный запрос, сервер должен сначала расшифровать его. То есть расшифровывать приходится весь поток запросов, которых во время DDoS-атаки поступает очень много. Это создает дополнительную нагрузку на сервер-жертву, что приводит к исчерпанию его вычислительной мощности.
- SYN-флуд (TCP/SYN): устанавливает полуоткрытые соединения с узлом. Когда сервер-жертва принимает SYN-пакет синхронизации через открытый порт, он должен послать в ответ на сервер-источник запроса пакет подтверждения SYN-ACK и открыть соединение. После этого запроса сервер-источник должен послать на сервер пакет подтверждения ACK, однако злоумышленник не посылает это подтверждение. Соединения остаются полуоткрытыми до истечения тайм-аута. Очередь на подключение на атакуемом сервере переполняется и новые клиенты не могут установить соединение с сервером.
- MAC-флуд: злоумышленник посылает поток пустых фреймов Ethernet с разными MAC-адресами в каждом. Коммутаторы сети рассматривают каждый MAC-адрес в отдельности и резервируют ресурсы под каждый из них. Когда вся память коммутатора использована, он либо перестает отвечать, либо останавливает работу. Иногда атака MAC-флудом может удалять таблицы маршрутизации на узлах сети, таким образом нарушая работу всей сети, а не только одного сервера.
- Ping of Death: мастер-бот Ping of Death посылает злонамеренные пинг-запросы через различные IP-протоколы на атакуемый сервер, что приводит к его перегрузке. В настоящее время такие атаки редки. Пропускная способность сетей значительно повысилась, а для таких атак нужно много ресурсов – зараженных ботов.
- Smurf Attack: разновидность Ping of Death. Этот вид атаки использует протокол Интернет (IP) и протокол управляющих сообщений ICMP (Internet Control Message Protocol), на которых работает зловредная программа Smurf. Она подменяет IP-адрес атакующего и пингует IP-адреса в корпоративной сети, оставляя на них полуоткрытые соединения.
- Fraggle Attack: использует большие объемы трафика UDP на вещательной сети маршрутизатора. Эта атака работает аналогично Smurf-атаке, но вместо протокола ICMP использует вещательный протокол UDP.
- Slowloris. Атака Slowloris направлена на веб-сервер. Атакующий сервер подключается к целевому серверу и оставляет это подключение полуоткрытым настолько долго, насколько это возможно, а затем размножает эти полуоткрытые соединения. Закрытие таких соединений атакуемым сервером по таймауту происходит медленнее, чем установка новых соединений. Противодействовать этой атаке довольно сложно, поскольку сложно отследить источник атаки.
- NTP-усиление. Атака использует серверы протокола сетевого времени NTP (Network Time Protocol), который используется для синхронизации компьютерных часов в сети. Цель атаки – перегрузка трафиком UDP. При этой атаке атакуемый сервер отвечает, посылая UDP-трафик на подмененный злоумышленником IP-адрес. «Усиление» означает, что объем ответного UDP-трафика много больше запроса. Поэтому сеть быстро перегружается бесполезным трафиком, а ее узлы останавливают работу.
- Pulse Wave. Главная опасность пульсирующих атак Pulse wave заключается в методике периодических всплесков трафика. Обычная DDoS-атака выглядит как постепенно нарастающий поток вредоносного трафика. Pulse wave представляет собой серию коротких, но мощных импульсов, происходящих с определенной периодичностью.

Пульсирующий трафик атаки Pulse wave (источник: ddos-guard.net)
- APDoS. Усовершенствованная повторяющаяся DoS-атака APDoS (Advanced Persistent DoS) нацелена на нанесение максимального вреда атакуемому серверу. Он использует механизмы HTTP-флуда, SYN-флуда и других видов атак. При этом посылаются миллионы запросов в секунду. Такая атака может длиться неделями, поскольку злоумышленник все время меняет тактику атаки, типы атаки, чтобы обмануть средства противодействия атакуемой стороны.
Как остановить DDoS-атаку
Для противодействия случившейся DDoS-атаке необходимо принять следующие меры:
- Как можно раньше идентифицировать DDoS-атаку. Чем скорее распознан факт атаки, а также ее источник, тем раньше ее можно остановить и минимизировать ущерб. Для этого полезно иметь профиль входящего трафика – какой объем и какого трафика откуда идет. При этом, если происходят отклонение от это этого профиля, это событие может быть автоматически распознано и могут быть приняты превентивные меры. Большинство DDoS-атак начинаются с кратковременных всплесков трафика, поэтому полезно иметь возможность распознать, вызваны ли эти всплески внезапной активностью легитимных пользователей, либо это начало DDoS-атаки.
Например, 6 сентября 2019 года около 21:00 по московскому времени у многих пользователей в Европе и мире перестали открываться сайты Википедии и Викимедии, а средства контроля доступности интернет-ресурсов зафиксировали падение сайта. Вскоре это прекратилось, но ненадолго. Около полуночи того же дня германский сайт Викимедиа сообщил в Твиттере о масштабной DDoS-атаке на свои серверы, которая с перерывами продолжалась до 5:40 утра следующего дня. Источником атаки была ранее неизвестная хакерская группа UkDrillas, которая проводила «натурные испытания» своих методик и средств, а сайт Википедии был выбран ими в качестве «подопытного кролика».

График сетевого трафика при DDoS-атаке на кластер серверов Викимедиа в г. Ашберн (шт. Вирджиния, США), достигавшего почти 3 Гбит/с (источник: ru.wikinews.org)
- Однократное выделение серверу полосы пропускания «с запасом». Чем шире полоса у веб-сервера, тем обычно лучше. Таким образом сервер может выдерживать резкие и неожиданные всплески трафика, которые могут быть, например, результатом рекламной кампании. Но даже если заложить запас в 100 %, или 500 %, это вряд ли спасет от DDoS-атаки. Однако это может дать некоторое время на распознавание источника и типа атаки и принятие мер до того, как сервер «ляжет» полностью.
- Защита периметра сети. Есть несколько технических мер, которые можно предпринять для частичного ограничения эффекта атаки. Многие из них довольно просты и требуют лишь регулировки сетевых настроек. Например:
- Ограничить скорости маршрутизатора, чтобы предотвратить остановку сервера.
- Установить фильтры на маршрутизаторе для сброса пакетов от распознанного источника атаки.
- Установить таймаут на полуоткрытые соединения (от которых в течение времени таймаута не получен подтверждающий ответ источника запроса).
- Сбрасывать пакеты с подмененными IP-адресами и вообще пакеты необычной структуры.
- Установить более низкие пороги сброса для SYN-, ICMP-, и UDP-флуда.
Однако все эти меры хорошо известны и хакерам, и они изобретают все новые способы атак и увеличивают их интенсивность. Но все же эти меры помогут выиграть время на распознавание атаки и принятие мер до наступления фатальной ситуации.
Шансы на предотвращение DDoS-атаки значительно увеличиваются, если веб-сервер расположен в дата-центре, а не в корпоративной сети предприятия. В дата-центрах обычно и входная полоса шире, и имеются мощные маршрутизаторы, которые не всякая организация может себе позволить, а также и персонал имеет больше опыта в предотвращении атак. По крайней мере, другие серверы организации (email, VoIP и пр.) не подвергнутся воздействию атаки.
- Обратиться к специалисту по DDoS-атакам. Есть специальные компании, которые специализируются на оказании экстренной помощи организациям, ставшим объектом DDoS-атаки. У таких компаний есть разнообразные технологии и средства, чтобы обеспечить работоспособность сервера под DDoS-атакой.

Работа услуги предотвращения DDoS-атак, предоставляемая хостинг-провайдером (источник: ИКС медиа)
- Создать инструкцию по действиям в случае DDoS-атаки. В такой инструкции могут быть в доступной форме расписаны действия персонала по предотвращению случившейся DDoS-атаки.
Как предотвратить DDoS-атаку
- Увеличить полосу пропускания. При этом возможно распознать всплески трафика на ранней стадии. Однако в настоящее время это уже плохо помогает предотвратить массированные DDoS-атаки.
- Резервировать ИТ-инфраструктуру. Чтобы максимально усложнить хакерам задачу DDoS-атаки на сервер, лучше распределить виртуальную серверную инфраструктуру по нескольким дата-центрам с использованием хорошей системы балансировки, которая распределяет трафик между ними. При возможности эти дата-центры должны быть в разных областях и округах страны (или даже в разных странах). Еще лучше будет, если эти дата-центры подключены к разным транспортным сетям, в которых нет очевидных «узких мест» в одной точке. Таким образом, хакеру, в лучшем случае, удастся атаковать лишь часть серверной инфраструктуры, а остальные части инфраструктуры смогут взять на себя дополнительный трафик или его долю.
- Конфигурировать сетевое оборудования так, чтобы противодействовать DDoS-атакам. Например, можно сконфигурировать файрволл или маршрутизатор так, чтобы они сбрасывали входные пакеты с протоколом ICMP или блокировали ответы от DNS-сервера вне корпоративной сети. Это может помочь предотвратить DDoS-атаки пингования.
- Использовать аппаратные и программные средства анти-DDoS. Серверы должны быть защищены сетевыми фаерволами, а также фаерволами для веб-приложений. Кроме того, полезно использовать балансировщики нагрузки. Многие вендоры оборудования включают программную защиту от DDoS-атак, таких как SYN-flood, которая следит за количеством незакрытых соединений и сбрасывает их при превышении порога. На веб-серверах, которые наиболее часто подвергаются DDoS-атакам, может быть установлено специальное ПО. Например, это может быть ПО, предотвращающее на 7-м уровне OSI такие атаки, как Slowloris.
- Специальные защитные средства. Защитные средства анти-DDoS для фаерволов и контроллеров пограничных сессий поставляются такими вендорами, как NetScout Arbor, Fortinet, Check Point, Cisco, Radware и др. В них могут использоваться в т. ч. и средства искусственного интеллекта по распознаванию сигнатур во входящем трафике. Однако слабым местом такого метода защиты является то, что эти средства часто имеют ограничения по объему пропускаемого ими трафика. Самые мощные из них могут обрабатывать трафик около 80 Гб/с, а современные техники DDoS-атак могут превосходить и этот уровень трафика.
- Защита DNS-сервера. Не следует забывать и о том, что злоумышленники могут атаковать веб-серверы не напрямую, а «положив» DNS-сервер корпоративной сети. Поэтому важно резервировать DNS-серверы, располагая их в разных дата-центрах с балансировщиками нагрузки.
Заключение
Можно сказать, что не существует какой-то «волшебной таблетки», универсального средства, которые дадут возможность забыть о DDoS-атаках. Хакеры-злоумышленники – народ злобно-изощренный, и они не только изобретают все новые виды, методы и средства DDoS-атак, но также и тщательно изучают доступные на рынке средства противодействия им. Здесь весьма уместна присказка про «болт с резьбой», весьма популярная в среде хакеров.
Какие бы и сколько бы средств какой угодно мощности вы ни установите на свою сеть, это не даст гарантии того, что вы не станете жертвой DDoS-атаки. Поэтому защите от DDoS-атак необходимо постоянно уделять самое пристальное внимание. Не следует ограничиваться только установкой программно-аппаратных средств защиты. Необходимо также проводить образовательную работу среди инженерного персонала.