Golden Encyclopedia |

Autor: Jagjit Singh, cointelegraph;

1. Vulnerabilidades potenciales en contratos inteligentes

Aunque los contratos inteligentes son innovadores, no son inmunes a los defectos que las partes maliciosas pueden explotar.

La verificación inadecuada de entrada es una debilidad común, lo que permite que un atacante influya en la ejecución de un contrato al proporcionar información inesperada.Además, la aplicación inadecuada de la lógica empresarial puede crear un comportamiento inesperado o brechas lógicas en el contrato, lo que resulta en vulnerabilidades.Además, las llamadas externas inseguras (como las llamadas que involucran interfaces con fuentes de datos externas u otros contratos) pueden crear vulnerabilidades si se maneja de manera incorrecta.

Un ataque de reingreso es una debilidad que ocurre cuando un contrato llama a otro contrato desde afuera antes de completar su propio cambio estatal.Esto permite que el contrato llamado vuelva a ingresar el contrato de llamadas y puede realizar algunas de sus operaciones nuevamente.Esto puede conducir a un comportamiento inesperado y permitir que un atacante cambie el estado del contrato, que puede drenar los fondos o tener otros efectos negativos.

Dada la posibilidad de tales ataques, los desarrolladores también deben tener precaución al usar contratos externos o fuentes de datos para garantizar que las llamadas externas se procesen adecuadamente para evitar comportamientos y vulnerabilidades inesperados.Pueden ayudar a proteger los contratos inteligentes de las amenazas en constante cambio al vigilar de cerca los programas de seguridad, como las pruebas de contratos inteligentes.

2. ¿Qué es un ataque de reingreso en un contrato inteligente?

En un contrato inteligente, se produce un ataque de reingreso cuando un contrato llama a otro contrato o función desde afuera antes de completar su propio cambio estatal.

Esto permite que el contrato llamado vuelva a ingresar el contrato de llamadas y puede realizar una parte de sus operaciones nuevamente, lo que puede conducir a un comportamiento malicioso imprevisto y frecuente.Por ejemplo, el contrato A llama al contrato B para enviar fondos y luego modificar su propio estado.

El Código de Contrato B puede contener una función de devolución de llamada que le permite volver a ingresar el Contrato A y puede volver a ejecutar la función de transferencia antes de que el Contrato A complete su cambio de estado.Esto permitirá al atacante obtener fondos del contrato varias veces antes de completar la transacción inicial.

La piratería de la organización autónoma descentralizada (DAO) de 2016 en la cadena de bloques Ethereum es otro ejemplo bien conocido.El atacante aprovechó las fallas de reingreso en el código de contrato inteligente para eliminar recursivamente los fondos del DAO, lo que finalmente llevó a los millones de dólares robados en Ethereum (ETH).

Además, los protocolos de finanzas descentralizadas (DEFI) múltiples, incluidos UNISWAP, Lendf.ME, Burgerswap, SurgebnB, Cream Finance y Siren Protocol, sufrieron pérdidas financieras significativas debido a las vulnerabilidades de reentabilidad.Estas violaciones causaron pérdidas de $ 3.5 millones a $ 25 millones, destacando la amenaza continua que representa las vulnerabilidades reentrantes en el sector Defi.

3. Cómo reingresar el trabajo de los ataques

Los ataques de reingreso utilizan la ejecución secuencial de las funciones de contrato inteligentes y las llamadas externas para formar un bucle donde un atacante puede ejecutar funciones específicas varias veces antes de completar, lo que puede conducir a un comportamiento malicioso y retiro de fondos no autorizados.

El contrato del atacante «estafra» la devolución de llamada del contrato de la víctima al contrato del atacante antes de que la víctima complete la modificación del estado.Esta acción puede conducir a retiros repetidos u otra negligencia.

La imagen de arriba demuestra un ataque de reingreso contra contratos inteligentes.El contrato del atacante llama a la función «retirar ()» de la víctima, que envía a Ethereum antes de actualizar el saldo.Luego se dispara la función de retroceso del atacante, y nuevamente llama recursivamente a retirar () para agotar los fondos del contrato de víctima.Este ataque explota la situación en la que la víctima no pudo actualizar el saldo antes de enviar los fondos.

Usemos un ejemplo simplificado para desglosar cómo funcionan los ataques de reingreso:

Contrato inteligente con la función de «retiro»

Supongamos que hay un contrato inteligente de billetera digital que permite a los usuarios retirar fondos.Además de rastrear los saldos de los usuarios, el contrato también tiene una función de retiro para facilitar el retiro de fondos.La función de retiro generalmente permite a los usuarios retirar sus tokens o Ethereum de contratos inteligentes a su billetera personal.

Interacción de usuario y ejecución de funciones

El usuario solicita el retiro de la billetera por su cuenta.Utilizan la función de retiro para ingresar el monto de retiro requerido.

La función de retiro verificará cuando se le llame si el usuario tiene suficientes fondos para retirarse.Si se cumplen los requisitos, transfiere los fondos requeridos a la dirección seleccionada por el usuario.

Llamada externa

Aquí es donde aparecen debilidades.El contrato realiza una llamada externa a otro contrato o cuenta antes de que el retiro se refleje en el saldo del usuario.

Llamada recursiva

Si el código del contrato externo contiene una función que puede volver a llamar al contrato original (como otra función de retiro), se crea un bucle recursivo.Esto permite que el método de retiro se vuelva a llamar antes de finalizarlo.

Reingreso y utilización

El atacante luego usa un contrato malicioso para explotar este bucle.El contrato del atacante rápidamente llama a la función de retiro de la billetera nuevamente antes de que el saldo se actualice durante el contrato de billetera llama al contrato externo.

