NCC Group desarrolló un sistema de evaluación de contratos inteligentes denominado Decentralized Application Security Project (Dasp) por medio del cual es posible realizar un análisis en línea de al menos 10 aspectos que podrían involucrar una vulnerabilidad en determinada blockchain.
El proyecto Dasp es descrito como “abierto y colaborativo” para el descubrimiento de vulnerabilidades de contratos inteligentes dentro del ecosistema. Para su evaluación han establecido hasta 9 categorías y una extra en donde se explicita la posibilidad de que hayan nuevas vulnerabilidades que no hayan sido señaladas.
El primer elemento es la reentrada, un ataque famoso que permitió el robo de The DAO, que a la postre significó la bifurcación de Ethereum y el nacimiento de Ethereum Classic. La reentrada se produce cuando un contrato inteligente, estando en ejecución, puede ser reactivado o llamado desde una dirección externa antes de que se complete el primer proceso. También se puede solicitar fondos desde un contrato malicioso sin que la víctima perciba la intención del atacante. Se estima que por este tipo de fallas se han perdieron en aquel entonces unos 3.5 millones de ETH.
El control de acceso es otra característica que se evalúa. En este punto se aprovecha que al momento de iniciar un contrato inteligente debe configurarse la dirección. Sin embargo, este proceso puede ser modificado por un atacante, cambiando la dirección con la que inicia, colocándose como propietario del contrato. Esta función puede ser activada por cualquier usuario, por lo que los colaboradores de Daps la consideran una falla importante. Este elemento fue el que permitió el “suicidio” de las carteras de Parity en noviembre del año pasado.
Los contratos inteligentes también pueden presentar problemas aritméticos, que son especialmente peligrosos. En los contratos inteligentes los enteros sin signo son frecuentes y la mayoría de los desarrolladores utilizan tipos enteros simples (que a menudo son enteros con signo). «Si se producen desbordamientos, muchos recorridos de código aparentemente benignos se convierten en vectores de robo o de denegación de servicio» se lee en la página.
Otras de las fallas consideradas son los valores de devolución no verificados en operaciones de bajo nivel; la denegación de servicios, fallas en la aletoriedad programada en un contrato; el frontrunning, la manipulación del tiempo; las direcciones cortas. Según los colaboradores de esta página, muchas de estas fallas están asociadas a la uso de Solidity, uno de los lenguajes de programación más populares en la construcción de contratos inteligentes en Ethereum.
Además, la plataforma valora la posibilidad de que, al estar aún en sus primeras etapas, Ethereum y sus contratos inteligentes aún sean vulnerables a otro tipo de fallas que son desconocidas. Inclusive el propio proceso de verificación de los contratos aún se encuentra en fase de desarrollo, por lo 0 qeu es posible que hayan nuevas y sorprendentes fallas.
Algunas de las vulnerabilidades de contrato inteligente más dañinas sorprendieron a todos, y no hay razón para creer que no habrá otra que sea igualmente inesperada o igualmente destructiva. Mientras los inversores decidan colocar grandes cantidades de dinero en un código complejo pero ligeramente auditado, seguiremos viendo nuevos descubrimientos que llevarán a graves consecuencias.
Así, es posible que este top-10 de fallas más significativas halladas en los contratos inteligentes aún se amplíe, esto hasta tanto este tipo de herramientas criptográficas no alcancen la madurez y solidez necesaria. La exposición a la falla forma parte del proceso de evolución de esta tecnología.
4.5