Aplicativos de código aberto que utilizam grandes modelos de linguagem (LLMs, na sigla em inglês) têm muitas dependências — como, por exemplo, uma biblioteca de software ou um plug-in — que podem afetar a sua segurança e confiabilidade, de acordo com um novo relatório do Endor Labs.
O estudo saliente que, à medida que os aplicativos incluem cada vez mais componentes de software pré-empacotados, que aproveitam os recursos de IA generativa com base em LLMs, o perigo de vulnerabilidades quando entram em produção é muito elevado. Segundo o relatório, embora os desenvolvedores de aplicativos usem apenas uma fração desses pacotes — componentes como bibliotecas e módulos projetados para facilitar o uso e a instalação de softwares — eles têm inúmeras dependências que podem dificultar chamadas de API arriscadas.
“Os LLMs são um ótimo suporte para muitas tarefas de programação do dia a dia. No entanto, é importante que os desenvolvedores avaliem a opção pelos LLMs antes de incluí-los no código de produção”, disse Henrik Plate, pesquisador de segurança do Endor Labs e autor do relatório.
Para a elaboração do estudo, o Endor Labs usou o conjunto de dados do Census II da Linux Foundation e Harvard, as categorias de API internas da empresa e o banco de dados de vulnerabilidades, repositórios do Github de código aberto e pacotes publicados nos repositórios de pacotes npm e PyPI.
Ao rastrear pacotes recém-publicados carregados nos repositórios npm e PyPI que fizeram chamadas para a API da OpenAI, o Endor Labs encontrou, desde o lançamento da API do ChatGPT em janeiro, mais de 636 novos pacotes PyPI e npm criados para usar a API. Além disso, 276 pacotes já existentes adicionaram suporte para a API do ChatGPT.
A pesquisa também observou que este é apenas um subconjunto do número total de pacotes habilitados para o ChatGPT, já que o número de projetos privados que experimentam LLMs é ainda maior.
Quando os repositórios do Github para seus 100 principais projetos de IA foram verificados, eles apresentaram, em média, 208 dependências diretas e transitivas. Onze por cento dos projetos foram encontrados contando com mais de 500 dependências. Quinze por cento desses repositórios do Github contêm dez ou mais vulnerabilidades conhecidas.
Já o pacote distribuído pelo Hugging Face Transformers — a arquitetura na qual o ChatGPT se baseia — possui mais de 200 dependências, que incluem quatro vulnerabilidades conhecidas.
Cinquenta e cinco por cento dos aplicativos rastreados pelo Endor fazem chamadas para APIs sensíveis à segurança — interfaces de programação que se conectam a recursos críticos que, se comprometidos, podem afetar a segurança de um ativo. Esse número cresce para 95%, no entanto, quando as dependências dos pacotes de componentes de software são rastreadas. “Cada aplicativo considerável inclui dependências que chamam uma grande parte da JCL [Java Class Library], que compreende as APIs principais fornecidas pelo Java runtime, APIs sensíveis”, disse Plate.
A pesquisa revelou ainda que 71% dos pacotes Java do Census II chamam cinco ou mais categorias de APIs sensíveis à segurança quando todas as dependências são consideradas. “Os aplicativos geralmente usam apenas uma pequena parte dos componentes de código aberto que integram, e os desenvolvedores raramente entendem as dependências em cascata dos componentes”, acrescentou Plate.
Veja isso
FTC investiga OpenAI por violar regras de proteção ao consumidor
Credenciais roubadas da OpenAI estão à venda na dark web
Apenas saber quais componentes estão incluídos para produção não é mais eficaz — entender quais funções os componentes usam também é crítico, de acordo com o relatório.
O Endor Labs usou modelos LLM da OpenAI e Google Vertex AI para avaliar como eles podem ser usados para ajudar a classificar o malware. “Estávamos interessados em saber quão consistentes eram seus resultados para 3.374 casos de teste. Ao considerar uma diferença de pontuação de 0 ou 1 como concordância, descobrimos que eles concordaram em 89% dos casos”, diz o relatório.
Ambos os modelos falharam consideravelmente na classificação efetiva do malware e produziram um grande número de falsos positivos. Enquanto o OpenAI GPT 3.5 classificou com precisão 3,4% dos trechos de código, o text-bison da Vertex AI teve 7,9% de precisão.
Segundo Plate, muitas vezes, os LLMs classificam esse código como malicioso apenas porque parece ofuscado. “Com esse número de falsos positivos, o feedback dos LLMs torna-se quase inútil, o que é uma pena porque o feedback para código não ofuscado costuma ser muito bom”, acrescentou. Ele observou ainda que, embora o pré-processamento desse código possa funcionar às vezes para reduzir falsos positivos, o exemplo de ofuscação indica que os LLMs lutam com lógica de programação complexa. “Os hackers podem usar essa limitação para evitar a detecção, o que pode levar a malware não detectado, falsos negativos”, finalizou.