Agujero negro tragado: la vulnerabilidad de Vyper hace que Curve se vuelque sólidamente

Recientemente, Curve, un protocolo de moneda súper estable, fue atacado por un ataque de reentrada, lo que provocó graves pérdidas. El siguiente es el análisis de seguridad y las recomendaciones de seguridad de MetaTrust Labs para este ataque.

Revisión del evento

Según el Twitter oficial de Curve Finance, el 31 de julio de 2023, algunos grupos estables (alETH/msETH/pETH) escritos con la versión 0.2.15 de Vyper fueron objeto de un ataque de reingreso. Curve Finance declaró que el ataque fue causado por el mal funcionamiento de los bloqueos de reingreso en la versión 0.2.15 de Vyper y solo afectó a los grupos que usaban ETH puro. Actualmente, Curve está evaluando el daño y otras piscinas están seguras.

Según el análisis de MetaTrust Labs, la vulnerabilidad se introdujo entre agosto y octubre de 2021, principalmente debido al compilador de la versión 0.2.15/0.2.16/0.3.0 de Vyper. El motivo de la vulnerabilidad es que la lógica de reentrada en el código de bytes generado no debería tener efecto debido a un error en el compilador.

Según las estadísticas de la cadena, el incidente de piratería del grupo de monedas estables de Curve Finance ha causado una pérdida acumulada de 52 millones de dólares estadounidenses en grupos de Alchemix, JPEG'd, CRV/ETH, etc. El token CRV de Curve Finance también se vio muy afectado, con una caída de más del 15% en el día.

Análisis de causa

La razón por la que Curve Finance fue atacada esta vez es que cuando Curve usó el lenguaje Vyper para escribir contratos inteligentes, usó la versión 0.2.15 de Vyper. Hay una vulnerabilidad en esta versión llamada bloqueos de reentrada que funcionan mal (falla de bloqueo de reentrada). un ataque de reentrada para causar pérdidas. La vulnerabilidad de Curve Finance esta vez es una vulnerabilidad específica del idioma.

Las vulnerabilidades específicas del lenguaje se refieren a las vulnerabilidades causadas por defectos o incompatibilidades en un determinado lenguaje de programación o compilador mismo. Tales vulnerabilidades a menudo son difíciles de encontrar y prevenir, porque no son causadas por negligencia del desarrollador o errores lógicos, sino por problemas con la plataforma tecnológica subyacente. Estos tipos de vulnerabilidades también tienden a afectar múltiples proyectos o contratos porque todos usan el mismo lenguaje o compilador.

Vyper es un lenguaje de programación de contratos inteligentes basado en Python diseñado para una mayor seguridad y legibilidad. Vyper afirma ser un lenguaje de "seguridad primero" y no admite algunas funciones que pueden causar riesgos de seguridad, como clases, herencia, modificadores, ensamblaje en línea, etc. Sin embargo, Vyper no es perfecto y todavía tiene algunos errores o lagunas que pueden afectar la seguridad del contrato. Por ejemplo, además de la falla de bloqueo de reentrada que encontró Curve Finance esta vez, Vyper también experimentó problemas como el arreglo fuera de los límites, el desbordamiento de enteros y los errores de acceso al almacenamiento.

Medidas de seguridad

Para el ataque de reingreso de Curve Finance esta vez, se han tomado o propuesto algunas contramedidas. Aquí hay algunas contramedidas de seguridad que puede tomar:

  • Retiro de liquidez: para los grupos afectados, los usuarios pueden optar por retirar liquidez para evitar pérdidas adicionales. Curve Finance ha proporcionado un botón para retirar liquidez en su sitio web oficial, que es conveniente para que los usuarios operen.
  • Actualice el compilador: para los contratos que usan la versión del compilador Vyper 0.2.15/0.2.16/0.3.0, se recomienda actualizar a la última versión de Vyper 0.3.1, que solucionó el problema de la falla de bloqueo de reingreso. Al mismo tiempo, también se recomienda utilizar otras herramientas o métodos para verificar la seguridad del contrato, como la verificación formal, la auditoría de código, etc.
  • Esté atento: para los contratos escritos en Vyper u otros idiomas, se recomienda estar atento, prestar atención a las actualizaciones del lenguaje o del compilador y las correcciones de errores, y tomar las medidas necesarias de manera oportuna para proteger sus activos. Al mismo tiempo, también se recomienda que al usar un nuevo lenguaje o una nueva tecnología, evalúe cuidadosamente su madurez y estabilidad, y evite buscar ciegamente la frescura o la eficiencia.

Resumir

El incidente de reingreso de Curve Finance fue un incidente de seguridad desafortunado y una lección que invita a la reflexión. En el campo de las finanzas descentralizadas (DeFi), la seguridad es siempre la máxima prioridad. Las partes del proyecto deben mejorar constantemente su conciencia y capacidades de seguridad. Cualquier detalle puede convertirse en un gran avance para que los atacantes exploten.

Síganos

Twitter: @MetaTrustLabs

Sitio web: metatrust.io

Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
  • Recompensa
  • Comentar
  • Compartir
Comentar
0/400
Sin comentarios
  • Anclado
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)