O boom dos assistentes de codificação baseados em inteligência artificial melhorou significativamente a produtividade dos programadores, mas também abriu novas brechas de segurança na cadeia de fornecimento de software. Ferramentas como GitHub Copilot, Cursor AI ou ChatGPT foram amplamente integradas em ambientes de desenvolvimento: de acordo com uma pesquisa da Stack Overflow, 76% dos programadores já utilizam esses assistentes e 80% afirmam ter melhorado seu desempenho graças a eles.

No entanto, esses modelos não estão isentos de erros. De acordo com um estudo conjunto das universidades do Texas em San Antonio, Oklahoma e Virginia Tech, os modelos de código aberto geram recomendações erradas em mais de 21% dos casos, contra 5,2% nos modelos comerciais. Essas “invenções” resultam em sugestões de nomes de pacotes que na verdade não existem, o que pode induzir a erros mesmo entre programadores experientes.

Do erro algorítmico ao ataque real

Os cibercriminosos começam a tirar proveito dessa fraqueza através de uma técnica emergente chamada slopsquatting. Ao contrário do conhecido typosquatting, que se baseia em erros ortográficos ao escrever o nome de um pacote legítimo, o slopsquatting consiste em registar previamente os pacotes fictícios que as IAs recomendam por engano, e que não existiam até então, para introduzir software malicioso em repositórios públicos como npm ou PyPI.

Este fenómeno já teve consequências práticas. Em 2023, um investigador descobriu que uma IA sugeria repetidamente o pacote inexistente huggingface-cli e decidiu registá-lo no PyPI como prova inofensiva. Em poucos dias, milhares de programadores (entre eles, equipas de grandes empresas como a Alibaba) começaram a incorporar este pacote falso nos seus projetos. Embora neste caso não tenha ocorrido um ataque, a experiência evidenciou a facilidade com que esta vulnerabilidade poderia ser explorada em grande escala.

O perigo multiplica-se quando estes pacotes maliciosos são integrados em pipelines automatizados de integração e entrega contínua (CI/CD), o que pode levar o código contaminado diretamente para a produção, comprometendo ambientes completos.

As ferramentas tradicionais não detetam o risco

Os mecanismos clássicos de análise de dependências não são eficazes contra este tipo de ameaças. Muitos scanners baseiam-se na reputação ou no histórico do pacote, pelo que não detetam o risco quando se trata de componentes recém-criados e ainda não catalogados.

Diante dessa situação, a Check Point recomenda extrema cautela e a aplicação de uma abordagem mais rigorosa e manual ao integrar pacotes sugeridos por ferramentas de IA. As recomendações incluem:

  • Validar manualmente os nomes dos pacotes antes da instalação.
  • Utilizar versões fixas e verificações criptográficas.
  • Manter listas internas de confiança e estabelecer políticas de revisão entre pares para o uso de dependências geradas por IA.

A empresa insiste que esta situação marca o surgimento de uma nova categoria de ameaça na cadeia de fornecimento de software, que requer uma estreita colaboração entre as equipas de desenvolvimento e segurança para minimizar o seu impacto.