Finance décentralisée : vulnérabilités de sécurité courantes 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 é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 pour lesquelles ces événements se sont produits 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 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 logiques d'affaires, les fuites de clés privées et les attaques par réentrance, entre autres. Cet article se concentrera sur ces trois types : prêts flash, manipulation des prix et attaques par réentrance.
Prêt éclair
Le prêt flash est une innovation dans la Finance décentralisée, mais il peut également être facilement exploité par des hackers. Les attaquants empruntent généralement d'importants montants par le biais de prêts flash pour manipuler les prix ou attaquer la logique commerciale. Les développeurs doivent prendre en compte si les fonctionnalités du contrat pourraient être anormales en raison de l'énorme montant de fonds ou si elles pourraient être exploitées pour 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 de projet est inégal. 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 toujours 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, mais sont exploités par des attaquants utilisant des prêts flash pour acheter une grande quantité de jetons, obtenant ainsi la majorité des récompenses.
Manipulation des prix
Le problème de manipulation des prix est étroitement lié aux prêts éclair, principalement en raison de certains paramètres utilisés lors du calcul des prix pouvant être contrôlés par les utilisateurs. Il existe deux types de problèmes courants :
Utiliser des données tierces pour calculer le prix, mais une utilisation incorrecte ou un manque de vérification entraînant une manipulation malveillante des 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éinjection
L'un des principaux risques liés à l'appel de contrats externes est qu'ils peuvent prendre le contrôle du flux d'exécution et effectuer des modifications inattendues des données. Par exemple, dans une fonction de retrait, si la mise à jour du solde utilisateur intervient après le transfert de fonds, cela peut entraîner des retraits répétés.
Pour résoudre le problème de réentrance, il faut prêter attention aux points suivants :
Il ne faut pas seulement prévenir les problèmes de réentrance d'une seule fonction.
Suivez le modèle Checks-Effects-Interactions lors de la programmation.
Utiliser un modificateur de protection contre la réentrance éprouvé par le temps.
Il est important de noter que répéter la création de la roue est souvent inutile. Utiliser des solutions matures et bien vérifiées est plus sûr que de développer soi-même.
Conseils de sécurité
Suggestions de sécurité du projet
Suivez les meilleures pratiques de sécurité lors du développement de contrats.
Implémenter des fonctions de mise à niveau et de suspension des contrats.
Utiliser 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 comportements malveillants internes tout en améliorant l'efficacité et en renforçant la gestion des risques.
Introduire des composants tiers avec prudence, en s'assurant de leur sécurité.
Comment les utilisateurs peuvent-ils juger de la sécurité des contrats intelligents
Vérifiez si le contrat est open source.
Vérifiez si le propriétaire adopte un mécanisme de multi-signature décentralisé.
Vérifiez les transactions existantes du contrat.
Confirmer si le contrat est un contrat d'agent, s'il est évolutif et s'il y a un verrouillage temporel.
Vérifiez si le contrat a été audité par plusieurs institutions et si les droits du propriétaire sont trop étendus.
Faites attention à la fiabilité des oracles utilisés par le projet.
En se concentrant sur ces aspects, les utilisateurs peuvent mieux évaluer la sécurité des contrats intelligents et réduire la probabilité de participer à des projets à risque.
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.
10 J'aime
Récompense
10
5
Partager
Commentaire
0/400
ThreeHornBlasts
· Il y a 10h
Écouter une conversation vaut mieux que dix ans d'études.
Voir l'originalRépondre0
fomo_fighter
· Il y a 10h
prendre les gens pour des idiots et Rug Pull !
Voir l'originalRépondre0
MetaverseVagrant
· Il y a 10h
Prêts Flash ont encore été pris pour des cons.
Voir l'originalRépondre0
BagHolderTillRetire
· Il y a 11h
Être continuellement frappé de peur dans l'univers de la cryptomonnaie
Voir l'originalRépondre0
BasementAlchemist
· Il y a 11h
Compris, ce sont tous des pigeons, se faire prendre pour des cons.
Sécurité DeFi 101 : Analyse approfondie des vulnérabilités courantes et des stratégies de protection
Finance décentralisée : vulnérabilités de sécurité courantes 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 é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 pour lesquelles ces événements se sont produits 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 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 logiques d'affaires, les fuites de clés privées et les attaques par réentrance, entre autres. Cet article se concentrera sur ces trois types : prêts flash, manipulation des prix et attaques par réentrance.
Prêt éclair
Le prêt flash est une innovation dans la Finance décentralisée, mais il peut également être facilement exploité par des hackers. Les attaquants empruntent généralement d'importants montants par le biais de prêts flash pour manipuler les prix ou attaquer la logique commerciale. Les développeurs doivent prendre en compte si les fonctionnalités du contrat pourraient être anormales en raison de l'énorme montant de fonds ou si elles pourraient être exploitées pour 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 de projet est inégal. 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 toujours 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, mais sont exploités par des attaquants utilisant des prêts flash pour acheter une grande quantité de jetons, obtenant ainsi la majorité des récompenses.
Manipulation des prix
Le problème de manipulation des prix est étroitement lié aux prêts éclair, principalement en raison de certains paramètres utilisés lors du calcul des prix pouvant être contrôlés par les utilisateurs. Il existe deux types de problèmes courants :
Attaque par réinjection
L'un des principaux risques liés à l'appel de contrats externes est qu'ils peuvent prendre le contrôle du flux d'exécution et effectuer des modifications inattendues des données. Par exemple, dans une fonction de retrait, si la mise à jour du solde utilisateur intervient après le transfert de fonds, cela peut entraîner des retraits répétés.
Pour résoudre le problème de réentrance, il faut prêter attention aux points suivants :
Il est important de noter que répéter la création de la roue est souvent inutile. Utiliser des solutions matures et bien vérifiées est plus sûr que de développer soi-même.
Conseils de sécurité
Suggestions de sécurité du projet
Comment les utilisateurs peuvent-ils juger de la sécurité des contrats intelligents
En se concentrant sur ces aspects, les utilisateurs peuvent mieux évaluer la sécurité des contrats intelligents et réduire la probabilité de participer à des projets à risque.