Пользователь
0,0
рейтинг
8 декабря 2012 в 15:20

Разработка → Эволюция Zeus. Part II

Начало здесь.

Файловый инфектор


Идея заражения файлов получила свое развитие во вредоносной программе PE_LICAT, обнаруженной Trend Micro в октябре 2010 года. PE_LICAT представляет собой продвинутый дроппер Zeus, его основная функция — загрузка и запуск новых файлов Zeus с удаленных серверов. В исполняемые файлы внедряется 1771 байт вредоносного кода. PE_LICAT использует те же механизмы, что и в Zeus 2.1.0.10 — DGA с идентичным алгоритмом и процедуру проверки подписи загружаемого файла. Подробное описание DGA приведено в отчете Trend Micro «File-Patching ZBOT Variants» pdf, eng).

Вкратце — в DGA используется функция создания хэша из Windows Crypto API. Список доменов формировался при запуске по специальному алгоритму путем хэширования текущей даты и минуты (час не использовался). Кстати, во многих источниках ошибочно пишут то 800, то 1020 уникальных доменов (эти константы действительно используются в алгоритме). На самом деле их было всего 60 в день (минуты умножались на 17 и брался остаток от деления на 1020, 1020/17=60). Хэши переводились в ASCII коды и к ним добавлялись префиксы доменов верхнего уровня .biz, .info, .org, .com, .net, а также строка /forum. Следует отметить, что PE_LICAT не является вирусом в прямом смысле этого слова (как его классифицирует Kaspersky Lab) — он не способен самостоятельно заражать файлы. Запуск процедуры заражения файлов инициирует Zeus из семейства 2.1, получивший название TSPY_ZBOT.BYZ в классификации Trend Micro.

Полный цикл распространения выглядел следующим образом:
TSPY_ZBOT.BYZ запускается (автоматически путем при посещении сайта или в результате обновления предыдущей версией Zeus);
TSPY_ZBOT.BYZ извлекает из себя PE_LICAT;
TSPY_ZBOT.BYZ инфицирует при помощи PE_LICAT исполняемые файлы (в том числе на съемных носителях).
В дальнейшем TSPY_ZBOT.BYZ и PE_LICAT производили загрузку файла Zeus версии TSPY_ZBOT.SMEQ (по классификации Trend Micro) с доменов, созданных DGA.

Последователи дела Zeus


Несмотря на заявление Slavik о передаче всего кода, исходный код Zeus 2.0.8.9, начиная с февраля 2011 года, стал предлагаться на продажу. В конечном итоге в мае 2011 года произошла утечка исходных кодов данной версии в свободный доступ. В архиве с исходниками отсутствовали некоторые файлы:

  • peinfector.cpp;
  • peinfector.h;
  • peloader32.asm;
  • worm.cpp;
  • worm.h.

Предполагается, что это и есть модуль PE_LICAT (Murofet).

Естественно, сразу появились люди, желающие продолжить начатое на базе этих исходников. Для примера можно упомянуть проект «ICE IX» (назван как вирус из фильма «Рекрут»?), который не предлагал ничего нового и являлся попыткой заработать денег на известном имени. Но «достойный» последователь нашелся, это — проект Citadel. Его ключевой особенностью стало создание онлайн-платформы, организованной по принципу социальной сети. Здесь заказчики могут запрашивать новые функции, сообщать об ошибках и добавлять собственные модули, что превращает процесс разработки в некое подобие opensource-проекта. Также организуется система технической поддержки покупателей, выражающаяся в постоянной поддержке Citadel в актуальном состоянии. Так, авторы сообщают, что они стремятся сделать цикл обновления Citadel меньше цикла выпуска новых антивирусных баз, что позволяет долгое время не обнаруживаться на зараженном компьютере. Как заявляют разработчики, в Citadel исправлены все имеющиеся в ранних версиях Zeus изъяны, включая модуль по сбору данных при работе в Google Chrome. Помимо этого была добавлена возможность записи и передачи видео.

