Introducción
Los contratos inteligentes (o smart contracts) están transformando la manera en que realizamos transacciones y gestionamos activos digitales en la blockchain de Ethereum. Sin embargo, como cualquier producto de software, no están exentos de problemas de seguridad. Un claro ejemplo de esto fue el DAO Hack en 2016, donde un atacante aprovechó una vulnerabilidad para robar 3,54 millones de ether, destacando la importancia de mantener una seguridad robusta en estos contratos.
Vulnerabilidades en Smart Contracts
- Denegación de Servicio (DoS): Un ataque de DoS puede bloquear el acceso a funciones críticas o agotar el gas del contrato, impidiendo su correcto funcionamiento.
- Fallas en Controles de Acceso: Permite que usuarios no autorizados accedan a funciones que deberían estar restringidas, comprometiendo la integridad del sistema.
- Información Privada en la Blockchain: La información almacenada en la blockchain es pública y se puede comprometer la confidencialidad si no se cifra adecuadamente.
- Llamadas Inseguras a Contratos Externos: El uso de delegatecall() con contratos no confiables puede permitir que se manipule el estado interno del contrato que realiza la llamada.
HACONTI – Desafíos de Ciberseguridad
HACONTI (Hackeá Al Contrato No Tan Inteligente) es una plataforma web que brinda desafíos de ciberseguridad basados en smart contracts desarrollados en Solidity. Cada nivel o desafío de la plataforma consta de un contrato inteligente con alguna vulnerabilidad que debe ser explotada para su resolución.
La plataforma cuenta con un total de treinta niveles, agrupados en tres categorías distintas, cada uno con una dificultad asociada. Dos de las características más destacables de HACONTI son la abundante información contextual que se proporciona sobre las vulnerabilidades de los niveles y el novedoso sistema de puntos que presenta.

Menú principal de HACONTI
Categorías de los Desafíos
- Categoría 1 (Introductoria): Niveles diseñados para familiarizar a los jugadores con Ethereum y smart contracts, y proporcionar habilidades básicas para desplegar e interactuar con contratos en Solidity sin experiencia previa.
- Categoría 2 (Vulnerabilidades Simples): Niveles enfocados en enseñar sobre vulnerabilidades específicas, asociadas a un SWC (Smart Contract Weakness Classification) y/o SCSVS (Smart Contract Security Verification Standard) particular.
- Categoría 3 (Vulnerabilidades Complejas y Encadenadas): Niveles más difíciles que combinan diversas vulnerabilidades simples, las cuales deben ser explotadas en cadena para completarlos, poniendo a prueba las habilidades adquiridas al resolver niveles previos.
Información Contextual de los Desafíos

- Descripción: Detalles sobre el desafío.
- Hints: Pistas desbloqueables con puntos.
- Hints Adicionales: Pistas extra que requieren más puntos.
- SWC y SCSVS: Información sobre vulnerabilidades y checklists asociados, desbloqueables con puntos adicionales.

Información del nivel “Puntero”
Por otra parte, tras resolver un nivel también se desbloquea:
- Información Adicional: Detalles técnicos sobre la resolución del nivel.
- Casos Reales: Ejemplos de incidentes del mundo real en los que atacantes robaron millones de ether debido a vulnerabilidades similares a las del nivel resuelto.
- Código Corregido: Código fuente corregido del contrato, demostrando cómo remediar la vulnerabilidad. Puede haber más de una versión de la remediación.
- Las Hints, Hints Adicionales y la información de SWC y SCSVS asociadas al nivel resuelto se desbloquean automáticamente sin importar la cantidad de puntos del jugador.

Información desbloqueable del nivel “NombreConstructor”
Sistema de Puntos de HACONTI
