среда, 26 октября 2011 г.

Как определить точную дату заражения Win32/Duqu

После того, как появилась первая информация о Win32/Duqu мы не могли пройти мимо, так как нам было очень интересно составить собственные впечатления об этой угрозе (да и challenge со Stuxnet напомнило). Начали копать, оказалось, что код Duqu имеет очень много общего со своим старшим братом Stuxnet. В процессе анализа складывается впечатление, что некоторые части просто полностью повторяют код из Win32/Stuxnet. Код драйверов практически идентичен, еще из наблюдений скорее всего для обоих разработок был использован какой то общий фреймворк для разработки всякого.

С того момента, как мы начали исследовать Win32/Duqu, нас интересовал вопрос, каким образом можно идентифицировать точную дату заражения компьютера этой вредоносной программой (т.к. дроппер нам до сих пор найти не удалось). Такая информация, прежде всего, полезна для проведения криминалистической экспертизы и восстановления картины произошедших событий. У нас появилась идея о том, что если Duqu хранит информацию о моменте своего самоудаления, то должна быть информация, с которой начинается этот отсчет (варианта могло быть два, либо счетчик, либо дата заражения). Нам удалось обнаружить интересную вещь, на данный момент у нас есть несколько наборов сэмплов с различных зараженных машин. И оказалось, что в процессе заражения формируется так называемая main.dll, в которой сохраняется точная дата заражения в UTC-формате. Ниже мы приводим декомпилированный код, осуществляющий проверку этой самой даты:



На основании этих данных в процессе проведения криминалистической экспертизы зараженной машины можно установить точную дату и время ее заражения.

В отчете «Duqu: the precursor to the next Stuxnet» приводится время жизни Duqu на зараженной машине в 36 дней, после чего происходит автоматическое удаление. Для того, что бы узнать дату заражения сначала нужно расшифровать конфигурационные файлы при помощи не хитрого самопального криптоалгоритма:




Изучив несколько наборов сэмплов мы выяснили, что эта дата может меняться и скорее всего, устанавливается в процессе заражения на основании конфигурационных данных дроппера. У нас один набор сэмплов должен был удалится так же через 36 дней, а вот второй только через 30.

Конфигурационный файл заражения 11/08/2011 в 7:50:01 и удалением через 36 дней:



Конфигурационный файл заражения 18/08/2011 в 7:29:07 и удалением через 30 дней:



Duqu хранит в себе еще много интересных деталей, и мы продолжаем наш REsearch ;)