Ir para o conteúdo principal
ArchPrompts
Voltar ao blog
Caderno técnico / Nota de campo

Radar Tech: vazamento na CrowdSec nasceu de um ataque a pacote npm — e o novo malware não usa install script

Causa raiz de um vazamento de ~170 repositórios privados foi uma credencial roubada meses antes via ataque a registry npm. Em paralelo, análise mostra pacote malicioso que escapa do bloqueio de lifecycle scripts escondendo o loader em runtime.

João Gabriel
4 min de leitura
Radar Tech: vazamento na CrowdSec nasceu de um ataque a pacote npm — e o novo malware não usa install script
AP / Prancha visual 01
Leitura principal

Nesta sexta-feira (18/09) o CEO da CrowdSec publicou o relatório pós-incidente do vazamento de cerca de 170 repositórios privados da empresa. A causa raiz é o ponto que interessa a qualquer time de engenharia: não houve invasão da infraestrutura. O acesso veio de uma credencial de um ex-funcionário cujo notebook havia sido comprometido meses antes, em maio de 2026, por um ataque de cadeia de suprimentos no registry npm.

E, no domingo (20/09), uma segunda análise — da Checkmarx, reportada pela BleepingComputer — mostrou a evolução do outro lado: um pacote npm malicioso que não usa lifecycle script nenhum.

O encadeamento que produziu o vazamento

A linha do tempo relatada pela CrowdSec:

  • 11/05/2026 — um grupo de ameaça compromete o repositório de pacotes npm de um projeto de bibliotecas JavaScript amplamente usado, backdooredando 42 pacotes com um malware especializado em colher credenciais e tokens.
  • 22/05/2026 — o mesmo grupo reivindica o comprometimento de repositórios de outra empresa de IA.
  • 22/05/2026, entre 05:52 e 06:01 UTC — alguém baixa o conteúdo de aproximadamente 170 repositórios privados da CrowdSec, de um IP no Canadá.
  • 25/05/2026 — a empresa revoga o acesso da conta envolvida.

O dado que vale sublinhar: segundo o relatório, a conta comprometida foi usada exclusivamente para clonar os repositórios. Não houve commit, alteração de código, mudança de infraestrutura ou de CI. Um único segredo de acesso, roubado meses antes por um canal totalmente diferente, foi suficiente para exfiltrar um codebase privado inteiro.

O outro lado: quando não existe script para bloquear

O caso do pacote malicioso analisado pela Checkmarx ataca exatamente a defesa que a maioria das empresas instalou em 2026. Depois de uma sequência de ataques de registry, o npm passou a bloquear lifecycle scripts (preinstall, install, postinstall) por padrão, a menos que explicitamente aprovados.

O pacote malicioso simplesmente não usa script. Ele esconde o loader dentro de um método legítimo da própria biblioteca, que qualquer aplicação chama constantemente em produção. A instalação fica limpa, não dispara nenhum dos mecanismos de aprovação, e a maioria dos scanners estáticos não vê. O código malicioso só executa quando a aplicação legítima o invoca.

Detalhes técnicos que o relatório destaca:

  • O coletor de comandos e controle não usa servidor próprio: consulta um contrato inteligente em rede de teste Ethereum, usando troca de chaves X25519 para derivar a chave AES que decifra o segundo estágio.
  • A exfiltração de dados do host passa por canais de mensageria com endpoints embutidos no código.
  • O atacante construiu um repositório de aparência legítima, com histórico de commits populado e conta curada.
  • O malware consegue se apagar: remove seus arquivos e o gatilho malicioso do código do pacote para eliminar rastros.
  • Nove pacotes adicionais ligados à mesma operação foram identificados e removidos.

Por que isso reposiciona o problema de arquitetura

As duas histórias apontam para a mesma conclusão: o controle que resolve não está no registry, está na credencial. Enquanto uma dependência maliciosa puder executar no mesmo contexto onde vive uma chave de nuvem de vida longa, o bloqueio de install scripts é uma barreira parcial contra um vetor que já migrou.

Três movimentos que endereçam a causa raiz:

  • Eliminar material de credencial em repouso. Trocar tokens de publicação e chaves de nuvem por identidade de workload — credencial efêmera, emitida por job, com escopo restrito e expiração automática. Não há token de longa duração para roubar seis meses depois.
  • Isolar por missão do job. Um job de teste não deve conseguir publicar, e um job de publicação não deve conseguir ler produção. O raio de explosão deve ser um artefato, não uma organização.
  • Cobrir a execução em runtime, não só a instalação. Bloqueio de script e scanner estático não alcançam um loader escondido em método legítimo. O que alcança é restrição de tráfego de saída (incluindo protocolos além de HTTP, como DNS) e telemetria de processo no ambiente de execução, capaz de detectar comportamento anômalo depois do deploy.

Leitura recomendada

  • Relatório pós-incidente da CrowdSec (18/09/2026) — linha do tempo completa e causa raiz.
  • Análise da Checkmarx, reportada pela BleepingComputer (20/09/2026) — detalhes do loader em runtime.

O ponto prático do dia: vale rodar uma pergunta simples no seu próprio ambiente. Se uma das 300 dependências transitivas virar maliciosa amanhã, qual credencial ela alcança e em quanto tempo eu descubro? Se a resposta for "todas" e "não sei", o problema não é a dependência.

Do conceito à execução

Ferramentas práticas para levar as decisões desta nota ao seu próximo projeto.

