Тайна Duqu: Привет, «Mr. B. Jason» и «Dexter»

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

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

Наибольшего же успеха нам удалось добиться в расследовании инцидента под порядковым номером #1, описанным в прошлой публикации. Нам удалось не только обнаружить все недостающие файлы этого варианта Duqu, но также обнаружить источник заражения и сам файл-дроппер, содержащий эксплойт уязвимости в win32k.sys (CVE-2011-3402).

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

Даты инцидента коррелируют по времени с историей об обнаружении в Иране некого вируса «Stars». Тогда иранские специалисты так и не предоставили ни одной антивирусной компании образцов найденного вируса, и это необходимо признать серъезной ошибкой, которая повлекла за собой все последующие события. Вероятней всего, иранцами был обнаружен модуль кейлоггера, дополнительно загружающийся в систему и содержащий изображение галактики NGC 6745. Это может обьяснять название «Stars», данное обнаруженной вредоносной программе.

Не исключено, что иранские специалисты обнаружили только сам кейлоггер, при этом основной модуль Duqu и дроппер (включая документы с использованием неизвестной тогда уязвимости) могли остаться незамеченными.

Этап 1: проникновение, электронная почта

Атака проводилась на заранее выбранные цели. По понятным причинам мы не можем раскрыть название компании, объекта атаки в инциденте #1. Как и в инциденте, расследуемом Crysys Lab, атака производилась через электронную почту.

Объект был атакован дважды — 17 и 21 апреля 2011 года.

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

Мистер B.Jason был весьма настойчив и целеустремлен. Это не спам-рассылка, поскольку и тема письма, и имя файла адресованы именно к атакуемой компании.

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

Вторая атака оказалась успешной, и получатель открыл приложенный к письму doc-файл, содержащий эксплойт уязвимости и инсталлятор троянца.

Cкриншот оригинального документа .doc

На этой стадии атакующие использовали весьма интересный трюк. Сразу же после того, как получатель открыл файл, начинает работать эксплойт: он активен и находится в памяти, но ничего не делает! При этом оригинальный файл и MS Word могут быть уже закрыты.

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

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

На данном этапе схема в целом выглядит следующим образом:

Шеллкод эксплойта содержится в embedded шрифте, обрабатываемом системой win32k.sys. Шрифт назван «Dexter Regular», а в качестве его создателя указана компания Showtime Inc.

Это очередная «шутка» от авторов Duqu, поскольку Showtime Inc. является компанией — создателем известного телесериала «Dexter», о враче-криминалисте, который по совместительству является серийным убийцей, уничтожающим преступников. Так сказать, слуга закона, преступающий закон ради высшей справедливости.

Драйвер, загружаемый эксплойтом в ядро системы, имеет дату компиляции 31 августа 2007. Аналогичный же драйвер, найденный в дроппере от Crysys, датирован 21 февраля 2008. Если эта информация верна, то авторы Duqu должны были работать над этим проектом более четырех лет!

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

На этой же стадии дроппер пытается проверить наличие в реестре ключа:

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsZones4 «CF1D«.

Необходимо отметить, что в документе, опубликованном Symantec, говорится о ключе «CFID», — возможно, это опечатка.

Библиотека дроппера извлекает из своего тела содержимое секции «.init», в которой находятся заголовок с магическим идентификатором «CIGH» и дополнительными настройками, PNF (.DLL) и драйвер, устанавливаемые в систему. После распаковки содержимого секции выполняется проверка на соответствие текущей даты диапазону, установленному в заголовке секции «.init» дроппера. Если дата не попадает в требуемый диапазон, установки троянца не происходит.

В нашем варианте этот диапазон установлен как «Aug 17 2010 — Jul 18 2012». В образце дроппера, найденного Crysys, диапазон отличается: «Aug 17 2005 — Nov 02 2023».

Затем дроппер загружает в текущий процесс PNF (DLL) и передает управление её функции, экспортируемой под номером 4. Именно эта функция отвечает за установку в систему и запуск драйвера троянца и зашифрованной библиотеки (PNF DLL) — вместе с конфигурационным файлом. В конфигурационном файле указана дата заражения и период работы троянца в системе (по умолчанию — 30 дней, но затем этот срок может изменяться в зависимости от команд из центра управления).

В данном инциденте, как мы уже предполагали ранее, использовался уникальный набор файлов, отличающийся от ранее известных. Самым важным отличием является тот факт, что основной модуль троянца (PNF DLL) имеет дату создания 17 апреля — тот же самый день, когда была проведена первая атака на жертву. Это свидетельствует о том, что авторы формируют отдельный набор файлов под каждую конкретную жертву, делая это непосредственно перед атакой.

