Simple Science

Ciência de ponta explicada de forma simples

# Informática# Engenharia de software

Melhorando a Segurança de Contratos Inteligentes com Modelos de Linguagem

Uma nova abordagem melhora a auditoria de contratos inteligentes e a detecção de vulnerabilidades.

― 8 min ler


Avançando a Auditoria deAvançando a Auditoria deContratos Inteligentesinteligentes.vulnerabilidades em contratosUm método pra melhorar a detecção de
Índice

Contratos Inteligentes são tipo de acordos digitais que rolam em blockchains, como o Ethereum. Eles se tornaram super importantes pra vários serviços online, principalmente no financeiro. Só que, conforme mais gente usa contratos inteligentes, a chance de erros e ataques aumenta. Hackers sempre dão um jeito de explorar esses erros, resultando em perdas financeiras gigantes. Por exemplo, milhões de dólares já foram perdidos por causa de Vulnerabilidades nesses contratos.

Entender essas vulnerabilidades é crucial pra deixar os contratos inteligentes mais seguros. Pesquisadores estão explorando novos métodos pra detectar essas fraquezas. Uma abordagem promissora é usar grandes modelos de linguagem (LLMs), que são ferramentas poderosas que conseguem analisar e entender código. Embora esses modelos tenham mostrado potencial em encontrar erros, eles frequentemente têm dificuldades com precisão e confiabilidade.

Esse artigo fala sobre um novo método pra melhorar a auditoria de contratos inteligentes, combinando técnicas tradicionais de ajuste fino com LLMs. O objetivo é criar um sistema que não só detecte vulnerabilidades, mas que também explique por que elas acontecem, facilitando pra os desenvolvedores consertarem.

O Desafio das Vulnerabilidades em Contratos Inteligentes

Contratos inteligentes funcionam com base em código, e se tiver erros no código, isso pode causar problemas sérios. Esses problemas podem surgir de falhas lógicas, que são complicadas de identificar usando ferramentas de análise padrão. Muitas dessas vulnerabilidades já foram exploradas, resultando em perdas financeiras consideráveis pros usuários.

Um relatório de uma plataforma de rastreamento de vulnerabilidades indica que hackers já roubaram bilhões de contratos inteligentes comprometidos. Essa tendência alarmante fez com que pesquisadores e desenvolvedores buscassem soluções efetivas pra identificar e consertar essas vulnerabilidades.

Métodos tradicionais de encontrar vulnerabilidades geralmente dependem de regras pré-definidas. Essas regras podem rapidamente ficar ultrapassadas à medida que os hackers encontram novas maneiras de explorar fraquezas em contratos inteligentes. A necessidade de soluções mais inovadoras e adaptáveis é clara.

O Papel dos Modelos de Linguagem

Grandes modelos de linguagem representam uma nova fronteira na detecção de vulnerabilidades em contratos inteligentes. Esses modelos usam uma quantidade imensa de dados pra aprender padrões e relações no código, permitindo que eles analisem contratos inteligentes de maneira mais eficaz. No entanto, mesmo os modelos mais avançados, como o GPT-4, têm limitações, alcançando apenas cerca de 30% de precisão na identificação de vulnerabilidades e fornecendo explicações.

Uma razão pra esse desempenho baixo é que esses modelos não são especificamente ajustados pro código de contratos inteligentes. Eles são treinados com uma variedade de dados textuais, mas esse treinamento não foca especificamente nas características únicas das linguagens de programação de contratos inteligentes, como Solidity.

Pra resolver isso, pesquisadores começaram a adaptar esses modelos às especificidades das vulnerabilidades de contratos inteligentes. Ao ajustar modelos em conjuntos de dados ricos em exemplos relevantes, eles esperam melhorar a precisão e a confiabilidade.

Abordagem de Ajuste Fino em Duas Etapas

Esse novo método usa uma abordagem de ajuste fino em duas etapas pra aumentar o desempenho dos LLMs na auditoria de contratos inteligentes. O método consiste em dois componentes principais: Detector e Razão.

Detecção de Vulnerabilidades

O modelo Detector é responsável por identificar se um pedaço de código é vulnerável. Ele imita como um hacker humano poderia avaliar um pedaço de código usando técnicas de ajuste fino direcionadas pra essa tarefa. Aprendendo tanto com amostras vulneráveis quanto não vulneráveis, o Detector consegue fazer decisões informadas sobre a segurança de um segmento de código.

Raciocínio por Trás das Vulnerabilidades

O modelo Razão entra em ação depois que o Detector identifica uma vulnerabilidade. A função dele é fornecer explicações de por que o código é considerado vulnerável. Ele analisa o código em mais detalhes pra apontar os problemas específicos que poderiam levar à exploração.

Nesse esquema em duas etapas, o Detector primeiro rotula o código, e depois o Razão explica o raciocínio por trás daquela rotulagem. Essa abordagem permite que cada modelo se concentre na sua tarefa específica, levando a um desempenho geral melhor.

Melhorando o Raciocínio com Agentes LLM

Embora a abordagem em duas etapas seja eficaz, existem desafios pra garantir a precisão das explicações geradas pelo Razão. Pra melhorar isso, o método introduz agentes baseados em LLM chamados Avaliador e Crítico.

O Papel do Avaliador e do Crítico

O agente Avaliador avalia as várias razões fornecidas pelo Razão e seleciona a mais apropriada. Ele usa um conjunto de critérios pra avaliar as explicações, garantindo que só as mais relevantes e precisas sejam escolhidas.

O Crítico, por outro lado, revisa a seleção do Avaliador. Ele debate o raciocínio fornecido e pode pedir uma reavaliação se necessário. Esse processo colaborativo entre o Avaliador e o Crítico adiciona uma camada extra de revisão às explicações, melhorando a qualidade e a confiabilidade do resultado.

