DUQU, или скрытая угроза

(Октябрь 2011)

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

duquv

Трудности шпионской работы

Среди множества интересных, но малоизвестных эпизодов второй мировой войны однажды имел место такой случай.

Совсем молодая по тем временам американская разведслужба OSS (из которой впоследствии получилось ЦРУ) по просьбе английских коллег занялась похищением криптографических ключей Испании. Ибо британцам было очень нужно регулярно читать шифрованную дипломатическую переписку генерала Франко, как одного из главных союзников Гитлера в Европе, а аналитическими методами испанские шифры вскрыть не удавалось.

Похищение криптоключей происходило совершенно тривиальным образом. В подходящую ночь умельцы по взлому из OSS просто проникали в испанское посольство в Вашингтоне и копировали нужный англичанам очередной комплект ключей. Правда, поскольку комплекты менялись каждый месяц, то и ночные визиты в посольство приходилось наносить тоже ежемесячно. И вот, при завершении четвертого из таких посещений, сотрудников американской разведки арестовало ФБР США…

Конечно же, произошло это совсем не случайно и отнюдь не по недоразумению. Просто глава ФБР Эдгар Гувер – в годы войны ставший еще и главным контрразведчиком страны – был абсолютно уверен, что подобного рода тайные дела на американской территории могут происходить только с его ведома и под его контролем.

А поскольку шеф внешней разведки Уильям Донован про операции в испанском посольстве не только с Гувером не советовался, но и вообще не считал нужным ставить его в известность, то директор ФБР решил как следует проучить зарвавшихся шпионов из смежного ведомства.

Ничего путного, впрочем, из этого урока не получилось. Разъяренный Донован (известный также под кличкой «Дикий Билл») велел своим сотрудникам собрать на Гувера компромат посерьезнее. А когда он вскоре был добыт, то все проблемы разведки с ФБР стали решаться легко и просто – элементарным методом под названием беспощадный шантаж. Но это, впрочем, уже совсем другая история… (подробности см. тут )

Предупреждения об угрозе

Вспоминается этот забавный эпизод сегодня вот по какой причине. Под конец октября (2011) сразу несколько государственных ведомств США, отвечающих за определенные аспекты национальной безопасности страны, выпустили информационные бюллетени с предупреждениями о новой компьютерной угрозе – вредоносной программе под названием DUQU (читать это буквосочетание в англоязычной среде предлагается как «дью-кью», однако для русского языка куда более естественно было бы просто «дуку»).

На общем фоне гигантского количества разнообразных вредоносных кодов, постоянно появляющихся в компьютерах и сетях, программа DUQU выделяется как особо опасная тем, что несет в себе бесспорные черты фамильного сходства и общего происхождения со знаменитым «червем червей» по имени Stuxnet (см. «Боевой червь Stuxnet«).

Этот супер-троянец, можно напомнить, в прошлом году просто-таки поразил антивирусную индустрию и сетевую публику в целом своей небывалой сложностью и изощренностью. А конкретно для Ирана Stuxnet стал проблемой, серьезно затормозившей прогресс в обогащении урана и национальную ядерную программу в целом.

И хотя документальных – или тем более официальных – подтверждений этому нет, среди специалистов практически никто не сомневается, что созданием кода Stuxnet занимались в секретных лабораториях государственных спецслужб. Более того, имеется достаточное количество свидетельств, которые недвусмысленно указывают, разведки каких именно государств наверняка приложили тут руку – США и Израиля.

Иначе говоря, налицо имеются следующие факты нашей странной жизни. В компьютерах множества разных государств объявляется новая, весьма изощренная шпионская программа, по своим ключевым признакам явно сработанная при участии разведки США. А в ответ американские органы безопасности, вроде DHS (Департамент госбезопасности) и ICS-CERT (Реагирование на киберугрозы в области систем промышленного управления) рассылают документы о том, как этой трудноуловимой напасти следует противостоять (в общем-то, никак, кроме регулярного обновления штатных антивирусов)…

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

Готовых ответов на подобные вопросы, естественно, ни у кого нет. Но чтобы лучше понять суть проблемы и масштаб обозначившейся угрозы, имеет смысл поподробнее рассмотреть историю появления «Дуку» и особенности устройства этой интересной программы.

История явления DUQU

Хотя первой официальной публикацией о выявлении новой вредоносной программы, несущей в себе известные признаки Stuxnet, стал отчет антивирусной фирмы Symantec от 17 октября этого года, реальная история обнаружения DUQU антивирусным сообществом началась на полтора месяца раньше. Причем основную роль тут сыграли венгерские исследователи и испанский антивирусный проект VirusTotal.

VirusTotal – это веб-сервис, в свое время организованный фирмой инфозащиты Hispasec из Малаги, где осуществляется «тотальный анализ» присылаемых сюда подозрительных файлов с помощью множества самых разных антивирусных движков, а на выходе предоставляется список различных имен опознания, присвоенных данному вредоносному коду разными компаниями (если такой код был уже кем-то выявлен ранее, конечно). Ныне VirusTotal является как бы совместным предприятием всего антивирусного сообщества. На данный момент число набранных вскладчину антивирусных программ составляет 43, а всякий новый выявленный образец кода-вредителя оперативно рассылается всем компаниям и лабораториям, принимающим участие в работе сервиса.

Именно здесь и произошло «первое свидание» между DUQU и антивирусным сообществом, когда 1 сентября 2011 некий неизвестный источник из Венгрии прислал в Virustotal на предмет сканирования подозрительный файл под именем ~DN1.tmp. Наиболее известные антивирусные программы не увидели в этом файле ничего подозрительного, однако два менее популярных движка, BitDefender и AVIRA (точнее, четыре работающих на них антивирусные программы), определили его как вредоносный троянец-шпион. Вскоре после первоначального детектирования файл-троянец был добавлен в базы данных многих антивирусных фирм. Однако абсолютно ничего примечательного в связи с этим далее не случилось – просто обычное пополнение базы.

Затем, 9 сентября и снова, похоже, из Венгрии на сканирование в Virustotal был прислан еще один, теперь уже «настоящий» файл DUQU. Почему именно этот файл-драйвер следует считать «более настоящим» главным модулем DUQU, нежели предыдущего троянца, будет разъяснено подробнее в следующем разделе, посвященном многомодульной структуре этой программы. Здесь же важно отметить лишь то, что при первичном сканировании ни одна из 43 антивирусных программ, участвующих в проекте Virustotal, не детектировала данный файл как вредоносный.

Это очень примечательный факт, свидетельствующий о том, насколько профессионально и тщательно авторы программы DUQU делают свою шпионскую работу. Как покажет последующее изучение, именно этот, главный модуль DUQU несет в своем коде явное и неоспоримое сходство с кодом Stuxnet (первый файл-троянец не имел с ним ничего общего), но при этом авторы новой программы сумели изменить код до такой степени, что он абсолютно успешно прошел тесты на [не]выявление при анализе всеми мало-мальски популярными в мире антивирусными средствами…

Накапливаемые в базах Virustotal признаки файлов свидетельствуют, что этот же модуль-драйвер, но уже под другим именем и под маркой иной компании-изготовителя, еще раз поступал на сканирование в Virustotal 18 сентября. И опять, судя по всему, из Венгрии. И вновь, как это было и с первым драйвером, никаких выявлений вредоносной сути кода не произошло вплоть до 18 октября – когда, наконец, был опубликован официальный отчет Symantec. После которого уже сразу у всех, что называется, вдруг открылись глаза.

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

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

Более того, к документу Symantec приложен еще более обширный аналитический отчет, полученный от другой «иностранной лаборатории с сильными международными связями», которая, собственно говоря, и выявила как DUQU, так и его сходство с Stuxnet. Однако название и госпринадлежность этой замечательной лаборатории «не раскрываются по ее просьбе».

