Los contratos inteligentes son códigos que se ejecutan automáticamente y constituyen la columna vertebral del ecosistema Web3. Los contratos inteligentes actúan como los pilares fundamentales del ecosistema Web3, equilibrando con precisión miles de millones en una red abierta. Hoy hablaremos de las herramientas de pruebas automatizadas para contratos inteligentes. No todas las herramientas de pruebas de seguridad de contratos inteligentes son iguales, pero las herramientas utilizadas durante las auditorías pueden influir en los resultados finales. Este es un buen punto de partida si quieres aprender sobre Solidity y cómo auditar contratos inteligentes. Este artículo forma parte de una serie dedicada a la auditoría de contratos inteligentes en Solidity. La serie abordará las vulnerabilidades y los recursos que utilizan los auditores de contratos inteligentes.
¿Qué son las herramientas de pruebas automatizadas para contratos inteligentes?
Consiste en utilizar herramientas de software especializadas para analizar el código fuente del contrato inteligente sin ejecutarlo. Estas herramientas analizan el código, examinando la sintaxis, la lógica y los patrones para detectar errores y riesgos.
A continuación se enumeran algunas herramientas automatizadas:
- MythX: MythX es un escáner totalmente automático de vulnerabilidades de seguridad diseñado para los contratos inteligentes de Ethereum. Ofrece una variedad de técnicas de análisis, entre las que se incluyen la ejecución simbólica y el análisis estático, para detectar vulnerabilidades como la reentrancia, el desbordamiento o subdesbordamiento de enteros y las llamadas externas no comprobadas.
- Slither: Slither es un marco de análisis estático de código abierto para contratos Solidity. Ofrece un conjunto completo de detectores de vulnerabilidades comunes, entre las que se incluyen la reentrancia, los punteros de almacenamiento no inicializados y las vulnerabilidades relacionadas con el límite de gas. Slither genera informes detallados con recomendaciones prácticas, lo que facilita a los auditores la identificación y corrección de vulnerabilidades.
- SmartCheck: SmartCheck es una herramienta de análisis estático para contratos inteligentes de Ethereum que detecta vulnerabilidades de seguridad y errores de programación. Utiliza técnicas de ejecución simbólica y resolución de restricciones para identificar problemas de seguridad. Además, ofrece informes detallados que ayudan a los auditores a comprender y corregir las vulnerabilidades.
- Oyente: Oyente es una herramienta de análisis basada en la ejecución simbólica desarrollada por investigadores de la Universidad Nacional de Singapur. Trabaja directamente con el código byte de la máquina virtual de Ethereum (EVM) sin acceder a la representación de alto nivel, como por ejemplo Solidity. Explora diferentes rutas de ejecución dentro del código byte del contrato para detectar vulnerabilidades, entre las que se incluyen la reentrancia, la dependencia del orden de las transacciones (TOD) y las vulnerabilidades relacionadas con el límite de gas.
- Manticore: Manticore es una herramienta de ejecución simbólica para analizar archivos binarios y contratos inteligentes. Ofrece gran versatilidad, ya que permite analizar archivos binarios en Linux, así como el bytecode de WASM y EVM. Con Manticore, los desarrolladores pueden evaluar el código de los contratos inteligentes compilado en bytecode de EVM. Este análisis se lleva a cabo mediante una técnica que utiliza la resolución de restricciones para explorar el espacio de estados de un programa. Esta herramienta se basa en propiedades, es decir, consiste en ejecutar una serie de pruebas en los contratos inteligentes utilizando propiedades, en lugar de limitarse a probar solo unos pocos comportamientos.
- Echidna: Echidna es una herramienta de pruebas basadas en propiedades para contratos inteligentes de Ethereum. Utiliza sofisticadas campañas de fuzzing basadas en la gramática y en la ABI del contrato para falsificar predicados definidos por el usuario o aserciones de Solidity. El enfoque de Echidna en materia de pruebas complementa las técnicas tradicionales de análisis estático, ya que se centra en el comportamiento en tiempo de ejecución y en los casos extremos que el análisis estático por sí solo podría no cubrir.
En conclusión
Las herramientas automatizadas pueden identificar vulnerabilidades en los contratos inteligentes, pero tienen limitaciones y no pueden detectar todos los problemas. Por lo tanto, es necesario realizar pruebas manuales para garantizar un enfoque integral de la auditoría. Por eso, las auditorías de contratos inteligentes, los programas de recompensa por errores y las revisiones son fundamentales en todas las fases del desarrollo. Aumentan el número de personas que buscan vulnerabilidades y reducen la probabilidad de que se pasen por alto vulnerabilidades críticas.
Cuídate.
Únete a AuditOne como auditor: https://www.auditone.io/auditors
Reserva tu consulta gratuita sobre seguridad:
Google Calendar: https://calendar.app.google/Ai15eyQhiV5c1pBXA
Telegram: https://t.me/m_ndr
Artículos relacionados:
Auditoría de un contrato de Solidity: Episodio 1 — Ataque de reentrada
Auditoría de un contrato de Solidity: Episodio 2 - Delegatecall
Auditoría de un contrato de Solidity: Episodio 3 - Análisis de seguridad
Auditoría de un contrato de Solidity: Episodio 4 — Pruebas
Auditoría de un contrato de Solidity: Episodio 6 - Frontrunning
Auditoría de un contrato de Solidity: Episodio 7 — Documentación y elaboración de informes
Auditoría de un contrato de Solidity: Episodio 8 - Ventajas de la auditoría
.avif)

.png)