12 / selecionados
Fluxo do envenenamento de build no incidente arrayref (20/08/2026): atacante com credencial/autor comprometido publica versão maliciosa no crates.io; o build script baixa payload (infostealer) durante o cargo build, na máquina dev/CI com privilégio; resposta do Rust Security Response Team retira os
Segurança
01 / 03

Plano de Endurecimento de Cadeia de Suprimentos com ADR e Runbook — Pacote Multi-Arquivo para Defesa em Profundidade de Dependências (âncora: incidente arrayref do Rust, 20/08/2026)

por João Gabriel

gpt-4ClaudeGemini
(0)
0 vendas
R$ 59,90
Diagrama do ataque: backdoor time-release em modelo open-source. O harness injeta a data no system prompt a cada turno; nos dias normais o modelo responde normalmente, mas no dia-gatilho um comando malicioso substitui a resposta e é executado pelo shell do agente sem confirmação.
Segurança
01 / 02

Revisão de Segurança e ADR de Adoção de Modelo de IA de Código (contra weight poisoning e backdoor time-release)

por João Gabriel

gpt-4ClaudeGemini+1
(0)
0 vendas
R$ 59,90
Fluxo de redefinição de credenciais: jornada legítima x jornada do atacante explorando o bypass (CVE-2026-18963, CVSS 9.1).
Segurança
01 / 02

ADR de Mitigação de Vulnerabilidade no Fluxo de Redefinição de Credenciais (CVE-2026-18963) — Pacote 5 Arquivos

por João Gabriel

gpt-4GPT-4oClaude+3
(0)
0 vendas
R$ 59,90
Cadeia de ataque: site legítimo publica llms.txt com comando non-dono; agente executa e cai em slot de registro reivindicado por atacante; EDR não alerta.
Segurança

Plano de Mitigação: Agentes de IA Instalando Código Não-Dono em Rede Corporativa

por João Gabriel

gpt-4ClaudeGemini
(0)
0 vendas
R$ 54,90
O clock do embargo colapsou: no modelo clássico, dias entre bug e exploit; hoje agentes transformam uma pista em exploit em menos de um minuto.
Segurança
01 / 03

ADR Reakt: decisão de arquitetura para o fim do embargo de vulnerabilidades (rumor virou exploit em minutos)

por João Gabriel

gpt-4ClaudeGemini+1
(0)
0 vendas
R$ 49,90
Arquitetura de sandbox para agentes de IA: agente não-confiável → orquestrador de política → sandbox descartável com controles de rede/credenciais e auditoria.
Segurança
01 / 02

ADR de adoção de sandbox seguro para agentes de IA (pacote multi-arquivo: prompt + guardrails + exemplos + harness de verificação)

por João Gabriel

gpt-4gpt-4-turboGPT-4o+3
(0)
0 vendas
R$ 49,90
Cadeia de ataque: entrada não confiável → Marshal.load → gadget chain universal → RCE, com o caminho de mitigação por ADR.
Segurança
01 / 03

ADR de Mitigação de RCE por Deserialização no Ruby 4.x — pacote multi-arquivo (prompt principal + regras + exemplos few-shot + harness de verificação + variações de stack)

por João Gabriel

gpt-4GPT-4oclaude-3-5-sonnet+3
(0)
0 vendas
R$ 59,90
Cadeia de ataque do incidente Snowflake×Wiz: do PR gerado por IA ao roubo do token Jira via injeção em GitHub Actions.
Segurança
01 / 02

Harness de Revisão de Segurança para Patches Gerados por IA (Injeção em CI/CD) — 5 arquivos

por João Gabriel

gpt-4ClaudeGemini
(0)
0 vendas
R$ 49,90
Árvore de Decisão ADR — Três opções de mitigação (A: aceitar risco, B: mitigação em camadas, C: rewrite do subsistema) com consequências e critérios de aceite.
Segurança
01 / 02

Mitigação de GhostLock (Stack Use-After-Free) em Infraestrutura Linux

por João Gabriel

gpt-4gpt-5claude-4+3
(0)
0 vendas
R$ 29,94
Cadeia de ataque da CVE-2026-3854 — de um git push com push options maliciosas até RCE no servidor GitHub.
Segurança
01 / 02

Mitigação de Injeção em Protocolos Internos — Pacote Multi-arquivo para Engenheiros de Arquitetura

por João Gabriel

gpt-4ClaudeGemini
(0)
0 vendas
R$ 29,94
Fluxo de Decisão do ADR: do gatilho (lançamento TS 7.0) até a decisão registrada e implementação, passando por avaliação técnica, análise de riscos e estratégia de migração.
ADR
01 / 03

Adoção do TypeScript 7.0: Pacote Completo para Decisões Arquiteturais de Migração de Compilador

por João Gabriel

gpt-4ClaudeGemini+1
(0)
0 vendas
R$ 29,94
Pipeline de Desenvolvimento Seguro na Era da IA: estágios planejamento→implementação→verificação→entrega com feedback loop e papéis IA/humano.
Segurança
01 / 02

SSDLC na Era da IA: ADR + pipeline seguro para times que adotam copilotos e agentes de código (pacote de 5 arquivos)

por João Gabriel

gpt-4ClaudeGemini+1
(0)
0 vendas
R$ 49,90
Radar Tech: vazamento na CrowdSec nasceu de um ataque a pacote npm — e o novo malware não usa install script — ArchPrompts