¿Qué son los Smart Contracts?
Un contrato inteligente (Smart Contract) puede definirse como un protocolo de transacción informatizado que ejecuta automáticamente los términos de un contrato cuando se cumplen determinadas condiciones. Almacenados dentro de una cadena de bloques (blockchain) como Ethereum, los contratos inteligentes permiten que el contrato se ejecute sin necesidad de intermediarios ni de intervención humana.
Fallos de seguridad a lo largo de la historia de los Smart Contracts sin auditar.
Tal y como podemos leer en el siguiente documento del CCN-CERT , solamente la capitalización de mercado de la red Ethereum es de más de 11 mil millones de dólares americanos, por lo que las redes blockchain y los sistemas de aplicaciones descentralizadas, en los que se encuentran los Smart Contracts, son un objetivo muy goloso para las mafias criminales que quieren su botín.
Ejemplos de proyectos atacados por cibercriminales:
TheDAO hack:
- Iniciativa creada por miembros de la comunidad Ethereum
- Su motivo era proporcionar una plataforma para la financiación de nuevas empresas sin intermediarios
- Cotizó hasta los 250 millones de dólares
- Fue atacada aprovechando un error de programación de los Smart Contracts
- Consecuencias:
- Coste del ataque de 55 millones de dólares
- Hard Fork para solucionar la pérdida de capital por parte de los inversores
- Inversores perdieron confianza
Crypto Legions Bloodstone:
- Juego basado en tokens NFT
- Lógica de juego residente en Smart Contracts
- Fallo de seguridad en la lógica de los Smart Contract (falsa aleatoriedad) hizo que los cibercriminales aprovechasen el fallo para extraer toda la liquidez del juego
- Referencia de interés: https://cryptolegions.medium.com/what-happened-to-crypto-legions-3b9dfc57809b
- Consecuencias:
- Robo de la capitalización del mercado
- Pérdida de confianza de los jugadores
- Pérdida de la inversión de los jugadores
En qué consiste la auditoría de Smart Contracts.
La auditoría de Smart Contracts de las redes blockchain Ethereum Virtual Machine (EVM) compatible (Ethereum, BSC y POLYGON entre otras) consta en analizar un contrato inteligente a nivel de código y dinámico. Es decir, el auditor primeramente analizará el flujo de funcionamiento de los contratos expuesto por el desarrollador y, posteriormente, realizará un análisis del código para revisar posibles fallas que puedan darse en su utilización dentro de la blockchain. Una vez se han identificado posibles vulnerabilidades, el auditor integrará dichos contratos en una red de pruebas privada con Ganache, Truffle y Remix, lo que permitirá al auditor analizar los comportamientos dinámicos de los contratos, así como examinar transferencias de costes pesados que serían imposibles de analizar en una red de pruebas de las propias blockchain (la emisión de moneda para prueba en esos casos está muy limitados).
¿Qué tipo de Smart Contract auditamos?
Auditamos Smart Contracts basados en blockchains tipo EVM programados en lenguaje Solidity, y estos pueden ser de los siguientes tipos:
- Tokens NFT (ERC 721, 1155)
- Tokens fungibles (ERC 20)
- Oráculos
- Smart Contracts de lógica de dApps (juegos, genéricos, etc)
Software SAST para análisis de código asistido.
Para los análisis de código (SAST) el auditor se apoya en herramientas respaldadas por la comunidad Ethereum.
Ejemplos de vulnerabilidades que podemos identificar.
- Vulnerabilidades de reentrada
- Errores aritméticos de números enteros
- Vulnerabilidades de límite de gas
- Falta de comprobaciones esenciales (parámetros y/o transacciones)
- Front-running
- ETH send rejection
- Overflow de enteros
- Bugs de lógica
Equipo de Ciberseguridad