January 11, 2021

DDoS: Теория, атаки, инструменты

ТЕОРИЯ ДЛЯ НОВИЧКОВ

DoS (от англ. Denial of Service — отказ в обслуживании) — хакерская атака на вычислительную систему с целью довести её до отказа, то есть создание таких условий, при которых легальные пользователи системы не могут получить доступ к предоставляемым системным ресурсам (серверам), либо этот доступ затруднён.

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

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

Для обнаружения распределённых сетевых атак типа «отказ в обслуживании» и защите от них необходимо классифицировать и знать принципы их работы.

В данной работе критерием для классификации рассмотрим объект, на который нацелена атака. В таком случае, получается четыре основных класса атак, соответствующих уровням .

Модель OSI

Чуть-чуть об уровнях:

Канальный уровень (L2) — атаки направлены на исчерпание ёмкости сетевого канала. В следствие этого лишается доступ сервера к внешней сети. Для реализации используются объёмные потоки трафика. На данным момент измеряются в Гб/с. Во время этой атаки обрабатывать трафик необходимо на стороне провайдера, дата-центра. С помощью BGP Flow Spec фильтруется часть атак по сигнатурам пакета. Amplification атаки отсекаются по порту.

Сетевой уровень (L3) — атаки направлены на нарушение работы элементов сетевой инфраструктуры. Необходим ручной анализ сетевой инфраструктуры. Если своей автономной системы нет, то борьба с атаками данного класса ведется провайдером или дата-центром. Желательно сотрудничество с ними.

Транспортный уровень (L4) — атаки направлены на эксплуатацию слабых мест TCP-стека. В TCP протоколе используется таблица открытых соединений. Атаки именно на неё составляют этот класс. Необходим постоянный анализ поведения TCP-стека, TCP-клиентов, TCP-пакетов. Эвристический анализ.

Прикладной уровень (L7) — атаки направленны на нарушение работы Web-приложения. Атаки этого класса характеризуются большим разнообразием. Исчерпывают ресурсы сервера. Необходим поведенческий и корреляционный анализ, мониторинг ресурсов сервера. Необходима оптимальная настройка сервера под решаемые им задачи. Полностью автоматизировать борьбу с данным классом атак почти невозможно.

1.Медленные атаки:

1.1 SlowLoris

Уровень атаки: транспортный уровень L4

Описание и принцип работы:

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

Дело в том, что веб-серверы Apache 1.x, Apache 2.x, dhttpd, GoAhead WebServer и Squid поддерживают ограниченное число одновременно открытых подключений. Но Slowloris не представляет угрозы для серверов IIS, lighttpd, NGINX. Они имеют эффективные механизмы распределения нагрузки и используют worker pool — «пулы рабочих потоков», которые позволяют удерживать любое количество открытых соединений при наличии свободных ресурсов.

1.2 Slow HTTP POST/GET

Уровень атаки: транспортный уровень . L4

Описание и принцип работы:

Атака основана на уязвимости в протоколе HTTP. Slow HTTP POST атака отправляет POST заголовок с полем «Content-Length». Веб-сервер понимает, какой объём данных он должен получить. После этого с очень низкой скоростью передаётся тело POST сообщения. Это позволяет задействовать ресурсы сервера длительное время, и в последствии помешать обработке других запросов. Атака опасна для веб-серверов Microsoft IIS и Apache и NGINX со стандартными настройками в рамках протоколов HTTP, HTTPS, подключений SSL, VPN. Также атака может быть настроена для работы с SMTP и DNS-серверами.

Данный тип атаки на отказ в обслуживании, можно организовать через proxy. Трафик данной атаки схож с легитимным трафиком.

1.3 Sockstress

Уровень атаки: транспортный уровень (L4).

Описание и принцип работы:

Атака заключается в следующем. Если на веб-сервере есть объект, размер которого больше send buffer, выделенного ядром для соединения. То можно заставить ядро не принимать данные, а сервер будет пробовать отправить кусок данных, занимая стек соединений, ресурсы процессора и память. При большом количество подобных соединений TCP-стек заполниться и не будет открывать новые соединения.

Примеры:

Отправить в пакете размер окна равный нулю, то есть нет места для получения данных. Скрипт Sockstress отправляет такие пакеты и считает время, когда их отправлять, чтобы не загрузить persist timer.

Создать сокет с малым объёмом receive buffer на клиенте. Отправлять HTTP-запрос на объект сайта больший по размеру, чем буфер. И периодически считываем пару байт из receive buffer. Сервер будет пытаться отправлять данные и занимать ресурсы.

