Back to Blog

Rustle: o Primeiro Auditor Automático para a Comunidade NEAR

Code Auditing
November 1, 2022
4 min read

Estamos entusiasmados em lançar o Rustle: o primeiro auditor automático oferecido pela BlockSec para a comunidade NEAR.

O Rustle possui vários recursos excelentes:

  • O Rustle atualmente pode detectar mais de 20 tipos de problemas em contratos NEAR. Veja a seção Detectores para a lista completa de detectores.
  • O Rustle é fácil de usar. Fornecemos comandos de instalação e tutoriais completos. Além disso, também preparamos um docker para os usuários para início rápido.
  • O Rustle é bastante ágil, a maioria dos contratos NEAR pode ser analisada em menos de 3 minutos.
  • O Rustle é amigável ao usuário com relatórios nos formatos CSV e JSON. Também fornecemos um script para ajudá-lo a importar os resultados para o Notion.

Detectores

Todas as vulnerabilidades que o Rustle pode detectar. A documentação detalhada pode ser encontrada aqui.

Detector Id Description Severity
unhandled-promise Detecta Promises que não são tratadas Alta
non-private-callback Macro #[private] ausente para funções de callback Alta
reentrancy Encontra funções vulneráveis a ataques de reentrância Alta
unsafe-math Falta de verificação de overflow em operações aritméticas Alta
self-transfer Verificação ausente de remetente != destinatário Alta
incorrect-json-type Tipo incorreto usado em parâmetros ou valores de retorno Alta
div-before-mul Perda de precisão devido à ordem incorreta de operações Média
round Arredondamento sem especificar teto ou piso Média
lock-callback Pânico em função de callback pode travar o contrato Média
yocto-attach Sem assert_one_yocto em função privilegiada Média
prepaid-gas Verificação ausente de gás pré-pago em ft_transfer_call Baixa
non-callback-private Macro #[private] usada em função não-callback Baixa
unused-ret Resultado de função não utilizado ou verificado Baixa
upgrade-func Sem função de atualização no contrato Baixa
tautology Tautologia usada em ramificação condicional Baixa
inconsistency Uso de símbolo similar, mas ligeiramente diferente Baixa
timestamp Encontra todos os usos de timestamp Info
complex-loop Encontra todos os loops com lógica complexa que podem levar a DoS Info
ext-call Encontra todas as invocações entre contratos Info
promise-result Encontra todos os usos de resultado de promise Info
transfer Encontra todas as ações de transferência Info

Como usar

Utilizamos o Rustle para analisar um popular contrato NEAR (ou seja, LiNEAR). Os comandos foram testados no Ubuntu 20.04 LTS.

  1. Siga o manual de instalação na página do GitHub. Se você quiser usar o docker, pule esta etapa e vá para o manual do docker.

  2. Prepare o contrato NEAR para o Rustle analisar.

     git clone https://github.com/linear-protocol/LiNEAR.git ~/near-repo/LiNEAR
    
  3. Inicie a análise executando ./rustle.

     ./rustle -t ~/near-repo/LiNEAR ~/near-repo/LiNEAR/contracts/linear
    
  1. Verifique o relatório em audit-result/summary.csv
  1. Você pode especificar quais detectores ou grupos de severidade usar.

./rustle -h para detalhes.

Exemplo:

./rustle -t ~/near-repo/LiNEAR ~/near-repo/LiNEAR/contracts/linear -d high,medium,complex-loop

Mais uma coisa

O Rustle pode ser usado no processo de desenvolvimento para escanear contratos inteligentes NEAR de forma iterativa. Isso pode economizar muito esforço manual e mitigar parte dos problemas potenciais. No entanto, vulnerabilidades em lógica complexa ou relacionadas à semântica ainda são limitações do Rustle. A localização de problemas semânticos complexos requer que os especialistas da BlockSec realizem revisões exaustivas e detalhadas. Entre em contato conosco para serviço de auditoria.

Issues e PRs também são bem-vindos.

Sobre a BlockSec

A BlockSec é uma empresa pioneira em segurança blockchain estabelecida em 2021 por um grupo de especialistas em segurança mundialmente reconhecidos. A empresa está comprometida em aprimorar a segurança e a usabilidade para o emergente mundo Web3, a fim de facilitar sua adoção em massa. Para isso, a BlockSec oferece serviços de auditoria de segurança de contratos inteligentes e redes EVM, a plataforma Phalcon para desenvolvimento seguro e bloqueio proativo de ameaças, a plataforma MetaSleuth para rastreamento e investigação de fundos, e a extensão MetaSuites para construtores web3 navegarem com eficiência no mundo cripto.

Até o momento, a empresa atendeu mais de 300 clientes renomados, como MetaMask, Uniswap Foundation, Compound, Forta e PancakeSwap, e recebeu dezenas de milhões de dólares americanos em duas rodadas de financiamento de investidores proeminentes, incluindo Matrix Partners, Vitalbridge Capital e Fenbushi Capital.

Site oficial: https://blocksec.com/

Conta oficial no Twitter: https://twitter.com/BlockSecTeam

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit