![4 etapas para superar um platô de DevOps](https://optimuscloud.com.br/wp-content/uploads/2024/04/1712285045_4-etapas-para-superar-um-plato-de-DevOps-150x150.jpg)
4 etapas para superar um platô de DevOps
4 de abril de 2024![Rust 1.77.1, uma versão de patch para corrigir um problema no Windows](https://optimuscloud.com.br/wp-content/uploads/2024/04/1712293205_Rust-1771-uma-versao-de-patch-para-corrigir-um-problema-150x150.jpg)
Rust 1.77.1, uma versão de patch para corrigir um problema no Windows
5 de abril de 2024A crescente inovação e adoção de IA generativa que decolou quase imediatamente após a OpenAI lançar seu chatbot ChatGPT foi seguida de perto por preocupações sobre a segurança em torno da tecnologia emergente.
As preocupações vão desde o que os grandes modelos de linguagem (LLMs) podem fazer até como podem ser manipulados e abusados. Existe o risco de vazamento de dados corporativos ou pessoais confidenciais de sistemas generativos de IA, grupos de ameaças que usam a tecnologia para criar e-mails de phishing mais convincentes, modelos de jailbreak para contornar regras estabelecidas e ataques de injeção imediata, onde um malfeitor usa informações maliciosas para manipular LLMs para executar seu ataque.
Sete meses atrás, Bar Lanyado, na época pesquisador de segurança da Vulcan Cyber, escreveu sobre outra vulnerabilidade que poderia representar uma ameaça aos desenvolvedores se explorada: alucinações de pacotes de IA.
ChatGPT, Gemini do Google e chatbots semelhantes podem responder a solicitações com referências, URLs e outras informações que não são precisas ou verdadeiras – também chamadas de alucinações. É a mesma história com bibliotecas de código — às vezes o pacote retornado na resposta não é real.
E é aí que reside o perigo, escreveu Lanyado no seu relatório de junho de 2023. Ele descobriu que um invasor poderia fazer perguntas que os desenvolvedores provavelmente fariam ao ChatGPT rodando no GPT-3.5 Turbo LLM da OpenAI e que o chatbot retornaria uma lista de pacotes de software – alguns dos quais não existiam – em repositórios como o GitHub. Para quase 30% de suas perguntas, os modelos recomendaram pelo menos um pacote alucinado que os atores da ameaça poderiam usar em ataques.
“Quando o invasor encontra uma recomendação para um pacote não publicado, ele pode publicar seu próprio pacote malicioso em seu lugar”, escreveu ele na época. “Na próxima vez que um usuário fizer uma pergunta semelhante, ele poderá receber uma recomendação do ChatGPT para usar o pacote malicioso agora existente.”
Uma nova maneira de espalhar pacotes maliciosos
Essa técnica daria aos malfeitores outro método – junto com aqueles como typosquatting, confusão de dependências e um pacote de trojan – para espalhar pacotes maliciosos. Esses métodos estabelecidos são conhecidos e detectáveis, mas à medida que mais desenvolvedores passam da pesquisa on-line para a consulta ao ChatGPT ao procurar bibliotecas de código, a ameaça de alucinações de IA aumenta.
“Se esse ataque for bem-sucedido, um desenvolvedor poderá seguir as instruções do modelo, baixar e executar um pacote em seu computador”, disse Lanyado, agora pesquisador de segurança da Lasso Security, ao The New Stack. “Neste ponto, o invasor pode ter uma posição segura na estação do desenvolvedor. É muito difícil detectar neste estágio, pois se trata de ferramentas de pré-implantação e de segurança de CI/CD. Na pior das hipóteses, o pacote malicioso chegará aos servidores de produção e o invasor também terá controle sobre eles.”
Lanyado divulgou na semana passada um relatório de acompanhamento sobre alucinações de pacotes de IA para ver se os fornecedores responderam ao que ele encontrou no ano passado, se a mesma alucinação de pacote aparece em diferentes LLMs e se ele poderia simular um ataque na natureza.
Mais modelos, mais idiomas
Em seu último estudo, ele ampliou seu trabalho. No primeiro relatório, ele usou a técnica no GPT-3.5 Turbo e fez 457 perguntas do tipo “como fazer” sobre 40 assuntos em duas linguagens de programação, Node.js e Python. Desta vez, ele usou várias vezes mais perguntas sobre 100 assuntos em cinco linguagens – Python, Node.js, Go, .NET e Ruby – e perguntou a quatro modelos por meio de suas APIs, GPT-3.5 Turbo da OpenAI e GPT-4, do Google. Gemini Pro (anteriormente Bard) e Cohere’s Coral. Lanyado também utilizou o framework LangChain para suas interações com os modelos, mantendo o prompt padrão que diz ao modelo para dizer que se não souber a resposta, ele esperava que tornaria mais difícil para os modelos oferecerem alucinações.
GPT-3.5 Turbo e GPT-4 tiveram os melhores resultados, com 22,2% e 24,2%, respectivamente, dos resultados sendo alucinações. Com o Cohere, o número foi de 29,1% e 64,5% para o Gemini Pro.
Em relação às linguagens, houve muitas alucinações com Go e .NET, embora nem todas pudessem ser exploradas por cibercriminosos.
“Nem todos os riscos nascem iguais”, disse Lanyado. “O fato de algumas linguagens serem menos propensas a esse tipo de ataque – ou pelo menos a opção de explorá-lo – como Go é significativo. O risco é diferente para desenvolvedores que usam diferentes modelos e assistentes de código, mas também diferentes linguagens de programação.”
Também foram encontradas milhares de alucinações de pacotes de IA em vários modelos, com 2.253 encontradas no GPT-3.5 Turbo e Gemini Pro, 1.449 entre GPT-4 e Gemini Pro e 1.400 entre Cohere e Gemini Pro. Ele observou que nenhum modelo ficou imune a esse crossover, acrescentando que “o fato de os mesmos pacotes alucinados retornarem em vários modelos aumenta a probabilidade de um desenvolvedor utilizá-los. Podemos assumir que alguns pacotes correm maior risco do que outros.”
Tentando na natureza
Os testes também revelaram um pacote alucinado chamado “huggingface-cli”, que Lanyado usou para fazer upload de um pacote vazio com o mesmo nome. Ele também carregou um pacote fictício chamado “blabladsa123” para determinar quantos downloads eram scanners. Ao longo de três meses, o pacote huggingface-cli falso e vazio foi carregado mais de 15 mil vezes, “uma indicação muito, muito forte de que este é um problema real que pode e provavelmente já afetou inúmeras organizações”, disse Lanyado.
Ainda mais, uma pesquisa no GitHub descobriu que o pacote foi usado em repositórios de outras empresas e que várias grandes organizações usam ou recomendam o pacote em seus repositórios.
“Por exemplo, instruções para instalação do pacote podem ser encontradas no README de um repositório dedicado à pesquisa conduzida pelo Alibaba”, escreveu ele no relatório.
Atores de ameaças estão de olho em modelos de IA
Uma preocupação é que os agentes de ameaças estão demonstrando um forte interesse em atingir modelos generativos de IA e usando várias táticas e métodos para atacar por meio de modelos de código aberto, envenenamento de fontes de dados e chatbots. Para um hacker experiente, usar alucinações de pacotes de IA é um ataque fácil de executar.
“Experimentar esses modelos manualmente por meio de sua interface – mesmo em sua versão gratuita – pode fornecer uma forte intuição sobre pacotes alucinados que ocorrem com frequência”, disse Lanyado. “Automatizar esse processo e usar APIs é barato e fácil, para que invasores avançados possam obter uma visão ampla da superfície de ataque. Depois de detectar os casos de uso específicos e os pacotes alucinados que o invasor deseja explorar, carregá-los nos repositórios é uma questão de minutos.”
Ele aconselhou os desenvolvedores a terem cuidado ao confiar em LLMs e verificar a precisão de uma resposta se ela não parecer correta, principalmente se se tratar de pacotes de software. Além disso, tenha cuidado ao usar software de código aberto. Se um desenvolvedor vir um pacote desconhecido, reúna informações sobre ele em seu repositório, avalie o tamanho de sua comunidade, verifique seu registro de manutenção e vulnerabilidades conhecidas e o envolvimento que ele obtém.
Além disso, verifique a data de publicação, esteja ciente de qualquer coisa suspeita e execute uma verificação de segurança abrangente antes de integrar o pacote em um ambiente de produção.
A postagem Os riscos de segurança das alucinações de pacotes de IA generativa apareceu pela primeira vez em The New Stack.