Drama de Ollama como falha crítica ‘fácil de explorar’ encontrada em servidor de IA de código aberto
Uma vulnerabilidade agora corrigida no Ollama – um popular projeto de código aberto para execução de LLMs – pode levar à execução remota de código, de acordo com descobridores de falhas que alertaram que mais de 1.000 instâncias vulneráveis permanecem expostas à Internet.
A Wiz Research divulgou a falha, rastreada como CVE-2024-37032 e apelidado de Probllama, em 5 de maio e seus mantenedores corrigiram o problema em versão 0.1.34 que foi lançado via GitHub um dia depois.
Ollama é útil para realizar inferências com redes neurais compatíveis – como a família Llama do Meta, daí o nome; O clã Phi da Microsoft; e modelos da Mistral – e pode ser usado na linha de comando ou por meio de uma API REST. Tem centenas de milhares de pulls mensais DockerHub.
Em um relatório publicado hoje, Sagi Tzadik, da equipe de caça a bugs do Wiz, disse que a vulnerabilidade se deve à validação insuficiente no lado do servidor da API REST fornecida pelo Ollama. Um invasor pode explorar a falha enviando uma solicitação HTTP especialmente criada para o servidor API Ollama – e nas instalações do Docker, pelo menos, o servidor API é exposto publicamente.
O servidor Ollama fornece vários pontos de extremidade de API que desempenham funções essenciais. Isso inclui o endpoint da API /api/pull
que permite aos usuários baixar modelos do registro Ollama, bem como de registros privados. Como descobriram os pesquisadores, o processo para acionar o download de um modelo era explorável, permitindo que criminosos comprometessem potencialmente o ambiente que hospeda um servidor Ollama vulnerável.
“O que descobrimos é que ao extrair um modelo de um registro privado (consultando o http://[victim]:11434/api/pull API endpoint), é possível fornecer um arquivo de manifesto malicioso que contém uma carga útil de passagem de caminho no campo de resumo,” Tzadik explicado.
Um invasor pode então usar essa carga para corromper arquivos no sistema, obter leitura arbitrária de arquivos e, por fim, execução remota de código (RCE) para sequestrar esse sistema.
“Esse problema é extremamente grave nas instalações do Docker, pois o servidor é executado com privilégios de root e escuta em 0.0.0.0 por padrão – o que permite a exploração remota desta vulnerabilidade”, enfatizou Tzadik.
E apesar de uma versão corrigida do projeto estar disponível há mais de um mês, os filhos do Wiz descobriram que, em 10 de junho, havia mais de 1.000 instâncias vulneráveis do servidor Ollama ainda expostas à Internet. Diante disso, há algumas coisas que qualquer pessoa que usa o Ollama deve fazer para proteger seus aplicativos de IA.
Dos RAGs às riquezas: um guia prático para tornar seu chatbot de IA local mais inteligente
Primeiro, o que nem é preciso dizer, atualize as instâncias para a versão 0.1.34 ou mais recente. Além disso, como o Ollama não oferece suporte inerente à autenticação, não exponha as instalações à Internet, a menos que use algum tipo de autenticação, como um proxy reverso. Melhor ainda, não permita que a Internet chegue ao servidor, coloque-o atrás de firewalls e permita apenas que aplicativos internos autorizados e seus usuários o acessem.
“A questão crítica não são apenas as vulnerabilidades em si, mas a inerente falta de suporte de autenticação nessas novas ferramentas”, observou Tzadik, referindo-se a RCEs anteriores em outras ferramentas usadas para implantar LLMs, incluindo TorchServe e Ray em qualquer escala.
Além disso, acrescentou ele, mesmo essas ferramentas são novas e muitas vezes escritas em linguagens de programação modernas que priorizam a segurança, “vulnerabilidades clássicas como travessia de caminho continuam sendo um problema.” ®