Войны роботов — как работают ботнеты

Опубликовано: 12 Апреля, 2023

Войны роботов — как работают ботнеты
по
Массимилиано Романо, Симоне Розиньоли, Эннио Джаннини
Для хакин9



Чему вы научитесь…



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

То, что вы должны знать…



  • как работает вредоносное ПО (в частности, трояны и черви),
  • механизмы, используемые в DDoS-атаках,
  • основы TCP/IP, DNS и IRC.

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


Введение в боты и ботнеты


Слово бот является сокращением от слова робот. Роботы (автоматизированные программы, а не такие роботы, как Marvin the Paranoid Android) часто используются в мире Интернета. Пауки, используемые поисковыми системами для отображения веб-сайтов и программного обеспечения, отвечающего на запросы в IRC (например, eggdrop), являются роботами. Программы, которые автономно реагируют на определенные внешние события, также являются роботами. В этой статье будет описан особый вид робота или бота (как мы будем их называть в дальнейшем) — IRC-бот. Он использует сети IRC в качестве канала связи для получения команд от удаленного пользователя. В данном конкретном случае пользователь — злоумышленник, а бот — троянский конь. Хороший программист может легко создать своего собственного бота или настроить уже существующего. Это поможет скрыть бота от основных систем безопасности и позволит ему легко распространяться.



IRC


IRC расшифровывается как Internet Relay Chat. Это протокол, предназначенный для общения в чате в реальном времени (ссылка на RFC 1459, обновления RFC 2810, 2811, 2812, 2813), основанный на архитектуре клиент-сервер. Большинство IRC-серверов разрешают бесплатный доступ для всех. IRC — это открытый сетевой протокол, основанный на TCP ( протокол управления передачей ), иногда дополненный SSL ( уровень защищенных сокетов ).


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


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


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


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


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


Боты и их приложения


Возможное использование скомпрометированных хостов зависит только от воображения и навыков злоумышленника. Давайте рассмотрим самые распространенные из них.


ДДоС


Ботнеты часто используются для распределенных атак типа «отказ в обслуживании». Злоумышленник может контролировать большое количество скомпрометированных узлов с удаленной рабочей станции, используя их пропускную способность и отправляя запросы на подключение к целевому узлу. Многие сети пострадали от таких атак, а в некоторых случаях виновники были найдены среди конкурентов (как в случае с войнами доткомов).



Распределенные DoS-атаки (DDoS)


DDoS-атака — это разновидность DoS-атаки с флудом; его цель состоит в том, чтобы насытить целевую сеть, используя всю доступную полосу пропускания. При этом и при условии, что злоумышленник должен иметь огромную общую пропускную способность, доступную для насыщения целевого сайта, ясно, что лучший способ запустить этот тип атаки — иметь под контролем множество разных хостов. Каждый хост вводит свою полосу пропускания (например, пользователи ПК ADSL), и они используются все сразу, таким образом распределяя атаку на целевой сайт. Одна из самых популярных атак, выполняемых с использованием протокола TCP ( протокол, ориентированный на соединение ), называется TCP synfloning. Он работает, отправляя большое количество запросов TCP-соединения на один и тот же веб-сервер (или на любой другой тип службы), перегружая ресурсы сервера и приводя к его насыщению, не позволяя другим пользователям открывать свои собственные соединения. Как просто и опасно эффективно! Мы можем добиться того же, используя протокол UDP ( протокол без установления соединения ).


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


Спам


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


Сниффинг и кейлоггинг


Боты также могут быть эффективно использованы для улучшения древнего искусства обнюхивания. Наблюдение за данными о трафике может привести к обнаружению невероятного количества информации. Это включает в себя привычки пользователей, полезную нагрузку пакетов TCP, которые могут содержать интересную информацию (например, пароли). То же самое относится к кейлоггингу — захвату всей информации, введенной пользователем (электронная почта, пароли, данные домашнего банковского обслуживания, информация об учетной записи PayPal и т. д.).


Кража личных данных


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


Хостинг нелегального программного обеспечения


И последнее, но не менее важное: зараженные ботами компьютеры могут использоваться в качестве динамического хранилища незаконных материалов (пиратского программного обеспечения, порнографии и т. д.). Данные хранятся на диске неосведомленного пользователя ADSL.


Можно часами говорить о возможном применении ботнетов (например, о злоупотреблениях с оплатой за клик, фишинге, перехвате HTTP/HTTPS-соединений и т. д.). Сами по себе боты — это всего лишь инструменты, которые можно легко адаптировать под любую задачу, требующую большого количества хостов под единым управлением.


Различные типы ботов


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


