DDoS-атаки — что это: происхождение, виды и способы защиты
В статье разберемся, что происходит при DDoS-атаке на сервер и как это влияет на сайт.
DDoS расшифровывает как Distributed Denial of Service, или «Распределенный отказ в обслуживании». Это перегрузка информационной системы избыточным числом запросов, блокирующая обработку обращений.
Что происходит при DDoS-атаке? Массовые запросы к серверу. Их объем превышает допустимый, что делает сервер недоступным для других пользователей.
Что такое DoS-атака
Для начала важно понять, что DoS- и DDoS-атаки — не одно и то же.
Denial of Service, или «Отказ в обслуживании», — это перегрузка информационной системы, в которой работает сервисы, с помощью сетевых запросов. При этом сами запросы на сетевом уровне осуществляются с одного компьютера и нацелены на конкретный виртуальный сервер или домен.
В чем разница между DoS- и DDoS-атаками
Кроме того, что DoS-атаки используют всего один хост для перегрузки системы, есть косвенные признаки, по которым их можно отличить от DDoS. Они менее эффективны и более заметны: когда запросы приходят с одного IP-адреса источника, системному администратору становится очевидна их нелегитимность. Как следствие — DoS-атаки гораздо проще подавить, ведь достаточно использовать брандмауэр.
Причины DDoS-атак
Разберем основные цели злоумышленников.
Личная неприязнь
IT-специалисты могут инициировать обвал сервера организации по личным мотивам: преследование со стороны закона, желание отомстить обидчикам, зависть успеху чужого проекта и пр. Например, в 1999 году хакеры из-за угрозы преследования обрушили серверы ФБР.
Политические мотивы
Атакуя серверы органов власти, хакеры таким образом выражают свой протест действиям правительства. Например, в 2007 году из-за угрозы сноса Памятника Воину-освободителю в Таллине хакеры начали атаковать серверы госучреждений.
Развлечение
DDoS становится популярным в современном IT-сообществе, поэтому новички могут проводить их не столько из серьезных побуждений, сколько для забавы.
Вымогательство
Хакер может шантажировать владельцев ресурса с целью выкупа под угрозой DDoS.
Конкуренция
Инфраструктура организации может быть атакована представителями конкурирующей фирмы.
Чем грозит бизнесу DDoS-атака
DDoS-атаки приводят к простоям, из-за которых компании несут материальные и нематериальные издержки. Например, если из-за перегрузки нелегитимным трафиком интернет-магазин становится недоступен, компания теряет деньги, которые потенциально можно был заработать на продажах. А также — тратит средства на восстановление систем.
Подобные инциденты влекут также репетиционные потери: люди банально могут предпочесть купить товар в другом интернет-магазине, который работает стабильнее. Кроме того, из-за простоев веб-ресурсы могут сдать позиции в поисковых выдачах и, как следствие, потерять потенциальный трафик и новых клиентов.
Потенциальные жертвы
Как правило, жертвами крупных DDoS атак становятся:
- Корпорации и государственные учреждения: агрегаторы (маркетплейсы), сайты крупных компаний, отраслевых министерств и др.
- Финансовые учреждения: сайты и серверы, порталы банков, бирж, управляющих и инвестиционных компаний.
- Медицинские учреждения: больницы, медицинские центры и пр.
- IoT устройства: онлайн-кассы, системы «Умный дом» и пр.
Организация DDoS-атак
Серверы имеют ограничения на одновременную обработку запросов. Также для оптимизации нагрузки предусмотрено ограничение пропускной способности канала связи, соединяющего сеть и сервер. Для обхода ограничений злоумышленники организуют специальную сеть с вредоносным ПО («ботнет»). Для наглядности ее схема приведена ниже.
Входящие в инфраструктуру «ботнет» компьютеры не связаны между собой. Они используются для генерации избыточного трафика, способного перегрузить атакуемую систему. Для этого на компьютеры ставится троян, который запускается удаленно. Атаке подвергается DNS сервер, пропускной канал и интернет-соединение.
Признаки DDoS-атаки
Распознать атаку можно по следующим признакам:
- Некорректная работа серверного ПО и операционных систем: зависания, произвольные завершения сессий и пр.
- Пиковая нагрузка по запросам на сервер: нагрузка на ЦП, оперативную память, диск и другие компоненты сервера, превышающая средние значения.
- Рост числа запросов на порты.
- Одинаковая модель поведения: злоумышленники пытаются маскировать вредоносный трафик, закладывая в алгоритмы симуляцию действий пользователей (скачивания файлов, просмотры страниц, использование поиска и пр.). Выявление массового совершения однотипных действий может послужить сигналом.
- Однотипные запросы к портам и сервисам: выявить возросшую нагрузку, однотипные запросы к службам сервера можно по анализу логов. Массовые запросы, если генерирующие их пользователи не похожи на типичную аудиторию, являются хорошим маркером.
Виды DDoS-атак
Атаки транспортного уровня
Атака направлена на перегрузку брандмауэра, центральной сети или системы, распределяющей нагрузку. При атаках такого вида распространено использование сетевого флуда, при котором генерируется масса однотипных запросов-пустышек, перегружающих канал. Основной упор здесь делается на методику обработки клиентских запросов к серверу.
Как правило, сетевая служба работает по методу FIFO, согласно которому в приоритете первое обращение. Однако, при флуде генерируется такой объем запросов, что аппаратных ресурсов сервера не хватает для завершения обработки первого запроса.
HTTP-флуд
Сервер получает избыточный объем HTTP-запросов клиентов, в результате чего все узлы связи становятся недоступными.
ICMP-флуд
Перегружает сервер жертвы служебными командами, на которые машина должна давать эхо-ответы. Классический пример DDoS-атаки — Ping-флуд, когда на сервер непрерывно отправляются ICMP-пакеты для проверки доступности узла.
SYN-флуд
На сервер отправляется избыточный объем SYN-запросов на TCP-подключение. Согласно алгоритму «тройного рукопожатия», сервер должен ответить на SYN-запрос клиента пакетом с флагом ACK (Аcknowledge). После этого будет установлено соединение. В случае с SYN-флудом, очередь SYN-пакетов на сервере переполняется.
При этом заголовки SYN-пакетов подделываются таким образом, чтобы ответные пакеты с сервера уходили на несуществующие адреса. Таким образом, злоумышленник создает цепочку наполовину открытых соединений, забивающих канал и делающих невозможным доступ рядовых пользователей к серверу и его службам.
UDP-флуд
Атакуемое устройство получает множественные UDP-запросы с измененными IP-адресами источников. Так злоумышленник сохраняет анонимность паразитной сети, забивая полосу пропускания сервера. Суть атаки в следующем: из вредоносной сети на жертву направляется поток запросов по протоколу UDP. Сервер должен обработать запрос, разобрав приходящий пакет и определив для него соответствующее приложение (сервис, порт).
Затем нужно перенаправить запрос туда и в случае успеха вернуть ответ службы. В случае отсутствия активности будет отправлено сообщение «Адресат недоступен» по протоколу ICMP. Поскольку в пакетах был изменен адрес источника инициатора запроса, то ICMP-отказы уходят на другие узлы. Тем временем, вредоносный алгоритм продолжает поддерживать очередь запросов переполненной.
MAC-флуд
На порты сервера поступает поток пустых пакетов с пустыми MAC-адресами.
Атаки уровня инфраструктуры
Атаке уровня приложения L7 модели OSI подвергаются оперативная память, процессорное время, а также подсистема хранения данных на сервере. При этом пропускной канал не перегружается.
Существуют несколько видов таких атак.
Вычисления
Процессор получает запросы на «тяжелые» вычисления. Ввиду переизбытка запросов сервер начинает сбоить и пользователи не получают доступ к серверу, его службам и ресурсам.
Переполнение диска
Дисковое пространство сервера начинает заполняться «мусорным» содержимым с помощью вредоносного кода злоумышленников. Переполнение диска нарушает работу веб-серверов, функционал которых построен на активной работе с файловой системой (хранение, доступ и воспроизведение мультимедиа и другого контента). Для заполнения используются лог-файлы (данные о запросах и сессиях, формируемые на стороне сервера). Предотвратить умышленное заполнение диска можно ограничив размер лог-файлов.
Обход системы квотирования
Злоумышленник получает доступ к CGI-интерфейсу сервера и с его помощью использует аппаратные ресурсы машины в своих интересах.
Неполная проверка пользователя
Злоумышленник может использовать ресурсы сервера бесконечно долго.
Атака второго рода
На сервере вызывается ложный сигнал о перегрузке, либо ее угрозе, в результате сетевой узел на время становится недоступным.
Атаки уровня приложений
При таких атаках используются заложенные в серверное ПО упущения, создающие уязвимости. Классический пример — атака «Пинг смерти», когда на атакуемую машину направляется избыточный объем ICMP-пакетов, переполняющих буфер памяти.
DNS-атаки
Атаки этого вида направлены на:
- Использование уязвимостей в ПО DNS-серверов: «уязвимость нулевого дня», «Быстрый поток», «DNS-спуфинг».
- Обрушение DNS-серверов: из-за отключения службы DNS пользователь не сможет зайти на страницу сайта, поскольку его браузер не найдет IP-адрес нужного узла.
Предотвращение и защита от DDoS-атак
Наиболее эффективный способ защиты от DDoS-атак на сайт — это фильтрация подозрительной сетевой активности на уровне хостинг или интернет-провайдера. Причем выполняться это может как средствами сетевых маршрутизаторов, так и с помощью специального оборудования.
Владелец же сайта, веб-сервиса или другого сетевого проекта, со своей стороны, для минимизации рисков и потерь от DDoS должен:
- Тщательно обследовать логику своего продукта: еще на этапе разработки и тестирования можно исключить ошибки и уязвимости.
- Вести контроль версий ПО и сетевых служб: необходимо своевременно обновлять программное обеспечение сетевых служб (СУБД, PHP и пр.). Также нужно поддерживать код самого продукта в актуальном и стабильном состоянии. Рекомендуется даже разворачивать проект на нескольких серверах — продуктовом (боевом), тестовом (для обкатки нового функционала) и бэкап-сервере (для хранения резервных копий и архивов исходников). Также рекомендуется использовать системы контроля версий (Git) для возможности отката проекта к предыдущей стабильной сборке.
- Следить за доступом к сетевым службам: делегирование прав на операции требует проработки. Необходимо обеспечить несколько уровней доступа (мастер, гостевой и пр.) к сетевым службам сервера и архиву версий проекта. Список лиц, имеющих доступ к ресурсам сервера, необходимо поддерживать в актуальном состоянии — например, своевременно отключать доступ уволившимся сотрудникам. Также нужно сбрасывать пароли и учетные записи при любом подозрении на компрометацию.
- Контролировать панель администратора: рекомендуется ограничить доступ к панели внутренней, либо VPN-сетью.
- Сканировать систему на наличие уязвимостей: в этом помогут публичные рейтинги (например, OWASP Top 10), либо инструменты разработчика.
- Использовать брандмауэр приложений: автоматизируйте проверку сетевого трафика и валидации запросов к портам и службам сервера.
- Распределять трафик с помощью CDN: за счет распределенного хранения контента нагрузка на ресурсы сервера оптимизируется, что ускоряет обработку трафика и запросов.
- Вести списки контроля доступа (ACL): для персонального ограничения доступа к сетевым узлам.
- Очищать кэш DNS: для защиты от спуфинга.
- Использовать защиту от спама: один из источников уязвимостей — формы обратной связи. Злоумышленники могут направить своих ботов массово заполнять их отправлять однотипные данные на сервер. Для фильтрации такого трафика формы нужно переводить на JS-компоненты или оснащать их капчами и другими инструментами проверки;
- Использовать контратаку: вредоносный трафик можно перенаправить на сеть атакующего. В результате это не только сохранит доступность Вашего сервера, но и временно выведет злоумышленника из игры.
- Использовать распределенное хранение и бэкапирование: в случае отказа одного или нескольких серверов Вашей сети Вы сможете возобновить работу ресурса на другой машине. К этому времени там уже будет развернута функциональная копия Вашего проекта.
- Использовать аппаратные средства защиты: Impletec iCore, DefensePro и пр.
- Тщательно выбирать хостинг-провайдера: необходимо выбирать поставщика, дающего гарантии защиты от всех современных угроз. Также немаловажно иметь круглосуточную линию поддержки, панель администратора с необходимыми инструментами аналитики по конкурентным условиям.
Защита DNS
Брандмауэры и системы предотвращения вторжений на серверы сами по себе уязвимы и рассчитывать только на их надежность не стоит.
Для TCP-трафика рекомендуется использовать облачные сервисы для фильтрации подозрительных запросов. Также рекомендуется:
- Проводить мониторинг DNS: подозрительную сетевую активность можно отследить. Для этого рекомендуется использовать коммерческие DNS-решения, либо open source-продукты (например, BIND). Вы сможете в режиме реального времени отслеживать сетевой трафик и запросы к DNS. Для экономии времени также рекомендуется построит базовый профиль сетевой инфраструктуры и обновлять его по мере масштабирования бизнеса.
- Расширять аппаратные ресурсы DNS: компромиссное решение, позволяющее защитить инфраструктуру от мелкомасштабных атак. Закупка дополнительных мощностей также сопряжена и с вложениями.
- Использовать DNS Response Rate Limiting (RRL): это снижает вероятность использования Вашего DNS-сервера в атаке DDoS Reflection. RRL снижает скорость обработки повторных запросов. Этот параметр поддерживается большинством DNS;
- Строить конфигурации высокой доступности: DNS-служба разворачивается на HA-сервере, что позволяет восстановить работу сервиса на резервной машине в случае если основная окажется недоступной.
Географически распределенная сеть также может послужить средством защиты от DDoS. Существует два подхода к построению такой сети:
- Anycast: разные DNS-серверы используют общий IP-адрес, а при обработке трафика запросы направляются на ближайший сервер. Такой подход, по сравнению с описанным ниже, является более оптимальным, поскольку трафик и нагрузки распределяются между несколькими машинами. Это делает инфраструктуру более устойчивой к DDoS.
- Unicast: за каждым сервером DNS закрепляется уникальный IP-адрес. Служба DNS поддерживает таблицу серверов и соответствующих им адресов ресурса. При обработке запросов для балансировки трафика и нагрузок IP-адрес выбирается в случайном порядке. Такой подход к организации DNS-сети проще в реализации, однако при этом страдает устойчивость инфраструктуры. Злоумышленники могут инициировать цепочку направленных атак на DNS-серверы, последовательно выводя их из строя.
Что делать после DDoS-атаки
Не существует серебряной пули, которая может полностью защитить от DDoS. Поэтому важно разработать внутри компании чек-лист по отработке подобных инцидентов.
Самое главное — не принимайте поспешных решений, масштабируйте системы грамотно. Если вы запустите дополнительный сервис, но он будет без защиты, злоумышленники могут этим воспользоваться.
Также важно оперативно связаться с провайдером, чтобы обсудить способы блокирования DDoS-трафика. Предварительно лучше настроить резервное копирование, чтобы подготовиться к разным исходам.
После атаки — соберите логи по атаке, анализируйте ее и слабые места своей информационной системы, настройте файрволы, чтобы избежать повторных инцидентов. Подключите специалистов по информационной безопасности и DevOps-инженеров, которые помогут усилить инфраструктуру.
Крупнейшие DDoS-атаки в истории
Впервые серьезное нападение произошло в 2000 году. Жертвами стали серверы и сайты eBay, Amazon, CNN и Yahoo. Виновником стала самописная программа, созданная 16-летним хакером-энтузиастом. Вредоносный алгоритм под названием Sinkhole зафлудил машины жертв и обрушил их.
Некогда популярный «Пинг смерти» использовал ping-команду для флуда. Для того, чтобы вызвать DDoS сервера, размер пакета искусственно увеличивался до 65535 байт. Пик популярности такой атаки приходится на 90-е годы — тогда в серверном ПО еще не была распространена проверка размера приходящих пакетов. В результате пропускной канал забивался и ресурс становился недоступным.
В 2013 году в результате конфликта между голландским хостинг-провайдером Cyberbunker и Spamhaus (организация занимается составлением списков спамеров) первые начали атаку на последних. Первый удар на себя приняла CDN CloudFlare, далее вредоносный трафик переключился на ее провайдеров. Нагрузка на канал составила 300 Гбит/с.
При атаке использовался метод DNS amplification. Суть метода — рассылка рекурсивных запросов с поддельными обратными адресами. При длине исходящего запроса в несколько байт ответный пакет может превышать несколько килобайт. При этом, для усиления эффекта ответный пакет направляется на сервер жертвы. Такой подход позволяет добиться большей эффективности, чем при использовании ботнет, поскольку в качестве «зомби»-компьютеров выступают не устройства с ограниченным каналом, а серверы.
В 2016 году была зафиксирована атака с нагрузкой на канал в 1 Тбит/с. Тем не менее, атакуемый ресурс устоял и смог отразить атаку.
Другие типы кибератак
DDoS — не единственный способ атаки информационных систем. На практике встречаются также APT-, MITM- многовекторные и APDoS-атаки, IP-спуфинг, а также атаки нулевого дня. Каждый из типов кибератак — отдельная тема для статьи. Хотите узнать больше — следите за обновлениями в Академии Selectel.