Gaslight: malware macOS norte-coreano usa prompt injection para enganar analistas que dependem de IA
Implante em Rust descoberto pela SentinelOne embute 38 mensagens falsas de sistema para induzir agentes de triagem com LLM a abortar a análise. Atribuído com alta confiança a grupos alinhados à Coreia do Norte.
Pesquisadores da SentinelOne revelaram um implante macOS escrito em Rust, batizado de Gaslight, que carrega no próprio binário um payload de prompt injection projetado para sabotar a análise de malware feita com auxílio de modelos de linguagem. A peça, atribuída com alta confiança a atores alinhados à Coreia do Norte, usa um canal de comando e controle via Telegram Bot API, configura tudo em tempo de execução e ainda dispara um stealer escrito em Python instalado por um installer bash de apenas 2 KB.
O que aconteceu
O pesquisador Phil Stokes, da SentinelOne, publicou nesta semana o relatório técnico que documenta o primeiro malware macOS conhecido a atacar diretamente o pipeline de triagem assistido por IA. Em vez de tentar evadir uma sandbox tradicional, o Gaslight ataca aquilo que o analista vê, manipulando a percepção do agente de LLM que o ajuda a entender o artefato.
O implante chega como um binário Rust nativo e age em duas frentes: estabelece um canal de C2 baseado em polling contra a Telegram Bot API, transformando o operador em interlocutor de um shell remoto interativo, e descarrega um info stealer em Python através de um instalador bash codificado em Base64 com apenas 2 KB. O stealer baixa o interpretador cpython 3.10.18 do projeto astral-sh/python-build-standalone para rodar isoladamente do sistema, sem depender do Python da máquina-alvo.
O nome Gaslight foi escolhido justamente pelo comportamento manipulador da amostra. Em vez de criptografar, ofuscar ou empacotar o código, o desenvolvedor optou por enganar o leitor mais provável de inspecionar o arquivo: um modelo de linguagem agindo como copiloto do analista.
Como o ataque ao agente de IA funciona
O coração da técnica está em um bloco fenced em Markdown contendo 38 mensagens fabricadas que se passam por mensagens “system” do próprio LLM. O conteúdo simula avisos de expiração de token, falhas de sessão, limites de contexto excedidos e ordens administrativas para que o agente aborte, trunque ou recuse a análise. Quando um modelo encontra esse bloco dentro do código suspeito, pode interpretar as instruções como vindas do orquestrador legítimo e simplesmente desistir do trabalho.
“Sua característica mais notável é uma cascata embutida de mensagens fabricadas de falha de sistema, projetadas para fazer um agente de triagem assistido por LLM duvidar da própria sessão. O alvo é a percepção do agente, não a sandbox em que ele roda.”
Phil Stokes, SentinelOne
O resto do design reforça a operação clandestina. O token do bot do Telegram, o tg_room_id e o restante da configuração do operador não estão hard-coded: são fornecidos em runtime, o que dificulta a busca por IoCs estáticos em VirusTotal e similares. O implante ainda se auto-redaciona em logs, substituindo o próprio token de bot nas saídas de runtime para negar credenciais a quem captura artefatos de crash ou despejos.
O stealer em Python carrega outra pista interessante: o uso intenso de emojis nos comentários e os cabeçalhos verbosos sugerem fortemente que o código foi gerado por um LLM. Ou seja, o adversário usa IA generativa para escrever ferramentas que, por sua vez, atacam IAs defensivas.
Quem é afetado
- Analistas de malware e times de threat intelligence que adotaram copilotos LLM (Claude, GPT-4o, Gemini ou modelos locais) em pipelines de triagem;
- Plataformas de sandbox e análise estática que integraram agentes de IA para gerar relatórios automáticos;
- Engenheiros de SOC que pedem ao LLM para resumir scripts e binários antes de tomar decisões de quarentena;
- Usuários macOS, especialmente em organizações ligadas a criptoativos, defesa e tecnologia, alvos preferenciais de atores norte-coreanos.
Análise
Gaslight inaugura uma categoria que vinha sendo apenas teorizada em conferências: malware desenhado contra o blue team aumentado por IA. As campanhas norte-coreanas ligadas ao Lazarus e ao BlueNoroff já vinham mostrando rara sofisticação em macOS, com famílias como RustBucket, BeaverTail e KandyKorn. O salto qualitativo aqui é estratégico, não tático: em vez de melhorar a evasão técnica, o adversário ataca o processo cognitivo do defensor. A lógica é a mesma de campanhas que envenenam buscadores de SEO ou injetam comandos em e-mails consumidos por agentes corporativos: onde quer que um LLM leia conteúdo não confiável e tome decisões, ele pode ser sequestrado.
O timing reforça o ponto. Ao longo de 2026, ferramentas de análise como Binary Ninja, Ghidra e plataformas comerciais passaram a integrar copilotos de IA cada vez mais autônomos, e equipes de SOC começaram a delegar a esses agentes o resumo inicial de amostras. Cada uma dessas integrações vira agora superfície de ataque. Vale lembrar que o cenário paralelo das injeções via documentos do Office, PDFs e até arquivos de imagem (com instruções escondidas em comentários EXIF) já vinha mostrando que prompt injection deixou de ser curiosidade acadêmica há tempos.
Para o Brasil, o alerta vale duas vezes. Primeiro, porque dezenas de bancos, exchanges e órgãos públicos federais adotaram nos últimos meses ferramentas de triagem com IA sem revisão dos vetores adversariais correspondentes. Segundo, porque a comunidade brasileira de threat hunting vinha usando intensamente prompts genéricos de inspeção de código, expostos exatamente ao tipo de envenenamento que o Gaslight explora.
Recomendações práticas
- Trate qualquer entrada para um LLM analista como input não confiável: separe conteúdo do artefato do prompt de sistema usando delimitadores explícitos e instrua o modelo a ignorar instruções dentro do payload;
- Não dê ao agente de IA permissão para abortar análises por conta própria. O fluxo deve sempre devolver um veredito ao analista humano, mesmo quando o modelo “acreditar” que a sessão expirou;
- Monitore tráfego saindo para api.telegram.org em endpoints macOS corporativos e bloqueie por default em redes que não usem o serviço para fins legítimos;
- Inspecione conexões a github.com/astral-sh/python-build-standalone e downloads não esperados de interpretadores Python avulsos em hosts macOS;
- Inclua em playbooks de DFIR a busca por blocos fenced em Markdown dentro de amostras, especialmente padrões “system:” repetidos, e trate-os como indicador de prompt injection;
- Compartilhe internamente exemplos do bloco fabricado do Gaslight como exercício de tabletop para o time de triagem assistida por IA.
Fonte: The Hacker News





