Análisis de las tres principales vulnerabilidades de seguridad en Finanzas descentralizadas: 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ó conocimientos sobre la seguridad de Finanzas descentralizadas con los miembros de la comunidad. Revisó los importantes incidentes de seguridad que ha sufrido la industria Web3 en el último año y más, exploró las causas de estos incidentes y las formas de evitarlos, resumió las vulnerabilidades comunes de los contratos inteligentes y las medidas de prevención, y ofreció algunos consejos de seguridad.
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 funciones fallback, vulnerabilidades en la lógica empresarial, filtración de claves privadas, reentradas, entre otros. Este artículo se centra en estos tres tipos: préstamos relámpago, manipulación de precios y ataques de reentrada.
Préstamo relámpago
El préstamo relámpago en sí mismo es una innovación de las Finanzas descentralizadas, pero cuando es utilizado por hackers, puede permitir el préstamo de grandes cantidades de dinero sin costo alguno para llevar a cabo ataques. Los ataques comunes a menudo están acompañados de préstamos relámpago, donde los atacantes toman prestadas grandes sumas de dinero para manipular precios o atacar la lógica de negocio.
Los desarrolladores deben considerar si la funcionalidad del contrato puede verse afectada por grandes sumas de dinero, o si puede ser utilizada en una transacción para interactuar con múltiples funciones y obtener beneficios indebidos.
Algunos proyectos otorgan recompensas en momentos fijos según las posiciones, pero son explotados por atacantes que utilizan préstamos relámpago para comprar grandes cantidades de tokens y obtener la mayor parte de las recompensas. Otros proyectos calculan precios a través de tokens, lo que puede ser influenciado por préstamos relámpago. Los desarrolladores del proyecto deben estar alerta ante estos problemas.
Manipulación de precios
El problema del control de precios está estrechamente relacionado con los préstamos relámpago, y hay principalmente dos tipos:
Al calcular el precio se utilizan datos de terceros, pero el uso incorrecto o la falta de verificación provocan que el precio sea manipulado maliciosamente.
Utilizar la cantidad de Token de ciertas direcciones como variable de cálculo, y el saldo de Token de estas direcciones puede ser aumentado o disminuido temporalmente.
Ataque de reentrada
El principal riesgo de invocar contratos externos es que pueden tomar el control del flujo, realizando cambios inesperados en los datos. Por ejemplo:
solidez
mapeo (dirección => uint) saldoPrivado del usuario;
Debido a que el saldo se establece en 0 solo al final de la función, las llamadas repetidas aún podrán extraer con éxito.
Los métodos de ataque de reentrada son diversos y pueden involucrar múltiples funciones o contratos. Para resolver el problema de reentrada, es necesario tener en cuenta:
No solo previene la reentrada de una única función
Seguir el patrón de codificación Checks-Effects-Interactions
Usar un modificador de protección contra reentradas verificado
Se deben utilizar prácticas de seguridad maduras siempre que sea posible, evitando reinventar la rueda.
Sugerencias de seguridad para el equipo del proyecto
El desarrollo de contratos sigue las mejores prácticas de seguridad
Contratos actualizables y pausables: detectar y reducir pérdidas de manera oportuna.
Utilizar un bloqueo temporal: proporcionar tiempo para la revisión y la respuesta
Establecer un sistema de seguridad completo: evitar riesgos de manera integral
Aumentar la conciencia de seguridad de todos los empleados
Prevenir el mal uso interno, fortaleciendo el control de riesgos al mismo tiempo que se mejora la eficiencia.
Introducción cautelosa de terceros: verificar la seguridad de la cadena de suministro
¿Cómo pueden los usuarios juzgar la seguridad de los contratos inteligentes?
Revisar la situación de las transacciones del contrato
¿El contrato es actualizable y tiene un tiempo de bloqueo?
¿Se aceptan auditorías de múltiples instituciones? ¿Los permisos del propietario son excesivos?
Presta atención a la fiabilidad del oráculo
En resumen, la seguridad es crucial en el campo de las Finanzas descentralizadas. Tanto los proyectos como los usuarios deben estar alerta y tomar las medidas necesarias para reducir los riesgos.
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.
13 me gusta
Recompensa
13
2
Compartir
Comentar
0/400
StableGeniusDegen
· hace16h
Otra vez tengo que empezar de cero a aprender seguridad, me duele la cabeza.
Ver originalesResponder0
DAOplomacy
· hace16h
teatro de la seguridad en su máxima expresión... las mismas viejas vulnerabilidades, la misma vieja desalineación de los holders, para ser honesto
Análisis de las tres principales vulnerabilidades de seguridad en Finanzas descentralizadas: 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ó conocimientos sobre la seguridad de Finanzas descentralizadas con los miembros de la comunidad. Revisó los importantes incidentes de seguridad que ha sufrido la industria Web3 en el último año y más, exploró las causas de estos incidentes y las formas de evitarlos, resumió las vulnerabilidades comunes de los contratos inteligentes y las medidas de prevención, y ofreció algunos consejos de seguridad.
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 funciones fallback, vulnerabilidades en la lógica empresarial, filtración de claves privadas, reentradas, entre otros. Este artículo se centra en estos tres tipos: préstamos relámpago, manipulación de precios y ataques de reentrada.
Préstamo relámpago
El préstamo relámpago en sí mismo es una innovación de las Finanzas descentralizadas, pero cuando es utilizado por hackers, puede permitir el préstamo de grandes cantidades de dinero sin costo alguno para llevar a cabo ataques. Los ataques comunes a menudo están acompañados de préstamos relámpago, donde los atacantes toman prestadas grandes sumas de dinero para manipular precios o atacar la lógica de negocio.
Los desarrolladores deben considerar si la funcionalidad del contrato puede verse afectada por grandes sumas de dinero, o si puede ser utilizada en una transacción para interactuar con múltiples funciones y obtener beneficios indebidos.
Algunos proyectos otorgan recompensas en momentos fijos según las posiciones, pero son explotados por atacantes que utilizan préstamos relámpago para comprar grandes cantidades de tokens y obtener la mayor parte de las recompensas. Otros proyectos calculan precios a través de tokens, lo que puede ser influenciado por préstamos relámpago. Los desarrolladores del proyecto deben estar alerta ante estos problemas.
Manipulación de precios
El problema del control de precios está estrechamente relacionado con los préstamos relámpago, y hay principalmente dos tipos:
Al calcular el precio se utilizan datos de terceros, pero el uso incorrecto o la falta de verificación provocan que el precio sea manipulado maliciosamente.
Utilizar la cantidad de Token de ciertas direcciones como variable de cálculo, y el saldo de Token de estas direcciones puede ser aumentado o disminuido temporalmente.
Ataque de reentrada
El principal riesgo de invocar contratos externos es que pueden tomar el control del flujo, realizando cambios inesperados en los datos. Por ejemplo:
solidez mapeo (dirección => uint) saldoPrivado del usuario;
función retirarSaldo() 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 se establece en 0 solo al final de la función, las llamadas repetidas aún podrán extraer con éxito.
Los métodos de ataque de reentrada son diversos y pueden involucrar múltiples funciones o contratos. Para resolver el problema de reentrada, es necesario tener en cuenta:
Se deben utilizar prácticas de seguridad maduras siempre que sea posible, evitando reinventar la rueda.
Sugerencias de seguridad para el equipo del proyecto
El desarrollo de contratos sigue las mejores prácticas de seguridad
Contratos actualizables y pausables: detectar y reducir pérdidas de manera oportuna.
Utilizar un bloqueo temporal: proporcionar tiempo para la revisión y la respuesta
Establecer un sistema de seguridad completo: evitar riesgos de manera integral
Aumentar la conciencia de seguridad de todos los empleados
Prevenir el mal uso interno, fortaleciendo el control de riesgos al mismo tiempo que se mejora la eficiencia.
Introducción cautelosa de terceros: verificar la seguridad de la cadena de suministro
¿Cómo pueden los usuarios juzgar la seguridad de los contratos inteligentes?
¿El contrato es de código abierto?
¿El propietario utiliza múltiples firmas descentralizadas?
Revisar la situación de las transacciones del contrato
¿El contrato es actualizable y tiene un tiempo de bloqueo?
¿Se aceptan auditorías de múltiples instituciones? ¿Los permisos del propietario son excesivos?
Presta atención a la fiabilidad del oráculo
En resumen, la seguridad es crucial en el campo de las Finanzas descentralizadas. Tanto los proyectos como los usuarios deben estar alerta y tomar las medidas necesarias para reducir los riesgos.