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 que l'industrie Web3 a rencontrés au cours de l'année écoulée, a approfondi les raisons de ces événements et a discuté des moyens de les éviter. Il a résumé les vulnérabilités de sécurité courantes des contrats intelligents et les mesures préventives, et a également donné quelques conseils de sécurité aux projets et aux utilisateurs ordinaires.
Les types de vulnérabilités DeFi courants incluent généralement les prêts flash, la manipulation des prix, les problèmes de permissions de fonctions, les appels externes arbitraires, les problèmes de fonctions fallback, les vulnérabilités de logique métier, les fuites de clés privées et les attaques par réinjection. Cet article mettra l'accent sur ces trois types : les prêts flash, la manipulation des prix et les attaques par réinjection.
Prêt éclair
Le prêt flash est une innovation de la Finance décentralisée, mais il est souvent exploité par des hackers. Les attaquants empruntent généralement d'importants montants de fonds par le biais de prêts flash pour manipuler les prix ou attaquer la logique des affaires. Les développeurs doivent tenir compte de la possibilité que les fonctionnalités des contrats soient anormales en raison de montants énormes, ou qu'elles soient exploitées pour interagir avec plusieurs fonctions en une seule transaction afin d'obtenir des récompenses indues.
De nombreux projets de Finance décentralisée semblent offrir des rendements très élevés, mais en réalité, le niveau des équipes derrière ces projets 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 y avoir des problèmes logiques. Par exemple, certains projets distribuent des récompenses à des moments fixes en fonction du nombre de jetons détenus par les détenteurs, mais des attaquants peuvent exploiter des prêts flash pour acheter une grande quantité de jetons, ce qui fait que la plupart des récompenses vont aux attaquants.
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 pour calculer le prix, mais de manière incorrecte ou avec des vérifications manquantes, entraînant une manipulation malveillante du prix.
Utiliser le nombre de jetons de certaines adresses comme variable de calcul, alors que le solde de jetons de ces adresses peut être temporairement augmenté ou diminué.
Attaque par réentrance
L'un des principaux risques d'appel de contrats externes est qu'ils peuvent prendre le contrôle du flux d'exécution et apporter des modifications inattendues aux données. Un exemple typique d'attaque par réentrance se produit dans une fonction de retrait, où le solde de l'utilisateur n'est mis à zéro qu'à la fin de la fonction, permettant ainsi des appels multiples et des retraits réussis.
Pour différents contrats, les méthodes d'attaque par réentrance sont variées et peuvent impliquer plusieurs fonctions différentes ou plusieurs contrats. Lors de la résolution des problèmes de réentrance, il faut prêter attention aux points suivants :
Il ne faut pas seulement prévenir le problème de réentrance d'une seule fonction.
Suivre le modèle Checks-Effects-Interactions lors de la programmation
Utiliser un modificateur de protection contre les réentrées validé par le temps
Il est important de noter que réinventer la roue est souvent dangereux. Dans le domaine du Web3, il existe déjà de nombreuses meilleures pratiques de sécurité, et adopter directement ces solutions éprouvées est plus sûr que de les développer soi-même.
Conseils de sécurité
recommandations de sécurité pour les projets
Suivre les meilleures pratiques de sécurité lors du développement de contrats.
Implémenter la fonction de mise à niveau et de pause des contrats
Adopter un mécanisme de verrouillage temporel
Augmenter les investissements 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 abus internes tout en améliorant l'efficacité et en renforçant le contrôle des risques.
Introduire des composants tiers avec prudence, en suivant le principe "par défaut, ni en amont ni en aval n'est sûr".
Comment les utilisateurs/LP peuvent-ils déterminer si un contrat intelligent est sécurisé ?
Confirmer si le contrat est open source
Vérifiez si le propriétaire utilise un mécanisme de multi-signature décentralisé.
Vérifiez les transactions existantes du contrat
Vérifiez si le contrat est un contrat d'agence, s'il est évolutif et s'il a un verrouillage temporel.
Vérifiez si le contrat a été audité par plusieurs institutions et évaluez si les droits du propriétaire sont trop étendus.
Faites attention au type et à la fiabilité des oracles utilisés par le projet.
Dans un environnement Web3, la sensibilisation à la sécurité est cruciale. Les utilisateurs doivent réfléchir davantage et rester vigilants pour éviter les risques de sécurité potentiels. Cela est particulièrement vrai en période de mauvaise conjoncture du marché, où il est essentiel de se méfier des diverses formes de fraudes possibles.
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.
16 J'aime
Récompense
16
6
Partager
Commentaire
0/400
SelfRugger
· 07-31 13:56
Encore une fois, on se fait prendre pour des cons, hodl et c'est tout.
Voir l'originalRépondre0
FlashLoanKing
· 07-31 11:16
Encore des Prêts Flash yyds
Voir l'originalRépondre0
GovernancePretender
· 07-31 11:14
Faire des protections de sécurité ne guérira pas la vie des pigeons.
Voir l'originalRépondre0
LiquidatorFlash
· 07-31 11:13
Une fluctuation de prix de 0,3 % nécessite déjà une gestion des risques. Ne attendez pas l'alarme de liquidation à 99,99 %.
Voir l'originalRépondre0
MEVHunterBearish
· 07-31 11:10
Guide quotidien pour ne pas se faire avoir
Voir l'originalRépondre0
rug_connoisseur
· 07-31 11:04
Écrire autant pour en revenir toujours au même, ce n'est pas ennuyeux ?
Sécurité et défense DeFi : Guide de prévention contre les Prêts Flash, la manipulation des prix et les attaques par réinsertion.
Finance décentralisée 常见安全漏洞及预防措施
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 que l'industrie Web3 a rencontrés au cours de l'année écoulée, a approfondi les raisons de ces événements et a discuté des moyens de les éviter. Il a résumé les vulnérabilités de sécurité courantes des contrats intelligents et les mesures préventives, et a également donné quelques conseils de sécurité aux projets et aux utilisateurs ordinaires.
Les types de vulnérabilités DeFi courants incluent généralement les prêts flash, la manipulation des prix, les problèmes de permissions de fonctions, les appels externes arbitraires, les problèmes de fonctions fallback, les vulnérabilités de logique métier, les fuites de clés privées et les attaques par réinjection. Cet article mettra l'accent sur ces trois types : les prêts flash, la manipulation des prix et les attaques par réinjection.
Prêt éclair
Le prêt flash est une innovation de la Finance décentralisée, mais il est souvent exploité par des hackers. Les attaquants empruntent généralement d'importants montants de fonds par le biais de prêts flash pour manipuler les prix ou attaquer la logique des affaires. Les développeurs doivent tenir compte de la possibilité que les fonctionnalités des contrats soient anormales en raison de montants énormes, ou qu'elles soient exploitées pour interagir avec plusieurs fonctions en une seule transaction afin d'obtenir des récompenses indues.
De nombreux projets de Finance décentralisée semblent offrir des rendements très élevés, mais en réalité, le niveau des équipes derrière ces projets 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 y avoir des problèmes logiques. Par exemple, certains projets distribuent des récompenses à des moments fixes en fonction du nombre de jetons détenus par les détenteurs, mais des attaquants peuvent exploiter des prêts flash pour acheter une grande quantité de jetons, ce qui fait que la plupart des récompenses vont aux attaquants.
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'un des principaux risques d'appel de contrats externes est qu'ils peuvent prendre le contrôle du flux d'exécution et apporter des modifications inattendues aux données. Un exemple typique d'attaque par réentrance se produit dans une fonction de retrait, où le solde de l'utilisateur n'est mis à zéro qu'à la fin de la fonction, permettant ainsi des appels multiples et des retraits réussis.
Pour différents contrats, les méthodes d'attaque par réentrance sont variées et peuvent impliquer plusieurs fonctions différentes ou plusieurs contrats. Lors de la résolution des problèmes de réentrance, il faut prêter attention aux points suivants :
Il est important de noter que réinventer la roue est souvent dangereux. Dans le domaine du Web3, il existe déjà de nombreuses meilleures pratiques de sécurité, et adopter directement ces solutions éprouvées est plus sûr que de les développer soi-même.
Conseils de sécurité
recommandations de sécurité pour les projets
Comment les utilisateurs/LP peuvent-ils déterminer si un contrat intelligent est sécurisé ?
Dans un environnement Web3, la sensibilisation à la sécurité est cruciale. Les utilisateurs doivent réfléchir davantage et rester vigilants pour éviter les risques de sécurité potentiels. Cela est particulièrement vrai en période de mauvaise conjoncture du marché, où il est essentiel de se méfier des diverses formes de fraudes possibles.