Главная→Блог→Инциденты→30 май 2012→Flame: часто задаваемые вопросы
Вирусы Duqu и Stuxnet повысили градус кибервойны на Ближнем Востоке, однако недавно мы обнаружили, пожалуй, самое изощренное кибероружие на сегодняшний день. Червь Flame, созданный для кибершпионажа, попал в поле зрения экспертов «Лаборатории Касперского» при проведении исследования по запросу Международного союза электросвязи (МСЭ), обратившегося к нам за содействием в поиске неизвестной вредоносной программы, которая удаляла конфиденциальные данные с компьютеров, расположенных в странах Ближнего Востока. В процессе поиска этой программы, получившей название Wiper, мы обнаружили новый образец вредоносного ПО, который был назван Worm.Win32.Flame.
Хотя Flame имеет иной функционал, чем печально известные образцы кибероружия Duqu и Stuxnet, все эти вредоносные программы имеют много общего: географию атак, узкую целевую направленность в сочетании с использованием специфических уязвимостей в ПО. Это ставит Flame в один ряд с «кибернетическим супероружием», развертываемым на Ближнем Востоке неизвестными злоумышленниками. Без сомнения, Flame является одной из самых сложных киберугроз за всю историю их существования. Программа имеет большой размер и невероятно сложную структуру. Она заставляет переосмыслить такие понятия, как «кибервойна» и «кибершпионаж».
Подробную информацию об этой изощренной угрозе читайте ниже.
Flame представляет собой весьма хитрый набор инструментов для проведения атак, значительно превосходящий по сложности Duqu. Это троянская программа — бэкдор, имеющая также черты, свойственные червям и позволяющие ей распространяться по локальной сети и через съемные носители при получении соответствующего приказа от ее хозяина.
Исходная точка входа Flame неизвестна — мы подозреваем, что первоначальное заражение происходит путем целевых атак, однако найти исходный вектор атаки нам пока не удалось. Подозреваем, что используется уязвимость MS10-033, однако в данный момент подтвердить это мы не можем.
После заражения системы Flame приступает к выполнению сложного набора операций, в том числе к анализу сетевого трафика, созданию снимков экрана, аудиозаписи разговоров, перехвату клавиатурных нажатий и т.д. Все эти данные доступны операторам через командные серверы Flame.
В дальнейшем операторы могут принять решение о загрузке на зараженные компьютеры дополнительных модулей, расширяющих функционал Flame. Всего имеется около 20 модулей, назначение большинства которых мы в данный момент изучаем.
Прежде всего, Flame — это огромный пакет, состоящий из программных модулей, общий размер которых при полном развертывании составляет почти 20 МБ. Вследствие этого анализ данной вредоносной программы представляет огромную сложность. Причина столь большого размера Flame в том, что в него входит множество разных библиотек, в том числе для сжатия кода (zlib, libbz2, ppmd) и манипуляции базами данных (sqlite3), а также виртуальная машина Lua.
Lua — это скриптовый язык, т.е. язык программирования, легко поддающийся расширению и интеграции с кодом, написанным на языке C. Для многих компонентов Flame логика верхнего уровня написана на Lua — при этом подпрограммы и библиотеки, непосредственно реализующие заражение, компилируются с C++.
По сравнению с общим объемом кода часть, написанная на Lua, относительно невелика. По нашей оценке, объем разработки на Lua составляет более 3000 строк кода. Для среднего разработчика на создание и отладку такого объема кода требуется около месяца.

