Sécurité des Finance décentralisée et mesures de prévention
Récemment, un expert en sécurité a partagé un cours sur la sécurité de la Finance décentralisée avec la communauté. Cet expert a passé en revue les événements de sécurité majeurs auxquels l'industrie Web3 a été confrontée au cours de l'année passée, a exploré les raisons de ces événements et comment les éviter, a résumé les vulnérabilités courantes des contrats intelligents et les mesures préventives, et a proposé quelques conseils de sécurité aux projets et aux utilisateurs.
Les types de vulnérabilités DeFi courants incluent les prêts flash, la manipulation des prix, les problèmes de permissions de fonction, les appels externes arbitraires, les problèmes de fonction fallback, les vulnérabilités de logique métier, la fuite de clés privées et les attaques par réentrance, entre autres. Cet article se concentre sur trois types : les prêts flash, la manipulation des prix et les attaques par réentrance.
Prêt éclair
Le prêt éclair est une innovation de la Finance décentralisée, mais il est également exploité par des hackers pour mener des attaques. Les attaquants empruntent d'importants fonds par le biais de prêts éclair pour manipuler les prix ou attaquer la logique commerciale. Les développeurs doivent prendre en compte si les fonctionnalités du contrat peuvent devenir anormales en raison de montants d'argent énormes, ou être exploitées pour obtenir des récompenses indues.
De nombreux projets de Finance décentralisée sont susceptibles d'être attaqués par des prêts flash en raison de problèmes de code ou de logique. Par exemple, certains projets distribuent des récompenses en fonction des positions à des moments fixes, mais sont exploités par des attaquants utilisant des prêts flash pour acheter une grande quantité de jetons et obtenir la majorité des récompenses. D'autres projets, qui calculent les prix via des jetons, peuvent également être affectés par des prêts flash. Les équipes de projet doivent rester vigilantes face à ces problèmes.
Manipulation des prix
Le problème de manipulation des prix est étroitement lié aux prêts flash, principalement dans deux cas :
Lors du calcul des prix, des données tierces sont utilisées, mais la méthode d'utilisation est incorrecte ou il y a un manque de vérification, ce qui entraîne une manipulation malveillante des prix.
Utiliser le nombre de Token de certaines adresses comme variable de calcul, tandis que le solde de Token de ces adresses peut être augmenté ou diminué temporairement.
Attaque par réentrance
Le principal risque lié à l'appel de contrats externes est qu'ils peuvent prendre le contrôle du flux, entraînant des modifications inattendues des données. Par exemple :
fonction retirerSolde() public {
uint amountToWithdraw = userBalances[msg.sender];
(bool success, ) = msg.sender.call.value(amountToWithdraw)("");
require(success);
userBalances[msg.sender] = 0;
}
Puisque le solde de l'utilisateur n'est fixé à 0 qu'à la fin de la fonction, les appels répétés réussiront toujours, permettant de retirer le solde plusieurs fois.
Il existe plusieurs formes d'attaques par réinsertion, qui peuvent impliquer différentes fonctions d'un seul contrat ou des fonctions de plusieurs contrats. Pour résoudre le problème de réinsertion, il est important de noter :
Non seulement prévenir la réentrance d'une seule fonction
Suivre le modèle Checks-Effects-Interactions pour le codage
Utiliser un modificateur de protection contre les réentrées vérifié
Il est conseillé d'utiliser des pratiques de sécurité éprouvées pour éviter de réinventer la roue. Les nouvelles solutions développées en interne manquent de validation adéquate, ce qui augmente la probabilité de problèmes.
Conseils de sécurité
conseils de sécurité pour le projet
Suivre les meilleures pratiques de sécurité lors du développement de contrats
Mise en œuvre de la fonctionnalité de mise à niveau et de pause des contrats
Utiliser un mécanisme de verrouillage temporel
Augmenter les investissements en sécurité et établir un système de sécurité complet.
Élever la sensibilisation à la sécurité de tous les employés
Prévenir les actes malveillants internes tout en renforçant le contrôle des risques tout en améliorant l'efficacité.
Introduire des dépendances tierces avec prudence, par défaut les flux en amont et en aval ne sont pas sûrs.
Comment les utilisateurs peuvent-ils évaluer la sécurité des contrats intelligents
Le contrat est-il open source
Le propriétaire utilise-t-il une multi-signature décentralisée ?
Vérifiez la situation des transactions existantes du contrat
Le contrat est-il évolutif, y a-t-il un verrouillage temporel ?
Accepte-t-on l'audit par plusieurs institutions, les droits du propriétaire sont-ils trop étendus ?
Faites attention à la fiabilité des oracles.
En résumé, les équipes de projet et les utilisateurs doivent renforcer leur sensibilisation à la sécurité et prendre les mesures nécessaires pour réduire les risques de sécurité liés à la Finance décentralisée.
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.
7 J'aime
Récompense
7
7
Partager
Commentaire
0/400
RugResistant
· Il y a 13h
Encore un qui entre sous le nom de prévention pour prendre les gens pour des idiots.
Voir l'originalRépondre0
ChainDoctor
· Il y a 13h
Encore un Prêt Flash à blâmer, tssk tssk.
Voir l'originalRépondre0
PessimisticOracle
· Il y a 13h
Ah, derrière les failles se cachent des tentations de profits énormes.
Voir l'originalRépondre0
ParallelChainMaxi
· Il y a 13h
Il y a tant de failles, faites attention à vous tous.
Voir l'originalRépondre0
TokenGuru
· Il y a 13h
Vieux bugs vus lors de la période de Mining, ne soyez pas négligents, tout le monde.
Voir l'originalRépondre0
Anon4461
· Il y a 13h
Ne fais pas le malin, on dirait que chacun a des failles.
Voir l'originalRépondre0
RektCoaster
· Il y a 14h
Les poissons meurent, les filets se déchirent, mais je ne céderai jamais à mei et weiruan.
Analyse des trois principaux risques de sécurité de la Finance décentralisée : Prêts Flash, manipulation des prix et attaque par réentrance.
Sécurité des Finance décentralisée et mesures de prévention
Récemment, un expert en sécurité a partagé un cours sur la sécurité de la Finance décentralisée avec la communauté. Cet expert a passé en revue les événements de sécurité majeurs auxquels l'industrie Web3 a été confrontée au cours de l'année passée, a exploré les raisons de ces événements et comment les éviter, a résumé les vulnérabilités courantes des contrats intelligents et les mesures préventives, et a proposé quelques conseils de sécurité aux projets et aux utilisateurs.
Les types de vulnérabilités DeFi courants incluent les prêts flash, la manipulation des prix, les problèmes de permissions de fonction, les appels externes arbitraires, les problèmes de fonction fallback, les vulnérabilités de logique métier, la fuite de clés privées et les attaques par réentrance, entre autres. Cet article se concentre sur trois types : les prêts flash, la manipulation des prix et les attaques par réentrance.
Prêt éclair
Le prêt éclair est une innovation de la Finance décentralisée, mais il est également exploité par des hackers pour mener des attaques. Les attaquants empruntent d'importants fonds par le biais de prêts éclair pour manipuler les prix ou attaquer la logique commerciale. Les développeurs doivent prendre en compte si les fonctionnalités du contrat peuvent devenir anormales en raison de montants d'argent énormes, ou être exploitées pour obtenir des récompenses indues.
De nombreux projets de Finance décentralisée sont susceptibles d'être attaqués par des prêts flash en raison de problèmes de code ou de logique. Par exemple, certains projets distribuent des récompenses en fonction des positions à des moments fixes, mais sont exploités par des attaquants utilisant des prêts flash pour acheter une grande quantité de jetons et obtenir la majorité des récompenses. D'autres projets, qui calculent les prix via des jetons, peuvent également être affectés par des prêts flash. Les équipes de projet doivent rester vigilantes face à ces problèmes.
Manipulation des prix
Le problème de manipulation des prix est étroitement lié aux prêts flash, principalement dans deux cas :
Lors du calcul des prix, des données tierces sont utilisées, mais la méthode d'utilisation est incorrecte ou il y a un manque de vérification, ce qui entraîne une manipulation malveillante des prix.
Utiliser le nombre de Token de certaines adresses comme variable de calcul, tandis que le solde de Token de ces adresses peut être augmenté ou diminué temporairement.
Attaque par réentrance
Le principal risque lié à l'appel de contrats externes est qu'ils peuvent prendre le contrôle du flux, entraînant des modifications inattendues des données. Par exemple :
solidity mapping (address => uint) private userBalances;
fonction retirerSolde() public { uint amountToWithdraw = userBalances[msg.sender]; (bool success, ) = msg.sender.call.value(amountToWithdraw)(""); require(success); userBalances[msg.sender] = 0; }
Puisque le solde de l'utilisateur n'est fixé à 0 qu'à la fin de la fonction, les appels répétés réussiront toujours, permettant de retirer le solde plusieurs fois.
Il existe plusieurs formes d'attaques par réinsertion, qui peuvent impliquer différentes fonctions d'un seul contrat ou des fonctions de plusieurs contrats. Pour résoudre le problème de réinsertion, il est important de noter :
Il est conseillé d'utiliser des pratiques de sécurité éprouvées pour éviter de réinventer la roue. Les nouvelles solutions développées en interne manquent de validation adéquate, ce qui augmente la probabilité de problèmes.
Conseils de sécurité
conseils de sécurité pour le projet
Comment les utilisateurs peuvent-ils évaluer la sécurité des contrats intelligents
En résumé, les équipes de projet et les utilisateurs doivent renforcer leur sensibilisation à la sécurité et prendre les mesures nécessaires pour réduire les risques de sécurité liés à la Finance décentralisée.