Alerta de cadeia de abastecimento: um pacote de npm aparentemente confiável rouba tokens de Codex e abre a porta para ataques persistentes

Autor: Publicada 5 min de lectura 157 leituras

As imagens deste artigo foram geradas com inteligência artificial. Como publicamos

Um novo caso de compromissos na cadeia de fornecimento de software torna uma tendência perigosa: os atacantes estão deixando de depender de pacotes “de preenchimento” ou typosquats para se esconder e, em seu lugar, estão envenenando projetos legítimos e funcionais que já ganharam confiança entre desenvolvedores. Neste incidente concreto, a biblioteca npm codexui-android — proposta como uma interface remota para o OpenAI Codex e com dezenas de milhares de downloads semanais — introduziu silenciosamente código que rouba tokens de autenticação armazenados localmente e os envia para um servidor controlado pelo atacante.

O que torna especialmente grave esta campanha é que o pacote era funcional e tinha sido desenvolvido ativamente antes que as rotinas de exfiltração fossem adicionadas, uma técnica concebida para construir confiança e ampliar o alcance antes de ativar o componente malicioso. Além disso, a mesma cadeia de exfiltração foi observada em apps Android que executam o pacote dentro de um userland emulado por PRoot, o que demonstra como os vetores podem ser misturados entre ecossistemas: npm para desenvolvedores e APKs para usuários finais.

Alerta de cadeia de abastecimento: um pacote de npm aparentemente confiável rouba tokens de Codex e abre a porta para ataques persistentes
Imagem gerada com IA.

O objetivo principal são os tokens de Codex, armazenados em arquivos de texto plano como ~/.codex/auth.json ou nos armazéns de credenciais do sistema operacional. Esses arquivos contêm access_token, refresh_token, id_token e o identificador de conta; e, segundo os pesquisadores, o refresh_token em particular não expira, o que permite a um atacante manter acesso persistente e invisível à conta comprometida. Robar um refresh_token equivale a uma chave-prima que permite operar em nome da vítima até ser revoque manualmente.

Para além do impacto imediato sobre a conta Codex comprometida, as consequências podem ser extensas: um token com privilégios pode permitir a um atacante exfiltrar dados, manipular projetos, distribuir código malicioso adicional ou pivotar outros ativos na organização. Em ambientes corporativos, isso pode se tornar uma porta de entrada para repositórios com segredos, sistemas de CI/CD ou ambientes cloud.

Do ponto de vista preventivo e de resposta, há medidas concretas que qualquer desenvolvedor ou equipamento deve aplicar agora mesmo. O primeiro é assumir que os tokens armazenados em disco são equivalentes a senhas e tratá-los como tais: inspeccione e, se tiver dúvidas, remova o arquivo ~/.codex/auth.json e revoque/regenere os tokens da consola do fornecedor. Se a sua organização centraliza identidades, foi fechar sessão de sessões ativas e reemita credenciais com menor duração e scopes reduzidos. Contacte o suporte do serviço afectado para notificar e solicitar revogação se não encontrar opções directas na interface.

No plano da cadeia de abastecimento, é imprescindível endurecer como se consomem dependências: fije versões (pinning) e use somas de integridade (package-lock, npm ci com verificação de integrity), automatice análise de dependências com ferramentas como as ofertas de segurança de repositórios e scanners de terceiros, e restringir a instalação de pacotes em ambientes críticos. As organizações devem exigir provas de integridade e reprodutibilidade quando integram pacotes externos em pipelines de produção.

Também é essencial limitar a superfície de ataque através de melhores práticas na gestão de credenciais: favorecer tokens de curta vida e scopes mínimos, ativar a autenticação multifator onde possível, evitar armazenar tokens em texto plano e implantar controles de detecção de exfiltração em redes e endpoints. No CI/CD, bloco egress desnecessário do runners e contêineres para que uma dependência maliciosa não possa comunicar livremente com servidores externos.

Para usuários móveis, a recomendação é extrema: evite instalar apps que peçam executar ambientes Linux não verificados dentro do dispositivo e desconfíe de apps com permissões ou comportamentos fora do habitual. As lojas oficiais não garantem ausência total de enganos; vigile resenhas, origem do desenvolvedor e atividade de rede da app se estiver em ambientes de risco.

Alerta de cadeia de abastecimento: um pacote de npm aparentemente confiável rouba tokens de Codex e abre a porta para ataques persistentes
Imagem gerada com IA.

A comunidade e os fornecedores também têm um papel. Os repositórios e registries devem melhorar a detecção de mudanças maliciosos em pacotes ativos, aplicando controles que analisem diferenças entre versões e monitorem domínios vinculados pelos autores. Os equipamentos de segurança internos devem integrar a geração de SBOMs (bill of materials) e auditorias regulares de dependências, e as empresas deveriam habilitar bloqueios de domínios suspeitos em seus perímetros para mitigar canais de exfiltração conhecidos.

Finalmente, a vigilância e a informação partilhada são fundamentais: Ao descobrir uma intrusão, documente o vetor, os artefatos afetados (nomes de pacotes, versões, hashes e domínios de exfiltração) e partilhe essa informação com a comunidade e com plataformas de segurança para que sejam tomadas medidas coordenadas. Recursos públicos como o projeto de segurança na cadeia de fornecimento de OWASP podem orientar estratégias defensivas: https://owasp.org/www-project-software-supply-chain/. Para compreender os riscos de pacotes e como lidar com o próprio ecossistema de desenvolvimento, os programas e guias de segurança de plataformas como o GitHub Security O Lab oferece ferramentas e recomendações práticas: https://securitylab.github.com/. Se detectar pacotes que informem exfiltração a serviços que se fazem passar por terceiros (por exemplo, servidores que imitam Sentry), consulte as páginas oficiais do serviço suplantado para relatar abuso e obter orientação sobre mitigação; no caso de Sentry: https://sentry.io/.

Este incidente lembra que a segurança moderna não é apenas proteger código próprio, mas controlar e verificar cada componente externo que introduz confiança nos nossos fluxos. A recomendação prática e urgente é rever tokens e sessões, endurecer a gestão de dependências e aplicar controles de rede e detecção que identifiquem comportamentos de exfiltração antes de um token roubado se tornar um compromisso persistente.

Cobertura

Relacionadas

Mas notícias do mesmo assunto.