Finance décentralisée Communes vulnérabilités de sécurité et mesures préventives
Récemment, un expert en sécurité a partagé avec les membres de la communauté un cours sur la sécurité en Finance décentralisée. L'expert a passé en revue les événements de sécurité majeurs rencontrés par l'industrie Web3 au cours de l'année écoulée, a exploré les raisons de ces incidents 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 porteurs 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, les fuites de clés privées et les attaques par réentrance. Cet article se concentrera sur les prêts flash, la manipulation des prix et les attaques par réentrance.
Prêt flash
Le prêt éclair est une innovation de la finance décentralisée, mais il est également souvent exploité par des hackers. Les attaquants empruntent généralement de grandes sommes d'argent par le biais du prêt éclair pour manipuler les prix ou attaquer la logique des affaires. Les développeurs doivent se demander si les fonctionnalités des contrats peuvent causer des anomalies en raison de sommes d'argent énormes, ou si elles peuvent être exploitées pour obtenir des récompenses indues.
De nombreux projets de Finance décentralisée semblent offrir des rendements élevés, mais en réalité, le niveau des équipes derrière ces projets varie considérablement. Même si le code lui-même ne présente pas de vulnérabilités, il peut néanmoins 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 les attaquants peuvent utiliser des prêts flash pour acheter une quantité importante de jetons et ainsi obtenir la majorité des récompenses au moment de la distribution.
Manipulation des prix
Le problème de manipulation des prix est étroitement lié aux prêts flash, 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 les prix, mais de manière incorrecte ou sans vérification, ce qui entraîne une manipulation malveillante des prix.
Utiliser la quantité de jetons d'adresses spécifiques comme variable de calcul, tandis que le solde de jetons de ces adresses peut être temporairement augmenté ou diminué.
Attaque par réentrance
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 apporter des modifications inattendues aux données. Un exemple typique d'attaque par réentrance est qu'un transfert est effectué avant la mise à jour du solde de l'utilisateur, ce qui permet à l'attaquant de retirer plusieurs fois le solde.
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éentrées d'une fonction unique ;
Suivre le modèle Checks-Effects-Interactions lors de la programmation ;
Utilisez un modificateur anti-reentrance éprouvé par le temps.
Il convient de noter qu'il existe de nombreuses meilleures pratiques de sécurité dans ce domaine, il n'est donc pas nécessaire de réinventer la roue. Utiliser des solutions matures et bien éprouvées est plus sûr que de développer soi-même de nouvelles solutions.
Conseils de sécurité pour les équipes de projet
Suivre les meilleures pratiques de sécurité lors du développement de contrats.
Réaliser des fonctionnalités de contrat évolutif et de mise en pause.
Adoption d'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 actes malveillants internes tout en renforçant le contrôle des risques et en améliorant l'efficacité.
Introduire des dépendances tierces avec prudence et effectuer des vérifications de sécurité en amont et en aval.
Comment les utilisateurs peuvent-ils déterminer si un contrat intelligent est sûr
Confirmez si le contrat est open source.
Vérifiez si le propriétaire utilise un mécanisme de multi-signature décentralisé.
Vérifiez la situation des transactions existantes dans le 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 si les droits du propriétaire sont trop étendus.
Faites attention à l'utilisation des oracles, en particulier méfiez-vous des oracles auto-construits ou non fiables.
En se concentrant sur ces aspects, les utilisateurs peuvent mieux évaluer la sécurité des contrats intelligents et réduire les risques liés à la participation à des projets de Finance décentralisée.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
10 J'aime
Récompense
10
2
Partager
Commentaire
0/400
BearMarketHustler
· Il y a 16h
Des failles dans les contrats, il y en a tous les jours, mais on ne se méfie pas.
Voir l'originalRépondre0
ImpermanentLossFan
· Il y a 16h
Nul et aime jouer, j'ai vraiment dû mourir dix mille fois...
Cours de sécurité DeFi : Analyse complète des types de vulnérabilités courants et des mesures préventives
Finance décentralisée Communes vulnérabilités de sécurité et mesures préventives
Récemment, un expert en sécurité a partagé avec les membres de la communauté un cours sur la sécurité en Finance décentralisée. L'expert a passé en revue les événements de sécurité majeurs rencontrés par l'industrie Web3 au cours de l'année écoulée, a exploré les raisons de ces incidents 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 porteurs 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, les fuites de clés privées et les attaques par réentrance. Cet article se concentrera sur les prêts flash, la manipulation des prix et les attaques par réentrance.
Prêt flash
Le prêt éclair est une innovation de la finance décentralisée, mais il est également souvent exploité par des hackers. Les attaquants empruntent généralement de grandes sommes d'argent par le biais du prêt éclair pour manipuler les prix ou attaquer la logique des affaires. Les développeurs doivent se demander si les fonctionnalités des contrats peuvent causer des anomalies en raison de sommes d'argent énormes, ou si elles peuvent être exploitées pour obtenir des récompenses indues.
De nombreux projets de Finance décentralisée semblent offrir des rendements élevés, mais en réalité, le niveau des équipes derrière ces projets varie considérablement. Même si le code lui-même ne présente pas de vulnérabilités, il peut néanmoins 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 les attaquants peuvent utiliser des prêts flash pour acheter une quantité importante de jetons et ainsi obtenir la majorité des récompenses au moment de la distribution.
Manipulation des prix
Le problème de manipulation des prix est étroitement lié aux prêts flash, 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 liés à l'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 est qu'un transfert est effectué avant la mise à jour du solde de l'utilisateur, ce qui permet à l'attaquant de retirer plusieurs fois le solde.
Pour résoudre le problème de réentrance, il faut prêter attention aux points suivants :
Il convient de noter qu'il existe de nombreuses meilleures pratiques de sécurité dans ce domaine, il n'est donc pas nécessaire de réinventer la roue. Utiliser des solutions matures et bien éprouvées est plus sûr que de développer soi-même de nouvelles solutions.
Conseils de sécurité pour les équipes de projet
Comment les utilisateurs peuvent-ils déterminer si un contrat intelligent est sûr
En se concentrant sur ces aspects, les utilisateurs peuvent mieux évaluer la sécurité des contrats intelligents et réduire les risques liés à la participation à des projets de Finance décentralisée.