Pull to refresh
0

Winnti: атака на цепочки поставок – под прицелом азиатские разработчики игр

Reading time 5 min
Views 3K
Не впервые злоумышленники атакуют игровую индустрию, компрометируют разработчиков, добавляют бэкдоры в среду сборки игр, а затем распространяют вредоносное ПО под видом легитимного. В апреле 2013 года «Лаборатория Касперского» сообщала о подобном инциденте. Эта атака приписана кибергруппе, названной Winnti.

Недавно внимание специалистов ESET привлекли новые атаки на цепочки поставок. Две игры и одна игровая платформа были скомпрометированы для внедрения бэкдора. Эти атаки нацелены на Азию и игровую индустрию, за ними снова стоит группа Winnti.


Три кейса, один бэкдор


Несмотря на разные конфигурации вредоносного ПО, три скомпрометированных программных продукта включали один и тот же код бэкдора и запускались с использованием идентичного механизма. Сейчас в двух продуктах бэкдоров нет, но один все еще распространяется в троянизированной версии – по иронии, эта игра называется Infestation («заражение»), ее выпускает тайская компания Electronics Extreme. Мы пытаемся связаться с разработчиком с начала февраля, но пока безрезультатно.

Разберем, как внедряется вредоносная полезная нагрузка, а затем рассмотрим детально бэкдор.

Внедрение полезной нагрузки


Код полезной нагрузки запускается во время выполнения троянизированного исполняемого файла. Сразу после РЕ entry point стандартный вызов инициализации C Runtime (__scrt_common_main_seh на рисунке ниже) перехватывается для запуска вредоносной полезной нагрузки раньше чего-либо еще (рисунок 2). Это может указывать на то, что злоумышленники изменили конфигурацию сборки, а не сам исходный код.



Рисунок 1. Чистая точка входа в исполняемый файл



Рисунок 2. Точка входа скомпрометированного исполняемого файла

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



Рисунок 3. Структура встроенной полезной нагрузки

В ее составе ключ RC4 (зашифрованный XOR с 0x37), который используется для расшифровки имени файла и встроенного файла DLL.

Вредоносная полезная нагрузка


Фактическая вредоносная полезная нагрузка содержит всего 17 Кбайт кода и данных.

Конфигурация


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



Рисунок 4. Данные конфигурации полезной нагрузки

Конфигурация состоит из четырех полей:

  1. URL управляющего C&C-сервера.
  2. Переменная (t), используемая для определения времени ожидания в миллисекундах перед продолжением выполнения. Время ожидания выбирается в диапазоне от 2/3 до 5/3 t случайным образом.
  3. Строка, идентифицирующая кампанию.
  4. Список имен исполняемых файлов, разделенный точкой с запятой. Если какой-либо из них работает, бэкдор останавливает его выполнение.

Мы идентифицировали пять версий полезной нагрузки:



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

Инфраструктура C&C


Имена доменов выбраны таким образом, чтобы иметь сходство с сайтами разработчиков скомпрометированных приложений. Домен верхнего уровня настроен на перенаправление на соответствующий легитимный сайт с помощью сервиса Namecheap, в то время как субдомен указывает на вредоносный C&C-сервер.



На момент написания поста ни один из доменов не доступен, C&C-серверы не отвечают.

Отчет об исследовании


Идентификатор бота генерируется из МАС-адреса машины. Бэкдор передает на C&C-сервер информацию о машине, включая имя пользователя, имя компьютера, версию Windows и язык системы, а затем ожидает команды. Данные шифруются XOR с помощью ключа “*&b0i0rong2Y7un1” и кодируются base64. Данные, полученные с C&C-сервера, шифруются с использованием того же ключа.

Команды


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

DownUrlFile
DownRunUrlFile
RunUrlBinInMem
UnInstall

Названия команд говорят сами за себя. Они позволяют атакующим запускать дополнительные исполняемые файлы с заданного URL.

Возможно, последняя команда менее очевидна. UnInstall не удаляет вредоносную программу из системы. В конце концов, она встроена в легитимный исполняемый файл, который еще будет запускаться. Вместо удаления чего-либо, команда отключает вредоносный код, задавая значение 1 для ключа реестра:

HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\ImageFlag

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

Второй этап


По данным телеметрии, одна из полезных нагрузок второго этапа, отправляемых жертвам, Win64/Winnti.BN. Насколько мы можем судить, дроппер этой вредоносной программы загружается через НТТРS с api.goallbandungtravel[.]com. Мы видели, что он устанавливался как служба Windows и как DLL в C:\Windows\System32, используя следующие имена файла:

— cscsrv.dll
— dwmsvc.dll
— iassrv.dll
— mprsvc.dll
— nlasrv.dll
— powfsvc.dll
— racsvc.dll
— slcsvc.dll
— snmpsvc.dll
— sspisvc.dll

Образцы, которые мы проанализировали, были достаточно большими – около 60 Мбайт. Однако это только видимость, поскольку реальный размер или РЕ файл – от 63 до 72 Кбайт, в зависимости от версии. К вредоносным файлам просто добавляется множество чистых. Вероятно, это делает компонент, сбрасывающий и устанавливающий вредоносную службу.

После запуска службы она добавляет к своему пути DLL расширение .mui и расшифровывает его с помощью RC5. Расшифрованный файл MUI содержит независимый от позиции код со смещением 0. Ключ RC5 получен из серийного номера жесткого диска и строки “f@Ukd!rCto R$.”. Мы не смогли получить ни файлы MUI, ни код, который их устанавливает в первую очередь. Таким образом, точное назначение вредоносного сервиса нам неизвестно.

Последние версии вредоносного ПО включают механизм автообновления с использованием C&C-сервера http://checkin.travelsanignacio[.]com. Этот сервер обслуживал последнюю версию файлов MUI, зашифрованных статическим ключом RC5. В ходе нашего исследования этот C&C-сервер не отвечал.

Цели


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



Рисунок 5. Проверка языка до запуска полезной нагрузки

Статистика распространения


Согласно телеметрии, большинство заражений пришлось на Азию, прежде всего, Таиланд. С учетом популярности скомпрометированного приложения, которое все еще распространяется разработчиком, неудивительно, если число жертв исчисляется десятками и сотнями тысяч.



Вывод


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

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

Продукты ESET детектируют угрозу как Win32/HackedApp.Winnti.A, Win32/HackedApp.Winnti.B, полезную нагрузку – как Win32/Winnti.AG, второй этап – как Win64/Winnti.BN.

Индикаторы компрометации доступны по ссылке.
Tags:
Hubs:
+23
Comments 0
Comments Leave a comment

Articles

Information

Website
www.esetnod32.ru
Registered
Founded
Employees
1,001–5,000 employees
Location
Словакия