Главная→Блог
|
09 апр Flashfake — Mac OS X ботнет 19 мар Фреймворк Duqu: задача решена 07 мар Загадка фреймворка Duqu 25 ноя Тайна Duqu: часть пятая Станьте автором Стать автором нашего блога можно, достигнув рейтинга «+100». На ваш рейтинг влияет оценка ваших комментариев другими посетителями сайта. |
На прошлой неделе компания «Доктор Веб» сообщила об обнаружении ботнета Flashback (Flashfake), состоящего из машин с операционной системой Mac OS X. По данным компании, в состав ботнета входит более полумиллиона зараженных компьютеров Mac.
Мы откликнулись на это сообщение анализом новейшего варианта бота — Trojan-Downloader.OSX.Flashfake.ab.
Бот распространяется через зараженные вебсайты в виде Java-апплета, выдаваемого за обновление для Adobe Flash Player. Java-апплет запускает на выполнение загрузчик первого уровня, который загружает и устанавливает основной компонент троянской программы. Основной компонент представляет собой троянец-загрузчик, который постоянно соединяется с одним из командных (C&C) серверов и ожидает команд на загрузку и выполнение новых компонентов.
Бот находит свои C&C серверы по доменным именам, которые генерируются с помощью двух алгоритмов. Первый алгоритм основан на текущей дате, второй использует несколько переменных, которые хранятся в теле бота в зашифрованном виде. Шифрование основано на алгоритме RC4 и использует UUID (уникальный идентификатор компьютера) в качестве ключа.
Также в аналитике
В блоге
В предыдущем блогпосте про Фреймворк Duqu я писал про одну из нерешенных нами задач — определение языка, на котором написан необычный код, отвечающий за общение Duqu с C&C серверами. Нам, техническим специалистам, задача показалась очень интересной, и мы решили предложить IT-сообществу поучаствовать в ее решении.
Мы получили намного больше ответов, чем ожидали — более 200 комментариев и 60+ писем с указанием различных языков и фреймворков, которые могли быть использованы при создании кода Фреймворка Duqu. Мы хотим поблагодарить всех, кто участвовал в решении и помогал идентифицировать загадочный код.
Самыми популярными вариантами, которые вы предложили, были:
Также в аналитике
В блоге
В процессе анализа компонентов Duqu мы обнаружили интересную особенность в его основном компоненте, который реализует практически всю его бизнес-логику — в Payload DLL. Мы хотели бы поделиться полученной информацией и попросить о помощи в анализе данных.
На первый взгляд, Payload DLL выглядит как обычная загружаемая библиотека формата Windows PE, скомпилированная Microsoft Visual Studio 2008 (версия компоновщика 9.0). Код, расположенный в точке входа, абсолютно стандартный. Единственная экспортируемая функция под номером 1 тоже написана на MSVC++. Эта функция вызывается из PNF DLL и реализует весь функционал данной библиотеки – соединение и общение с C&C серверами, получение и выполнение дополнительных модулей троянца. Интересные детали обнаруживаются при более глубоком анализе кода, который вызывается этой функцией в процессе работы.
Содержимое секции кода Payload DLL типично для исполняемого файла, скомпонованного из нескольких исходных модулей. Секцию можно условно разделить на несколько разделов, каждый из которых соответствует одному или нескольким файлам исходного кода. Большая часть разделов присутствует в любой программе, написанной на C++, — это, например, функции стандартной библиотеки шаблонов STL, функции стандартной библиотеки языка и собственно код программы. Однако самый большой раздел, реализующий всю логику общения с C&C серверами, отличается от них во всем.
Содержимое секции кода Payload DLL
Этот раздел не типичен для C++ программ, потому что его исходный код – не C++. Код внутри раздела не обращается к другим функциям программы, написанным на C++, и не использует стандартную библиотеку языка, хотя используемые парадигмы явно указывают, что исходный текст был написан на объектно-ориентированном языке программирования. Мы назвали это Фреймворком Duqu.
Также в аналитике
В блоге
Драйвер является первым компонентом Duqu, который загружается в систему. По нашим данным, драйвер и другие компоненты этой вредоносной программы устанавливаются с помощью дроппера, использующего 0-day уязвимость (CVE-2011-3402). Драйвер прописывается в реестре по следующему пути: HKLM\System\CurrentControlSet\Services\. Конкретное имя ключа реестра отличается в разных версиях драйвера Duqu.
После загрузки драйвер расшифровывает маленький блок, содержащий ключ реестра и имя значения реестра, которое будет считано из этого ключа. Этот блок также содержит имя устройства, которое будет создано драйвером.
Все версии драйвера, которые нам известны, имеют одинаковое имя значения реестра: «FILTER».
Также в аналитике
В блоге