Malware GlassWorm

Uma nova onda da campanha de malware GlassWorm está visando ativamente as cadeias de suprimentos de software, explorando tokens roubados do GitHub para injetar código malicioso em centenas de repositórios. Essa operação se concentra principalmente em projetos baseados em Python, incluindo aplicativos Django, código de pesquisa em aprendizado de máquina, painéis do Streamlit e pacotes do PyPI.

O vetor de ataque é enganosamente simples, porém altamente eficaz: um malware ofuscado é anexado a arquivos comumente executados, como setup.py, main.py e app.py. Qualquer desenvolvedor que instale dependências via pip install ou execute código clonado de um repositório comprometido ativa, sem saber, a carga maliciosa.

Tomadas de controle silenciosas de repositórios: a técnica ForceMemo

Essa evolução da campanha, agora chamada ForceMemo, introduz um método furtivo de comprometimento de repositórios. Os agentes maliciosos obtêm acesso a contas de desenvolvedores e manipulam repositórios sem deixar rastros convencionais.

Ao substituir commits legítimos por código malicioso e forçá-los a entrar no branch padrão, os atacantes preservam os metadados originais do commit, incluindo mensagem, autor e data/hora, mascarando efetivamente a intrusão. Essa abordagem elimina indicadores visíveis, como pull requests ou históricos de commits suspeitos, tornando a detecção significativamente mais difícil.

Cadeia de Execução de Ataques: Do Roubo de Credenciais à Entrega da Carga Útil

A campanha ForceMemo segue um processo de intrusão estruturado e em várias etapas:

  • Os ambientes de desenvolvimento são inicialmente comprometidos por meio de extensões maliciosas do Visual Studio Code e do Cursor que contêm componentes do GlassWorm projetados para coletar credenciais confidenciais, incluindo tokens do GitHub.
  • As credenciais roubadas são então usadas para injetar payloads codificados em Base64 e ofuscados em arquivos Python em todos os repositórios associados à conta comprometida.
  • O malware incorporado realiza verificações de ambiente, evitando notavelmente a execução em sistemas configurados com um idioma russo. Em seguida, consulta uma carteira blockchain Solana para recuperar dinamicamente a URL de entrega do payload.
  • São baixados arquivos adicionais, incluindo JavaScript criptografado projetado para roubo de criptomoedas e exfiltração de dados.

Comando e controle baseados em blockchain: uma infraestrutura resiliente

Uma característica definidora desta campanha é a sua dependência da blockchain Solana como mecanismo de Comando e Controle (C2). Em vez de servidores tradicionais, os atacantes armazenam URLs de payloads em campos de memorando de transação vinculados a endereços de carteira específicos.

A análise revela que a atividade ligada à carteira principal começou já em 27 de novembro de 2025, meses antes de as invasões do repositório serem observadas. A carteira processou dezenas de transações, com a localização dos dados sendo atualizada frequentemente, às vezes várias vezes ao dia. Essa abordagem descentralizada aumenta a resiliência e dificulta os esforços de desmantelamento.

Ampliando a superfície de ataque: npm e infecções entre ecossistemas

A campanha se estendeu para além dos ecossistemas Python, atingindo as cadeias de suprimentos do JavaScript. Dois pacotes npm do React Native, react-native-international-phone-number (versão 0.11.8) e react-native-country-select (versão 0.3.91), foram temporariamente comprometidos e distribuídos com malware embutido.

Essas versões maliciosas introduziram ganchos de pré-instalação que executam JavaScript ofuscado, iniciando uma cadeia de infecção semelhante. O malware, mais uma vez, evita sistemas russos, obtém instruções para o payload por meio de uma carteira Solana e implanta ameaças específicas para cada plataforma.

A execução ocorre inteiramente na memória, utilizando técnicas de tempo de execução como `eval()` ou o isolamento de processos (sandboxing) do Node.js, deixando artefatos forenses mínimos. Além disso, um mecanismo de persistência impede a reinfecção em um período de 48 horas, armazenando um registro de data e hora localmente.

Táticas avançadas de evasão e distribuição

As versões recentes do GlassWorm demonstram maior sofisticação na distribuição e ocultação de malware. Ao explorar os mecanismos extensionPack e extensionDependencies, os atacantes distribuem payloads maliciosos de forma transitiva por meio de ecossistemas de extensões confiáveis.

Campanhas anteriores, ligadas ao mesmo agente de ameaças, comprometeram mais de 151 repositórios do GitHub usando caracteres Unicode invisíveis para ocultar código malicioso. Apesar das variadas estratégias de ofuscação e distribuição, todas as campanhas dependem consistentemente da mesma infraestrutura baseada em Solana, confirmando uma estrutura operacional unificada.

Extensões maliciosas de IDE: visando ambientes de desenvolvimento

A campanha também se infiltrou em ferramentas de desenvolvimento por meio de uma extensão maliciosa identificada como reditorsupporter.r-vscode-2.8.8-universal, direcionada ao ambiente de desenvolvimento integrado Windsurf. Disfarçada de plugin de suporte à linguagem R, ela implanta um programa de roubo de informações baseado em Node.js.

Uma vez instalada, a extensão recupera payloads criptografados de transações blockchain, executa-os na memória e implanta componentes compilados para extrair dados sensíveis de navegadores baseados no Chromium. A persistência é garantida por meio de tarefas agendadas e modificações no Registro do Windows, assegurando a execução na inicialização do sistema.

O malware tem como alvo específico ambientes de desenvolvedores, excluindo sistemas russos, espelhando o comportamento observado em outras variantes do GlassWorm.

Indicadores de escala e impacto

A análise de segurança indica que a campanha comprometeu uma parte substancial do ecossistema de código aberto, afetando mais de 433 projetos em diversas plataformas. Isso inclui repositórios do GitHub (Python e JavaScript), extensões do VS Code e bibliotecas npm.

Todas as vias de infecção convergem, em última análise, para a implantação de um programa de roubo de informações baseado em JavaScript, evidenciando um objetivo final consistente de coleta de credenciais e exfiltração de dados.

  • Mais de 433 projetos e pacotes comprometidos foram confirmados.
  • Múltiplos vetores de distribuição, incluindo GitHub, npm e extensões de IDE.
  • Utilização consistente da infraestrutura blockchain Solana para entrega de dados.
  • Exclusão reiterada de sistemas russos em todas as variantes.

Avaliação Estratégica: Uma Nova Era de Ataques à Cadeia de Suprimentos

A campanha ForceMemo representa uma escalada significativa nas ameaças à cadeia de suprimentos de software. Sua combinação de manipulação furtiva do histórico do Git, infraestrutura de comando e controle baseada em blockchain e vetores de infecção multiplataforma demonstra um alto nível de maturidade operacional.

A reutilização de infraestrutura, juntamente com a evolução dos mecanismos de entrega, indica um adversário adaptável, capaz de escalar ataques, mantendo a persistência e a capacidade de evasão. Essa mudança de comprometimentos isolados para intrusões coordenadas em múltiplos ecossistemas ressalta o crescente risco que os ambientes de desenvolvimento modernos e as comunidades de código aberto enfrentam.

Tendendo

Mais visto

Carregando...