2. Атака произвольными пакетами:

2.1 HTTP-Flood

Уровень атаки: канальный уровень (L2), прикладной уровень (L7).

Описание и принцип работы:

В основе этой атаки лежит механизм отправления максимального числа HTTP запросов на 80-й порт веб-сервера. Целью атаки может быть корень сервера или ресурсоёмкий элемент. В результате данной атаки возможно прекращение предоставления услуг по HTTP, и затруднен доступ легитимных пользователей к сайту. Распознать атаку можно с помощью выявления быстрого роста количества запросов к некоторым элементам веб-сервера и логов сервера.

2.2 UDP-Flood

Уровень атаки: канальный уровень (L2), прикладной уровень (L7).

Описание и принцип работы:

UDP flood атака основана на отправке большого количества UDP-пакетов на некоторые порты сервера. Он должен определить приложение для каждого полученного пакета, удостоверится в его неактивности и отправить в ответ ICPM-сообщение «недоступен». В итоге вырастут затрачиваемые ресурсы атакуемого сервера и полоса пропускания заполнится UDP-пакетами. В UDP протоколе нет механизма проверки отправителя пакетов, тем самым злоумышленник может подменить IP-адреса и обеспечить анонимность.

2.3 SYN-Flood

Уровень атаки: канальный уровень (L2), транспортный уровень (L4).

Описание и принцип работы:

SYN Flood атака использует механизм рукопожатия в протоколе TCP. Работает следующим образом. Посылается пакет с флагом SYN на атакуемый сервер. Он вынужден отправить в ответ пакеты с флагами SYN+ACK. Злоумышленник игнорирует SYN+ACK пакеты сервера и не высылает в ответ пакет ACK. Либо подделывает IP-адрес SYN пакета, чтобы ответный SYN+ACK отправляется на некорректный адрес. Цель данной атаки — заполнение TCP стека множеством полуоткрытых соединений, в следствие чего сервер перестают устанавливать соединения с новыми клиентами. Запросы на соединение полученные сервером хранятся в стеке с определенным размером, который зависит от операционной системы. Они находятся в стеке, пока сервер не получит информацию об установленном соединении от клиента.

2.4 ICMP-Flood

Уровень атаки: канальный уровень (L2).

Описание и принцип работы:

Данный тип флуда направлен на сетевое оборудование. Принцип данной атаки заключается в том, что ICMP-пакет при небольшом размере самого запроса требует от устройств значительно большего объёма работы. То есть, при отправлении сравнительно небольшого объёма ICMP запросов возникает перегрузка сетевого оборудования и значительная часть легитимных запросов теряется. Злоумышленник, меняет IP-адрес источника, отправляет ICMP Echo Request пакет к определённым компьютерам, входящим в бот-нет. Они отвечают ICMP Echo Reply пакетом, посылая его на изменённый IP-адрес. Для увеличения мощности атаки используют локальные сети (LAN) с включенной опцией направленной широковещательной рассылки (directed broadcast).

3.Атака с помощью SSL

Уровень атаки: прикладной уровень (L7).

Описание и принцип работы:

Secure Sockets Layer (SSL) — это протокол безопасности для защиты целостности сети связи и передачи данных. SSL может зашифровать подключение к сети на транспортном уровне. Процессы шифрования протокола SSL, расшифровки и обмена ключами потребляют огромное количество системных ресурсов. Существует два типа атака основанных на протоколе SSL.

Первый тип эксплуатирует механизм рукопожатия, который исчерпывает ресурсы атакуемого сервера. Злоумышленник посылает некорректные SSL данные на сервер, на обработку которых затрачивается большое количество вычислительной мощности.

Второй тип использует функцию повторного подтверждения соединения — SSL Renegotiation. Установка безопасного соединения и повторное подтверждение SSL затрачивают в разы больше вычислительной мощности на сервере, чем на стороне клиента. Благодаря этому возможно осуществление атаки и истощение ресурсов атакуемого сервера. Как правило, HTTPS расшифровывается глубоко внутри организационной сети, где серверы и модули более уязвимы к вредоносному трафику. Также злоумышленники используют этот протокол для обхода механизмов безопасности. Таким образом, возможно туннелирование других атак.

4.Атака почтового сервера c SMTP-Flood

Уровень атаки: прикладной уровень (L7).

Описание и принцип работы:

