Как «Лаборатория Касперского» отключила ботнет Hlux/Kelihos

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

«Лаборатория Касперского» сыграла решающую роль в операции по обезвреживанию ботнета. Специалисты «Лаборатории» провели работу по анализу вредоносного кода, используемого в боте, вскрыли его протокол обмена данными и разработали инструменты для воздействия на его пиринговую инфраструктуру. Мы тесно струдничали с Группой по борьбе с киберпреступлениями Microsoft (DCU), обмениваясь информацией и предоставляя им доступ к нашей системе оперативного отслеживания ботнетов.

Главным элементом в этой операции явилось использование sinkhole-маршрутизатора — один из компьютеров «Лаборатории Касперского» стал частью ботнета с целью получения контроля над ним. Важно понимать, что ботнет по-прежнему существует, но в настоящее время контролируется «Лабораторией Касперского». Параллельно с обращением Microsoft в судебную систему США с требованием отключить домены, используемые ботнетом, мы начали свою операцию по внедрению в ботнет sinkhole-маршрутизатора. В данное время к внедренному маршрутизатору ежеминутно обращается 3000 хостов. В данном блогпосте описывается внутренния работа ботнета, а также операция, проведенная нами для предотвращения его дальнейшего функционирования.

Вначале изложу необходимые технические сведения. Kelihos — это название ботнета по номенклатуре Microsoft, который у “Лаборатории Касперского” называется Hlux. Итак, Hlux является пиринговым ботнетом с архитектурой, похожей на таковую ботнета Waledac. Сеть состоит из нескольких уровней узлов различных типов: контроллеров, маршрутизаторов и рабочих узлов. Контроллеры — это компьютеры, предположительно управляемые бандой киберпреступников, стоящих за ботнетом. Они дают ботам команды и контролируют динамическую структуру пиринговой сети. Маршрутизаторы — это зараженные компьютеры с публичными IP-адресами; они управляют ботом в режиме маршрутизации, размещают прокси-сервисы, участвуют в Fast-Flux процессах и т.д. Наконец, рабочие узлы — это, если давать простое определение, те узлы, которые не работают в качестве маршрутизаторов. Они используются для расылки спама, сбора адресов электронной почты, «выуживания» частной информации о пользователе из сетевого потока и т.д. Ниже в схематичной форме изображена архитектура ботнета с четырьмя контроллерами на верхнем уровне; рабочие узлы изображены зеленым.


Рис. 1. Архитектура ботнета Hlux

Рабочие узлы

Многие компьютеры, которые могут быть заражены вредоносными программами, не имеют прямого подключения к интернету — они скрыты за шлюзами, прокси-серверами или устройствами, которые выполняют преобразование сетевых адресов. Следовательно, к таким компьютерам невозможно получить доступ извне сети, не прибегая к специальным ухищрениям. Это является проблемой для ботов, поскольку им необходимо устанавливать сервисы, к которым могут обращаться другие компьютеры для организации пиринговых сетей. С другой стороны, эти компьютеры располагают значительными вычислительными и сетевыми мощностями. Компьютер, на котором работает бот Hlux, проверяет, можно ли к нему присоединиться извне локальной сети; если нет, он начинает работать в режиме рабочего узла. На рабочих узлах поддерживаются списки пиров (других зараженных машин с публичными IP-адресами); у пиров запрашиваются задания. Задания содержат команды, например, разослать спам или участвовать в DoS-атаках. В задании могут также содержаться команды загрузить обновление и заменить рабочий код бота на новую версию.

Узлы-маршрутизаторы

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

Контроллеры

Узлы-контроллеры — это верхний видимый слой ботнета. На контроллерах размещается HTTP-сервер nginx, контроллеры выдают задания для рабочих узлов. Они не участвуют в пиринговой сети и, таким образом, никогда не появляются в списках пиров. Обычно их шесть; они распределяются попарно в разных IP-диапазонах в разных странах. Каждая пара контроллеров имеет общий RSA-ключ для установки SSH-соединения, так что за каждой парой адресов, по всей вероятности, стоит одна машина. Время от времени некоторые контроллеры заменяются на новые. Непосредственно перед операцией по обезвреживанию ботнета список контроллеров был таким:


193.105.134.189
193.105.134.190
195.88.191.55
195.88.191.57
89.46.251.158
89.46.251.160

Пиринговая сеть

Каждый бот хранит до 500 записей в локальном списке пиров. Этот список вместе с прочей информацией о конфигурации содержится в ветке HKEY_CURRENT_USERSoftwareGoogle реестра Windows. Когда бот впервые начинает работать на зараженной машине, он инициализирует список пиров, записывая туда адреса, «зашитые» в исполняемом файле. В последней версии бота первоначальный список пиров содержал 176 записей. Локальный список пиров обновляется с учетом информации, полученной от других хостов. Каждый раз при подключении к узлу-маршрутизатору, бот посылает ему до 250 записей из своего текущего списка пиров, в ответ на что маршрутизатор посылает 250 пиров из своего списка. За счет обмена списками пиров адреса актуальных узлов-маршрутизаторов распространяются по сети. Пример информации в списке пиров приведен ниже:


