Récemment, un expert en sécurité a partagé des idées sur la sécurité de la Finance décentralisée 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 dernière, 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 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 permissions de fonction, 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éinjection, etc. Les trois types suivants seront présentés en détail : les prêts flash, la manipulation des prix et les attaques par réinjection.
Prêt éclair
Le prêt éclair est une innovation de la Finance décentralisée, mais il est souvent exploité par des hackers. Les attaquants peuvent emprunter d'importants montants via des prêts éclair pour manipuler les prix ou attaquer la logique d'affaires. Les développeurs doivent prendre en compte si les fonctionnalités des contrats pourraient être anormales en raison de montants énormes ou être exploitées pour obtenir des récompenses indues.
Au cours des deux dernières années, les problèmes de prêt éclair ont été fréquents. Certains projets DeFi apparemment à rendement élevé peuvent en réalité présenter des failles logiques. Par exemple, certains projets distribuent des récompenses en fonction des quantités détenues à des moments fixes, et les attaquants exploitent les prêts éclair pour acheter d'importantes quantités de jetons afin d'obtenir la majorité des récompenses. D'autres projets, qui calculent le prix en fonction des jetons, peuvent également être affectés par les prêts éclair.
Manipulation des prix
Les problèmes de manipulation des prix sont étroitement liés aux prêts flash, et il existe principalement deux types :
Utiliser des données tierces pour calculer le prix, mais de manière incorrecte ou sans vérification, ce qui entraîne une manipulation malveillante des prix.
Utiliser le nombre de tokens de certaines adresses comme variable de calcul, tandis que le solde des tokens de ces adresses peut être temporairement augmenté ou diminué.
Attaque par réentrance
Le principal risque d'appeler des contrats externes est qu'ils peuvent prendre le contrôle de l'exécution et apporter des modifications inattendues aux données. Par exemple, dans une fonction de retrait, si le solde de l'utilisateur est mis à 0 seulement à la fin de la fonction, alors un appel répété réussira toujours à retirer.
Pour résoudre le problème de réentrance, il faut faire attention à :
Ne pas seulement prévenir les problèmes de réentrée d'une seule fonction.
Suivre le modèle Checks-Effects-Interactions pour le codage
Utiliser un modificateur de protection contre les réentrées vérifié
Un cas typique d'attaque par réentrance est l'incident du protocole Omni. Cet événement a également révélé la lutte entre les hackers : les transactions de l'attaquant initial ont été devancées par d'autres hackers, ce qui a finalement conduit à ce que celui qui a découvert la faille réalise un profit au lieu du plus grand nombre.
Conseils de sécurité
recommandations 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 contrat pouvant être mises à niveau et suspendues
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 services tiers avec prudence, en suivant le principe "par défaut, ni en amont ni en aval n'est sûr".
Méthodes pour les utilisateurs/LP afin d'évaluer la sécurité des contrats intelligents.
Vérifiez si le contrat est open source
Confirmer si le propriétaire utilise un multi-signature décentralisé.
Vérifiez les transactions existantes du contrat
Vérifiez si le contrat est un contrat d'agent, s'il est évolutif, s'il y a un verrouillage temporel.
Vérifiez si le contrat a été audité par plusieurs institutions, évaluez si les droits du propriétaire sont trop étendus.
Faites attention au choix et à l'utilisation des oracles.
Dans un environnement Web3, les utilisateurs doivent rester vigilants, réfléchir et poser des questions pour éviter les risques potentiels. Pour tout projet à rendement élevé, il convient d'évaluer prudemment sa sécurité avant de participer.
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.
9 J'aime
Récompense
9
6
Partager
Commentaire
0/400
AllInDaddy
· Il y a 8h
Encore une vague de pigeons.
Voir l'originalRépondre0
DogeBachelor
· Il y a 17h
Prêts Flash ont quoi de spécial, on rase les poils et puis on fait un Rug Pull.
Voir l'originalRépondre0
BearMarketSurvivor
· Il y a 17h
Trading des cryptomonnaies depuis des années, Rekt.
Voir l'originalRépondre0
IfIWereOnChain
· Il y a 17h
Écouter un discours peut coûter un mois de pertes.
Voir l'originalRépondre0
ApeEscapeArtist
· Il y a 17h
Il y a toujours des pigeons qui se font prendre les gens pour des idiots.
Voir l'originalRépondre0
LiquidityWitch
· Il y a 17h
Encore une vague de prendre les gens pour des idiots 0day
Analyse des vulnérabilités de sécurité DeFi : Guide de prévention des Prêts Flash, manipulation des prix et attaques par réinjection.
Finance décentralisée 常见安全漏洞及预防措施
Récemment, un expert en sécurité a partagé des idées sur la sécurité de la Finance décentralisée 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 dernière, 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 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 permissions de fonction, 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éinjection, etc. Les trois types suivants seront présentés en détail : les prêts flash, la manipulation des prix et les attaques par réinjection.
Prêt éclair
Le prêt éclair est une innovation de la Finance décentralisée, mais il est souvent exploité par des hackers. Les attaquants peuvent emprunter d'importants montants via des prêts éclair pour manipuler les prix ou attaquer la logique d'affaires. Les développeurs doivent prendre en compte si les fonctionnalités des contrats pourraient être anormales en raison de montants énormes ou être exploitées pour obtenir des récompenses indues.
Au cours des deux dernières années, les problèmes de prêt éclair ont été fréquents. Certains projets DeFi apparemment à rendement élevé peuvent en réalité présenter des failles logiques. Par exemple, certains projets distribuent des récompenses en fonction des quantités détenues à des moments fixes, et les attaquants exploitent les prêts éclair pour acheter d'importantes quantités de jetons afin d'obtenir la majorité des récompenses. D'autres projets, qui calculent le prix en fonction des jetons, peuvent également être affectés par les prêts éclair.
Manipulation des prix
Les problèmes de manipulation des prix sont étroitement liés aux prêts flash, et il existe principalement deux types :
Utiliser des données tierces pour calculer le prix, mais de manière incorrecte ou sans vérification, ce qui entraîne une manipulation malveillante des prix.
Utiliser le nombre de tokens de certaines adresses comme variable de calcul, tandis que le solde des tokens de ces adresses peut être temporairement augmenté ou diminué.
Attaque par réentrance
Le principal risque d'appeler des contrats externes est qu'ils peuvent prendre le contrôle de l'exécution et apporter des modifications inattendues aux données. Par exemple, dans une fonction de retrait, si le solde de l'utilisateur est mis à 0 seulement à la fin de la fonction, alors un appel répété réussira toujours à retirer.
Pour résoudre le problème de réentrance, il faut faire attention à :
Un cas typique d'attaque par réentrance est l'incident du protocole Omni. Cet événement a également révélé la lutte entre les hackers : les transactions de l'attaquant initial ont été devancées par d'autres hackers, ce qui a finalement conduit à ce que celui qui a découvert la faille réalise un profit au lieu du plus grand nombre.
Conseils de sécurité
recommandations de sécurité pour les projets
Méthodes pour les utilisateurs/LP afin d'évaluer la sécurité des contrats intelligents.
Dans un environnement Web3, les utilisateurs doivent rester vigilants, réfléchir et poser des questions pour éviter les risques potentiels. Pour tout projet à rendement élevé, il convient d'évaluer prudemment sa sécurité avant de participer.