Certificados válidos, contas roubadas: como os invasores quebraram o último sinal de confiança do NPM

Certificados válidos, contas roubadas: como os invasores quebraram o último sinal de confiança do NPM

Em 19 de maio, 633 versões maliciosas de pacotes npm passaram na verificação de proveniência do Sigstore. Eles foram apagados pelo sistema porque o invasor gerou certificados de assinatura válidos de uma conta de mantenedor comprometida.

A Sigstore funcionou exatamente como projetado: verificou que o pacote foi construído em um ambiente CI, confirmou a emissão de um certificado válido e registrou tudo no log de transparência. O que ele não pode fazer é determinar se a pessoa que detém as credenciais autorizou a publicação – e essa lacuna transformou o último sinal de confiança automatizado no npm em camuflagem.

Um dia antes, StepSecurity documentou um ataque à extensão Nx Console VS Code, uma ferramenta de desenvolvedor amplamente usada com mais de 2,2 milhões de instalações vitalícias. A versão 18.95.0 foi publicada usando credenciais roubadas em 18 de maio e permaneceu ativa por menos de 40 minutos – mas a telemetria interna do Nx mostrou aproximadamente 6.000 ativações durante essa janela, a maioria por meio de atualização automática, em comparação com apenas 28 downloads oficiais. A carga colheu arquivos de configuração do Claude Code, chaves AWS, tokens GitHub, tokens npm, conteúdo do cofre 1Password e tokens de conta de serviço Kubernetes.

A campanha Mini Shai-Hulud, atribuída por vários pesquisadores a um ator de ameaça com motivação financeira identificado como TeamPCP, atingiu o registro npm às 01:39 UTC de 19 de maio. Endor Labs detectou a onda inicial quando dois pacotes inativos, jest-canvas-mock e size-sensor, publicaram novas versões contendo um script Bun ofuscado de 498 KB – nenhum deles havia sido atualizado em mais de três anos, tornando uma versão repentina com dependências de hash de commit bruto uma detecção sinal, mas apenas se a ferramenta estiver observando.

Às 02h06 UTC, o worm havia se propagado pelo ecossistema de visualização de dados @antv e por dezenas de pacotes sem escopo, incluindo echarts-for-react (aproximadamente 1,1 milhão de downloads semanais). Socket aumentou o total para 639 versões comprometidas em 323 pacotes exclusivos nesta onda. Ao longo de todo o ciclo de vida da campanha, o Socket rastreou 1.055 versões maliciosas em 502 pacotes abrangendo npm, PyPI e Composer.

StepSecurity confirmou que a carga continha integração completa com Sigstore. O invasor não apenas roubou credenciais; eles poderiam assinar e publicar pacotes npm downstream que continham atestados de proveniência válidos.

Esses dois incidentes não são isolados. Equipes de pesquisa do Endor Labs, Socket, StepSecurity, Adversa AI, Johns Hopkins, Microsoft MSRC e LayerX provaram de forma independente que o modelo de verificação da ferramenta do desenvolvedor está quebrado e nenhuma estrutura do fornecedor audita todas as superfícies de ataque que falharam.

Sete superfícies de ataque falharam nas 48 horas entre 18 e 19 de maio – falsificação de proveniência de npm, roubo de credenciais de extensão do VS Code, execução automática de servidor MCP, injeção de prompt de agente CI/CD, execução de código de estrutura de agente, exposição de armazenamento de credenciais IDE e exposição de dados shadow AI – e a grade de auditoria abaixo mapeia cada uma.

O modelo de verificação é dividido em todas as quatro principais CLIs de codificação de IA

A Adversa AI divulgou o TrustFall em 7 de maio, demonstrando que Claude Code, Gemini CLI, Cursor CLI e Copilot CLI executam automaticamente servidores MCP definidos pelo projeto no momento em que um desenvolvedor aceita um prompt de confiança de pasta. Todos os quatro são padronizados como “Sim” ou “Confiança”. Um pressionamento de tecla gera um processo sem sandbox com todos os privilégios do desenvolvedor.

O servidor MCP é executado com privilégios suficientes para ler segredos armazenados e código-fonte de outros projetos. Em executores de CI que usam o GitHub Action do Claude Code no modo headless, a caixa de diálogo de confiança nunca é renderizada. O ataque é executado sem interação humana.