Coletando Dados de Alta Qualidade

Pra os modelos serem eficazes, eles precisam ser treinados com dados de alta qualidade. Esses dados incluem exemplos de códigos vulneráveis e não vulneráveis. Pra coletar esses dados, pesquisadores se voltaram a relatórios de auditoria respeitáveis de especialistas da indústria.

Esses relatórios detalham vulnerabilidades reais encontradas em contratos inteligentes. No entanto, muitas vezes faltam exemplos de códigos não vulneráveis, que também são essenciais pra treinar os modelos. Pra superar isso, pesquisadores desenvolveram métodos pra criar amostras negativas, ou exemplos de código seguro, pra garantir um conjunto de dados equilibrado pra o treinamento.

Avaliação do Novo Método

Uma vez que os modelos foram treinados, os pesquisadores avaliam seu desempenho em comparação com outros modelos existentes. Essa avaliação examina várias métricas, como precisão, recall e pontuações F1, pra avaliar quão bem os modelos se saem na detecção de vulnerabilidades e na oferta de explicações.

Em testes envolvendo vulnerabilidades reais de contratos inteligentes, o novo método mostrou melhorias significativas em relação a modelos tradicionais. Os resultados indicam que o método não só é eficaz na detecção de vulnerabilidades, mas também se destaca em explicar o raciocínio por trás de suas decisões.

Aplicação de Votação da Maioria

Um aspecto importante do processo de avaliação envolve o uso de votação da maioria. Essa técnica agrega as previsões de múltiplos prompts gerados durante a fase de inferência. Ao pegar o resultado mais comum de várias saídas, o sistema pode aumentar a precisão e a estabilidade em suas previsões.

No fim das contas, a votação da maioria provou melhorar o desempenho geral do Detector, aumentando métricas como a pontuação F1 e a precisão, que são críticas pra avaliar a confiabilidade das descobertas.

Limitações e Direções Futuras

Apesar das melhorias demonstradas por esse novo método, ainda existem desafios a serem abordados. O desempenho dos modelos pode variar dependendo da qualidade dos dados e das técnicas usadas pra ajuste fino. Além disso, incorporar contexto adicional, como relações de chamadas de função, nem sempre leva a uma melhora e às vezes pode confundir o modelo.

Seguindo em frente, os pesquisadores pretendem aperfeiçoar ainda mais seus métodos e explorar como tornar os modelos mais robustos. Trabalhos futuros também vão focar em melhorar a alinhamento dos modelos com o raciocínio humano, tornando-os mais intuitivos pra desenvolvedores e auditores que trabalham com contratos inteligentes.

Conclusão

Resumindo, a combinação de técnicas de ajuste fino e agentes baseados em LLM oferece uma avenida promissora pra melhorar a auditoria de contratos inteligentes. Ao desenvolver um sistema que identifica efetivamente vulnerabilidades e as explica, podemos ajudar os desenvolvedores a criar contratos inteligentes mais seguros.

Esse trabalho serve como base pra pesquisas contínuas no campo da segurança de contratos inteligentes. Ao aproveitar os pontos fortes dos modelos de linguagem enquanto endereçamos suas falhas, podemos fazer progressos significativos na proteção de ativos digitais e na manutenção da confiança em tecnologias de blockchain.

Fonte original

Título: Combining Fine-Tuning and LLM-based Agents for Intuitive Smart Contract Auditing with Justifications

Resumo: Smart contracts are decentralized applications built atop blockchains like Ethereum. Recent research has shown that large language models (LLMs) have potential in auditing smart contracts, but the state-of-the-art indicates that even GPT-4 can achieve only 30% precision (when both decision and justification are correct). This is likely because off-the-shelf LLMs were primarily pre-trained on a general text/code corpus and not fine-tuned on the specific domain of Solidity smart contract auditing. In this paper, we propose iAudit, a general framework that combines fine-tuning and LLM-based agents for intuitive smart contract auditing with justifications. Specifically, iAudit is inspired by the observation that expert human auditors first perceive what could be wrong and then perform a detailed analysis of the code to identify the cause. As such, iAudit employs a two-stage fine-tuning approach: it first tunes a Detector model to make decisions and then tunes a Reasoner model to generate causes of vulnerabilities. However, fine-tuning alone faces challenges in accurately identifying the optimal cause of a vulnerability. Therefore, we introduce two LLM-based agents, the Ranker and Critic, to iteratively select and debate the most suitable cause of vulnerability based on the output of the fine-tuned Reasoner model. To evaluate iAudit, we collected a balanced dataset with 1,734 positive and 1,810 negative samples to fine-tune iAudit. We then compared it with traditional fine-tuned models (CodeBERT, GraphCodeBERT, CodeT5, and UnixCoder) as well as prompt learning-based LLMs (GPT4, GPT-3.5, and CodeLlama-13b/34b). On a dataset of 263 real smart contract vulnerabilities, iAudit achieves an F1 score of 91.21% and an accuracy of 91.11%. The causes generated by iAudit achieved a consistency of about 38% compared to the ground truth causes.

Autores: Wei Ma, Daoyuan Wu, Yuqiang Sun, Tianwen Wang, Shangqing Liu, Jian Zhang, Yue Xue, Yang Liu

Última atualização: 2024-08-17 00:00:00

Idioma: English

Fonte URL: https://arxiv.org/abs/2403.16073

Fonte PDF: https://arxiv.org/pdf/2403.16073

Licença: https://creativecommons.org/licenses/by-nc-sa/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.

Mais de autores

Artigos semelhantes