Дуцюй – Злобная Матрешка

Введение 1 сентября 2011 г.

файл ~DN1.tmp был отправлен на сайт VirusTotal из Венгрии.

На тот момент файл был определен как вредоносный только двумя антивирусными системами — BitDefender и AVIRA. Так началась история Дуку.

Забегая вперед, нужно сказать, что по названию этого файла было названо семейство вредоносных программ Duqu. Однако этот файл представляет собой полностью независимый шпионский модуль с функциями кейлоггера, установленный, вероятно, с помощью вредоносного загрузчика-дроппера, и может рассматриваться только как «полезная нагрузка», загружаемая вредоносным ПО Duqu во время его работы, а не как компонент ( модуль) Дуцюя.

Один из компонентов Duqu был отправлен в сервис Virustotal только 9 сентября.

Его отличительной особенностью является наличие драйвера с цифровой подписью C-Media. Некоторые эксперты сразу же начали проводить аналогии с другим известным примером вредоносного ПО — Stuxnet, который также использовал подписанные драйверы.

Общее количество зараженных Duqu компьютеров, обнаруженных различными антивирусными компаниями по всему миру, исчисляется десятками.

Многие компании заявляют, что Иран снова является основной мишенью, но, судя по географическому распределению заражений, этого нельзя сказать наверняка.



Дуцюй – злобная матрешка

В этом случае уверенно следует говорить только о другой компании новомодным словом.

АПТ (расширенная постоянная угроза).

Процедура внедрения системы Расследование, проведенное специалистами венгерской организации CrySyS (Венгерская лаборатория криптографии и системной безопасности Будапештского университета технологии и экономики), привело к обнаружению установщика (дроппера), через который была заражена система.

Это был файл Microsoft Word с эксплойтом уязвимости драйвера win32k.sys (MS11-087, описан Microsoft 13 ноября 2011 г.

), отвечающего за механизм рендеринга шрифтов TTF. В шеллкоде эксплойта используется встроенный в документ шрифт под названием «Dexter Regular», создателем которого указана компания Showtime Inc. Как видите, создателям Duqu не чуждо чувство юмора: Декстер — серийный убийца, герой одноименного телесериала производства Showtime. Декстер убивает только (если это возможно) преступников, то есть нарушает закон во имя законности.

Вероятно, таким образом разработчики Duqu иронизируют, что занимаются незаконной деятельностью ради благих целей.

Отправка писем была сделана целенаправленно.

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

Таким образом, документ Word содержал следующие компоненты:

текстовый контент; встроенный шрифт; использовать шеллкод; Водитель; установщик (библиотека DLL).

В случае успеха шеллкод эксплойта выполняет следующие операции (в режиме ядра): была произведена проверка на повторное заражение; для этого наличие ключа 'CF1D' проверялось в реестре по адресу 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\4\'; если это было правильно, шеллкод завершил свое выполнение; были расшифрованы два файла — драйвер (sys) и установщик (dll); драйвер был внедрен в процесс Services.exe и запущен установщик; Наконец, шеллкод стерся нулями в памяти.

За счет того, что win32k.sys выполняется от имени привилегированного пользователя «Система», разработчики Duqu элегантно решили проблему как несанкционированного запуска, так и повышения прав (запуск под учетной записью пользователя с ограниченными правами).

После получения управления установщик расшифровал в памяти три блока данных, содержащихся в нем, содержащих: подписанный драйвер (sys); основной модуль (dll); данные конфигурации установщика (pnf).

В данных конфигурации установщика был указан диапазон дат (в виде двух временных меток — начала и окончания).

Инсталлятор проверял, включена ли в него текущая дата, и если нет, то завершал ее выполнение.

Также в данных конфигурации установщика были имена, под которыми были сохранены драйвер и основной модуль.

При этом основной модуль сохранялся на диске в зашифрованном виде.



Дуцюй – злобная матрешка

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

Главный модуль содержит собственный блок данных конфигурации.

При первом запуске он расшифровывался, в него вносилась дата установки, после чего снова шифровался и сохранялся основным модулем.

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

Все процедуры декодирования проводились только в памяти.

Эта сложная процедура установки была использована для минимизации возможности обнаружения антивирусным программным обеспечением.

Основной модуль Основной модуль (ресурс 302), согласно информация компании «Лаборатория Касперского», написанный с использованием MSVC 2008 на чистом C, но с использованием объектно-ориентированного подхода.

Такой подход нехарактерен при разработке вредоносного кода.

Как правило, такой код пишут на языке C, чтобы уменьшить размер и избавиться от неявных вызовов, присущих C++.

Здесь существует определенный симбиоз.

Плюс использовалась событийно-ориентированная архитектура.

Сотрудники «Лаборатории Касперского» склоняются к теории, что основной модуль был написан с использованием надстройки препроцессора, позволяющей писать код на языке C в объектном стиле.

Основной модуль отвечает за процедуру приема команд от операторов.

Duqu предоставляет несколько методов взаимодействия: с помощью протоколов HTTP и HTTPS, а также с помощью именованных каналов.

Для HTTP(S) были указаны доменные имена командных центров и предусмотрена возможность работы через прокси-сервер — для них были указаны имя пользователя и пароль.

Для канала указывается IP-адрес и его имя.

Указанные данные хранятся в основном блоке данных конфигурации модуля (в зашифрованном виде).

Чтобы использовать именованные каналы, мы запустили собственную реализацию RPC-сервера.

