Más de 1,2 millones de aplicaciones descentralizadas (dApps) de Ethereum han utilizado una herramienta de seguridad muy poco vista, para ayudarles a evitar los costosos errores que surgen de las líneas de código de ejecución automática conocidas como Smart Contracts.

Lanzada en octubre, por la Startup de tecnología de Ethereum, Amberdata, la herramienta gratuita está disponible para cualquier público en general, para interpretar la seguridad de las aplicaciones activas en la Blockchain de Ethereum. Los Smart Contracts con bugs que han sido explotados y han llevado a grandes pérdidas, incluso a la suma de cientos de millones de dólares.

El servicio automatizado explora las vulnerabilidades comunes que se encuentran en el código del contrato inteligente y genera una calificación en letra (por ejemplo, A, B o C) para la seguridad de una aplicación descentralizada (Dapp).

Es una de las muchas herramientas que fomentan las mejores prácticas y la mayor transparencia entre los desarrolladores de Dapp y los usuarios finales en el ecosistema Ethereum.

La visión detrás de la herramienta de calificación de seguridad de Amberdata, como lo destacó el CEO de la compañía, Shawn Douglass en un comunicado de prensa, es:

“Brindar un mayor acceso y una mejor visibilidad de los contratos inteligentes. Esperamos que al proporcionar estas herramientas a la comunidad, podamos reducir las dependencias externas y permitir que la comunidad se desarrolle de forma más rápida y segura”.

¿Cómo se clasifican exactamente estas aplicaciones?:


Señalando a 13 tipos de vulnerabilidades analizadas automáticamente por el programa Amberdata, el CEO Joanes Español comparó cada una de estas con “las luces del motor en el tablero de un automóvil”.

“Solo significa que necesito comprobar qué está pasando con el auto. Cualquiera de estos puede resultar en un error de seguridad “, explicó Español.

Y cuantos más errores detecte el análisis de seguridad de Amberdata, menor será el grado de letra del alfabeto que recibirá un Dapp. Estas calificaciones van desde una A + hasta una F.

Pero no dependen estrictamente del número de errores de seguridad. Cada una de las 13 vulnerabilidades tiene diferentes grados de severidad, que impactará la calificación final de un Dapp.

Dos vulnerabilidades comunes de baja gravedad marcadas por Español incluyen “delegar la llamada a una dirección proporcionada por el usuario” y “mensaje de llamada al Smart Contract”.

Este último puede suponer un riesgo potencial para la seguridad si una trampa, en lugar de ser autocontenida en un contrato inteligente, llama a contratos adicionales que poseen código malicioso.

De manera similar, una llamada de delegado es otra operación que normalmente se usa para dividir el código de los smart contracts en múltiples sub contratos, de modo que cualquier actualización necesaria al software se pueda hacer poco a poco sin terminar toda la aplicación.

“Esa es la buena parte de esas llamadas delegadas. Pero lo malo es que ahora, como propietario del contrato, podría comenzar a hacer cosas malas. Por lo tanto, podría comenzar a reemplazar los contratos que cambian el comportamiento de la aplicación original “, explicó Español.

Como tal, en ambos casos, Español describió la auditoría de seguridad como el envío de “advertencias”, en lugar de señalar errores de código inmediatos.

De hecho, uno de esos Dapp que actualmente aprovecha la llamada de mensajes y que anteriormente implementó una actualización inteligente de contrato usando la llamada de delegado es TrueUSD. Creada por la Startup de Blockchain TrustToken, la Stablecoin respaldada por el USD en Ethereum está clasificada actualmente con una calificación de letra C.

Si bien eso no suena bien, al observar las vulnerabilidades señaladas para TrueUSD, el ingeniero de seguridad de TrustToken, William Morriss, dijo que todas las inquietudes identificadas en realidad no eran “críticas“.

“Las vulnerabilidades que se informan no son formas en las que podamos ser atacados … Somos conscientes de ellas y cuando las personas nos presentan vulnerabilidades las tratamos con mucha seriedad”, dijo Morriss.

En relación con el tema de las llamadas de mensajes específicamente, Morriss agregó que para TrueUSD, todos los contratos externos son propiedad y están operados por las propias empresas, en contraposición a terceros con estándares de seguridad potencialmente más bajos.

¿Cómo conseguir una A +?:


Los errores de “alta” gravedad afectarán más a la calificación de seguridad de la aplicación porque indican un mayor potencial de error de código y explotación.

Uno de los más comunes de estos, el “desbordamiento de enteros“, indica que las operaciones realizadas dentro de un smart contract podrían generar valores que excedan las limitaciones del código, lo que lleva a un comportamiento impredecible y descontrolado que, en el peor de los casos, podría conducir a la pérdida de fondos.

El lado opuesto es el “flujo de flujo entero”, otra vulnerabilidad de gravedad “alta”, por la cual puede suceder el reverso exacto y un valor por debajo del rango definido, causa igualmente una salida errónea.

También hay algunas características en Solidity que los desarrolladores de Dapp deberían evitar, de acuerdo con el sistema de calificación de Amberdata, incluyendo “suicide” y “tx.origin”.

Este último es descrito por Español como “código desaprobado” que puede ser eliminado del lenguaje de Solidity en conjunto en una actualización futura, mientras que el primero presenta el riesgo de ser secuestrado por terceros para congelar los fondos de los usuarios, que nunca podrán recuperar.

Dado que no tiene ninguna de estas cuatro vulnerabilidades, el famoso Ethereum Dapp CryptoKitties actualmente tiene una calificación de seguridad A + en Amberdata. El ingeniero de software de CryptoKitties, Fabiano Soriani, lo atribuye a “implementar tantas pruebas como podamos”.

Agregando que los “recursos pasivos” como la documentación escrita y los tutoriales en video sobre el desarrollo de las Dapp, no ​​son suficientes para crear aplicaciones seguras en Ethereum, Soriani dijo:

“Cuando alguien ejecuta una auditoría, le señalan cosas. Es un paso complementario muy bueno para recursos pasivos, porque los desarrolladores que vienen de un fondo más tradicional no están familiarizados con Blockchain”.

Es un nuevo conjunto de problemas:


De hecho, cuando se trata de construir Dapps, la importancia de un código impenetrable y hermético no puede ser subestimada. El razonamiento central para esto es doble.

Primero, a diferencia de las aplicaciones tradicionales, los Dapps son generalmente programas informáticos de código abierto y, como explica Morriss, se requiere “un mayor nivel de precaución” cuando se ejecuta un código que es “público”.

“Si hay algún error en una aplicación tradicional, es posible que pueda salirse con la suya durante varios años, pero si tiene un error en su smart contract, la gente lo encontrará rápidamente y se aprovechará de él para su destrucción o para su beneficio”, dijo Morriss.

En segundo lugar, los Dapps en Ethereum se ejecutan exclusivamente en estos Smart Contracts, especialmente codificado en el lenguaje de programación Solidity y ejecutado en el centro neurálgico de la Blockchain de Ethereum Virtual Machine (EVM), una fortaleza clave de los Dapps es que no se pueden cambiar.

El inconveniente de esto es obvio. Los programadores no pueden fácilmente corregir errores o errores en el software una vez implementado en la cadena de bloques.

Dejar respuesta

Please enter your comment!
Please enter your name here

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.