O blog de segurança da FireAI

Por FireAI Security & Research Team · Publicado

Slopsquatting: quando seu assistente de codificação com IA inventa um pacote, e outra pessoa o registra

Slopsquatting: quando seu assistente de codificação com IA inventa um pacote, e outra pessoa o registra

Peça a um assistente de codificação para resolver um problema e, às vezes, ele vai recomendar instalar um pacote: pacotes reais para tarefas comuns e, com frequência mensurável, pacotes que não existem de jeito nenhum. Ele inventou um nome plausível porque o padrão de código ao redor pedia uma dependência ali. Se você ou seu agente de codificação rodar o comando de instalação mesmo assim, o que estiver de fato registrado sob aquele nome no PyPI ou no npm é o que vai parar na sua máquina. O pesquisador de segurança Seth Larson, desenvolvedor residente na Python Software Foundation, nomeou o ataque resultante de "slopsquatting", o registro dos nomes que os modelos alucinam, o equivalente gerado por IA do typosquatting.

Com que frequência isso de fato acontece

Uma equipe da Universidade do Texas em San Antonio, da Virginia Tech e da Universidade de Oklahoma mediu isso diretamente: "We Have a Package for You!", aceito no USENIX Security 2025. Em 576 mil amostras de código geradas por 16 modelos populares em duas linguagens, eles encontraram pacotes alucinados em "pelo menos 5,2 por cento nos modelos comerciais e 21,7 por cento nos modelos de código aberto", totalizando 205.474 nomes de pacotes alucinados únicos. Isso não é um caso raro e isolado; para alguns modelos de código aberto, é aproximadamente uma em cada cinco dependências sugeridas.

Spracklen et al., USENIX Security 2025, arXiv:2406.10279. Médias entre os 16 modelos testados; modelos individuais variaram.
Classe de modeloTaxa de alucinação (das recomendações de pacote)
Modelos comerciais (média)pelo menos 5,2 por cento
Modelos de código aberto (média)pelo menos 21,7 por cento

Por que isso é sequestrável, não só errado

Um nome inventado uma única vez seria um incômodo, não uma superfície de ataque. O que torna isso explorável é a repetição: como o The Register relatou em 12 de abril de 2025, quando pesquisadores rodaram o mesmo prompt dez vezes, "43 por cento dos pacotes alucinados se repetiram todas as vezes, e 39 por cento nunca reapareceram." Perto da metade dos nomes alucinados não é ruído aleatório; é o mesmo palpite que o modelo produz de forma confiável diante de um código parecido. Um atacante não precisa adivinhar o que um desenvolvedor específico vai digitar. Ele pode rodar os mesmos modelos contra prompts comuns, coletar os nomes que se repetem, e registrá-los no índice real de pacotes, com antecedência.

Ilustrativo: o momento de risco
pip install fast-json-normalizer   # suggested by a coding assistant
Collecting fast-json-normalizer
  Downloading fast-json-normalizer-0.3.1.tar.gz
Running setup.py install for fast-json-normalizer ... done
# Nothing here indicates whether this name was ever a real, reviewed project
# or was registered specifically because models keep suggesting it.

Por que isso se encaixa no padrão que a OWASP já rastreia

Essa é uma variante do que o Top 10 da OWASP para Aplicações LLM chama de risco de cadeia de suprimentos para desenvolvimento assistido por IA: a fronteira de confiança que costumava ficar em "um humano escolheu adicionar essa dependência" se desloca para "a completação de padrões de um modelo a escolheu", e a completação de padrões não tem nenhum conceito de se um nome é real.

O que de fato fazer a respeito

  • Trate todo nome de pacote que um agente de codificação sugere como uma sugestão a verificar, não uma dependência já confiável, da mesma forma que trataria um nome que um colaborador júnior digitou de memória.
  • Verifique a data de registro e o histórico de downloads antes de instalar qualquer coisa desconhecida; um pacote que apareceu recentemente e é suspeitosamente bem-combinado com um padrão comum de prompt gerado por IA merece uma segunda olhada.
  • Fixe as versões das dependências e use um lockfile, para que um nome alucinado que passou uma vez não seja silenciosamente resolvido de novo depois.
  • Observe o que um pacote recém-instalado de fato faz na primeira execução. Uma dependência recém-registrada tentando alcançar um servidor com o qual não tem nenhuma relação é um sinal que um firewall consegue capturar mesmo quando uma revisão de código deixou passar o nome.

Onde FireAI e HisnLabs entram nessa história

A squatted package that phones home still has to make a connection to do it, from a Python or Node process you just ran; FireAI shows you that connection, the process behind it and where it is going, before you decide whether it belongs there.

O FireAI é o produto da HisnLabs: um firewall com IA que roda direto no seu Mac. Ele mostra, em linguagem simples, cada conexão que seus aplicativos fazem e deixa você decidir o que sai do seu Mac — a IA roda localmente, então seu tráfego nunca é enviado para nós nem para ninguém. A equipe de pesquisa em segurança da HisnLabs é quem mantém essas decisões confiáveis: cataloga quais domínios são telemetria comum e quais são um serviço de verdade, rastreia o país e a rede por trás de uma conexão e treina o modelo local (o recurso Autopilot) com padrões reais de tráfego, sem que nada disso saia do seu Mac.

Você pode ler as decisões técnicas por trás dele, ou testar o FireAI por 17 dias, em FireAI, da HisnLabs.

Fontes