Platão Inteligência de Dados.
Pesquisa Vertical e AI.

Bots de IA alucinam pacotes de software e desenvolvedores os baixam

Data:

Profundo Várias grandes empresas publicaram código-fonte que incorpora um pacote de software anteriormente alucinado pela IA generativa.

Não só isso, mas alguém, tendo avistei isso uma alucinação recorrente, transformou aquela dependência inventada em uma dependência real, que foi posteriormente baixada e instalada milhares de vezes pelos desenvolvedores como resultado dos maus conselhos da IA, aprendemos. Se o pacote contivesse malware real, em vez de ser um teste benigno, os resultados poderiam ter sido desastrosos.

De acordo com Bar Lanyado, pesquisador de segurança da Lasso Security, uma das empresas enganadas pela IA ao incorporar o pacote é o Alibaba, que no momento em que este artigo foi escrito ainda incluía um pip comando para baixar o pacote Python huggingface-cli na sua Tradutor Gráfico instruções de instalação.

Existe um legítimo abraçandoface-cli, instalado usando pip install -U "huggingface_hub[cli]".

Mas o huggingface-cli distribuído através do Python Package Index (PyPI) e exigido pelo GraphTranslator do Alibaba – instalado usando pip install huggingface-cli – é falso, imaginado pela IA e tornado real por Lanyado como um experimento.

Ele criou huggingface-cli em dezembro, depois de vê-lo repetidamente alucinado por IA generativa; em fevereiro deste ano, o Alibaba estava se referindo a ele nas instruções README do GraphTranslator, em vez da ferramenta CLI Hugging Face real.

Estudo

Lanyado fez isso para explorar se esses tipos de pacotes de software alucinados – nomes de pacotes inventados por modelos generativos de IA, presumivelmente durante o desenvolvimento do projeto – persistem ao longo do tempo e para testar se nomes de pacotes inventados poderiam ser cooptados e usados ​​para distribuir código malicioso, escrevendo códigos reais. pacotes que usam os nomes de código idealizados pelas IAs.

A ideia aqui é que alguém nefasto poderia pedir conselhos de código aos modelos, anotar os pacotes imaginários que os sistemas de IA recomendam repetidamente e, em seguida, implementar essas dependências para que outros programadores, ao usar os mesmos modelos e obter as mesmas sugestões, acabem recorrendo essas bibliotecas, que podem estar envenenadas com malware.

No ano passado, através da empresa de segurança Vulcan Cyber, Lanyado publicado pesquisa detalhando como alguém pode colocar uma questão de codificação para um modelo de IA como ChatGPT e receber uma resposta que recomenda o uso de uma biblioteca de software, pacote ou estrutura que não existe.

“Quando um invasor executa tal campanha, ele solicitará ao modelo pacotes que resolvam um problema de codificação e, em seguida, receberá alguns pacotes que não existem”, explicou Lanyado ao O registro. “Ele fará upload de pacotes maliciosos com os mesmos nomes para os registros apropriados e, a partir daí, tudo o que ele precisa fazer é esperar que as pessoas baixem os pacotes.”

Suposições perigosas

A disposição dos modelos de IA para citar processos judiciais inexistentes é agora bem conhecido e tem causado grande constrangimento entre os advogados que desconhecem esta tendência. E acontece que os modelos generativos de IA farão o mesmo com os pacotes de software.

Como Lanyado observou anteriormente, um malfeitor pode usar um nome inventado pela IA para um pacote malicioso carregado em algum repositório na esperança de que outros possam baixar o malware. Mas para que este seja um vetor de ataque significativo, os modelos de IA precisariam recomendar repetidamente o nome cooptado.

Foi isso que Lanyado se propôs a testar. Armado com milhares de perguntas do tipo “como fazer”, ele consultou quatro modelos de IA (GPT-3.5-Turbo, GPT-4, Gemini Pro também conhecido como Bard e Command [Cohere]) sobre desafios de programação em cinco linguagens de programação/tempos de execução diferentes (Python, Node.js, Go, .Net e Ruby), cada um com seu próprio sistema de empacotamento.

Acontece que alguns dos nomes que esses chatbots extraem do nada são persistentes, alguns em modelos diferentes. E a persistência – a repetição do nome falso – é a chave para transformar o capricho da IA ​​num ataque funcional. O invasor precisa que o modelo de IA repita os nomes dos pacotes alucinados em suas respostas aos usuários para que o malware criado sob esses nomes seja procurado e baixado.

Lanyado escolheu 20 perguntas aleatoriamente para alucinações de tiro zero e as fez 100 vezes para cada modelo. Seu objetivo era avaliar com que frequência o nome do pacote alucinado permanecia o mesmo. Os resultados de seu teste revelam que os nomes são persistentes com freqüência suficiente para serem um vetor de ataque funcional, embora não o tempo todo, e em alguns ecossistemas de empacotamento mais do que em outros.

Com o GPT-4, 24.2% das respostas às perguntas produziram pacotes alucinados, dos quais 19.6% eram repetitivos, segundo Lanyado. Uma tabela fornecida para O registro, abaixo, mostra uma análise mais detalhada das respostas do GPT-4.

  Python Node.JS Ruby . NET Go
Total de perguntas 21340 13065 4544 5141 3713
Perguntas com pelo menos um pacote de alucinação 5347 (% 25) 2524 (% 19.3) 1072 (% 23.5) 1476 (28.7%) 1093 exploráveis ​​(21.2%) 1150 (30.9%) 109 exploráveis ​​(2.9%)
Alucinações em tiro zero 1042 (% 4.8) 200 (% 1.5) 169 (% 3.7) 211 (4.1%) 130 exploráveis ​​(2.5%) 225 (6%) 14 exploráveis ​​(0.3%)
Alucinações na segunda cena 4532 (% 21) 2390 (% 18.3) 960 (% 21.1) 1334 (25.9%) 1006 exploráveis ​​(19.5%) 974 (26.2%) 98 exploráveis ​​(2.6%)
Repetitividade em tiro zero 34.4% 24.8% 5.2% 14% -

Com o GPT-3.5, 22.2% das respostas às perguntas provocaram alucinações, com 13.6% de repetitividade. Para Gêmeos, 64.5% das perguntas trouxeram nomes inventados, cerca de 14% deles repetidos. E para Cohere, foram 29.1% de alucinação e 24.2% de repetição.

Mesmo assim, os ecossistemas de empacotamento em Go e .Net foram construídos de forma a limitar o potencial de exploração, negando aos invasores acesso a determinados caminhos e nomes.

“Em Go e .Net recebemos pacotes alucinados, mas muitos deles não podiam ser usados ​​para ataque (em Go os números eram muito mais significativos do que em .Net), cada linguagem por seu motivo”, explicou Lanyado ao O registro. “Em Python e npm não é o caso, pois o modelo nos recomenda pacotes que não existem e nada nos impede de fazer upload de pacotes com esses nomes, então definitivamente é muito mais fácil executar esse tipo de ataque em linguagens como Python e Node.js.”

Propagando malware PoC

Lanyado defendeu isso ao distribuir malware de prova de conceito – um conjunto inofensivo de arquivos no ecossistema Python. Com base no conselho do ChatGPT para executar pip install huggingface-cli, ele carregou um pacote vazio com o mesmo nome no PyPI – o mencionado acima – e criou um pacote fictício chamado blabladsa123 para ajudar a separar a verificação do registro do pacote das tentativas reais de download.

O resultado, afirma ele, é que huggingface-cli recebeu mais de 15,000 downloads autênticos nos três meses em que esteve disponível.

“Além disso, realizamos uma pesquisa no GitHub para determinar se este pacote foi utilizado em repositórios de outras empresas”, disse Lanyado em a redação para seu experimento.

“Nossas descobertas revelaram que várias grandes empresas usam ou recomendam este pacote em seus repositórios. Por exemplo, instruções para instalar este pacote podem ser encontradas no README de um repositório dedicado à pesquisa conduzida pelo Alibaba.”

O Alibaba não respondeu a um pedido de comentário.

Lanyado também disse que havia um projeto de propriedade do Hugging Face que incorporava o falso huggingface-cli, mas que foi removido depois que ele alertou o negócio.

Até agora, pelo menos, esta técnica não foi usada em um ataque real que Lanyado tenha conhecimento.

“Além do nosso pacote alucinado (nosso pacote não é malicioso, é apenas um exemplo de como pode ser fácil e perigoso aproveitar esta técnica), ainda não identifiquei uma exploração desta técnica de ataque por agentes maliciosos”, disse ele. “É importante notar que é complicado identificar tal ataque, pois ele não deixa muitos passos.” ®

local_img

Inteligência mais recente

local_img

Fale Conosco

Olá! Como posso ajudá-lo?