Впервые ботнет на базе Citadel был обнаружен в декабре 2011 года исследователи компании Securlet, сейчас количество ботнетов на базе Citadel исчисляется десятками.

Тогда базовый пакет Citadel продавался за 2399$, цена «аренды» составляла 125$ в месяц, дополнительные модули покупаются отдельно. Например, 395$ стоит модуль, который позволяет боту обновляться автоматически. Апдейты распространяются посредством Jabber, каждый апдейт стоит 15$.

В октябре 2012 года Citadel версии 1.3.4.5 (конструктор бота и панель управления) была замечена в открытом доступе. Возможно, эта утечка версии является своеобразной рекламной кампанией, так как в этом же месяце вышла новая версии Citadel 1.3.5.1 «Rain Edition». Руководство пользователя к этой версии доступно в персональном блоге XyliBox, из него можно узнать подробности о возможностях, нововведениях, установке и конфигурированию отдельных модулей. Цена базового комплекта последней версии составляет $3391, что на 41% больше первоначальной цены годичной давности. Как и прежде, ежемесячная аренда и модули оплачиваются отдельно.

Из последних «громких» событий можно отметить обнаружение в августе 2012 года специалистами компании Trusteer бота Citadel, модифицированного для атак на инфраструктуру аэропорта. При помощи Citadel злоумышленники могут получить контроль над защищенным VPN-соединением между ПК сотрудника аэропорта, работающим в удаленном режиме, и интерфейсами компьютерных систем, предназначенных для обеспечения работы аэропорта. Какой именно аэропорт стал целью атаки, не сообщается. Атака осуществляется следующим образом — сначала перехватывается пароль и имя пользователя, вводимое в форму подключения к VPN. Далее задействуется упрощенный однофакторный режим аутентификации вместо двухфакторного (нажатием на кнопку «Get Image»). В результате этого вместо подтверждения по SMS пользователю будет демонстрироваться картинка (проверочный код) с десятью цифрами. Пользователь затем сопоставляет свой пароль со строкой цифр в изображении для создания «одноразового» пароля. Таким образом, получив цифры с проверочной картинки (путем снимков экрана) и пароль, а также зная алгоритм генерации «одноразового» пароля, можно легко его вычислить и войти в систему.

Интересный факт, что если на атакованном компьютере используется русская или украинская раскладка, Citadel самостоятельно деактивируется. Ранее уже отмечалось, что семейство Zeus разрабатывается русскоязычными программистами. Что на самом деле движет создателями — то ли некий «патриотизм», то ли из-за нежелания попадать в поле зрения отечественных правоохранительных органов (как известно к преступникам применяются правовые нормы страны, где произошло преступление). С другой стороны, в России распространение Интернет банкинга и системы электронных платежей через Интернет запаздывает по сравнению со странами Запада, так что распространение банковских троянских программ не имело бы большой финансовой отдачи.

Zeus, version 3 — Gameover


В версии Zeus 2.1 была сделана попытка уйти от жестко заданного командного центра и перехода к более защищенной от действий антивирусных компаний системе управления (использование DGA). Как выяснилось позже, создатели Zeus продолжили свои изыскания в данной области.

В октябре 2011 года Роман Хюсси, создатель ZeusTracker, исследуя последний полученный вариант Zeus, заметил наличие странного UDP-трафика. Дальнейший анализ показал, что новый вариант Zeus имел несколько IP-адресов в конфигурационном блоке, и компьютеры с этими IP отвечали инфицированной системе. В течении 24 часов было выявлено около 100 тысяч уникальных IP адресов, с которыми связывалась новая модификация. Большая часть зараженных компьютеров была расположена в Индии, Италии и США. Так было установлено, что Zeus перешел на использование P2P механизма обновления себя и своих блоков данных конфигурации. Из-за использования названия скрипта gameover.php при обращении командного центра, для этой версии употребляется название Gameover Zeus. Это достаточно символично — как видно, «игры» c Zeus давно закончились.

