Você já imaginou a inteligência artificial criando códigos que… simplesmente não funcionam? Parece ficção científica, mas está acontecendo. Ferramentas de geração de código com IA estão revolucionando o desenvolvimento de software, mas também estão introduzindo novos riscos à cadeia de suprimentos. Prepare-se para descobrir como a IA está, inadvertidamente, criando brechas para ataques cibernéticos!
A IA que “alucina” pacotes de software
Assistentes de codificação com IA, assim como os grandes modelos de linguagem em geral, têm o hábito de “alucinar”. Eles sugerem códigos que incorporam pacotes de software que não existem. Pesquisas recentes mostram que uma porcentagem significativa das sugestões de pacotes feitas por modelos de IA, tanto comerciais quanto de código aberto, são inexistentes.
Uma brecha perigosa: o “Slopsquatting”
Executar um código com um pacote inexistente resulta em erro. Mas criminosos perceberam que podem usar essa “alucinação” em seu benefício. Criam pacotes maliciosos com nomes inventados pela IA e os enviam para repositórios de pacotes como PyPI ou npm. Quando a IA sugere novamente esse nome “fantasma”, o código malicioso é instalado e executado.
O padrão de repetição da alucinação
Essa ocorrência segue um padrão interessante. Alguns nomes inventados pela IA aparecem repetidamente quando as solicitações são repetidas, enquanto outros desaparecem. Isso indica que certas solicitações geram consistentemente os mesmos pacotes “fantasmas”.
“Slopsquatting”: uma nova forma de ataque
Essa exploração de nomes de pacotes inventados pela IA representa uma variação do “typosquatting”, onde variações ou erros de ortografia de termos comuns são usados para enganar as pessoas. A prática recebeu o nome de “slopsquatting”, um termo que destaca a natureza imprecisa da saída de modelos de IA.
Os riscos para os desenvolvedores
Existem diversas razões pelas quais um desenvolvedor pode tentar instalar um pacote inexistente: erro de digitação, instalação incorreta de pacotes internos sem verificação e até mesmo diferenças entre o nome do pacote e o nome do módulo. A combinação da pressa e da confiança na IA aumenta os riscos.
Com as ferramentas de IA se tornando assistentes padrão, muitos desenvolvedores copiam as sugestões sem conferência. A IA pode até instalar os pacotes sozinha. Isso torna crítico verificar as sugestões da IA antes de colocá-las em operação para evitar consequências.
Como os atacantes estão usando a IA
Ataques sofisticados estão explorando esta vulnerabilidade. Há casos de criação em massa de pacotes maliciosos com nomes inventados pela IA, criação de sites e descrições falsas para dar credibilidade a esses pacotes, e até mesmo o uso de ferramentas como o ChatGPT para gerar nomes convincentes.
Até mesmo mecanismos de busca, usando IA para resumir informações, podem erroneamente validar esses pacotes falsos, aumentando a probabilidade de instalação acidental.
Como mitigar os riscos
Tanto os desenvolvedores quanto as fundações de software estão trabalhando para melhorar a segurança. Algumas ações incluem um trabalho constante para dificultar o abuso de pacotes, implementações de APIs para relatar malware, parcerias com equipes de detecção de malware, e aprimoramentos na detecção de “typosquatting”.
É fundamental que desenvolvedores verifiquem se o pacote a ser instalado já existe, se há erros de digitação no nome, e se o conteúdo foi revisado antes da instalação. Organizações também podem espelhar um subconjunto de repositórios de pacotes para ter mais controle sobre os pacotes disponíveis para seus desenvolvedores.
Em resumo, a integração da IA no desenvolvimento de software apresenta grandes benefícios, mas também riscos significativos. A capacidade da IA de “alucinar” nomes de pacotes abre portas para ataques sofisticados. Precisamos, enquanto comunidade, estar vigilantes e adotar medidas para minimizar esses riscos, garantindo a segurança e a integridade da cadeia de suprimentos de software.
Compartilhe suas experiências e desafios com a utilização de IA no desenvolvimento de software!
Fonte: The Register