В марте 2014 г. французское издание Le Monde опубликовало исследование, согласно которому спецслужбы Франция подозреваются в разработке и использовании изощренного вредоносного ПО для целей кибершпионажа. Изначально эта история была основана на документах беглого сотрудника АНБ Эдварда Сноудена, которыми он поделился с журналистами немецкого издания Der Spiegel в январе 2015 г.
Первоначальное исследование этого вредоносного ПО было выполнено организацией Communications Security Establishment Canada (CSEC), в котором эта вредоносная программа была названа Babar. После этого, несколько исследователей вредоносных программ также работали над ее анализом. Одним из них была Marion Marschalek (Cyphort), которая опубликовала два отчета, посвященных анализу этой вредоносной программы [1] [2].
Другое исследование было опубликовано одним из исследователей антивирусной компании G DATA. В нашем же исследовании мы публикуем анализ другой схожей вредоносной программы, которая создана той же организацией, которая стояла за разработкой Babar. Эта вредоносная программа получила название Casper.
Сам Casper использовался против правительственных учреждений Сирии еще в апреле 2014 г. Для его установки злоумышленники использовали 0day эксплойты для ПО Adobe Flash Player. Эксплойты были размещены на веб-сайте, принадлежащем правительству Сирии. Casper представляет из себя хорошо разработанный инструмент для проведения разведывательных операций, который может долгое время оставаться незамеченным на зараженном компьютере. Он также содержит код для противодействия AV-продуктам различных вендоров.
Мы обнаружили два образца вредоносной программы, которые были упакованы разными упаковщиками. Первый семпл представляет из себя дроппер и сбрасывает на диск другой исполняемый файл (core), который будет загружаться в системе после каждой перезагрузки. Второй представляет из себя DLL библиотеку, которая загружает компонент core в память. В этом случае компонент core также представляет из себя DLL файл, причем его имя Casper_DLL.dll.
Дроппер
Исполняемый файл дроппера называется «domcommon.exe» и его дата компиляции 18 июня, 2010. Вероятно, что эта дата компиляции в заголовке PE-файла является поддельной.
Вредоносная программа имеет файл конфигурации в формате XML, который расшифровывается дроппером с использованием алгоритма RC4 и жестко зашитого 16-байтового ключа. Перед его расшифровкой, дроппер проверяет целостность участка памяти, который содержит ключ, путем подсчета контрольной суммы. Такая операция осуществляется с целью проверки его целостности. Ниже на скриншоте показан расшифрованный конфигурационный файл.
Рис. Расшифрованный конфигурационный файл дроппера Casper.
Исполняемый код дроппера начинает использование XML файла конфигурации путем анализа тэга STRATEGY, который определяет секцию конфигурационного файла. Этот тэг задает режим поведения для вредоносной программы, в зависимости от того, какой антивирусный продукт установлен в системе. Список запущенных в системе антивирусных продуктов дроппер получает с использованием WMI запроса «SELECT * FROM AntiVirusProduct», далее название продукта извлекается из поля «displayName». В этой секции конфигурационного фалйа также может присутствовать список антивирусных продуктов, каждый из которых определяется тэгом AV. В этом случае, вредоносная программа может предпринять ряд действий для выведения из строя того или иного продукта.
В случае отсутствия списка антивирусных продуктов в секции STRATEGY, к обнаруженному в системе антивирусному продукту применяются действия по умолчанию, которые заданы в качестве аргумента тэга STRATEGY. Кроме этого, политика поведения вредоносной программы для антивирусных продуктов может быть задана в отдельном конфигурационном файле под названием «strategy.xml».
Как уже указывалось, поведение дроппера, а также полезной нагрузки, задается параметрами, которые указаны в файле конфигурации. Некоторые из тэгов или секций описывают каким именно способом исполняемый код вредоносной программы должен выполнять соответствующие действия и в каких случаях. Ниже в таблице указаны примеры таких параметров.
Спектр возможностей, которые предоставляет секция STRATEGY, показывает то, что авторы Casper провели глубокое исследование поведения различных антивирусных продуктов. На представленном скриншоте конфигурационного файла видно, что параметр INJECTION для всех тэгов AV установлен в FALSE, а для всей секции, которая задается тэгом STRATEGY в TRUE. Это означает, что для всех встреченных в системе антивирусных продуктов кроме этих четырех, будет произведено внедрение исполняемого кода в их процессы. Интересно отметить, что для трех антивирусных продуктов параметр ESCAPE установлен в YES. Это означает, что дроппер просто откажется от установки вредоносной программы в систему в случае присутствия там этих антивирусных продуктов.
По списку антивирусных продуктов, перечисленных в тэгах AV, можно предположить, что это те продукты, которые авторы Casper ожидают найти на зараженных компьютерах. Параметр VERSION, который может присутствовать в тэге AV, никогда не используется в коде вредоносной программы. Он позволяет авторам вредоносной программы фиксировать нужные им версии антивирусных продуктов. Мы очень редко наблюдали такую точность реализации механизмов обхода антивирусного ПО со стороны вредоносного кода.
В том случае, когда параметр ESCAPE установлен в NO, т. е. дроппер может нормально продолжать свою работу, он перейдет к анализу следующего набора инструкций из конфигурационного файла.
Рис. Часть конфигурационного файла дроппера.
Первая такая команда указывает вредоносному коду удалить из системы другие уже установленные экземпляры Casper. Тэг UNINSTALL сопровождается параметром name, который располагается в системном реестре Windows. Очевидно, что авторы хотели замаскировать автозагрузку модуля вредоносной программы дав ему название «Audio Interface Device Manager». Механизм удаления из системы уже существующей копии вредоносной программы состоит из двух этапов. Каждый этап зачищает соответствующий механизм автозагрузки.
- В случае присутствия запланированной задачи (scheduled task), она удаляется из системы.
- В случае присутствия записи вредоносной программы в системном реестре, она удаляется.
Далее, дроппер производит установку в систему полезной нагрузки (секция INSTALL). Эта секция регламентирует две версии полезной нагрузки, одна для 32-битных систем (тэг x86) и другая для 64-битных (тэг x64). Секция INSTALL будет использоваться одним или двумя методами установки полезной нагрузки в систему. В случае с Windows 7+, выживаемость вредоносной программы обеспечивается механизмом запланированной задачей (scheduled task), в противном случае используется известный раздел системного реестра.
HKLMSoftwareMicrosoftWindowsCurrentVersionRun
Тэг INSTALL в качестве параметра содержит аргумент, который может быть передан устанавливаемой в систему полезной нагрузке. Точное значение этого аргумента крайне важно для правильной работы полезной нагрузки. Передаваемый таким образом аргумент используется для нахождения необходимых вредоносной программе функций динамических библиотек в памяти. В том случае, если это значение ошибочно, полезная нагрузка не сможет нормально исполнить свой код.
Перед тем как завершить свое исполнение, дроппер удаляет себя из системы, используя метод, который указан в параметре AUTODEL. К этому моменту полезная нагрузка еще не запущена в системе, это будет сделано после следующей перезагрузки.
Полезная нагрузка
Исполнение полезной нагрузки Casper так же, как и его дроппера, основано на файле конфигурации XML, который расшифровывается на начальном этапе.
Рис. Конфигурационный файл полезной нагрузки.
Конфигурационный файл начинается с временной метки, которая соответствует понедельнику, 7-го апреля 2014 г. 21:27:05 GMT, поэтому указанная в начале нашего отчета временная отметка компиляции исполняемого файла вредоносной программы, скорее всего, является поддельной и не соответствует действительности.
Набор тэгов PARAM указывает инструкции исполняемому коду полезной нагрузки.
Исполняемый код полезной нагрузки затем генерирует уникальный идентификатор (ID) зараженного компьютера и вставляет его в конец конфигурационного файла с тэгом UID. После этого файл конфигурации шифруется с помощью алгоритма RC4 и сохраняется в разделе системного реестра.
Некоторые возможности конфигурационного файла не используются исполняемым кодом полезной нагрузки тех файлов Casper, которые мы наблюдали. Это касается параметра TIMETOLIVE, который задает т. н. «время жизни» Casper в системе, после которого он удалит себя оттуда. Параметр DELAYED_START задает время ожидания, которое код полезной нагрузки должен выдержать перед исполнением своих основных функций. Файл конфигурации полезной нагрузки содержит секцию STRATEGY аналогичную той, которая присутствовала в файле конфигурации дроппера.
Взаимодействие с C&C-сервером
Полезная нагрузка может взаимодействовать со своим C&C-сервером. Инструкции от сервера могут приходить в формате XML, как показано ниже.
Команда SYSINFO инструктирует бота на отправку информации о системе на удаленный сервер. Информация отправляется в виде отчета, который содержит несколько секций. Пример отчета указан ниже на скриншоте.
Рис. Информация о системе, отправляемая ботом на удаленный сервер.
Очевидно, что названия секций в этом отчете не нуждаются в пояснении. Сам отчете сгенерирован ботом версии 4.4.1. Отчет сохраняется в файл «perfaudio.dat» и затем шифруется алгоритмом base64, после чего его содержимое отправляется на удаленный C&C-сервер в теле запроса POST HTTP-протокола.
Запрос C&C-сервера также снабжен файлом cookie с именем PREF, к которому присоединен UID идентификатор зараженного компьютера, ID конфигурационного файла, версия бота, и символ «R», все это шифруется алгоритмом base-64. В качестве символа может выступать и другой – «G». Анализ исполняемого файла показал, что сервер в таком случае может отправить боту файл изображения в формате PNG. Этот файл изображения имеет обычный PNG формат, но вместо изображения содержит файл конфигурации XML. Этот файл будет извлечен оттуда и указания из него будут исполнены ботом.
Кроме команды «SYSINFO», Casper может интерпретировать тэги «COMMAND» со следующими значениями.
- EXEC, используется для исполнения другой программы на компьютере по локальному пути.
- SYSTEM, используется для исполнения инструкций в командной строке Windows.
Вредоносное программа может обрабатывать и тэги , которые указывают боту исполняемый файл для выполнения.
Наилучшим способом установить связь между вредоносными программами Babar, Bunny и Casper является обнаружение необычных участков исполняемого кода и используемых ими алгоритмов. Для сравнения можно включить еще одну вредоносную программу, т. н. NBOT (a.k.a TFC). Присутствие общих связей у NBOT и вышеперечисленных вредоносных программ было установлено исследовательницей Marion Marschalek в ее отчете, посвященном Babar. Ниже перечислен список таких общих особенностей этих вредоносных программ.
- Casper скрывает вызовы API-функций Windows с использованием специальных хэшей имен этих функций. Алгоритм расчета хэша представляет из себя комбинацию алгоритма ROL и алгоритма XOR. В то же время, NBOT использует тот же самый алгоритм для этой цели. Babar использует схожий подход, но алгоритм расчета отличается.
- Casper получает информацию о запущенных антивирусных продуктах таким же путем (WMI API), как и Bunny, Babar, NBOT. Все эти вредоносные программы вычисляют SHA-256 хэш от первого слова в названии антивирусного продукта, хотя именно этот механизм в Casper нигде не используется.
- Casper использует специальные разделители при организации своих HTTP-запросов, используя специальную форматную строку, значения для которой генерируются известной API функцией GetTickCount. Аналогичный код присутствует и в образцах NBOT, как показано ниже на скриншотах.
- Casper удаляет дроппер из системы путем исполнения Windows команды, которая соответствует следующему шаблону.
cmd.exe /C FOR /L %%i IN (1,1,%d) DO IF EXIST “%hs” (DEL “%hs” & SYSTEMINFO) ELSE EXIT
В некоторых экземплярах NBOT мы можем обнаружить схожий синтаксис команды.
cmd.exe /C FOR /L %%i IN (1,1,%d) DO IF EXIST “%s” (DEL “%s” & PING 127.0.0.1 -n 3) ELSE EXIT
- Casper устанавливает параметр ID в значение «13001», в то время как образцы Babar устанавливают это значение в «12075-01». Кроме этого, одна вредоносная программа, обнаруженная в 2009 г. организацией CSEC, использует тот же идентификатор и он установлен в значение «08184» (см. 8-й слайд на презентации CSEC).
Нужно отметить, что ни один из этих признаков не является достаточным для того, чтобы сделать однозначный вывод, в то же время, они позволяют нам с высокой степенью вероятности утверждать, что Bunny, Babar, NBOT, и Casper были разработаны одной группой лиц или организацией.
Заключение
Наши данные телеметрии показывают, что все предполагаемые жертвы этих кибератак были расположены в Сирии, кроме этого, они были посетителями веб-сайта jpic.gov.sy. Данный сайт, предположительно, был скомпрометирован и пользователи перенаправлялись с него на страницу набора эксплойтов. На самом деле, пользователи могли быть перенаправлены на установку вредоносного ПО и из других мест, например, фишинговое сообщение. Однако, точно известно, что эксплойты, исполняемые файлы Casper, а также компонент C&C, были расположены именно на этом легитимном сервере (jpic.gov.sy).
Можно предположить, что упоминаемый веб-сайт или его сервер были взломаны для того, чтобы разместить там вредоносное содержимое (т. н. storage area). Такая модель атаки может иметь как минимум два преимущества для самих злоумышленников: во-первых, размещение файлов на сирийском сервере, делает его более простым для доступа на территории самой Сирии, т. к. в этой стране происходили отключения от сети Интернет, а злоумышленники были заинтересованы в стабильном заражении пользователей. Во-вторых, такая ситуация может ввести в заблуждение усилия самих правоохранительных органов, которые заинтересованы в обнаружении источника кибератаки.
Мы уверены, что за Bunny, Babar, и Casper стоит одна и та же организация или хакерская группа. В детальном анализе вредоносной программы Babar, который был опубликован на презентации CSEC, было указано, что данная группа не является новичком в разработке инструментов кибершпионажа. Использование эксплойтов нулевого дня является еще одним индикатором того, что авторы Casper принадлежат высокопрофессиональной группе. Наконец, конкретная направленность атаки на граждан Сирии показывает геополитический интерес атакующих.
Тем не менее, мы не обнаружили никаких доказательств в файлах Casper, чтобы указать на авторов в конкретной стране. В частности, мы не обнаружили никаких признаков ее французского происхождения, как это было найдено организацией CSEC в случае с Babar.
Автор: esetnod32