DUQU, пришедший затмить Stuxnet
Автор: Бёрд Киви
Дата: 01.11.2011
Не успел мир толком разобраться с грозным червем Stuxnet, разработанным явно не без помощи государственных спецслужб, как в Сети появился DUQU, использующий тот же исходный код. По мнению Берда Киви, у основательно доработанного наследника есть все шансы превзойти родителя, но что именно станет его целью?
Во время Второй мировой войны имел однажды место такой случай. Совсем молодая по тем временам американская разведслужба OSS (из которой впоследствии получилось ЦРУ) по просьбе английских коллег занялась похищением криптографических ключей Испании. Очень уж британцам было нужно регулярно читать шифрованную дипломатическую переписку генерала Франко, как одного из главных союзников Гитлера в Европе, а аналитическими методами испанские шифры вскрыть не удавалось.
Похищение криптоключей происходило совершенно тривиальным образом. В подходящую ночь умельцы по взлому из OSS проникали в испанское посольство в Вашингтоне и копировали нужный англичанам очередной комплект ключей. Правда, поскольку комплекты менялись каждый месяц, то и ночные визиты в посольство приходилось наносить тоже ежемесячно. И вот, при завершении четвертого из таких посещений, сотрудников американской разведки арестовало ФБР США...
Конечно же, произошло это совсем не случайно и не по недоразумению. Просто глава ФБР Эдгар Гувер — в годы войны ставший еще и главным контрразведчиком страны — был абсолютно уверен, что подобного рода тайные дела на американской территории могут происходить только с его ведома и под его же контролем. А поскольку шеф внешней разведки Уильям Донован про операции в испанском посольстве не только с Гувером не советовался, но и вообще не считал нужным ставить его в известность, то директор ФБР решил как следует проучить зарвавшихся шпионов из смежного ведомства.
Даже по скульптурным портретам Уильяма Донована заметно, что мужчиной он был, мягко говоря, резким…
Ничего путного, впрочем, из этого урока не получилось. Разъяренный Донован (известный также под кличкой Дикий Билл) велел своим сотрудникам собрать на Гувера суровый компромат. А когда таковой был добыт, все проблемы разведки с ФБР стали решаться легко и просто — элементарным методом под названием «циничный и беспощадный шантаж». Но это уже совсем другая история...
Предупреждения об угрозе
Этот забавный эпизод мы сегодня вспоминаем вот по какой причине. Под конец октября сразу несколько государственных ведомств США, отвечающих за определенные аспекты национальной безопасности страны, выпустили информационные бюллетени с предупреждениями о новой компьютерной угрозе — вредоносной программе под названием DUQU (читать это буквосочетание в англоязычной среде предлагается как «дью-кью», однако для русского языка куда более естественно было бы просто «дуку»).
На фоне гигантского количества разнообразных вредоносных кодов, постоянно появляющихся в компьютерах и сетях, программа DUQU выделяется как особо опасная тем, что несет в себе бесспорные черты фамильного сходства и общего происхождения со знаменитым «червем червей» по имени Stuxnet. Напомним, в минувшем году он просто-таки поразил антивирусную индустрию и сетевую публику в целом своей небывалой сложностью и изощренностью. А конкретно для Ирана Stuxnet стал проблемой, серьезно затормозившей прогресс в обогащении урана и национальную ядерную программу в целом.
И хотя документальных — или тем более официальных — подтверждений этому нет, среди специалистов практически никто не сомневается, что созданием кода Stuxnet занимались в секретных лабораториях государственных спецслужб. Более того, имеется достаточное количество свидетельств, которые недвусмысленно указывают на разведки государств, приложивших к нему руку, а именно США и Израиля.
Иначе говоря, налицо следующие факты нашей странной жизни. В компьютерах множества разных государств объявляется новая, весьма изощренная шпионская программа, по своим ключевым признакам явно сработанная при участии разведки США. А в ответ американские органы безопасности вроде DHS (Департамент госбезопасности) и ICS-CERT (Реагирование на киберугрозы в области систем промышленного управления) рассылают документы о том, как этой трудноуловимой напасти следует противостоять (если «отжать» все многословные рекомендации, то получается, что, в общем-то, никак, кроме регулярного обновления штатных антивирусов).
С одной стороны, конечно, было бы странно, если бы никакой реакции не последовало вообще — учитывая крайне нервное отношение общества к появлению Stuxnet. С другой же стороны, совершенно неясно, каким образом одни структуры государства способны реально защищать от других — более мощных, эффективных и засекреченных.
Готовых ответов на подобные вопросы, естественно, ни у кого нет. Но чтобы лучше понять суть проблемы и масштаб обозначившейся угрозы, имеет смысл поподробнее рассмотреть историю появления Дуку и особенности устройства этой интересной программы.
История явления DUQU
Хотя первой официальной публикацией о выявлении новой вредоносной программы, несущей в себе известные признаки Stuxnet, стал отчет антивирусной фирмы Symantec от 17 октября этого года, реальная история обнаружения DUQU антивирусным сообществом началась на полтора месяца раньше.
Причем основную роль сыграли венгерские исследователи и испанский антивирусный проект VirusTotal. VirusTotal.com — это веб-сервис, организованный в свое время фирмой Hispasec из Малаги, где осуществляется «тотальный анализ» присылаемых сюда подозрительных файлов с помощью множества самых разных антивирусных движков. На выходе предоставляется список имен опознания, присвоенных данному вредоносному коду разными компаниями (если, конечно, такой код был уже кем-то выявлен ранее). Ныне VirusTotal является как бы совместным предприятием всего антивирусного сообщества. На данный момент число набранных вскладчину антивирусных программ составляет 43, а всякий новый выявленный образец кода-вредителя оперативно рассылается всем компаниям и лабораториям, принимающим участие в работе сервиса.
Главная страница VirusTotal.com. Нельзя исключить, что разработчики DUQU сами скормили сервису часть своего детища — просто из любопытства
Именно здесь и произошло «первое свидание» 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 года, однако VeriSign отозвал его сразу же, едва в 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. Можно говорить, что взаимосвязь основного модуля и кейлоггера друг с другом установлена на основе того факта, что оба они выявлены на одной машине, а главный модуль функционально способен загружать в машину из сети любые другие компоненты.
Что же представляет собой этот главный модуль? В его составе обычно выделяют три основных компонента:
1. Драйвер, встраивающий свою библиотеку DLL в системные процессы;
2. Зашифрованный файл DLL (с системным расширением PNF), который также имеет дополнительный модуль и скрытно работает через сеть с удаленным сервером команд и управления
3. Настроечный конфигурационный файл (также зашифрован).
Подобно ранее изученному 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 с совсем свежими датами компиляций и множеством совершенно новых внешних признаков.
Иначе говоря, шпионы доходчиво продемонстрировали, что намерены и дальше делать эту свою работу — чего бы там не предпринимали структуры компьютерной безопасности.
Почти как во времена Дикого Билла и Эдгара Гувера.
Оригинал статьи тут{jcomments on}