Что такое DDoS? Как предотвратить DDoS-атаку?

DDoS -атака (с англ. Distributed Denial of Service — «отказ от обслуживания») – распределенная атака типа отказ в обслуживании, которая являет собой одну из самых распространенных и опасных сетевых атак. В результате атаки нарушается или полностью блокируется обслуживание законных пользователей, сетей, систем и иных ресурсов. В результате DDoS-атаки сервера, обслуживающие сайт, вынуждены обрабатывать чрезмерный объём ложных запросов, и сайт становится недоступным для простого пользователя.

Кто может пострадать от DDoS-атаки?

Жертвами таких атак становятся коммерческие и информационные сайты. Хакеры в последнее время используют такой вид атак с целью вымогательства, требуя денег за прекращение атаки.

Как происходит DDoS-атака?

Схематически DDoS-атака выглядит примерно так: на выбранный в качестве жертвы сервер обрушивается огромное количество ложных запросов со множества компьютеров с разных концов света. В результате сервер тратит все свои ресурсы на обслуживание этих запросов и становится практически недоступным для обычных пользователей. Пользователи компьютеров, с которых направляются ложные запросы, могут даже не подозревать о том, что их машина используется хакерами. Программы, установленные злоумышленниками на этих компьютерах, принято называть "зомби". Известно множество путей "зомбирования" компьютеров - от проникновения в незащищенные сети, до использования программ-троянцев. Пожалуй, этот подготовительный этап является для злоумышленника наиболее трудоемким.

DDoS-атака изнутри

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

Специалисты по информационной безопасности выделяют следующие виды DDoS-атак:

· UDP flood - отправка на адрес системы-мишени множества пакетов UDP (User Datagram Protocol). Этот метод использовался в ранних атаках и в настоящее время считается наименее опасным. Программы, использующие этот тип атаки легко обнаруживаются, так как при обмене главного контроллера и агентов используются нешифрованные протоколы TCP и UDP.

· TCP flood - отправка на адрес мишени множества TCP-пакетов, что также приводит к "связыванию" сетевых ресурсов.

· TCP SYN flood - посылка большого количества запросов на инициализацию TCP-соединений с узлом-мишенью, которому, в результате, приходится расходовать все свои ресурсы на то, чтобы отслеживать эти частично открытые соединения.

· Smurf-атака - пинг-запросы ICMP (Internet Control Message Protocol) по адресу направленной широковещательной рассылки с использованием в пакетах этого запроса фальшивый адрес источника в результате оказывается мишенью атаки.

· ICMP flood - атака, аналогичная Smurf, но без использования рассылки.

Наиболее опасными являются программы, использующие одновременно несколько видов описанных атак. Они получили название TFN и TFN2K и требуют от хакера высокого уровня подготовки.

Одной из последних программ для организации DDoS-атак является Stacheldracht (колючая проволока), которая позволяет организовывать самые различные типы атак и лавины широковещательных пинг-запросов с шифрованием обмена данными между контроллерами и агентами.

Однако спектр программ намного шире и постоянно дополняется. По этой же причине достаточно наивным было бы описание универсальных надежных методов защиты от DDoS-атак. Универсальных методов не существует, но к общим рекомендациям для снижения опасности и уменьшения ущерба от атак можно отнести такие меры, как грамотная конфигурация функций анти-спуфинга и анти-DoS на маршрутизаторах и межсетевых экранах. Эти функции ограничивают число полуоткрытых каналов, не позволяя перегружать систему.

На уровне сервера желательно иметь вывод консоли сервера на другой IP-адрес по SSH-протоколу для возможности удаленной перезагрузки сервера. Другим достаточно действенным методом противодействия DDoS-атакам является маскировка IP-адреса.

Как предотвратить DDoS-атаку?

Бороться с таким видом атак достаточно сложно ввиду того, что запросы поступают с различных сторон. Как правило, защита включает такие мероприятия, как фильтрация и блэкхолинг, устранение уязвимостей сервера, наращивание ресурсов, рассредоточение (построение распределённых и продублированных систем, которые продолжат обслуживать пользователей), уклонение (увод непосредственной цели атаки от других связанных ресурсов, маскировка IP-адреса).

Своевременное определение DDoS-атаки

Если у вас есть собственные сервера, вам необходимо иметь средства для определения совершаемой на вас атаки. Чем раньше вы определите, что проблемы с доступностью вашего сайта возникли из-за DDoS-атаки, тем раньше вы можете предпринять меры для ее отражения.

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

Действенным способом является подключение дополнительных каналов связи, даже если расчеты пропускной способности показывают, что они вам не нужны. В этом случае вы сможете без последствий преодолеть неожиданные скачки трафика, которые могут быть, например, результатом рекламной кампании, специальных предложений или упоминания вашей компании в СМИ.

Сложности обеспечения защиты от DDoS:

