Hackers norte-coreanos publicam 108 pacotes maliciosos em npm, Go e Chrome na campanha PolinRider

Grupo ligado ao Contagious Interview publicou 108 pacotes e extensões em npm, Packagist, Go e Chrome Web Store; alvo continua sendo desenvolvedores e carteiras cripto.

polinrider-npm-supply-chain

Atores ligados à Coreia do Norte publicaram 108 pacotes maliciosos únicos e extensões de navegador entre npm, Packagist, Go e a Chrome Web Store como parte da campanha PolinRider, uma nova frente do já conhecido Contagious Interview. A operação, mapeada por pesquisadores da Socket, segue ativa e continua alavancando contas comprometidas de mantenedores para envenenar bibliotecas legítimas usadas por desenvolvedores no mundo todo.

O que aconteceu

A Socket, que acompanha ataques a repositórios de código aberto, atribuiu o conjunto ao mesmo cluster norte-coreano responsável pela campanha Contagious Interview, na qual falsos recrutadores abordam desenvolvedores com “testes técnicos” que instalam malware. Segundo a análise do pesquisador Karlo Zanki, o PolinRider abrange pacotes distribuídos em npm (JavaScript), Packagist (PHP), módulos Go e extensões do Chrome, ampliando substancialmente o alcance da operação.

Outro grupo de pesquisa, o OpenSourceMalware, identificou 1.951 repositórios públicos no GitHub associados a 1.047 mantenedores únicos, com sobreposição para uma linha de ataque paralela chamada TaskJacker — que injeta arquivos de tarefas maliciosos do VS Code em repositórios legítimos. Esses arquivos usam o parâmetro runOn: "folderOpen", que executa código automaticamente assim que o desenvolvedor abre a pasta como workspace no VS Code ou no Cursor.

O modus operandi contradiz a hipótese inicial de credenciais roubadas: os invasores estariam tomando posse de contas de mantenedores por caminhos indiretos — sequestro de domínios expirados vinculados aos e-mails de recuperação, resets de conta explorando canais laterais e engenharia social direta contra desenvolvedores individuais.

Como o ataque funciona

Uma vez executado, o payload da PolinRider vasculha o computador infectado em busca de arquivos de configuração comuns em projetos JavaScript modernos: postcss.config.mjs, tailwind.config.js, eslint.config.mjs, next.config.mjs, babel.config.js e app.js. Ao encontrá-los, o malware anexa código JavaScript malicioso, garantindo persistência dentro de projetos legítimos que serão publicados adiante — em uma segunda onda de contaminação supply-chain.

O objetivo final permanece o mesmo do resto do arsenal norte-coreano: exfiltração de carteiras de criptomoedas, tokens de autenticação em nuvem, chaves SSH e credenciais de sistemas corporativos. A moeda digital roubada financia o programa de armas do regime, e o próprio Departamento do Tesouro dos EUA já vinculou operações similares ao Lazarus Group.

“A campanha permanece ativa e novos pacotes maliciosos devem continuar aparecendo à medida que os atores comprometem contas de mantenedores, modificam repositórios legítimos e publicam versões infectadas onde retêm ou obtêm acesso ao registro”, escreveu Karlo Zanki, da Socket.

Quem é afetado

  • Desenvolvedores JavaScript/TypeScript que consomem pacotes de npm sem revisão de dependências transitivas.
  • Times de blockchain e Web3, alvo histórico de ataques ligados à Coreia do Norte por conta das carteiras cripto locais.
  • Empresas com ambientes CI/CD abertos, onde a instalação automática de pacotes pode escalar de máquina do desenvolvedor para pipelines de produção.
  • Usuários de VS Code e Cursor que abrem repositórios recebidos por recrutadores ou clonados de fontes não auditadas, ativando o gatilho folderOpen.
  • Ecossistemas Go e PHP, historicamente vistos como menos vulneráveis a supply chain, agora explicitamente incluídos no perímetro do ataque.

Análise

O PolinRider marca um ponto de inflexão silencioso na estratégia norte-coreana. Até 2024, o Contagious Interview era essencialmente uma operação de spearphishing dirigido a candidatos individuais em processos seletivos falsos. A escala de 108 pacotes públicos e mais de mil mantenedores atingidos indica que os operadores passaram a atacar a cadeia de suprimento diretamente, sem depender de convencer um alvo a rodar código voluntariamente.

Isso coloca o Contagious Interview ao lado dos incidentes que sacudiram o npm nos últimos dois anos — do ataque ao event-stream em 2018 aos ataques em cascata contra a linha PostCSS já noticiados aqui no Plugged Ninja em edições anteriores. A diferença, agora, é a integração explícita de VS Code tasks como vetor: o mesmo dev que instalou o pacote também pode clonar um repositório e ver o computador comprometido antes mesmo de rodar npm install.

Do ponto de vista defensivo, PolinRider expõe uma fragilidade que vinha sendo ignorada: contas de mantenedores dormentes, com domínios de e-mail expirados, ainda controlam pacotes com centenas de milhares de downloads mensais. Enquanto o npm e a Chrome Web Store não obrigarem prova periódica de posse do domínio, sequestros por takeover continuam viáveis — e são caros de detectar em auditorias reativas.

Recomendações práticas

  • Pin de versões e lockfiles auditáveis: comprometa-se com package-lock.json/pnpm-lock.yaml versionados e evite atualizações automáticas em ambientes sensíveis.
  • Bloqueie a execução automática do VS Code: defina security.workspace.trust.enabled como true e nunca marque como confiável um repositório clonado a partir de fontes não verificadas.
  • Monitore dependências dormentes: ferramentas como Socket, Snyk e OSSF Scorecard sinalizam pacotes cujo mantenedor sumiu ou cujo domínio de e-mail expirou.
  • Separe ambientes de desenvolvimento de wallets pessoais: use máquinas ou VMs dedicadas quando lidar com códigos recebidos em processos seletivos ou testes técnicos externos.
  • Adote alertas de outbound: comportamento típico do PolinRider inclui conexões a domínios recém-registrados; um EDR com regras de reputação de DNS captura o desvio antes que dados saiam.
  • Verifique extensões do Chrome: revise a lista instalada em chrome://extensions, especialmente aquelas com permissões de leitura de todos os sites.

Fonte: The Hacker News

Social Media Auto Publish Powered By : XYZScripts.com