Finanzas descentralizadas seguridad vulnerabilidades y medidas de prevención
Recientemente, un experto en seguridad compartió un curso de seguridad de Finanzas descentralizadas para la comunidad. El experto revisó los importantes incidentes de seguridad que la industria de Web3 ha enfrentado en el último año, exploró las causas de estos eventos y cómo evitarlos, resumió las vulnerabilidades comunes de los contratos inteligentes y las medidas de prevención, y ofreció algunas recomendaciones de seguridad para los proyectos y los usuarios.
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 de fallback, vulnerabilidades en la lógica de negocio, filtración de claves privadas y ataques de reentrada, entre otros. Este artículo se centra 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 una innovación en las Finanzas descentralizadas, pero también ha sido utilizado por hackers para llevar a cabo ataques. Los atacantes piden prestados grandes cantidades de fondos a través de préstamos relámpago para manipular precios o atacar la lógica de negocio. Los desarrolladores deben considerar si las funciones del contrato pueden verse afectadas por grandes sumas de dinero, o ser explotadas para obtener recompensas indebidas.
Muchos proyectos de Finanzas descentralizadas son susceptibles a ataques de préstamos relámpago debido a problemas de código o lógica. Por ejemplo, algunos proyectos otorgan recompensas en función de la tenencia en momentos fijos, pero los atacantes aprovechan los préstamos relámpago para comprar grandes cantidades de tokens y obtener la mayor parte de las recompensas. También hay proyectos que calculan precios a través de Token, que también pueden verse afectados por préstamos relámpago. Los equipos de los proyectos deben mantenerse alerta ante estos problemas.
Manipulación de precios
El problema de la manipulación de precios está estrechamente relacionado con los préstamos relámpago, y hay dos situaciones principales:
Al calcular el precio se utilizan datos de terceros, pero la forma de uso es incorrecta o faltan verificaciones, lo que lleva a que el precio sea manipulado maliciosamente.
Usar la cantidad de Tokens de ciertas direcciones como variable de cálculo, y el saldo de Tokens de estas direcciones puede ser aumentada o disminuida temporalmente.
Ataque de reentrada
El principal riesgo de invocar contratos externos es que pueden tomar el control del flujo y realizar cambios inesperados en los datos. Por ejemplo:
Debido a que el saldo del usuario se establece en 0 solo al final de la función, las llamadas repetidas aún tendrán éxito y se puede retirar el saldo varias veces.
Los ataques de reentrada tienen diversas formas y pueden implicar diferentes funciones de un solo contrato o funciones de múltiples contratos. Para resolver el problema de la reentrada, se debe prestar atención a:
No solo previene la reentrada de una única función
Seguir el patrón de codificación Checks-Effects-Interactions
Utilizar un modificador de prevención de reentradas verificado
Se recomienda utilizar prácticas de seguridad maduras y evitar reinventar la rueda. Las nuevas soluciones desarrolladas por uno mismo carecen de una validación adecuada, lo que aumenta la probabilidad de problemas.
Sugerencias de seguridad
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 de tiempo
Aumentar la inversión en seguridad, establecer un sistema de seguridad completo
Aumentar la conciencia de seguridad de todos los empleados
Prevenir el mal comportamiento interno, mientras se mejora la eficiencia y se refuerza el control de riesgos.
Introducir dependencias de terceros con precaución, por defecto, tanto el upstream como el downstream no son seguros.
¿Cómo pueden los usuarios juzgar la seguridad de los contratos inteligentes?
¿Es el contrato de código abierto?
¿El propietario utiliza una firma múltiple descentralizada?
Verifique la situación de las transacciones existentes del contrato
¿Es posible actualizar el contrato y existe un bloqueo temporal?
¿Se aceptan auditorías de múltiples instituciones? ¿Los permisos del propietario son demasiado amplios?
Presta atención a la fiabilidad del oráculo.
En resumen, tanto el equipo del proyecto como los usuarios deben aumentar la conciencia sobre la seguridad y tomar las medidas necesarias para reducir los riesgos de seguridad en Finanzas descentralizadas.
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.
7 me gusta
Recompensa
7
7
Compartir
Comentar
0/400
RugResistant
· hace13h
Otra vez entran con un nombre de prevención para tomar a la gente por tonta.
Ver originalesResponder0
ChainDoctor
· hace13h
Otra vez el Flash Loans de ser el chivo expiatorio, tsk tsk
Ver originalesResponder0
PessimisticOracle
· hace13h
Detrás de las vulnerabilidades siempre hay tentaciones de grandes beneficios.
Ver originalesResponder0
ParallelChainMaxi
· hace13h
Hay tantas vulnerabilidades, cuídense mucho.
Ver originalesResponder0
TokenGuru
· hace13h
Ya he visto viejas vulnerabilidades de la época de la minería, no sean descuidados, amigos.
Ver originalesResponder0
Anon4461
· hace13h
No presumas, parece que todos tienen fallos.
Ver originalesResponder0
RektCoaster
· hace14h
El pez muere y la red se rompe, no se perderá ante mei y wei.
Análisis de las tres principales vulnerabilidades de la Finanzas descentralizadas: Flash Loans, manipulación de precios y ataque de reentrada
Finanzas descentralizadas seguridad vulnerabilidades y medidas de prevención
Recientemente, un experto en seguridad compartió un curso de seguridad de Finanzas descentralizadas para la comunidad. El experto revisó los importantes incidentes de seguridad que la industria de Web3 ha enfrentado en el último año, exploró las causas de estos eventos y cómo evitarlos, resumió las vulnerabilidades comunes de los contratos inteligentes y las medidas de prevención, y ofreció algunas recomendaciones de seguridad para los proyectos y los usuarios.
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 de fallback, vulnerabilidades en la lógica de negocio, filtración de claves privadas y ataques de reentrada, entre otros. Este artículo se centra 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 una innovación en las Finanzas descentralizadas, pero también ha sido utilizado por hackers para llevar a cabo ataques. Los atacantes piden prestados grandes cantidades de fondos a través de préstamos relámpago para manipular precios o atacar la lógica de negocio. Los desarrolladores deben considerar si las funciones del contrato pueden verse afectadas por grandes sumas de dinero, o ser explotadas para obtener recompensas indebidas.
Muchos proyectos de Finanzas descentralizadas son susceptibles a ataques de préstamos relámpago debido a problemas de código o lógica. Por ejemplo, algunos proyectos otorgan recompensas en función de la tenencia en momentos fijos, pero los atacantes aprovechan los préstamos relámpago para comprar grandes cantidades de tokens y obtener la mayor parte de las recompensas. También hay proyectos que calculan precios a través de Token, que también pueden verse afectados por préstamos relámpago. Los equipos de los proyectos deben mantenerse alerta ante estos problemas.
Manipulación de precios
El problema de la manipulación de precios está estrechamente relacionado con los préstamos relámpago, y hay dos situaciones principales:
Al calcular el precio se utilizan datos de terceros, pero la forma de uso es incorrecta o faltan verificaciones, lo que lleva a que el precio sea manipulado maliciosamente.
Usar la cantidad de Tokens de ciertas direcciones como variable de cálculo, y el saldo de Tokens de estas direcciones puede ser aumentada o disminuida temporalmente.
Ataque de reentrada
El principal riesgo de invocar contratos externos es que pueden tomar el control del flujo y realizar cambios inesperados en los datos. Por ejemplo:
solidez mapping (address => uint) private userBalances;
función retirarSaldo() pública { uint amountToWithdraw = userBalances[msg.sender]; (bool éxito, ) = msg.sender.call.value(cantidadARetirar)(""); require(success); userBalances[msg.sender] = 0; }
Debido a que el saldo del usuario se establece en 0 solo al final de la función, las llamadas repetidas aún tendrán éxito y se puede retirar el saldo varias veces.
Los ataques de reentrada tienen diversas formas y pueden implicar diferentes funciones de un solo contrato o funciones de múltiples contratos. Para resolver el problema de la reentrada, se debe prestar atención a:
Se recomienda utilizar prácticas de seguridad maduras y evitar reinventar la rueda. Las nuevas soluciones desarrolladas por uno mismo carecen de una validación adecuada, lo que aumenta la probabilidad de problemas.
Sugerencias de seguridad
Sugerencias de seguridad para el proyecto
¿Cómo pueden los usuarios juzgar la seguridad de los contratos inteligentes?
En resumen, tanto el equipo del proyecto como los usuarios deben aumentar la conciencia sobre la seguridad y tomar las medidas necesarias para reducir los riesgos de seguridad en Finanzas descentralizadas.