Finance décentralisée sécurité : types de vulnérabilités courantes et mesures de prévention
Récemment, un expert en sécurité a partagé avec les membres de la communauté une leçon sur la sécurité DeFi. Il a passé en revue les événements de sécurité majeurs survenus dans l'industrie Web3 au cours de l'année écoulée, a discuté des 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 projets 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 permissions de fonction, les appels externes arbitraires, les problèmes de fonction de fallback, les vulnérabilités de logique métier, les fuites de clés privées et les attaques par réinjection. Cet article se concentrera sur les prêts flash, la manipulation des prix et les attaques par réinjection.
Prêt éclair
Le prêt instantané est une innovation de la Finance décentralisée, mais il est également souvent exploité par des hackers. Les attaquants empruntent d'énormes sommes d'argent via des prêts instantanés pour manipuler les prix ou attaquer la logique commerciale. Les développeurs doivent prendre en compte si les fonctionnalités du contrat peuvent être anormales en raison de sommes d'argent massives, ou si elles peuvent être exploitées pour interagir avec plusieurs fonctions dans une seule transaction afin d'obtenir des récompenses inappropriées.
De nombreux projets de Finance décentralisée semblent offrir des rendements très élevés, mais en réalité, la qualité des équipes derrière ces projets varie. Même si le code lui-même ne présente pas de vulnérabilités, des problèmes peuvent toujours exister sur le plan logique. Par exemple, certains projets distribuent des récompenses à des moments fixes en fonction du nombre de jetons détenus par les utilisateurs, mais des attaquants peuvent exploiter des prêts flash pour acheter une grande quantité de jetons et obtenir la majorité des récompenses au moment de la distribution.
Manipulation des prix
Les problèmes de manipulation des prix sont étroitement liés 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 une utilisation incorrecte ou un manque de vérification entraînant une manipulation malveillante des prix.
Utiliser le nombre de Token de certaines adresses comme variable de calcul, tandis que le solde de Token de ces adresses peut être temporairement augmenté ou diminué.
Attaque par réentrance
L'un des principaux risques d'appeler des 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 que dans une fonction de retrait, le solde de l'utilisateur n'est mis à 0 qu'à la fin de la fonction, ce qui permet d'effectuer plusieurs appels pour retirer avec succès.
Pour résoudre le problème de réentrance, il faut prêter attention aux points suivants :
Il faut non seulement prévenir les problèmes de réentrance d'une seule fonction.
Suivre le modèle Checks-Effects-Interactions lors de la programmation
Utiliser un modificateur anti-reentrance éprouvé par le temps
Dans les pratiques de sécurité, il est conseillé d'utiliser des solutions matures qui ont été suffisamment validées, plutôt que de réinventer la roue.
Conseils de sécurité pour les projets
Suivre les meilleures pratiques de sécurité pour le développement de contrats
Mise en œuvre des fonctionnalités de mise à niveau et de suspension des contrats
Adopter un mécanisme de verrouillage dans le temps
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 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 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代理, s'il est upgradable, 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, privilégiez les oracles ayant une forte notoriété.
En prêtant attention aux points mentionnés ci-dessus, les utilisateurs peuvent mieux évaluer la sécurité d'un projet de Finance décentralisée, ce qui leur permet de prendre des décisions d'investissement plus éclairées.
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
4
Partager
Commentaire
0/400
MidnightSeller
· Il y a 6h
Encore une audit, le projet de fête peut-il comprendre cela ?
Voir l'originalRépondre0
UncommonNPC
· 07-22 05:57
Il y a encore beaucoup de méthodes d'attaque...
Voir l'originalRépondre0
NeverPresent
· 07-22 05:54
On parle encore d'audit, c'est comme si on n'avait rien dit.
Voir l'originalRépondre0
HackerWhoCares
· 07-22 05:48
Le code est plus important que la notation camel !
Guide complet de sécurité DeFi : Analyse approfondie des vulnérabilités courantes et des stratégies de prévention
Finance décentralisée sécurité : types de vulnérabilités courantes et mesures de prévention
Récemment, un expert en sécurité a partagé avec les membres de la communauté une leçon sur la sécurité DeFi. Il a passé en revue les événements de sécurité majeurs survenus dans l'industrie Web3 au cours de l'année écoulée, a discuté des 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 projets 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 permissions de fonction, les appels externes arbitraires, les problèmes de fonction de fallback, les vulnérabilités de logique métier, les fuites de clés privées et les attaques par réinjection. Cet article se concentrera sur les prêts flash, la manipulation des prix et les attaques par réinjection.
Prêt éclair
Le prêt instantané est une innovation de la Finance décentralisée, mais il est également souvent exploité par des hackers. Les attaquants empruntent d'énormes sommes d'argent via des prêts instantanés pour manipuler les prix ou attaquer la logique commerciale. Les développeurs doivent prendre en compte si les fonctionnalités du contrat peuvent être anormales en raison de sommes d'argent massives, ou si elles peuvent être exploitées pour interagir avec plusieurs fonctions dans une seule transaction afin d'obtenir des récompenses inappropriées.
De nombreux projets de Finance décentralisée semblent offrir des rendements très élevés, mais en réalité, la qualité des équipes derrière ces projets varie. Même si le code lui-même ne présente pas de vulnérabilités, des problèmes peuvent toujours exister sur le plan logique. Par exemple, certains projets distribuent des récompenses à des moments fixes en fonction du nombre de jetons détenus par les utilisateurs, mais des attaquants peuvent exploiter des prêts flash pour acheter une grande quantité de jetons et obtenir la majorité des récompenses au moment de la distribution.
Manipulation des prix
Les problèmes de manipulation des prix sont étroitement liés 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 d'appeler des 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 que dans une fonction de retrait, le solde de l'utilisateur n'est mis à 0 qu'à la fin de la fonction, ce qui permet d'effectuer plusieurs appels pour retirer avec succès.
Pour résoudre le problème de réentrance, il faut prêter attention aux points suivants :
Dans les pratiques de sécurité, il est conseillé d'utiliser des solutions matures qui ont été suffisamment validées, plutôt que de réinventer la roue.
Conseils de sécurité pour les projets
Comment les utilisateurs peuvent-ils juger de la sécurité des contrats intelligents
En prêtant attention aux points mentionnés ci-dessus, les utilisateurs peuvent mieux évaluer la sécurité d'un projet de Finance décentralisée, ce qui leur permet de prendre des décisions d'investissement plus éclairées.