Vulnérabilités de sécurité en Finance décentralisée et mesures préventives
Récemment, un expert en sécurité a partagé une leçon de sécurité DeFi avec les membres de la communauté. Il a passé en revue les récents événements de sécurité majeurs survenus dans l'industrie Web3, a exploré les causes de ces événements et les méthodes pour les éviter, a résumé les vulnérabilités de sécurité courantes des contrats intelligents et les mesures préventives, et a donné 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 contrôle de fonction, les appels externes arbitraires, les problèmes de fonction fallback, les vulnérabilités logiques d'affaires, la fuite de clés privées, les attaques par réentrée, etc. Ci-dessous, nous allons nous concentrer sur ces trois types : les prêts flash, la manipulation des prix et les attaques par réentrée.
Prêt flash
Le prêt éclair est une innovation dans la Finance décentralisée, mais lorsqu'il est exploité par des hackers, il peut entraîner des pertes énormes :
Les attaquants empruntent d'importants montants via des prêts flash, manipulant les prix ou attaquant la logique commerciale.
Les développeurs doivent prendre en compte si les fonctionnalités du contrat peuvent être affectées par des fonds massifs.
Certains projets utilisent le nombre de Tokens pour calculer les récompenses, ou utilisent le nombre de Tokens dans les paires de trading DEX pour participer au calcul, ces variables sont facilement manipulables par des prêts éclair.
Au cours des deux dernières années, de nombreux projets de Finance décentralisée à haut rendement ont subi des attaques par prêt éclair en raison de problèmes de code ou de logique. Par exemple, certains projets distribuent des récompenses à des moments fixes en fonction de la quantité détenue, les attaquants utilisant des prêts éclair pour acheter une grande quantité de jetons et obtenir la majorité des récompenses.
Manipulation des prix
Les problèmes de manipulation des prix sont étroitement liés aux prêts flash, et il en existe principalement deux types :
Utiliser des données tierces pour calculer les prix, mais de manière incorrecte ou sans vérification.
Utiliser le solde des Token de certaines adresses comme variable de calcul, et ces soldes peuvent être temporairement augmentés ou réduits.
Attaque de réentrance
Le principal risque d'appeler des contrats externes est qu'ils peuvent prendre le contrôle du flux et modifier les données de manière inattendue. Par exemple :
fonction retirerSolde() public {
uint amountToWithdraw = userBalances[msg.sender];
(bool succès, ) = msg.sender.call.value(montantÀRetirer)("");
require(succès);
userBalances[msg.sender] = 0;
}
Étant donné que le solde de l'utilisateur n'est réinitialisé qu'à la fin de la fonction, les appels répétés réussiront toujours à extraire le solde.
Pour résoudre le problème de réentrance, il est important de prêter attention à :
Ne pas seulement prévenir la réentrance d'une seule fonction
Suivre le modèle Checks-Effects-Interactions
Utiliser un modificateur de protection contre les réentrées vérifié
Les attaques par réinjection se présentent sous de nombreuses formes et peuvent impliquer plusieurs fonctions ou contrats. Il est recommandé d'utiliser des pratiques de sécurité éprouvées pour éviter de réinventer la roue.
Conseils de sécurité
Conseils de sécurité pour les projets
Suivre les meilleures pratiques de sécurité du développement de contrats.
Réaliser des contrats évolutifs et des fonctionnalités de suspension
采用 un mécanisme de verrouillage temporel
Augmenter les investissements en sécurité et établir un système de sécurité complet.
Sensibiliser tous les employés à la sécurité
Prévenir les actes malveillants internes tout en renforçant la gestion des risques dans le but d'améliorer l'efficacité.
Introduire des tiers avec prudence, par défaut, les parties prenantes en amont et en aval ne sont pas sécurisées.
L'évaluation de la sécurité des contrats intelligents par les utilisateurs
Le contrat est-il open source
Le propriétaire adopte-t-il une multi-signature décentralisée ?
Vérifiez les transactions existantes du contrat
Le contrat est-il évolutif, y a-t-il un verrouillage temporel ?
Le contrat accepte-t-il l'audit par plusieurs institutions, les droits du propriétaire sont-ils trop étendus ?
Attention à la fiabilité des oracles
En somme, le domaine de la Finance décentralisée présente de nombreux risques de sécurité, les porteurs de projets et les utilisateurs doivent rester vigilants, adopter des mesures de protection multiples et maintenir ensemble la sécurité de l'écosystème.
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.
19 J'aime
Récompense
19
4
Partager
Commentaire
0/400
TokenCreatorOP
· 07-28 02:54
Si j'avais su plus tôt, mon usdt avait disparu.
Voir l'originalRépondre0
RooftopReserver
· 07-28 02:53
Encore des pigeons veulent monter sur le toit.
Voir l'originalRépondre0
consensus_failure
· 07-28 02:53
Encore en train de jouer un scénario de piège pour faire des liquidités et Rug Pull~
Sécurité DeFi : Guide de prévention contre les Prêts Flash, la manipulation des prix et les attaques par réinjection
Vulnérabilités de sécurité en Finance décentralisée et mesures préventives
Récemment, un expert en sécurité a partagé une leçon de sécurité DeFi avec les membres de la communauté. Il a passé en revue les récents événements de sécurité majeurs survenus dans l'industrie Web3, a exploré les causes de ces événements et les méthodes pour les éviter, a résumé les vulnérabilités de sécurité courantes des contrats intelligents et les mesures préventives, et a donné 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 contrôle de fonction, les appels externes arbitraires, les problèmes de fonction fallback, les vulnérabilités logiques d'affaires, la fuite de clés privées, les attaques par réentrée, etc. Ci-dessous, nous allons nous concentrer sur ces trois types : les prêts flash, la manipulation des prix et les attaques par réentrée.
Prêt flash
Le prêt éclair est une innovation dans la Finance décentralisée, mais lorsqu'il est exploité par des hackers, il peut entraîner des pertes énormes :
Au cours des deux dernières années, de nombreux projets de Finance décentralisée à haut rendement ont subi des attaques par prêt éclair en raison de problèmes de code ou de logique. Par exemple, certains projets distribuent des récompenses à des moments fixes en fonction de la quantité détenue, les attaquants utilisant des prêts éclair pour acheter une grande quantité de jetons et obtenir la majorité des récompenses.
Manipulation des prix
Les problèmes de manipulation des prix sont étroitement liés aux prêts flash, et il en existe principalement deux types :
Attaque de réentrance
Le principal risque d'appeler des contrats externes est qu'ils peuvent prendre le contrôle du flux et modifier les données de manière inattendue. Par exemple :
solidité mapping (address => uint) private userBalances;
fonction retirerSolde() public { uint amountToWithdraw = userBalances[msg.sender]; (bool succès, ) = msg.sender.call.value(montantÀRetirer)(""); require(succès); userBalances[msg.sender] = 0; }
Étant donné que le solde de l'utilisateur n'est réinitialisé qu'à la fin de la fonction, les appels répétés réussiront toujours à extraire le solde.
Pour résoudre le problème de réentrance, il est important de prêter attention à :
Les attaques par réinjection se présentent sous de nombreuses formes et peuvent impliquer plusieurs fonctions ou contrats. Il est recommandé d'utiliser des pratiques de sécurité éprouvées pour éviter de réinventer la roue.
Conseils de sécurité
Conseils de sécurité pour les projets
L'évaluation de la sécurité des contrats intelligents par les utilisateurs
En somme, le domaine de la Finance décentralisée présente de nombreux risques de sécurité, les porteurs de projets et les utilisateurs doivent rester vigilants, adopter des mesures de protection multiples et maintenir ensemble la sécurité de l'écosystème.