Отчеты о целевых атаках (APT)

Flame: часто задаваемые вопросы

Вирусы Duqu и Stuxnet повысили градус кибервойны на Ближнем Востоке, однако недавно мы обнаружили, пожалуй, самое изощренное кибероружие на сегодняшний день. Червь Flame, созданный для кибершпионажа, попал в поле зрения экспертов «Лаборатории Касперского» при проведении исследования по запросу Международного союза электросвязи (МСЭ), обратившегося к нам за содействием в поиске неизвестной вредоносной программы, которая удаляла конфиденциальные данные с компьютеров, расположенных в странах Ближнего Востока. В процессе поиска этой программы, получившей название Wiper, мы обнаружили новый образец вредоносного ПО, который был назван Worm.Win32.Flame.

Хотя Flame имеет иной функционал, чем печально известные образцы кибероружия Duqu и Stuxnet, все эти вредоносные программы имеют много общего: географию атак, узкую целевую направленность в сочетании с использованием специфических уязвимостей в ПО. Это ставит Flame в один ряд с «кибернетическим супероружием», развертываемым на Ближнем Востоке неизвестными злоумышленниками. Без сомнения, Flame является одной из самых сложных киберугроз за всю историю их существования. Программа имеет большой размер и невероятно сложную структуру. Она заставляет переосмыслить такие понятия, как «кибервойна» и «кибершпионаж».

Подробную информацию об этой изощренной угрозе читайте ниже.

Общие вопросы

Что именно представляет собой Flame? Червь? Бэкдор? Каков его функционал?

Flame представляет собой весьма хитрый набор инструментов для проведения атак, значительно превосходящий по сложности Duqu. Это троянская программа — бэкдор, имеющая также черты, свойственные червям и позволяющие ей распространяться по локальной сети и через съемные носители при получении соответствующего приказа от ее хозяина.

Исходная точка входа Flame неизвестна — мы подозреваем, что первоначальное заражение происходит путем целевых атак, однако найти исходный вектор атаки нам пока не удалось. Подозреваем, что используется уязвимость MS10-033, однако в данный момент подтвердить это мы не можем.

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

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

Насколько сложен Flame?

Прежде всего, 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 — одна из наиболее сложных угроз, обнаруженных на сегодняшний день.

Чем Flame отличается от других троянцев-бэкдоров и в чем состоит его сложность по сравнению с ними? Делает ли он что-то совершенно новое?

Прежде всего, для вредоносного ПО нехарактерно использование Lua. Достаточно большой размер набора инструментов для проведения атак также нетипичен для вредоносного ПО. Как правило, современные вредоносные программы имеют небольшой размер и пишутся на языках программирования, обеспечивающих максимальную компактность, что помогает скрыть присутствие этих программ в системе. Сокрытие с помощью большого объема кода — это новая черта, реализованная в Flame.

Запись аудиоданных со встроенного микрофона — тоже достаточно новый прием. Конечно, существуют и другие вредоносные программы, способные записывать аудио, однако ключ в универсальности Flame — способности этой вредоносной программы красть данные столь разнообразными способами.

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

Каковы наиболее важные функции Flame, связанные с кражей информации?

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

Записанные аудиоданные регулярно, по расписанию, скрытым образом пересылаются на командный сервер через SSL-канал. Мы еще не завершили анализ этой функции; более подробная информация скоро появится на нашем сайте.

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

Мы еще не завершили анализ этого компонента и будем сообщать новую информацию по мере ее поступления.

Когда был создан Flame?

Авторы Flame специально изменили даты создания файлов таким образом, чтобы исследователи не смогли узнать, когда зловред был создан на самом деле. Файлы датированы годами 1992, 1994, 1995 и т. д. — очевидно, что эти даты не имеют отношения к действительности.

Мы полагаем, что проект Flame в основной части был создан не раньше 2010 года и до настоящего времени находится в активной разработке. Его авторы постоянно вносят изменения в разные модули, продолжая при этом использовать ту же архитектуру и имена файлов. Многие модули изменялись или создавались в 2011-2012 годах.

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

Почему Flame был назван именно так?

Что стоит за этим названием?

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

Рис. 2. Модуль установки Flame

Кто же стоит за разработкой такого зловреда: какое-либо государство, группа киберпреступников или хактивисты?

В настоящее время известно три вида игроков, разрабатывающих вредоносные программы и шпионское ПО: хактивисты, киберпреступники и государства. Flame не предназначен для кражи денег с банковских счетов. Он также явным образом отличается от довольно простых инструментов хакеров и зловредов, используемых хактивистами. Таким образом, после исключения киберпреступников и хактивистов, в списке остаётся только одна группа.

Наконец, если принять во внимание географию жертв (конкретные страны на Ближнем Востоке) и уровень сложности угрозы, не остаётся сомнений, что за ней стоит некое государство, которое и спонсировало его разработку.

Кто же стоит за Flame?

