Seguridad en DeFi: Guía de prevención de Flash Loans, manipulación de precios y ataques de reentrada

robot
Generación de resúmenes en curso

Finanzas descentralizadas seguridad vulnerabilidades y medidas de prevención

Recientemente, un experto en seguridad compartió una clase de seguridad de Finanzas descentralizadas para los miembros de la comunidad. Repasó los importantes incidentes de seguridad que ha enfrentado la industria de Web3 recientemente, exploró las causas de estos eventos y los métodos para evitarlos, resumió las vulnerabilidades de seguridad comunes en los contratos inteligentes y las medidas preventivas, y proporcionó algunos consejos de seguridad para los proyectos y los usuarios.

Cobo Finanzas descentralizadas seguridad clase (parte 2): Vulnerabilidades de seguridad comunes en Finanzas descentralizadas y prevención

Los tipos comunes de vulnerabilidades en las 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, ataques de reentrada, entre otros. A continuación, nos centraremos en tres tipos: préstamos relámpago, manipulación de precios y ataques de reentrada.

Préstamo relámpago

El préstamo relámpago es en sí una innovación de las Finanzas descentralizadas, pero puede causar enormes pérdidas cuando es utilizado por hackers:

  • Los atacantes piden prestado una gran cantidad de fondos a través de préstamos relámpago, manipulando precios o atacando la lógica del negocio.
  • Los desarrolladores deben considerar si las funciones del contrato se verán afectadas por grandes cantidades de dinero.
  • Algunos proyectos utilizan la cantidad de Tokens para calcular recompensas, o utilizan la cantidad de Tokens en pares de comercio DEX para participar en el cálculo, estas variables son fácilmente manipulables por préstamos relámpago.

En los últimos dos años, muchos proyectos de altas rentabilidades en Finanzas descentralizadas han sufrido ataques de préstamos relámpago debido a problemas de código o lógica. Por ejemplo, algunos proyectos otorgan recompensas en momentos fijos según la cantidad de tokens en posesión, y los atacantes utilizan préstamos relámpago para comprar una gran cantidad de tokens y obtener la mayor parte de las recompensas.

Manipulación de precios

El problema de la manipulación de precios está estrechamente relacionado con los préstamos relámpago, y principalmente hay dos tipos:

  1. Al calcular el precio, se utilizan datos de terceros, pero el método de uso es incorrecto o falta verificación.
  2. Usar el saldo de tokens de ciertas direcciones como variable de cálculo, y esos saldos pueden ser aumentados o disminuidos temporalmente.

Ataque de reentrada

El principal riesgo 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) saldoPrivadoUsuarios;

función withdrawBalance() pública { 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 restablece a cero solo al final de la función, las llamadas repetidas aún pueden extraer el saldo con éxito.

Para resolver el problema de reentrada, es necesario tener en cuenta:

  1. No solo previene la reentrada de una única función
  2. Seguir el patrón de Checks-Effects-Interactions
  3. Utilizar el modificador de protección contra reentradas verificado

Los ataques de reentrada son diversos y pueden involucrar múltiples funciones o contratos. Se recomienda utilizar prácticas de seguridad establecidas para evitar reinventar la rueda.

Sugerencias de seguridad

Sugerencias de seguridad del proyecto

  1. Seguir las mejores prácticas de seguridad en el desarrollo de contratos.
  2. Implementar funciones de contrato actualizables y pausables
  3. Utilizar un mecanismo de bloqueo temporal
  4. Aumentar la inversión en seguridad y establecer un sistema de seguridad completo.
  5. Aumentar la conciencia de seguridad de todos los empleados
  6. Prevenir el comportamiento malicioso interno, mientras se mejora la eficiencia y se refuerza el control de riesgos.
  7. Introducir terceros con precaución, por defecto tanto el upstream como el downstream no son seguros.

El usuario evalúa la seguridad del contrato inteligente

  1. ¿El contrato es de código abierto?
  2. ¿El propietario utiliza múltiples firmas descentralizadas?
  3. Verificar la situación de las transacciones existentes del contrato
  4. ¿El contrato es actualizable y tiene un tiempo de bloqueo?
  5. ¿El contrato acepta auditorías de múltiples instituciones? ¿Los permisos del propietario son demasiado amplios?
  6. Presta atención a la fiabilidad de los oráculos

En resumen, en el campo de las Finanzas descentralizadas hay numerosos riesgos de seguridad, tanto los desarrolladores de proyectos como los usuarios deben estar alerta, adoptar múltiples medidas de protección y mantener conjuntamente la seguridad del ecosistema.

DEFI7.35%
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
  • 4
  • Compartir
Comentar
0/400
TokenCreatorOPvip
· 07-28 02:54
Si lo hubieras dicho antes, ya no tengo usdt.
Ver originalesResponder0
RooftopReservervip
· 07-28 02:53
Otra vez hay tontos que quieren subir al tejado.
Ver originalesResponder0
consensus_failurevip
· 07-28 02:53
Otra vez interpretando un guion de trampa y Rug Pull~
Ver originalesResponder0
ParallelChainMaxivip
· 07-28 02:34
Ningún proyecto es seguro.
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)