Sumário
1. Arquitetura e projeto
2. Controle de acesso
3. Tratamento de erros e registro
4. Lógica comercial
5. Dados da blockchain
6. Componentes externos
7. Aritmética
8. Negação de serviços
9. Melhores Práticas
Sobre o Inspex
Guia de Teste de Segurança de Smart Contract
Desde o início dos Smart Contracts, explorações e ataques sempre foram predominantes neste mundo de aplicações descentralizadas, como pode ser visto em várias fontes, como, por exemplo:
Ao contrário do software tradicional que pode ser facilmente corrigido, a maioria dos smart contracts não podem ser modificados após a implantação, e permitir que a lógica do smart contract seja modificada após a implantação pode abrir brechas para ataques tanto de atores externos quanto internos. Portanto, a segurança deve ser uma das maiores prioridades, se não a principal, no desenvolvimento de smart contracts.
Para os desenvolvedores de smart contracts, é importante saber como implementar com segurança seus smart contracts, e testar as armadilhas e riscos comuns. Quanto aos profissionais de segurança, ter uma lista de verificação clara para seguir pode ajudar a padronizar a metodologia de teste, evitando que os riscos comuns sejam negligenciados. Por estes motivos, é criado o Guia de Teste de Segurança de Smart Contract (GTSSC).
O GTSSC é um guia baseado em riscos para profissionais e desenvolvedores de segurança de smart contracts para usar como referência nos testes de segurança de smart contracts. Ele descreve as características e processos para verificar as questões de segurança de smart contracts em diferentes categorias, juntamente com exemplos de contratos ou funções vulneráveis, e soluções para resolver os riscos de suas causas raiz ou mitigar seus riscos.
Os riscos são categorizados nas 9 categorias a seguir:
1. Arquitetura e projeto
A implementação de smart contracts para ser segura requer arquitetura e projeto adequados. Esta categoria de testes envolve o uso de compiladores, o projeto do smart contract chamado arquitetura, e o projeto de funções e permissões.
2. Controle de acesso
O controle de acesso é a imposição de políticas, impedindo que os usuários atuem além do escopo de suas permissões. O controle de acesso inadequado pode levar à divulgação não autorizada de informações, manipulação ou perda de dados, ou execução de funções comerciais fora da capacidade do usuário.
3. Tratamento de erros e registro
O tratamento e o registro de erros são as chaves para que os erros em smart contracts sejam rastreáveis, direcionando o fluxo de execução para o caminho adequado dependendo do resultado da execução, permitindo que os usuários saibam onde e como o contrato falha, e permitindo transacionar as ações passadas feitas no smart contract.
4. Lógica comercial
O fluxo lógico comercial em geral deve ser sequencial, processado em ordem, e não pode ser contornado. As vulnerabilidades da lógica comercial podem acontecer quando o fluxo de processamento legítimo do smart contract pode ser usado de uma forma que tenha um efeito adverso sobre os usuários ou sobre o proprietário do contrato inteligente.
5. Dados da blockchain
O uso de dados na blockchain, incluindo o armazenamento, recuperação e modificação, deve ser feito adequadamente para manter a integridade, e às vezes a confidencialidade, dos dados. Isto inclui os riscos de manipulação de dados na chain, tais como manipulação de preços usando empréstimos flash.
6. Componentes externos
Os smart contracts podem ser interligados através da herança dos smart contracts previamente desenvolvidos ou da chamada de funções de outros contratos. O uso de componentes externos inseguros pode causar efeitos indesejáveis ou prejudiciais se não for feito adequadamente, tais como ataque de reentrância (reentrancy attack).
7. Aritmética
As operações matemáticas em diferentes linguagens e plataformas de programação podem funcionar de forma diferente. As operações aritméticas feitas no smart contract devem conseguir lidar com toda a gama de valores possíveis com segurança.
8. Negação de serviços
Uma lógica de contrato inadequada pode afetar a disponibilidade do contrato. Deve-se ter certeza de que o smart contract pode funcionar corretamente conforme projetado, sem interrupção por fatores internos ou externos.
9. Melhores Práticas
O smart contract pode ser implementado de várias maneiras, dependendo do estilo de cada desenvolvedor. Entretanto, o cumprimento das melhores práticas pode melhorar a qualidade do código do smart contract, tornando-o mais limpo, mais legível ou mais eficiente.
Sobre o Inspex
Inspex é formado por uma equipe de especialistas em segurança cibernética altamente experiente. Fornecemos serviços profissionais de blockchain e smart contracts da mais alta qualidade para aumentar a segurança de nossos clientes e do ecossistema global da blockchain.
Para qualquer consulta comercial, favor entrar em contato conosco via Twitter, Telegram, [email protected]
Texto publicado por Inpex e traduzido para o português por Rafael Ojeda
Abrace a oportunidade de elevar sua jornada de desenvolvimento para um nível superior. Saber a Diferença entre MPC e Multi-Sig é apenas o começo; os builds incríveis da WEB3DEV representam a chave de entrada para o emocionante cenário web3. 🚀🧑💻
Não perca tempo, 👉inscreva-se👈 agora mesmo e comece a desbravar o universo Blockchain!
Latest comments (0)