Os pesquisadores da Johns Hopkins Aonan Guan, Zhengyu Liu e Gavin Zhong publicaram “Comment and Control”, provando que uma instrução maliciosa em um título de pull request do GitHub fez com que Claude Code Security Review publicasse sua própria chave de API como comentário. O mesmo ataque funcionou no Gemini CLI Action do Google e no Copilot Agent do GitHub. A Anthropic classificou a vulnerabilidade CVSS como Crítica por meio de seu programa HackerOne.

O Microsoft MSRC divulgou duas vulnerabilidades críticas do Kernel Semântico em 7 de maio. Uma encaminha campos de armazenamento de vetores controlados pelo invasor para uma chamada Python eval(); o outro expõe um método de download de arquivo do lado do host como uma função de kernel que pode ser chamada – o que significa que um documento envenenado em um armazenamento de vetores inicia um processo no host.

Os pesquisadores de segurança da LayerX demonstraram separadamente que o Cursor armazena chaves de API e tokens de sessão em armazenamento desprotegido, o que significa que qualquer extensão de navegador pode acessar credenciais de desenvolvedor sem permissões elevadas.

Os atores da ameaça que caçam essas credenciais dobraram seu ritmo operacional

O Relatório de investigações de violação de dados de 2026 da Verizon, divulgado em 19 de maio, descobriu que 67% dos funcionários acessam serviços de IA de contas não corporativas em dispositivos corporativos. Shadow AI é agora a terceira ação interna não maliciosa mais comum em conjuntos de dados DLP. O código-fonte conduz todos os tipos de dados enviados a plataformas de IA não autorizadas – a mesma classe de ativos visada pela campanha do worm npm.

O CrowdStrike 2026 Financial Services Threat Landscape Report, divulgado em 14 de maio, documenta os adversários que caçam ativamente os tipos de credenciais que esses ataques coletam.

STARDUST CHOLLIMA triplicou seu ritmo operacional contra entidades financeiras no quarto trimestre de 2025. CrowdStrike documentou o grupo usando personas de recrutadores geradas por IA no LinkedIn e Telegram, enviando desafios de codificação maliciosos que pareciam avaliações técnicas e executando chamadas de vídeo falsas com ambientes sintéticos. Os alvos são GitHub PATs, tokens npm, chaves AWS e segredos CI/CD. A exposição da sombra da IA ​​na linha 7 da grade é a porta pela qual eles passam.

Grade de auditoria de identidade roubada da ferramenta do desenvolvedor

Atualmente, nenhuma estrutura de fornecedor abrange todas as sete superfícies. Essa grade mapeia cada um deles de acordo com a pesquisa que o expôs, o que sua pilha não consegue ver e a ação de auditoria a ser tomada antes da próxima renovação do fornecedor.

Superfície de Ataque

Divulgado por

Qual verificação falhou

O que sua pilha não consegue ver

Ação de Auditoria

1. falsificação de proveniência npm

Endor Labs, Socket (19 de maio)

Certificados Sigstore gerados a partir de tokens OIDC roubados passam na verificação automatizada

EDR e SAST não validam se a identidade do IC que assinou um pacote autorizou a publicação

Exigir aprovação de duas partes no momento da publicação para pacotes com mais de 10.000 downloads semanais. Não trate um crachá verde da Sigstore como prova de legitimidade

2. Roubo de credenciais de extensão do VS Code

StepSecurity (18 de maio)

O VS Code Marketplace aceitou uma versão de extensão maliciosa publicada com um token de contribuidor roubado

As atualizações automáticas de extensão ignoram a detecção de endpoint. Janela do Marketplace 12h30 às 12h48 UTC; exposição geral (incluindo Open VSX) 12h30 às 13h09 UTC

Aplique políticas de idade mínima para atualizações de extensões. Fixe versões de extensão críticas. Audite todas as extensões com acesso a APIs de terminal ou sistema de arquivos

3. Execução automática do servidor MCP

Adversa AI, TrustFall (May 7)

Todas as quatro caixas de diálogo de confiança da CLI são padronizadas como “Sim/Confiança” sem enumerar quais executáveis ​​serão gerados

O EDR monitora o comportamento do processo, não o que um LLM instrui um servidor MCP a fazer. O WAF inspeciona cargas HTTP, não a intenção de chamada de ferramenta