GT-бот


Все боты GT ( Global Threat ) основаны на популярном IRC-клиенте для Windows под названием mIRC. Ядро этих ботов состоит из набора mIRC-скриптов, которые используются для контроля активности удаленной системы. Этот тип бота запускает экземпляр клиента, дополненный сценариями управления, и использует второе приложение, обычно HideWindow, чтобы сделать mIRC невидимым для пользователя хост-компьютера. Дополнительный файл DLL добавляет новые функции в mIRC, чтобы сценарии могли влиять на различные аспекты контролируемого хоста.


Агобот


Agobot, вероятно, один из самых популярных ботов, используемых взломщиками. Он написан на C++ и выпущен под лицензией GPL. Что интересно в Agobot, так это его исходный код. Высокая модульность упрощает добавление новых функций. Agobot предоставляет множество механизмов для сокрытия своего присутствия на хост-компьютере. К ним относятся: NTFS Alternate Data Stream, Antivirus Killer и Polymorphic Encryptor Engine. Agobot предлагает функции анализа и сортировки трафика. Протоколы, отличные от IRC, также могут использоваться для управления этим ботом.


DSNX


Бот Dataspy Network X также написан на C++, и его исходный код также доступен по лицензии GPL. Добавление новых функций к этому боту очень просто благодаря простой архитектуре подключаемых модулей.


SDBot


SDBot написан на C, а также доступен по лицензии GPL. В отличие от Agobot, его код не очень понятен, а само программное обеспечение имеет ограниченный набор функций. Тем не менее, он по-прежнему очень популярен и доступен в различных вариантах.


Элементы атаки


На рис. 1 показана структура типичного ботнета:



Изображение 25898
Рисунок 1: Структура типичного ботнета



  • Злоумышленник сначала распространяет троянского коня, который заражает различные хосты. Эти хосты становятся зомби и подключаются к IRC-серверу, чтобы слушать дальнейшие команды.
  • IRC-сервер может быть общедоступной машиной в одной из сетей IRC или выделенным сервером, установленным злоумышленником на одном из скомпрометированных хостов.
  • Боты запускаются на зараженных компьютерах, образуя ботнет.


Практический пример


Действия злоумышленника можно разделить на четыре этапа:



  • творчество
  • конфигурация
  • инфекционное заболевание
  • контроль

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


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


На этапе заражения используются различные способы распространения ботов — как прямые, так и косвенные. Прямые методы включают использование уязвимостей операционной системы или служб. Косвенные атаки используют другое программное обеспечение для грязной работы — они включают использование искаженных HTML-файлов, использующих уязвимости Internet Explorer, или использование другого вредоносного ПО, распространяемого через одноранговые сети или через обмен файлами DCC ( Direct Client-to-Client ) в IRC. Прямые атаки обычно автоматизируются с использованием червей. Все, что нужно сделать червям, — это найти в подсетях уязвимые системы и внедрить код бота. Затем каждая зараженная система продолжает процесс заражения, что позволяет злоумышленнику экономить драгоценные ресурсы и дает достаточно времени для поиска других жертв.


Механизмы, используемые для распространения ботов, являются одной из основных причин так называемого фонового шума в Интернете. Основные задействованные порты — это порты, используемые Windows, в частности Windows 2000 и XP SP1 (см. Таблицу 1). Похоже, они являются излюбленной целью злоумышленников, потому что легко найти компьютеры с непропатченной Windows или компьютеры без установленных брандмауэров. Это часто случается с пользователями домашних ПК и малыми предприятиями, которые упускают из виду вопросы безопасности и имеют постоянное широкополосное подключение к Интернету.














































Порт


обслуживание


42


WINS ( сервер имен хостов )


80


HTTP (уязвимость IIS или Apache)


135


RPC ( удаленный вызов процедур )


137


Служба имен NetBIOS


139


Служба сеансов NetBIOS


445


Microsoft-DS-Service


1025


Windows Messenger


1433


Microsoft-SQL-сервер


2745


Черный червь Bagle


3127


Бэкдор-червь MyDoom


3306


MySQL UDF ( определяемые пользователем функции )


5000


UPnP ( Универсальный Plug and Play )

Таблица 1: Список портов, связанных с уязвимыми службами


Этап контроля включает в себя действия после того, как бот будет установлен на целевом хосте в выбранной директории. Чтобы начать с Windows, он обновляет ключи реестра Windows, обычно HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun. Первое, что делает бот после успешной установки — подключается к IRC-серверу и подключается к каналу управления с использованием пароля. Никнейм в IRC генерируется случайным образом. После этого бот готов принимать команды от главного приложения. Злоумышленник также должен использовать пароль для подключения к ботнету. Это необходимо, чтобы никто другой не мог использовать поставленный ботнет.



