O que é uma Auditoria de Segurança de Contrato Inteligente?
P√°gina Inicial
Artigos
O que é uma Auditoria de Segurança de Contrato Inteligente?

O que é uma Auditoria de Segurança de Contrato Inteligente?

Intermedi√°rio
Publicado em Mar 1, 2022Atualizado em Apr 27, 2023
8m

TL;DR

A auditoria de seguran√ßa fornece uma an√°lise detalhada dos contratos inteligentes de um projeto. Elas s√£o importantes para manter a seguran√ßa dos fundos investidos atrav√©s desses contratos. Como todas as transa√ß√Ķes na blockchain s√£o finais, os fundos n√£o podem ser recuperados em caso de roubo. Normalmente, os auditores examinam o c√≥digo dos contratos inteligentes, emitem um relat√≥rio e o fornecem √† equipe do projeto para que eles trabalhem nas altera√ß√Ķes necess√°rias. Um relat√≥rio final √© ent√£o lan√ßado, detalhando quaisquer erros pendentes e o trabalho j√° feito para solu√ß√£o de problemas de desempenho ou seguran√ßa.


Introdução

As auditorias de segurança de contratos inteligentes são muito comuns no ecossistema das Finanças Descentralizadas (DeFi). Ao investir em um projeto de blockchain, sua decisão pode ser parcialmente baseada nos resultados de uma revisão de código de contrato inteligente.

Embora a maioria das pessoas entenda a import√Ęncia das auditorias para a seguran√ßa cibern√©tica, poucas se atentam aos detalhes das linhas de c√≥digo. Vamos dar uma olhada nos m√©todos, ferramentas e resultados normalmente vistos em auditorias de seguran√ßa de contratos inteligentes para que voc√™ possa tomar decis√Ķes mais informadas.


O que é uma auditoria de contrato inteligente?

Uma auditoria de seguran√ßa de contrato inteligente examina e comenta o c√≥digo de contrato inteligente de um projeto. Normalmente, esses contratos s√£o escritos na linguagem de programa√ß√£o Solidity e fornecidos via GitHub. As auditorias de seguran√ßa s√£o particularmente valiosas para projetos DeFi que lidam com transa√ß√Ķes de blockchain de milh√Ķes de d√≥lares ou com uma grande quantidade de jogadores. O processo de auditoria geralmente √© feito em quatro etapas:

1. Contratos inteligentes são fornecidos à equipe de auditoria para análise inicial.

2. A equipe de auditoria apresenta sua análise à equipe do projeto para que as medidas necessárias sejam tomadas.

3. A equipe do projeto faz altera√ß√Ķes com base nos problemas encontrados.

4. A equipe de auditoria divulga seu relat√≥rio final, considerando quaisquer novas altera√ß√Ķes ou erros pendentes.

Para muitos usuários de criptomoedas, as auditorias de contratos inteligentes são essenciais ao investir em novos projetos DeFi. O processo de auditoria tornou-se um padrão para projetos sérios que buscam boa reputação. Alguns provedores de auditoria são vistos como líderes do setor, tornando suas auditorias mais valiosas aos olhos dos investidores.


Por que precisamos de auditorias de contratos inteligentes?

Com grandes valores transacionados ou bloqueados em contratos inteligentes, eles se tornam alvos de ataques de hackers. Pequenos erros de codifica√ß√£o podem levar ao roubo de grandes quantias de dinheiro. Por exemplo, o ataque hacker da DAO na blockchain da Ethereum roubou cerca de 60 milh√Ķes de d√≥lares em ETH e provocou um hard fork da rede Ethereum.

Como as transa√ß√Ķes de blockchain s√£o irrevers√≠veis, √© essencial garantir que o c√≥digo de um projeto seja seguro. A natureza altamente segura da tecnologia Blockchain dificulta a recupera√ß√£o de fundos e a resolu√ß√£o de problemas ap√≥s o ocorrido, por isso √© melhor evitar vulnerabilidades a todo custo.


Como funcionam as auditorias de contratos inteligentes?

O processo de auditoria de um contrato inteligente costuma seguir um padrão. Embora a abordagem de cada auditor possa diferir ligeiramente, o processo geralmente é o seguinte:

1. Determinar o escopo da auditoria. O contrato inteligente e as especifica√ß√Ķes do projeto s√£o definidos de acordo com a finalidade do projeto e sua arquitetura geral. As especifica√ß√Ķes ajudam a equipe de auditoria a compreender os objetivos do projeto ao escrever e usar o c√≥digo.

2. Fornecer uma cotação inicial com base na quantidade de trabalho necessária.

3. Executar testes. A natureza exata de cada teste varia de acordo com a equipe de auditoria, suas ferramentas de análise e seus métodos. Normalmente, são realizados testes manuais e automatizados.

4. Criar um primeiro rascunho do relat√≥rio com erros encontrados e fornec√™-lo √† equipe do projeto para feedback e corre√ß√Ķes.

5. Publicar o relat√≥rio final, considerando as a√ß√Ķes e medidas tomadas pela equipe na solu√ß√£o das quest√Ķes levantadas.


Métodos de auditoria de contratos inteligentes

Eficiência de Gas 

As auditorias de contratos inteligentes n√£o focam apenas na seguran√ßa da blockchain. Eles tamb√©m analisam a efici√™ncia e a otimiza√ß√£o. Alguns contratos fazem uma s√©rie complicada de transa√ß√Ķes para realizar uma fun√ß√£o pretendida. Com o alto custo das taxas de gas em redes como a Ethereum, contratos mais eficientes s√£o capazes de economizar muito em custos de transa√ß√Ķes.

