Analyse de la sécurité des contrats NFT : événements typiques et problèmes courants
Au cours du premier semestre 2022, des incidents de sécurité dans le domaine des NFT se sont multipliés, entraînant d'importantes pertes économiques. Selon les données d'une plateforme de surveillance, 10 incidents de sécurité majeurs se sont produits pendant cette période, avec des pertes totales d'environ 64,9 millions de dollars. Les méthodes d'attaque comprenaient principalement l'exploitation de vulnérabilités de contrat, la fuite de clés privées et le phishing. Parallèlement, les serveurs Discord ont subi des attaques fréquentes, entraînant des pertes pour les utilisateurs qui cliquaient sur des liens de phishing.
Analyse des incidents de sécurité typiques
événement TreasureDAO
Le 3 mars 2022, la plateforme de trading TreasureDAO a été piratée, entraînant le vol de plus de 100 NFT. La racine de l'incident réside dans une vulnérabilité logique du contrat TreasureMarketplaceBuyer. Le contrat ne vérifie pas le type de jeton dans la fonction buyItem, multipliant directement _quantity par _pricePerItem pour calculer le totalPrice, permettant ainsi à l'attaquant d'acheter des jetons avec un paiement de 0 en ERC-20. Ce problème provient d'une confusion logique causée par l'utilisation mixte des jetons ERC-1155 et ERC-721, les jetons ERC-721 n'ayant pas de concept de quantité, mais le contrat calcule le prix en fonction de la quantité, et aucune séparation logique n'a été effectuée dans la mise en œuvre du transfert.
Événement de distribution d'APE Coin
Le 17 mars 2022, des hackers ont obtenu plus de 60 000 APE Coin grâce à un prêt éclair. Le contrat de l'airdrop AirdropGrapesToken présente une vulnérabilité logique, se basant uniquement sur alpha.balanceOf() et beta.balanceOf() pour déterminer la propriété des NFT BAYC/MAYC par l'appelant. Cette méthode ne permet d'obtenir que l'état momentané de la propriété des NFT par l'utilisateur, état pouvant être manipulé par un prêt éclair. Les attaquants ont exploité cette vulnérabilité pour emprunter des NFT BAYC via un prêt éclair et obtenir l'airdrop correspondant.
événement Revest Finance
Le 27 mars 2022, Revest Finance a été victime d'une attaque de hackers, entraînant une perte d'environ 120 000 dollars. Le contrat Revest contenait une vulnérabilité de réentrance ERC-1155. Lorsque les utilisateurs utilisent depositAdditionalToFNFT() pour ajouter des actifs de garantie FNFT, le contrat doit d'abord détruire l'ancien FNFT, puis émettre un nouveau FNFT. Cependant, la fonction min() n'a pas vérifié si le FNFT à émettre existait déjà, et l'auto-incrémentation de fnftId s'est exécutée après _mint(). L'appel externe dans _min() à _doSafeTransferAcceptanceCheck() a entraîné une vulnérabilité de réentrance.
événement NBA de profit facile
Le 21 avril 2022, le projet NBA a subi une attaque de hacker. Le contrat The_Association_Sales présente deux problèmes majeurs lors de l'utilisation de la vérification de signature sur la liste blanche : le recyclage des signatures et l'usurpation de signature. Le recyclage des signatures est dû au fait que le contrat n'a pas stocké les signatures déjà utilisées, permettant aux attaquants de les réutiliser ; l'usurpation de signature résulte du fait que le paramètre info de vData memory n'a pas vérifié msg.sender lors de la transmission des paramètres.
Événement Akutar
Le 23 avril 2022, le contrat AkuAuction du projet Akutar a été bloqué à cause d'une vulnérabilité dans le smart contract, entraînant le verrouillage de 11539ETH( d'environ 34 millions de dollars). Le contrat présente deux vulnérabilités logiques : premièrement, la fonction de remboursement processRefunds utilise la fonction call pour rembourser, en prenant le résultat comme condition de validité, ce qui permet à un attaquant de provoquer un revert malveillant dans la fonction fallback pour empêcher le remboursement ; deuxièmement, la condition de vérification dans la fonction de remboursement n'a pas pris en compte le fait que les utilisateurs peuvent enchérir sur plusieurs NFT, ce qui empêche l'exécution des opérations de remboursement ultérieures.
événement XCarnival
Le 24 juin 2022, le protocole de prêt NFT XCarnival a été attaqué, les hackers ont réalisé un profit de 3087 Ethereum ( d'environ 3,8 millions de dollars ). La fonction pledgeAndBorrow du contrat XNFT n'a pas vérifié si l'adresse xToken figurait sur la liste blanche lors du staking des NFT, et n'a pas vérifié l'état des enregistrements de nantissement lors de l'emprunt, permettant aux attaquants d'utiliser à plusieurs reprises des enregistrements de nantissement invalides pour emprunter.
Questions fréquentes sur l'audit des contrats NFT
Usurpation et réutilisation de signatures:
Les données de signature manquent de vérification d'exécution répétée, les données de signature réutilisables peuvent être utilisées pour frapper des NFT
Vérification de signature irrationnelle, tout utilisateur peut effectuer le minage par vérification.
Faille logique :
Les administrateurs peuvent frapper des pièces de manière spéciale sans être soumis à une limite de quantité totale, ce qui entraîne un nombre réel d'NFT supérieur aux attentes.
Lors de l'enchère des NFT, le gagnant peut modifier le prix de l'enchère par une attaque de dépendance à l'ordre des transactions, obtenant ainsi le NFT à bas prix.
Attaque par réentrance ERC721/ERC1155:
L'utilisation de la fonction de notification de transfert, le contrat NFT envoie un appel au contrat cible, ce qui peut entraîner une attaque par réentrance.
Portée des autorisations trop large :
L'exigence d'autorisation _operatorApprovals lors du staking ou de l'enchère peut entraîner un risque de vol de NFT
Manipulation des prix:
Le prix des NFT dépend de la quantité de jetons d'un certain contrat, les attaquants peuvent utiliser des prêts éclair pour faire monter le prix, entraînant une liquidation anormale des NFT stakés.
Étant donné la fréquence des incidents de sécurité liés aux contrats NFT et que les vulnérabilités courantes dans les audits sont souvent exploitées dans la pratique, il est très nécessaire de faire appel à une société de sécurité professionnelle pour procéder à un audit complet des contrats NFT.
Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
11 J'aime
Récompense
11
9
Partager
Commentaire
0/400
SerumDegen
· 07-26 15:03
un autre jour un autre hack... classique web3 smh
Voir l'originalRépondre0
CompoundPersonality
· 07-26 10:33
Ces bugs de contrat ne sont que des tigres en papier.
Voir l'originalRépondre0
BearMarketBuyer
· 07-26 08:12
débutant a perdu cinquante mille
Voir l'originalRépondre0
DefiOldTrickster
· 07-25 07:36
J'ai été dans ce milieu pendant dix ans, j'ai vu combien de pigeons ont été pris pour des idiots. N'est-ce pas malheureux d'être à ce point perdant ?
Voir l'originalRépondre0
TokenSleuth
· 07-23 15:36
Il y a tant de failles dans les contrats, qui oserait acheter ?
Voir l'originalRépondre0
pumpamentalist
· 07-23 15:36
Un autre poisson a été attrapé.
Voir l'originalRépondre0
SelfCustodyBro
· 07-23 15:31
Comment peuvent-ils encore oser se mettre sur la chaîne avec une protection aussi mauvaise ?
Voir l'originalRépondre0
DogeBachelor
· 07-23 15:23
C'est vraiment impossible à jouer !
Voir l'originalRépondre0
FloorPriceWatcher
· 07-23 15:11
NFT vrai coup dur, qui achète, qui est malchanceux.
Analyse des risques de sécurité des contrats NFT : étude de 6 événements typiques et interprétation de 5 problèmes courants
Analyse de la sécurité des contrats NFT : événements typiques et problèmes courants
Au cours du premier semestre 2022, des incidents de sécurité dans le domaine des NFT se sont multipliés, entraînant d'importantes pertes économiques. Selon les données d'une plateforme de surveillance, 10 incidents de sécurité majeurs se sont produits pendant cette période, avec des pertes totales d'environ 64,9 millions de dollars. Les méthodes d'attaque comprenaient principalement l'exploitation de vulnérabilités de contrat, la fuite de clés privées et le phishing. Parallèlement, les serveurs Discord ont subi des attaques fréquentes, entraînant des pertes pour les utilisateurs qui cliquaient sur des liens de phishing.
Analyse des incidents de sécurité typiques
événement TreasureDAO
Le 3 mars 2022, la plateforme de trading TreasureDAO a été piratée, entraînant le vol de plus de 100 NFT. La racine de l'incident réside dans une vulnérabilité logique du contrat TreasureMarketplaceBuyer. Le contrat ne vérifie pas le type de jeton dans la fonction buyItem, multipliant directement _quantity par _pricePerItem pour calculer le totalPrice, permettant ainsi à l'attaquant d'acheter des jetons avec un paiement de 0 en ERC-20. Ce problème provient d'une confusion logique causée par l'utilisation mixte des jetons ERC-1155 et ERC-721, les jetons ERC-721 n'ayant pas de concept de quantité, mais le contrat calcule le prix en fonction de la quantité, et aucune séparation logique n'a été effectuée dans la mise en œuvre du transfert.
Événement de distribution d'APE Coin
Le 17 mars 2022, des hackers ont obtenu plus de 60 000 APE Coin grâce à un prêt éclair. Le contrat de l'airdrop AirdropGrapesToken présente une vulnérabilité logique, se basant uniquement sur alpha.balanceOf() et beta.balanceOf() pour déterminer la propriété des NFT BAYC/MAYC par l'appelant. Cette méthode ne permet d'obtenir que l'état momentané de la propriété des NFT par l'utilisateur, état pouvant être manipulé par un prêt éclair. Les attaquants ont exploité cette vulnérabilité pour emprunter des NFT BAYC via un prêt éclair et obtenir l'airdrop correspondant.
événement Revest Finance
Le 27 mars 2022, Revest Finance a été victime d'une attaque de hackers, entraînant une perte d'environ 120 000 dollars. Le contrat Revest contenait une vulnérabilité de réentrance ERC-1155. Lorsque les utilisateurs utilisent depositAdditionalToFNFT() pour ajouter des actifs de garantie FNFT, le contrat doit d'abord détruire l'ancien FNFT, puis émettre un nouveau FNFT. Cependant, la fonction min() n'a pas vérifié si le FNFT à émettre existait déjà, et l'auto-incrémentation de fnftId s'est exécutée après _mint(). L'appel externe dans _min() à _doSafeTransferAcceptanceCheck() a entraîné une vulnérabilité de réentrance.
événement NBA de profit facile
Le 21 avril 2022, le projet NBA a subi une attaque de hacker. Le contrat The_Association_Sales présente deux problèmes majeurs lors de l'utilisation de la vérification de signature sur la liste blanche : le recyclage des signatures et l'usurpation de signature. Le recyclage des signatures est dû au fait que le contrat n'a pas stocké les signatures déjà utilisées, permettant aux attaquants de les réutiliser ; l'usurpation de signature résulte du fait que le paramètre info de vData memory n'a pas vérifié msg.sender lors de la transmission des paramètres.
Événement Akutar
Le 23 avril 2022, le contrat AkuAuction du projet Akutar a été bloqué à cause d'une vulnérabilité dans le smart contract, entraînant le verrouillage de 11539ETH( d'environ 34 millions de dollars). Le contrat présente deux vulnérabilités logiques : premièrement, la fonction de remboursement processRefunds utilise la fonction call pour rembourser, en prenant le résultat comme condition de validité, ce qui permet à un attaquant de provoquer un revert malveillant dans la fonction fallback pour empêcher le remboursement ; deuxièmement, la condition de vérification dans la fonction de remboursement n'a pas pris en compte le fait que les utilisateurs peuvent enchérir sur plusieurs NFT, ce qui empêche l'exécution des opérations de remboursement ultérieures.
événement XCarnival
Le 24 juin 2022, le protocole de prêt NFT XCarnival a été attaqué, les hackers ont réalisé un profit de 3087 Ethereum ( d'environ 3,8 millions de dollars ). La fonction pledgeAndBorrow du contrat XNFT n'a pas vérifié si l'adresse xToken figurait sur la liste blanche lors du staking des NFT, et n'a pas vérifié l'état des enregistrements de nantissement lors de l'emprunt, permettant aux attaquants d'utiliser à plusieurs reprises des enregistrements de nantissement invalides pour emprunter.
Questions fréquentes sur l'audit des contrats NFT
Usurpation et réutilisation de signatures:
Faille logique :
Attaque par réentrance ERC721/ERC1155:
Portée des autorisations trop large :
Manipulation des prix:
Étant donné la fréquence des incidents de sécurité liés aux contrats NFT et que les vulnérabilités courantes dans les audits sont souvent exploitées dans la pratique, il est très nécessaire de faire appel à une société de sécurité professionnelle pour procéder à un audit complet des contrats NFT.