· Врожденные уязвимости сети. Отсутствие уязвимостей сети, которая используется злоумышленниками. Атака успешна потому, что в природе всех компьютерных платформ существует некий порог доставки. Компьютеры, кластеры или облачные системы - все они имеют физические ограничения по количеству запросов, которые они могут обрабатывать в заданное время. Успешная атака DDoS должно просто генерировать достаточное количество трафика, чтобы превысить это пороговое значение. Большая часть других атак может быть отражена путем использования специальных патчей, конфигурацией систем безопасности или изменение политик. Но ни один из этих подходов не поможет противостоять DDoS. Службы должны быть всегда доступны и, значит, уязвимы для атак.

· Невозможность заблокировать толпу. DDoS очень сложно заблокировать, поскольку существует очень много источников атаки. Очень трудно обеспечить эффективную блокировку длинного списка атакующих IP-адресов. Потенциально тысячи адресов должны быть временно добавлены в черный список для того, чтобы остановить атаку. Если атакующий использует метод, прикрывающий атаку вполне легитимными хостами (spoofing), то в черный список могут попасть и невинные хосты.

· Поиск виновных. Тут мы сталкиваемся с третьей проблемой: очень сложно определить, какие пользователи делают вполне законные запросы, а какие участвуют в DDoS. Поскольку все компьютеры, получающие доступ к услугам, создают нагрузку на сервер, то они все и участвуют в атаке, даже не зная об этом. Нужна очень аккуратная проверка, чтобы определить, какие клиентские хосты "хорошие", а какие "плохие". Нужно сделать много расчетов и сделать их быстро, прежде чем будут приняты какие-либо решения.

На что нацелена DDoS-атака

Чтобы эффективно защититься от DDoS-атак, необходимо разграничивать потенциальные опасности. В зависимости от объекта атаки:

· Ресурсоемкие пакеты с поддельными адресами «забивают» каналы связи, что усложняет или блокирует доступ на сайт легитимных пользователей. Широкая пропускная способность каналов связи поможет защититься от атак этого типа.

· Если атаке подвергаются ресурсы системы, то ее производительность снижается, в результате чего система работает медленно или зависает. Атакующим прекрасно известно, какие пакеты данных нужно отправить компьютеру-жертве для загрузки.

· Уязвимости ПО использует разрушающая атака, которая может изменить конфигурацию и параметры системы. Любые несанкционированные изменения должны отслеживаться и устраняться. Свой скрипт защиты от DDoS применятеся в каждом отдельном случае.

Уязвимыми элементами являются сервер, межсетевой экран и канал интернет

· Серверы являются уязвимыми по той простой причине, что злоумышленники часто организуют свои атаки таким образом, чтобы они потребляли больше ресурсов, чем те, которыми обладает сервер.

· Интернет-канал становится уязвимым для атак, которые нацелены на истощение пропускной способности, и называются «объемный флуд». К таким атакам относятся UDP-флуд или TCP-флуд, потребляющие много пропускной способности канала.

· Несмотря на то, что межсетевой экран является инструментом обеспечения безопасности и не должен служить уязвимым местом для DoS/DDoS-атаки, во время проведения таких атак, как SYN-флуд, UDP-флуд и переполнение соединения, злоумышленники могут генерировать многие состояния, что истощают ресурсы межсетевого экрана до тех пор, пока он сам не становится слабым местом инфраструктуры.

Список мер, которые необходимо предпринять, если вы подверглись DDoS-атаке:

· Убедитесь в том, что атака произошла. Исключите общие причины перебоя работы, включая неправильную конфигурацию DNS, проблемы с маршрутизацией и человеческий фактор.

· Обратитесь к техническим специалистам. С помощью технических специалистов определите, какие ресурсы подверглись атаке.

· Установите приоритеты важности приложений. Установите приоритеты важности для того, чтобы сохранить наиболее приоритетные приложения. В условиях интенсивной DDoS-атаки и ограниченных ресурсов необходимо сосредоточиться на приложениях, обеспечивающих основные источники прибыли.

· Защитите удаленных пользователей. Обеспечьте работу вашего бизнеса: занесите в белый список IP-адреса доверенных удаленных пользователей, которым необходим доступ, и сделайте этот список основным. Распространите это список в сети и отправьте его поставщикам услуг доступа.

· Определите класс атаки. C каким типом атаки вы столкнулись: Объемная? Маломощная и медленная? Ваш поставщик услуг сообщит вам, является ли атака исключительно объемной.

· Оцените варианты борьбы с адресами источников атак. В случае сложных атак ваш поставщик услуг не сможет преодолеть/определить количество источников. Заблокируйте небольшие списки атакующих IP-адресов в вашем межсетевом экране. Более крупные атаки можно блокировать на основе данных о геопозиционировании.

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

· Усильте свой периметр защиты. Возможно, вы столкнулись с ассиметричной атакой DDoS 7 уровня. Сосредоточьтесь на защите на уровне приложений: используйте системы логинов, систему распознавания людей.

· Ограничьте сетевые ресурсы. Если предыдущие меры не помогли, то необходимо ограничить ресурсы – таким образом будет ограничен «плохой» и «хороший» трафик.

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

При составлении материалов служба KZ-CERT использовала информацию из открытых источников.