В атаках этого типа злоумышленник пытается установить соединение с почтовым сервером и отправляет произвольные письма на сгенерированные случайным образом адреса, либо бездействует до истечения тайм-аута, удерживая соединение открытым. Каждое SMTP соединение утилизирует часть ресурсов сервера, тем самым атакующий пытается вызвать отказ в обслуживании.

Технология заключается в том, что когда мы пишем e-mail получателя несуществующий, то SMTP server оповещает нас с помощью e-mail(отправителя), что письмо не дойдёт. Мы посылаем на SMTP server очень много запросов (пишем письма) и указываем все e-mail не валидные, а отправителя(объект атаки). И к нему будут приходить уведомления, что письмо не дошло. С нескольких SMTP server будет отправляться трафик на объект атаки.

5.Некорректные пакеты/фрагменты:

5.1 UDP fragment flood

Уровень атаки: прикладной уровень (L7).

Описание и принцип работы:

Данный тип атаки основан на отправки UDP датаграмм, которые случайным образом ссылаются на датаграммы отсутствующие в потоке. Это приводит к увеличению потребления памяти на атакуемом сервере. При атаке UDP Fragment Flood, злоумышленники посылают UDP пакеты большого размера, для истощения пропускной способности канала.

5.2 Некорректные IP-фрагменты

Уровень атаки: прикладной уровень (L7).

Описание и принцип работы:

Данный тип атак эксплуатирует уязвимости в поддержке фрагментации пакетов протокола IP. Одна из атак этого типа — это пересечение IP-фрагментов. Она реализуется с помощью уязвимости операционной системы, которая заключается в сборке фрагментированных IP- пакетов. В процессе сборки образуется цикл по принятым фрагментам. Затем из них копируется информативная часть и передаётся на IP уровень. Разработчики предусмотрели проверку на чрезмерный объем копируемой информации, но не ввели проверку на копирование фрагмента отрицательной длины. Копирование блока информации отрицательной длины равносильно копированию очень большого блока информации. Это приводит к затиранию большого участка памяти и к нарушению работы системы. Существует две программы с небольшими отличиями в константах механизма, который осуществляет пересечение IP-фрагментов: newtear и teardrop. Они отправляют пакеты с заданного IP-адреса на любой порт, независимо, открыт он или закрыт. Еще один вариант данной атаки - bonk. После сборки фрагментов в пакете остаются пустые места. Это приводит к сбою ядра операционной системы и нарушению работы электронных вычислительных средств. Данные уязвимости присутствуют в старых версиях ОС(операционных систем) Windows и Linux. На сегодняшний день большинство сетевых ОС защищены от сбоев в работе, вызванных данной атакой.

5.3 Неверные значения в заголовках пакетов

Уровень атаки: прикладной уровень (L7).

Описание и принцип работы:

Данные атаки нацелены на определённые приложения и операционные системы, которые неправильно обрабатывают некорректные значения в заголовках пакетов. Пример такой атаки — Land attack. В ходе неё злоумышленник устанавливает в пакете одинаковый IP-адрес для источника и приёмника. Это приводит к зацикливанию установки соединения сервера с самим собой.

6.Amplification атаки (атаки N-усиления)

Уровень атаки: канальный уровень (L2).

Описание и принцип работы:

В основе данных атак лежит отсутствие проверки отправителя в UDP протоколе. Ответ посылается адресату, указанному в заголовках пакета. Злоумышленник может подменить свой IP-адрес на IP-адрес атакуемого сервера в заголовках отправляемых пакетов. Также суть атаки заключается в многократном превышении объёма ответа по сравнению с запросом. Таким образом, злоумышленник может анонимно организовывать атаки с огромным объёмом трафика. Службы, работающие по UDP протоколу: DNS, NTP, SNMP, rsyslog и многие другие, могут использоваться для реализации атаки. Дело в том, что сетевые устройства с этими службами встречаются в сети повсеместно. Службы включены по умолчанию и часто некорректно настроены.

В таблице 1 представлены типы amplification атак проведённых в ходе исследования. В ней отображается по какому протоколу осуществляются атаки, коэффициент их усиления и уязвимая команда, используемая для реализации атаки.

6.1 NTP amplification атака

Уровень атаки: канальный уровень (L2).

Описание и принцип работы:

Злоумышленник отправляет запрос monlist с IP-адресом атакуемого сервера к NTP-серверу. Ответ monlist включает в себя список 600 последних клиентов ntpd. Сущность амплификации заключается в том, что нарушитель отправляет небольшой запрос к уязвимому серверу и с него на атакуемый сервер отправляется большой поток UDP трафика. Уязвимый NTP-сервер является невольным промежуточным звеном атаки. Ntpd до версии 4.2.7p26 подвержены атаке.

