Исследование

SpyEye vs. Tracker

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

Плагины представляют собой библиотеки DLL, которые хранятся в файле конфигурации бота. Среди базовых плагинов, созданных самим раработчиком SpyEye, имеется плагин под названием customconnector. Как можно догадаться из названия, этот плагин отвечает за коммуникацию бота с центром управления ботнета или же с коллектором (сервер злоумышленников, на который бот отправляет украденные с зараженного компьютера данные пользователя; может отличаться от сервера – центра управления).

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

К каждому плагину прилагается конфигурационный файл. Если плагин — customconnector.dll, то конфигурационный файл для него будет customconnector.dll.cfg. В нем злоумышленник может указать в текстовом виде настройки для функционала, реализованного в плагине. Так как customconnector.dll — плагин коммуникации, то и в файле конфигурации для него всегда указывались сервера – центры управления ботнетом. Оператор ботнета мог легко перейти на новый центр управления, внеся в текстовый файл новые адреса и обновив файл конфигурации на ботнете.

Вот пример одного из файлов конфигурации:


рис. 1 Конфигурационный файл для customconnector.dll

Здесь видно, что указано несколько адресов центров управления. Бот перебирает URL поочередно из списка, пытаясь «достучаться» до работающего на данный момент сервера.

На схеме ниже показано, как работает плагин на зараженном компьютере:


рис. 2 Схема работы плагина customconnector

Перейдем к обнаруженным нами изменениям. Связаны они, что неудивительно, с деятельностью трекера abuse.ch. Разработчик SpyEye и операторы ботнетов неоднократно выражали недовольство работой этого трекера. На abuse.ch в общественном доступе оперативно появляются адреса серверов центров управления ботнетов SpyEye, и интернет-провайдеры блокируют доступ к ним зараженным клиентам из своих сетей. Извлечение адресов центров управления из отдельного файла конфигурации SpyEye (начальный хранится в теле самого бота) больших хлопот не доставляет. По сути, файл конфигурации — это zip-архив, защищенный паролем. Пароль и сам файл конфигурации можно достать из памяти зараженной машины. После чего из архива извлекаются конфигурационные файлы плагинов, в том числе и файл customconnector.dll.cfg, в котором — вот они, адреса центров управления. Весь процесс можно и нужно было автоматизировать, ибо в дикой природе каждый день появляется множество новых ботов. В настоящее время роботы работают, адреса серверов публикуются и блокируются.

Все хорошо… До поры, до времени. Потому что недавно мы обнаружили, что адреса, указанные в файле customconnector.dll.cfg — подложные.

Мы уже сталкивались с таким трюком, но в Зевсе. Также как и в ZeuS, в SpyEye, чтобы сбить с толку исследователей, для видимости оставили следы старого метода работы. Хотя на первый взгляд может показаться, что ничего нового не происходит, на самом деле изменения уже в деле. В некоторых версиях customconnector.dll содержимое файла конфигурации для плагина просто игнорируется, а используются адреса, которые прописаны в самой библиотеке. Функция Init() библиотеки customconnector.dll из частей собирает настоящие адреса центров управления и работает уже с ними.


рис. 3 Фрагменты текста в dll, из которых собираются адреса центров управления


рис. 4 Сборка адресов центров управления из разрозненных фрагментов


рис. 5 Настоящие адреса центров управления ботнетом, собранные налету в dll

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

SpyEye vs. Tracker

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

 

Отчеты

CloudSorcerer: новая APT-угроза, нацеленная на российские государственные организации

«Лаборатория Касперского» обнаружила новую APT-угрозу CloudSorcerer, нацеленную на российские государственные организации и использующую облачные службы в качестве командных серверов аналогично APT CloudWizard.

StripedFly: двуликий и незаметный

Разбираем фреймворк StripedFly для целевых атак, использовавший собственную версию эксплойта EternalBlue и успешно прикрывавшийся майнером.

Подпишитесь на еженедельную рассылку

Самая актуальная аналитика – в вашем почтовом ящике