ForceMemo: компрометация GitHub, вредоносный код в Python и Solana C2

Недавняя кампания, идентифицированная под именем ForceMemo, привела к компрометации сотен учётных записей GitHub и внедрению вредоносного ПО в многочисленные репозитории Python. Самые ранние зафиксированные случаи относятся к 8 марта 2026 года; на момент исследования кампания оставалась активной и могла по-прежнему приводить к новым компрометациям.

Краткое содержание

  • Злоумышленники компрометируют учётные записи разработчиков и встраивают вредоносный код в критические файлы проектов — в частности setup.py и main.py.
  • Начальная точка взлома связана с вредоносным ПО GlassWorm, которое заражает разработческую среду через вредоносные компоненты Visual Studio и расширения Cursor.
  • После кражи токенов GitHub злоумышленники автоматически отправляют коммиты с вредоносным кодом, при этом сохраняются метаданные исходных коммитов, создавая видимость легитимности изменений.
  • Особенность кампании — использование блокчейна Solana как канала управления (C2): команды и URL полезной нагрузки считываются из транзакций в цепочке.

Как работает атака — цепочка компрометации

Атака развивается по цепочке:

  • Первичное заражение разработчика: вредоносное ПО GlassWorm внедряется через модифицированные компоненты Visual Studio и/или через вредоносные расширения Cursor. В результате на машине разработчика появляется модуль кражи учетных данных и GitHub-токенов.
  • Кража токенов и подделка коммитов: получив токены GitHub, злоумышленники отправляют коммиты компрометации в репозитории, сохраняя метаданные (автора, время и т.д.), что делает эти коммиты на первый взгляд легитимными.
  • Встраивание вредоносного кода: атакующие встраивают запутанные полезные нагрузки в важные файлы Python-проектов, включая setup.py и main.py. Выполнение такого кода при установке или запуске приводит к инфицированию целевой системы.
  • Канал управления через Solana: инструкции и URL для загрузки дополнительной полезной нагрузки публикуются в транзакциях блокчейн-сети Solana, что делает их неизменяемыми, устойчивыми к цензуре и сложными для блокировки традиционными способами.

Технические особенности вредоносного ПО

  • Многоуровневое запутывание: комбинация base64-кодирования, сжатия zlib и шифрования XOR со статическим ключом.
  • Географические проверки: вредоносное ПО содержит механизмы, препятствующие выполнению в системах, расположенных в России — типичная «оперативная безопасность» (OPSEC) для ряда восточноевропейских группировок.
  • Solana как C2: вредоносный код пытается подключиться к нескольким Solana RPC-эндпойнтам, повышая устойчивость к отключениям инфраструктуры провайдера. Команды и URL извлекаются прямо из данных транзакций.
  • Дальнейшие загрузки: после инициации на целевой машине в домашний каталог жертвы записывается полезная нагрузка Node.js, которая затем загружает зашифрованную JavaScript-полезную нагрузку с URL, указанных в транзакции Solana.
  • Целевой сбор данных: конечная полезная нагрузка ориентирована на кражу конфиденциальной информации, в частности данных расширений браузера, связанных с криптовалютными кошельками.

«Наиболее тревожной особенностью вредоносного ПО является использование блокчейна Solana в качестве канала управления (C2), что делает инструкции неизменяемыми и устойчивыми к цензуре».

Кому угрожает кампания

Целями злоумышленников становятся проекты на базе Python — от веб-приложений на Django до проектов машинного обучения. В первую очередь пострадают проекты с широким распространением и высоким доверием, где малейшее изменение кода может распространиться дальше через цепочку поставок (supply chain).

Показатели компрометации и признаки заражения

Пользователям и администраторам рекомендуется искать следующие признаки присутствия вредоносного кода:

  • Неожиданные изменения в setup.py, main.py и других скриптах, вызывающих выполнение внешнего кода.
  • Вставки кода с последовательностями декодирования base64, вызовами zlib или операциями XOR со статическими ключами.
  • Строки или обращения к Solana RPC-эндпойнтам или к URL, которые могут извлекаться из транзакций в сети Solana.
  • Появление файлов или процессов Node.js в домашнем каталоге пользователя, особенно при отсутствии явного основания для их присутствия.
  • Необычные коммиты в репозитории, где сохраняются метаданные старых коммитов, но код явно изменён.
  • Неожиданная активность расширений разработческих сред (Visual Studio) и расширений Cursor.
  • Жалобы пользователей на пропажу средств из криптовалютных кошельков или некорректная работа расширений кошельков.

Рекомендации по защите и реагированию

  • Немедленно отозвать и регенерировать все GitHub-токены, которые могли находиться на заражённых машинах; включить двухфакторную аутентификацию (2FA) для всех учётных записей.
  • Проверить и при необходимости откатить изменения в критичных файлах репозиториев (например, setup.py, main.py) и проследить цепочку коммитов на предмет подмены метаданных.
  • Обновить и просканировать рабочие станции разработчиков средствами EDR/AV, особенно те, где используется Visual Studio или расширение Cursor. Рассмотреть полную переустановку dev-среды после очистки.
  • Проверить домашние каталоги пользователей на присутствие подозрительных Node.js-файлов и следов загрузки JavaScript-полезных нагрузок по URL из транзакций.
  • Ограничить и мониторить доступ к секретам и ключам (ключи API, приватные ключи), применить принцип минимальных привилегий; хранить секреты в защищённых хранилищах (secret managers).
  • Произвести аудит и уведомить сообщества/пользователей затронутых репозиториев; при обнаружении компрометации — выложить соответствующие advisories и рекомендации по откату и проверке.
  • Мониторить сетевую активность на предмет попыток подключения к Solana RPC-эндпойнтам и аномальных исходящих запросов.

Почему это опасно для цепочек поставок ПО

Использование блокчейна как канала C2 и подмена легитимных коммитов повышают устойчивость и скрытность атак. Злоумышленники получают преимущества по трём ключевым направлениям:

  • Устойчивость инфраструктуры: Solana-транзакции нельзя просто «отключить», а множественные RPC-эндпойнты обеспечивают избыточность.
  • Скрытность и доверие: сохранение метаданных коммитов позволяет вредоносным изменениям выглядеть как легитимные обновления.
  • Фокус на криптографии: сбор данных расширений браузеров, отвечающих за криптокошельки, напрямую влияет на финансовые потери пострадавших.

Заключение

Кампания ForceMemo демонстрирует эволюцию тактик киберпреступников: сочетание атак на разработческую среду, подмены кода в репозиториях и инновационного применения блокчейн-инфраструктуры как C2 делает такие операции особенно опасными для экосистемы open source и цепочек поставок ПО. Исследователи безопасности продолжают анализ, и всем разработчикам, владельцам репозиториев и операторам инфраструктуры рекомендуется срочно проверить свои окружения и внедрить описанные меры защиты.

Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.

Ознакомиться подробнее с отчетом можно по ссылке.

Технологии киберугроз
Автор: Технологии киберугроз
Технологии киберугроз (бренд RST Cloud Russia) – технологическая компания, специализирующаяся на решениях по анализу угроз для предприятий любого размера. Мы собираем, нормализуем, обогащаем информацию о киберугрозах со всего мира. Нашими источниками являют более 260 открытых фидов, более 100 открытых поставщиков Threat Intelligence-отчетов, открытые online sandbox, социальные сети и репозитории GitHub. Мы также предоставляем ряд сервисов по: семантическом анализу Threat Intelligence-отчетов и приведения их в машиночитаемый формат STIX 2.1, проверки IoC на потенциальные ложноположительные сработки, а также получению WHOIS-записей для доменных имен.
Комментарии: