Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Начало статьи: "Безопасная эксплуатация Apache, часть 8: атаки DoS и DDoS"

Как проводятся DDoS-атаки

Перед проведением DDoS-атаки взломщикам необходимо тщательно подготовиться. Для начала они формируют армию из зомби-узлов, отыскивая системы с уязвимостями, осуществляя их взлом (обычно с помощью инструмента Metasploit) и устанавливая набор программных инструментов для реализации атак. После этого взломщик устанавливает соединения с этими системами, таким образом включая их в процесс координации.

Эти действия реализуются или с помощью архитектуры управления зомби-узлами, или с помощью канала для команд и контроля (C&C) на основе IRC. Как только сеть для проведения DDoS-атак построена, она может быть использована по назначению против различных целей.

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

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

Распространение вредоносного кода на скомпрометированные системы осуществляется тремя методами. Они описаны ниже.

Распространение из централизованного источника

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

Как и другие механизмы передачи данных, данный механизм использует протоколы HTTP, FTP и RPC (удаленный вызов процедур). С точки зрения взломщика такие централизованные источники могут быть достаточно просто идентифицированы и заблокированы специалистами в области безопасности; по этой причине в настоящее время этот метод не находит широкого применения.

Метод распространения из централизованного источника
Рисунок 3: Метод распространения из централизованного источника

Распространение методом обратной связи

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

Это копирование данных может быть реализовано с помощью простых программ, принимающих соединения и передающих содержимое файла или с помощью установленных в системе взломщика полнофункциональных веб-серверов, работающих по протоколу TFTP (Trivial File Transfer Protocol).

Распространение методом обратной связи
Рисунок 4: Распространение методом обратной связи

Автономное распространение

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

Метод автономного распространения
Рисунок 5: Метод автономного распространения

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

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

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

Инструменты для проведения атак

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

Trinoo

Этот инструмент использует архитектуру обработчиков и агентов, в рамках которой взломщик отправляет команды обработчику (первой скомпрометированной системе) с использованием протокола TCP, а обработчики и агенты производят обмен данными по протоколу UDP. И обработчики и агенты используют пароли, пытаясь предотвратить управление другим взломщиком. Trinoo генерирует UDP-пакеты заданного размера для случайных номеров портов и одного или нескольких целевых адресов в ходе заданного интервала проведения атаки.

Tribe Flood Network (TFN)

Этот инструмент использует другой тип архитектуры обработчиков и клиентов. Команды отправляются от обработчика всем агентам с использованием командной строки. Взломщики не проходят идентификацию на стороне обработчика как это происходит в случае с Trinoo. С помощью этого инструмента могут организовываться атаки с использованием потоков пакетов UDP, TCP SYN-сегментов и ICMP-запросов в отношении заданных или случайных номеров портов целевой системы. Взломщики могут организовывать атаки с помощью обработчика, используя различные методы соединений (т.е. удаленную командную оболочку на заданном порту TCP и удаленные командные оболочки на стороне клиента или сервера, использующие протокол UDP). Все команды отправляются от обработчика к клиентам с использованием пакетов ICMP в зашифрованном виде, что препятствует их обнаружению.

Tribe Food Network 2000 (TFN2K)

Этот инструмент является усовершенствованной версией TFN, разработанной специально для затруднения обнаружения и фильтрации управляющего трафика, удаленного выполнения команд, сокрытия источника трафика и передачи управляющего трафика с использованием множества транспортных протоколов, включающих в себя TCP, UDP и ICMP. TFN2K скрывает действительный источник трафика, подменяя исходные сетевые адреса.

Trinity

Это первый инструмент для организации DDoS-атак, управление которым осуществляется с помощью IRC. После компрометации и инфицирования системы с использованием Trinity, каждая зомби-система подключается к заданному IRC-каналу и ожидает команд. Использование действующего IRC-сервиса для взаимодействия взломщика с зомби-системами заменяет классический независимый обработчик и поднимает уровень угрозы. Данный инструмент также может осуществлять атаки разных типов на целевой сайт, включая атаки с использованием потока UDP-пакетов, IP-фрагментов, TCP SYN-сегментов, TCP RST-сегментов, TCP ACK-сегментов, а также других типов пакетов.

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

DDoS 2.0

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

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

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

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

Что отличает DDoS 2.0?

