O que é uma Auditoria de Segurança de Contrato Inteligente?
Índice
Introdução
O que é uma auditoria de contrato inteligente?
Por que precisamos de auditorias de contratos inteligentes?
Como funcionam as auditorias de contratos inteligentes?
Métodos de auditoria de contratos inteligentes
O que é um relatório de auditoria?
Onde solicitar uma auditoria de contrato inteligente?
Quanto custa uma auditoria de contrato inteligente?
Considerações finais
O que é uma Auditoria de Segurança de Contrato Inteligente?
InícioArtigos
O que é uma Auditoria de Segurança de Contrato Inteligente?

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

Intermediário
Published Mar 1, 2022Updated Mar 16, 2022
6m

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.