Механизм Zeus P2P (ZP2P) основывался на протоколе Kademlia. Компьютер (узел) в сети ZP2P идентифицировался уникальным идентификатором (UID), который создавался во время первого запуска. Каждый экземпляр Zeus в ZP2P имел «таблицу соседей», хранящуюся в памяти. Этот массив содержит список около 30 соседних узлов в сети ZP2P — их UID, IP-адрес и номер порта UDP. В ZP2P сети использовалось несколько типов соединений:

  • для обмена информацией о версии блока данных конфигурации (UDP);
  • для обмена информацией об узлах в «таблице соседей» (UDP);
  • для обмена двоичными данными — основного модуля и блоков данных конфигурации (с использованием протокола TCP).

DGA претерпел некоторые изменения, в частности, доменов верхнего уровня стало 6 — ru, com, biz, info, org, net (источник). DGA использовался в качестве «страховочного» варианта, если связь не могла быть установлена посредством ZP2P. В конечном итоге блоки данных конфигурации распространялись только через ZP2P, что затрудняло выявление управляющих центров. Кстати, управляющие центры теперь больше представляли собой хранилище украденной информации и сбора статистики, чем панель для отдачи ботам команд.

В феврале 2012 года исследователи компании Symantec обнаружили очередной вариант Zeus, использующий ZP2P. Данная модификация содержала в себе встроенный web-сервер на базе Nginx. Протоколы связи в ZP2P стали использовать только UDP, для затруднения отслеживания потоков данных Zeus. Теперь бот получил возможность загрузки исполняемых файлов через протокол HTTP от других ботов. Таким образом, каждый бот мог выступать в качестве своеобразного командного центра или выступать в качестве посредника (прокси) в цепочке управления. Такая же техника использовалась в ботнете Waledac/Kelihos версии С, возродившемся в начале 2012 года — через два года после закрытия при содействии Microsoft и ряда антивирусных компаний в 2010 году.

Интересно, что ботсеть ZP2P использовалась для распространения двух вредоносных программ сторонних разработчиков — фальшивого антивируса и прокси-сервера, чего ранее за Zeus не замечалось. С целью оценки распространения этой версии Zeus, специалисты Symantec произвели мониторинг работы сети ZP2P. В период с апреля по июль 2012 года было зафиксировано 678.205 уникальных UID и 1.570.871 уникальных IP. Не все из данных IP были доступны, что объясняется нахождением за firewall или nat. К тому же провайдеры Интернета используют пул динамических адресов, поэтому к одному UID могли относиться разные IP адреса из диапазона пула. Наибольшее количество заражений приходилось на США (29.2%).

Как и прежде, основным источником заражения были письма, содержащие ссылки на вредоносные сайты, чаще всего перенаправлявший запросы браузера на эксплоит пак BlackHole. Благодаря этому установка вредоносных программ происходит без каких-либо действий пользователя (кроме просмотра зараженной страницы). Но на сей раз BlackHole загружал на компьютеры не сам P2P Zeus, а троянский загрузчик (trojan downloader) Pony. Pony представляет собой очередное crimeware, основная функция которого — загрузка и запуск вредоносных программ в обход средств антивирусной защиты. Pony имеет свою собственную админпанель, где отображается статистика успешных загрузок и запусков. Таким образом, установка P2P Zeus производилась следующим образом:

  • пользователь получает письмо с ссылкой на вредоносный сайт;
  • зайдя на этот сайт, BlackHole инициирует запуск загрузчика Pony на компьютере пользователя;
  • Pony связывается со своим командным серверов и получает от него инструкции на загрузку, собственно, файла Zeus (с трех разных серверов).

Как видно, разработчики Zeus проделали большую работу по совершенствованию управления своим «детищем». Механизмы управления прошли несколько стадий в своем развитии:

  • жестко заданные серверы (ver 1 и 2);
  • использование DGA для обращения к динамически создаваемым доменным именам (ver 2.1 или 2+);
  • DGA и гибридная схема P2P, где боты связывались между собой и сервером (version 3 или Gameover Zeus).

Продолжение здесь.
@nuklearlord
карма
83,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

Комментарии (18)

  • 0
    Отличный сериал, не только первый сезон! Правильно понимаю, что для защиты от заражения достаточно достаточно добавить на компьютер русскую или украинскую раскладку?
    • +1
      Только для некоторых версий Citadel. А насчет сериала — по моим наблюдениям, большой текст несколько сложен для восприятия. Да и потом, материал не так уж легко пишется — нужно переварить кучу информации, тем более на английском
  • +6
    Читая про эволюцию троянов, вирусов и других зловредов всегда возникает вопрос: а как они это всё тестируют? Участвует ли там Project Manager, есть ли тестировщики, Bug Tracking-овая система, техзадание, Unit-тесты, CI? Ведь при разработке такого рода программ не стоит ожидать Bug Report-ов от конечных пользователей :) В частности реализация ZP2P — это не такой простой шаг. Его наверняка как-то тестировали, проверяли.
    • +3
      Я не думаю, что это так сложно — создать тестовый полигон. Меня удивляет, как в антивирусных конторах работают. Выходит, типа, очередной троян, они его потрошат и думают: «блин, и это мы тоже не предусмотрели».
  • +1
    Эту бы энергию, да в мирное русло! Статьи очень интересные, спасибо.
  • 0
    Понравилась шутка с ЯПлакалъ, где репостили эту статью. Краткое содержание, первая и последняя строка: «Бот Zeus, пожалуй, один из самых известных представителей вредоносного программного обеспечения». «В этом нет никаких сомнений». =)
  • 0
    а как же pinch, от coban2k?
    • 0
      Да, возможно стоило его упомянуть, но он не относится непосредственно к семейству Zeus. Да и направленность у него немного другая — кража аккаунтов Instant Messenger, E-Mail и паролей в браузере. Соответственно и цена ниже.
      • 0
        я упомянул этого трояна потому что считаю, что он тоже создал какое-то «волнение» когда появился (как минимум рунет), на его базе ведь потом и xinch сделали, думаю и еще что-то делали.

        я просто как раз таки в то время начал увлекаться всей этой кухней (правда не долго :) ), «хаки, трояны и прочее» и как-то отложилось это у меня в памяти.
        • 0
          Xinch по сути — тот же Pinch, только конфигуратор был для него написан на делфи удобный :)
  • 0
    Недавно обдумывал (просто ради любопытства) что ботнет можно делать без центрального сервера, получая команды или обновления через P2P, проверяя их на подпись.Т.е. что-то похожее на то как Bitcoin принимает транзации. И как я понял именно так и работает последняя версия этого ботнета. Мне кажется что с такого рода система довольно тяжело будет бороться, т.к. сложно будет отследить с какого узла была первый раз отправлена команда.
  • +2
    Так и есть. Кстати, может есть смысл, если я напишу обзорную статью, где будет немного раскрыта тема криптографии и технологий p2p применительно к вредоносным программам?
  • 0
    Смысл есть.

    А вот предсказание, что Zeus уйдет от p2p и перейдет в i2p, развертывая не nqix, а ява-сервер и не будет больше айпи в сети для обмена а придется только хэши сопостовлять.

    Я просто как раз работаю сейчас над этой проблемой, чтобы попытаться определить степень риска, если это случится.
    • 0
      А смысл переходить на i2p? И так все нормально работает.
      • 0
        Смысл в том, что сейчас надо попытаться подписаться ключом и встать в сеть, чтобы обезвредить ботнет. Так уже было ведь в прошлом году.
        • 0
          А где это вы ключ возьмете?
          > Так уже было ведь в прошлом году
          Ссылку в студию!
          И, извините за назойливость, причем тут i2p?
  • 0
    "… крайней версии Zeus..."

    Вы правда так говорите?
    • +1
      Поправил

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.