Рис. 1. Декомпилированный код Flame на языке Lua
Кроме того, вредоносная программа использует для внутренних нужд локальные базы данных с вложенными SQL-запросами, применяет несколько методов шифрования, различные алгоритмы сжатия, создает скрипты с помощью Windows Management Instrumentation, использует пакетные скрипты и т.д.
Запуск и отладка вредоносного ПО — нетривиальная задача, поскольку вредоносная программа представляет собой не обычный исполняемый файл, а несколько DLL-библиотек, загружаемых при запуске операционной системы.
В целом можно констатировать, что Flame — одна из наиболее сложных угроз, обнаруженных на сегодняшний день.
Прежде всего, для вредоносного ПО нехарактерно использование Lua. Достаточно большой размер набора инструментов для проведения атак также нетипичен для вредоносного ПО. Как правило, современные вредоносные программы имеют небольшой размер и пишутся на языках программирования, обеспечивающих максимальную компактность, что помогает скрыть присутствие этих программ в системе. Сокрытие с помощью большого объема кода — это новая черта, реализованная в Flame.
Запись аудиоданных со встроенного микрофона — тоже достаточно новый прием. Конечно, существуют и другие вредоносные программы, способные записывать аудио, однако ключ в универсальности Flame — способности этой вредоносной программы красть данные столь разнообразными способами.
Еще одна любопытная функция Flame — использование Bluetooth в устройствах, поддерживающих такой способ передачи данных. Если Bluetooth поддерживается зараженным компьютером и включен в настройках, программа собирает информацию об обнаруживаемых устройствах, находящихся вблизи зараженной машины. Если в конфигурации включены соответствующие настройки, Flame может превратить зараженную машину в радиомаяк, настроив разрешение на его обнаружения другими Bluetooth-устройствами и сообщая общие данные о состоянии заражения, зашифрованные в передаваемой по Bluetooth информации об устройстве.
Несмотря на то что мы еще не завершили анализ различных модулей Flame, уже сейчас можно утверждать, что программа способна записывать аудиосигнал через микрофон, если таковой имеется. Записанный звук хранится в сжатом формате, причем сжатие обеспечивается с помощью общедоступной библиотеки.
Записанные аудиоданные регулярно, по расписанию, скрытым образом пересылаются на командный сервер через SSL-канал. Мы еще не завершили анализ этой функции; более подробная информация скоро появится на нашем сайте.
Вредоносная программа способна регулярно делать снимки экрана; более того, она делает скриншоты в процессе работы определенных «интересных» приложений, таких как системы мгновенного обмена сообщениями. Снимки экрана хранятся в сжатом формате и регулярно пересылаются на командный сервер — так же, как и аудиозаписи.
Мы еще не завершили анализ этого компонента и будем сообщать новую информацию по мере ее поступления.
Авторы Flame специально изменили даты создания файлов таким образом, чтобы исследователи не смогли узнать, когда зловред был создан на самом деле. Файлы датированы годами 1992, 1994, 1995 и т. д. — очевидно, что эти даты не имеют отношения к действительности.
Мы полагаем, что проект Flame в основной части был создан не раньше 2010 года и до настоящего времени находится в активной разработке. Его авторы постоянно вносят изменения в разные модули, продолжая при этом использовать ту же архитектуру и имена файлов. Многие модули изменялись или создавались в 2011-2012 годах.
По нашим собственным данным, Flame использовался в августе 2010 г. При этом, исходя из косвенных данных мы можем сказать с уверенностью, что уже в феврале-марте 2010 г. Flame был активен «в дикой среде». Высока вероятность, что существовал и более ранний вариант, хотя мы не располагаем подтверждающими это данными.
Flame — это большой набор инструментов, состоящий из нескольких модулей. Один из главных модулей был назван Flame — это модуль, отвечающий за проведение атак и заражение новых компьютеров.

Рис. 2. Модуль установки Flame
В настоящее время известно три вида игроков, разрабатывающих вредоносные программы и шпионское ПО: хактивисты, киберпреступники и государства. Flame не предназначен для кражи денег с банковских счетов. Он также явным образом отличается от довольно простых инструментов хакеров и зловредов, используемых хактивистами. Таким образом, после исключения киберпреступников и хактивистов, в списке остаётся только одна группа.
Наконец, если принять во внимание географию жертв (конкретные страны на Ближнем Востоке) и уровень сложности угрозы, не остаётся сомнений, что за ней стоит некое государство, которое и спонсировало его разработку.
В коде зловреда нет информации, которая указывала бы на конкретное государство. Анализ прочей доступной информации также не позволяет связать Flame с какой-либо конкретной страной. Таким образом, авторство остаётся неустановленным, как это было и в случае Stuxnet и Duqu.
Для систематического сбора информации о действиях конкретных стран на Ближнем Востоке, включая Иран, Ливан, Сирию, Израиль и др.
Вот семь стран, подвергшихся наибольшему количеству атак:

