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.
-
Siga el manual de instalación en la página de GitHub. Si desea usar docker, omita esto y vaya al manual de docker.
-
Prepare el contrato NEAR para que Rustle lo analice.
git clone https://github.com/linear-protocol/LiNEAR.git ~/near-repo/LiNEAR -
Inicie el análisis ejecutando
./rustle../rustle -t ~/near-repo/LiNEAR ~/near-repo/LiNEAR/contracts/linear

- Compruebe el informe en
audit-result/summary.csv

- 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



