O malware mutante ou polimórfico pode ser criado utilizando a API ChatGPT em tempo de execução para efetuar ataques avançados que podem escapar às aplicações de deteção e resposta de pontos finais (EDR).

Por Shweta Sharma
Tendo-se tornado numa sensação mundial desde o seu lançamento no final do ano passado, a popularidade do ChatGPT entre os consumidores e os profissionais de TI provocou pesadelos no mundo da cibersegurança. Dores de cabeça causadas apenas pela ideia de como pode ser utilizado para explorar as vulnerabilidades do sistema. Um dos principais problemas, como demonstraram os especialistas em cibersegurança, é a capacidade do ChatGPT e de outros grandes modelos de linguagem (LLM) gerar código polimórfico, ou mutante, para iludir os sistemas de deteção e resposta (EDR) dos terminais.
Uma série recente de ataques de prova de conceito mostra como um ficheiro executável aparentemente benigno pode ser criado de tal forma que, em cada tempo de execução, faz uma chamada para a API do ChatGPT. Em vez de simplesmente reproduzir exemplos de trechos de código já escritos, o ChatGPT pode gerar versões dinâmicas e mutantes de código malicioso em cada chamada, tornando difícil para as ferramentas de cibersegurança detetar as vulnerabilidades resultantes.
“O ChatGPT reduz a fasquia para os hackers, os agentes maliciosos que usam modelos de IA podem ser considerados Script Kiddies modernos”, diz Mackenzie Jackson, defensor dos programadores na empresa de cibersegurança GitGuardian. “O malware que o ChatGPT pode produzir está longe de ser inovador, mas à medida que os modelos melhoram, consomem mais dados de amostra e diferentes produtos chegam ao mercado, a IA pode acabar criando malware que só pode ser detetado por outros sistemas de IA para defesa. Não se sabe qual dos lados ganhará este jogo.
Houve várias provas de conceito que mostram o potencial da ferramenta para explorar as suas capacidades no desenvolvimento de malware avançado e polimórfico.
Instruções contornam filtros para criar código malicioso
O ChatGPT e outros LLM têm filtros de conteúdo que os proíbem de obedecer a comandos, ou prompts, para gerar conteúdo nocivo, como código malicioso. Mas a verdade é que os filtros de conteúdo podem ser contornados. Quase todas as explorações relatadas que podem ser potencialmente realizadas através do ChatGPT são conseguidas através do que é conhecido como “engenharia de instruções”, a prática de modificar as instruções de entrada para contornar os filtros de conteúdo da ferramenta e obter o resultado desejado. Os primeiros utilizadores descobriram, por exemplo, que podiam fazer com que o ChatGPT criasse conteúdos que não era suposto criar – desbloqueando o programa – enquadrando os pedidos em hipóteses, por exemplo, pedindo-lhe para fazer algo como se não fosse uma IA, mas uma pessoa maliciosa com intenção de causar danos.
“O ChatGPT colocou algumas restrições no sistema, tais como filtros que limitam o âmbito das respostas que o ChatGPT irá fornecer, avaliando o contexto da pergunta”, disse Andrew Josephides, diretor de Investigação de Segurança da KSOC, uma empresa de cibersegurança especializada em Kubernetes. “Se pedisse ao ChatGPT para escrever código malicioso para si, ele negaria o pedido. No entanto, se pedíssemos ao ChatGPT para escrever código que pudesse fazer a função efetiva do código malicioso que pretendemos escrever, é provável que o ChatGPT construísse esse código para nós”.
Com cada atualização, o ChatGPT torna-se mais difícil de enganar para ser malicioso, mas à medida que diferentes modelos e produtos entram no mercado, não podemos confiar nos filtros de conteúdo para impedir que os LLM sejam utilizados para fins maliciosos, diz Josephides. A capacidade de induzir o ChatGPT a utilizar coisas que ele conhece, mas que estão protegidas por filtros, é o que pode levar os utilizadores a fazê-lo gerar código malicioso eficaz. Pode ser utilizado para tornar o código polimórfico, explorando a capacidade da ferramenta para modificar e ajustar os resultados da mesma consulta se esta for executada várias vezes.
Por exemplo, um executável Python aparentemente inofensivo pode gerar uma consulta para enviar à API ChatGPT para processar uma versão diferente de código malicioso cada vez que o executável é executado. Desta forma, a ação maliciosa é executada fora da função exec(). Esta técnica pode ser utilizada para formar um malware mutante e polimórfico que é difícil de detetar pelos scanners de ameaças.
Prova de conceito existente de malware polimórfico
No início deste ano, Jeff Sims, engenheiro de segurança principal da empresa de deteção de ameaças HYAS InfoSec, publicou uma prova de conceito de um modelo de exploração deste tipo. Demonstrou a utilização de engenharia rápida e a consulta da API ChatGPT em tempo de execução para construir um payload polimórfico de keylogger, chamando-lhe BlackMamba. Essencialmente, o BlackMamba é um executável Python que consulta a API ChatGPT para construir um keylogger malicioso que sofre mutações em cada chamada em tempo de execução para o tornar polimórfico e contornar os filtros de endpoint e resposta (EDR).
“A função Python exec() é uma função incorporada que permite executar dinamicamente código Python em tempo de execução”, explica Sims. Recebe como entrada uma cadeia de caracteres que contém o código que se pretende executar e, em seguida, executa esse código. A função exec() é normalmente usada para modificar programas em tempo real, o que significa que é possível alterar o comportamento de um programa em execução executando um novo código enquanto o programa está a ser processado. No contexto do BlackMamba, “as limitações do polimorfismo são restringidas pela criatividade do engenheiro (criatividade de entrada) e pela qualidade dos dados de treinamento do modelo para produzir respostas generativas”, disse Sims.
Na prova de conceito do BlackMamba, após a recolha das teclas premidas, os dados são filtrados através de um webhook para um canal do Microsoft Teams, explicou Sims. De acordo com Sims, o BlackMamba evitou várias vezes uma aplicação EDR “líder do sector”, embora não tenha dito qual.
Outro programa de prova de conceito, criado por Eran Shimony e Omer Tsarfati, da empresa de cibersegurança CyberArk, utilizou o ChatGPT dentro do próprio malware. O malware inclui “um interpretador Python que consulta periodicamente o ChatGPT em busca de novos módulos que executem acções maliciosas”, segundo um blogue que Shimony e Tsarfati escreveram para explicar a prova de conceito. “Ao pedir ao ChatGPT uma funcionalidade específica, como injeção de código, encriptação de ficheiros ou persistência, podemos facilmente obter novo código ou modificar o código existente.”
Embora o ChattyCat não tenha sido concebido para um tipo específico de malware, ao contrário do BlackMamba, fornece um modelo para a criação de uma grande variedade de malware, incluindo ransomware e infostealers. “O nosso POC, ChattyCaty, é um projeto de código aberto que demonstra uma infraestrutura para a criação de programas polimórficos utilizando modelos GPT”, explica Tsarfati. “O polimorfismo pode ser utilizado para evitar a deteção por programas antivírus/malware. Shimony e Tsarfati também descobriram que os filtros de conteúdo eram mais fracos ou mesmo inexistentes na API ChatGPT, ao contrário da versão inicial online. “É interessante notar que, ao usar a API, o sistema ChatGPT não parece usar o seu filtro de conteúdo. Não é claro porque é que isto acontece, mas torna as coisas muito mais fáceis para nós, uma vez que a versão web tende a ficar atolada com pedidos mais complexos”, escreveram Shimony e Tsarfati no seu blogue.
Regulamentar IA para garantir segurança
Embora os governos de todo o mundo estejam a tentar regular a IA para evitar danos, a China é o único grande país a ter promulgado novas regras. Os especialistas propõem diferentes abordagens para travar o potencial nocivo da IA generativa. Neste momento, a solução para controlar os problemas da IA parece ser “adicionar mais IA”, o que não me parece realista”, afirma Jeff Pollard, analista da Forrester. “Para adicionar realmente as camadas certas de controlo a estas soluções, precisamos de uma melhor explicabilidade e observabilidade do contexto no sistema. Isto deve ser integrado na API e utilizado para fornecer detalhes significativos e oferecer capacidades de gestão que atualmente parecem não existir.”
No entanto, a regulamentação da IA generativa será difícil, uma vez que o setor tecnológico ainda se encontra numa fase inicial de compreensão do que pode fazer, afirma Chris Steffen, diretor de Investigação da empresa de análise e consultoria Enterprise Management Associate. “A razão pela qual a regulamentação é uma perspetiva assustadora é que o ChatGPT é uma daquelas coisas em que as possibilidades são virtualmente infinitas e não é algo para o qual possamos nos preparar facilmente de uma forma que cubra todas as circunstâncias possíveis que uma instância de GPT pode abranger”, disse Steffen. “Vai ser difícil, especialmente em coisas como: como regulamentar, o processo a ser usado e quem é o responsável.”