Первоначальный анализ указывает на то, что создатели Flame стремятся получить любые данные: электронные письма, документы, сообщения, разговоры на территории секретных объектов — практически всё. До сих пор мы не видели каких-либо указаний на конкретную цель Flame, скажем на энергетическую отрасль. Это позволяет нам считать, что Flame является универсальным набором инструментов для проведения атак, разработанным для кибершпионажа в широком смысле.
Как мы уже видели ранее, такие универсальные зловреды могут использоваться для загрузки модулей, предназначенных для атаки на специфические объекты, такие как, автоматизированные системы управления, критически важные объекты инфраструктуры и т.д.
Если анализировать организации, на которые нацелен Flame, то очевидной системы не наблюдается. Спектр жертв широк — от отдельных личностей до некоторых окологосударственных организаций и образовательных учреждений. Сбор информации о жертвах, естественно, затруднен, поскольку существует строгая политика конфиденциальности, которая направлена на защиту личных данных наших пользователей.
Исходя из данных, полученных из Kaspersky Security Network, существует несколько версий вредоносной программы «в дикой среде» — разного размера и разного наполнения. Учитывая, что зловред разрабатывался в течение нескольких лет, мы предполагаем, что «в дикой среде» появятся много разных версий.
Кроме этого, Flame состоит из многочисленных и разнообразных программных модулей, число которых достигает 20 — которые выполняют специальные функции. При одном заражении Flame может иметь набор из 7 программных модулей, при другом — 15. Все зависит от того, какую информацию нужно получить от жертвы и как долго система уже была заражена Flame.
Существует несколько C&C-серверов, разбросанных по всему миру. Мы насчитали около дюжины различных C&C-доменов, управляемых на разных серверах. Возможно, есть другие домены, связанные с уже известными, и, предположительно, число доменов, используемых вредоносным ПО для связис C&C достигает 80. По этой причине действительно очень сложно отследить использование и развертывание C&C-серверов.
По размеру Flame почти в 20 раз больше Stuxnet и включает в себя много различных функций для проведения атак и кибершпионажа. У Flame нет большого сходства с Stuxnet/Duqu.
Например, когда был обнаружен Duqu, любому компетентному исследователю было ясно, что он был создан теми же людьми, которые придумали Stuxnet, и на той же платформе Tilded.
Похоже, Flame — это проект, который был запущен параллельно с Stuxnet/Duqu, но не использовал Tilded-платформу.
Однако есть некоторые указатели на то, что создатели Flame могли иметь доступ к технологии, использованной в проекте Stuxnet. Например, применение метода заражения “autorun.inf” вместе с использованием той же, что и в Stuxnet, уязвимости в службе диспетчера очереди печати говорит о возможном доступе авторов Flame к тем же эксплойтам, что и создатели Stuxnet.
С другой стороны, мы не можем исключать того, что текущие варианты Flame были разработаны уже после обнаружения Stuxnet. Возможно, авторы Flame использовали опубликованную информацию о способах распространения Stuxnet и реализовали аналогичные технологии в Flame.
Короче говоря, вероятнее всего, Flame и Stuxnet/Duqu разрабатывались двумя отдельными группами авторов. Мы бы оценили Flame как проект параллельный Stuxnet и Duqu.
Один из лучших советов при проведении любых операций - не класть все яйца в одну корзину. Поскольку киберпреступники понимали, что рано или поздно Stuxnet и Duqu будут обнаружены, для них имело смысл создать другие, аналогичные проекты, но на основе совершенно иной философии. Таким образом, если один из проектов будет раскрыт, другой может беспрепятственно продвигаться вперед.
Исходя из этого, мы полагаем, что Flame является параллельным проектом, созданным как запасной вариант на случай раскрытия какого-либо из других проектов.
Определенно нет. «Кузены» Duqu были основаны на платформе Tilded, которая использовалась и для Stuxnet. Flame платформу Tilded не использует.
Операция по сбору разведывательной информации, стоящая за Duqu, была не слишком крупномасштабной, сосредоточенной на определенных целях. Мы полагаем, что Duqu имел целью менее 50 объектов во всем мире — и все они были очень высокого уровня.
Похоже, что Flame имеет существенно более широкий охват, чем Duqu, с тысячами возможных жертв по всему миру. Кроме этого, его мишени гораздо более разнообразны, сюда входят и университеты и исследовательские центры, частные компании, определенные частные лица и т. д.
По нашим наблюдениям, хозяева Flame искусственно поддерживают количество зараженных систем на некоем постоянном уровне. Это можно сравнить с последовательной обработкой полей: — они заражают несколько десятков, затем проводят анализ данных, взятых на компьютерах жертв, деинсталируют Flame из систем, которые им неинтересны, и оставляют в наиболее важных, после чего начинают новую серию заражений.
Зловред Wiper, о котором сообщалось в нескольких средствах массовой информации, остается загадкой. И хотя Flame был обнаружен при расследовании нескольких атак Wiper, в настоящее время мы не располагаем информацией о том, какое отношение к этим атакам имеет Flame. Конечно, сложность Flame позволяет делать вывод, что модуль, уничтожающий данные, мог с легкостью быть развернут в любое время; однако на данный момент мы не наблюдали ничего подобного.
Кроме этого, системы, поврежденные зловредом Wiper, совершенно невозможно восстановить: объем повреждений настолько велик, что абсолютно не за что зацепиться, чтобы отследить атаку.
Информация об инцидентах с Wiper имеется только в Иране. Flame обнаружен нами в разных странах региона, не только в Иране
Очевидно, что Flame имеет два модуля для заражения USB флеш-карт с названиями «Autorun Infector» и «Euphoria». До настоящего момента мы не видели, как они работают, возможно, по той причине, что Flame был отключен в настройках. Тем не менее, способность заражать флеш-карты USB в коде существует и использует два метода:
Помимо этого, Flame способен тиражироваться через локальную сеть, используя:

