Zephyrnet Logo

Alucinações generalizadas do LLM expandem a superfície de ataque do desenvolvedor de código

Data:

O uso de grandes modelos de linguagem (LLMs) pelos desenvolvedores de software apresenta uma oportunidade maior do que se pensava anteriormente para os invasores distribuírem pacotes maliciosos para ambientes de desenvolvimento, de acordo com uma pesquisa divulgada recentemente.

O estudo do fornecedor de segurança LLM Lasso Security é uma continuação de um relatório do ano passado sobre o potencial de atacantes abusam da tendência dos LLMs de alucinar, ou para gerar resultados aparentemente plausíveis, mas não fundamentados em fatos, em resposta à entrada do usuário.

Alucinação do Pacote AI

A estudo prévio focou na tendência do ChatGPT de fabricar nomes de bibliotecas de código - entre outras fabricações - quando os desenvolvedores de software solicitaram a ajuda do chatbot habilitado para IA em um ambiente de desenvolvimento. Em outras palavras, o chatbot às vezes lançava links para pacotes inexistentes em repositórios de código público quando um desenvolvedor solicitava sugestões de pacotes para uso em um projeto.

O pesquisador de segurança Bar Lanyado, autor do estudo e agora na Lasso Security, descobriu que os invasores poderiam facilmente colocar um pacote malicioso real no local para o qual o ChatGPT aponta e dar-lhe o mesmo nome do pacote alucinado. Qualquer desenvolvedor que baixar o pacote com base na recomendação do ChatGPT poderá acabar introduzindo malware em seu ambiente de desenvolvimento.

Lanyado pesquisa de acompanhamento examinou a difusão do problema de alucinação de pacotes em quatro modelos diferentes de grandes linguagens: GPT-3.5-Turbo, GPT-4, Gemini Pro (anteriormente Bard) e Coral (Cohere). Ele também testou a tendência de cada modelo para gerar pacotes alucinados em diferentes linguagens de programação e a frequência com que eles geraram o mesmo pacote alucinado.

Para os testes, Lanyado compilou uma lista de milhares de perguntas “como fazer” que os desenvolvedores em diferentes ambientes de programação – python, node.js, go, .net, ruby ​​– mais comumente buscam assistência de LLMs em ambientes de desenvolvimento. Lanyado então fez a cada modelo uma pergunta relacionada à codificação, bem como uma recomendação para um pacote relacionado à questão. Ele também pediu a cada modelo que recomendasse mais 10 pacotes para resolver o mesmo problema.

Resultados repetitivos

Os resultados foram preocupantes. Surpreendentes 64.5% das “conversas” que Lanyado teve com Gêmeos geraram pacotes alucinados. Com a Coral esse número foi de 29.1%; outros LLMs como GPT-4 (24.2%) e GPT3.5 (22.5%) não tiveram um desempenho muito melhor.

Quando Lanyado fez a cada modelo o mesmo conjunto de perguntas 100 vezes para ver com que frequência as modelos alucinavam com os mesmos pacotes, ele descobriu que as taxas de repetição também eram surpreendentes. Cohere, por exemplo, vomitou os mesmos pacotes alucinados em 24% das vezes; Chat GPT-3.5 e Gemini em torno de 14% e GPT-4 em 20%. Em vários casos, diferentes modelos alucinaram com embalagens iguais ou semelhantes. O maior número desses modelos de alucinações cruzadas ocorreu entre GPT-3.5 e Gemini.

Lanyado diz que mesmo que diferentes desenvolvedores façam uma pergunta a um LLM sobre o mesmo tópico, mas elaborem as perguntas de maneira diferente, há uma probabilidade de que o LLM recomende o mesmo pacote alucinado em cada caso. Em outras palavras, qualquer desenvolvedor que use um LLM para assistência de codificação provavelmente encontrará muitos dos mesmos pacotes alucinados.

“A pergunta poderia ser totalmente diferente, mas sobre um assunto semelhante, e a alucinação ainda aconteceria, tornando essa técnica muito eficaz”, diz Lanyado. “Na pesquisa atual, recebemos ‘pacotes repetidos’ para muitas questões e assuntos diferentes e até mesmo em modelos diferentes, o que aumenta a probabilidade de esses pacotes alucinados serem usados.”

fácil de explorar

Um invasor armado com os nomes de alguns pacotes alucinados, por exemplo, poderia fazer upload de pacotes com os mesmos nomes para os repositórios apropriados, sabendo que há uma boa probabilidade de um LLM apontar os desenvolvedores para eles. Para demonstrar que a ameaça não é teórica, Lanyado pegou um pacote alucinado chamado “huggingface-cli” que encontrou durante seus testes e carregou um pacote vazio com o mesmo nome no repositório Hugging Face para modelos de aprendizado de máquina. Os desenvolvedores baixaram esse pacote mais de 32,000 mil vezes, diz ele.

Do ponto de vista do agente da ameaça, as alucinações de pacotes oferecem um vetor relativamente simples para a distribuição de malware. “Como vimos pelos resultados da pesquisa, não é tão difícil”, diz ele. Em média, todas as modelos tiveram alucinações juntas de 35% em quase 48,000 mil perguntas, acrescenta Lanyado. GPT-3.5 apresentou o menor percentual de alucinações; Gemini obteve a pontuação mais alta, com uma repetitividade média de 18% em todos os quatro modelos, observa ele.

Lanyado sugere que os desenvolvedores tenham cautela ao agir de acordo com as recomendações de pacotes de um LLM quando não tiverem certeza de sua precisão. Ele também diz que quando os desenvolvedores encontram um pacote de código aberto desconhecido, eles precisam visitar o repositório do pacote e examinar o tamanho de sua comunidade, seus registros de manutenção, suas vulnerabilidades conhecidas e sua taxa geral de engajamento. Os desenvolvedores também devem examinar minuciosamente o pacote antes de introduzi-lo no ambiente de desenvolvimento.

local_img

Inteligência mais recente

local_img