Ir al contenido principal

Lista de verificación de seguridad de los contratos inteligentes

contratos inteligentesseguridadsolidity
Intermedio
Trailofbits
Desarrollar contratos seguros(opens in a new tab)
7 de septiembre de 2020
3 minuto leído minute read

Lista de verificación de desarrollo de contratos inteligente

Le indicamos un proceso altamente eficiente que le recomendamos seguir cuando escriba sus contratos inteligentes.

Compruebe cualquier problema de seguridad conocido:

  • Revisa tus contratos con Slither(opens in a new tab). Tiene más de 40 detectores integrados para vulnerabilidades comunes. Ejecútelo en cada comprobación con un nuevo código y asegúrese de obtener un informe limpio (o utilice el modo de cribado para silenciar ciertos problemas).
  • Revise sus contratos con Crytic(opens in a new tab). Comprueba 50 problemas que Slither no revisa. Crytic puede ayudar a que su equipo se mantenga a la cabecera, al descubrir fácilmente problemas de seguridad en Pull Requests en GitHub.

Tenga en cuenta las características especiales de su contrato:

Inspeccione visualmente las características de seguridad críticas de su código:

Documente propiedades de seguridad críticas y utilice generadores de pruebas automatizados para evaluarlas:

  • Aprende a documentar propiedades de seguridad para su código. Es difícil al principio, pero es la actividad más importante para lograr un buen resultado. También es un requisito previo para utilizar cualquiera de las técnicas avanzadas en este tutorial.
  • Defina propiedades de seguridad en Solidity, para su uso con Echidna(opens in a new tab) y Manticore(opens in a new tab). Concéntrese en su máquina de estado, controles de acceso, operaciones aritméticas, interacciones externas y conformidad con los estándares.
  • Defina las propiedades de seguridad con la API Python de Slither. Concéntrese en la herencia, dependencias variables, controles de acceso y otras cuestiones estructurales.
  • Ejecute sus pruebas de propiedad en cada comando commit con Crytic(opens in a new tab). Crytic puede consumir y evaluar pruebas de propiedad de seguridad para que todos los miembros de su equipo puedan ver fácilmente que pasan por GitHub. Las pruebas fallidas pueden bloquear los commits.

Por último, tenga en cuenta los problemas que las herramientas automatizadas no pueden encontrar fácilmente:

  • Falta de privacidad: todos los demás pueden ver sus transacciones mientras están en cola de espera.
  • Transacciones en ejecución frontal
  • Operaciones criptográficas
  • Interacciones arriesgadas con componentes DeFi externos

Pedir ayuda

El horario de oficina de Ethereum(opens in a new tab) funciona cada martes por la tarde. Estas sesiones individuales de una hora de duración son una oportunidad para hacernos cualquier pregunta que tenga sobre la seguridad, solucionar problemas usando nuestras herramientas y obtener comentarios de expertos sobre su enfoque actual. Le ayudaremos a trabajar con esta guía.

Únase a nuestro Slack: Pirateando el imperio(opens in a new tab). Siempre estamos disponibles en los canales #crytic y #ethereum si tiene alguna duda.

Última edición: @nhsz(opens in a new tab), 1 de mayo de 2024

¿Le ha resultado útil este tutorial?