Asegurando Contratos Inteligentes: Una Nueva Esperanza
Un nuevo conjunto de datos mejora la seguridad de los contratos inteligentes al identificar vulnerabilidades.
Chavhan Sujeet Yashavant, MitrajSinh Chavda, Saurabh Kumar, Amey Karkare, Angshuman Karmakar
― 6 minilectura
Tabla de contenidos
- Por qué importan los contratos inteligentes
- Vulnerabilidades comunes en contratos inteligentes
- La necesidad de un conjunto de datos
- Limitaciones de los conjuntos de datos actuales
- La solución: un nuevo conjunto de datos
- Conjuntos de datos del mundo real y sintetizados
- Crowdsourcing para conjuntos de datos del mundo real
- Creación manual de conjuntos de datos
- Evaluación de herramientas de detección
- Los resultados están aquí
- Implicaciones en el mundo real
- La necesidad de mejora continua
- Planes futuros
- Conclusión: por qué esto importa
- Fuente original
- Enlaces de referencia
Los contratos inteligentes son programas de computadora que funcionan en una blockchain, como Ethereum. Ejecutan automáticamente transacciones cuando se cumplen ciertas condiciones. Piensa en ellos como máquinas expendedoras digitales: metes un poco de criptomoneda, aprietas un botón y, si todo está en orden, recibes tus snacks (o en este caso, un poco de Ether). Sin embargo, al igual que esas máquinas pueden atascarse o darte el producto equivocado, los contratos inteligentes pueden tener fallos que los atacantes pueden aprovechar.
Por qué importan los contratos inteligentes
Los contratos inteligentes manejan miles de millones de dólares en transacciones todos los días. Se encargan de todo, desde transacciones simples hasta acuerdos financieros complejos. Esto los convierte en un objetivo principal para los malos actores que buscan robar dinero. Los hacks y exploits se han vuelto más comunes a medida que los contratos inteligentes ganan popularidad, creando una necesidad urgente de mejorar su seguridad.
Vulnerabilidades comunes en contratos inteligentes
Entre las muchas vulnerabilidades, dos destacan: vulnerabilidades de reentrada y excepciones no manejadas. En pocas palabras, una vulnerabilidad de reentrada permite a un atacante retirar más fondos de los que debería al engañar a un contrato para que ejecute el mismo código varias veces. Una excepción no manejada ocurre cuando el código encuentra un error y no sabe cómo lidiar con ello, lo que a menudo lleva a resultados inesperados.
La necesidad de un conjunto de datos
Para combatir estas vulnerabilidades, investigadores y desarrolladores han creado varias herramientas para detectar debilidades en los contratos inteligentes. Pero para mejorar estas herramientas, es esencial un sólido conjunto de datos de contratos inteligentes que incluya vulnerabilidades conocidas. Este conjunto de datos permite probar y validar las diversas herramientas diseñadas para identificar estos riesgos, facilitando el desarrollo de medidas de seguridad más robustas.
Limitaciones de los conjuntos de datos actuales
Los conjuntos de datos existentes tienen sus problemas. Algunos no cubren una amplia gama de vulnerabilidades, mientras que otros pueden tener datos mal etiquetados. Esto dificulta a los desarrolladores e investigadores comparar la efectividad de las herramientas que están utilizando. En un mundo donde cada segundo cuenta, encontrar información confiable es crucial.
La solución: un nuevo conjunto de datos
Para abordar las brechas en los conjuntos de datos actuales, los investigadores presentaron un nuevo conjunto de datos específicamente para contratos inteligentes. Este conjunto busca incluir una variedad de contratos inteligentes del mundo real etiquetados tanto para reentrada como para excepciones no manejadas. El objetivo es proporcionar un recurso más estandarizado y preciso para herramientas de detección de vulnerabilidades.
Conjuntos de datos del mundo real y sintetizados
El conjunto de datos consta de dos partes: una creada a partir de contratos del mundo real y otra que se elabora manualmente para cubrir varios escenarios de reentrada. Los contratos del mundo real provienen de contratos inteligentes que han sido señalados por posibles vulnerabilidades a través de una mezcla de crowdsourcing y supervisión de expertos. Por otro lado, el Conjunto de datos sintetizado está diseñado cuidadosamente para incluir una gama de casos de reentrada, asegurando que se cubran varios casos extremos.
Crowdsourcing para conjuntos de datos del mundo real
Para crear el conjunto de datos del mundo real, los investigadores reclutaron la ayuda de estudiantes de cursos de informática. A los estudiantes se les pidió revisar funciones de contratos inteligentes y etiquetarlas como vulnerables o no vulnerables. Este enfoque no solo proporcionó datos valiosos, sino que también sirvió como un ejercicio de enseñanza para los estudiantes que aprendían sobre blockchain y seguridad.
Creación manual de conjuntos de datos
El conjunto de datos sintetizado requirió un poco más de esfuerzo. Los investigadores estudiaron varios escenarios que conducen a vulnerabilidades de reentrada y diseñaron casos de prueba que pudieran demostrar una vulnerabilidad o mostrar un contrato seguro. Esta atención al detalle ayuda a crear un recurso integral que se puede usar para evaluar herramientas de detección existentes y nuevas.
Evaluación de herramientas de detección
Una vez que el conjunto de datos estuvo listo, era hora de probar las herramientas diseñadas para detectar vulnerabilidades. Se evaluaron seis herramientas populares utilizando el conjunto de datos recién creado. A través de esta evaluación, quedó claro cuáles herramientas se desempeñaron mejor al encontrar vulnerabilidades de reentrada y excepciones no manejadas.
Los resultados están aquí
Los resultados mostraron que una herramienta, Slither, destacó en la detección de vulnerabilidades de reentrada en el conjunto de datos crowdsourced. Otras herramientas, como Sailfish, sobresalieron cuando se probaron en el conjunto de datos manualmente sintetizado, particularmente para la detección de reentrada. Cuando se trataba de excepciones no manejadas, Slither nuevamente mostró un rendimiento sólido.
Implicaciones en el mundo real
Las implicaciones de estos hallazgos son enormes. Con una manera más efectiva de detectar vulnerabilidades, los desarrolladores de contratos inteligentes pueden crear contratos más seguros, potencialmente ahorrando millones de dólares de robo y explotación. Esto no solo protege a los desarrolladores, sino que también genera confianza en el ecosistema de Ethereum en general.
La necesidad de mejora continua
El mundo de los contratos inteligentes está en constante cambio y, con ello, es probable que surjan nuevas vulnerabilidades. Por lo tanto, es crucial seguir actualizando conjuntos de datos y herramientas para reflejar estos cambios. Al continuar refinando los métodos de detección y creando nuevos recursos, investigadores y desarrolladores pueden mantenerse un paso adelante de los actores maliciosos.
Planes futuros
Los investigadores planean expandir aún más su conjunto de datos. Buscan realizar más evaluaciones empíricas de herramientas de detección y explorar métodos de aprendizaje automático para automatizar algunas partes del proceso de anotación. Con los avances en la tecnología, ¡podríamos pronto vivir en un mundo donde los contratos inteligentes sean tan seguros como convenientes!
Conclusión: por qué esto importa
En el gran esquema de las cosas, asegurar los contratos inteligentes es esencial no solo para los desarrolladores individuales, sino para toda la comunidad blockchain. A medida que los contratos inteligentes juegan un papel cada vez más significativo en transacciones financieras y acuerdos digitales, asegurar su seguridad ayudará a proteger a los usuarios y promover una mayor confianza en la tecnología blockchain.
Así que recuerda, la próxima vez que pienses en meter tu dinero en un contrato inteligente, quizás quieras revisar si el contrato ha sido minuciosamente verificado. No es solo una máquina expendedora digital; ¡puede ser tu boleto a una billetera vacía si no tienes cuidado!
Fuente original
Título: SCRUBD: Smart Contracts Reentrancy and Unhandled Exceptions Vulnerability Dataset
Resumen: Smart Contracts (SCs) handle transactions in the Ethereum blockchain worth millions of United States dollars, making them a lucrative target for attackers seeking to exploit vulnerabilities and steal funds. The Ethereum community has developed a rich set of tools to detect vulnerabilities in SCs, including reentrancy (RE) and unhandled exceptions (UX). A dataset of SCs labelled with vulnerabilities is needed to evaluate the tools' efficacy. Existing SC datasets with labelled vulnerabilities have limitations, such as covering only a limited range of vulnerability scenarios and containing incorrect labels. As a result, there is a lack of a standardized dataset to compare the performances of these tools. SCRUBD aims to fill this gap. We present a dataset of real-world SCs and synthesized SCs labelled with RE and UX. The real-world SC dataset is labelled through crowdsourcing, followed by manual inspection by an expert, and covers both RE and UX vulnerabilities. On the other hand, the synthesized dataset is carefully crafted to cover various RE scenarios only. Using SCRUBD we compared the performance of six popular vulnerability detection tools. Based on our study, we found that Slither outperforms other tools on a crowdsourced dataset in detecting RE vulnerabilities, while Sailfish outperforms other tools on a manually synthesized dataset for detecting RE. For UX vulnerabilities, Slither outperforms all other tools.
Autores: Chavhan Sujeet Yashavant, MitrajSinh Chavda, Saurabh Kumar, Amey Karkare, Angshuman Karmakar
Última actualización: 2024-12-13 00:00:00
Idioma: English
Fuente URL: https://arxiv.org/abs/2412.09935
Fuente PDF: https://arxiv.org/pdf/2412.09935
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.
Enlaces de referencia
- https://docs.etherscan.io/api-endpoints/contracts
- https://github.com/sujeetc/SCRUBD/tree/main/limitations
- https://github.com/InPlusLab/ReentrancyStudy-Data/commit/5b6be0f6be24591f1455e3467d956c397357abd3
- https://github.com/InPlusLab/ReentrancyStudy-Data/blob/main/reentrant_contracts/0x7c4393ee129d7856b5bd765c2d20b66f464ccd0f.sol
- https://github.com/smartbugs/smartbugs-curated/blob/main/dataset/reentrancy/0x627fa62ccbb1c1b04ffaecd72a53e37fc0e17839.sol
- https://github.com/smartbugs/smartbugs-curated/blob/main/dataset/
- https://github.com/sujeetc/SCRUBD
- https://scaudit.cse.iitk.ac.in
- https://ieeexplore.ieee.org
- https://conferences.ieeeauthorcenter.ieee.org/
- https://arxiv.org/abs/1312.6114
- https://github.com/liustone99/Wi-Fi-Energy-Detection-Testbed-12MTC
- https://codeocean.com/capsule/4989235/tree