Изображение 25899
Рисунок 2: Укрепление ботнета


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


Злоумышленники вынуждены совершенствовать свои методы C&C ( Control and Command ), что приводит к усилению защиты ботнета. Поэтому боты часто настраиваются для подключения к разным серверам с использованием динамически отображаемого имени хоста. Таким образом, злоумышленник может легко перемещать ботов на новые серверы, сохраняя их контроль даже после обнаружения. Для этой задачи используются службы динамического DNS, такие как dyndns.com или no-ip.com.



Динамический DNS


Динамический DNS (RFC 2136) — это система, которая связывает доменное имя с динамическим IP-адресом. Пользователи, подключающиеся к Интернету через модемы, ADSL или кабель, обычно не имеют фиксированного IP-адреса. Когда такой пользователь подключается к Интернету, провайдер назначает неиспользуемый IP-адрес, выбранный из выбранного пула. Этот адрес обычно сохраняется только на время этого конкретного соединения.


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


Чтобы скрыть активность, канал IRC настроен на ограничение доступа и скрытие активности. Типичные режимы IRC для каналов ботнета: +k (для входа на канал требуется пароль), +s (канал не отображается в списке публичных каналов), +u (в списке пользователей видны только операторы), + m (отправлять на канал могут только пользователи со статусом голоса +v ). Большинство опытных злоумышленников, использующих персонализированные серверы IRC, шифруют всю связь с каналом. Они также склонны использовать персонализированные варианты программного обеспечения IRC-сервера, сконфигурированные для прослушивания нестандартных портов и использующие модифицированную версию протокола, так что обычный IRC-клиент не может подключиться к сети.


C&C на практике — Agobot


Теперь давайте рассмотрим пример сценария атаки, который позволит нам ясно увидеть процесс управления и контроля над ботнетом. Для работы использовались два компьютера. На первом работал IRC-сервер на основе UnrealIRCd 3.2.3 и две виртуальные машины с Windows XP SP1 на базе VMware Workstation (две потенциальные цели заражения). Второй использовался мастером для управления ботнетом через Irssi, текстовый IRC-клиент.


Чтобы затруднить обратный инжиниринг, Agobot реализует процедуры защиты от использования отладчиков, таких как SoftICE или OllyDbg, и от использования виртуальных машин, таких как VMware и Virtual PC. Поэтому было необходимо взломать исходный код, чтобы обойти защиту VMware, прежде чем бот можно было установить в наших примерах виртуальных систем.


Конфигурация


Первым шагом была настройка бота с использованием его простого графического интерфейса (см. рис. 3). Введенная информация включала имя и порт IRC-сервера, название канала, список пользователей с мастер-паролями и, наконец, — имя файла и каталог, в который должен быть установлен бот. Также были активированы плагины, такие как поддержка сниффинга и полиморфный движок. Результатом этого этапа стал файл config.h, необходимый для компиляции бота.



Изображение 25900
Рисунок 3: Интерфейс конфигурации Agobot


Командование и контроль


После того, как бот был скомпилирован, две тестовые системы были заражены вручную. Главный компьютер подключился к IRC-серверу и присоединился к каналу, чтобы иметь возможность контролировать и командовать ботом (см. рис. 4):



Изображение 25901
Рисунок 4: Главный сервер и подключение к каналу


Чтобы получить контроль над ботами, была необходима аутентификация. Делалось это простой отправкой в канал команды (см. рис. 5):



.login FaDe дюна



Изображение 25902
Рисунок 5: Аутентификация по имени пользователя и паролю


Затем у первого бота был запрошен список всех запущенных процессов на зараженном компьютере (рисунок 6):



/msg FakeBot-wszyzc.pctrl.list



Изображение 25903
Рис. 6. Ответ на основной запрос от первого бота


Затем у второго бота запросили системную информацию и cdkeys установленных приложений (рис. 7):



/msg FakeBot2-emcdnj.bot.sysinfo


/msg FakeBot2-emcdnj.harvest.cdkeys



Изображение 25904
Рис. 7. Ответ на главный запрос от второго бота


В этом примере мы использовали простые функции, но Agobot предоставляет очень богатый набор команд и функций. Некоторые из них перечислены в таблице 2.





























































Команда


Описание


команда.список


Список всех доступных команд


бот.dns


Разрешает IP/имя хоста


bot.execute


Запускает .exe файл на удаленном компьютере


бот.открыть


Открывает файл на удаленном компьютере


бот.команда