В коде зловреда нет информации, которая указывала бы на конкретное государство. Анализ прочей доступной информации также не позволяет связать Flame с какой-либо конкретной страной. Таким образом, авторство остаётся неустановленным, как это было и в случае Stuxnet и Duqu.

Зачем они это делают?

Для систематического сбора информации о действиях конкретных стран на Ближнем Востоке, включая Иран, Ливан, Сирию, Израиль и др.

Вот семь стран, подвергшихся наибольшему количеству атак:

Нацелен ли Flame на конкретные организации? Служит ли он для сбора специфической информации, которую можно будет использовать в будущем для проведения атак? Какого вида данные и информацию ищут злоумышленники?

Первоначальный анализ указывает на то, что создатели Flame стремятся получить любые данные: электронные письма, документы, сообщения, разговоры на территории секретных объектов — практически всё. До сих пор мы не видели каких-либо указаний на конкретную цель Flame, скажем на энергетическую отрасль. Это позволяет нам считать, что Flame является универсальным набором инструментов для проведения атак, разработанным для кибершпионажа в широком смысле.

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

На какие организации или отрасли экономики направлен Flame? На системы производственного контроля, программируемые логические контроллеры, системы производственного контроля? Каковы цели, сколько их?

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

Что можно сказать на основании вашего анализа: есть только один вариант Flame или существуют также и другие?

Исходя из данных, полученных из Kaspersky Security Network, существует несколько версий вредоносной программы «в дикой среде» — разного размера и разного наполнения. Учитывая, что зловред разрабатывался в течение нескольких лет, мы предполагаем, что «в дикой среде» появятся много разных версий.

Кроме этого, Flame состоит из многочисленных и разнообразных программных модулей, число которых достигает 20 — которые выполняют специальные функции. При одном заражении Flame может иметь набор из 7 программных модулей, при другом — 15. Все зависит от того, какую информацию нужно получить от жертвы и как долго система уже была заражена Flame.

Активен ли до сих пор основной C&C-сервер? Есть ли другиеC&C-серверы первого порядка? Что происходит, когда зараженная машина устанавливает связь с C&C-сервером?

Существует несколько C&C-серверов, разбросанных по всему миру. Мы насчитали около дюжины различных C&C-доменов, управляемых на разных серверах. Возможно, есть другие домены, связанные с уже известными, и, предположительно, число доменов, используемых вредоносным ПО для связис C&C достигает 80. По этой причине действительно очень сложно отследить использование и развертывание C&C-серверов.

Ее создала группа Duqu/Stuxnet? У них похожий исходный код, или есть еще что-то общее?

По размеру 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.

По вашим словам, он активен с марта 2010 года. Почти в это же время был обнаружен Stuxnet. Он использовался в связке со Stuxnet? Интерес вызывает то, что оба эксплуатируют уязвимость в службе диспетчера очереди печати.

Один из лучших советов при проведении любых операций — не класть все яйца в одну корзину. Поскольку киберпреступники понимали, что рано или поздно Stuxnet и Duqu будут обнаружены, для них имело смысл создать другие, аналогичные проекты, но на основе совершенно иной философии. Таким образом, если один из проектов будет раскрыт, другой может беспрепятственно продвигаться вперед.

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

При анализе Duqu вы упомянули его «кузенов», или другие формы вредоносных программ, которые, возможно, могут существовать. Это одна из них?

Определенно нет. «Кузены» Duqu были основаны на платформе Tilded, которая использовалась и для Stuxnet. Flame платформу Tilded не использует.

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

Операция по сбору разведывательной информации, стоящая за Duqu, была не слишком крупномасштабной, сосредоточенной на определенных целях. Мы полагаем, что Duqu имел целью менее 50 объектов во всем мире — и все они были очень высокого уровня.

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

По нашим наблюдениям, хозяева Flame искусственно поддерживают количество зараженных систем на некоем постоянном уровне. Это можно сравнить с последовательной обработкой полей: — они заражают несколько десятков, затем проводят анализ данных, взятых на компьютерах жертв, деинсталируют Flame из систем, которые им неинтересны, и оставляют в наиболее важных, после чего начинают новую серию заражений.

Что такое Wiper и имеет ли он отношение к Flame? Какова его разрушительная сила и использовался ли он в тех же странах?

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

Кроме этого, системы, поврежденные зловредом Wiper, совершенно невозможно восстановить: объем повреждений настолько велик, что абсолютно не за что зацепиться, чтобы отследить атаку.

Информация об инцидентах с Wiper имеется только в Иране. Flame обнаружен нами в разных странах региона, не только в Иране

Вопросы по функционалy зловреда Flame

Какими способами он заражает компьютеры? Через USB-флешки? Эксплуатировал ли он, помимо уязвимости службы диспетчера очереди печати, другие уязвимости , чтобы обойти детектирование? Уязвимости нулевого дня?

