
La seguridad de los contratos inteligentes se ha convertido en una preocupación crítica en el ecosistema de blockchain. A medida que la adopción de aplicaciones descentralizadas (dApps) continúa expandiéndose, también lo hacen las vulnerabilidades que los ciberatacantes buscan explotar. La lista OWASP Top 10 smart contracts 2025 proporciona una guía esencial para desarrolladores y auditores, destacando las amenazas con mayor impacto que podrían comprometer la integridad y seguridad de los contratos inteligentes. Este artículo tiene como objetivo analizar estas vulnerabilidades, ofreciendo información clave y estrategias de mitigación para fortalecer la resiliencia de las aplicaciones blockchain.
Actualización del OWASP Smart Contract Top 10
La lista OWASP Top 10 Smart Contracts 2025 [1] proporciona una visión actualizada de las vulnerabilidades más críticas que afectan a los contratos inteligentes, lo que permite a los desarrolladores y auditores priorizar sus esfuerzos de seguridad de manera efectiva.
La actualización de la lista refleja la evolución del panorama de amenazas de los contratos inteligentes, con un mayor enfoque en las vulnerabilidades específicas de DeFi (finanzas descentralizadas). A partir de la imagen, podemos deducir las nuevas vulnerabilidades que se han introducido:
- Price Oracle Manipulation (manipulación del oráculo de precios) se ha añadido como SC02:2025, lo que indica la importancia de los oráculos de precios en DeFi y los riesgos asociados con su manipulación.
- Lack of Input Validation (falta de validación de entrada) se ha añadido como SC04:2025, lo que indica que la validación de datos sigue siendo un problema común en los contratos inteligentes.
- Flash Loan Attacks (ataques de préstamos rápidos) se ha añadido como SC07:2025 lo que resalta el impacto de los ataques de préstamos rápidos en el ecosistema DeFi.
A continuación, se analizan cada una de las vulnerabilidades junto con las mitigaciones y mejores prácticas de seguridad desde el punto de vista del desarrollo que se podrían aplicar para cada una.
- SC01:2025 – Vulnerabilidades de control de acceso: El control de acceso inadecuado permite a usuarios no autorizados modificar o acceder a datos confidenciales, lo que lleva a posibles manipulaciones o pérdidas de fondos en las carteras. Entre las mitigaciones que se pueden aplicar podemos destacar:
- Implementar el principio de mínimo privilegio, otorgando sólo los permisos necesarios a cada usuario o contrato.
- Utilizar modificadores de función para restringir el acceso a funciones que manejen datos más sensibles.
- Considerar el uso de patrones de diseño como Ownable o AccessControl de OpenZeppelin [2].
- Realizar auditorías de seguridad para identificar posibles lagunas en el control de acceso.
- SC02:2025 – Manipulación del oráculo de precios: Los atacantes manipulan los oráculos de precios para influir en el comportamiento de un contrato inteligente, lo que lleva a resultados inesperados o retiros no autorizados de fondos. Entre las mitigaciones que se pueden aplicar podemos destacar:
- Utilizar oráculos de precios descentralizados y de buena reputación que agreguen datos de múltiples fuentes.
- Implementar mecanismos de validación de precios para detectar valores anómalos.
- Monitorizar de forma continua los oráculos de precios en busca de posibles manipulaciones.
- SC03:2025 – Errores de lógica: Los errores en la lógica del contrato inteligente pueden llevar a un comportamiento inesperado o a la pérdida de fondos. Entre las mitigaciones que se pueden aplicar podemos destacar:
- Realizar pruebas exhaustivas de la lógica del contrato inteligente, incluyendo pruebas unitarias, de integración y de fuzzing.
- Realizar auditorías de seguridad para identificar posibles errores de lógica.
- Considerar el uso de lenguajes de programación y frameworks de desarrollo que ofrezcan soporte para la verificación formal de la lógica del contrato.
- SC04:2025 – Falta de validación de entrada: La validación de entrada inadecuada permite a los atacantes introducir datos maliciosos, lo que lleva a un comportamiento inesperado. Entre las mitigaciones que se pueden aplicar podemos destacar:
- Validar todas las entradas de usuario y de otros contratos, incluyendo tipos de datos, rangos y formatos.
- Utilizar bibliotecas y frameworks de validación de entrada para simplificar el proceso.
- Considerar el uso de listas blancas para permitir solo entradas conocidas y seguras.
- SC05:2025 – Ataques de reentrada: Un atacante podría explotar una función en un contrato inteligente para realizar llamadas externas a otros contratos antes de que se complete la primera transacción, lo que lleva a retiros no autorizados de fondos. Entre las mitigaciones que se pueden aplicar podemos destacar:
- Utilizar el patrón Checks-Effects-Interactions[3] para ordenar las operaciones del contrato.
- Implementar bloqueos de reentrada utilizando modificadores de función o variables de estado.
- Considerar el uso de la función transfer() en lugar de send() para limitar el consumo de gas.
- Realizar auditorías de seguridad para identificar posibles vulnerabilidades de reentrada.
- SC06:2025 – Llamadas externas no verificadas: Los contratos inteligentes que realizan llamadas externas a otros contratos sin la validación adecuada son vulnerables a ataques. Entre las mitigaciones que se pueden aplicar podemos destacar:
- Validar todas las llamadas externas, incluyendo la dirección del contrato y los datos de la llamada.
- Verificar la funciones que ejecutan los contratos.
- Considerar el uso de bibliotecas y frameworks de desarrollo que ofrezcan soporte para llamadas externas seguras.
- SC07:2025 – Ataques de préstamos rápidos (Flash Loan Attacks): Los atacantes podrían obtener préstamos rápidos para manipular el mercado y obtener ganancias. Entre las mitigaciones que se pueden aplicar podemos destacar:
- Diseñar contratos inteligentes que sean resistentes a la manipulación de precios.
- Implementar mecanismos de validación de precios para protegerse contra la su manipulación.
- Considerar el uso de disyuntores para pausar el contrato en caso de un ataque.
- Monitorizar el mercado en busca de posibles ataques de préstamos rápidos.
- SC08:2025 – Desbordamiento de enteros: Los atacantes manipulan operaciones aritméticas para causar desbordamientos, lo que resulta en un comportamiento inesperado y posible pérdida de fondos. Entre las mitigaciones que se pueden aplicar podemos destacar:
- Utilizar bibliotecas que ofrecen protección contra desbordamientos.
- Validar todas las operaciones aritméticas para asegurarse de que los resultados estén dentro de los rangos esperados.
- Considerar el uso de tipos de datos de longitud arbitraria para evitar desbordamientos.
- SC09:2025 – Aleatoriedad insegura: El uso de fuentes de aleatoriedad predecibles o sesgadas permite a los atacantes manipular los resultados de los contratos inteligentes, lo que podría originar pérdidas de fondos. Entre las mitigaciones que se pueden aplicar podemos destacar:
- Utilizar fuentes de aleatoriedad seguras y descentralizadas, como Chainlink VRF [4].
- Evitar el uso de funciones de hash o marcas de tiempo como fuentes de aleatoriedad.
- SC10:2025 – Ataques de denegación de servicio (DoS): Los atacantes abruman un contrato inteligente con solicitudes, lo que lo hace no disponible para usuarios legítimos. Entre las mitigaciones que se pueden aplicar podemos destacar:
- Limitar el consumo de gas de las funciones del contrato para evitar ataques de denegación de gas.
- Implementar mecanismos de control de acceso para limitar el número de solicitudes de cada usuario.
- Considerar el uso de soluciones de escalado de capa 2 para aumentar el rendimiento del contrato.
- Monitorizar el contrato en busca de posibles ataques de denegación de servicio distribuido (DDoS).
La lista OWASP Top 10 Smart Contracts 2025 ofrece una visión actualizada de las vulnerabilidades que afectan a los contratos inteligentes. La evolución desde la lista de 2023 refleja un panorama de amenazas dinámico, con un enfoque creciente en las vulnerabilidades específicas de DeFi y la manipulación financiera.
La priorización en las vulnerabilidades relacionadas con el control de acceso y la validación de datos destaca la importancia de las prácticas de desarrollo seguras y las auditorías que se realizan a nivel de código. De esta forma, comprender y mitigar estas vulnerabilidades por parte de los desarrolladores es la base para construir un ecosistema blockchain más seguro y confiable. La seguridad de los contratos inteligentes es un proceso continuo, y la adopción de las mitigaciones es esencial para garantizar la integridad de las aplicaciones blockchain.
Referencias:
[1] https://scs.owasp.org/sctop10
[2] https://www.openzeppelin.com/solidity-contracts
[3] https://docs.soliditylang.org/en/v0.6.11/security-considerations.html