“Лаборатория Касперского” в выходные опубликовала статью антивирусного эксперта Александра Гостева, в которой утверждается, что между червями Flame и Stuxnet наличествует вполне определённое родство – технологическое. В “Лаборатории” утверждают, что в Stuxnet использовались вполне конкретные модули Flame.

Прежде считалось, что у Stuxnet были три варианта, выходившие в июне 2009, затем в марте и в апреле 2010 годов. Версия 2009 года довольно значительно отличалась от версии 2010. В частности, в версии 2010 года начисто отсутствовал так называемый “ресурс 207” объёмом 520192. Какое это отношение имеет к Flame? А вот какое:

В октябре 2010 года наша автоматическая система обработки получила из “дикой природы” файл. Он был автоматически проанализирован и классифицирован как новый вариант Stuxnet – Worm.Win32.Stuxnet.s.

Stuxnet в тот момент был громкой темой, и мы посмотрели на файл более внимательно, пытаясь понять, что же это такое. Выяснилось, что он не был похож на Stuxnet от 2010 года, отличия были весьма значительными. Посетовав на “глупую автоматическую систему”, мы решили переименовать его в Trojan-Spy.Win32.Tocy.

Когда в 2012 году мы обнаружили Flame, мы стали искать старые экземпляры этого червя, которые могли быть получены нами ранее. Среди файлов, которые выглядели почти идентичными Flame, мы нашли Tocy.

Дальнейший анализ показал, что Tocy – один из ранних модулей Flame – действительно похож на Stuxnet, и только на него.

Ресурс 207 представляет собой, по мнению Гостева и его коллег, “proto-Flame”: у этого модуля много общего с тем mssecmgr.ocx, в который превратился Flame к 2012 году.

Мы считаем, что можно говорить о целой платформе “Flame”, на исходных кодах которой был создан данный модуль.

В дальнейшем Гостев указывает на многочисленные сходства на уровне кода и в функциональности. В частности, имеется большое сходство в методах распространения. Ресурс 207 выполняет функцию инфектора съёмных дисков, копируя на них модуль Flame под именем “autorun.inf”, и добавляет содержимое настоящего autorun.inf в конец своего файла. Основное тело Stuxnet также копируется на USB-диск под именем “~XTRVWp.dat”. Исполняемый файл “autorun.inf” автоматически выполняется при обращении к заражёному USB-устройству (при включенной функции AutoPlay). После этого модуль Flame загружает ~XTRVWp.dat (основное тело Stuxnet) с USB-диска и внедряет его в системные процессы, используя эксплойт к уязвимости для повышения привилегий – уязвимости, кстати, которая была исправлена к 2010 году (но оставалась ещё неизвестной на момент создания варианта Stuxnet 2009-го года).

В целом в “Лаборатории Касперского” предполагают, что к моменту создания Stuxnet так называемая “платформа Flame” уже существовала. Предположительное время её создания – лето 2008 года.

В коде Stuxnet 2009 года использовался модуль, относящийся к платформе Flame, вероятно, созданный специально для работы в составе Stuxnet, то есть разработчики обоих зловредов как минимум один раз объединяли усилия и разработчики Stuxnet (скорее всего) использовали исходные коды, а не бинарники. В дальнейшем этот модуль был удален из Stuxnet, поскольку в его функции добавился новый способ распространения (уязвимость MS10-046) вместо “старого” autorun.inf. Модуль Flame в Stuxnet 2009 содержал эксплойт к неизвестной на тот момент уязвимости для повышения привилегий, предположительно MS09-025.

Подробный разбор “родственных связей” между Flame и Stuxnet можно прочитать здесь.