PolinRider атакует разработчиков через Git, npm и VS Code
Кампания PolinRider, связанная с DPRK, нацелена на разработчиков программного обеспечения. Атаки осуществляются через поддельные собеседования, троянизированные пакеты разработчика и зараженные репозитории, pull-запросы, форки или коммиты.
Способы распространения
В ходе поддельных собеседований вредоносные файлы .vscode/tasks.json могут автоматически выполнять команды при открытии проекта в VS Code. Вредоносное ПО также распространяется через npm-пакеты с опечатками, такие как tailwindcss style-animate, которые внедряют загрузчик JavaScript во время сборки.
Сбор данных
После запуска PolinRider собирает:
- учетные данные браузеров;
- данные криптокошельков;
- SSH-ключи;
- учетные данные облачных сервисов;
- переменные окружения;
- API-ключи;
- учетные данные Git;
- данные менеджеров паролей;
- токены npm;
- учетные данные платформ CI/CD.
Локальное распространение
Вредоносное ПО распространяется локально, сканируя Git-репозитории на наличие файлов конфигурации JavaScript, включая postcss.config.mjs, eslint.config.mjs, tailwind.config.js и vite.config.js. Оно добавляет вредоносный код или создает файл конфигурации, а затем может изменить последний коммит с помощью git commit --amend --no-verify и отправить или принудительно отправить изменения.
Скрипт temp_auto_push.bat выполняет эту активность локально, используя кэшированные учетные данные, что делает активность похожей на исходящую от обычного устройства и учетной записи жертвы. Зловредный код может повторно выполняться каждый раз, когда зараженный проект открывается, собирается или загружается в CI.
Инфраструктура и обход защиты
PolinRider извлекает код через децентрализованные хранилища на базе блокчейна, преимущественно используя TRON, а иногда Aptos или Ethereum, вместо того чтобы полагаться исключительно на традиционные серверы. Подписи зловредного кода и инфраструктура со временем меняются, включая замену более ранних маркеров, таких как rmcej%otb%, на новые строки. Некоторые варианты также используют HTTP и Telegram для эксфильтрации.
Вредоносные модули Go могут оставаться доступными через proxy.golang.org после удаления репозитория, поскольку прокси кэширует загруженные версии.
Рекомендации по устранению
Устранение требует комплексного подхода:
- остановить подозрительные процессы интерпретаторов;
- проверить и очистить зараженные репозитории через GitHub;
- проанализировать reflogs и активность force-push;
- проверить агенты запуска, демоны, файлы запуска оболочек и запланированные задачи;
- провести аудит каждого репозитория, доступного скомпрометированной учетной записи.
Все потенциально скомпрометированные учетные данные должны быть заменены, включая доступ GitHub, кэшированные учетные данные Git и CLI, OAuth и разрешения GitHub App, токены CI/CD, учетные данные облака и баз данных, пароли браузера, содержимое менеджера паролей, секреты .env и токены реестра пакетов.
Сканеры и антивирусные инструменты могут выявить некоторые артефакты, но чистые результаты не исключают заражения, поскольку многие варианты выполняют расшифрованные полезную нагрузку в памяти.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.



