Las 5 vulnerabilidades más habituales de los Smart Contracts

(Nota del editor: teniendo en cuenta que la mayor parte de la información sobre blockchain se encuentra en inglés y las traducciones al castellano de los conceptos son relativamente jóvenes, y para facilitar la comprensión del contenido, hemos evitado traducir algunos términos específicos de blockchain. Pedimos disculpas a los puristas, empezando por uno mismo)

El artículo de hoy está escrito por Stefan Beyer, CEO @ Cryptonics, Consultor de Blockchain y Auditor de Contratos Inteligentes. Disfruten.


Es difícil conseguir hacer bien un smart contract. Sus tres propiedades principales, la capacidad de representar valor, la transparencia y la inmutabilidad son esenciales para su funcionamiento. Sin embargo, estas propiedades también los convierten en un riesgo para la seguridad y un objetivo de gran interés para los ciberdelincuentes. Incluso sin ataques deliberados, hay muchos ejemplos de fondos que se bloquean y de empresas que pierden dinero debido a los fallos y vulnerabilidades de los smart contracts.

En los últimos dos años, en Cryptonics hemos auditado los smart contracts de más de 40 proyectos. Estos incluyen diferentes tipos de tokenización de activos, pólizas de seguro, plataformas financieras descentralizadas, fondos de inversión e incluso juegos de ordenador.

Como resultado, hemos observado ciertas tendencias en las vulnerabilidades que solemos encontrar, y algunas son más comunes que otras. En este artículo, describiremos los cinco problemas más comunes que hemos venido detectando en nuestras actividades de auditoría.

[Read more…]

Seguridad de contratos inteligentes basados en Blockchain II – Vulnerabilidades y riesgos

En la parte anterior de esta serie sobre la seguridad de blockchain vimos los riesgos asociados con la implementación autónoma y la ejecución de contratos inteligentes en un blockchain público. También presentamos algunos ejemplos de alto perfil de ataques a contratos inteligentes que han causado la pérdida de grandes sumas de dinero y han cambiado la forma en que vemos las interacciones comerciales en la cadena de bloques.

En este episodio, repasaremos algunos problemas conocidos y vulnerabilidades.

Fuga de clave privada

El uso de claves privadas no seguras es realmente un error del usuario, en lugar de una vulnerabilidad. Sin embargo, lo mencionamos, como sucede sorprendentemente a menudo, y ciertos actores se han especializado en robar fondos de direcciones inseguras.

Lo que generalmente ocurre es que las direcciones de desarrollo (como las utilizadas por las herramientas de prueba, como Ganache/TestPRC) se utilizan en producción. Estas son direcciones generadas a partir de claves privadas conocidas públicamente. Algunos usuarios incluso han importado estas claves sin saberlo en el software de cartera virtual, al usar las palabras de semilla originales usadas en la generación de la clave privada.

Los atacantes están monitorizando estas direcciones y cualquier cantidad transferida a dicha dirección en la red principal de Ethereum tiende a desaparecer inmediatamente (dentro de 2 bloques).
[Read more…]

Seguridad de contratos inteligentes basados en Blockchain I

Recientemente, la tecnología blockchain ha sido promovida como un elemento de cambio para muchas industrias. La tecnología de contabilidad distribuida que surgió de Bitcoin tiene aplicaciones prometedoras más allá de las monedas digitales.

Uno de los casos de uso más prometedores de la tecnología blockchain es la elaboración de contratos inteligentes.

Los contratos inteligentes son contratos autoejecutables, en los que los términos se especifican en el código. Básicamente, esto significa implementar contratos legales en código de ordenador, que los ejecuta automáticamente.

Si bien el concepto existe desde hace tiempo, al menos desde que Nick Szabo escribió el concepto en 1996, no fue hasta la llegada del blockchain de Ethereum con la capacitad de expresar cualquier computación (“Turing complete”), que el uso del contrato inteligente se hizo común.

Los contratos Ethereum existen en direcciones de contrato y pueden invocarse mediante llamadas de transacción.

Ejecutar contratos escritos en código y almacenados en un blockchain público inmutable crea ciertos riesgos y problemas, que discutiremos de forma general en esta publicación. En una próxima segunda parte, veremos ejemplos más específicos de vulnerabilidades de seguridad de contratos inteligentes. [Read more…]