В наше время открытый исходный код играет огромную роль в разработке программного обеспечения. За прошедшие годы было опубликовано множество проектов с доступным для всех кодом, который можно свободно изучать и улучшать. Разработчики часто ищут в интернете готовые решения, чтобы не писать код с нуля, и нередко находят подходящие варианты в открытом доступе. Логика тут простая — зачем изобретать велосипед заново?

Однако с ростом числа проектов с открытым кодом они стали привлекать не только разработчиков, но и киберпреступников, которые ищут новые способы заражать устройства своих жертв. Эта тенденция не угасает, и яркий тому пример — кампания GitVenom, нацеленная на пользователей GitHub.

Проекты-приманки

В рамках кампании GitVenom злоумышленники создали на GitHub сотни поддельных репозиториев с вредоносным кодом. Официально заявленная функциональность этих проектов самая разная — например, инструмент для автоматизации работы с аккаунтами Instagram, Telegram-бот для управления биткойн-кошельками и утилита для взлома игры Valorant.

При этом злоумышленники старались сделать поддельные проекты максимально правдоподобными, чтобы жертвы ничего не заподозрили. Например, обнаруженные нами вредоносные репозитории содержали красиво оформленные файлы README.md, вероятно, сгенерированные с помощью ИИ. Они включали описания проектов и инструкции по компиляции кода.


Фрагменты страниц README.md с описаниями поддельных проектов

Злоумышленники также использовали множество тегов и искусственно увеличивали количество коммитов. Для этого они добавляли в репозитории файл временной метки, который обновлялся каждые несколько минут:

Пример структуры вредоносного репозитория

Разнообразие вредоносного кода

Анализируя репозитории кампании GitVenom, мы заметили, что поддельные проекты были написаны на разных языках программирования, включая Python, JavaScript, C, C++ и C#. Как и ожидалось, в этих проектах не было реализовано заявленных функций, а код в основном выполнял бессмысленные действия. При этом каждый из проектов был заражен вредоносным кодом, расположение которого зависело от языка программирования.

Например, в проектах на Python злоумышленники вставляли вредоносный код в один из файлов в виде длинной строки. Эта строка содержала около двух тысяч символов табуляции, после которых шел код для расшифровки и выполнения Python-скрипта:

subprocess.run([‘pip’, ‘install’, ‘cryptography’], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL); subprocess.run([‘pip’, ‘install’, ‘fernet’], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL); from fernet import Fernet; import requests; exec(Fernet(b'<зашифрованный вредоносный Python-скрипт>’))

В проектах на JavaScript злоумышленники создавали вредоносную функцию, которая затем вызывалась из главного файла проекта. Ниже приведен пример такой функции:

Пример вредоносной функции в проектах на JavaScript, которая декодирует скрипт по алгоритму Base64 и выполняет его

В репозиториях с кодом на C, C++ и C# злоумышленники прятали вредоносный пакетный файл в файлах проектов Visual Studio, настроив его на выполнение при сборке:

Фрагмент из вредоносного файла проекта Visual Studio. Файл содержит атрибут PreBuildEvent, который предписывает выполнить полезную нагрузку при сборке проекта

Дополнительные полезные нагрузки, развертываемые злоумышленниками

Несмотря на разные языки программирования, назначение полезных нагрузок внутри поддельных проектов было одинаковым — они должны были загрузить и выполнить дополнительные вредоносные компоненты из репозитория GitHub, контролируемого злоумышленниками (URL-адрес на момент исследования:

hxxps://github[.]com/Dipo17/battle).

Стилер на Node.js, который собирает такую информацию, как сохраненные учетные данные, данные криптовалютных кошельков и история просмотра веб-страниц, упаковывает их в архив .7z и отправляет злоумышленникам через Telegram.

Структура архива, который стилер отправляет злоумышленникам

Имплант AsyncRAT с открытым исходным кодом (адрес командного сервера: 68.81[.]155).
Бэкдор Quasar с открытым исходным кодом (адрес командного сервера такой же, как и выше).
Перехватчик буфера обмена, который ищет адреса криптовалютных кошельков в буфере обмена и заменяет их на подконтрольные злоумышленникам. Примечательно, что в ноябре 2024 года на контролируемый злоумышленниками биткойн-кошелек (ID: bc1qtxlz2m6r[…]yspzt) был сделан единовременный перевод на сумму примерно 5 BTC (около 485 000 долларов США на момент исследования).

Последствия кампании

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

Риски запуска кода с GitHub вслепую

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

​  

​Securelist

Read More

Ваша реакция?
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x