Он поддерживал следующие семь функций: вернуть установленную версию; внедрить dll в указанный процесс и вызвать указанную функцию; загрузить dll; запустите процесс, вызвав CreateProcess(); прочитать содержимое данного файла; записать данные в указанный файл; удалить указанный файл.

Именованные каналы можно было использовать в локальной сети для распространения обновленных модулей и данных конфигурации между зараженными Duqu компьютерами.

Кроме того, Duqu мог выступать в качестве прокси-сервера для других зараженных компьютеров (которые не имели доступа к Интернету из-за настроек брандмауэра на шлюзе).

Некоторые версии Duqu не имели функциональности RPC. Известные «полезные нагрузки» Symantec обнаружила как минимум четыре типа полезных данных, загруженных по команде из центра управления Duqu. При этом только один из них был резидентным и скомпилирован в виде исполняемого файла (exe), который сохранялся на диске.

Остальные три были реализованы как библиотеки dll. Они загружались динамически и выполнялись в памяти без сохранения на диск.

Резидентной «полезной нагрузкой» был шпионский модуль ( инфокрад ) с функциями кейлоггера.

Именно с отправки его в VirusTotal началась работа над исследованием Duqu. Основной шпионский функционал находился в ресурсе, первые 8 килобайт которого содержали часть фотографии галактики NGC 6745 (для маскировки).

Здесь следует напомнить, что в апреле 2012 года в некоторых СМИ была опубликована информация ( http://www.mehrnews.com/en/newsdetail.aspxЭNewsID=1297506 ) что Иран подвергся воздействию некоего вредоносного ПО «Старс», при этом подробности инцидента не разглашаются.

Возможно, именно такой образец «полезной нагрузки» Дуку был обнаружен тогда в Иране, отсюда и название «Звезды».

Шпионский модуль собрал следующую информацию: список запущенных процессов, информация о текущем пользователе и домене; список логических дисков, включая сетевые диски; скриншоты; адреса сетевых интерфейсов, таблицы маршрутизации; файл журнала нажатий клавиш клавиатуры; названия открытых окон приложения; список доступных сетевых ресурсов (совместно используемых ресурсов); полный список файлов на всех дисках, включая съемные; список компьютеров в «сетевом окружении».

Еще один шпионский модуль( инфокрад ) представлял собой вариацию уже описанного, но скомпилированную как библиотеку dll; из него были удалены функции кейлоггера, составления списка файлов и листинга компьютеров, входящих в домен.

Следующий модуль ( разведка ) собранная системная информация: является ли компьютер частью домена; пути к системным каталогам Windows; версия операционной системы; текущее имя пользователя; список сетевых адаптеров; системное и местное время, а также часовой пояс.

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

По умолчанию это значение было установлено на 30 или 36 дней в зависимости от модификации Duqu и уменьшалось на один каждый день.

Командные центры 20 октября 2011 года (через три дня после распространения информации об открытии) операторы Дуцюя провели процедуру по уничтожению следов функционирования командных центров.

Командные центры располагались на взломанных серверах по всему миру — во Вьетнаме, Индии, Германии, Сингапуре, Швейцарии, Великобритании, Голландии и Южной Корее.

Интересно, что на всех идентифицированных серверах работала версия CentOS 5.2, 5.4 или 5.5. Операционные системы были как 32-битными, так и 64-битными.

Несмотря на то, что все файлы, связанные с работой командных центров, были удалены, специалистам «Лаборатории Касперского» удалось восстановить часть информации из LOG-файлов из резервного пространства.

Самый интересный факт: злоумышленники на серверах всегда заменяли стандартный пакет OpenSSH 4.3 на версию 5.8. Это может указывать на то, что для взлома серверов использовалась неизвестная уязвимость в OpenSSH 4.3. Не все системы использовались в качестве командных центров.

Некоторые, судя по ошибкам в логах sshd при попытке перенаправить трафик на порты 80 и 443, использовались как прокси-сервер для подключения к конечным командным центрам.

Даты и модули В документе Word, распространенном в апреле 2011 года и проверенном «Лабораторией Касперского», содержался установочный драйвер загрузки с датой компиляции 31 августа 2007 года.

Аналогичный драйвер (размер — 20608 байт, MD5 — EEDCA45BD613E0D9A9E5C69122007F17) в документе, найденном в лабораториях CrySys. имел дату компиляции 21 февраля 2008 года.

Кроме того, специалисты «Лаборатории Касперского» обнаружили драйвер автозапуска rndismpc.sys (размер — 19968 байт, MD5 — 9AEC6E10C5EE9C05BED93221544C783E) с датой 20 января 2008 года.

Компоненты с пометкой 2009 не обнаружены.

Судя по временным меткам компиляции отдельных частей Duqu, его разработка могла датироваться началом 2007 года.

Самое раннее его проявление связано с обнаружением временных файлов типа ~DO (вероятно, созданных одним из шпионских модулей), дата создания которого 28 ноября 2008 года ( статья «Duqu и Stuxnet: Хронология интересных событий»).

Самая последняя дата, связанная с Duqu, — 23 февраля 2012 г.

, она указана в загружаемом драйвере установщика, обнаруженном Symantec в марте 2012 г.

Использованные источники информации: серия статей о Дуку от «Лаборатории Касперского»; Аналитический отчет Symantec «W32.Duqu — предшественник следующего Stuxnet» , версия 1.4, ноябрь 2011 г.

(pdf).

Теги: #duqu #киберугроза #информационная безопасность

Вместе с данным постом часто просматривают: