# PROC — Lazarus Group: Ataque à Cadeia de Suprimento via npm ## Visão Geral O [[g0032-lazarus-group|Lazarus Group]], também rastreado como TraderTraitor pela comunidade de inteligência norte-americana, opera uma das campanhas de comprometimento de cadeia de suprimento mais sofisticadas já documentadas no setor financeiro e de criptoativos. O grupo pública pacotes no registro npm que imitam bibliotecas legítimas do ecossistema cripto por meio de typosquatting ou forks aparentemente legítimos. Quando um desenvolvedor executa `npm install`, um script `postinstall` dispara automaticamente, estabelecendo beacon para infraestrutura C2 controlada pelo [[g0032-lazarus-group|Lazarus Group]] antes de qualquer análise humana do código. O vetor de engenharia social da [[operation-dreamjob|Operation DreamJob]] amplifica o alcance desta técnica de forma cirúrgica: recrutadores fictícios abordam desenvolvedores de projetos cripto no LinkedIn com propostas de emprego altamente remuneradas, enviando "desafios técnicos" como repositórios Node.js que, ao serem clonados e executados pelo candidato, instalam o pacote malicioso no ambiente do desenvolvedor. Com o acesso estabelecido, o Lazarus se move lateralmente para pipelines de CI/CD, comprometendo o código-fonte que será eventualmente entregue a usuários legítimos. No caso do [[bybit-heist-2025|Bybit Heist 2025]], esta cadeia culminou na substituição silenciosa de endereços de carteira em transações de alto valor, resultando no roubo de aproximadamente 1,5 bilhão de dólares em Ethereum. **Contexto Brasil/LATAM:** O Brasil concentra um dos maiores mercados de criptoativos da América Latina, com exchanges locais de grande porte e uma comunidade crescente de desenvolvedores Web3. Empresas como exchanges de criptomoedas, fintechs com wallets digitais e startups DeFi brasileiras utilizam amplamente o ecossistema npm e dependem de bibliotecas open source com manutenção dispersa — exatamente o perfil de alvo preferido pelo [[g0032-lazarus-group|Lazarus Group]]. A ausência de práticas maduras de segurança de supply chain em parte da indústria cripto regional, combinada com a atração financeira do mercado, coloca desenvolvedores e empresas brasileiras do setor em risco concreto de serem vetores involuntários desta técnica. ## Attack Flow ```mermaid graph TB A[Publicação de pacote npm typosquat] --> B[Engenharia Social via DreamJob] B --> C[Desenvolvedor executa npm install] C --> D:::critical D[Postinstall executa beacon C2] --> E[Movimento lateral para CI/CD] E --> F[Injeção de payload em produção] classDef critical fill:#e74c3c,color:#fff ``` ## Como Funciona **Passo 1 — Preparação e entrega do pacote malicioso.** O [[g0032-lazarus-group|Lazarus Group]] registra pacotes npm com nomes que divergem minimamente de bibliotecas legítimas do ecossistema cripto (ex.: `web3-utills` no lugar de `web3-utils`, `@solana/web3js` sem o ponto). O pacote inclui funcionalidade real para passar em inspeções superficiais, mas carrega um `postinstall` script em `package.json` que, ao ser executado pelo gerenciador de pacotes, realiza chamada de rede para o servidor C2 do atacante, enviando hostname e credenciais de usuário do sistema. Paralelamente, a campanha [[operation-dreamjob|Operation DreamJob]] envia o mesmo pacote como parte de "desafios técnicos" de processo seletivo falso, forçando a execução no ambiente do desenvolvedor-alvo. **Passo 2 — Persistência e exfiltração de credenciais de desenvolvimento.** Com o beacon estabelecido, o grupo implanta backdoors como o **ScoringMathTea** ou **CookiePlus** na máquina comprometida. Esses implantes exfiltram chaves SSH, tokens de API armazenados em variáveis de ambiente, credenciais salvas no navegador e segredos de repositórios Git locais. O foco específico está em credenciais que concedam acesso a repositórios privados e pipelines de integração contínua — o caminho para o código de produção. **Passo 3 — Injeção no frontend de produção e execução do roubo.** Com acesso ao repositório privado e ao pipeline de CI/CD, o [[g0032-lazarus-group|Lazarus Group]] injeta JavaScript altamente direcionado no código-fonte da interface web. O payload é ativado apenas sob condições específicas (ex.: detecção do contrato multisig da Bybit no [[bybit-heist-2025|Bybit Heist 2025]]), fazendo com que a substituição de endereço nas transações passe despercebida pelos usuários e até por auditores de segurança que testem outros fluxos. O deploy automático do CI/CD distribui o código comprometido para todos os usuários sem qualquer indicação visual de anomalia. ## Detecção | Etapa | Event ID / Log | Indicador de Comprometimento | |-------|---------------|------------------------------| | Execução de postinstall | Sysmon EID 1 (Process Creaté) | `node.exe` filho de `npm.cmd` com argumento `postinstall` fazendo conexão de rede imediata | | Beacon C2 | Sysmon EID 3 (Network Connect) | Conexão HTTP/S originada de `node.exe` para IP externo sem histórico de resolução DNS | | Exfiltração de credenciais | Sysmon EID 11 (File Creaté) / EID 23 (File Delete) | Acesso a `~/.ssh/id_rsa`, `~/.aws/credentials`, arquivos `.env` por processo Node.js | | Acesso ao CI/CD | Audit log do GitHub/GitLab | Commit ou push em horário atípico, de IP não reconhecido, em branch de produção | | Modificação de frontend | Git diff automático | Alteração inesperada em arquivos `.js` de frontend sem PR associado ou aprovação formal | | Instalação de persistência | Sysmon EID 13 (Registry Value Set) | Criação de chave `HKCU\...\Run` por processo filho de `node.exe` | ```yaml title: Lazarus npm Postinstall Outbound Network Connection status: experimental description: Detecta processo node.exe iniciado como postinstall de npm estabelecendo conexão de rede imediata — padrão característico de pacotes npm maliciosos do Lazarus Group (TraderTraitor). logsource: category: network_connection product: windows detection: selection: Image|endswith: '\node.exe' Initiated: 'true' filter_localhost: DestinationIp|startswith: - '127.' - '::1' - '10.' - '192.168.' condition: selection and not filter_localhost falsepositives: - Pacotes npm legítimos que fazem telemetria (ex.: updaté-notifier) - Ferramentas de desenvolvimento com licenciamento online level: medium tags: - attack.initial_access - attack.t1195.001 - attack.execution - attack.t1059.007 ``` ## Mitigação | Controle | Implementação Prática | Prioridade para Orgs Brasileiras | |----------|-----------------------|----------------------------------| | Lockfile com verificação de hash | Commitar `package-lock.json` ou `yarn.lock` no repositório e bloquear instalações que modifiquem o lockfile em CI/CD sem revisão explícita | Alta — simples de implementar, impede typosquatting silencioso | | Análise de reputação de pacotes antes do install | Usar Socket.dev, Snyk ou `npm audit` no pipeline de CI/CD para análise automática de pacotes novos ou atualizados | Alta — detecta scripts `postinstall` suspeitos automaticamente | | SBOM (Software Bill of Materials) | Gerar inventário de dependências com `cyclonedx-npm` ou `syft` em cada build; armazenar e comparar com versão anterior | Média — especialmente relevante para exchanges e fintechs com requisitos regulatórios | | Isolamento de CI/CD de produção | Pipelines de build não devem ter acesso direto a credenciais de produção; usar OIDC/federação de identidade temporária com escopo mínimo | Alta — limita raio de explosão mesmo após comprometimento do desenvolvedor | | Análise comportamental de processos de build | Monitorar com EDR processos `node.exe` e `npm.cmd` para conexões de rede de saída durante fase de instalação de dependências | Média — requer EDR com capacidade de correlação de processos filho | | Treinamento anti-phishing com foco em DreamJob | Conscientizar times de desenvolvimento sobre a tática de "desafio técnico" em processos seletivos falsos — nunca executar código de repositórios desconhecidos sem sandbox | Alta — engenharia social é o vetor de entrada mais comum neste procedimento | --- **Ver também:** [[g0032-lazarus-group|Lazarus Group]] · [[operation-dreamjob|Operation DreamJob]] · [[bybit-heist-2025|Bybit Heist 2025]] · [[t1195-001-compromise-software-dependencies|T1195.001]] · [[t1566-phishing|T1566 - Phishing]] · [[t1059-007-javascript|T1059.007 - JavaScript]] · [[solarwinds-supply-chain-attack|SolarWinds Supply Chain Attack]] · [[_techniques|Índice de TTPs]]