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.
-
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.
-
Prepare o contrato NEAR para o Rustle analisar.
git clone https://github.com/linear-protocol/LiNEAR.git ~/near-repo/LiNEAR -
Inicie a análise executando
./rustle../rustle -t ~/near-repo/LiNEAR ~/near-repo/LiNEAR/contracts/linear

- Verifique o relatório em
audit-result/summary.csv

- 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



