Análisis de riesgos de seguridad de contratos NFT: análisis de 6 eventos típicos y explicación de 5 problemas comunes

Análisis de la seguridad de los contratos NFT: eventos típicos y problemas comunes

En la primera mitad de 2022, los eventos de seguridad en el campo de los NFT ocurrían con frecuencia, causando pérdidas económicas significativas. Según el monitoreo de plataformas de datos, durante este período se produjeron 10 eventos de seguridad importantes, con una pérdida total de aproximadamente 64.9 millones de dólares. Las formas de ataque incluían principalmente la explotación de vulnerabilidades en contratos, filtración de claves privadas y phishing. Al mismo tiempo, los servidores de Discord sufrieron ataques frecuentes, lo que provocó que los usuarios individuales sufrieran pérdidas al hacer clic en enlaces de phishing.

Análisis de eventos de seguridad NFT del primer semestre: ¿cuáles son los casos típicos que debemos tener en cuenta?

Análisis de eventos de seguridad típicos

evento TreasureDAO

El 3 de marzo de 2022, la plataforma de intercambio TreasureDAO fue hackeada, lo que resultó en el robo de más de 100 NFT. La raíz del problema se encuentra en un fallo lógico del contrato TreasureMarketplaceBuyer. En la función buyItem, el contrato no verifica el tipo de token, simplemente multiplica _quantity por _pricePerItem para calcular totalPrice, lo que permite a los atacantes comprar tokens con un pago de token ERC-20 de 0. Este problema surge de la confusión lógica provocada por el uso mixto de tokens ERC-1155 y ERC-721; los tokens ERC-721 no tienen un concepto de cantidad, pero el contrato calcula el precio en función de la cantidad, además de que en la implementación de la transferencia no se realizó una separación lógica.

evento de airdrop de APE Coin

El 17 de marzo de 2022, un hacker obtuvo más de 60,000 APE Coin a través de un préstamo relámpago. El contrato de la airdrop de AirdropGrapesToken tenía una vulnerabilidad lógica, utilizando únicamente alpha.balanceOf() y beta.balanceOf() para determinar la propiedad del llamador sobre el NFT de BAYC/MAYC. Este método solo puede obtener el estado instantáneo de la propiedad del NFT por parte del usuario, y ese estado puede ser manipulado por un préstamo relámpago. El atacante aprovechó esta vulnerabilidad, pidiendo prestado un NFT de BAYC a través de un préstamo relámpago y obteniendo el airdrop correspondiente.

Evento de Revest Finance

El 27 de marzo de 2022, Revest Finance fue atacado por hackers, con una pérdida de aproximadamente 120,000 dólares. Existía una vulnerabilidad de reentrada en el contrato de Revest ERC-1155. Cuando los usuarios utilizaban depositAdditionalToFNFT() para agregar activos colaterales FNFT, el contrato primero necesitaba destruir el FNFT original y luego acuñar un nuevo FNFT. Sin embargo, la función min() no verificaba si el FNFT que se iba a acuñar ya existía, y el incremento de fnftId se ejecutaba después de _mint(). La llamada externa en _min() a _doSafeTransferAcceptanceCheck() provocó la vulnerabilidad de reentrada.

evento de aprovechar el NBA

El 21 de abril de 2022, el proyecto NBA fue atacado por hackers. El contrato The_Association_Sales presenta dos grandes problemas al utilizar la verificación de firmas en la lista blanca: el uso repetido de firmas se debe a que el contrato no almacena las firmas ya utilizadas, lo que permite al atacante reutilizarlas; el suplantación de firmas ocurre porque al pasar el parámetro info de vData memory no se verifica msg.sender.

Evento Akutar

El 23 de abril de 2022, el contrato AkuAuction del proyecto Akutar sufrió un bloqueo de 11539ETH(, aproximadamente 34 millones de dólares) debido a una vulnerabilidad en el contrato inteligente. El contrato presenta dos vulnerabilidades lógicas: la primera es que la función de reembolso processRefunds utiliza la función call para reembolsar, y el resultado se utiliza como condición de require, lo que permite a un atacante revertir maliciosamente en el fallback para impedir el reembolso; la segunda es que la condición de juicio en la función de reembolso no considera que los usuarios pueden licitar múltiples NFT, lo que impide que las operaciones de reembolso posteriores se ejecuten.

