O PolinRider agora avança muito além do npm. A campanha atinge os ecossistemas Go, Packagist e npm ao mesmo tempo. Analistas da Socket catalogaram 162 artefatos maliciosos espalhados por 108 pacotes distintos. Além disso, a telemetria apontou comprometimento ativo em 80 módulos Go, 10 pacotes do Packagist e ao menos uma extensão do Chrome.
O grupo por trás da operação aparece nos relatórios como Contagious Interview ou Famous Chollima. Portanto, você enfrenta atores estatais norte coreanos com metas bem definidas. Eles sequestram contas legítimas de mantenedores e alteram repositórios confiáveis. Dessa forma, conseguem publicar versões infectadas dentro de pipelines corporativos e manter acesso ao registro.
Por que fontes falsas viraram o esconderijo preferido
A mecânica do ataque começa com carregadores JavaScript ocultos em recursos aparentemente inofensivos. Primeiro, os invasores enchem as linhas executáveis com espaços em branco em excesso. Assim, o código malicioso escapa da largura visível padrão da IDE. Em seguida, eles escondem o carregador inteiro dentro de arquivos de fonte .woff2 falsos. Desse modo, a carga maliciosa se disfarça como um simples recurso visual estático.
tasks.json: o gatilho silencioso dentro do VS Code
A execução desses payloads depende das suas ferramentas locais de desenvolvimento. Os atacantes exploram os arquivos de tarefa do Visual Studio Code para forçar a execução. Um arquivo .vscode/tasks.json modificado configura uma tarefa oculta em segundo plano. Por consequência, essa tarefa dispara sempre que você abre a pasta do projeto. Ela repassa em silêncio a fonte .woff2 falsa para o Node.js. Portanto, a infecção começa antes mesmo de você compilar a aplicação.
Blockchain como canal de entrega da segunda carga
A desofuscação do payload inicial revela um carregador conectado a redes blockchain. O loader busca infraestrutura pública de RPC em TRON, BNB Smart Chain e Aptos. Assim, ele extrai payloads de segundo estágio criptografados. Essa arquitetura Web3 descentralizada entrega resiliência aos atacantes. Além disso, ela contorna filtros de saída e listas de bloqueio de domínio. O carregador decifra o material com chaves XOR embutidas. Depois, executa o código resultante pela função eval().
OmniStealer e DEV#POPPER: o que os payloads levam embora
As cargas secundárias atuais incluem o OmniStealer e o DEV#POPPER. Esses malwares entregam comprometimento total da estação de trabalho. Portanto, eles permitem execução arbitrária de comandos e coleta de credenciais. Além disso, roubam dados do navegador e esvaziam carteiras de criptomoedas. O design modular do carregador amplia ainda mais o risco. Dessa forma, os atacantes trocam de malware sempre que os controles de segurança se adaptam.
Force push e commits antidatados: a arte de sumir no histórico
Os atacantes usam Git force push e injetam commits antidatados. Assim, eles costuram as alterações dentro de atualizações antigas de manutenção. O histórico visível costuma parecer legítimo. Além disso, exibe mensagens de rotina de mantenedores confiáveis. Por isso, sua equipe precisa revisar os logs de atividade do repositório. Dessa maneira, você identifica reescritas retroativas de histórico e force pushes suspeitos.
O caso da conta Xpos587 no GitHub ilustra bem essa coordenação. Vários projetos daquela conta receberam atualizações simultâneas numa janela curta de tempo. Portanto, o padrão aponta para uma invasão em nível de conta seguida de modificação em massa. Os atacantes publicaram módulos Go infectados em registros downstream. Contudo, eles ficaram sem credenciais para enviar versões maliciosas ao PyPI.
Algo parecido atingiu o ecossistema PHP no Packagist. A campanha invadiu o namespace sevenspan, mantido pela organização 7span. Os mantenedores internos notaram os arquivos .woff2 anômalos e iniciaram uma limpeza parcial. Entretanto, eles perderam variantes escondidas em vite.config.js e eslint.config.js. Assim, o JavaScript ofuscado seguiu ativo na infraestrutura do repositório.
Do notebook do dev ao cluster Kubernetes
A invasão de uma única estação já expõe toda a rede corporativa. Os atacantes priorizam o roubo de tokens de autenticação de alto valor. O furto de credenciais do Kubernetes, por exemplo, entrega acesso administrativo à produção. Além disso, o objetivo central envolve pontos de acesso persistentes no CI/CD. Uma vez dentro do pipeline, eles injetam artefatos maliciosos nas suas releases proprietárias. Dessa forma, a empresa vítima vira distribuidora ativa do próximo ataque à cadeia de suprimentos.
Como blindar seus repositórios agora
Comece pela auditoria dos logs de atividade e do histórico de force pushes. Em seguida, ative proteção de branch e exija revisão obrigatória em cada merge. Além disso, inspecione arquivos de configuração como tasks.json, vite.config.js e eslint.config.js. Verifique também qualquer fonte .woff2 recém adicionada ao projeto. Ferramentas como o Socket ajudam a flagrar dependências suspeitas antes do merge. Por fim, adote autenticação multifator em todas as contas de mantenedor. Dessa maneira, você fecha a porta principal que o PolinRider usa para entrar.
Acompanhe nosso perfil no Instagram!