A otimização do desempenho também é um indicador do conhecimento técnico dos desenvolvedores. Etapas ineficientes fornecem mais pontos de falha e devem ser evitadas. Quando os custos de Gas são altos, os contratos inteligentes podem não ser executados, principalmente quando o limite de Gas usado é baixo.

Vulnerabilidades do contrato

A maior parte do trabalho em auditorias envolve a verificação de vulnerabilidades de segurança dos contratos. Embora alguns problemas possam ser fáceis de identificar, muitos exploits (códigos maliciosos que exploram a vulnerabilidade do sistema) envolvem técnicas e estratégias avançadas para roubo de fundos. Por exemplo, a manipulação de mercado pode ser usada com contratos inteligentes fracos para realizar golpes de flash loan (tipo de empréstimo rápido). Para encontrar esses problemas, os auditores iniciam o processo de break testing, simulando ataques maliciosos ao contrato inteligente. Vulnerabilidades comuns incluem:

1. Problemas de reentr√Ęncia (reentrancy): √Č um termo de programa√ß√£o que se refere a quando um contrato inteligente faz uma chamada externa para outro contrato externo antes que os efeitos de a√ß√Ķes anteriores sejam conclu√≠das. O contrato externo pode ent√£o chamar recursivamente o contrato inteligente original e interagir com ele de maneiras que n√£o deveria, pois o status do contrato original ainda n√£o foi atualizado.
2. Overflows e underflows de inteiros: Quando um contrato inteligente realiza uma operação aritmética, mas a saída excede a capacidade de armazenamento (geralmente 18 casas decimais). Isso pode ocasionar erros de cálculo.
3. Oportunidades de Front running: Um c√≥digo mal estruturado pode fornecer um aviso pr√©vio de compras ou vendas no mercado. Isso, por sua vez, permite que outros usem as informa√ß√Ķes e negociem em benef√≠cio pr√≥prio.

Falhas de segurança na plataforma

A maioria das auditorias inclui a avaliação da rede que hospeda os contratos e até mesmo da API usada para interagir com o DApp. Um projeto pode estar vulnerável a um ataque DDoS ou ter a interface de usuário do site comprometida, o que significa que os usuários realmente conectarão suas carteiras a aplicativos maliciosos de blockchain.


O que é um relatório de auditoria?

O relatório de auditoria é fornecido no final do processo. O ideal é que os projetos sejam transparentes e compartilhem os resultados e descobertas com a comunidade. A maioria dos relatórios categoriza os problemas por nível de gravidade, como crítico, principal, secundário etc. O relatório também lista o status dos problemas, já que os projetos têm um tempo para resolvê-los antes do lançamento do relatório final.

Junto com um resumo executivo, um relat√≥rio padr√£o cont√©m recomenda√ß√Ķes, exemplos de c√≥digo redundante e as informa√ß√Ķes detalhadas sobre erros de codifica√ß√£o. Antes de lan√ßar a vers√£o final, o projeto tem um prazo para agir conforme as descobertas e problemas relatados.


Onde solicitar uma auditoria de contrato inteligente?

V√°rios servi√ßos de auditoria de contratos inteligentes ficaram conhecidos por seus servi√ßos. Dois s√£o particularmente populares, e obter uma auditoria deles exigir√° uma cota√ß√£o inicial e a entrega de informa√ß√Ķes.

CertiK

A CertiK é líder do setor de auditorias de contratos inteligentes. Centenas de projetos auditaram seus contratos inteligentes com eles. O PancakeSwap, o maior protocolo Automated Market Maker (AMM) da BSC é um exemplo. Abaixo, temos uma seção da auditoria da PancakeSwap realizada pela CertiK.


A grande maioria dos projetos apoiados pela Binance Labs também auditou seus contratos com a CertiK. A CertiK divulga uma tabela de classificação de projetos auditados que permite comparar cada um, juntamente com uma pontuação de segurança. Observe que, além da Ethereum, a CertiK também abrange projetos da BSC e Polygon.


ConsenSys Diligence

Administrada por Joseph Lubin, cofundador da Ethereum, a ConsenSys √© um dos maiores nomes da ind√ļstria de criptomoedas no setor de desenvolvimento blockchain. Na ConsenSys Diligence, a empresa oferece auditorias de contratos inteligentes na Ethereum. Eles tamb√©m fornecem um servi√ßo automatizado que verifica os contratos da Ethereum Virtual Machine (EVM), identificando erros comuns.


Quanto custa uma auditoria de contrato inteligente?

O custo de uma auditoria depende do n√ļmero de contratos inteligentes a serem verificados. Normalmente, uma auditoria custa milhares de d√≥lares. No caso de grande projeto, o processo pode facilmente ultrapassar US$ 10.000. A reputa√ß√£o da empresa que executa a auditoria tamb√©m tem influ√™ncia sobre o custo.


Considera√ß√Ķes finais

Felizmente para investidores e usuários, as auditorias de contratos inteligentes se tornaram um padrão. No entanto, se todo projeto tiver uma auditoria, ela deixará de ser um indicador que garante valor e legitimidade. Por isso, é extremamente importante que você mesmo leia a auditoria. Mesmo que você não tenha o conhecimento técnico, é uma boa ideia dar uma olhada nos comentários e no nível de gravidade dos possíveis problemas.

Agora, ao se deparar com uma auditoria, voc√™ deve ter um pouco mais de facilidade para entender seu conte√ļdo. Como sempre, antes de tomar qualquer decis√£o de investimento, avalie bem o cen√°rio geral e leve todas as informa√ß√Ķes em considera√ß√£o.