Radar Tech: agentes de IA instalaram código que ninguém controla em redes de grandes empresas
Pesquisadores acharam 227 comandos de instalação apontando para pacotes sem dono em arquivos llms.txt de Fortune 500 e Big Tech — e provaram que Claude, Codex e Hermes os executam. O supply-chain de IA virou superfície de ataque.
Radar Tech: o dia em que o supply-chain de IA virou superfície de ataque
Uma das notícias de segurança mais comentadas desta semana veio da Ars Technica: pesquisadores de uma startup israelense de stealth escanearam 6.214 domínios — de contratadas de defesa, Fortune 500 e Big Tech — e encontraram 120 arquivos llms.txt mal configurados entre os 8.265 analisados. O achado: 227 comandos de instalação apontando para pacotes ou domínios que ninguém controla.
Para provar o risco, os pesquisadores registraram alguns desses slots abandonados e hospedaram pacotes-isca que "ligam para casa" quando executados. Em menos de uma hora, uma Fortune 500 respondeu. Depois, algumas dezenas mais. Os beacons registraram a cadeia de processos-pai: Claude, OpenAI Codex e Hermes (da Nous Research) estavam executando o código.
O que está acontecendo de fato
- Arquivos
llms.txt/llms-full.txtsão a convenção emergente para dar a agentes de IA um resumo "máquina-legível" do conteúdo de um site — uma espécie de robots.txt para os modelos. - Quando o arquivo diz
pip install internal-toolounpm install exemplo-nome, um agente com permissão de shell trata a instrução como autoridade e executa. - Se o pacote não existe no registro, qualquer atacante pode reivindicar aquele nome e hospedar malware que parecerá legítimo.
- Pior: o
clerk.comlegítimo continha a instruçãonpx clerk-next-fix-auth-protection— e o slot havia sido reivindicado para hospedar malware real.
Por que os controles atuais não pegam
O ponto central da pesquisa: a fronteira entre dado e código está se apagando. Para um EDR ou proxy corporativo, pip install vindo de pypi.org com processo-pai sendo o agente (que a empresa instalou de propósito) parece um evento perfeitamente normal. Nenhum alerta. A falha acontece antes: na lacuna entre a instrução lida e a execução.
Os pesquisadores resumem: "o agente não distingue entre uma página e um comando — tudo o que ele lê é input, e todo input é uma instrução em potencial."
O que isso significa para arquitetura de software
Este não é um caso de "script malicioso escondido". É um caso em que a própria documentação legítima pode virar vetor quando um nome é abandonado e alguém o reivindica — confiança transitiva, sem validação de origem. Para times de segurança e plataforma, isso reforça a necessidade de:
- Permissões mínimas para agentes: negar shell por padrão, exigir modo plano/read-only para documentos não confiáveis.
- Allowlist de registros e domínios, com verificação de dono do namespace (PyPI, npm) antes de qualquer instalação.
- Um policy engine como gate de instalação, com dry-run, aprovação explícita e verificação de hash/proveniência.
- Varredura proativa de
llms.txt/llms-full.txte monitoramento da cadeia de processos que executampip/npm/npx.
Para quem quer colocar isso em prática, publicamos hoje um pacote de prompts em pt-BR que transforma esse cenário num fluxo de trabalho auditável: avaliação de risco, decisão registrada em ADR, mapa de controles, runbook de resposta e critérios objetivos de aceite — pronto para rodar com GPT-4, Claude ou Gemini. Veja o prompt relacionado nesta página e confira o guia completo no marketplace.