Análisis de riesgos de seguridad en contratos NFT: revisión de eventos de la primera mitad de 2022 y puntos clave de auditoría

Análisis de seguridad de contratos NFT: revisión de eventos del primer semestre de 2022 y discusión de preguntas comunes

En la primera mitad de 2022, ocurrieron frecuentes incidentes de seguridad en el ámbito de los NFT, lo que causó enormes pérdidas económicas. Según estadísticas, en este semestre se produjeron 10 incidentes importantes de seguridad en NFT, con una pérdida total de hasta 64.9 millones de dólares. Los métodos de ataque incluyen principalmente la explotación de vulnerabilidades en contratos, filtración de claves privadas y phishing, entre otros. Es notable que los ataques de phishing en la plataforma Discord son especialmente rampantes, ya que casi todos los días hay servidores que sufren ataques, lo que provoca que muchos usuarios sufran pérdidas al hacer clic en enlaces maliciosos.

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

Análisis de eventos de seguridad típicos

evento TreasureDAO

El 3 de marzo, la plataforma de intercambio TreasureDAO fue atacada, y más de 100 NFT fueron robados. El problema radicó en la función buyItem del contrato TreasureMarketplaceBuyer. Esta función no verificó el tipo de token al calcular el precio total, multiplicando directamente la cantidad por el precio unitario. Esto permitió que los atacantes pudieran llamar a la función buyItem del contrato TreasureMarketplace, comprando tokens con un pago de 0 en tokens ERC-20.

La causa raíz es la confusión lógica provocada por el uso combinado de tokens ERC-1155 y ERC-721. Los tokens ERC-721 en sí no tienen un concepto de cantidad, pero el contrato calcula el precio de compra en base a la cantidad, y en la implementación de la transferencia final no se realizó una separación lógica.

evento de airdrop de APE Coin

El 17 de marzo, un hacker obtuvo más de 60,000 APE Coin a través de un préstamo relámpago. El problema radicaba en el contrato de airdrop de AirdropGrapesToken. El contrato utiliza alpha.balanceOf() y beta.balanceOf() para determinar la propiedad de BAYC/MAYC NFT por parte del llamador, pero este método solo puede obtener el estado instantáneo de la propiedad del NFT del usuario, y este estado puede ser manipulado a través de 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, el proyecto Revest Finance sufrió un ataque, con una pérdida de aproximadamente 120,000 dólares. Este es un caso típico de ataque de reentrada ERC-1155. El problema radica en el contrato de Revest. Cuando los usuarios utilizan depositAdditionalToFNFT() para agregar activos colaterales FNFT, el contrato necesita destruir primero el antiguo FNFT y luego acuñar un nuevo FNFT. Sin embargo, durante el proceso de acuñación, la función min() no verifica si el FNFT que se va a acuñar ya existe, y la variable de estado fnftId se incrementa después de la función _mint(). Además, en _min() hay una llamada externa oculta de ERC-1155 _doSafeTransferAcceptanceCheck(), lo que provoca una vulnerabilidad de reentrada.

evento de aprovechamiento de la NBA

El 21 de abril, el proyecto de la NBA fue atacado. El problema radica en el mecanismo de verificación de firmas del contrato The_Association_Sales. Existen principalmente dos vulnerabilidades de seguridad: suplantación de firma y reutilización de firma. La reutilización de firma se debe a que el contrato no almacena las firmas ya utilizadas, lo que permite a un atacante reutilizar la misma firma varias veces. La suplantación de firma se debe a que el parámetro info de vData memory no realiza una verificación de msg.sender al pasar el parámetro, lo que permite que la firma sea suplantada.

Evento Akutar