Desative a aprovação automática do servidor MCP no escopo do projeto no Claude Code, Gemini CLI, Cursor CLI e Copilot CLI. Bloquear .mcp.json em pipelines de CI, a menos que esteja explicitamente na lista de permissões

4. Injeção imediata do agente CI/CD

Johns Hopkins, Comentário e Controle (abril de 2026)

Fluxos de trabalho do GitHub Actions usando pull_request_target injetam segredos em ambientes executores que os agentes de IA processam como instruções

Os logs SIEM mostram uma chamada de API de uma ação legítima do GitHub. A chamada em si é o ataque. Não existe nenhuma assinatura de rede anômala

Migre fluxos de trabalho de revisão de código de IA para o gatilho pull_request. Audite todos os fluxos de trabalho usando pull_request_target com acesso secreto para integrações de agentes de IA

5. Execução do código da estrutura do agente

Microsoft MSRC (7 de maio)

O SDK do Python do kernel semântico encaminhou campos de filtro de armazenamento de vetores para eval(). O SDK do .NET expôs a gravação de arquivo do host como uma função de kernel que pode ser chamada

Os firewalls de aplicativos inspecionam as cargas de entrada. Eles não inspecionam como uma estrutura de orquestração analisa essas cargas internamente

Atualize o SDK do Kernel Semântico do Python para 1.39.4 e o SDK do .NET para 1.71.0. Audite todas as estruturas do agente para funções marcadas como chamadas de modelo que acessam o sistema de arquivos do host ou shell

6. Exposição de armazenamento de credenciais IDE

CamadaX (abril de 2026)

O cursor armazena chaves de API e tokens de sessão em armazenamento desprotegido acessível a qualquer extensão de navegador instalada

DLP monitora dados em trânsito. As credenciais do cursor em repouso são invisíveis para o DLP porque nenhum evento de saída ocorre até que a extensão seja exfiltrada

Audite as ferramentas do desenvolvedor para práticas de armazenamento de credenciais. Exigir armazenamento protegido (chaves do SO, armazenamentos de credenciais criptografadas) para todas as configurações da ferramenta de codificação de IA

7. Exposição de dados Shadow AI

Verizon 2026 DBIR (19 de maio)

67% dos funcionários acessam serviços de IA de contas não corporativas em dispositivos corporativos. O código-fonte é o principal tipo de dados enviado

As políticas CASB cobrem SaaS sancionado. Contas de IA não corporativas em dispositivos corporativos operam inteiramente fora do escopo do CASB

Implante governança de IA na camada do navegador que monitore o uso de IA não corporativo em dispositivos corporativos. Faça inventário de extensões de navegador de IA em toda a organização

Plano de ação do diretor de segurança

Os diretores de segurança podem querer executar esta grade em relação aos contratos atuais dos fornecedores antes do encerramento das renovações do segundo trimestre — perguntar a cada fornecedor qual das sete superfícies o seu produto cobre e tratar as não respostas como o mapa de lacunas.

Qualquer credencial acessível de uma máquina de desenvolvedor ou executor de CI que instalou pacotes npm afetados entre 01h39 e 02h18 UTC de 19 de maio deve ser considerada comprometida. Isso inclui GitHub PATs, tokens npm, chaves de acesso AWS, tokens de conta de serviço Kubernetes, tokens HashiCorp Vault, chaves SSH e conteúdo do cofre 1Password.

As integrações de agentes de codificação de IA em execução em pipelines de CI/CD com fluxos de trabalho pull_request_target merecem uma análise mais detalhada. Cada um deles é uma superfície de injeção imediata que processa comentários de PR como instruções do agente.

As equipes de compras que avaliam as ferramentas de codificação de IA devem considerar adicionar uma dimensão de resistência à identidade roubada às avaliações dos fornecedores. A pergunta que vale a pena fazer: o fornecedor pode demonstrar como sua ferramenta distingue uma publicação legítima de um mantenedor de um invasor que usa credenciais comprometidas? Caso contrário, a ferramenta não é uma camada de verificação.

A cadeia de fornecimento de ferramentas para desenvolvedores tem o mesmo problema que o IAM teve há uma década: as credenciais provam quem você afirma ser, não quem você é. O IAM obteve uma vantagem de 10 anos nos controlos de compensação antes de grupos estatais transformarem o roubo de credenciais numa operação industrial. O ecossistema de ferramentas de codificação de IA está começando agora.



Fonte ==> Cyberseo

Relacionados

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *