No intrincado mundo do desenvolvimento de software, a conveniência de utilizar pacotes de código aberto vem com um custo: a exposição a ataques à cadeia de suprimentos de software. Recentemente, pesquisadores da Checkmarx Zero desvendaram uma campanha de malware que eleva a sofisticação dessas ameaças, mirando desenvolvedores e usuários de Python e NPM em sistemas Windows e Linux com táticas inovadoras.
Essa campanha representa um caso emblemático de typosquatting e confusão intencional de nomes, com payloads projetados para instalar backdoors ocultos nos sistemas das vítimas. Esses códigos maliciosos têm como objetivo o roubo de dados sensíveis e o controle remoto persistente dos dispositivos infectados, atingindo desde ambientes de desenvolvimento até servidores de produção.
Embora a notícia tenha sido publicada em 28 de maio de 2025, o foco deste artigo não é um alerta pontual, mas sim uma análise profunda do ataque — uma verdadeira lição sobre a evolução das ameaças e os cuidados essenciais para garantir a segurança da cadeia de suprimentos de software. Este estudo de caso fornece insights preciosos para desenvolvedores, equipes de segurança, administradores de sistemas e até mesmo usuários iniciantes no Linux.
Anatomia do ataque: typosquatting e iscas “cross-ecosystem”
Typosquatting e a confusão de nomes no PyPI e NPM
O typosquatting é uma técnica em que criminosos registram pacotes com nomes semelhantes aos de projetos legítimos, apostando em erros de digitação comuns. Por exemplo, ao invés de instalar o confiável **colorama**
, um desenvolvedor distraído pode acabar digitando **colorma**
— instalando assim um pacote malicioso.
Nesse ataque, os criminosos visaram o colorama (usado para colorir saídas de terminal em Python) e o colorizr (utilizado para fins semelhantes no JavaScript, via NPM). A escolha desses nomes não foi aleatória: eles são populares e frequentemente utilizados, o que aumenta a chance de enganos por parte dos usuários.
A tática “cross-ecosystem”: inovação no engano
O diferencial deste ataque foi o uso da tática de confusão entre ecossistemas: nomes de pacotes do NPM foram usados para publicar malware no PyPI, e vice-versa. É como usar iscas de rio para pescar no mar — uma estratégia incomum que demonstra o nível de sofisticação da ameaça.
Essa abordagem visa induzir confusão deliberada entre desenvolvedores que atuam em múltiplas linguagens ou que apenas reconhecem nomes familiares. Trata-se de uma inovação perigosa que pode abrir precedentes para ataques ainda mais amplos nos principais repositórios de pacotes open source.
O payload: backdoors multiplataforma para controle e exfiltração
Objetivos comuns dos backdoors
Tanto nos ambientes Windows quanto Linux, os backdoors tinham dois objetivos principais:
- Acesso persistente: permitindo que os invasores retornem ao sistema a qualquer momento, mesmo após reinicializações ou atualizações.
- Roubo de dados sensíveis: extraindo variáveis de ambiente, credenciais, informações de configuração e segredos de API para posterior exfiltração.
Para iniciantes: um backdoor é como uma porta secreta instalada por criminosos para acessar seu sistema sem que você perceba.
Especificidades dos payloads para Windows
No ambiente Windows, os malwares empregavam táticas bem elaboradas:
- Persistência via Task Scheduler: criação de tarefas automatizadas para reinstalar os componentes do malware.
- Coleta de variáveis de ambiente através do registro do sistema, acessando informações sensíveis.
Evasão de antivírus
Os atacantes integraram comandos específicos de evasão:
**MpCmdRun.exe -RemoveDefinitions -All**
: remove as definições do Windows Defender.**Set-MpPreference -DisableIOAVProtection $true**
: desativa o escaneamento de entrada/saída via PowerShell.
Integração com GitHub
A Checkmarx Zero identificou que parte do código estava vinculado ao repositório GitHub github.com/s7bhme
, que hospedava executáveis maliciosos e um template de projeto em Python com alterações nocivas.
A sofisticação dos backdoors para Linux
No caso do Linux, os malwares apresentavam um nível avançado de furtividade:
- Payloads codificados em base64 dentro de arquivos como
src/colorizator/__init__.py
. Para iniciantes: base64 é uma forma de disfarçar código como se fosse texto comum.
Cadeia de infecção no Linux
- RSA Key Drop: gravação de uma chave pública em
/tmp/pub.pem
para criptografar dados. Para iniciantes: é como trancar dados com uma chave que só o criminoso pode abrir. - Download remoto de script Bash, que instala a ferramenta gs-netcat — usada para criar reverse shells criptografadas. Reverse shell: seu computador liga para o invasor, permitindo acesso.
- Exfiltração criptografada: os dados são criptografados, codificados e enviados para o Pastebin usando API keys válidas.
- Limpeza: os arquivos temporários são removidos para apagar vestígios.
Um “canivete suíço” de acesso remoto
O script incluía funcionalidades de:
- Persistência via Systemd, edição de rc.local, crontabs e perfis de shell. Garante que o malware continue ativo mesmo após reinicializações.
- Furtividade: o processo se disfarça como componentes do kernel e preserva timestamps.
- Webhook notifications: envio de notificações automáticas para plataformas como Telegram, Discord ou URLs arbitrárias.
- Controle remoto: configurável por meio de variáveis de ambiente, sem necessidade de reconfiguração explícita.
Esse não é um malware comum — é uma ferramenta de invasão profissional, fora do alcance de script kiddies.
Indicadores de comprometimento (IoCs): sinais de alerta
Os IoCs (Indicators of Compromise) ajudam analistas e sysadmins a identificar se seus sistemas foram afetados. Veja os principais divulgados pela Checkmarx:
- GitHub malicioso:
https://github.com/s7bhme
- URL de Webhook usada para controle:
https://webhook.site/dc3c1af9-ea3d-4401-9158-eb6dda735276
- Usuários maliciosos no PyPI e NPM:
rick_grimes
,morty_smith
,reven
,m5tl
,dsss
- Hashes SHA256:
- Linux:
d30c78c64985a42c34ef142fd8754a776c8db81228bafc385c5bd429252e4612
- Windows:
daef5255eac4a4d16940e424c97492c6bad8fdafd2420632c371b9d18df3b47f
- Linux:
Esses dados devem ser utilizados para verificações em logs, monitoramento de tráfego e auditorias de código.
Atribuição e evolução: o desafio da inteligência de ameaças
Inicialmente, os analistas suspeitaram que todos os pacotes vinham de um único grupo atacante. No entanto, diferenças nas ferramentas, infraestrutura e estilo de codificação levantaram dúvidas.
A Checkmarx Zero não conseguiu estabelecer uma atribuição definitiva, sugerindo que pode haver vários atores explorando a mesma tática de typosquatting em paralelo. Isso é preocupante: mostra como as técnicas se propagam rapidamente no submundo da cibercriminalidade.
Recomendações de segurança: protegendo sua cadeia de suprimentos
Exame rigoroso de código e repositórios
- Analise cada pacote e dependência em seus repositórios.
- Evite repositórios suspeitos e mantenha uma lista de bloqueio.
- Verifique proxies privados como Artifactory, que podem estar armazenando pacotes infectados.
Proteção em ambientes de desenvolvimento e teste
- Restrinja instalações automáticas de pacotes em máquinas de desenvolvedores.
- Eduque sua equipe sobre os perigos de instalar pacotes sem verificação.
Para iniciantes no Linux: sempre use repositórios oficiais, confira os checksums (hashes) dos arquivos baixados e evite pacotes com nomes ligeiramente diferentes dos que você procura.
Essas são práticas indispensáveis para manter a segurança da cadeia de suprimentos de software de código aberto.
Conclusão: a vigilância constante é a melhor defesa
A campanha analisada pela Checkmarx Zero é um marco na evolução dos ataques à cadeia de suprimentos de software. Ao explorar engenharia social, táticas inter-ecossistema e malwares avançados multiplataforma, os atacantes elevaram o nível da ameaça.
Para desenvolvedores, administradores e profissionais de segurança, a lição é clara: validar a origem de cada pacote e manter práticas rigorosas de segurança é a única forma de se proteger.
Mantenha-se alerta. Mantenha-se seguro. Mantenha-se atualizado com o SempreUpdate.