Simple Science

Ciencia de vanguardia explicada de forma sencilla

# Informática# Ingeniería del software

Nueva herramienta SliSE detecta vulnerabilidades en contratos inteligentes

SliSE mejora la detección de vulnerabilidades de reentrancia en contratos inteligentes complejos.

― 6 minilectura


SliSE: Herramienta deSliSE: Herramienta deVulnerabilidad de SmartContractsmanera efectiva.contratos inteligentes complejos deSliSE detecta fallos de reentrancia en
Tabla de contenidos

Los Contratos Inteligentes son programas de computadora que funcionan en una blockchain. Ayudan a automatizar transacciones sin necesidad de un intermediario. Sin embargo, pueden tener debilidades, lo que los hace vulnerables a ataques. Uno de los mayores riesgos se llama "reentrancia", donde un usuario malicioso puede seguir llamando a una función antes de que termine de ejecutarse. Esto puede generar pérdidas financieras.

Detectar estas Vulnerabilidades se ha vuelto crucial a medida que aumenta la complejidad de los contratos inteligentes. Existen muchas herramientas para revisar estos problemas, pero a menudo tienen dificultades con contratos complejos. Este artículo va a hablar sobre una nueva herramienta diseñada para detectar vulnerabilidades de reentrancia de manera más efectiva.

¿Qué es la Reentrancia?

Las vulnerabilidades de reentrancia ocurren cuando un contrato inteligente permite una llamada externa a otro contrato y un atacante puede aprovechar esto para reingresar al contrato original antes de que termine su primera ejecución. En términos más simples, es como un trabajo inconcluso que alguien vuelve a interrumpir. Imagina que estás enviando dinero y antes de que la transacción se complete, puede volver a enviarse la misma solicitud, vaciando tu cuenta.

Este tipo de vulnerabilidad fue explotado de manera famosa en el ataque a DAO en 2016, lo que causó pérdidas financieras significativas. Desde entonces, investigadores y desarrolladores han estado trabajando arduamente para encontrar maneras efectivas de detectar y solucionar estos problemas.

Desafíos Actuales en la Detección

Muchas herramientas existentes que buscan vulnerabilidades de reentrancia a menudo fallan en detectarlas en contratos inteligentes complejos. La mayoría de estas herramientas trabajan en base a ejemplos más simples que no reflejan aplicaciones del mundo real. A medida que los contratos inteligentes se vuelven más complicados, se vuelve más difícil para las herramientas analizarlos con precisión.

Un estudio reciente reveló que muchas herramientas de detección tenían bajas tasas de éxito, especialmente al tratar con contratos complejos con numerosas funciones e interacciones. Las herramientas que se centran en una función a la vez suelen perder vulnerabilidades que surgen de las interacciones entre múltiples funciones o contratos.

Presentando SliSE

Para enfrentar estos desafíos, se desarrolló una nueva herramienta llamada SliSE. SliSE significa Detección de Vulnerabilidades en Contratos Inteligentes Basada en Slicing y Ejecución. Esta herramienta está diseñada para detectar eficazmente vulnerabilidades de reentrancia en contratos inteligentes complejos al desglosar el análisis en dos etapas principales.

Etapa 1: Búsqueda de Advertencias

En la primera etapa, SliSE analiza el código del contrato inteligente para identificar posibles vulnerabilidades. Utiliza una técnica llamada slicing de programas, que simplifica el código al concentrarse en partes relevantes para la vulnerabilidad que se está revisando. Para hacer esto, SliSE construye un gráfico llamado Grafo de Dependencia de Programa Inter-contrato (I-PDG). Este gráfico muestra cómo diferentes partes del contrato dependen entre sí.

Al examinar el I-PDG, SliSE puede encontrar funciones sospechosas y generar advertencias sobre vulnerabilidades potenciales. Este paso reduce el análisis a solo las partes del código que necesitan un chequeo adicional, haciendo el proceso más rápido y eficiente.

Etapa 2: Verificación de Ejecución Simbólica

La segunda etapa de SliSE implica un examen más profundo de las advertencias identificadas en la etapa uno. Esto se hace usando un método llamado ejecución simbólica. Aquí, SliSE revisa los caminos del código que pueden llevar a vulnerabilidades para verificar si son alcanzables.

La ventaja de la ejecución simbólica es que permite a SliSE explorar múltiples caminos de ejecución y verificar cómo cambiar ciertas variables podría afectar el resultado. Al hacer esto, puede determinar si un camino podría llevar efectivamente a una vulnerabilidad de reentrancia o si las medidas de protección en el código lo evitan.

Efectividad de SliSE

Para probar cuán bien funciona SliSE, se comparó con ocho otras herramientas que se consideran de vanguardia en el campo. Los resultados mostraron que SliSE tuvo un rendimiento significativamente mejor al detectar vulnerabilidades de reentrancia. Específicamente, logró una puntuación F1 del 78.65%, mucho más alta que la mejor puntuación del 9.26% de las otras herramientas.

