Assistentes de código de IA estão gerando nomes de pacotes que não existem, e atacantes estão transformando essas alucinações em riscos reais para a cadeia de suprimentos.
Quando o pesquisador de segurança Bar Lanyado, da Lasso Security, pediu a uma ferramenta de codificação baseada em IA um cliente Python, o modelo sugeriu a instalação do huggingface-cli. O pacote é um fantasma; a biblioteca legítima existe sob o nome huggingface_hub. Para provar o perigo, Lanyado registrou o nome falso no Python Package Index (PyPI) como um placeholder vazio. Em três meses, o placeholder acumulou mais de 30.000 downloads, apareceu em documentações públicas e até surgiu em amostras de código coletadas dos repositórios da Alibaba.
Como um pacote fantasma se torna uma ameaça real
- Prompt → alucinação – Um desenvolvedor pede ajuda a uma IA. O modelo, treinado em dados ruidosos da internet, inventa um nome de pacote que parece plausível.
- Copiar e colar → documentação – A sugestão acaba em um README, em uma resposta do Stack Overflow ou em uma wiki interna. Uma vez escrito, o nome se espalha pela comunidade.
- Integração de código – O desenvolvedor, confiando na IA, adiciona o nome a um arquivo de requisitos e o envia para produção.
Por que as defesas existentes não detectam o problema
Ferramentas de análise estática e scanners de vulnerabilidade buscam por CVEs conhecidas e por bibliotecas com histórico de lançamento. Um pacote recém-publicado com zero downloads antes da sugestão da IA não possui CVE, não tem reputação e, portanto, parece limpo. A verificação padrão “a versão é vulnerável?” retorna falso, dando aos desenvolvedores uma falsa sensação de segurança.
O que o experimento prova
- Nomes inventados por IA chegam à produção – Os mais de 30.000 downloads mostram que os desenvolvedores estão realmente baixando esses pacotes fantasmas.
- Alucinações tornam-se documentação – Uma vez que um nome falso aparece em um guia público, ele pode persistir indefinidamente, propagando o erro.
- O registro é trivial – Publicar um pacote no PyPI não custa nada e leva minutos, diminuindo a barreira para o abuso da cadeia de suprimentos.
Medidas defensivas que realmente funcionam
- Valide cada dependência – Antes de adicionar um novo requisito, pesquise no índice de pacotes e confirme se o nome corresponde a uma biblioteca existente e documentada.
- Faça uma verificação cruzada com fontes oficiais – Compare o nome sugerido com o repositório do fornecedor ou com o guia de instalação oficial.
- Trate pacotes novos e de baixa adoção como alto risco – Sinalize qualquer dependência que tenha menos de alguns poucos downloads ou uma data de lançamento muito recente para revisão manual.
O que observar a seguir
A conclusão é simples: uma sugestão de IA não é uma garantia. Trate cada nova dependência como um componente de terceiros não verificado, verifique sua procedência e fique atento à cadeia de suprimentos antes de permitir que um pacote fantasma entre em produção.