Очевидно, что Flame имеет два модуля для заражения USB флеш-карт с названиями «Autorun Infector» и «Euphoria». До настоящего момента мы не видели, как они работают, возможно, по той причине, что Flame был отключен в настройках. Тем не менее, способность заражать флеш-карты USB в коде существует и использует два метода:

  1. Autorun Infector: метод «Autorun.inf» из раннего Stuxnet, использует «shell32.dll» «trick». Важно отметить, что этот конкретный способ был использован только Stuxnet и до сих пор не встречался ни в одной вредоносной программе.
  2. Euphoria: распространяется на носителях, используя директорию «junction point», включающую вредоносные модули и LNK-файл, который инициирует заражение при открытии директории. Наши образцы содержат названия файлов, но не сам LNK.

Помимо этого, Flame способен тиражироваться через локальную сеть, используя:

  1. Уязвимость принтера, эксплуатируемую Stuxnet — при помощи специального MOF-файла, исполняемого в атакуемой системе посредством WMI.
  2. Remote jobs .
  3. Когда Flame исполняется пользователем, у которого есть права администратора на контроллер домена, Flame оказывается способен атаковать другие компьютеры сети: он создает backdoor пользовательский аккаунт (backdoor) с предустановленным паролем, который впоследствии использует при собственном копировании на эти компьютеры.

На настоящий момент мы не наблюдали использования уязвимостей нулевого дня; однако известны случаи заражения червем системы Windows 7 со всеми патчами через сеть, что может указывать на существование риска атак нулевого дня.

Способен ли Flame распространяться, как Stuxnet, или его распространение происходит более упорядоченно, как Duqu?

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

Почему эта программа занимает столько мегабайт? Какой в ней имеется функционал, делающий ее настолько больше Stuxnet? Как получилось, что такую большую программу не обнаружили раньше?

Именно из-за ее большого размера вредоносную программу так долго не могли обнаружить. Современные вредоносные программы в основном небольшие и имеют определенные цели. Легче спрятать небольшой файл, чем большой модуль. Кроме того, загрузка 100K через ненадежную сеть имеет гораздо больше шансов на успех, чем загрузка 6MB.

Модули Flame вместе составляют более 20 МБ. Многие из них являются библиотеками, предназначенными для обработки SSL-трафика, SSH-соединений, контроля сообщений, передаваемых по сети связи, с целью выявления конфиденциальной информации, проведения атак, перехвата сообщений и т.п. Возьмем такой пример: нам потребовалось несколько месяцев, чтобы проанализировать 500-килобайтовый код Stuxnet. А на то, чтобы полностью понять 20MБ код Flame, вероятно, потребуются годы.

Имеет ли Flame встроенную функцию самоуничтожения, как Duqu или Stuxnet (36 дней)?

В Flame имеется много различных встроенных таймеров. Они отслеживают успешные соединения с C&C, частоту отдельных операций по краже данных, количество удачных атак и т.д. И хотя в этой вредоносной программе нет таймера самоуничтожения, контролирующие устройства могут послать специальный модуль удаления вредоносной программы (он называется «browse32»), который полностью удаляет программу из системы, стирая все следы ее присутствия там.

А что насчет JPEG-файлов или скриншотов? Их программа тоже крадет?

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

Мы продолжаем анализировать этот компонент, и по мере поступления новой информации мы будем размещать ее на сайте.

На следующей неделе в серии блогов на Securelist мы сможем предложить вниманию технических специалистов полный список файлов и следов кода.

Что мне нужно сделать, если я обнаружу вредоносную программу на своем компьютере и хочу предоставить вам ее образец, чтобы помочь вашему исследованию?

Мы будем очень признательны, если вы сможете связаться с нами по электронной почте по адресу, ранее созданному для исследования Stuxnet/Duqu stopduqu@kaspersky.com.

PS Согласно результатам нашего анализа, Flame — это та же вредоносная программа, которую CrySyS Lab в своем описании назвал «SkyWiper», а Iran Maher CERT group — «Flamer».

Flame: часто задаваемые вопросы

Ваш e-mail не будет опубликован. Обязательные поля помечены *

 

Отчеты

StripedFly: двуликий и незаметный

Разбираем фреймворк StripedFly для целевых атак, использовавший собственную версию эксплойта EternalBlue и успешно прикрывавшийся майнером.

Азиатские APT-группировки: тактики, техники и процедуры

Делимся с сообществом подходами, которые используют азиатские APT-группировки при взломе инфраструктуры, и подробной информацией о тактиках, техниках и процедурах (TTPs) злоумышленников, основанной на методологии MITRE ATT&CK.

Как поймать «Триангуляцию»

Эксперты «Лаборатории Касперского» смогли получить все этапы «Операции Триангуляция»: эксплойты нулевого дня для iOS, валидаторы, имплант TriangleDB и дополнительные модули.

Подпишитесь на еженедельную рассылку

Самая актуальная аналитика – в вашем почтовом ящике