DDoS-атаки обычно проводятся с помощью компьютеров-ботов. DDoS 2.0 считается особо мощным классом DDoS-атак. Недавно стало известно о новой тенденции использования веб-серверов в качестве ботов. Используя несложную программу с панелью функций и панелью управления, взломщики могу производить ввод IP-адреса, номера порта и продолжительности атаки. Взломщикам необходимо просо ввести строку URL для веб-сайта, который они хотят атаковать, после чего данный сайт станет недоступен. Ниже приведены причины, по которым при организации атак DDoS 2.0 используются веб-сервера:
  • Сервера являются более мощной платформой для DDoS-атак, так как они обычно обладают большей пропускной способностью, нежели простые персональные компьютеры.
  • Сервера всегда находятся в рабочем состоянии в то время, как обычные персональные компьютеры могут быть отключены. Более того, на них очень редко производится переформатирование файловой системы для смены ПО.
  • Исходящий трафик веб-серверов обычно менее тщательно исследуется провайдерами Интернет из-за устоявшегося ошибочного мнения о том, что исходящий трафик серверов не так опасен, как исходящий трафик персональных компьютеров.
  • Используя веб-сервера в качестве зомби-систем, взломщики находятся в большей безопасности, так как в случае отслеживании источника трафика, поиски обычно заканчиваются отдельным сервером, принадлежащим случайной хостинг-компании.

Популярный инструмент для атак DDoS 2.0

Помните инцидент с порталом Wikileaks, в ходе которого группы взломщиков, поддерживающие Wikileaks, организовали DDoS-атаки на сервера организаций, выступающих против Wikileaks? Инструментом на вершине списка предложенных решений для атаки оказалась программа LOIC (Low-Orbit Ion Cannon - Низкоорбитальная ионная пушка).

Программа LOIC является одним из приоритетных выборов взломщиков эры DDoS 2.0. Это приложение с открытым исходным кодом на языке C# позволяет проводить DoS/DDoS-атаки против целевых сайтов, направляя поток TCP-пакетов, UDP-пакетов или HTTP-запросов.

Взломщик скачивает клиент LOIC и настраивает его для соединения с сервером IRC. Сервер жертвы атаки получает поток запросов от всех клиентов LOIC, работающих в режиме "улья". Это классическая распределенная атака отказа в обслуживании (DDoS) с использованием ботнета с тем исключением, что взломщики в качестве клиентов добровольно участвуют в атаке.

Если вы используете этот инструмент даже в целях тестирования, пожалуйста, будьте осторожны, так как он не содержит кода для сокрытия IP-адреса отправителя пакетов, что позволяет извлечь действительный IP-адрес из журнала событий целевого сервера и проследить путь пакетов вплоть до учетной записи у интернет-провайдера и даже локального маршрутизатора. Но если вы хотите протестировать эту программу с использованием своих собственных серверов, исходный код C# доступен здесь.

В программе LOIC большинство файлов исходного кода предназначены для создания интерфейса, но три файла представляют особый интерес: frmMain.cs, HTTPFlooder.cs и Program.cs.

С помощью кода из файла frmMain.cs создается основная часть пользовательского интерфейса, в которой пользователь задает строку URL или IP-адрес целевого сервера, программа проводит множество проверок корректности заданных адресов, номеров портов, дополнительных данных и других параметров перед тем,как перейти к исполнению кода для одного из выбранных методов (TCP, UDP или HTTP) DDoS-атаки.

В режиме "улья" команды клиенту LOIC отправляются при помощи IRC. Сервер IRC, канал и номер порта вводятся в формы, описанные в файле Program.cs, использующем библиотеку C# SmartIRC4NET. В режиме работы LOIC, установленном по умолчанию, пользователь добровольно подключается ко всем другим пользователям LOIC со всего мира, формирующим ботнет, который отправляет множество запросов целевому серверу.

Если вы столкнулись с трудностями при компиляции LOIC, вы можете скачать скомпилированную версию здесь.

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

Почему сложно обнаружить DoS-атаки

Если сервер подвергается DDoS-атаке, очень сложно установить факт проведения данной атаки до момента причинения ущерба системе. Следующие характеристики DDoS-атак делают их достаточно эффективными с точки зрения взломщиков и значительно усложняют процесс защиты от них:
  • Пакеты, используемые при атаке, обычно содержат подмененные исходные IP-адреса. Это обстоятельство затрудняет процесс отслеживания их действительного источника. При этом не стоит забывать о том, что обслуживающий персонал промежуточных маршрутизаторов и интернет-провайдеров может отказаться от сотрудничества по отслеживанию источника пакетов. Иногда взломщики подменяют исходные IP-адреса для создания фиктивных ботнетов.
  • Идентичность трафика, генерируемого в ходе атаки, и действительного трафика делает разделение и фильтрацию особенно сложными. В отличие от других угроз безопасности, для реализации которых требуются специальным образом созданные пакеты (т.е. при использовании программ для проникновения в систему, червей и вирусов), для атак с использованием потока пакетов требуется только большой объем трафика, а содержимое пакетов и значения заголовков могут меняться по желанию.
  • Легкая доступность мощных инструментов для DDoS-атак позволяет нарушать работу мощных веб-серверов даже неквалифицированным пользователям.

Меры повышения безопасности

