Finance décentralisée les vulnérabilités de sécurité courantes et les mesures préventives
Récemment, un expert en sécurité a partagé un cours sur la sécurité DeFi avec les membres de la communauté. L'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 écoulée, a exploré les raisons de ces événements et comment 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 équipes de projet et aux utilisateurs ordinaires.
Les types de vulnérabilités DeFi courants comprennent principalement les prêts flash, la manipulation des prix, les problèmes de droits d'accès aux fonctions, 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éinsertion. Cet article se concentrera sur ces trois types : les prêts flash, la manipulation des prix et les attaques par réinsertion.
Prêt éclair
Le prêt flash est une innovation de la Finance décentralisée, mais il est également souvent exploité par des attaquants. Les attaquants empruntent d'énormes sommes d'argent via des prêts flash pour manipuler les prix ou attaquer la logique commerciale. Les développeurs doivent considérer si les fonctionnalités des contrats pourraient provoquer des anomalies en raison de ces sommes énormes ou être exploitées pour obtenir des gains indus.
De nombreux projets de Finance décentralisée semblent offrir des rendements très élevés, mais en réalité, le niveau des équipes de projet varie considérablement. Certains projets peuvent avoir acheté leur code, et même si le code lui-même n'a pas de vulnérabilités, il peut encore présenter des problèmes logiques. Par exemple, certains projets distribuent des récompenses à des moments fixes en fonction du nombre de jetons détenus, mais des attaquants peuvent exploiter des prêts flash pour acheter une grande quantité de jetons, obtenant ainsi la majorité des rendements au moment de la distribution des récompenses.
Manipulation des prix
Les problèmes de manipulation des prix sont étroitement liés aux prêts éclair, principalement en raison de certains paramètres pouvant être contrôlés par les utilisateurs lors du calcul des prix. Il existe deux types de problèmes courants :
Utiliser des données tierces lors du calcul des prix, mais de manière incorrecte ou sans vérification, entraînant une manipulation malveillante des prix.
Utiliser le nombre de jetons de certaines adresses comme variable de calcul, tandis que le solde de jetons de ces adresses peut être temporairement augmenté ou diminué.
Attaque par réentrance
L'attaque par réentrance est l'un des principaux dangers auxquels on peut être confronté lors de l'appel de contrats externes. Un attaquant pourrait prendre le contrôle du flux d'exécution et apporter des modifications inattendues aux données. Par exemple :
fonction retirerSolde() public {
uint amountToWithdraw = userBalances[msg.sender];
(bool succès, ) = msg.sender.call.value(montantÀRetirer)("");
require(success);
userBalances[msg.sender] = 0;
}
Dans cet exemple, comme le solde de l'utilisateur n'est défini à 0 qu'à la fin de la fonction, l'attaquant peut appeler à nouveau cette fonction après le premier appel réussi, ce qui lui permet de retirer plusieurs fois le solde.
Pour résoudre les problèmes de réentrance, il faut prêter attention aux points suivants :
Il ne faut pas seulement empêcher le problème de réentrance d'une seule fonction ;
Suivre le modèle Checks-Effects-Interactions lors du codage ;
Utilisez un modificateur anti-reentrance éprouvé par le temps.
Un exemple typique d'attaque par réinjection est l'incident Omni Protocol. Dans cette attaque, les transactions soumises par l'attaquant ayant découvert la vulnérabilité ont été interceptées et exécutées en priorité par d'autres hackers, ce qui a conduit l'attaquant d'origine à ne réaliser qu'un bénéfice partiel. Cela souligne les caractéristiques de "forêt sombre" dans l'écosystème Web3, où les attaquants peuvent également être des proies les uns pour les autres.
Conseils de sécurité
Conseils de sécurité pour les projets
Suivre les meilleures pratiques de sécurité lors du développement de contrats.
Mettre en œuvre des fonctionnalités de mise à niveau et de pause des contrats.
Adopter un mécanisme de verrouillage temporel.
Augmenter l'investissement en sécurité et établir un système de sécurité complet.
Améliorer la sensibilisation à la sécurité de tous les employés.
Prévenir les actes malveillants internes, tout en améliorant l'efficacité et en renforçant la gestion des risques.
Soyez prudent lors de l'introduction de services tiers, en suivant le principe "par défaut, aucune des parties prenantes n'est sûre".
Comment les utilisateurs/LP peuvent-ils juger de la sécurité d'un contrat intelligent
Vérifiez si le contrat est open source.
Vérifier si le propriétaire utilise un mécanisme de multi-signature décentralisé.
Vérifiez la situation des transactions existantes du contrat.
Vérifiez si le contrat est un contrat d'agence, s'il est évolutif, s'il y a un verrouillage temporel.
Vérifiez si le contrat a été audité par plusieurs institutions et évaluez si les droits du propriétaire sont excessifs.
Faites attention à la sélection et à l'utilisation des oracles.
En résumé, dans le domaine de la Finance décentralisée, les problèmes de sécurité sont toujours l'une des considérations les plus importantes. Que ce soit pour les projets ou pour les utilisateurs ordinaires, il est nécessaire de rester vigilant et de prendre des mesures de sécurité appropriées afin de réduire les risques et d'assurer la sécurité des actifs.
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.
14 J'aime
Récompense
14
7
Partager
Commentaire
0/400
TokenomicsTrapper
· Il y a 15h
juste un autre jour à regarder les degens se faire rattraper par les mêmes anciennes exploitations... j'ai prédit ce schéma il y a des mois pour être honnête
Voir l'originalRépondre0
DegenWhisperer
· Il y a 15h
Noir et blanc, tout est clair.
Voir l'originalRépondre0
degenonymous
· Il y a 15h
Encore une fois, les smart contracts sont tombés dans le piège.
Voir l'originalRépondre0
BlockchainFries
· Il y a 15h
Chercher des failles pendant des heures, c'est moins efficace que de livrer des repas.
Voir l'originalRépondre0
Ser_This_Is_A_Casino
· Il y a 15h
DeFi est vraiment un casino, on perdra comme prévu.
Voir l'originalRépondre0
OPsychology
· Il y a 15h
Prêts Flash, de quoi avoir peur ? J'ai que des jetons Göde.
Voir l'originalRépondre0
GateUser-00be86fc
· Il y a 15h
Mon projet a toujours accordé une grande importance à la sécurité.
Bilan des vulnérabilités de sécurité DeFi : analyse des risques de Prêts Flash, manipulation des prix et attaques de réentrées.
Finance décentralisée les vulnérabilités de sécurité courantes et les mesures préventives
Récemment, un expert en sécurité a partagé un cours sur la sécurité DeFi avec les membres de la communauté. L'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 écoulée, a exploré les raisons de ces événements et comment 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 équipes de projet et aux utilisateurs ordinaires.
Les types de vulnérabilités DeFi courants comprennent principalement les prêts flash, la manipulation des prix, les problèmes de droits d'accès aux fonctions, 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éinsertion. Cet article se concentrera sur ces trois types : les prêts flash, la manipulation des prix et les attaques par réinsertion.
Prêt éclair
Le prêt flash est une innovation de la Finance décentralisée, mais il est également souvent exploité par des attaquants. Les attaquants empruntent d'énormes sommes d'argent via des prêts flash pour manipuler les prix ou attaquer la logique commerciale. Les développeurs doivent considérer si les fonctionnalités des contrats pourraient provoquer des anomalies en raison de ces sommes énormes ou être exploitées pour obtenir des gains indus.
De nombreux projets de Finance décentralisée semblent offrir des rendements très élevés, mais en réalité, le niveau des équipes de projet varie considérablement. Certains projets peuvent avoir acheté leur code, et même si le code lui-même n'a pas de vulnérabilités, il peut encore présenter des problèmes logiques. Par exemple, certains projets distribuent des récompenses à des moments fixes en fonction du nombre de jetons détenus, mais des attaquants peuvent exploiter des prêts flash pour acheter une grande quantité de jetons, obtenant ainsi la majorité des rendements au moment de la distribution des récompenses.
Manipulation des prix
Les problèmes de manipulation des prix sont étroitement liés aux prêts éclair, principalement en raison de certains paramètres pouvant être contrôlés par les utilisateurs lors du calcul des prix. Il existe deux types de problèmes courants :
Attaque par réentrance
L'attaque par réentrance est l'un des principaux dangers auxquels on peut être confronté lors de l'appel de contrats externes. Un attaquant pourrait prendre le contrôle du flux d'exécution et apporter des modifications inattendues aux données. 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(success); userBalances[msg.sender] = 0; }
Dans cet exemple, comme le solde de l'utilisateur n'est défini à 0 qu'à la fin de la fonction, l'attaquant peut appeler à nouveau cette fonction après le premier appel réussi, ce qui lui permet de retirer plusieurs fois le solde.
Pour résoudre les problèmes de réentrance, il faut prêter attention aux points suivants :
Un exemple typique d'attaque par réinjection est l'incident Omni Protocol. Dans cette attaque, les transactions soumises par l'attaquant ayant découvert la vulnérabilité ont été interceptées et exécutées en priorité par d'autres hackers, ce qui a conduit l'attaquant d'origine à ne réaliser qu'un bénéfice partiel. Cela souligne les caractéristiques de "forêt sombre" dans l'écosystème Web3, où les attaquants peuvent également être des proies les uns pour les autres.
Conseils de sécurité
Conseils de sécurité pour les projets
Comment les utilisateurs/LP peuvent-ils juger de la sécurité d'un contrat intelligent
En résumé, dans le domaine de la Finance décentralisée, les problèmes de sécurité sont toujours l'une des considérations les plus importantes. Que ce soit pour les projets ou pour les utilisateurs ordinaires, il est nécessaire de rester vigilant et de prendre des mesures de sécurité appropriées afin de réduire les risques et d'assurer la sécurité des actifs.