PolinRider расширяет атаку на open source-пакеты
Кампания PolinRider, приписываемая северокорейским злоумышленникам, продемонстрировала значительное расширение своего присутствия в экосистемах открытого исходного кода. Если изначально её активность фиксировалась только в реестре npm, то теперь вредоносные артефакты обнаружены на платформах Go modules, Packagist и даже среди расширений Chrome. В общей сложности выявлено 162 вредоносных артефакта, распределённых по 108 уникальным пакетам. Злоумышленники используют компрометацию учётных записей мейнтейнеров, модификацию репозиториев и публикацию вредоносных версий пакетов, обеспечивая постоянную доставку дополнительного malware по мере появления новых пакетов.
Технический анализ: от loaders к многоступенчатым атакам
Ключевой элемент кампании — внедрение зашифрованных JavaScript loaders в легитимные репозитории. Эти loaders маскируют своё присутствие с помощью добавления значительных пробелов в код или выдают вредоносные payloads за безобидные шрифтовые файлы .woff2. Запуск часто инициируется через инструменты разработчика, такие как Visual Studio Code: для этого используются task-файлы, настроенные на автоматическое выполнение при открытии папки проекта. Такой подход позволяет атакующим манипулировать историей Git-репозитория, применяя принудительные push-операции (force pushes) и коммиты с подделкой даты (date-spoofed commits). В результате формируется ненадёжная история коммитов, способная ввести в заблуждение специалистов по защите.
Доставляемые loaders в основном написаны на JavaScript и обращаются к блокчейн-сервисам TRON и BNB Smart Chain для получения дополнительных зашифрованных payloads. Это обеспечивает гибкость и устойчивость инфраструктуры: реальная вредоносная нагрузка не хранится в репозитории и может обновляться без изменения самого loader-а.
Известные payloads и их возможности
Среди идентифицированных payloads присутствуют DEV#POPPER и OmniStealer. Они предоставляют злоумышленникам функционал удалённого выполнения команд, кражу учётных данных и эксфильтрацию криптовалютных кошельков. Эволюционная природа конструкции на основе loaders указывает на то, что в любой момент может начаться доставка совершенно нового вредоносного ПО по мере развития кампании.
Расширение на Packagist и проблемы очистки
Особого внимания заслуживает заметная экспансия на платформу Packagist, где множество скомпрометированных пакетов связано с организацией 7span. Предпринятые усилия по очистке позволили удалить часть вредоносных payloads, однако остатки зашифрованного JavaScript сохранились из-за незавершённости восстановительных работ. Этот инцидент подчёркивает критическую необходимость комплексных стратегий обнаружения и реагирования, включающих полную верификацию всех компонентов.
PyPI остаётся нетронутой
Примечательно, что кампания пока не затронула Python Package Index (PyPI). Это может свидетельствовать об отсутствии у злоумышленников необходимых учётных данных или доступа для публикации вредоносных версий в данном реестре. Тем не менее, ситуация способна измениться в любой момент.
Рекомендации по защите
Для противодействия угрозам, связанным с PolinRider, организациям следует придерживаться следующих мер:
- Рассматривать системы с установленными затронутыми пакетами как потенциально скомпрометированные.
- Сохранять данные криминалистического анализа и пересобирать системы исключительно из чистых источников.
- Немедленно производить ротацию всех учётных данных, которые могли быть скомпрометированы.
- Регулярно проводить аудит сред разработки, конфигурационных файлов и журналов активности GitHub.
- Особое внимание уделять выявлению принудительных изменений (force pushes), подозрительных task-файлов и аномалий в истории коммитов, которые могут скрывать внедрение вредоносного кода.
Непрерывный характер кампании требует постоянной бдительности: новые вредоносные артефакты с высокой вероятностью будут появляться регулярно, а методы сокрытия — совершенствоваться.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.