Наконец, еще одна, «страшная тайна», скрытая в отчете Symantec, это реальное название той тайваньской фирмы, цифровая подпись которой подтверждает подлинность файла-драйвера DUQU. Именно эта особенность программы-шпиона, собственно, и была одной из главных причин того, что все 43 антивирусных теста не выявили файл как вредоносный. Точно такая же особенность – похищенные у законных владельцев подлинные цифровые сертификаты – была и фирменной фишкой для обеспечения невидимости Stuxnet.

Но эта тайна, впрочем, раскрылась очень быстро, когда финская антивирусная компания F-Secure по имевшемуся у нее образцу DUQU идентифицировала данную тайваньскую фирму как C-Media Electronics Incorporation. Странное же замалчивание этого факта в отчете Symantec объясняется, скорее всего, тем, что высокой надежности сертификат для C-Media выдавал сертификационный сервис VeriSign – а владельцем его является… Symantec. Данный сертификат имел срок действия до августа 2012 года, однако сертификационный орган отозвал его сразу же, едва в Symantec занялись изучением вредоносной программы, полученной от коллег.

Как только в прессе поднялся шум вокруг новоявленного «DUQU, сына Stuxnet», а таинственность его первооткрывателя стала порождать всевозможные безответственные спекуляции, авторы исходного отчета все же решились выйти из тени. Через несколько дней, 21 октября, на сайте CrySyS, венгерской «Лаборатории криптографии и системной безопасности» (Cryptography and System Security при Будапештском университете технологий и экономики) появился очень краткий пресс-релиз с официальным подтверждением их непосредственного участия в истории:

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

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

Похожий сценарий с умалчиваниями о местах выявления заражений стал повторяться и далее, когда антивирусные фирмы стали объявлять, что файлы с признаками DUQU обнаружены, помимо двух случаев в Венгрии, также в Австрии, Великобритании, Индонезии, Иране, Судане… Скорее всего, этот географический список продолжает расти и ныне.

Но каков именно профиль организаций и предприятий, пораженных DUQU (то, что программы-шпионы этого типа обнаруживаются не в домашних компьютерах людей, представляется как бы самоочевидным) – никто, во-первых, не раскрывает. А во-вторых, те, кто даже знают что-то определенное, не могут усмотреть здесь какой-либо системы. Судя по всему, цели для внедрения шпионской программы выбираются сугубо индивидуально и по каким-то особым принципам, ведомым лишь тем, кто подсаживает этот код в машины.

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

Устройство DUQU и его особенности

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

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

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

Все то, что говорится в прессе и отчетах антивирусных исследований относительно близкого родства между DUQU и Stuxnet, относится практически целиком лишь к основному модулю (не занимающемуся хищениями информации). Но при этом само название DUQU, которое совокупная программа получила от венгров, пошло от характерного имени файлов вида ~Dqx.tmp, где временно хранит собираемые в зараженной системе данные модуль-кейлоггер.

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

Что же представляет собой этот главный модуль? В его составе обычно выделяют три основных компонента: драйвер, который встраивает свою библиотеку DLL в системные процессы; второе, зашифрованный файл DLL (с системным расширением PNF), который также имеет дополнительный модуль и скрытно работает через сеть с удаленным сервером команд и управления; и третье, настроечный конфигурационный файл (также зашифрован).

Подобно ранее изученному Stuxnet, главный модуль DUQU использует весьма изощренную и во многом уникальную технологию, обеспечивающую сокрытие своих компонентов в оперативной памяти, а не на жестком диске машины – дабы эффективно избегать обнаружения антивирусными средствами. Обе программы, DUQU и Stuxnet, используют особый драйвер ядра, который расшифровывает нужные зашифрованные файлы и встраивает их в уже работающие процессы. Такого рода «инъекции» в работающую память – это действительно очень эффективный способ избегать выявления, потому что здесь не происходит доступа к диску. А доступ к диску – это именно то, на что обычно реагируют детекторы защиты для запуска антивирусных сканеров.

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

