Análisis completo de las vulnerabilidades de seguridad en Finanzas descentralizadas: Guía de prevención de Flash Loans, manipulación de precios y ataques de reentrada

Vulnerabilidades de seguridad comunes en Finanzas descentralizadas y medidas de prevención

Recientemente, un experto en seguridad compartió con los miembros de la comunidad temas relacionados con la seguridad en las Finanzas descentralizadas. El experto revisó los importantes incidentes de seguridad que ha enfrentado la industria Web3 en el último año, explorando a fondo las causas de estos eventos y cómo evitarlos, resumiendo las vulnerabilidades de seguridad comunes en los contratos inteligentes y las medidas preventivas, y ofreciendo algunos consejos de seguridad tanto para los proyectos como para los usuarios comunes.

Los tipos comunes de vulnerabilidades en Finanzas descentralizadas incluyen préstamos relámpago, manipulación de precios, problemas de permisos de funciones, llamadas externas arbitrarias, problemas con la función fallback, vulnerabilidades en la lógica de negocio, filtración de claves privadas y ataques de reentrada. Este artículo se centra en los préstamos relámpago, la manipulación de precios y los ataques de reentrada.

Préstamo relámpago

Los préstamos relámpago son una innovación en las Finanzas descentralizadas, pero también son frecuentemente utilizados por hackers. Los atacantes pueden pedir prestados grandes sumas de dinero a través de préstamos relámpago, manipulando precios o atacando la lógica de negocio. Los desarrolladores deben considerar si la funcionalidad del contrato podría llevar a anomalías debido a grandes cantidades de dinero, o si podría ser explotada para obtener beneficios indebidos al interactuar con múltiples funciones en una sola transacción.

Muchos proyectos de Finanzas descentralizadas parecen tener altos rendimientos, pero la calidad del equipo del proyecto varía. Incluso si el código en sí no tiene vulnerabilidades, aún pueden existir problemas lógicos. Por ejemplo, algunos proyectos otorgan recompensas en momentos fijos según la cantidad de tokens en posesión, pero los atacantes pueden aprovechar los préstamos relámpago para comprar una gran cantidad de tokens y obtener la mayor parte de las recompensas al momento de su distribución. Otros proyectos que calculan precios a través de Tokens también pueden verse afectados en su precio por los préstamos relámpago. Los equipos de proyectos deben mantenerse alerta ante estos problemas.

Manipulación de precios

El problema del control de precios está estrechamente relacionado con los préstamos relámpago, principalmente porque ciertos parámetros pueden ser controlados por los usuarios al calcular el precio. Existen dos situaciones comunes:

  1. Al calcular el precio se utilizan datos de terceros, pero el método de uso es incorrecto o falta de verificación, lo que provoca que el precio sea manipulado de manera maliciosa.

  2. Utilizar el saldo de Token de ciertas direcciones como variable de cálculo, y la cantidad de Token en estas direcciones puede ser aumentada o disminuida temporalmente.

Ataque de reentrada

Uno de los principales riesgos de llamar a contratos externos es que pueden tomar el control del flujo, realizando cambios inesperados en los datos. Por ejemplo:

solidez mapeo (direccion => uint) saldoPrivado usuarios;

function withdrawBalance() public { uint amountToWithdraw = userBalances[msg.sender]; (bool success, ) = msg.sender.call.value(amountToWithdraw)(""); require(success); userBalances[msg.sender] = 0; }

Debido a que el saldo del usuario se establece en 0 solo al final de la función, la segunda y las llamadas posteriores seguirán teniendo éxito y se podrá retirar el saldo repetidamente.

Las formas de ataque por reentrada son diversas y pueden involucrar diferentes funciones del mismo contrato o funciones de múltiples contratos. Al abordar el problema de la reentrada, se debe tener en cuenta:

  1. No solo previene el problema de reentrada de una sola función.
  2. Codificación siguiendo el patrón Checks-Effects-Interactions
  3. Utilizar un modificador de protección contra reentradas verificado

Es mejor evitar reinventar la rueda y utilizar las mejores prácticas de seguridad maduras en la industria. Las "ruedas" recién creadas carecen de una validación adecuada, y la probabilidad de que surjan problemas a menudo es mayor que la de soluciones probadas.

Sugerencias de seguridad

Sugerencias de seguridad del proyecto

  1. Seguir las mejores prácticas de seguridad en el desarrollo de contratos

  2. Diseñar contratos que sean actualizables y pausables: ayuda a detectar a tiempo y reducir las pérdidas por ataques.

  3. Utilizar un bloqueo de tiempo: proporcionar un período de gracia para identificar y abordar problemas potenciales.

  4. Aumentar la inversión en seguridad y establecer un sistema de seguridad completo: la seguridad es un trabajo sistemático, no se limita a la auditoría de contratos.

  5. Aumentar la conciencia de seguridad de todos los empleados: muchos ataques aprovechan las debilidades humanas, estar alerta puede evitar muchos problemas.

  6. Prevenir el mal uso interno, al mismo tiempo que se mejora la eficiencia y se refuerza el control de riesgos: como el uso de mecanismos de múltiples firmas, bloqueos de tiempo, etc.

  7. Introducir terceros con precaución: realizar verificaciones de seguridad en ambas direcciones, especialmente en contratos no abiertos.

Métodos para que los usuarios/LP evalúen la seguridad de los contratos inteligentes

  1. Verifica si el contrato es de código abierto: no participes en proyectos que no sean de código abierto.

  2. Confirmar si el Owner utiliza un multisig descentralizado

  3. Ver la situación actual de las transacciones del contrato: tiempo de implementación, número de interacciones, etc.

  4. Verificar si el contrato es un contrato proxy, si es actualizable y si tiene un bloqueo de tiempo.

  5. Confirmar si el contrato ha sido auditado por varias instituciones y si los permisos del propietario son excesivos.

  6. Presta atención a la fiabilidad de los oráculos: los oráculos líderes son relativamente seguros, los oráculos de construcción propia o de bajo umbral deben ser tratados con precaución.

En resumen, los participantes en el campo de Finanzas descentralizadas deben mantenerse alerta, los proyectos deben considerar integralmente los problemas de seguridad, y los usuarios deben evaluar cuidadosamente la seguridad del proyecto antes de tomar decisiones.

Cobo Finanzas descentralizadas 安全课(下):Finanzas descentralizadas 常⻅安全漏洞及预防

DEFI-9.5%
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
  • 5
  • Compartir
Comentar
0/400
HackerWhoCaresvip
· hace13h
El capital es prestado, la seguridad no se puede prestar.
Ver originalesResponder0
SurvivorshipBiasvip
· hace20h
Otra vez la historia de lágrimas y sangre de los tontos que fueron tomados por tontos.
Ver originalesResponder0
MetaMaskVictimvip
· hace20h
Otra vez han tomado a la gente por tonta... ¿quién ha perdido? Cuéntame.
Ver originalesResponder0
blocksnarkvip
· hace21h
Hacker otra vez va a hacer dinero
Ver originalesResponder0
StakeWhisperervip
· hace21h
Entendido pero no entendido
Ver originalesResponder0
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)