Прежде всего мы считаем необходимым внести ясность в некоторую путаницу с именами файлов и с самими файлами, относящимися к данному инциденту. Для полного понимания ситуации необходимо знать, что на самом деле речь идет о двух (как минимум) разных вредоносных программах. Все, что было сказано в прошедшие сутки о связи Duqu со Stuxnet, в большинстве случаев относится только к первой из этих программ.
Ее основной модуль по сути состоит из трех компонентов:
- драйвер, который осуществляет внедрение dll в системные процессы;
- dll, которая содержит дополнительный модуль и взаимодействует с центром управления;
- файл конфигурации.
Именно этот комплекс и имеет максимальное сходство со Stuxnet, как по внутренней структуре, так и поведению в системе. Однако название Duqu не имеет к основному модулю практически никакого отношения — оно исходит из имен файлов, которые создает в системе совершенно другая вредоносная программа–шпион!
Эта вторая программа в основном является кейлоггером, но также может собирать разнообразную дополнительную информацию. Она была обнаружена у одной из пострадавших компаний вместе с описанным выше основным модулем. С учетом возможностей основного модуля по загрузке дополнительных компонент, на основании этого было сделано предположение о связи этих двух вредоносных программ. В ходе своей работы троянец-шпион сохраняет собранные данные в файлы с именами вида ~DQx.tmp. По этим названиям и было дано имя, под которым теперь подразумевается и основной модуль.
На самом деле код троянца-шпиона свидетельствует о том, что кейлоггер в какой-то степени связан с основным модулем, и вероятней всего он действительно был когда-то им загружен. Что же касается функционала, то это совершенно самостоятельная вредоносная программа, которая может работать и без основного модуля. Точно так же, как и основной модуль может работать без наличия в системе троянца-шпиона. Однако связи между кейлоггером и Stuxnet не столь очевидны, так что его с очень большой натяжкой можно назвать в лучшем случае «внуком», но уж точно никак не «сыном» Stuxnet 🙂
Еще год назад, во время анализа Stuxnet, мы пришли к выводу, что имеем дело с платформой-носителем, к которой был добавлен отдельный модуль, отвечавший за работу с PLC.
По сути, Stuxnet был настоящей ракетой — у нее был разгонный модуль (собственно червь) и боеголовка (блок PLC).
Мы предположили, что Stuxnet, вероятно, разрабатывался двумя разными командами, которые могли даже не знать о существовании друг друга или о цели проекта.
Именно часть, отвечающую за распространение червя и его работу в системе, могли использовать снова, но уже с другой «боеголовкой».
Это и произошло с Duqu. Точнее, в свет была выпущена версия без «боеголовки» — но с возможностью установки любой «боеголовки» в любой момент времени против любой конкретной цели.
Совершенно необходимо разобраться с последовательностью событий, по крайней мере, с общеизвестной их частью, о которой сейчас можно говорить публично.
История обнаружения и детектирования файлов Duqu
Троянец-шпион
Как сейчас уже установлено и признано антивирусными компаниями, первое «знакомство» индустрии с файлами Duqu состоялось 1 сентября 2011, когда некто из Венгрии отправил файл с именем ~DN1.tmp для проверки на сервис Virustotal.
Имя файла говорит о том, что он скорее всего был обнаружен на реальной зараженной системе. Этим файлом являлся не компонент основного модуля, а тот самый троянец-шпион, который вероятно устанавливался на уже зараженную Duqu систему.
Когда файл был отправлен на проверку, он детектировался сигнатурно только четырьмя антивирусами, но по факту только двумя антивирусными движками — BitDefender (как Gen:Trojan.Heur.FU.fuW@aGOd0Wpi) использующими движок BitDefender F-Secure и G-DATA, а также AVIRA (как TR/Crypt.XPACK.Gen3).
Это весьма интересный факт, который говорит о том, что авторы Duqu не очень беспокоились о том, что троянец-шпион детектируется этими антивирусами. С другой стороны, именно это детектирование и привело к его обнаружению со всеми последствиями.
В дальнейшем детектирование данного файла было добавлено многими антивирусными компаниями. Основной период добавления сигнатур пришелся на период с 9 по 19 сентября. «Лаборатория Касперского» добавила детектирование данного файла как Trojan.Win32.Inject.bjyg 14 сентября. В тот же день он был добавлен и Microsoft под именем Trojan:Win32/Hideproc.G.
Факт сигнатурного детектирования этого файла 1 сентября рядом антивирусов, к сожалению, не означает, что ими детектировался основной модуль Duqu. Как мы увидим дальше, ситуация была совершенно иной.
Драйвер
Первый «настоящий» Duqu-файл также был отправлен для проверки на VirusTotal и также предположительно из Венгрии. Произошло это 9 сентября.
Файл был послан с оригинальным именем cmi4432.sys, и это указывает на вариант драйвера, имеющий цифровую подпись компании C-Media.
1 | Publisher | C-Media Electronics Incorporation |
2 | Product | C-Media Electronics Incorporation |
3 | Internal name | cmi4432.sys |
4 | File version | 4.2.0.15 |
5 | Original name | cmi4432.sys |
6 | Signers | C-Media Electronics Incorporation VeriSign Class 3 Code Signing 2009-2 CA Class 3 Public Primary Certification Authority |
7 | Description | Onboard Sound Driver |
8 | Size | 29568 bytes |
Ни 9 сентября (в момент проверки на VT), ни позже, ни один антивирусный продукт из 43, представленных на Virustotal, не имел детектирования данного файла — вплоть до публикации 17 октября информации о Dugu. Все детектирующие вердикты появились уже после обнародования информации.
Это неоспоримый факт, который доказывает, что авторы Duqu создавали его весьма тщательно и, несмотря на сходство со Stuxnet, смогли изменить код драйвера настолько, что обошли существующие детектирующие Stuxnet записи во всех популярных антивирусах.
Интересно, как коррелирует время отправки из Венгрии файлов на VirusTotal и сама страна Венгрия с единственной публичной информацией о данных файлах, доступной ранее. Мы говорим о записях некоего венгерского блоггера, особенно о записи от 8 сентября, в которой он опубликовал MD5 файлов троянца-шпиона и драйвера!
Looking for friends of foes of 9749d38ae9b9ddd81b50aad679ee87ec to speak about. You know what I mean. You know why. 0eecd17c6c215b358b7b872b74bfd800 is also interesting. b4ac366e24204d821376653279cbad86 ?
Мы провели небольшое расследование и пришли к выводу, что венгерский блоггер, вероятно, работает в компании Data Contact (http://www.dc.hu/), которая является интернет-провайдером и хостером в Будапеште. Возможно, эта компания — или кто-то из ее клиентов — обнаружила данные файлы на своих компьютерах.
Честно говоря, нам, как и ряду других антивирусных компаний, достоверно известна как минимум одна компания в Венгрии, которая стала жертвой Duqu, однако данная информация пока не может быть оглашена.
Второй вариант драйвера также был отправлен на VT, и снова предположительно из Венгрии. Случилось это 18 сентября.
Файл имел оригинальное название jminet7.sys. Этот драйвер не имеет цифровой подписи и выдает себя за файл от компании JMicron.
1 | Publisher | JMicron Technology Corporation |
2 | Product | JMicron Volume Snapshot |
3 | Description | JMicron Volume Snapshot Driver |
4 | File version | 2.1.0.14 |
5 | Original name | jminet7.sys |
6 | Internal name | jminet7.sys |
7 | Size | 24960 bytes |
И вновь, как и в ситуации с первым драйвером, ни одного детектирования на Virustotal вплоть до 18 октября.
Что касается PNF-файлов, которые являются зашифрованными DLL и файлами конфигурации, с которыми работают вышеописанные драйвера: ни один из них не попадал в руки антивирусных компаний и не проходил через Virustotal вплоть до момента публикации официальной информации о Duqu.
История продолжается…
Уже после того как вся информация о Duqu была собрана и опубликована, были обнаружены новые файлы. Это говорит о том, что создатели Duqu внимательно следят за ситуацией, оперативно реагируют на происходящее и не намерены останавливаться на достигнутом.
3-й вариант драйвера
18 октября было зафиксировано появление нового варианта драйвера, отличающегося датой создания и информацией о файле. На следующий день, 19 октября, данный файл практически синхронно попал на VirusTotal из двух разных источников — из Австрии и Индонезии!
В отличие от предыдущих драйверов, использовавших названия от C-Media и Jmicron, новый вариант выдает себя за драйвер от IBM.
1 | Publisher | IBM Corporation (c) |
2 | Product | IBM ServeRAID Contoller |
3 | Description | IBM ServeRAID Controller Driver |
4 | File version | 4.33.0.12 |
5 | Original name | nfrd965.sys |
6 | Internal name | nfrd965.sys |
7 | Size | 24960 bytes |
Файл не содержит цифровой подписи и имеет дату компиляции 17 октября 2011 года.
4-й вариант драйвера
Ночью 20 октября через VirusTotal мы получили еще один драйвер, отличающийся от вышеописанных. Он был отправлен из Великобритании.
Он также не содержит цифровой подписи и также имеет ту же дату компиляции , что и драйвер «от IBM» — 17 октября 2011 года.
1 | Publisher | Adaptec Inc (c) |
2 | Product | Adaptec Windows 321 Family Driver |
3 | Description | Adaptec StorPort Ultra321 SCSI Driver |
4 | File version | 2.1.0.14 |
5 | Original name | adpu321.sys |
6 | Internal name | adpu321.sys |
7 | Size | 24960 bytes |
Обратите внимание на название файла — adpu321.sys. Оно весьма интересно, и дальше мы расскажем, почему.
Цель — весь мир ?
Вспомните историю Stuxnet. Сразу же после его обнаружения и добавления детектирования, и мы, и другие компании зафиксировали десятки тысяч зараженных систем с эпицентром в Иране. Это дало однозначное указание на вероятную цель атаки, и последующие исследования только подтвердили эту версию.
Как же выглядит «картина мира» для Duqu? Для анализа мы использовали нашу облачную систему Kaspersky Security Network, которая позволяет нам в режиме реального времени отслеживать любые вредоносные проявления на компьютерах наших клиентов.
Результаты получились неожиданными. За более чем сутки с момента добавления детектирования всех известных компонентов Duqu мы зафиксировали только ОДИН реальный случай заражения данной вредоносной программой.
Да, страна, в которой находится зараженный пользователь, весьма специфична и кардинально отличается от всех тех стран, которые мы упоминали в этом отчете ранее (Венгрия, Австрия, Индонезия, Великобритания).
В настоящий момент мы устанавливаем контакт с пострадавшим пользователем для проведения более глубокого расследования и поиска недостающих компонентов Duqu, которые, возможно, там имеются. Сейчас мы можем только констатировать факт, что обнаруженный там вредоносный драйвер, имеет совершенно новое имя adp95xx.sys, впрочем, весьма схожее с adpu321.sys. Это означает, что по сути дела за последние двое суток в мире было обнаружено ТРИ различных варианта драйвера от Duqu. И не исключено, что на самом деле их гораздо больше.
Крайне важно отметить и то, что мы видим только единичное заражение основным модулем Duqu — и не видим ни одного заражения троянцем-шпионом. Это может говорить о том, что либо в данном случае у клиента установлен какой-либо другой неизвестный вредоносный модуль, либо мы имеем дело с тем самым случаем, когда «боеголовки» просто нет.
Де-факто это означает, что Duqu может существовать в различных вариантах — и не обязательно с кейлоггером, вокруг которого сейчас столько шума и который назван единственным известным функционалом. С нашей точки зрения могут существовать и другие модули, которые могут делать что угодно.
В отличие от Stuxnet, который поразил множество систем, но искал одну-единственную цель, Duqu поражает очень небольлшое число вероятно очень специфических объектов по всему миру, но при этом может использовать совершенно разные модули для каждой из них.
При этом до сих пор никем не обнаружен файл-инсталлятор (дроппер), который каким-то образом должен первоначально проникнуть в систему и установить там и драйвер, и dll. Именно этот файл может быть и червем, и содержать в себе различные эксплойты уязвимостей.
Именно этот файл является важнейшим ключом к разгадке тайны Duqu.
Его поиски все еще продолжаются…
P.S. Уже после публикации этого текста мы обнаружили в Сети интересную ссылку. Там приведена информация еще об одном драйвере Duqu, имя которого совпадает с именем с описанного нами 4-го драйвера (adpu321.sys). Но, как можно заметить, драйвер был обнаружен 21 сентября, а описанный нами вариант 4 был создан 17 октября! Кроме этого файлы имеют разные MD5. Это только подтверждает наше мнение о том, что может существовать большое количество драйверов, и многие из них все еще не найдены (хотя уже и могут детектироваться).
Тайна Duqu: часть первая