Back to Blog

Rustle: el Primer Auditor Automático para la Comunidad NEAR

Code Auditing
November 1, 2022
4 min read

Nos complace lanzar Rustle: el primer auditor automático ofrecido por BlockSec para la comunidad NEAR.

Rustle tiene varias características destacadas:

  • Rustle puede detectar actualmente más de 20 tipos de problemas en el contrato NEAR. Consulte la sección Detectores para ver la lista completa de detectores.
  • Rustle es fácil de usar. Proporcionamos instrucciones de instalación y tutoriales detallados. Además, también preparamos un docker para que los usuarios puedan comenzar rápidamente.
  • Rustle es bastante rápido, la mayoría de los contratos NEAR pueden analizarse en menos de 3 minutos.
  • Rustle es fácil de usar con informes en formato CSV y JSON. También proporcionamos un script para ayudarle a importar los resultados a Notion.

Detectores

Todas las vulnerabilidades que Rustle puede detectar. La documentación detallada se puede encontrar aquí.

Detector Id Description Severity
unhandled-promise Detecta Promises que no están gestionadas Alta
non-private-callback Falta la macro #[private] para las funciones de callback Alta
reentrancy Encuentra funciones vulnerables a ataques de reentrada Alta
unsafe-math Falta de verificación de desbordamiento en operaciones aritméticas Alta
self-transfer Falta verificación de remitente != receptor Alta
incorrect-json-type Tipo incorrecto usado en parámetros o valores de retorno Alta
div-before-mul Pérdida de precisión por orden de operación incorrecto Media
round Redondeo sin especificar ceil o floor Media
lock-callback Un panic en la función de callback puede bloquear el contrato Media
yocto-attach No hay assert_one_yocto en la función privilegiada Media
prepaid-gas Falta verificación del gas prepagado en ft_transfer_call Baja
non-callback-private Macro #[private] usada en función que no es de callback Baja
unused-ret Resultado de función no utilizado o verificado Baja
upgrade-func No hay función de actualización en el contrato Baja
tautology Tautología usada en rama condicional Baja
inconsistency Uso de símbolo similar pero ligeramente diferente Baja
timestamp Encuentra todos los usos de timestamp Info
complex-loop Encuentra todos los bucles con lógica compleja que pueden causar DoS Info
ext-call Encuentra todas las invocaciones entre contratos Info
promise-result Encuentra todos los usos del resultado de promise Info
transfer Encuentra todas las acciones de transferencia Info

Cómo usar

Utilizamos Rustle para analizar un contrato NEAR popular (es decir, LiNEAR). Los comandos han sido probados en Ubuntu 20.04 LTS.

  1. Siga el manual de instalación en la página de GitHub. Si desea usar docker, omita esto y vaya al manual de docker.

  2. Prepare el contrato NEAR para que Rustle lo analice.

     git clone https://github.com/linear-protocol/LiNEAR.git ~/near-repo/LiNEAR
    
  3. Inicie el análisis ejecutando ./rustle.

     ./rustle -t ~/near-repo/LiNEAR ~/near-repo/LiNEAR/contracts/linear
    
  1. Compruebe el informe en audit-result/summary.csv
  1. Puede especificar qué detectores o grupos de severidad usar.

./rustle -h para más detalles.

Ejemplo:

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

Una cosa más

Rustle puede utilizarse en el proceso de desarrollo para analizar los contratos inteligentes NEAR de forma iterativa. Esto puede ahorrar mucho esfuerzo manual y mitigar parte de los posibles problemas. Sin embargo, las vulnerabilidades en lógica compleja o relacionadas con la semántica siguen siendo una limitación de Rustle. La identificación de problemas semánticos complicados requiere que los expertos de BlockSec realicen revisiones exhaustivas y detalladas. Contáctenos para el servicio de auditoría.

Los Issues y los PRs también son bienvenidos.

Acerca de BlockSec

BlockSec es una empresa pionera en seguridad blockchain fundada en 2021 por un grupo de expertos en seguridad de reconocimiento mundial. La empresa está comprometida con mejorar la seguridad y la usabilidad del emergente mundo Web3 para facilitar su adopción masiva. Con este fin, BlockSec ofrece servicios de auditoría de seguridad de contratos inteligentes y cadenas EVM, la plataforma Phalcon para el desarrollo de seguridad y el bloqueo proactivo de amenazas, la plataforma MetaSleuth para el rastreo e investigación de fondos, y la extensión MetaSuites para que los desarrolladores web3 naveguen eficientemente en el mundo cripto.

Hasta la fecha, la empresa ha prestado servicios a más de 300 distinguidos clientes como MetaMask, Uniswap Foundation, Compound, Forta y PancakeSwap, y ha recibido decenas de millones de dólares en dos rondas de financiación de destacados inversores, incluidos Matrix Partners, Vitalbridge Capital y Fenbushi Capital.

Sitio web oficial: https://blocksec.com/

Cuenta oficial de 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