Función de retroceso

En algunos casos, el atacante puede utilizar la característica de retroceso de un contrato inteligente (una característica única que se inicia cuando un contrato recibe una llamada sin datos o Ethereum).Los ataques de reingreso se pueden realizar llamando repetidamente a la función de retroceso mientras los fondos aún se están procesando.

Manipulación y retiros recurrentes

El contrato del atacante puede reutilizar la función de retiro en la misma transacción, porque el contrato de billetera retrasa la actualización del saldo hasta que se recibe una llamada externa.Por lo tanto, esto facilita que los fondos se retiren sin autorización, lo que permite a los atacantes robar fondos más allá de sus derechos legales.Luego causó enormes pérdidas económicas a los usuarios del contrato de billetera.

4. Las consecuencias de los ataques reingresores

Los ataques de reingreso pueden tener un grave impacto en los usuarios de contratos inteligentes porque tienen el potencial de causar pérdidas financieras significativas.

Una de las consecuencias más directas de un ataque de reingreso es el retiro o manipulación no autorizado del efectivo ahorrado en un contrato inteligente susceptible.El atacante explotó la vulnerabilidad para retirar repetidamente los fondos del contrato, agotar el saldo del contrato y potencialmente causando pérdidas financieras significativas a los usuarios que invierten o almacenan activos en el contrato afectado.

Además, los ataques de reingreso pueden debilitar la confianza de los usuarios en la seguridad y la integridad de los contratos inteligentes y las tecnologías de blockchain.Las vulnerabilidades de reingreso pueden tener efectos catastróficos, como lo demuestran eventos de alto perfil como el incidente de piratería DAO en la cadena de bloques Ethereum en 2016, que causó grandes pérdidas económicas y dañó la reputación de la comunidad.

Además de las consecuencias financieras a corto plazo, los ataques de reingreso pueden tener efectos a largo plazo, como preocupaciones regulatorias y legales, disminución de la confianza de los inversores y daños a la reputación de plataformas y proyectos blockchain.La percepción de la vulnerabilidad puede llevar a los usuarios a ser cautelosos al interactuar con contratos inteligentes o invertir en aplicaciones descentralizadas (DAPP), lo que obstaculiza la adopción y expansión de la tecnología blockchain.

5. Cómo mitigar los ataques de reingreso

La implementación de las mejores prácticas en la creación y auditoría de contratos inteligentes es necesaria para mitigar la amenaza de reingreso.

Esto incluye el uso de una base de código bien conocida con un registro seguro, que es una forma de lograrlo.Estas bibliotecas han sido ampliamente probadas y revisadas por pares, lo que reduce las posibilidades de introducir vulnerabilidades.

Los desarrolladores también deben usar verificaciones de seguridad como diseños de «interacción con efecto de verificación» para minimizar la posibilidad de ataques de reingreso asegurando que las modificaciones estatales ocurran atómicamente.Si está disponible, puede usar un marco de desarrollo de contratos inteligente reentrante y seguro para agregar defensa adicional contra tales vulnerabilidades.

Es poco probable que los desarrolladores agregen protección de seguridad manualmente, ya que estos marcos a menudo incluyen métodos incorporados y protecciones diseñadas específicamente para evitar ataques de reingreso.Sin embargo, a medida que la seguridad de Blockchain sigue evolucionando, los desarrolladores deben continuar buscando nuevas amenazas y debilidades.

  • Related Posts

    Enciclopedia dorada | ¿Cómo afectó la guerra comercial las acciones y los mercados de criptografía?

    Autor: Bradley Peak, cointelegraph; Compilado por: Tao Zhu, Bittain Vision 1. Guerra comercial de China-Estados Unidos en 2025 El 2 de abril de 2025, el presidente Donald Trump declaró una…

    Enciclopedia dorada | ¿Es BTC un refugio seguro durante la guerra comercial?

    Fuente: CointeleGraph; Compilación: Baishui, Bittain Vision 1. A medida que se intensifican las tensiones comerciales, Bitcoin se une a las filas de aversión al riesgo Durante décadas, cada vez que…

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    You Missed

    Tendencia histórica: Bitcoin está siendo un activo de sabor seguro

    • Por jakiro
    • abril 19, 2025
    • 3 views
    Tendencia histórica: Bitcoin está siendo un activo de sabor seguro

    ¿Qué hace que los eventos de la alfombra de criptomonedas ocurran con frecuencia?

    • Por jakiro
    • abril 18, 2025
    • 1 views
    ¿Qué hace que los eventos de la alfombra de criptomonedas ocurran con frecuencia?

    Wintermute Ventures: ¿Por qué invertimos en Euler?

    • Por jakiro
    • abril 18, 2025
    • 5 views
    Wintermute Ventures: ¿Por qué invertimos en Euler?

    ¿Puede Trump disparar Powell? ¿Qué riesgos económicos traerán?

    • Por jakiro
    • abril 18, 2025
    • 2 views
    ¿Puede Trump disparar Powell? ¿Qué riesgos económicos traerán?

    Glassnode: ¿Estamos experimentando una transición de toro?

    • Por jakiro
    • abril 18, 2025
    • 5 views
    Glassnode: ¿Estamos experimentando una transición de toro?

    El primer lote de 8 proyectos seleccionados del acelerador web de los 8 proyectos seleccionados

    • Por jakiro
    • abril 17, 2025
    • 4 views
    El primer lote de 8 proyectos seleccionados del acelerador web de los 8 proyectos seleccionados
    Home
    News
    School
    Search