Вредоносное ПО GlassWorm
Новая волна вредоносной программы GlassWorm активно нацелена на цепочки поставок программного обеспечения, используя украденные токены GitHub для внедрения вредоносного кода в сотни репозиториев. Эта операция в основном сосредоточена на проектах на основе Python, включая приложения Django, исследовательский код машинного обучения, панели мониторинга Streamlit и пакеты PyPI.
Вектор атаки обманчиво прост, но чрезвычайно эффективен: обфусцированное вредоносное ПО добавляется к часто выполняемым файлам, таким как setup.py, main.py и app.py. Любой разработчик, устанавливающий зависимости через pip install или запускающий клонированный код из скомпрометированного репозитория, неосознанно активирует вредоносную полезную нагрузку.
Оглавление
Захват скрытых репозиториев: техника ForceMemo
Эта эволюция кампании, теперь известная как ForceMemo, представляет собой скрытый метод взлома репозиториев. Злоумышленники получают доступ к учетным записям разработчиков и манипулируют репозиториями, не оставляя обычных следов.
Перебазируя легитимные коммиты вредоносным кодом и принудительно отправляя их в основную ветку, злоумышленники сохраняют исходные метаданные коммитов, включая сообщение, автора и метку времени, эффективно маскируя вторжение. Такой подход устраняет видимые индикаторы, такие как запросы на слияние или подозрительная история коммитов, что значительно затрудняет обнаружение.
Цепочка выполнения атаки: от кражи учетных данных до доставки полезной нагрузки
Кампания ForceMemo использует структурированный и многоэтапный процесс вторжения:
- Первоначально среды разработки взламываются с помощью вредоносных расширений Visual Studio Code и Cursor, содержащих компоненты GlassWorm, предназначенные для сбора конфиденциальных учетных данных, включая токены GitHub.
- Затем украденные учетные данные используются для внедрения закодированных в Base64 полезных нагрузок в файлы Python во всех репозиториях, связанных с скомпрометированной учетной записью.
- Встроенное вредоносное ПО выполняет проверки среды, в частности, избегая запуска на системах с русской локалью. Затем оно запрашивает у кошелька блокчейна Solana URL-адрес доставки полезной нагрузки.
- Загружаются дополнительные вредоносные программы, включая зашифрованный JavaScript, предназначенный для кражи криптовалюты и утечки данных.
Управление и контроль на основе блокчейна: отказоустойчивая инфраструктура
Отличительной чертой этой кампании является использование блокчейна Solana в качестве механизма управления и контроля (C2). Вместо традиционных серверов злоумышленники хранят URL-адреса полезной нагрузки в полях заметок транзакций, привязанных к конкретным адресам кошельков.
Анализ показывает, что активность, связанная с основным кошельком, началась еще 27 ноября 2025 года, за несколько месяцев до обнаружения взломов репозитория. Кошелек обработал десятки транзакций, при этом местоположение полезной нагрузки часто обновлялось, иногда несколько раз в день. Такой децентрализованный подход повышает устойчивость и усложняет попытки его взлома.
Расширение поверхности атаки: npm и межэкосистемные заражения
Кампания вышла за пределы экосистемы Python и затронула цепочки поставок JavaScript. Два пакета npm для React Native, react-native-international-phone-number (версия 0.11.8) и react-native-country-select (версия 0.3.91), были временно скомпрометированы и распространялись с внедренным вредоносным ПО.
В этих вредоносных версиях были внедрены пре-инсталляционные хуки, выполняющие обфусцированный JavaScript, который запускает аналогичную цепочку заражения. Вредоносное ПО снова обходит российские системы, получает инструкции полезной нагрузки через кошелек Solana и развертывает угрозы, специфичные для конкретной платформы.
Выполнение происходит полностью в памяти с использованием таких методов среды выполнения, как eval() или песочница Node.js, что сводит к минимуму следы, которые могут быть обнаружены при анализе. Кроме того, механизм сохранения данных предотвращает повторное заражение в течение 48 часов, сохраняя метку времени локально.
Продвинутые тактики уклонения и распространения
Последние версии GlassWorm демонстрируют повышенную изощренность в способах доставки и сокрытия вредоносных программ. Используя механизмы extensionPack и extensionDependencies, злоумышленники распространяют вредоносные программы транзитивно через доверенные экосистемы расширений.
В ходе предыдущих кампаний, связанных с тем же злоумышленником, было скомпрометировано более 151 репозитория GitHub с использованием невидимых символов Unicode для сокрытия вредоносного кода. Несмотря на различные стратегии обфускации и доставки, все кампании неизменно используют одну и ту же инфраструктуру на базе Solana, что подтверждает наличие единой операционной структуры.
Вредоносные расширения IDE: нацелены на среды разработки.
Кампания также проникла в инструменты разработки через вредоносное расширение, идентифицированное как reditorsupporter.r-vscode-2.8.8-universal, нацеленное на IDE Windsurf. Замаскированное под плагин поддержки языка R, оно использует программу для кражи информации на основе Node.js.
После установки расширение извлекает зашифрованные данные из транзакций блокчейна, выполняет их в памяти и развертывает скомпилированные компоненты для извлечения конфиденциальных данных из браузеров на основе Chromium. Сохранение данных обеспечивается за счет запланированных задач и изменений в реестре Windows, гарантируя выполнение при запуске системы.
Вредоносная программа нацелена на среды разработчиков, исключая российские системы, что отражает поведение, наблюдаемое в других вариантах GlassWorm.
Показатели масштаба и воздействия
Анализ безопасности показывает, что эта кампания скомпрометировала значительную часть экосистемы открытого исходного кода, затронув более 433 проектов на различных платформах. К ним относятся репозитории GitHub (Python и JavaScript), расширения VS Code и библиотеки npm.
Все пути заражения в конечном итоге сходятся к развертыванию программы для кражи информации на основе JavaScript, что подчеркивает неизменную конечную цель — сбор учетных данных и утечку данных.
- Подтверждено более 433 скомпрометированных проектов и пакетов.
- Доступны различные каналы распространения, включая GitHub, npm и расширения для IDE.
- Последовательное использование блокчейн-инфраструктуры Solana для доставки полезной нагрузки.
- Повторное исключение российских систем во всех вариантах.
Стратегическая оценка: новая эра атак на цепочки поставок.
Кампания ForceMemo представляет собой значительную эскалацию угроз для цепочки поставок программного обеспечения. Сочетание скрытой манипуляции историей Git, инфраструктуры управления и контроля на основе блокчейна и кроссплатформенных векторов заражения демонстрирует высокий уровень операционной зрелости.
Повторное использование инфраструктуры наряду с развивающимися механизмами доставки указывает на адаптивного противника, способного масштабировать атаки, сохраняя при этом устойчивость и способность к уклонению. Этот переход от изолированных взломов к скоординированным вторжениям в несколько экосистем подчеркивает растущий риск, с которым сталкиваются современные среды разработки и сообщества открытого исходного кода.