Запускает команду с помощью system()


irc.сервер


Подключается к IRC-серверу


irc.join


Входит в определенный канал


irc.privmsg


Отправляет личное сообщение пользователю


http.execute


Загружает и выполняет файл через HTTP


ftp.execute


Загружает и выполняет файл через FTP


ddos.udpflood


Запускает UDP-флуд


ddos.synflood


Запускает син-флуд


ddos.phaticmp


Запускает флуд PHATicmp


перенаправление.http


Запускает HTTP-прокси


перенаправить.socks


Запускает прокси SOCKS4


pctrl.list


Список процессов


pctrl.kill


Убивает процесс

Таблица 2: Некоторые команды Agobot


Как защитить свои компьютеры


Теперь рассмотрим способы защиты от заражения и бот-атаки как с точки зрения пользователя, так и с точки зрения администратора.


Стратегии защиты для пользователей ПК


Как упоминалось ранее, заражение ботами происходит в основном через червей, которые просматривают сеть в поисках уязвимых машин. Поэтому первым шагом является обновление вашей системы, загрузка исправлений и системных обновлений как для ОС, так и для всех приложений, имеющих доступ к Интернету. Автоматические обновления — хорошая идея. Также будьте осторожны с открытием подозрительных вложений в электронной почте. Также разумно отключить поддержку языков сценариев, таких как ActiveX и JavaScript (или, по крайней мере, контролировать их использование). Наконец, крайне важно использовать антивирус/антитроян и постоянно обновлять его. Однако многие боты настроены на обход антивирусного контроля, поэтому персональный брандмауэр является ценным дополнением к безопасности, особенно если компьютер включен 24 часа в сутки.


Основными признаками присутствия ботов являются замедление соединения и системы. Простой и эффективный способ проверки подозрительных подключений — это инструмент netstat (см. рис. 8):



C:/ >netstat -an



Изображение 25905
Рисунок 8: Netstat в зараженной системе


Нетстат


Netstat — очень гибкий инструмент, доступный как для систем Windows, так и для систем *NIX. Его основная функция — управление активными портами. Netstat анализирует прослушиваемые порты TCP и UDP и предоставляет подробную информацию о сетевой активности. * Система netstat NIX отображает все открытые потоки. Он также использует фильтры выбора вывода.


Возможные состояния соединения содержат:



  • УСТАНОВЛЕНО – оба хоста подключены
  • ЗАКРЫТИЕ — удаленный хост закрывает соединение
  • ПРОСЛУШИВАНИЕ — хост прослушивает входящие соединения
  • SYN_RCVD — удаленный хост запросил соединение
  • SYN_SENT — хост запускает новое соединение
  • LAST_ACK — хост должен отправить отчет перед закрытием соединения
  • TIMED_WAIT, CLOSE_WAIT — удаленный хост разрывает соединение
  • FIN_WAIT 1 — клиент разрывает соединение
  • FIN_WAIT 2 — оба хоста закрывают соединение

Следите за УСТАНОВЛЕННЫМИ подключениями к портам TCP в диапазоне 6000-7000 (обычно 6667). Если вы обнаружите, что ваш компьютер скомпрометирован, отключитесь от Интернета, очистите систему, перезагрузитесь и снова проверьте.


Стратегии защиты для администраторов


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


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


Также можно использовать более сложные методы для изучения и обнаружения угроз. Одним из таких методов являются медоботы. Honeybots — это машины, созданные для того, чтобы стать легкой мишенью для атак. Их роль заключается в том, чтобы заразиться и позволить администратору точно определить источник проблемы и изучить метод атаки.


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


В сети




  • http://www.honeynet.org/papers/bots/ — использование медовых ботов для изучения активности ботов,
  • http://security.isu.edu/ppt/pdfppt/Core02.pdf – инструменты и стратегии реагирования на атаки,
  • http://www.securitydocs.com/library/3318 — введение в Netstat,
  • http://www.irchelp.org/irchelp/faq.html – введение в IRC.


Об авторах


Основные интересы Массимилиано Романо — информатика и сети. Он работает фрилансером в одной из крупнейших итальянских компаний мобильной связи. Он проводит большую часть своего свободного времени на любительском радио, изучая и расшифровывая цифровые радиосигналы.


Симона Розиньоли — студентка Университета Ла Сапиенца в Риме. В настоящее время он получает степень в области компьютерных технологий (системы и безопасность). Его интересы варьируются от программирования до компьютерной безопасности.


Эннио Джаннини работает системным аналитиком. В свободное время он экспериментирует в среде GNU/Linux. Он является активным сторонником и пропагандистом Open Source.