6.2 DNS Amplification атака

Уровень атаки: канальный уровень (L2).

Описание и принцип работы:

Атака основана на том, что нарушитель отправляет запрос уязвимому DNS-серверу с IP-адресом атакуемого сервера. DNS-сервер отправляет ответ, размер которого во много раз превышает запрос, жертве. Таким образом, исчерпывается канальная ёмкость атакуемого сервера.

Можно выделить ключевые моменты атаки:

  1. Эффект отражения: подмена IP-адреса позволяет перенаправить ответы от всех DNS-серверов на атакуемый сервер.
  2. Коэффициент усиления атаки: (amplification factor): он может принимать значения от 28 до 92. То есть на 1 байт запроса — совокупность DNS-серверов отправит 28-92 байт ответа. Это обеспечивает кратное увеличение объёма трафика.
  3. Проблема «open resolver»: это неправильно настроенный или старой версии DNS-сервер. Он разрешает получать запросы из сторонних сетей, выполняя рекурсивные запросы для них, и отправлять ответы без необходимых предварительных проверок.

6.3 HTTP flood с помощью сервисов

Уровень атаки: прикладной уровень (L7).

Описание и принцип работы:

WordPress сайт с включенным Pingback, можно использовать для проведения HTTP flood атаки на другие сайты. Они отправляют множество запросов к атакуемому сайту со случайными параметрами («?a=a» и др.), с помощью которых обходится кэширование страницы. Эта операция быстро расходует ресурсы атакуемого сервера и нарушает его работу. Злоумышленник может использовать большое количество обычных WordPress сайтов для DDoS атаки и не бояться быть обнаруженным с помощью Pingback запросу к файлу XML-RPC. Google использует FeedFetcher для кэширования любого контента в Google Spreadsheet, вставленного через формулу

=image(«link»).

Если в клетку таблицы вставить формулу

