Ботнет - P2P-ботнеты

ОГЛАВЛЕНИЕ


P2P-ботнеты

"Штормовой" ботнет

В 2007 году внимание исследователей информационной безопасности привлек P2P-ботнет, созданный на основе вредоносной программы, известной как Storm Worm. Авторы "штормового" червя распространяли свое детище весьма активно: по-видимому, они создали целую фабрику по созданию новых версий вредоносной программы. Начиная с января 2007 года мы ежедневно получаем 3-5 различных вариантов Storm Worm (по классификации "Лаборатории Касперского"- Email-Worm.Win32.Zhelatin).

Некоторые эксперты считают, что Storm Worm представляет собой вредоносную программу для построения зомби-сетей нового поколения. О том, что бот был разработан и распространяется профессионалами в своей области, а архитектура и защита зомби-сети хорошо продуманы, свидетельствуют следующие характеристики "штормового" ботнета:

  • Код бота мутирует, что напоминает полиморфные вирусы. Отличие Storm Worm состоит в том, что код, осуществляющий мутации, работает не внутри самой программы (как у полиморфиков), а на специальном компьютере в Сети. Этот механизм получил название "серверный полиморфизм" (server-side polymorphism).
  • Мутации происходят достаточно часто (были зафиксированы случаи мутаций раз в час) и - главное - на стороне сервера, так что обновления антивирусных баз для многих пользователей оказываются неэффективными.
  • Штормовой ботнет защищает свои ресурсы от слишком любопытных исследователей. Многие антивирусные компании периодически скачивают новые экземпляры червя с серверов, откуда происходит распространение вредоносной программы. Когда обнаруживаются частые обращения с одного и того же адреса, ботам дается команда начать DDoS-атаку этого адреса .
  • Вредоносная программа-бот старается как можно незаметнее функционировать в системе. Очевидно, что программа, которая постоянно атакует компьютер или проявляет большую сетевую активность, быстрее обращает на себя внимание и администраторов, и пользователей. Поэтому дозированная активность, которая не требует использования значительного числа компьютерных ресурсов, с точки зрения вредоносной программы наиболее безопасна.
  • Вместо коммуникации с центральным сервером штормовой червь связывается лишь с несколькими "соседними" компьютерами в зараженной сети, что делает задачу выявления всех зомби-машин в P2P-сети практически невыполнимой. Это принцип организации разведгруппы: каждый, кто входит в такую группу, знает только нескольких других членов группы, и провал одного агента разведки не означает, что вся группа раскрыта.
  • Авторы червя постоянно меняют способы его распространения. Изначально вредоносная программа распространялась как вложение в спамовые письма (в частности, под видом PDF-файлов); затем в спаме рассылались ссылки на зараженные файлы; были также попытки автоматического размещения в блогах комментариев, которые содержали ссылки на зараженные веб-страницы. И при любых способах распространения этой вредоносной программы использовались изощренные методы социальной инженерии.

Storm-ботнет принес немало проблем. Помимо массовой рассылки спама, его подозревают в участии в различных крупномасштабных DDoS-атаках по всему миру, и, по заявлениям некоторых исследователей, даже во время кибератаки на сайты эстонских правительственных учреждений в 2007 году не обошлось без участия "штормового" ботнета. То, на что потенциально способна такая сеть, вызывает неприятные ощущения у провайдеров и интернет-хостеров. Напряжения добавляет тот факт, что истинные размеры "штормового" ботнета так и остались тайной. Если другие зомби-сети, полностью или частично опирающиеся на C&C, можно увидеть целиком (в C&C виден каждый подключенный зомби-компьютер), то списка зараженных машин, входящих в "штормовой" ботнет, не видел никто из экспертов. По разным оценкам, размеры ботнета Storm Worm могли составлять от 50 тысяч до 10 миллионов зомби-машин.

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

Mayday