Нейтрализация DDoS-атки на веб-сервер сразу после ее начала очень сложна. Но в случае применения перечисленных ниже мер безопасности, атака может быть отражена с большой вероятностью:
  • Реализация метода защиты CAPTCHA препятствует проведению автоматизированных DDoS-атак. Хотя боты все чаще находят пути обхода защиты CAPTCHA, он все еще является надежным способом защиты от DDoS-атак.
  • DDoS-атаки практически всегда проводятся автоматизированными клиентами. Большинство идентификаторов агентов данных клиентов или ботов обладают уникальными характеристиками и отличаются от идентификаторов агентов обычных веб-браузеров. Инструменты и технологии, распознающие идентификаторы агентов ботов, такие как сборщики идентификаторов вредоносного программного обеспечения, могут помочь в анализе ботнетов, повысив безопасность функционирования системы.
  • Администраторы должны настроить сетевые шлюзы для фильтрации входящего и исходящего трафика. Исходные IP-адреса исходящего трафика должны принадлежать локальной подсети, в то время, как исходные IP-адреса входящего трафика - не должны. Таким образом они могут отсечь трафик с подмененными IP-адресами.
  • Если вы владеете веб-сервером, не полагайтесь полностью на антивирусы, а используйте совместно с ними постоянно обновляемые инструменты для борьбы с программным обеспечением, формирующим ботнеты. Таким образом вы можете предотвратить автоматическую установку инструментов для проведения DDoS-атак в вашу систему. Более того, всегда устанавливайте обновления и исправления безопасности для ваших систем.
  • Системы предотвращения проникновений (IDS/IPS) могут оказать значительную помощь, информируя администратора о чьих-либо попытках по проникновению в систему и установке инструментов для проведения атак.

Защита Apache от DDoS-атак

  • Ограничение количества одновременных запросов, обслуживаемых Apache, устанавливается с помощью директивы MaxClients и установлено в 256 по умолчанию. Любые попытки соединения при превышении этого ограничения будут добавлены в очередь, длина которой ограничивается значением директивы ListenBacklog, и установлена в 511 по умолчанию. Как бы то ни было, следует повысить последнее значение для предотвращения атак с использованием потока TCP SYN-сегментов.
  • Использование модулей для шейпинга трафика: техника шейпинга трафика позволяет контролировать объем трафика веб-сервера. Многие модули Apache позволяют использовать технологию шейпинга трафика обычно с целью снижения скорости обмена данными с заданным IP-адресом (клиентом) или для контроля использования пропускной способности канала виртуальными узлами. Позитивной стороной является то, что данные модули могут использоваться и для предотвращения DDoS-атак. Ниже приведены некоторые популярные модули для шейпинга трафика:
    • mod_limitipconn ограничивает количество одновременных загрузок для одного IP-адреса. Подробнее здесь.
    • mod_throttle предназначен для снижения загрузки вашего сервера и потока данных, генерируемого популярными виртуальными узлами, директориями, ресурсами или пользователями. Скачать его можно отсюда.
    • mod_bwshare принимает или отклоняет HTTP-запросы с каждого клиентского IP-адреса в зависимости от количества переданных данных с использованием данного клиентского IP-адреса в прошлом. Подробнее здесь.
  • Кроме перечисленных выше модулей, существует один модуль, специально предназначенный для борьбы с DoS-атаками, mod_dosevasive (скачать его можно здесь). Этот модуль позволит вам задать максимальное количество запросов, которые могут быть выполнены для одного IP-адреса. Если порог превышен, IP-адрес блокируется на заданный вами промежуток времени. Единственной проблемой данного модуля является то, что пользователи в большинстве случаев не имеют уникальных IP-адресов. Многие пользователи используют прокси-серверы для просмотра страниц или находятся за системой NAT (система преобразования сетевых адресов). Блокировка прокси-сервера приведет к блокировке всех использующих его пользователей. По этой причине рекомендуется использовать модули для шейпинга трафика в приоритетном порядке.

Инструменты

  • (D)DoS Deflate является простым Bash-сценарием оболочки, разработанным для упрощения процесса нейтрализации атаки отказа в обслуживании.
  • Apache log viewer может использоваться для простого анализа трафика и запросов веб-сервера.
  • Другие инструменты, такие, как zmbscap-0.1 и scrutinizer-1.03 также эффективны. Вы можете ознакомиться с длинным списком подобных инструментов по ссылке.
Примечание: Снова хочу подчеркнуть, что ни я, ни журнал LFY не несем ответственности за недобросовестное использование приведенной в статье информации. Напротив, описание техник атак приводится для того, чтобы дать вам необходимые знания для защиты вашей инфраструктуры. Пожалуйста, добросовестно используйте инструменты и техники, описанные в данной статье.

Мы поговорим о других опасных атаках на веб-приложения и Apache в следующей статье.

Между тем, посетите сайт dos-attacks.com для того, чтобы узнать последние новости и получить информацию о DoS-атаках.

Всегда помните: нужно знать все о взломе, но не заниматься им.

Следующая статья серии: "Безопасная эксплуатация Apache, часть 9: атаки на PHP-приложения"