=image(«http://target/file.pdf»),

то Google отправит FeedFetcher скачать этот PDF файл и закэшировать для дальнейшего отображения в таблице. Но если добавлять случайный параметр к URL картинке (от «?r=1» до «?r=1000»), FeedFetcher будет скачивать её каждый раз заново. Это приведёт к исчерпанию лимита трафика атакуемого сервера. Злоумышленник может запустить массированную HTTP GET flood атаку на веб-сервер, используя браузер с одной открытой вкладкой.

Некоторые DoS & DDoS инструменты

1. Встроенные тулзы Kali Linux

В сети доступно сотни программ для выполнения ддос атаки. Первое место где мы можем найти подобные инструменты это хакерский дистрибутив Kali Linux . Открыв в нем следующий путь:

kali > cd /usr/share/metasplot-framework/auxiliary/dos

и просмотрев содержимое директории мы увидим что Metasploit имеет множество инструментов для организации DDoS атак.

kali linux ddos tools

Также мы найдем сотни DDOS программ в Exploit Database этого дистрибутива и на сайте Exploit-DB.com.

kali linux ddos tools

Просмотреть листинг доступных инструментов для DDOS атак в KALI вы можете выполнив команду:

kali > /usr/share/exploitdb/platforms/windows/dos

Данная команда показывает базу данных эксплоитов для атаки Windows систем.

Для просмотра доступных инструментов DDoS атаки Linux вводим команду:

/usr/share/exploitdb/platforms/Linux/dos

2. LOIC

The Low Orbit Ion Cannon (LOIC) или Низко орбитальная ионная пушка. Возможно самая популярная DDOS программа. Она может рассылать массовые запросы по протоколам ICMP, UDP тем самым забивая канал к серверу жертвы. Самая известная атака с помощью LOIC была совершена группой Anonymous в 2009 году и направлена против PayPal, Visa, MasterCard в отместку за отключение WikiLeals от системы сбора пожертвований.

Low Orbit Ion Cannon

Атаки, организованые с помощью LOIC могут утилизироваться с помощью блокировки UDP и ICMP пакетов на сетевом оборудовании интернет провайдеров. Вы можете скачать саму программу LOIC бесплатно на сайте SourceForge. Этот инструмент на базе Windows и работа с ним очень проста, указываете сайты жертвы и нажимаете всего одну кнопку.

2. HOIC

HOIC был разработан в ходе операции Payback by Praetox той же командой что создала LOIC. Ключевое отличие в том, что HOIC использует HTTP протокол и с его помощью посылает поток рандомизированных HTTP GET и POST запросов. Он способен одновременно вести атаку на 256 доменов. Вы можете скачать его с SourceForge.

HOIC

3. HULK

HTTP Unbearable Load King (король высоких нагрузок) или HULK, еще одна программа способная уронить ваш сервер. В этой системе используются различные техники обхода защиты что добавляет проблем системным администраторам.

HTTP Unbearable Load King

4. RUDY

R-U-Dead-, или RUDY, использует другой подход к исполнению DDoS атак на интернет сайты. Программа дает возможность выбрать форму на целевом сайте и отправлять в эту форму произволные данные с помощью POST запросов.

R-U-Dead-Yet

5. OWASP Switchblade

Open Web Application Security Project (OWASP) и ProactiveRISK разработали инсрумент Switchblade DoS tool для тестирования WEB приложений на устойчивость к ДДОС атакам.Он имеет три режима работы: 1. SSL Half-Open, 2. HTTP Post, и 3. Slowloris. Скачать для ознакомления можно с сайта OWASP.

OWASP Switchblade

5. GoldenEye HTTP DoS Tool

GoldenEye это простой DoS инструмент, который нагружает удаленный HTTP server запросами и пытается занять все доступные соединения. Это прекрассный инструмент для нагрузочного тестирования Web сайта на этапе внедрения, но, по словам специалистов , абсолютно бесполезный в реальных условиях. И может быть зафильтрован с помощью простого скрипта на сервере. Скачать исходные коды и саму программу можно с GitGub .antiddoz.biz

6. DDOSIM – Layer 7 DDoS эмулятор

Этот инструмент создан Storm Security симулирует DDoS атаку с множества “зомби” компьютеров с случайных IP адресов. Он создает TCP соединения (SYN-SYN/ACK-ACK). Программа работает на application layer (layer 7), что достаточно не обычно. Она также способна симулировать различные типы флуда по протоколам SMTP и TCP flood на различные порты. Программа будет очень полезна для нагрузочного тестирования сервера. Скачать можно с сайта SourgeForce.

Сколько стоит заказать DDoS на черном рынке?

Атака типа Distributed Denial of Service (DDoS) является одним из самых популярных инструментов в арсенале киберпреступников. Мотивом для DDoS-атаки может быть что угодно — от кибер-хулиганства до вымогательства. Известны случаи, когда преступные группы угрожали своим жертвам DDoS-атакой, если те не заплатят им 5 биткоинов. Часто DDoS-атаку используют для того, чтобы отвлечь ИТ-персонал, пока происходит другое киберпреступление, например, кража данных или внедрение вредоносного ПО.

DDoS как услуга

С предложением характеристик своего ботнета, организаторы найденных нами DDoS-сервисов предлагают своим клиентам тарифную сетку, в которой покупатель оплачивает посекундную аренду мощностей ботнета. Так, например, 300 секунд DDoS-атаки при помощи ботнета, суммарная пропускная способность канала которого составляет 125 Гбайт в секунду, обойдется заказчику в 5 евро. При этом все остальные характеристики (мощность и сценарии) были одинаковыми для всех тарифов.

Сколько стоит DDoS устроить

В свою очередь, 10800 секунд DDoS-атаки обойдутся клиенту в $60 или примерно $20/час атаки, особенности которой (сценарий атаки и используемые вычислительные мощности) злодеи не всегда указывали на своем ресурсе для опытных клиентов. Видимо, не все злоумышленники считают уместным раскрывать внутреннюю кухню своего ботнета (а вполне возможно, не все владельцы ботнетов, в силу своей некомпетентности, понимают его технические характеристики). В частности, злодеи не раскрывают тип ботов, входящих в ботнет для того.

За указанную цену преступники обещают своим клиентам реализовать довольно тривиальные сценарии:

  • SYN-flood;
  • UDP-flood;
  • NTP-amplification;
  • Multi-vector amplification (несколько amplification-сценариев одновременно).
Сколько стоит DDoS устроить

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

Сколько стоит DDoS устроить

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

Сколько стоит DDoS устроить

Информация, найденная на русскоязычном сайте, целиком посвященном сервису DDoS-атак

Например, злоумышленники предлагают цену от $400 в сутки за сайт/сервер, пользующийся услугами защиты от DDoS, то есть в 4 раза больше, чем за сайт без защиты.

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

Сколько стоит DDoS устроить

Любопытно, что некоторые преступники не брезгуют наряду со своими сервисами DDoS предоставлять и защиту от DDoS-атак.

Сколько стоит DDoS устрои