En términos de recall, que mide cuántas vulnerabilidades reales se encontraron, SliSE superó el 90% para contratos en Ethereum. Este rendimiento demuestra que SliSE es robusto y eficiente al lidiar con contratos complejos, convirtiéndolo en una valiosa adición al arsenal de herramientas disponibles para la seguridad de contratos inteligentes.

La Importancia de la Detección Precisa

Detectar vulnerabilidades con precisión es crucial para la seguridad de los fondos en contratos inteligentes. Con la creciente adopción de la tecnología blockchain y aplicaciones descentralizadas (DApps), las apuestas financieras son más altas que nunca. Una sola vulnerabilidad puede llevar a pérdidas financieras significativas, y como tal, la necesidad de métodos de detección confiables no puede ser subestimada.

SliSE se destaca por su capacidad para manejar contratos complejos, donde la mayoría de las herramientas existentes fallan. El proceso de dos etapas de búsqueda de advertencias y ejecución simbólica le permite proporcionar un análisis más completo, reduciendo las posibilidades de pasar por alto vulnerabilidades críticas.

Aplicaciones Reales y Beneficios

La introducción de SliSE tiene implicaciones prácticas para desarrolladores y organizaciones que trabajan con tecnología blockchain. Al integrar SliSE en su flujo de trabajo de desarrollo, los equipos pueden identificar vulnerabilidades desde temprano en el proceso de creación de contratos inteligentes. Este enfoque proactivo reduce el riesgo y ayuda a asegurar que los contratos estén seguros antes de estar en vivo.

Además, SliSE puede servir como una herramienta de aprendizaje para los desarrolladores. Al entender cómo se detectan las vulnerabilidades, los desarrolladores pueden diseñar mejor sus contratos con la seguridad en mente. Este conocimiento puede fomentar una cultura de pensamiento centrado en la seguridad en el desarrollo de aplicaciones descentralizadas.

Conclusión

A medida que los contratos inteligentes se vuelven más complejos, la necesidad de herramientas de detección efectivas crece. SliSE surge como una solución prometedora, combinando slicing de programas y ejecución simbólica para detectar vulnerabilidades de reentrancia en contratos complejos. Su impresionante rendimiento en comparación con las herramientas existentes demuestra su potencial para mejorar la seguridad de los contratos inteligentes.

Al proporcionar un método completo y eficiente para la detección de vulnerabilidades, SliSE puede ayudar a proteger a los usuarios y los fondos en aplicaciones descentralizadas, asegurando un entorno blockchain más seguro. El camino hacia contratos inteligentes seguros está en curso, y herramientas como SliSE son esenciales para navegar los desafíos que vienen.

Con la continua evolución del espacio blockchain, es crucial que los desarrolladores se mantengan actualizados sobre las mejores prácticas en seguridad y aprovechen herramientas como SliSE para salvaguardar sus innovaciones.

Fuente original

Título: Efficiently Detecting Reentrancy Vulnerabilities in Complex Smart Contracts

Resumen: Reentrancy vulnerability as one of the most notorious vulnerabilities, has been a prominent topic in smart contract security research. Research shows that existing vulnerability detection presents a range of challenges, especially as smart contracts continue to increase in complexity. Existing tools perform poorly in terms of efficiency and successful detection rates for vulnerabilities in complex contracts. To effectively detect reentrancy vulnerabilities in contracts with complex logic, we propose a tool named SliSE. SliSE's detection process consists of two stages: Warning Search and Symbolic Execution Verification. In Stage I, SliSE utilizes program slicing to analyze the Inter-contract Program Dependency Graph (I-PDG) of the contract, and collects suspicious vulnerability information as warnings. In Stage II, symbolic execution is employed to verify the reachability of these warnings, thereby enhancing vulnerability detection accuracy. SliSE obtained the best performance compared with eight state-of-the-art detection tools. It achieved an F1 score of 78.65%, surpassing the highest score recorded by an existing tool of 9.26%. Additionally, it attained a recall rate exceeding 90% for detection of contracts on Ethereum. Overall, SliSE provides a robust and efficient method for detection of Reentrancy vulnerabilities for complex contracts.

Autores: Zexu Wang, Jiachi Chen, Yanlin Wang, Yu Zhang, Weizhe Zhang, Zibin Zheng

Última actualización: 2024-03-17 00:00:00

Idioma: English

Fuente URL: https://arxiv.org/abs/2403.11254

Fuente PDF: https://arxiv.org/pdf/2403.11254

Licencia: https://creativecommons.org/licenses/by/4.0/

Cambios: Este resumen se ha elaborado con la ayuda de AI y puede contener imprecisiones. Para obtener información precisa, consulte los documentos originales enlazados aquí.

Gracias a arxiv por el uso de su interoperabilidad de acceso abierto.

Más de autores

Artículos similares