Malware e Ofuscação de Código: O Novo Front de Batalha
Explorando como técnicas de ofuscação estão mudando o cenário de malware com LLMs.
Seyedreza Mohseni, Seyedali Mohammadi, Deepa Tilwani, Yash Saxena, Gerald Ndawula, Sriram Vema, Edward Raff, Manas Gaur
― 9 min ler
Índice
- O Papel dos Modelos de Linguagem Grande (LLMs)
- O que é o MetamorphASM?
- Por que a Ofuscação de Código é Importante?
- Diferentes Técnicas de Ofuscação de Código
- 1. Inserção de Código Morto
- 2. Substituição de Registradores
- 3. Mudança de Fluxo de Controle
- O Desafio para o Software de Segurança
- Como Funciona o MetamorphASM?
- LLMs Encontam a Ofuscação de Malware
- Resultados Experimentais
- Avaliando os Resultados
- Implicações para a Cibersegurança
- Perspectivas Futuras
- Conclusão
- Fonte original
- Ligações de referência
No mundo de hoje, programas de computador estão em todo lugar, e alguns desses programas não são exatamente amigos. Malware, por exemplo, é o vilão no mundo do software. Ele é feito para entrar no seu computador, roubar seus dados ou fazer um monte de coisas ruins. Pra dificultar a vida dos programas de segurança, os desenvolvedores de malware costumam usar um truque chamado Ofuscação de Código.
Ofuscação de código é como um truque de mágica. Assim como um mágico faz as coisas parecerem diferentes e confusas pra manter o público adivinhando, a ofuscação de código faz o código original de um programa parecer diferente pra confundir o software de segurança. Assim, mesmo que alguém desconfie que um programa é malware, fica muito mais difícil provar isso.
LLMs)
O Papel dos Modelos de Linguagem Grande (Mas agora, temos algo novo surgindo: Modelos de Linguagem Grande, ou LLMs pra encurtar. Esses são sistemas de IA avançados treinados em uma quantidade imensa de texto e código. Eles têm o potencial de criar, mudar e até ofuscar código, quase como um elfo legal numa oficina de programação.
Imagina um cenário onde, em vez de um desenvolvedor de malware sentado sozinho, quebrando a cabeça com um problema de ofuscação, ele pudesse simplesmente pedir ajuda a um LLM. O LLM pode rapidamente produzir novas versões ofuscadas do código, facilitando a vida dos autores de malware pra criar malware que é difícil de detectar.
O que é o MetamorphASM?
Isso nos leva a um projeto chamado MetamorphASM. Esse projeto é basicamente uma estrutura feita pra testar quão bem os LLMs conseguem fazer ofuscação de código. Pense nisso como um grande parque de diversões onde IA encontra trapaça cibernética!
O projeto MetamorphASM inclui um conjunto de dados conhecido como MetamorphASM Dataset (MAD). Esse conjunto é composto por 328.200 amostras de código de montagem ofuscado, que visa analisar quão efetivos os LLMs conseguem criar e entender estruturas de código complicadas e confusas.
Por que a Ofuscação de Código é Importante?
Você pode estar se perguntando por que os autores de malware se dão ao trabalho de ofuscação. A resposta se resume a um jogo de esconde-esconde. O software de segurança geralmente depende de identificar assinaturas de malware conhecidas pra pegar softwares ruins. Se o código do malware parece diferente toda vez que é executado, fica mais difícil pros programas de segurança reconhecê-lo. Basicamente, uma boa e velha trapaça mantém o malware seguro de olhares curiosos.
Diferentes Técnicas de Ofuscação de Código
Existem várias técnicas de ofuscação de código. Vamos dar uma olhada em algumas delas, e sim, elas envolvem um pouco de mágica de programação:
1. Inserção de Código Morto
Imagine jogar um monte de falsas pistas em um romance de mistério. A inserção de código morto é exatamente isso. Consiste em adicionar código extra que não faz nada útil pro programa. O código extra pode ser instruções aleatórias que não têm propósito real, tornando o programa original mais difícil de analisar. Então, quando o software de segurança tenta entender o que o código está fazendo, acaba se confundindo com essa bagunça não funcional.
2. Substituição de Registradores
A próxima é a substituição de registradores. No mundo da programação, registradores são como caixas de ferramentas. Se você troca ferramentas enquanto tenta consertar algo, pode ser difícil seguir o que está fazendo. Da mesma forma, na substituição de registradores, o malware troca os nomes dos registradores por outros nomes. Assim, se o código original usa EAX (o poderoso construtor), pode mudar pra EBX (o assistente confiável). A função continua a mesma, mas a aparência muda, dificultando para o software de segurança identificar o problema.
3. Mudança de Fluxo de Controle
Por fim, temos a mudança de fluxo de controle. Essa técnica rearranja a ordem das instruções em um programa, mantendo sua funcionalidade intacta. Imagine ler uma receita que fica mudando a ordem dos passos. Um momento você está misturando ingredientes, e no próximo você está assando o bolo! Isso dificulta a compreensão dos sistemas de segurança sobre o que o malware está aprontando, já que o fluxo lógico de operações se torna imprevisível e caótico.
O Desafio para o Software de Segurança
O software de segurança, ou programas antivírus, trabalha incansavelmente pra manter nossos dispositivos seguros. Porém, conforme os autores de malware se tornam mais criativos com a ofuscação, essa tarefa fica cada vez mais difícil. Quanto mais complexas e variadas as técnicas de ofuscação, mais desafiador se torna pros programas de segurança detectá-las.
É aí que o projeto MetamorphASM entra em cena. Ele visa estudar quão bem os LLMs podem lidar com a ofuscação. Se os LLMs conseguirem aprender a gerar código ofuscado, então eles também podem ser uma ferramenta pros pesquisadores de segurança combaterem malware.
Como Funciona o MetamorphASM?
O primeiro passo no projeto MetamorphASM envolveu coletar um grande conjunto de dados de código de montagem. Esse código foi extraído de vários programas de software, especificamente focando em aqueles que rodam em sistemas Windows. Assim que o conjunto de dados foi coletado, passou por um processo de limpeza pra remover partes desnecessárias e manter apenas trechos valiosos de código.
Depois, o código de montagem foi ofuscado usando as três técnicas mencionadas acima: inserção de código morto, substituição de registradores e mudança de fluxo de controle. Esses trechos transformados foram então salvos de forma estruturada pra análise posterior.
LLMs Encontam a Ofuscação de Malware
A próxima etapa do projeto MetamorphASM envolveu testar como diferentes LLMs se saíam na geração de código ofuscado. Vários modelos foram testados, alguns sendo de código aberto e outros proprietários. O objetivo era ver quais modelos eram mais adequados pra tarefa em questão.
Os pesquisadores criaram benchmarks pra avaliar os LLMs, considerando tanto métricas automáticas quanto revisões manuais. Eles mediram quão bem os LLMs conseguiam gerar código ofuscado e verificaram quão semelhante esse código era à versão original. Os resultados mostraram que alguns LLMs, como o GPT-4o-mini, se destacaram como eficazes na criação de código de montagem ofuscado.
Resultados Experimentais
Curiosamente, ao medir o desempenho desses modelos, foi descoberto que nem todos foram criados iguais. Alguns LLMs se destacaram em certas técnicas de ofuscação enquanto tiveram dificuldades com outras. Por exemplo, enquanto um modelo era excelente na inserção de código morto, pode ter falhado na substituição de registradores.
Os pesquisadores destacaram que a eficácia desses modelos variava significativamente com base na técnica específica empregada. Isso significava que, enquanto alguns modelos poderiam ser poderosos generalistas, eles talvez não fossem sempre os melhores ofuscadores pra cada cenário.
Avaliando os Resultados
Pra avaliar a qualidade da ofuscação realizada pelos LLMs, os pesquisadores adotaram dois métodos principais: Entropia Delta e similaridade cosseno. A Entropia Delta mede quanto a complexidade do código original mudou, enquanto a similaridade cosseno avalia quão próximo o código gerado está do original.
Os achados indicaram que manter um certo nível de Entropia Delta e similaridade cosseno é essencial. Se o código ficar muito complexo ou muito similar, isso pode fazer com que ele perca sua funcionalidade ou não seja ofuscado o suficiente pra enganar o software de segurança.
Implicações para a Cibersegurança
Com o conhecimento adquirido pelo projeto MetamorphASM, os pesquisadores de segurança podem entender melhor como os LLMs podem ser usados no futuro tanto pro bem quanto pro mal. Por um lado, os LLMs podem ajudar a desenvolver técnicas avançadas de ofuscação, o que significa que os autores de malware poderiam criar ameaças mais sofisticadas. Por outro lado, os pesquisadores de segurança podem usar a mesma tecnologia pra encontrar maneiras eficazes de combater essas ameaças.
O objetivo final dessa pesquisa é construir um ambiente digital mais seguro. Compreendendo as capacidades dos LLMs, os especialistas podem bolar métodos de detecção e contramedidas melhores pra lidar com as trapaças de ofuscação empregadas por malware.
Perspectivas Futuras
À medida que essa pesquisa continua a se desenrolar, o futuro parece promissor tanto para desenvolvedores de malware quanto para especialistas em cibersegurança. A natureza dupla dos LLMs significa que, enquanto esses modelos de IA podem levar a malwares estranhos e difíceis de detectar, eles também podem empoderar as equipes de segurança a combaterem esses mesmos desafios de forma eficaz.
Conforme os pesquisadores se aprofundam nessa terra de LLMs e ofuscação, quem sabe quais outros truques legais vão surgir do chapéu da programação a seguir? Talvez um dia possamos até treinar IA pra se tornar um detetive expert, encontrando aqueles ladrões de malware que se escondem nas sombras, enquanto eles pensam que estão fazendo o truque de mágica definitivo.
Conclusão
Na batalha contínua entre malware e cibersegurança, a ofuscação de código serve como uma tática astuta pra manter o malware escondido. A introdução dos LLMs adiciona uma nova dimensão a essa luta, oferecendo tanto ameaças quanto ferramentas para os especialistas de segurança. Através de projetos como o MetamorphASM, os pesquisadores estão abrindo caminho pra um melhor entendimento dessas dinâmicas, buscando estar um passo à frente no jogo digital do gato e do rato. Conforme o mundo se apoia mais na tecnologia, essa batalha provavelmente irá evoluir, levando a resultados empolgantes, e talvez engraçados, na sempre mutável paisagem da cibersegurança.
Fonte original
Título: Can LLMs Obfuscate Code? A Systematic Analysis of Large Language Models into Assembly Code Obfuscation
Resumo: Malware authors often employ code obfuscations to make their malware harder to detect. Existing tools for generating obfuscated code often require access to the original source code (e.g., C++ or Java), and adding new obfuscations is a non-trivial, labor-intensive process. In this study, we ask the following question: Can Large Language Models (LLMs) potentially generate a new obfuscated assembly code? If so, this poses a risk to anti-virus engines and potentially increases the flexibility of attackers to create new obfuscation patterns. We answer this in the affirmative by developing the MetamorphASM benchmark comprising MetamorphASM Dataset (MAD) along with three code obfuscation techniques: dead code, register substitution, and control flow change. The MetamorphASM systematically evaluates the ability of LLMs to generate and analyze obfuscated code using MAD, which contains 328,200 obfuscated assembly code samples. We release this dataset and analyze the success rate of various LLMs (e.g., GPT-3.5/4, GPT-4o-mini, Starcoder, CodeGemma, CodeLlama, CodeT5, and LLaMA 3.1) in generating obfuscated assembly code. The evaluation was performed using established information-theoretic metrics and manual human review to ensure correctness and provide the foundation for researchers to study and develop remediations to this risk. The source code can be found at the following GitHub link: https://github.com/mohammadi-ali/MetamorphASM.
Autores: Seyedreza Mohseni, Seyedali Mohammadi, Deepa Tilwani, Yash Saxena, Gerald Ndawula, Sriram Vema, Edward Raff, Manas Gaur
Última atualização: 2024-12-24 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2412.16135
Fonte PDF: https://arxiv.org/pdf/2412.16135
Licença: https://creativecommons.org/licenses/by/4.0/
Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.
Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.