El 23 de abril, el contrato AkuAuction del proyecto NFT Akutar bloqueó 11539ETH (aproximadamente 34 millones de dólares) debido a una vulnerabilidad. El contrato presenta dos vulnerabilidades lógicas:

  1. La función de reembolso processRefunds utiliza la función call para realizar reembolsos y el resultado del reembolso se utiliza como condición de requerimiento. Un atacante puede revertir maliciosamente en el fallback, lo que impide que toda la operación de reembolso del contrato se lleve a cabo.
  2. Las dos condiciones de verificación en la función de reembolso no consideran la posibilidad de que los usuarios puedan pujar por múltiples NFT, lo que provoca que las operaciones de reembolso posteriores por parte del proyecto nunca puedan ejecutarse.

evento XCarnival

El 24 de junio, el protocolo de préstamo de NFT XCarnival fue atacado, y el hacker obtuvo 3087 ETH (aproximadamente 3.8 millones de dólares). El problema radica en la función pledgeAndBorrow del contrato XNFT. Esta función no verificó si la dirección xToken proporcionada por el atacante estaba en la lista blanca del proyecto al apostar el NFT, y no realizó una verificación del estado del registro de garantía al prestar, lo que permitió al atacante reutilizar repetidamente registros de garantía inválidos para obtener préstamos.

Análisis de eventos 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 repetida, como la falta de nonce del usuario, lo que permite que los datos de firma reutilizables acuñen NFT.
    • La verificación de la firma no es razonable, ya que no se verifica el caso en que el firmante es una dirección cero, lo que permite a cualquier usuario acuñar monedas a través de la verificación.
  2. Vulnerabilidades lógicas:

    • El administrador del contrato puede acuñar monedas de manera especial sin estar sujeto a un límite total, lo que lleva a que la cantidad real de NFT supere las expectativas.
    • En una subasta de NFT, el ganador puede utilizar un ataque de dependencia de orden de transacciones para modificar el precio de la puja y adquirir el NFT a un precio bajo.
  3. Ataque de reentrada ERC721/ERC1155:

    • Al usar la función de notificación de transferencia (función onERC721Received), el contrato NFT envía una llamada al contrato de destino de la transferencia, lo que puede dar lugar a un ataque de reentrada.
  4. Alcance de autorización demasiado amplio:

    • Se requiere la autorización _operatorApprovals al hacer staking o subastas, en lugar de la autorización de un solo token, lo que aumenta el riesgo de robo de NFT.
  5. Manipulación de precios:

    • El precio del NFT depende de la cantidad de tokens en un contrato determinado, los atacantes pueden utilizar préstamos relámpago para aumentar el precio de los tokens, lo que lleva a la liquidación anormal de los NFTs en staking.

Dado que los incidentes de seguridad de contratos NFT son cada vez más frecuentes y las vulnerabilidades encontradas durante el proceso de auditoría a menudo coinciden con los ataques reales, resulta especialmente importante buscar empresas de seguridad profesionales para realizar una auditoría completa de los contratos NFT.

Análisis de eventos de seguridad 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
  • 6
  • Republicar
  • Compartir
Comentar
0/400
BrokeBeansvip
· hace22h
¿Qué problema ha surgido con el contrato otra vez? ¿Quién se atreve a comprar ahora?
Ver originalesResponder0
CryptoNomicsvip
· hace22h
*sigh* aplicando análisis de cadena de Markov, estos hacks muestran una correlación del 73.4% con la mala auditoría de contratos. estadísticamente inevitable.
Ver originalesResponder0
blockBoyvip
· hace22h
Tsk, todos los días hay vulnerabilidades.
Ver originalesResponder0
ILCollectorvip
· hace22h
Ay, se evaporaron unos k de dólares así de fácil, realmente me duele por el hermano que está tomando a la gente por tonta.
Ver originalesResponder0
SorryRugPulledvip
· hace22h
Otra vez fui víctima de un phishing de dc.
Ver originalesResponder0
GweiTooHighvip
· hace22h
Una vez más, el contrato ha sido esquilmado, no tiene fin.
Ver originalesResponder0
  • Anclado
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)