Еще одним интересным, на наш взгляд, ботнетом, который технологически несколько отличается от своих предшественников, является Mayday. Такое название бот (по классификации "Лаборатории Касперского - Backdoor.Win32.Mayday) и созданная на его основе сеть получили благодаря тому, что имя домена, к которому обращалась вредоносная программа в одной из своих модификаций, включало в себя слово "mayday".

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

Нами было зарегистрировано 6 различных серверов по всему миру (в Великобритании, США, Нидерландах, Германии), с которыми связывались боты на стадии построения ботнета. К началу марта в работоспособном состоянии остался лишь один из серверов, на котором было зарегистрировано около 3 тысяч ботов (напомним, что, по самым скромным оценкам, в "штормовой" ботнет входили десятки тысяч зараженных машин). Помимо размеров сети, Mayday явно уступает своему "старшему брату" Storm в нескольких важных позициях: в Mayday-ботнете используется примитивный нешифрованный протокол общения, код вредоносной программы не подвергся специальной обработке для усложнения его анализа антивирусным ПО, и, главное, новые варианты бота выпускаются совсем не с той периодичностью, какую мы видим в случае Storm Worm. Программа Backdoor.Win32.Mayday была впервые задетектирована "Лабораторией Касперского" еще в конце ноября 2007 года, и за четыре прошедших месяца в нашу коллекцию попало чуть больше 20 различных вариантов программы.

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

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

Большинству пользователей протокол ICMP (Internet Control Message Protocol - межсетевой протокол управляющих сообщений) знаком по прикладной утилите PING, использующей ICMP для проверки доступности сетевого хоста. Однако основные функции протокола значительно шире. Вот что сказано об ICMP в Wikipedia: "ICMP - сетевой протокол, входящий в стек протоколов TCP/IP. В основном ICMP используется для передачи сообщений об ошибках и в других исключительных ситуациях, возникших при передаче данных. Также на ICMP возлагаются некоторые сервисные функции".

На рисунке 10 изображен интерфейс программы-сниффера сетевых пакетов, зарегистрировавшей передачу ICMP-пакетов от бота Mayday. Никакой из ботов, известных нам ранее, не использовал ICMP для передачи данных.


Рис. 3. ICMP-пакеты, отправляемые ботом Mayday

С помощью ICMP осуществляется проверка доступности ботов в зараженной сети и их идентификация. Поскольку бот Mayday ориентирован на работу в Windows XP SP2, после запуска он изменяет правила сетевого экрана Windows, так чтобы получение ICMP-пакетов было разрешено.

Второй и, пожалуй, основной особенностью Mayday-ботнета является его центр управления.

Для работы центров управления веб-ориентированных ботнетов используется механизм, известный как CGI (Common Gateway Interface). Изначально технологией веб-серверов была предусмотрена возможность использования исполняемых файлов в качестве реализации CGI, позже появились различные скрипт-движки. CGI-приложение генерирует в реальном времени контент запрашиваемой пользователем веб-страницы, обеспечивая выполнение программы и вывод результатов ее работы вместо статических данных с сервера. CGI-скрипт работает по аналогичной схеме, но для вывода результатов своей работы ему требуется интерпретатор - скрипт-движок. Как правило, командные центры веб-ориентированных ботнетов разрабатываются злоумышленниками с использованием скрипт-движков.

В сотрудничестве с правоохранительными органами нам удалось получить копию программы, которая работает в командном центре ботнета Mayday. Серверное ПО Mayday представляет собой цельный (без модулей) 1,2-мегабайтный исполняемый ELF-файл (Linux-аналог исполняемых EXE-файлов Microsoft Windows), не требующий наличия скрипт-движка в системе. На первый взгляд, ничего удивительного в разработке авторами Mayday CGI-приложения вместо CGI-скрипта вроде бы нет. Тем не менее, такое решение вызывает ряд вопросов.

Разработка CGI-приложения на пару порядков сложнее разработки CGI-скрипта, поскольку требует особых усилий для реализации стабильного и надежного кода. В настоящее время 99% веб-разработок ведется на основе скрипт-движков, а монолитные исполняемые CGI-программы создаются лишь в случае жесткой необходимости оптимизировать все до мелочей. Как правило, такой подход используется крупными корпорациями при разработке проектов, которые должны работать в условиях огромных нагрузок. Монолитные исполняемые CGI-программы используются, например, в таких веб-системах, как e-Bay, Paypal, Yahoo и др.

Зачем же создавался безмодульный исполняемый файл в случае ботнета Mayday? Одной из возможных причин могло быть желание разработчиков усложнить "чужакам" задачу редактирования, перенастройки и перепродажи центра управления. В любом случае анализ структуры серверного ПО Mayday дает основание предполагать, что такая серьезная разработка (код аккуратно причесан, созданная система классов универсальна) требует хорошо организованной команды разработчиков. Более того, для создания ПО Mayday-ботнета злоумышленникам, скорее всего, пришлось вести работу над двумя разными проектами: разработкой программ для Windows и для Linux.

Весной 2008 года "Лабораторией Касперского" не было зафиксировано ни одного нового образца Mayday-бота. Возможно, авторы вредоносной программы взяли таймаут, и Mayday-ботнет еще проявит себя в недалеком будущем.