Backdoor disfarçada de processo seletivo no LinkedIn: código malicioso acionado na instalação de dependências
Aprofundamento CEVIU
Aprofundamento
O ataque descrito não é uma anomalia isolada, mas parte de um padrão operacional consolidado pelo Grupo Lazarus, e subgrupos como o HexagonalRodent, que industrializou a engenharia social contra devs usando IA para escalar disfarces. A tática do npm prepare como gatilho automático já apareceu em ataques anteriores (como o Shai-Hulud em 2025), mas aqui ganha nova camada: a falsificação de identidade dupla (desenvolvedor + jornalista) não é só para credibilidade, é para burlar sistemas de detecção baseados em reputação de commits e perfis. O domínio rest-icon-handler.store segue a tendência de nomes que imitam bibliotecas legítimas de UI/UX, explorando a pressa comum ao instalar dependências em projetos React.
O fato de o código malicioso estar enterrado em app/test/index.js, entre comentários de testes descartados, mostra evolução na ofuscação: não é mais só sobre minificação ou strings cifradas, mas sobre exploração da *leitura humana*, desenvolvedores pulam arquivos de teste por hábito. Isso torna ferramentas de análise estática menos eficazes se não forem configuradas para varrer *todos* os módulos carregados via require(), mesmo em pastas não executáveis por padrão.
O que mudou
A diferença crítica em relação ao ataque analisado em 1º de maio (0G Labs/Web3) é que agora o vetor de entrega mudou de 'entrevista técnica' para 'processo seletivo com revisão de código', com foco em alvos menos especializados, full-stack Python e Node.js, não apenas Web3. Também houve salto na sofisticação da engenharia social: antes, os perfis falsos tinham descrições genéricas; agora usam identidades reais roubadas com histórico verificável (LinkedIn, site pessoal, GitHub), o que aumenta a taxa de clique em até 300%, segundo dados da Expel de junho de 2026. Além disso, o uso de prepare em vez de postinstall é uma adaptação direta à adoção crescente de npm ci em CI/CD, pois prepare roda mesmo nesse modo, enquanto postinstall não.
Por que isso importa
Isso importa porque o ataque explora falhas no modelo de confiança implícito do ecossistema JavaScript: assumimos que npm install é seguro se o repositório for público e o autor parecer real. Mas o dado concreto é outro, em 2025, 99% dos pacotes maliciosos de código aberto estavam no npm, e o volume dobrou em 2026. Um único prepare malicioso pode comprometer máquinas locais, exfiltrar tokens do GitHub e injetar backdoors em pipelines CI. Para devs, isso significa que 'revisar código' deixou de ser uma atividade passiva: agora é uma operação de segurança com risco de execução zero-click. A proteção começa antes do clone, com verificação de assinatura de commits, sandboxing obrigatório e desativação de scripts por padrão em ambientes de análise.
Linha do tempo
CEVIU reporta operação do Grupo Lazarus usando IA para escalar engenharia social contra devs Web3 via LinkedIn
Ataque à cadeia de suprimentos disfarçado como entrevista para 0G Labs usa hook npm prepare
CEVIU documenta campanha com Git hooks maliciosos distribuídos via recrutamento falso no LinkedIn
Ataque ao Checkmarx KICS compromete imagens Docker e extensões VS Code com mcpAddon.js
Backdoor no LinkedIn usa identidades roubadas e npm prepare para ativar payload durante instalação de dependências
Perguntas frequentes
Por que o script 'prepare' é mais perigoso que 'postinstall'?
Porque 'prepare' roda tanto em 'npm install' quanto em 'npm ci', usado em ambientes de CI/CD. Já 'postinstall' é ignorado em 'npm ci'. Isso permite que o malware se espalhe silenciosamente em pipelines automatizados, sem depender de execução manual.
Como saber se um repositório GitHub está usando 'prepare' malicioso?
Verifique o arquivo 'package.json' na raiz. Busque por 'scripts': { 'prepare': ... }. Se o valor apontar para um arquivo JavaScript fora do diretório 'scripts/' ou contiver chamadas a 'require()' ou 'fetch()', é sinal de alerta. Use 'npm install --ignore-scripts' como primeira linha de defesa.
O que fazer ao receber uma oferta de emprego pedindo review de código no GitHub?
Não clone nem instale nada localmente. Use uma VM descartável ou sandbox online (como GitPod com modo somente leitura). Verifique os commits: se o autor tem histórico real no GitHub mas nunca contribuiu para esse repositório, é falso. Reporte imediatamente ao GitHub e ao LinkedIn.
Esse tipo de ataque afeta só Node.js ou também Python e Rust?
Afeta todos os ecossistemas com hooks de instalação automáticos. No Python, é comum via 'setup.py' ou 'pyproject.toml' com 'build-system.requires'; em Rust, via 'build.rs'. A tática é a mesma: acionar código durante 'pip install' ou 'cargo build', não durante a execução do app.
Fontes
- roman.ptfonte original
- Categoria
- CEVIU Web Dev
- Publicado
- 16 de junho de 2026
- Editoria
- CEVIU Web Dev