Около года тому назад, по результатам анализа Stuxnet экспертами «Лаборатории Касперского» было сделано заключение, что программа состоит фактически из двух разных частей – несущей платформы и самостоятельного отдельного модуля, отвечающего за работу с PLC, т. е. программируемыми логическими контроллерами для диверсионного управления промышленными процессами.

По сути дела, Stuxnet в виде кода воплощал собой нечто типа боевой ракеты из реальной жизни, где имеется модуль-ракетоноситель (собственно червь) и его боеголовка (то есть модуль PLC). На основании такой конструкции тогда же было было предположено, что та часть Stuxnet, которая отвечает за его распространение и заражение системы, может быть использована вновь и вновь с самыми различными «боеголовками».

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

В отличие от Stuxnet, который без разбора заражал огромное множество машин, но при этом искал совершенно определенную систему, DUQU, по наблюдениям антивирусных экспертов, избирательно заражает очень небольшое количество весьма специфических систем по всему миру. Но для каждой из систем DUQU может использовать существенно разные модули – с разными именами, разной длиной файлов и разными значениями чек-сумм.

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

С другой стороны, ни на одной из зараженных систем по сию пору так и не удалось найти модуль-инсталлятор (дроппер), то есть остается неясным, с помощью каких механизмов основной модуль DUQU внедряется в систему. А значит, неизвестно, является ли этот инсталлятор самовоспроизводящимся и какие именно он использует уязвимости защиты.

На текущий момент именно это считается главным недостающим звеном во всей данной головоломке. Ибо именно этот файл полагают ключом к успешному решению загадки DUQU и отысканию эффективного антидота.

Что дальше?

Уже известные – весьма унылые – результаты всеобщей борьбы с угрозами типа Stuxnet, реально способными выводить из строя промышленные предприятия и критически важные инфраструктуры, невольно наводят на мысль, что и с противостоянием угрозам типа DUQU в итоге получится примерно то же самое.

Чтобы более выпукло и наглядно проиллюстрировать, к чему ныне свелась защита компьютерных систем промышленного управления, можно процитировать недавнюю запись из блога Ральфа Лангнера (Ralph Langner) – широко известного ныне специалиста в данной области, в свое время первым разобравшегося с «начинкой боеголовки» Stuxnet.

В последних числах сентября Лангнеру довелось принимать участие в промышленной конференции WeissCon, где выступал некто Марти Эдвардс (Marty Edwards) – нынешний глава структуры ICS-CERT, которая в составе правительства США отвечает за компьютерную безопасность индустриальных систем управления.

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

Иными словами, поясняет Лангнер, отныне вы просто не увидите от ICS-CERT никаких рекомендаций или предупреждений относительно «особенностей» программ, которые потенциально можно использовать для атак.

Такой подход, по свидетельству эксперта, самым радикальным образом – примерно на 90% – сокращает число уязвимостей в области промышленных систем управления, поскольку подавляющее большинство тех «моментов» в безопасности, которые индустрия сегодня имеет (называть их уязвимостями ныне уже как бы не принято) – это не баги программирования, а конструктивные дефекты системы.

До того, как разразились большие неприятности с выявлением вредоносной программы Stuxnet, уязвимостью официально именовали следующее: «Дефект или слабость в конструкции системы, в ее реализации, функционировании или управлении, которые можно было бы использовать для нарушения политики безопасности системы»…

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

И если до недавнего времени безопасность промышленных систем управления была очень трудным делом, то ныне все стало легко и просто. Для организации ICS-CERT. Ну а для всех остальных, заключает с горечью Лангнер, это по-прежнему остается сложным, потому процессам ваших систем совершенно без разницы, что именно это было – баг или особенность, которую вредоносный код использовал для атаки…

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

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

Иначе говоря, шпионы доходчиво продемонстрировали, что намерены и дальше делать эту свою работу – чего бы там ни предпринимали структуры компьютерной безопасности.

По сути, ситуация такая же, как во времена «Дикого Билла» и Эдгара Гувера. Только тогда разведка воевала как бы «против фашистов». Ну а теперь – фактически против всех.

duqu-virus