top of page

Ataque GlassWorm usa tokens roubados do GitHub para injetar malware em repositórios Python



Uma nova fase da campanha GlassWorm está explorando tokens roubados do GitHub para comprometer centenas de repositórios Python, ampliando significativamente o alcance de ataques à cadeia de suprimentos de software. A operação, identificada por pesquisadores da StepSecurity, afeta desde aplicações Django até projetos de machine learning, dashboards em Streamlit e pacotes publicados no PyPI.


O ataque consiste na inserção de código malicioso ofuscado em arquivos comuns como setup.py, main.py e app.py. Qualquer usuário que execute comandos como pip install a partir de um repositório comprometido, ou que clone e rode o código, acaba ativando o malware sem perceber.


A atividade maliciosa foi rastreada desde 8 de março de 2026. Após obter acesso às contas de desenvolvedores, os hackers utilizam uma técnica avançada de manipulação de histórico Git: eles reaplicam commits legítimos sobre a branch principal, adicionando código malicioso, e realizam um force push. Esse processo mantém intactos elementos como mensagem do commit, autor e data, dificultando a identificação da adulteração.


Essa nova vertente da campanha foi denominada ForceMemo e segue uma cadeia de ataque estruturada em quatro etapas. Inicialmente, os invasores comprometem sistemas de desenvolvedores por meio de extensões maliciosas do VS Code e do editor Cursor, que incluem funcionalidades específicas para roubo de credenciais, como tokens do GitHub.


Na sequência, esses tokens são utilizados para modificar todos os repositórios associados à conta comprometida. O código malicioso, codificado em Base64, é inserido ao final de arquivos Python estratégicos. Esse payload inclui verificações para evitar execução em sistemas configurados com idioma russo, uma característica recorrente em campanhas desse tipo.


O malware também se destaca pelo uso de uma abordagem incomum de comando e controle (C2). Em vez de utilizar servidores tradicionais, ele consulta o campo de “memo” de transações associadas a uma carteira da blockchain Solana para obter a URL do payload malicioso. Essa técnica permite atualizar dinamicamente os pontos de controle sem depender de infraestrutura centralizada facilmente detectável.


Uma vez ativado, o código baixa cargas adicionais, incluindo scripts JavaScript criptografados projetados para roubo de criptomoedas e exfiltração de dados. Segundo a análise, o endereço da carteira utilizado na operação já registra atividade desde novembro de 2025, indicando planejamento prévio de longo prazo.


Investigações adicionais apontam que o mesmo grupo hacker está diversificando seus métodos de distribuição. Uma nova variante da campanha utiliza dependências transitivas em extensões para disseminar o malware, aumentando sua capacidade de propagação sem interação direta do usuário.


Além disso, mais de 150 repositórios GitHub foram comprometidos com código malicioso oculto por meio de caracteres Unicode invisíveis, dificultando ainda mais a detecção manual. Em todos os casos, a infraestrutura baseada em Solana permanece como elemento comum, reforçando a atribuição das diferentes ondas de ataque ao mesmo operador.


Outro ponto crítico destacado é o uso do force push como vetor de ataque. Essa técnica reescreve completamente o histórico do repositório sem gerar pull requests ou registros visíveis na interface do GitHub, tornando o ataque praticamente invisível para muitos fluxos tradicionais de revisão de código.


A campanha também atingiu diretamente o ecossistema npm. Dois pacotes React Native react-native-international-phone-number e react-native-country-select foram comprometidos e tiveram versões maliciosas publicadas diretamente no registro, sem passar pelo fluxo padrão de release no GitHub.


Essas versões incluíam scripts executados durante a instalação (preinstall hooks), responsáveis por iniciar o ataque. Assim como na variante Python, o código ignora sistemas russos, consulta uma carteira Solana para obter instruções e baixa malwares específcos para cada plataforma.


Um dos aspectos mais sofisticados dessa variante é a execução do payload inteiramente em memória, sem gravação em disco. Em sistemas macOS e Linux, isso ocorre via função eval(), enquanto em outros ambientes é utilizado o sandbox vm.Script do Node.js. Além disso, o malware implementa um mecanismo de persistência leve, registrando um arquivo local que impede nova execução por até 48 horas, reduzindo a chance de detecção.


A campanha GlassWorm evidencia uma evolução significativa nos ataques à cadeia de suprimentos, combinando comprometimento de contas, manipulação de histórico de código, uso de blockchain como infraestrutura de comando e técnicas avançadas de evasão.


Para equipes de segurança, o caso mostra a necessidade de monitoramento contínuo de repositórios, validação de integridade de código e proteção rigorosa de credenciais de desenvolvedores.

 
 
Cópia de Cyber Security Brazil_edited.jpg

Cyber Security Brazil desde 2021, atuamos como referência nacional em segurança digital, oferecendo informação confiável, conteúdo especializado e fortalecendo o ecossistema de cibersegurança no Brasil.

Institucional

(11)97240-7838

INSCREVA SEU EMAIL PARA RECEBER

ATUALIZAÇÕES, POSTS E NOVIDADES

  • RSS
  • Instagram
  • LinkedIn

© 2025 Todos os direitos reservados a Cyber Security Brazil

bottom of page