Обнаруженные нами файлы представляют собой следующий набор:

Driver Size Date Main DLL Size Date Config
adp55xx.sys 24960 03.11.2010 apd95xx.pnf 248320 17.04.2011 adp96xx.pnf
apd95xx.pnf 192512 17.04.2011

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

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

Этап II: сбор информации

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

После заражения системы и установления связи с сервером управления, очевидно, происходила загрузка и установка дополнительного модуля, известного как keylogger. Этот модуль обладет функционалом сбора информации о системе, снятия скриншотов, поиска файлов, перехвата паролей и так далее. До сих пор было известно о существовании как минимум двух вариантов данного модуля: один был обнаружен Crysys Lab (дата компиляции 1.06.2011), второй —Symantec (дата компиляции 10.08.2011).

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

На обоих компьютерах были обнаружены следы работы шпионского модуля. Это файлы с именами ~DFxxxxx.tmp (например, ~DF1EFxx.tmp ) и ~DQx.tmp (например, ~DQ2Cx.tmp).

Формат имени файла ~DF[five hex digit] отличается от имен временных файлов, создаваемых при работе MS Word, — те используют формат ~DF[four hex digit].

~DF-файлы содержат в себе сжатый идентификатор зараженной системы и начинаются со строки «ABh91AY&SY». ~DQ-файлы содержат в себе собранную информацию (списки процессов, скриншоты, информацию о приложениях). Эти файлы также сжаты и содержат похожую метку, отличающуюся одним символом «AEh91AY&SY».

В настоящий момент нам неизвестно, какой модуль создает файлы ~DF (файлы ~DQ создаются известным модулем-шпионом), и каково их точное назначение. На первом комьютере данные файлы датированы 27-м апреля, спустя 3 дня после заражения.

25 мая 2011 года, в ходе работы шпионского модуля был создан файл ~DQ181.tmp.

В нем содержится информация о сетевом окружении исходного зараженного компьютера. На следующий день, 26 мая 2011 зафиксировано заражение второго компьютера в сети. На нем создан файл-идентификатор ~DF.

Интересен тот факт, что на втором комьютере позднее был создан еще один ~DF-файл. Поизошло это 2 июня 2011 года. Эта дата совпадает с датой компиляции известного модуля-шпиона (01.06.2011). Возможно, именно в период 1-2 июня авторы Duqu производили установку этой новой версии модуля на все пораженные системы через сервер C&C.

Следы работы данного модуля видны по наличию файла ~DQ4.tmp, созданного 29 июня.

Таким образом, нами были обнаружены три файла ~DQ, созданные соответственно 25 мая, 29 июня и 24 августа. Мы заметили, что эти три дня являются средами. Возможно, это просто совпадение, возможно, за этим кроется что-то большее. Но из-за данного факта группу, стоящую за Duqu, можно называть Wednesday’s Gang 🙂

Троянец присутствовал в пораженных системах c 21 апреля и вплоть до конца октября 2011. Его конфигурационные файлы были установлены на период работы минимум в течение 121 дней, при этом переустановка основного модуля производилась еще в конце июня 2011.

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

Заключение

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

Итак, мы обнаружили, что:

  • Для каждой жертвы составляется отдельный набор атакующих файлов.
  • Каждый уникальный набор файлов использует отдельный сервер управления.
  • Атаки производились путем рассылки писем, содержащих doc-файл.
  • Рассылка производилась с анонимных почтовых ящиков, вероятно, через скомпрометированные компьютеры.
  • Известен как минимум один адрес электронной почты, с которого велась рассылка — bjason1xxxx@xxxx.com.
  • Для каждой жертвы составлялся отдельный doc-файл.
  • Эксплойт уязвимости содержится в шрифте, названном «Dexter Regular».
  • Атакующие изменяли шеллкод, варьируя диапазон дат возможного заражения.
  • После проникновения в систему атакующие загружают дополнительные модули и производят заражение соседних машин.
  • Наличие в системах файлов ~DF.tmp и ~DQ.tmp однозначно свидетельствует о заражении Duqu.

Мы не можем предоставить исходный doc-файл другим компаниям.

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

Мы можем говорить как минимум о 12 уникальных наборах файлов Duqu, известных нам в настоящее время. Рассмотренный в данной статье вариант нами именуется как вариант F. Подробная информация о других вариантах будет опубликована позднее.

Публикации на схожие темы

Добавить комментарий

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