Analyse complète des vulnérabilités de sécurité courantes en Finance décentralisée et des mesures préventives

robot
Création du résumé en cours

Finance décentralisée : vulnérabilités de sécurité courantes et mesures préventives

Récemment, un certain expert en sécurité a discuté lors d'une conférence en ligne des événements de sécurité majeurs survenus dans l'industrie Web3 au cours de l'année écoulée, a analysé les raisons de ces événements et comment les éviter, et a résumé les vulnérabilités de sécurité courantes des contrats intelligents et les mesures préventives, tout en donnant quelques conseils de sécurité aux équipes de projet et aux utilisateurs ordinaires.

Les types de vulnérabilités DeFi courants incluent 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 fallback, les vulnérabilités logiques d'affaires, la fuite de clés privées et les attaques par réentrée, etc. Parmi ceux-ci, les prêts flash, la manipulation des prix et les attaques par réentrée sont quelques-uns des cas les plus typiques.

Prêt éclair

Le prêt éclair est en soi une innovation de la Finance décentralisée, mais il est également souvent utilisé par des hackers. Les attaquants empruntent d'énormes sommes d'argent via le prêt éclair pour manipuler les prix ou attaquer la logique commerciale. Les développeurs doivent prendre en compte si les fonctions du contrat pourraient être anormales en raison de montants d'argent énormes, ou être utilisées pour interagir avec plusieurs fonctions en une seule transaction afin d'obtenir des gains indus.

Au cours des deux dernières années, de nombreux projets de Finance décentralisée ont été attaqués en raison de problèmes liés aux prêts flash. Certains projets distribuent des récompenses à des moments fixes en fonction des quantités détenues, mais des attaquants exploitent les prêts flash pour acheter de grandes quantités de jetons et obtenir la majeure partie des bénéfices lors de la distribution des récompenses. D'autres projets qui calculent les prix en fonction des jetons sont également susceptibles d'être affectés par les prêts flash.

Manipulation des prix

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

  1. Utilisation de données tierces pour calculer le prix, mais utilisation incorrecte ou absence de vérification, entraînant une manipulation malveillante du prix.

  2. Utiliser le nombre de jetons à certaines adresses comme variable de calcul, et 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 et apporter des modifications inattendues aux données. Un exemple typique d'attaque par réentrance est le suivant :

solidity mapping (address => uint) private userBalances;

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

En raison du fait que le solde de l'utilisateur n'est réglé à 0 qu'à la fin de la fonction, les appels répétés permettront toujours d'extraire le solde avec succès.

Pour résoudre le problème de ré-invocation, il faut faire attention à :

  1. Empêche non seulement la réentrance d'une seule fonction
  2. Suivre le modèle Checks-Effects-Interactions
  3. Utiliser le modificateur de protection contre les réentrées éprouvé

Conseils de sécurité pour les projets

  1. Suivre les meilleures pratiques de sécurité pour le développement de contrats
  2. Mettre en œuvre des fonctionnalités de mise à niveau et de pause des contrats
  3. Adopter 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 le contrôle des risques dans l'amélioration de l'efficacité.
  7. Introduire des tiers avec prudence, par défaut les flux en amont et en aval ne sont pas sûrs.

Méthodes d'évaluation de la sécurité des contrats intelligents par les utilisateurs

  1. Confirmer si le contrat est open source
  2. Vérifiez si le propriétaire utilise un multi-signature décentralisé.
  3. Vérifiez la situation des transactions existantes du contrat
  4. Confirmer si le contrat est évolutif, s'il y a un verrouillage temporel.
  5. Vérifiez si plusieurs organismes ont effectué un audit, si les droits du propriétaire sont trop étendus.
  6. Attention à l'utilisation des oracles

En somme, la sécurité de la Finance décentralisée est un problème systémique qui nécessite l'attention conjointe des équipes de projet et des utilisateurs, ainsi que la mise en œuvre de mesures de sécurité complètes pour réduire efficacement les risques.

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

DEFI1.85%
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
  • 5
  • Reposter
  • Partager
Commentaire
0/400
ForkThisDAOvip
· 07-12 07:12
L'audit de code est très important.
Voir l'originalRépondre0
NewPumpamentalsvip
· 07-12 05:08
Veuillez établir strictement l'audit des contrats.
Voir l'originalRépondre0
ConsensusDissentervip
· 07-10 09:19
L'audit nécessite également un audit.
Voir l'originalRépondre0
RektRecoveryvip
· 07-10 09:18
La signature multiple est fondamentale.
Voir l'originalRépondre0
FallingLeafvip
· 07-10 09:09
La sécurité avant tout, pas de deuxième choix.
Voir l'originalRépondre0
  • Épingler
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)