- Volver al menú
- Volver al menúPrecios
- Volver al menúInvestigación
- Volver al menúConsenso
- Volver al menú
- Volver al menú
- Volver al menú
- Volver al menúWebinars y Eventos
Cómo las aplicaciones de Ethereum obtienen calificaciones de seguridad A+
Más de 1,2 millones de aplicaciones de Ethereum han utilizado una herramienta de seguridad poco conocida de Amberdata para ayudar a evitar errores costosos en los contratos inteligentes.
Más de 1,2 millones de aplicaciones de Ethereum han utilizado una herramienta de seguridad poco conocida para ayudarlas a evitar los costosos errores que surgen de las líneas de código autoejecutables conocidas como contratos inteligentes.
Lanzada en octubre por la startup de Tecnología Ethereum , Amberdata, esta herramienta gratuita está disponible para que cualquier persona interprete la seguridad de las aplicaciones activas en la blockchain de Ethereum . Los contratos inteligentes con errores explotados han provocado enormes pérdidas, incluso de hasta...cientos de millones.
El servicio automatizado escanea en busca de vulnerabilidades comunes encontradas en el código del contrato inteligente y genera una calificación de letras (por ejemplo, A, B o C) para la seguridad de una aplicación descentralizada (aplicación dapp).
Esta función es una de las muchas herramientas que fomentan las mejores prácticas y una mayor transparencia entre los desarrolladores de dapp y los usuarios finales en el ecosistema Ethereum .
Además, es una función que lleva bastante tiempo presente en el mundo web. El navegador DuckDuckGo, centrado en la privacidad, lanzó recientemente una extensión para Chrome que permite calificar sitios web (no dapps) con una calificación de letras, lo que permite a los usuarios comprender fácilmente la eficacia o la ineficacia de los administradores de servicios para proteger la Privacidad del usuario.
"Nuestra visión es elevar el estándar de confianza en línea", escribe DuckDuckGo en unentrada de bloga partir de enero de 2017.
De manera similar, la visión detrás de la herramienta de clasificación de seguridad de Amberdata, como lo destacó el CEO de Amberdata, Shawn Douglass, en un comunicado de prensa, es brindar "mayor acceso y visibilidad mejorada en los contratos inteligentes".
Añadió:
Esperamos que, al brindar estas herramientas a la comunidad, podamos reducir la dependencia externa y permitir que la comunidad se desarrolle con mayor rapidez y seguridad.
Las calificaciones
Pero ¿cómo se califican exactamente estas aplicaciones en Ethereum en Amberdata?
Al señalar 13 tipos de vulnerabilidades escaneadas automáticamente por el programa, Joanes Español, director de tecnología de Amberdata, comparó cada una de ellas con “las luces del motor en el tablero de [un automóvil]”.
"Simplemente significa que necesito verificar qué está pasando con el auto. Cualquiera de estos puede resultar en un error de seguridad", explicó Español a CoinDesk.
Cuantos más errores de seguridad detecte el análisis de seguridad de Amberdata, menor será la calificación que recibirá una dapp. Estas calificaciones van desde A+ hasta F.
Pero no dependen estrictamente del número de errores de seguridad. Cada una de las 13 vulnerabilidades tiene distintos grados de gravedad, explica Español, lo que afectará la calificación final de una dapp. Dos vulnerabilidades comunes de baja gravedad señaladas por Español incluyen la "llamada de delegado a una dirección proporcionada por el usuario" y la "llamada de mensaje a un contrato externo".
Esto último puede representar un riesgo de seguridad potencial si una dapp, en lugar de estar contenida en un contrato inteligente, llama a contratos adicionales que poseen código defectuoso.
De manera similar, una llamada de delegado es otra operación que normalmente se utiliza para dividir el código de un contrato inteligente en múltiples subcontratos, de modo que cualquier actualización necesaria del software se pueda realizar de forma gradual sin terminar toda la aplicación.
“Eso es lo bueno de esas llamadas de delegados. Pero lo malo es que ahora, como titular del contrato, podría empezar a hacer cosas malas. Así que podría empezar a reemplazar contratos que alteren 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, una de estas dapps que actualmente aprovecha las llamadas de mensajes y que ya había implementado una actualización de contratos inteligentes mediante llamadas delegadas en enero es TrueUSD. Creada por la startup blockchain TrustToken, la stablecoin respaldada por USD en Ethereum se encuentra actualmente en una posición... 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, le dijo a CoinDesk en una entrevista anterior que todas las preocupaciones identificadas en realidad no eran "críticas".
“Las vulnerabilidades que se reportan no son formas en las que podamos ser atacados… Estamos conscientes de ellas y cuando las personas nos las presentan, las tratamos con mucha seriedad”, dijo Morriss.
Al profundizar específicamente en el tema de las llamadas de mensajes, Morriss agregó que para TrueUSD, todos los contratos externos son propiedad de las propias empresas y están operados por ellas, a diferencia de terceros con estándares de seguridad potencialmente más bajos.
Cómo obtener una A+
Los errores de gravedad "alta" afectarán más la calificación de seguridad de la aplicación porque indican un mayor potencial de error de código y explotación.
ONE de los más comunes, el “desbordamiento de enteros”, indica que las operaciones realizadas dentro de un contrato inteligente podrían generar valores que excedan las limitaciones del código, lo que lleva a un comportamiento extraño e impredecible que, en el peor de los casos, podría provocar la pérdida de fondos.
La otra cara de la moneda es el “desbordamiento de enteros”, otra vulnerabilidad de gravedad “alta”, por la cual puede suceder exactamente lo contrario y un valor por debajo del rango definido causa de manera similar un resultado erróneo.
También hay algunas características en Solidity que los desarrolladores de dapps deberían evitar, según el sistema de calificación de Amberdata, incluyendo "suicide()" y "tx.origin". Este último es descrito por Espanol como "código obsoleto" que puede ser eliminado del lenguaje Solidity por completo en una fecha futura, mientras que el primero representa 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 infamemente La popular aplicación descentralizada de Ethereum, CryptoKitties, actualmente tiene una A+Clasificación de seguridad de Amberdata. El ingeniero de software de CryptoKitties, Fabiano Soriani, lo atribuye a «implementar tantas pruebas como sea posible».
Añadiendo que los "recursos pasivos" como la documentación escrita y los tutoriales en vídeo sobre el desarrollo de dapps no son suficientes para crear aplicaciones seguras en Ethereum, Soriani le dijo a CoinDesk:
Cuando alguien realiza una auditoría, Para ti señala cosas. Es un excelente recurso complementario [a los recursos pasivos] porque los desarrolladores con un enfoque más tradicional no están familiarizados con blockchain.
'Es un nuevo conjunto de problemas'
De hecho, al desarrollar dapps, no se puede subestimar la importancia de un código hermético e impenetrable. La razón CORE para ello es doble.
En primer lugar, a diferencia de las aplicaciones tradicionales, las 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 código que es "público".
"Si hay algún error en una aplicación tradicional, es posible que puedas evitarlo durante varios años... pero si tienes un error en tu contrato inteligente, la gente lo encontrará rápidamente y se aprovechará de él, ya sea para tu destrucción o para su propio beneficio", dijo Morriss.
En segundo lugar, las dapps en Ethereum se ejecutan exclusivamente con contratos inteligentes. Están codificados específicamente en el lenguaje de programación Solidity y se ejecutan en el centro neurálgico de la blockchain, llamado... Máquina virtual de Ethereum (EVM)Una de las principales ventajas de las dapps es que no se pueden modificar.
La desventaja es obvia: los programadores no pueden corregir fácilmente errores o fallos en el software una vez implementado en la cadena de bloques.
Morriss dijo a CoinDesk que era importante que los desarrolladores no se convirtieran en víctimas de su propia "arrogancia" y se aseguraran de que "las pruebas cubran cada rama de su código".
“Con Ethereum, hay un nuevo conjunto de problemas que la gente no conoce cuando codifica en Solidity”, enfatizó Español a CoinDesk.
Imagen de programaciónvía Shutterstock
Christine Kim
Christine es analista de investigación en CoinDesk. Se centra en generar información basada en datos sobre la industria de las Criptomonedas y la cadena de bloques. Antes de su puesto como analista de investigación, Christine fue reportera de tecnología para CoinDesk, cubriendo principalmente los avances en la cadena de bloques Ethereum . Tenencias de Criptomonedas : Ninguna.