evento XCarnival

El 24 de junio de 2022, el protocolo de préstamo de NFT XCarnival fue atacado, y los hackers obtuvieron 3087 Ethereum ( por un valor aproximado de 3.8 millones de dólares ). La función pledgeAndBorrow del contrato XNFT no verificó si la dirección xToken estaba en la lista blanca al apostar NFTs, y no verificó el estado del registro de colateral al prestar, lo que permitió a los atacantes utilizar repetidamente registros de colateral no válidos para obtener préstamos.

Análisis de incidentes de seguridad de NFT en la primera mitad del año: ¿Qué casos típicos debemos tener en cuenta?

Preguntas frecuentes sobre la auditoría de contratos NFT

  1. Suplantación y reutilización de firmas:

    • Los datos de la firma carecen de verificación de ejecución duplicada, se pueden reutilizar los datos de firma para acuñar NFT
    • La verificación de la firma no es razonable, cualquier usuario puede acuñar mediante la verificación.
  2. Vulnerabilidad lógica:

    • El administrador puede acuñar monedas de manera especial sin estar sujeto a un límite total, lo que resulta en una cantidad de NFT que supera las expectativas.
    • Al subastar un NFT, el ganador puede modificar el precio de la puja mediante un ataque de dependencia del orden de las transacciones, obteniendo el NFT a un precio bajo.
  3. Ataque de reentrada ERC721/ERC1155:

    • Al usar la función de notificación de transferencia, el contrato NFT puede enviar una llamada al contrato objetivo que puede provocar un ataque de reentrada.
  4. Rango de autorización excesivo:

    • Se requiere la autorización _operatorApprovals al hacer staking o subastas, lo que puede resultar en el riesgo de robo de NFT.
  5. Manipulación de precios:

    • El precio de los NFT depende de la cantidad de tokens de un contrato, un atacante puede aprovechar los préstamos relámpago para aumentar el precio, lo que lleva a una liquidación anómala de los NFT en garantía.

Dada la frecuencia de los incidentes de seguridad en los contratos de NFT y la explotación recurrente de vulnerabilidades comunes en las auditorías, es muy necesario buscar una empresa de seguridad profesional para realizar una auditoría completa de los contratos de NFT.

Análisis de incidentes de seguridad de NFT en el primer semestre: ¿qué casos típicos debemos tener en cuenta?

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
  • 9
  • Compartir
Comentar
0/400
SerumDegenvip
· 07-26 15:03
otro día, otro hack... clásico de web3 smh
Ver originalesResponder0
CompoundPersonalityvip
· 07-26 10:33
Estos bugs de contrato son todos tigres de papel.
Ver originalesResponder0
BearMarketBuyervip
· 07-26 08:12
novato perdió cincuenta mil
Ver originalesResponder0
DefiOldTrickstervip
· 07-25 07:36
He estado en este círculo durante diez años, he visto cuántos tontos han sido tomados por tontos. ¿Acaso merecen perder así?
Ver originalesResponder0
TokenSleuthvip
· 07-23 15:36
Con tantos fallos en los contratos, ¿quién se atreve a comprar?
Ver originalesResponder0
pumpamentalistvip
· 07-23 15:36
Ya han pescado otro pez.
Ver originalesResponder0
SelfCustodyBrovip
· 07-23 15:31
¿Cómo se atreve a subir a la cadena con una protección tan mala?
Ver originalesResponder0
DogeBachelorvip
· 07-23 15:23
¡No puedo jugar con esto realmente!
Ver originalesResponder0
FloorPriceWatchervip
· 07-23 15:11
NFT es un verdadero golpe, quien compra se queda mal.
Ver originalesResponder0
Ver más
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)