На настоящий момент мы не наблюдали использования уязвимостей нулевого дня; однако известны случаи заражения червем системы Windows 7 со всеми патчами через сеть, что может указывать на существование риска атак нулевого дня.
По всей видимости, распространением зловреда управляет оператор, как и в случае Duqu. Кроме того, процесс распространения контролируется с помощью конфигурационного файла бота. Большинство процедур заражения имеют счетчики выполненных атак и ограничены определенным числом разрешенных попыток заражения.
Именно из-за ее большого размера вредоносную программу так долго не могли обнаружить. Современные вредоносные программы в основном небольшие и имеют определенные цели. Легче спрятать небольшой файл, чем большой модуль. Кроме того, загрузка 100K через ненадежную сеть имеет гораздо больше шансов на успех, чем загрузка 6MB.
Модули Flame вместе составляют более 20 МБ. Многие из них являются библиотеками, предназначенными для обработки SSL-трафика, SSH-соединений, контроля сообщений, передаваемых по сети связи, с целью выявления конфиденциальной информации, проведения атак, перехвата сообщений и т.п. Возьмем такой пример: нам потребовалось несколько месяцев, чтобы проанализировать 500-килобайтовый код Stuxnet. А на то, чтобы полностью понять 20MБ код Flame, вероятно, потребуются годы.
В Flame имеется много различных встроенных таймеров. Они отслеживают успешные соединения с C&C, частоту отдельных операций по краже данных, количество удачных атак и т.д. И хотя в этой вредоносной программе нет таймера самоуничтожения, контролирующие устройства могут послать специальный модуль удаления вредоносной программы (он называется “browse32”), который полностью удаляет программу из системы, стирая все следы ее присутствия там.
Вредоносная программа может регулярно делать скриншоты. Более того, она делает скриншоты в процессе работы некоторых "интересных" приложений, например службы обмена мгновенными сообщениями. Скриншоты сохраняются в сжатом формате и регулярно отправляются на сервер C&C, так же как и аудиозаписи.
Мы продолжаем анализировать этот компонент, и по мере поступления новой информации мы будем размещать ее на сайте.
На следующей неделе в серии блогов на Securelist мы сможем предложить вниманию технических специалистов полный список файлов и следов кода.
Мы будем очень признательны, если вы сможете связаться с нами по электронной почте по адресу, ранее созданному для исследования Stuxnet/Duqu stopduqu@kaspersky.com.
PS Согласно результатам нашего анализа, Flame — это та же вредоносная программа, которую CrySyS Lab в своем описании назвал “SkyWiper”, а Iran Maher CERT group — “Flamer”.
|
30 май 2012, 15:46
Так кто же всё-таки обнаружил его, Flamer / sKyWIper / Flame, первым? Претенденты: |
|
30 май 2012, 15:51
Саныч, шпионаж бывает не только политический, но и промышленный. Так что заказчиком может быть не только государство, но и какая-нибудь крупная транснациональная корпорация, интересующаяся, например, вопросами нефтедобычи и нефтеторговли. |
|
0 |
Re:
Здесь http://www.crysys.hu/skywiper/skywiper.pdf явно указано наличие SQLite билда http://www.sqlite.org/releaselog/3_6_22.html, откуда ясно, что вирусу не 5 лет.
|
31 май 2012, 00:29
Венгрия каждый раз в центре событий А недавно вы не читали о том, что стукнет до сих пор гуляет по промышленным предприятиям России ? исправлено: Korobkin, 31 май 2012, 00:46 |
|
31 май 2012, 21:05
Слишком прямолинейное мышление ((( ИМХО ИМХО, вы до сих пор считаете, что вирусы пишутся, а не создаются. Вы упускаете изменения в технологии вирусописания. Например, если мне требуется добиться определенных действий от определенных людей, то непременно потребуется учесть психологические аспекты ситуации. Качество самого вируса здесь не столь важно, так как имеет значение результаты "диалога" с оппонентами. В таком случае, мне проще написать программу "генератор вирусов" с соответствующим набором критериев, которые к тому же вполне могут составить основу шифрокода. Теперь мне можно создавать вирусы каждый день. Верно, часть из них будет никуда не годной и послужит для совершенствования "генератора вирусов" в части эвристики и добавления базы знаний. Но, часть, согласно теории вероятности, для текущего момента времени будут бесподобны и будут бить в точно цель. Понятно, что дешевизна генерации вируса позволяет мне не беспокоиться об обнаружении того или иного продукта, так как появление нового гениального творения лишь вопрос времени. Кроме того, чтобы не быть пойманным, сам генератор можно частями закинуть в Инет, попутно снабдив его незаурядными механизмами выживания и распространения. Тогда, чтобы в очередной раз запустить свой генератор, мне потребуется лишь зараженный компьютер. Возможно поэтому некоторые вирусы годами ничего плохого не делают, но крайне стойки к очистке системы? |
Также в аналитике
В блоге