Прошло 27 лет с первой DDoS-атаки. С тех пор эта проблема не только не потеряла своей актуальности, но стала еще опаснее. Распределенные атаки типа «отказ в обслуживании» трансформировались — теперь они могут длиться часами и днями, а также стали более агрессивны и эффективны. Чтобы правильно выстроить надежную защиту от DDoS-атак, для начала нужно разобраться в их типах и особенностях.
Основные типы DDoS-атак
Большинство DDoS-атак имеют смешанный характер. Мы выделили три типа классификации атак, которые помогут понять, как действуют злоумышленники и на чем строится алгоритм нападения:
- по модели OSI;
- по протоколам;
- по механизму воздействия.
Рассмотрим каждый отдельный тип подробнее.
Классификация DDoS-атак по протоколам
Чаще всего DDoS-атаки совершают на три большие группы сетевых протоколов:
- UDP;
- TCP;
- прочие.
К категории «прочие» относятся атаки на протоколы ICMP, GRE, IPIP, ESP, AH, SCTP, OSPF, SWIPE, TLSP, Compaq_PEE и остальные.
Далее рассмотрим несколько примеров самых распространенных DDoS-атак по протоколам.
IP Null атака
Согласно техническим стандартам всемирной сети, заголовок IP-пакета должен содержать сведения об используемом протоколе транспортного уровня в специальном поле — «Protocol». Злоумышленники устанавливают значение этого поля равным нулю. Такой прием позволяет отправлять пакеты в большом количестве, не беспокоясь о том, что их задержат фаерволы или маршрутизаторы. Системные ресурсы жертвы сконцентрированы на постоянном анализе входящего трафика, и в конечном итоге сервер выходит из строя.
SYN-флуд
Этот вид атаки строится на алгоритме трехэтапного рукопожатия TCP. Злоумышленник с большой скоростью отправляет запросы на соединение с сервером, содержащие поддельный IP-адрес источника. Постепенно SYN-флуд занимает всю память таблицы соединений.
UDP-флуд
При атаке этого типа сервер-жертва получает большое количество UDP-пакетов от различных IP-адресов. Фальсифицированные UDP-пакеты переполняют сетевое оборудование и провоцируют перегрузку интерфейсов путем утилизации всей полосы пропускания.
Флуд — большое количество неправильно сформированных или бессмысленных сообщений. Цель флуда — создать мощный поток запросов, который займет собой всю выделенную полосу атакуемого ресурса.
Ping of Death
Атака направлена на дестабилизацию или выведение из строя целевого компьютера. Злоумышленник непрерывно генерирует неправильно сформированные или слишком большие пакеты с помощью простой команды ping. Если атакуемая система работает на базе стандартного протокола IPv4, то суммарный объем получаемого пакета не может превышать 65 535 байт. Когда приходит пакет, по объему превышающий эти показатели, возникают сбои из-за переполнения памяти.
Для систем, которые работают на обновленной версии протокола — IPv6, хакеры нашли новые способы вредительства. Они отправляют фрагменты искаженных пакетов. Система-жертва пытается их собрать, но при повторной сборке размер пакета получается слишком большим, что ведет к переполнению памяти и сбою работы.
Атака медленными сессиями
Хакер устанавливает TCP-сессию между сервером-жертвой и ботом. Когда сессия активна, ее удерживают открытой с помощью пакета, который оставляют без ответа, что начинает расходовать системные ресурсы. В результате сервер-жертва «отдает» все свободные резервы на обслуживание поддельных сессий с ботами.
Классификация относительно модели OSI
Сетевая модель стека сетевых протоколов, которая описывает работу Интернета, называется — OSI. Она состоит из 7 уровней: физического, канального, сетевого, транспортного, сеансового, уровня представления и прикладного (или уровня приложений).
Каждый протокол сети, по которому передаются данные, относится к определенному уровню. Далее рассмотрим типы DDoS-атак, распределенные по модели OSI.
Низкоуровневые атаки
1-й уровень — физический
Канал работает с данными типа «биты» и обеспечивает передачу необработанных двоичных данных между машинами. Использует протоколы Bluetooth, USB, ИК-порт, а также концентраторы, розетки и патч-панели.
Пример атаки: на данном уровне DoS или DDoS невозможна. Первому уровню могут навредить физические разрушения или любые другие преграды в работе сети. Искусственно созданные сбои ведут к полной непригодности оборудования.
2-й уровень — канальный
Канальный уровень отвечает за обмен данными между узлами внутри локальной сети. Данные оформляются в специальные блоки — кадры — и передаются на физический уровень. Еще одна функция канального уровня — присвоение уникальных идентификаторов сетевых адаптеров — MAC-адресов.
Пример атаки: самая распространенная — MAC-флуд. Сетевые коммутаторы нагружаются пакетами данных, чтобы вывести из строя все порты соединения.
3-й уровень — сетевой
На этом уровне начинается взаимодействие маршрутизаторов и коммутаторов, расположенных в разных сетях. Маршрутизация строится на преобразовании MAC-адресов в сетевые адреса. Главная задача данного уровня — построить наиболее оптимальный путь для передачи данных между устройствами.
Пример атаки: злоумышленники создают ICMP-флуд, чтобы перегрузить ICMP-сообщениями целевую сеть. Эти действия направлены на снижение пропускной способности и ограничение числа запросов, которое возможно обработать по ICMP-протоколу.
4-й уровень — транспортный
Он использует протоколы UDP и TCP, а также обрабатывает и транспортирует пакеты данных между узлами связи. Четвертый уровень контролирует поток информации и выявляет ошибки. В случае их обнаружения отправляет данные повторно.
Пример атаки: хакеры создают условия, при которых превышаются пороговые значения по ширине канала и количеству доступных подключений. Самые распространенные типы DDoS-атак — Smurf и SYN-флуд.
Высокоуровневые атаки
5-й уровень — сеансовый
Пятый уровень управляет взаимодействием между приложениями, а также устанавливает и завершает соединение, синхронизирует задачи операционной системы.
Пример атаки: атакующий использует слабые места программного обеспечения через протокол Telnet, что может привести к потере доступа над сервером у администратора.
6-й уровень — представления
Уровень кодирует/декодирует данные и адаптирует их для человека или машины, в понятном им виде. Сюда входят видеоданные, аудиоданные, изображения и текст. Между 6 и 7 уровнем модели OSI находится SSL-протокол. Он обеспечивает клиенту безопасное соединение с сервером и предоставляет возможность взаимной проверки подлинности.
Пример атаки: SSL-флуд измененными пакетами — злоумышленники генерируют искаженные SSL-запросы для атак на сервер жертвы. Действия тормозят ресурсы, так как проверка шифрованных SSL-пакетов занимает много времени.
7-й уровень — прикладной или уровень приложений
Прикладной уровень работает уже целиком для пользователя и предоставляет ему данные в понятном для него виде.
Пример атаки: хакеры с помощью вредоносных программ создают большое количество запросов — HTTP-флуд: на подключение, на ввод логинов, на заказ товара, загрузку видео и т.д. В тоже время, легитимные пользователи не могут попасть на сайт, так как он перегружен мусорными запросами.
Классификация DDoS-атак по механизму действия
В этом типе классификаций мы выделим 3 группы DDoS-атак разного механизма действия:
- Атаки на основе флуда.
- Атаки, использующие уязвимости стека сетевых протоколов.
- Атаки на уровень приложений.
Первая группа — это атаки, направленные на переполнение канала связи, иными словами, различные типы флуда.
DNS-амплификация
У публичного DNS-сервера запрашивают данные о домене и направляют его ответ на атакуемый сервер. Запрос формируется таким образом, чтобы в ответ вернулось как можно больше данных.
Фрагментированный UDP-флуд
Атакующий использует пакеты максимально допустимого размера, чтобы заполнить канал минимальным количеством пакетов. Фрагменты пакетов являются фальсифицированными и сервер-жертва тратит все ресурсы для того, чтобы восстанавливать несуществующие пакеты из фальшивых фрагментов.
ICMP-флуд
На сервер-жертву посылается большое количество поддельных ICMP-пакетов с широкого диапазона IP-адресов. Цель злоумышленника — заполнение канала сервера-жертвы потоком поддельных запросов.
NTP-амплификация
Атакующий многократно отправляет запрос monlist на NTP-сервер, одновременно подменяя свой IP-адрес на адрес сервера-жертвы. Ответ monlist может содержать список до 600 последних клиентов. Цель атаки — небольшим запросом отправить большой поток UDP-трафика на сервер-жертву.
NTP-флуд
Хакер генерирует большое количество поддельных NTP-запросов с широкого диапазона IP-адресов. NTP-сервер пытается обработать все запросы, тем самым тратя системные и сетевые ресурсы.
Фрагментированный ACK-флуд
Используются пакеты максимально допустимого размера для заполнения полосы пропускания канала, при небольшом количестве передаваемых пакетов.
Ping-флуд
Разновидность ICMP-флуд, нацеленная на выведение из строя сервера, с помощью утилиты ping.
UDP-флуд с помощью ботнета
Алгоритм атаки схож с обычным UDP-флудом, за исключением одного — пакеты генерируются ботами. Системные ресурсы заполняют нецелевым трафиком и они выходят из строя.
VoIP-флуд
На сервер-жертву отправляют большое количество поддельных VoIP- пакетов с широкого диапазона IP-адресов. Сервер тратит все ресурсы, чтобы обработать как поддельные, так и легитимные запросы.
Флуд медиа-данными
Злоумышленник отправляет большое количество поддельных пакетов с видео- или аудио-данными на сервер-жертву. Сетевое оборудование вынуждено тратить вычислительные ресурсы на их обработку.
Атака широковещательными UDP-пакетами
Кибератака строится на отправке UDP-пакетов с подмененным IP-адресом, в расчете на то, что каждый из этих пакетов будет отправлен каждому из клиентов этой сети.
Фрагментированный ICMP-флуд
На сервер-жертву направляется поток фрагментированных ICMP-пакетов максимального размера. Полоса забивается мусорным трафиком, и возникает опасность исчерпания вычислительных ресурсов.
DNS-флуд
На атакуемый DNS-сервер направляется масса DNS-запросов с широкого диапазона IP-адресов. Сервер-жертва не может определить, какой из пакетов пришел от легитимного пользователя, а какой — нет, и вынужден отвечать на все запросы.
Вторая группа — это атаки, использующие уязвимости стека сетевых протоколов:
Атаки с модификацией поля TOS
Атакующий создает иллюзию перегруженности сети, и сервер самостоятельно ограничивает пропускную способность для подключений. Для этого хакеры используют поля TOS и ECN в IP-пакетах.
ACK-флуд
Злоумышленники отправляют на сервер-жертву фальсифицированные ACK-пакеты, не принадлежащие ни одной из сессий в списке соединений сервера. Атакуемый сервер не может определить принадлежность поддельных пакетов и выходит из строя.
RST, FIN-флуд
Сервер-жертва получает поддельные RST- или FIN-пакеты, не имеющие отношения ни к одной из сессий в базе данных сервера.
Атака поддельными TCP-сессиями с несколькими SYN-ACK
Хакер генерирует поддельные сессии несколькими SYN- и ACК-пакетами. Это позволяет обойти механизмы защиты и создать трафик, похожий на легитимный.
Атака с помощью перенаправления трафика высоконагруженных сервисов
Алгоритм заключается в перенаправлении трафика легитимных пользователей высоконагруженных приложений на сервер-жертву. Это ведет к сбою в работе из-за установки большого количества соединений.
Атака поддельными TCP-сессиями с несколькими ACK
Этот вариант атаки поддельной сессией выполняется несколькими SYN- и несколькими ACK-пакетами совместно с одним или более RST- или FIN-пакетами.
Третья группа — это DDoS-атаки на уровень приложений (L7):
HTTP-флуд
Злоумышленник генерирует большое количество запросов, направленных на сервер-жертву, чтобы вынудить его выделять как можно больше ресурсов для обработки вредоносного трафика.
Атака с целью отказа приложения
Специфичный вид атак, который нацелен на выявление уязвимостей в неоптимизированном сайте или приложении. С помощью SQL-инъекций хакер провоцирует зацикливание обращений и отказ всего сервера.
HTTP-флуд одиночными запросами
В отличие от обычного флуда, где злоумышленник атакует сервер-жертву потоком отдельных запросов, этот тип атаки предполагает отправку одного большого пакета, внутри которого одновременно передается 500-600 запросов.
Атака фрагментированными HTTP-пакетами
Алгоритм основан на отправке в адрес цели небольших
фрагментов данных, которые невозможно собрать в единый объект. При такой атаке устанавливается корректное HTTP-соединение с веб-сервером. Далее легитимные HTTP-пакеты разделяются на маленькие фрагменты, и их передают настолько медленно, насколько это позволяет тайм-аут сервера. Обходя таким образом срабатывание механизмов защиты, атакующий незаметно приводит веб-сервер к отказу с помощью вредоносных ботов.
HTTP-флуд одиночными сессиями
Атакующий превышает лимит сессий на стороне жертвы, чтобы беспрепятственно в рамках каждой HTTP-сессии отправлять множество запросов. Цель злоумышленника — заставить сервер выделить как можно больше ресурсов для обслуживания атаки.
Другие типы кибератак
Некоторые киберугрозы не подпадают под чистую классификацию, поэтому мы выделили их в отдельный блок.
АРТ-атака
Цель злоумышленника — найти на устройстве-жертве секретную или любую ценную информацию, которую можно использовать в своих целях. Хакер незаметно проникает в компьютерную сеть и изучает ее длительное время, отслеживает действия пользователей и анализирует перемещение данных. Чтобы получить доступ к нужной системе, хакеры эксплуатируют уязвимости, используют социальную инженерию и другие техники обхода защиты.
Многовекторная атака
Этот вид атак достаточно сложен в исполнении. При многовекторной DDoS-атаке хакер использует сразу несколько точек нападения и инструментов для вывода из строя целевой системы.
Атака нулевого дня
Злоумышленник исследует новые и ранее неизвестные уязвимости в программном обеспечении, а затем использует их против выбранной цели. Эта кибератака опасна тем, что с момента ее обнаружения до полного устранения и смягчения последствий может пройти много часов. Тем временем злоумышленник может получить несанкционированный доступ к информации или полностью заблокировать веб-ресурс. На текущий момент не существует универсальной защиты от атаки нулевого дня, и без помощи специалистов справиться с ней практически невозможно.
IP-спуфинг
В DDoS спуфинг (фальсификация данных) используется как механизм усиления кибератаки. Хакеры выдают себя за надежные источники, чтобы получить доступ к конфиденциальной информации. Подмена происходит в изменении адреса отправителя, чтобы скрыть настоящий адрес атакующего.
APDoS-атака
APDoS реализует 5-8 векторов атак одновременно. Злоумышленник использует «слепые зоны» атакуемой организации и нападает сразу на несколько уровней сетей.
MITM-атака
Злоумышленник перехватывает трафик и заменяет связь между двумя сторонами, которые считают, что общаются друг с другом без третьих лиц. Атаки особенно распространены в общедоступных сетях Wi-Fi. Например, жертва думает, что работает напрямую с сайтом, в то время как злоумышленник перехватывает все данные, которые были введены: пароль, логин и другие.
Широкое разнообразие DDoS-атак и их массовое применение только подтверждает важность изучения способов защиты от них. Чтобы обеспечить стабильную работу веб-ресурса, мы рекомендуем иметь подробный план реагирования на киберугрозы и постоянно работать над улучшением сетевой архитектуры.
Выбирайте надежного провайдера защиты, который обладает обширным спектром инструментов по борьбе с любым типом DDoS-атак.