Lista de verificación de seguridad de los contratos inteligentes
Lista de verificación para el desarrollo de contratos inteligentes
Le indicamos un proceso altamente eficiente que le recomendamos seguir cuando escriba sus contratos inteligentes.
Compruebe cualquier problema de seguridad conocido:
- Revise sus contratos con Slitheropens 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 Cryticopens 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:
- ¿Sus contratos pueden mejorarse? Revise su código de capacidad de actualización en busca de fallos con
slither-check-upgradeabilityopens in a new tab o Cryticopens in a new tab. Hemos documentado 17 formas en que las actualizaciones pueden fallar. - ¿Sus contratos pretenden ajustarse a los ERC? Compruébelos con
slither-check-ercopens in a new tab. Esta herramienta identifica instantáneamente las desviaciones de seis especificaciones comunes. - ¿Se integra con tókenes de terceros? Revise nuestra lista de verificación para la integración de tokens antes de depender de contratos externos.
Inspeccione visualmente las características de seguridad críticas de su código:
- Revise el impresor inheritance-graphopens in a new tab de Slither. Evite problemas de operaciones en paralelo involuntarias y de linearización C3.
- Revise el impresor function-summaryopens in a new tab de Slither. Informa de la visibilidad de las funciones y los controles de acceso.
- Revise el impresor vars-and-authopens in a new tab de Slither. Informa de los controles de acceso sobre las variables de estado.
Documente propiedades de seguridad críticas y utilice generadores de pruebas automatizados para evaluarlas:
- Aprenda a documentar las 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 las propiedades de seguridad en Solidity, para su uso con Echidnaopens in a new tab y Manticoreopens 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 de Python de Slither. Concéntrese en la herencia, dependencias variables, controles de acceso y otras cuestiones estructurales.
- Ejecute sus pruebas de propiedades en cada confirmación con Cryticopens 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
Pida ayuda
Las horas de consulta de Ethereumopens in a new tab tienen lugar todos los 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: Empire Hackingopens in a new tab. Siempre estamos disponibles en los canales #crytic y #ethereum si tiene alguna duda.
Última actualización de la página: 7 de febrero de 2025