Finanzas descentralizadas seguridad: tipos comunes de vulnerabilidades y medidas de prevención
Recientemente, un experto en seguridad compartió una clase de seguridad de Finanzas descentralizadas con los miembros de la comunidad. Repasó los importantes incidentes de seguridad que ha enfrentado la industria de Web3 en más de un año, exploró las razones por las cuales ocurrieron estos eventos y cómo evitarlos, resumió las vulnerabilidades de seguridad comunes en los contratos inteligentes y las medidas de prevención, y ofreció algunos consejos de seguridad para los desarrolladores de proyectos y 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 funciones fallback, vulnerabilidades de lógica comercial, filtración de claves privadas y ataques de reentrada. Este artículo se centrará en los préstamos relámpago, la manipulación de precios y los ataques de reentrada.
Préstamo relámpago
El préstamo relámpago es una innovación en las Finanzas descentralizadas, pero también es utilizado comúnmente por hackers. Los atacantes piden prestados grandes cantidades de fondos a través de préstamos relámpago para manipular precios o atacar la lógica del negocio. Los desarrolladores deben considerar si las funciones del contrato pueden verse afectadas por grandes cantidades de dinero, o si pueden ser explotadas para interactuar con múltiples funciones en una sola transacción y obtener recompensas indebidas.
Muchos proyectos de Finanzas descentralizadas parecen tener altos rendimientos, pero en realidad, el nivel de los equipos detrás de los proyectos 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 que poseen los titulares, pero los atacantes pueden aprovecharse de los préstamos relámpago para comprar una gran cantidad de tokens y obtener la mayor parte de las recompensas cuando se distribuyen.
Manipulación de precios
El problema del control de precios está estrechamente relacionado con los préstamos relámpago, principalmente porque ciertos parámetros en el cálculo de precios pueden ser controlados por los usuarios. Hay dos tipos comunes de problemas:
Al calcular el precio se utilizan datos de terceros, pero el uso no es correcto o falta verificación, lo que lleva a 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 temporalmente aumentado o disminuido.
Ataque de reentrada
Uno de los principales riesgos de llamar a contratos externos es que pueden tomar el control del flujo y realizar cambios inesperados en los datos. Un ejemplo típico de ataque de reentrada es que, en la función de retiro, el saldo del usuario no se establece en 0 hasta el final de la función, lo que permite que múltiples llamadas aún tengan éxito al retirar.
Para resolver el problema de reentrada, se deben tener en cuenta los siguientes puntos:
No solo hay que prevenir el problema de reentrada de una única función.
Seguir el patrón Checks-Effects-Interactions para codificar
Usar un modificador de protección contra reentradas que haya sido probado a lo largo del tiempo
En las prácticas de seguridad, se deben utilizar soluciones maduras que ya hayan sido completamente verificadas, en lugar de reinventar la rueda.
Sugerencias de seguridad para el proyecto
Seguir las mejores prácticas de seguridad para el desarrollo de contratos.
Implementar funciones de actualización y pausa del contrato
Adoptar un mecanismo de bloqueo temporal
Aumentar la inversión en seguridad y establecer un sistema de seguridad completo.
Aumentar la conciencia de seguridad de todos los empleados
Prevenir el mal uso interno, al mismo tiempo que se mejora la eficiencia y se refuerza el control de riesgos.
Introducir componentes de terceros con precaución, asegurando su seguridad.
¿Cómo pueden los usuarios determinar la seguridad de los contratos inteligentes?
Confirmar si el contrato es de código abierto
Verificar si el Owner utiliza un mecanismo de múltiples firmas descentralizado.
Ver la situación de las transacciones existentes del contrato
Confirma si el contrato es un contrato de agencia, si es actualizable y si tiene un bloqueo temporal.
Verifica si el contrato ha sido auditado por varias instituciones y si los permisos del Owner son excesivos.
Presta atención a la utilización de oráculos, elige prioritariamente oráculos de alta reputación.
Al prestar atención a los puntos anteriores, los usuarios pueden evaluar mejor la seguridad de un proyecto de Finanzas descentralizadas, lo que les permite tomar decisiones de inversión más informadas.
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.
9 me gusta
Recompensa
9
3
Compartir
Comentar
0/400
UncommonNPC
· hace13h
Todavía hay muchas técnicas de ataque...
Ver originalesResponder0
NeverPresent
· hace13h
Otra vez hablando de auditoría, es lo mismo que no decir nada.
Ver originalesResponder0
HackerWhoCares
· hace14h
¡El código es más importante que la nomenclatura de camello!
Guía completa de seguridad DeFi: Profundidad en el análisis de vulnerabilidades comunes y estrategias de prevención
Finanzas descentralizadas seguridad: tipos comunes de vulnerabilidades y medidas de prevención
Recientemente, un experto en seguridad compartió una clase de seguridad de Finanzas descentralizadas con los miembros de la comunidad. Repasó los importantes incidentes de seguridad que ha enfrentado la industria de Web3 en más de un año, exploró las razones por las cuales ocurrieron estos eventos y cómo evitarlos, resumió las vulnerabilidades de seguridad comunes en los contratos inteligentes y las medidas de prevención, y ofreció algunos consejos de seguridad para los desarrolladores de proyectos y 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 funciones fallback, vulnerabilidades de lógica comercial, filtración de claves privadas y ataques de reentrada. Este artículo se centrará en los préstamos relámpago, la manipulación de precios y los ataques de reentrada.
Préstamo relámpago
El préstamo relámpago es una innovación en las Finanzas descentralizadas, pero también es utilizado comúnmente por hackers. Los atacantes piden prestados grandes cantidades de fondos a través de préstamos relámpago para manipular precios o atacar la lógica del negocio. Los desarrolladores deben considerar si las funciones del contrato pueden verse afectadas por grandes cantidades de dinero, o si pueden ser explotadas para interactuar con múltiples funciones en una sola transacción y obtener recompensas indebidas.
Muchos proyectos de Finanzas descentralizadas parecen tener altos rendimientos, pero en realidad, el nivel de los equipos detrás de los proyectos 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 que poseen los titulares, pero los atacantes pueden aprovecharse de los préstamos relámpago para comprar una gran cantidad de tokens y obtener la mayor parte de las recompensas cuando se distribuyen.
Manipulación de precios
El problema del control de precios está estrechamente relacionado con los préstamos relámpago, principalmente porque ciertos parámetros en el cálculo de precios pueden ser controlados por los usuarios. Hay dos tipos comunes de problemas:
Ataque de reentrada
Uno de los principales riesgos de llamar a contratos externos es que pueden tomar el control del flujo y realizar cambios inesperados en los datos. Un ejemplo típico de ataque de reentrada es que, en la función de retiro, el saldo del usuario no se establece en 0 hasta el final de la función, lo que permite que múltiples llamadas aún tengan éxito al retirar.
Para resolver el problema de reentrada, se deben tener en cuenta los siguientes puntos:
En las prácticas de seguridad, se deben utilizar soluciones maduras que ya hayan sido completamente verificadas, en lugar de reinventar la rueda.
Sugerencias de seguridad para el proyecto
¿Cómo pueden los usuarios determinar la seguridad de los contratos inteligentes?
Al prestar atención a los puntos anteriores, los usuarios pueden evaluar mejor la seguridad de un proyecto de Finanzas descentralizadas, lo que les permite tomar decisiones de inversión más informadas.