Sécurité DeFi : Guide de prévention contre les Prêts Flash, la manipulation des prix et les attaques par réinjection

robot
Création du résumé en cours

Vulnérabilités de sécurité en Finance décentralisée 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 récents événements de sécurité majeurs survenus dans l'industrie Web3, a exploré les causes de ces événements et les méthodes pour 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.

Cobo Finance décentralisée sécurité cours (suite) : Vulnérabilités de sécurité courantes en DeFi et prévention

Les types de vulnérabilités DeFi courants incluent les prêts flash, la manipulation des prix, les problèmes de contrôle de fonction, les appels externes arbitraires, les problèmes de fonction fallback, les vulnérabilités logiques d'affaires, la fuite de clés privées, les attaques par réentrée, etc. Ci-dessous, nous allons nous concentrer sur ces trois types : les prêts flash, la manipulation des prix et les attaques par réentrée.

Prêt flash

Le prêt éclair est une innovation dans la Finance décentralisée, mais lorsqu'il est exploité par des hackers, il peut entraîner des pertes énormes :

  • Les attaquants empruntent d'importants montants via des prêts flash, manipulant les prix ou attaquant la logique commerciale.
  • Les développeurs doivent prendre en compte si les fonctionnalités du contrat peuvent être affectées par des fonds massifs.
  • Certains projets utilisent le nombre de Tokens pour calculer les récompenses, ou utilisent le nombre de Tokens dans les paires de trading DEX pour participer au calcul, ces variables sont facilement manipulables par des prêts éclair.

Au cours des deux dernières années, de nombreux projets de Finance décentralisée à haut rendement ont subi des attaques par prêt éclair en raison de problèmes de code ou de logique. Par exemple, certains projets distribuent des récompenses à des moments fixes en fonction de la quantité détenue, les attaquants utilisant des prêts éclair pour acheter une grande quantité de jetons et obtenir la majorité des récompenses.

Manipulation des prix

Les problèmes de manipulation des prix sont étroitement liés aux prêts flash, et il en existe principalement deux types :

  1. Utiliser des données tierces pour calculer les prix, mais de manière incorrecte ou sans vérification.
  2. Utiliser le solde des Token de certaines adresses comme variable de calcul, et ces soldes peuvent être temporairement augmentés ou réduits.

Attaque de réentrance

Le principal risque d'appeler des contrats externes est qu'ils peuvent prendre le contrôle du flux et modifier les données de manière inattendue. Par exemple :

solidité mapping (address => uint) private userBalances;

fonction retirerSolde() public { uint amountToWithdraw = userBalances[msg.sender]; (bool succès, ) = msg.sender.call.value(montantÀRetirer)(""); require(succès); userBalances[msg.sender] = 0; }

Étant donné que le solde de l'utilisateur n'est réinitialisé qu'à la fin de la fonction, les appels répétés réussiront toujours à extraire le solde.

Pour résoudre le problème de réentrance, il est important de prêter attention à :

  1. Ne pas seulement prévenir la réentrance d'une seule fonction
  2. Suivre le modèle Checks-Effects-Interactions
  3. Utiliser un modificateur de protection contre les réentrées vérifié

Les attaques par réinjection se présentent sous de nombreuses formes et peuvent impliquer plusieurs fonctions ou contrats. Il est recommandé d'utiliser des pratiques de sécurité éprouvées pour éviter de réinventer la roue.

Conseils de sécurité

Conseils de sécurité pour les projets

  1. Suivre les meilleures pratiques de sécurité du développement de contrats.
  2. Réaliser des contrats évolutifs et des fonctionnalités de suspension
  3. 采用 un mécanisme de verrouillage temporel
  4. Augmenter les investissements en sécurité et établir un système de sécurité complet.
  5. Sensibiliser tous les employés à la sécurité
  6. Prévenir les actes malveillants internes tout en renforçant la gestion des risques dans le but d'améliorer l'efficacité.
  7. Introduire des tiers avec prudence, par défaut, les parties prenantes en amont et en aval ne sont pas sécurisées.

L'évaluation de la sécurité des contrats intelligents par les utilisateurs

  1. Le contrat est-il open source
  2. Le propriétaire adopte-t-il une multi-signature décentralisée ?
  3. Vérifiez les transactions existantes du contrat
  4. Le contrat est-il évolutif, y a-t-il un verrouillage temporel ?
  5. Le contrat accepte-t-il l'audit par plusieurs institutions, les droits du propriétaire sont-ils trop étendus ?
  6. Attention à la fiabilité des oracles

En somme, le domaine de la Finance décentralisée présente de nombreux risques de sécurité, les porteurs de projets et les utilisateurs doivent rester vigilants, adopter des mesures de protection multiples et maintenir ensemble la sécurité de l'écosystème.

DEFI7.35%
Voir l'original
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.
  • Récompense
  • 4
  • Partager
Commentaire
0/400
TokenCreatorOPvip
· 07-28 02:54
Si j'avais su plus tôt, mon usdt avait disparu.
Voir l'originalRépondre0
RooftopReservervip
· 07-28 02:53
Encore des pigeons veulent monter sur le toit.
Voir l'originalRépondre0
consensus_failurevip
· 07-28 02:53
Encore en train de jouer un scénario de piège pour faire des liquidités et Rug Pull~
Voir l'originalRépondre0
ParallelChainMaxivip
· 07-28 02:34
Aucun projet n'est sûr.
Voir l'originalRépondre0
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)