m_ip: 41.212.81.2
m_live_time: 22639 seconds
m_last_active_time: 2011-09-08 11:24:26 GMT
m_listening_port: 80
m_client_id: cbd47c00-f240-4c2b-9131-ceea5f4b7f67

Пиринговая архитектура сети имеет то преимущество, что она очень устойчива к отключению частей сети. Динамическая структура позволяет быстро реагировать на сбои. Когда бот посылает запрос на задание, он никогда не соединяется непосредственно с контроллером — вне зависимости от того, работает ли он в режиме рабочего узла или маршрутизатора. Запрос на получение задания всегда посылается через другой маршрутизатор. Таким образом, даже если отключатся все узлы-контроллеры, P2P-уровень будет продолжать работать, обеспечивая возможность объявить новое множество контроллеров и разослать их адреса по сети.

Fast-Flux Service Network

Ботнет Hlux также обслуживает несколько Fast-Flux доменов, которые объявляются в системе доменных имен с нулевым значением TTL для предотвращения кэширования. Запрос к одному из доменов возвращает один IP-адрес, принадлежащий зараженной машине. Fast-Flux домены образуют резервный канал связи, через который боты могут связаться с ботнетом в том случае, если окажутся недоступными все пиры из их локального списка. В каждой версии бота содержится индивидуальный жестко заданный резервный домен. Microsoft отменила регистрацию этих доменов, тем самым выведя из строя резерных канал связи ботнета. Ниже приведен список DNS-имен, которые были активны до обезвреживания ботнета — на тот случай, если вы хотите понаблюдать за тем, как разрешаются DNS-имена на вашем компьютере. Если вдруг увидете компьютер, запрашивающий какой-либо из данных адресов, то он, по всей вероятности, заражен Hlux, и нужно принять меры по его лечению.


hellohello123.com
magdali.com
restonal.com
editial.com
gratima.com
partric.com
wargalo.com
wormetal.com
bevvyky.com
earplat.com
metapli.com

Ботнет также использовал сотни поддоменов под ce.ms и cz.cc, где разрешена бесплатная регистрация. Данные поддомены использовались только для распространения обновлений, а не как резервный канал связи с ботнетом.

Меры противодействия

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

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


Рис. 2. Количество обращений к sinkhole-маршрутизатору в минуту

26 сентября мы начали распространять специальный адрес пира. Очень скоро этот адрес стал преобладающим в ботнете; боты стали подключаться к нашей машине, и только к ней. Специалисты называют такой подход sinkholing — боты подключаются к специально внедренному в ботнет фальшивому управляющему центру вместо настоящих контроллеров. Одновременно мы разослали специально созданный список командных серверов, который должен был заменить первоначальный список и предотвратить получение команд ботами. С этого момента командование ботнетом стало невозможным. Поскольку боты теперь обращаются только к нашему компьютеру, мы смогли собрать некоторую статистику, например, количество зараженных компьютеров по странам. На данный момент мы насчитали 49007 уникальных IP-адресов. «Лаборатория Касперского» сотрудничает с интернет-провайдерами, сообщая владельцам сетей о фактах заражения.


Рис. 3. Количество зараженных адресов по странам

Что же дальше?

В данный момент главный вопрос такой: что делать дальше. Очевидно, мы не можем постоянно проводить sinkholing ботнета Hlux. Текущие меры являются лишь временным решением, но не решают проблему окончательно — окончательным решением было бы только лечение зараженных машин. Мы ожидаем, что со временем количество машин, обращающихся к нашему sinkhole-маршрутизатору, будет постепенно уменьшаться по мере того, как компьютеры будут вылечены, либо на них будет переустановлена операционная система. Microsoft сообщила, что их Центр защиты от вредоносных программ добавил бот в список угроз, от которых лечит их утилита Malicious Software Removal Tool. Учитывая популярность утилиты, эта мера должна оказать немедленное воздействие на количество зараженных машин. Тем не менее, 28 сентября только за 16 часов мы насчитали 22693 уникальных IP-адресов, с которых были обращения к нашему sinkhole-маршрутизатору. Надеемся, в ближайшее время это число значительно снизится.

Теоретически, есть еще один способ избавиться от Hlux: мы знаем, как работает процесс обновления ботнета. Использовав это знание, мы могли бы выпустить специальное обновление, которое устранит заражение и затем удалит себя. Однако, такой вариант для большинства стран будет незаконным, и потому останется в теории.

Нам интересно ваше мнение о том, что же делать дальше с ботнетом. Сообщите нам, что вы думаете, выбрав один из вариантов ниже. Также привествтуются комментарии к этому посту.

Опрос

Что следует «Лаборатории Касперского» делать дальше с ботнетом Hlux/Kelihos Botnet?

Просмотреть результаты голосования.

Благодарность

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

Публикации на схожие темы

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *