Tech

Falha de injeção rápida no Vanna AI expõe bancos de dados a ataques RCE

Falha de injeção imediata

Pesquisadores de segurança cibernética revelaram uma falha de segurança de alta gravidade na biblioteca Vanna.AI que poderia ser explorada para obter vulnerabilidade de execução remota de código por meio de técnicas de injeção imediata.

A vulnerabilidade, rastreada como CVE-2024-5565 (pontuação CVSS: 8,1), está relacionada a um caso de injeção imediata na função “ask” que poderia ser explorada para induzir a biblioteca a executar comandos arbitrários, disse a empresa de segurança da cadeia de suprimentos JFrog.

Vanna é uma biblioteca de aprendizado de máquina baseada em Python que permite aos usuários conversar com seu banco de dados SQL para obter insights “apenas fazendo perguntas” (também conhecidas como prompts) que são traduzidas em uma consulta SQL equivalente usando um modelo de linguagem grande (LLM).

A rápida implementação de modelos generativos de inteligência synthetic (IA) nos últimos anos trouxe à tona os riscos de exploração por atores mal-intencionados, que podem transformar as ferramentas em armas, fornecendo informações adversárias que contornam os mecanismos de segurança nelas incorporados.

Uma dessas courses proeminentes de ataques é a injeção imediata, que se refere a um tipo de jailbreak de IA que pode ser usado para desconsiderar as proteções erguidas por provedores de LLM para evitar a produção de conteúdo ofensivo, prejudicial ou ilegal, ou executar instruções que violem o pretendido. finalidade da aplicação.

Cíber segurança

Esses ataques podem ser indiretos, em que um sistema processa dados controlados por terceiros (por exemplo, e-mails recebidos ou documentos editáveis) para lançar uma carga maliciosa que leva a um jailbreak de IA.

Eles também podem assumir a forma do que é chamado de jailbreak de vários tiros ou de vários turnos (também conhecido como Crescendo), em que o operador “começa com um diálogo inofensivo e progressivamente direciona a conversa em direção ao objetivo pretendido e proibido”.

Essa abordagem pode ser estendida ainda mais para realizar outro novo ataque de jailbreak conhecido como Skeleton Key.

“Essa técnica de jailbreak de IA funciona usando uma estratégia multi-turn (ou múltiplas etapas) para fazer com que um modelo ignore seus guardrails”, disse Mark Russinovich, diretor de tecnologia da Microsoft Azure. “Uma vez que os guardrails são ignorados, um modelo não será capaz de determinar solicitações maliciosas ou não sancionadas de nenhum outro.”

Skeleton Key também é diferente do Crescendo porque, uma vez que o jailbreak seja bem-sucedido e as regras do sistema sejam alteradas, o modelo pode criar respostas a perguntas que de outra forma seriam proibidas, independentemente dos riscos éticos e de segurança envolvidos.

“Quando o jailbreak do Skeleton Key é bem-sucedido, um modelo reconhece que atualizou suas diretrizes e, posteriormente, cumprirá as instruções para produzir qualquer conteúdo, não importa o quanto ele viole suas diretrizes originais de IA responsável”, disse Russinovich.

Falha de injeção rápida

“Ao contrário de outros jailbreaks como Crescendo, onde os modelos devem ser questionados sobre tarefas indiretamente ou com codificações, Skeleton Key coloca os modelos em um modo onde um usuário pode solicitar tarefas diretamente. Além disso, a saída do modelo parece não ser completamente filtrada e revela a extensão de o conhecimento ou capacidade de um modelo para produzir o conteúdo solicitado.”

As últimas descobertas do JFrog – também divulgadas de forma independente por Tong Liu – mostram como injeções rápidas podem ter impactos severos, particularmente quando estão vinculadas à execução de comandos.

CVE-2024-5565 aproveita o fato de Vanna facilitar a geração de texto para SQL para criar consultas SQL, que são então executadas e apresentadas graficamente aos usuários usando a biblioteca gráfica Plotly.

Isso é feito por meio de uma função “ask” – por exemplo, vn.ask(“Quais são os 10 principais clientes por vendas?”) – que é um dos principais endpoints da API que permite a geração de consultas SQL a serem executadas em o banco de dados.

Cíber segurança

O comportamento mencionado acima, juntamente com a geração dinâmica do código Plotly, cria uma falha de segurança que permite que um agente de ameaça envie um immediate especialmente criado incorporando um comando a ser executado no sistema subjacente.

“A biblioteca Vanna usa uma função de immediate para apresentar ao usuário resultados visualizados. É possível alterar o immediate usando injeção de immediate e executar código Python arbitrário em vez do código de visualização pretendido”, disse JFrog.

“Especificamente, permitir entrada externa no método 'ask' da biblioteca com 'visualize' definido como True (comportamento padrão) leva à execução remota de código.”

Após divulgação responsável, a Vanna emitiu um guia de reforço que alerta os usuários de que a integração do Plotly pode ser usada para gerar código Python arbitrário e que os usuários que expõem essa função devem fazê-lo em um ambiente de sandbox.

“Esta descoberta demonstra que os riscos do uso generalizado de GenAI/LLMs sem governança e segurança adequadas podem ter implicações drásticas para as organizações”, disse Shachar Menashe, diretor sênior de pesquisa de segurança da JFrog, em comunicado.

“Os perigos da injeção imediata ainda não são amplamente conhecidos, mas são fáceis de executar. As empresas não devem confiar no pré-aviso como um mecanismo de defesa infalível e devem empregar mecanismos mais robustos ao fazer a interface dos LLMs com recursos críticos, como bancos de dados ou sistemas dinâmicos. geração de código.”

Artigos relacionados

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button