-
El equipo de auditores de OpenZeppelin alerta que los errores ocultos son vulnerables a los ataques.
-
Están en peligro los contratos inteligentes que no han sido auditados.
Los contratos inteligentes son vulnerables a los ataques, esa es la conclusión a la que llega el equipo de OpenZeppelin, la empresa que crea herramientas para desarrolladores y realiza auditorias de seguridad para sistemas distribuidos mediante contratos inteligentes, los bloques que forman la red Ethereum y los responsables de la transferencia de millones de dólares.
La empresa con sede en el Reino Unido, fundada en 2015, se jacta de tener redes por valor de más de 4.500 millones de dólares construidas utilizando sus sistemas. Además de las auditorías de seguridad para aplicaciones descentralizadas (DApps), la empresa también construye una infraestructura de código abierto para facilitar a los nuevos desarrolladores la creación de complejas aplicaciones sobre la cadena de bloques.
Si las aplicaciones descentralizadas fuesen arterias, los contratos inteligentes serían la sangre que circula por ellas. Cualquier defecto dentro de este código podría suponer un problema para una empresa, que en este sistema sería como el cuerpo humano. Sin embargo, existen los doctores que en nuestra analogía, serían el equipo de OpenZeppelin.
A principios de este año, MakerDAO, la Organización Autónoma Descentralizada (DAO) detrás de la stablecoin DAI, anunció una actualización crítica de seguridad después que se descubriera una vulnerabilidad en el contrato inteligente de gobernanza.
El problema que se presentó en el sistema de votación para la gobernanza de MakerDAO se originó en una vulnerabilidad en el funcionamiento de contratos inteligentes implementados para el proceso de votaciones, lo cual fue descubierto durante la segunda ronda de auditorías de seguridad, que en ese momento formó parte del trabajo realizado junto a la casa de cambio de criptomonedas Coinbase y OpenZeppelin. Un logro importante para el equipo de desarrolladores de la empresa de seguridad.
Sobre estos aspectos, Iván Gómez de CriptoNoticias conversó con Martin Abbatemarco y Juan Carpanelli, representantes de OpenZeppelin en Argentina.
¿Cuáles han sido las vulnerabilidades más frecuentes o los errores más comunes que encuentran a la hora de revisar contratos?
La última que encontramos nos parece que es la más interesante, la cual se encontró sobre Maker, uno de los procesos más grandes que hicimos con millones de dólares soportados por sus contratos. Zeppelin terminó encontrando una vulnerabilidad muy importante en el sistema de votación de Maker que llevó a que se tuvieran que mirar los contratos inteligentes de Maker para poder evitar esa vulnerabilidad, así que esa fue una de las más importantes.
Lo que pasó fue que se encontraron problemas en los negocios o en los contratos inteligentes. No son vulnerabilidades asociadas a Ethereum en particular o al protocolo base de Ethereum, sino simplemente encontramos errores en los programadores y por ello corrían alguna función mal o de alguna manera incorrecta y nosotros como sistema de vitalidad atacantes, nos tocó justamente encontrarlos y atacarlos y bueno salió bien.
¿Y precisamente esos errores son de adecuación del contrato, de la idea de negocio?
Si, fundamentalmente es eso. A veces no tienen muy claro cuáles son las especificaciones de sus proyectos y nosotros necesitamos estas especificaciones para intentar entender entre lo que el código hace y lo que el código quiere hacer. Muchas veces ni siquiera el proyecto tiene claro lo que el código quiere hacer y nosotros logramos encontrar formas de atacar el proyecto donde ellos no se esperan que nosotros ataquemos porque piensan el proyecto de cierta forma, pero nosotros como auditores tenemos la capacidad de pensar el proyecto de otra forma.
¿Y tú crees que estos errores se produzcan porque aún no han madurado lo suficiente el número de desarrolladores del ecosistema, o se deba a que todavía falta talento o experiencia, o se deba a alguna dificultad en los lenguajes?
Yo creo que es un tema normal, porque cometer errores es algo humano y que es inherente al desarrollo del software y siempre va a haber errores. El tema es que aquí hay que hacer énfasis en hacer las cosas bien porque hay mucha plata de por medio. Tenemos un contrato inteligente, no es como un software cualquiera, y si alguien encuentra una vulnerabilidad antes de que nosotros la encontremos o antes de que el dueño del contrato la encuentre, la puede explotar y hay inversiones en juego, y por eso hay que hacer más énfasis en esa parte. Pero es inherente al ciclo de desarrollo del software. Siempre va a haber vulnerabilidades y el tema es llevarlo a un proceso en el cual puedas mitigar de la mejor manera todo eso.
Y en cuanto a temas de programación de lenguaje en blockchain, sobre todo en Ethereum, donde se ha hablado de que Solidity es un lenguaje más o menos complicado, igual que el lenguaje de Bitcoin, son lenguajes difíciles de desarrollar ¿Cómo ven esta área, hay más madurez en desarrollo, hay búsquedas para hacer un lenguaje más sencillo para desarrollos más seguros?
Hay otros lenguajes, está también Vyper que es un lenguaje muy parecido a Python y aun así Solidity es el lenguaje que más estable está hoy por hoy, el que nosotros también recomendamos usar. Incluso nuestros contratos inteligentes en Zeppelin están hechos en Solidity, los de Zeppelin (contratos) nuevos también. Hay una comunidad detrás de Solidity, de seres humanos muy inteligentes que han hecho de un lenguaje, algo que está bastante verde, algo que ha madurado bastante. Y si yo tuviese que recomendar un lenguaje, es sin duda Solidity.
¿En qué anda Zeppelin ahora, cuáles son los próximos proyectos? ¿Qué tienen sobre la mesa? ¿Cómo está avanzando la empresa?
La empresa básicamente hoy está compuesta por dos equipos: el equipo de research, que se dedica básicamente a hacer auditorías de proyectos. Está, por otro lado, el equipo de la platform que está compuesto por dos aristas: los contracts que son los que todos conocen como OpenZeppelin contracts y la arista de la platform que se encargan de tener todo para poder crear el smart contract, subirlos a una blockchain, poder hacer una DApp y comunicarnos con esos contratos de una manera fácil, rápida, simple, sin tener un conocimiento superprofundo en lo que es, no solamente desarrollo de software en general, sino desarrollo de blockchain.
Adicionalmente OpenZeppelin está trabajando en un conjunto de productos para desarrolladores de Ethereum, que incluye contratos, SDK y kits de inicio. También trabajan en las Estaciones de Servicio de Gas para meta transacciones. Se trata de una red descentralizada de retransmisores que se usan para enviar transacciones de ETH sin que los usuarios finales paguen por el gas que normalmente se cobra por el costo de las transacciones.
Las Estaciones de Servicio de Gas (GNS por sus siglas en inglés) surgieron como solución alternativa a los obstáculos que dificultan la adopción masiva de las criptomonedas, que en el caso de la red de Ethereum obligan a interactuar con varias aplicaciones, instalar extensiones y pagar por el gas, entre otros requerimientos para el usuario.