Quando a OpenAI lançou na semana passada sua ferramenta ChatGPT , permitindo que os usuários interajam com um chatbot de inteligência artificial, o pesquisador de segurança de computadores Brendan Dolan-Gavitt se perguntou se poderia instruí-lo a escrever códigos maliciosos. Então, ele pediu ao modelo para resolver um desafio simples de capturar a bandeira.
O resultado foi quase notável. O ChatGPT reconheceu corretamente que o código continha uma vulnerabilidade de estouro de buffer e escreveu um trecho de código explorando a falha. Se não fosse por um pequeno erro — o número de caracteres na entrada — o modelo teria resolvido o problema perfeitamente.
O desafio que Dolan-Gavitt apresentou ao ChatGPT foi básico – um que ele apresentaria aos alunos no início de um curso de análise de vulnerabilidade – e o fato de ter falhado não inspira confiança na capacidade de grandes modelos de linguagem, que fornecem a base para bots de IA responderem a perguntas humanas, para escrever código de qualidade. Mas depois de identificar o erro, Dolan-Gavitt solicitou ao modelo que reexaminasse a resposta e, desta vez, o ChatGPT acertou.
Por enquanto, o ChatGPT está longe de ser perfeito para escrever código e ilustra muitas das deficiências de depender de ferramentas de IA para escrever código. Mas, à medida que esses modelos se tornam mais sofisticados , é provável que eles desempenhem um papel cada vez mais importante na criação de códigos maliciosos.
“O código é uma tecnologia de uso duplo”, disse Dolan-Gavitt, professor assistente do Departamento de Ciência da Computação e Engenharia da Universidade de Nova York. “Quase tudo o que um malware faz é algo que um software legítimo também faria.”
“Se não for o ChatGPT, um modelo nos próximos anos será capaz de escrever código para vulnerabilidades de software do mundo real”, acrescentou.
Desde que o OpenAI o lançou, o ChatGPT surpreendeu os usuários, escrevendo redações curtas para a faculdade , cartas de apresentação , redações de admissão e uma cena estranhamente aceitável de Seinfeld na qual Jerry precisa aprender o algoritmo de classificação de bolhas .
O ChatGPT não representa uma revolução no aprendizado de máquina como tal, mas em como os usuários interagem com ele. As versões anteriores dos modelos de linguagem grandes do OpenAI exigem que os usuários solicitem o modelo com uma entrada. O ChatGPT, que conta com uma versão ajustada do GPT-3.5, o principal modelo de linguagem grande da OpenAI, torna muito mais fácil interagir com esse modelo, tornando possível manter uma conversa com uma IA altamente treinada.
Grandes modelos de linguagem, como o OpenAI, dependem de enormes conjuntos de dados extraídos da Internet e de livros – o GPT-3, por exemplo, treinou um conjunto de quase 500 bilhões dos chamados tokens – e, em seguida, usa ferramentas estatísticas para prever as maneiras mais prováveis de completar consultas ou responder a perguntas. Esses dados incluem uma grande quantidade de código de computador – o que a OpenAI descreve como “dezenas de milhões de repositórios públicos” – de sites como fóruns StackExchange e GitHub, dando ao modelo a capacidade de imitar as habilidades de programadores altamente treinados.
Do ponto de vista da segurança cibernética, os riscos apresentados pelos LLMs são uma faca de dois gumes. Por um lado, esses modelos podem produzir códigos maliciosos; por outro, eles são propensos a erros e correm o risco de inserir códigos vulneráveis. A OpenAI parece estar ciente de ambos os lados desse risco.
Em um artigo examinando o modelo de escrita de código da empresa conhecido como Codex, que alimenta o assistente Co-Pilot do GitHub, os pesquisadores da OpenAI observaram que o modelo “pode produzir código vulnerável ou desalinhado” e que, embora “modelos futuros de geração de código possam ser treinados produzir código mais seguro do que o desenvolvedor médio”, chegar lá “está longe de ser certo”.
Os pesquisadores acrescentaram que, embora o Codex, que é descendente do mesmo modelo do ChatGPT, possa ser “utilizado indevidamente para ajudar o cibercrime”, os recursos atuais do modelo “não reduzem significativamente a barreira de entrada para o desenvolvimento de malware”. Essa compensação pode mudar, no entanto, à medida que os modelos avançam e, em um tweet no fim de semana, o CEO da OpenAI, Sam Altman, citou a segurança cibernética como um dos principais riscos de uma “IA perigosamente forte”.
A OpenAI não respondeu a perguntas sobre como está lidando com as preocupações de segurança cibernética com o ChatGPT, nem o que Altman tinha em mente em relação aos futuros riscos de segurança cibernética apresentados pela IA.
Desde o lançamento do ChatGPT, pesquisadores e programadores têm postado exemplos do modelo que produz código de qualidade , mas após uma inspeção mais detalhada – como no exemplo do estouro de buffer de Dolan-Gavitt – o código do ChatGPT às vezes contém erros.
“Eu acho que é realmente bom em criar coisas que são 95% corretas”, disse Stephen Tong, pesquisador de segurança e fundador da empresa de segurança cibernética Zellic. “Você sabe como existem pessoas que não sabem codificar, mas apenas copiam e colam do Stack Overflow e meio que funciona? É mais ou menos assim.”
Códigos ruins escritos por assistentes de IA representam um dos maiores riscos da mudança para LLMs no desenvolvimento de software. A base de código na qual os assistentes de IA são treinados contém alguns (muitas vezes difíceis de determinar) números de erros e, ao serem treinados nesse corpo de trabalho, os LLMs correm o risco de replicar esses erros e inseri-los no código amplamente implantado.
Em um estudo sobre o desempenho de segurança do Copilot – que é potencializado pela tecnologia OpenAI – o modelo teve um desempenho péssimo. Nesse estudo, os pesquisadores solicitaram ao Copilot 89 cenários relevantes para a segurança, produzindo quase 1.700 programas. Cerca de 40% deles eram vulneráveis.
Esse código pode estar a par do que um humano produziria. “O código é pior do que um estagiário de engenharia de software do primeiro ano? Provavelmente não”, disse Hammond Pearce, professor de ciência da computação da NYU que foi coautor do estudo com Dolan-Gavitt e outros.
Isso significa que os programadores devem ser céticos em relação ao código produzido por um assistente de IA, cujos erros podem ser facilmente explorados por invasores.
Menos de uma semana após o lançamento do ChatGPT, a ferramenta tornou-se imediatamente popular entre os programadores, mas está produzindo um código tão sujeito a erros que foi banido do Stack Overflow, um fórum de perguntas e respostas para programadores. o ChatGPT produz tenham uma alta taxa de incorretas, elas geralmente boas parecem “Embora as respostas que e as respostas são muito fáceis de produzir”, escreveram os moderadores – e as ênfases aqui são deles – ao anunciar a decisão.
Então, os LLMs poderiam ser usados para escrever códigos maliciosos que exploram vulnerabilidades já existentes?
Devido à sua dependência de dados existentes para responder a solicitações, os pesquisadores de segurança cibernética estão céticos por enquanto de que grandes modelos de linguagem serão usados para escrever códigos maliciosos inovadores. “Gravar exploits, especialmente exploits modernos, requer a invenção e o uso de novas técnicas”, disse Matt Suiche, diretor de memória, resposta a incidentes e P&D da Magnet Forensics. “Isso não é algo que a IA possa fazer ainda.”
Ciente do risco de que o ChatGPT possa ser usado para escrever exploits, a OpenAI implementou algumas proteções contra o uso da ferramenta para escrever malware. Solicitado a escrever um exploit de execução remota de código de clique zero para o iPhone da Apple – código que renderia grandes somas no mercado negro e poderia ser usado para realizar vigilância invasiva – ChatGPT informa ao usuário que “criar ou usar exploits é ilegal e pode causar danos a indivíduos e sistemas, então não é algo que eu possa ajudar.”
Mas essas restrições são imperfeitas. As funções de um software malicioso – fazer conexões de rede ou criptografar o conteúdo de um arquivo, por exemplo – são aquelas que o software legítimo também faz. A diferenciação entre software legítimo e malicioso geralmente é uma questão de intenção e isso torna os LLMs vulneráveis ao uso indevido.
Benjamin Tan, um cientista da computação da Universidade de Calgary, disse que foi capaz de burlar algumas das salvaguardas do ChatGPT pedindo ao modelo que produzisse um software peça por peça que, quando montado, poderia ser utilizado de forma maliciosa. “Ele não sabe que, quando você coloca tudo junto, está fazendo algo que não deveria estar fazendo”, disse Tan.
Mesmo que os LLMs não possam escrever seus próprios exploits por enquanto, eles podem ser usados para ajustar o malware existente e criar variantes. A criação de variantes pode ser usada para contornar a análise de assinatura ou para imitar o estilo de escrita de código de outro invasor, tornando mais difícil atribuir ataques, disse Pearce.
À medida que grandes modelos de linguagem proliferam, é razoável pensar que eles desempenharão um papel no desenvolvimento de exploits. Por enquanto, provavelmente é mais barato ou mais fácil para os invasores escrever seus próprios exploits, mas à medida que as defesas melhoram e o custo dos LLMs diminui, há boas razões para acreditar que ferramentas como o ChatGPT desempenharão um papel fundamental no desenvolvimento do exploit.
Parte da pesquisa de Tan envolve o ajuste de modelos publicamente disponíveis e “se você tivesse um conjunto suficiente de amostras, poderia treinar essas coisas para cuspir malware”, diz ele. “Depende apenas de encontrar os dados de treinamento.”
11 thoughts on “ChatGPT promete usar IA para escrever malware”
Comments are closed.