Intro
Бот Zeus, пожалуй, один из самых известных представителей вредоносного программного обеспечения. Zeus ведет свою историю с 2007 (или даже 2006) года. Многие ошибочно полагают, что Zeus — просто очередной троян, однако это не так. В действительности, Zeus представляет собой образец так называемого crimeware — программного обеспечения, предназначенного для совершения противоправных действий. В данном случае основное предназначение crimeware Zeus — кража учетных данных, используемых для проведения финансовых операций. По информации аналитиков, он отвечает за 90 % случаев банковского мошенничества в мире.
Другим заблуждением является утверждение о существовании одного огромного ботнета Zeus. На самом же деле Zeus лежит в основе очень большого числа – вероятно, нескольких сотен – различных ботнетов, и все они контролируются разными группировками киберпреступников. Создатели Zeus просто продают его заинтересованным лицам, а они уже с его помощью формируют собственные ботнеты. Таким образом, правильно говорить не о ботнете Zeus, а о ботнетах, созданных при помощи Zeus. Для отслеживания информации о командных серверах Zeus в феврале 2009 года Роман Хюсси (Roman Hussy), швейцарский специалист по компьютерной безопасности, создал сайт ZeusTracker.
Zeus, version 1
Разработчик ZeuS известен под никами Slavik и Monstr, именно он до 2010 года единолично производил сбыт и поддержку своего продукта.
Структурно Zeus состоит из нескольких частей — билдера (builder) бота и административной панели.
Основной модуль бота Zeus и билдер написан в среде Visual Studio на языке C и частично С++. Конечный исполняемый код бота Zeus создавался билдером и содержал в себе собственно основной модуль и файл конфигурации. Файл конфигурации содержит в себе адрес управляющего центра, пути к скриптам и другие данные, необходимые для работы. Билдер имеет аппаратную привязку к компьютеру покупателя, то есть мог запускаться только при наличии определенной конфигурации.
Исследователи отмечают, что в семействе Zeus не используются какие-либо техники сокрытия (rootkit) или использование эксплоитов для повышения своих привилегий в системе. Основной упор делался на стабильность функционирования, в том числе при работе с ограниченными пользовательскими правами.
Возможности Zeus первого поколения на примере версии 1.3.4.x, март 2010 года (источник):
- кража учетных данных, вводимых в браузере;
- кража учетных данных, хранимых в Windows Protected Storage;
- кража клиентских сертификатов X.509;
- кража учетных данных FTP и POP;
- кража и удаление HTTP и Flash cookies;
- модификация запрашиваемых HTML страниц для последующей кражи учетных данных (Web Injects);
- перенаправление запросов пользователя на другие сайты;
- создание снимков экрана;
- поиск и загрузка файлов на удаленный сервер;
- модифицирование файла hosts;
- загрузка и последующий запуск файла с удаленного сервера;
- удаление критически важных веток реестра для невозможности загрузки операционной системы.
Начиная с версии 1.4, появился функционал внедрения Web Injects в Firefox. Web Injects — набор HTML и JavaScript кода, обеспечивающий отображение форм ввода учетных данных систем ДБО (дистанционного банковского обслуживания), имитирующих настоящие. При попытке посещении сайта какой-либо системы ДБО через браузер, троян перехватывает запрос и отображает поддельную форму. Украденные таким образом учетные данные отправляются на командный центр злоумышленников. Для затруднения обнаружения антивирусным ПО, Zeus стал использовать полиморфное шифрование и механизм изменения размера своего файла. При этом файл Zeus на каждой зараженной системе шифровал себя заново с новыми параметрами, так что один и тот же билд на разных компьютерах выглядел совсем по-другому.
Расценки на компоненты версии Zeus 1.3.4.x:
- билдер и админпанель — от 3000$ до 4000$;
- модуль Back Connect (любой порт, позволяет например подключиться по RDP) — 1500$;
- модуль кражи учетных данных из браузера Firefox (form grabber) — 2000$;
- модуль уведомления и отправки украденной информации через Jabber — 500$;
- приватный (сделанный на заказ) модуль VNC (удаленного управления, аналог RDP) — 10000$;
- поддержка работы в ОС Windows Vista/Seven — 2000$.
Распространение ботов Zeus производилось различными способами. Например, осенью 2009 года он распространялся в спамерских сообщениях, рассылаемых от имени налоговой службы США. В другом случае в письме сообщалось о проведении всеобщей вакцинации от свиного гриппа H1N1. Ссылки в письмах вели на поддельные сайты, созданные злоумышленниками. На сайтах предлагалось скачать и запустить исполняемый файл формата exe, якобы содержащий определенные инструкции. На самом деле файл был ботом Zeus. Для рассылки спама использовались «мощности» ботнета Cutwail (также известного как Pushdo и Oficla). Позднее тактика была изменена и в письмах стали присылаться ссылки на сайты, содержащего в себе iframe или jscript, ведущий на какой-либо эксплоит пак. Это позволяло производить заражение без каких-либо действий пользователя — ему достаточно было перейти по ссылке, и Zeus устанавливался автоматически, конечно, если браузер был подвержен уязвимости (не имел соответствующего обновления безопасности). В процессе написания писем широко использовались методы социальной инженерии.
Некоторые администраторские панели Zeus имели функцию проверки FTP аккаунтов «на лету» — как только присылалась новая порция украденных учетных данных, производилась проверка на наличие аккаунтов FTP и такие аккаунты сразу проверялись. Если в результате проверки выяснялось, что доступ есть, отдельный скрипт производил поиск файлов на удаленном FTP сервере с расширениями .htm, .html и .php (так как сервис FTP часто используется для заливки контента на сайт) и в эти файлы вставлялся iframe или jscript, ведущий на какой-либо эксплоит пак. Таким образом, происходило заражение сайтов в автоматическом режиме.
В апреле 2010 года Zeus получил дополнительный функционал внедрения своего дроппера в исполняемые файлы (источник), 512 байт внедряемого кода производили следующие действия:
- загрузка удаленного файла, URL которого был задан внутри;
- запуск загруженного файла на исполнение;
- запуск оригинального кода зараженной программы.
Этот функционал чем-то напоминает вирусный. Однако если антивирус лечил зараженный файл, у вируса не было больше возможности запуститься. В данном же случае, сохранялся шанс, что антивирус удалит основной модуль Zeus и не тронет дроппер, что позволяет заразить компьютер повторно, возможно новой версией Zeus.
Конкурент
Приблизительно в декабре 2009 года на «черном рынке» появился конкурент Zeus — SpyEye, функционал и состав (билдер и админпанель) которого были очень схожи с Zeus, однако цена была ниже, для базовых модулей она составляла около 500$. В дальнейшем конкурентная борьба привела к появлению в SpyEye версии 1.0.7 от февраля 2010 года функции «Zeus Killer», предназначенной для удаления Zeus. Для завершения работы всех копий Zeus, SpyEye посылал команду через именованный канал, открываемый каждой копией Zeus для своих нужд. SpyEye обнаруживал Zeus по специфическому имени мьютекса, который использовался Zeus для обнаружения своей копии и предотвращения повторного запуска. Кроме того, SpyEye мог перехватывать отчеты, отправляемые Zeus, и таким образом не делать двойную работу. Еще одна новинка — модуль, созданный для обхода системы безопасности Rapport компании Trusteer, направленной на блокирование возможности внедрения в браузер вредоносных программ, которая была создана, в том числе, для противодействия Zeus. Билдер SpyEye, как и билдер Zeus, содержал в себе систему лицензирования, основанную на привязке к заданной аппаратной конфигурации. Она реализовывалась при помощи навесной защиты VMProtect.
По информации с форума, в октябре 2010 года создатель Zeus Slavik передал исходные коды своему конкуренту — разработчику SpyEye, и прекратил дальнейшую разработку. Код был передан человеку с ником Harderman, известным также как Gribodemon. По словам Harderman, исходные коды он получил на безвозмездной основе и брал на себя обслуживание всех бывших клиентов Slavik, в дальнейшем предполагалось некое слияние исходных кодов Zeus и SpyEye. И действительно, с января 2011 года исследователи антивирусных компаний начали обнаруживать новые гибридные версии SpyEye, их нумерация началась с версии 1.3.
Расценки на компоненты версии SpyEye 1.3.45, август 2011:
- билдер и админпанель — 2000$;
- модуль Web Injects для браузера Firefox — 2000$;
- модуль обхода защиты Rapport — 500$;
- модуль прокси Socks5 — 1000$;
- модуль доступа по протоколу RDP — 3000$;
- модуль FTP Back Connect — 300$;
- модуль кражи сертификатов из браузера Mozilla Firefox — 300$;
- модуль кражи учетных данных кредитных карт — 200$;
- модуль кражи учетных данных из браузеров Opera & Chrome (form grabber) — 1000$.
Руководство пользователя к этой версии доступно в персональном блоге XyliBox.
Zeus, version 2.1
В тоже время исследователи из компании RSA обнаружили некоторые факты, позволяющие усомниться в словах Slavik о выходе из бизнеса. В августе 2010 года, то есть за два месяца до «официального» объявления о прекращении работы над Zeus, был обнаружен ботнет, созданный при помощи бота Zeus, имевшего версию 2.1.0.10. Расследование показало, что комплект указанной версии не продавался на «черном рынке». Последующие обнаружения бота такого типа уверили экспертов RSA в том, что данной модификацией владел один человек (или группа лиц) — в противовес прошлым инцидентам конфигурационный файл бота версии 2.1.0.10 не претерпевал значительных изменений в течение длительного времени (ранее каждый оператор какого-либо ботнета на базе Zeus использовал свой уникальный конфигурационный файл).
Ключевой особенностью Zeus 2.1.0.10 стало изменение схемы связи с управляющими серверами. Теперь адреса серверов не были жестко заданы в конфигурационном файле. Список адресов формировался с помощью DGA (Domain Generation Algorithm — алгоритм генерации доменных имен). Ранее подобная техника неоднократно применялась в таких образцах ВПО, как Bobax, Kraken, Sinowal (a.k.a. Torpig), Srizbi и Conficker. По сформированным адресам Zeus искал свои командные сервера. Для защиты от перехвата управления производилась проверка цифровой подписи загружаемого файла в ходе своего обновления (так же при помощи Windows Crypto API). Для этого в коде Zeus присутствовал открытый ключ RSA длинной 1024 бит.
Исследователи из RSA в 2011 году смогли получить доступ к одному из серверов Zeus версии 2.1.0.10. Они обнаружили, что между августом 2010 и августом 2011, более 210 000 компьютеров связывались с этим сервером, на который было передано порядка 200 гигабайт данных с инфицированных компьютеров. Около 42% зараженных компьютеров находились в США. Удалось также выяснить, что один из логинов для авторизации доступа к этому командному серверу был «Slavik». Поэтому эксперты RSA предполагают, что Slavik на самом деле занялся созданием собственного ботнета (возможно, не один).
Продолжение здесь.