Vulnérabilités de sécurité courantes dans la Finance décentralisée et mesures préventives
Récemment, un expert en sécurité a partagé un cours sur la sécurité de la Finance décentralisée, explorant les incidents de sécurité majeurs récemment rencontrés dans l'industrie Web3, analysant les raisons de ces incidents et comment les éviter, tout en résumant les vulnérabilités de sécurité courantes dans les contrats intelligents et les mesures de prévention. Cet article mettra l'accent sur trois types de vulnérabilités courantes : les prêts flash, la manipulation des prix et les attaques par réinjection.
Prêt instantané
Les prêts flash sont en eux-mêmes une innovation de la Finance décentralisée, mais ils sont souvent exploités par des hackers pour mener des attaques :
L'attaquant emprunte une grande quantité de fonds par le biais d'un prêt flash, manipulant les prix ou attaquant la logique commerciale.
Les développeurs doivent prendre en compte si les fonctionnalités du contrat pourraient être anormales en raison de fonds énormes, ou être utilisées pour obtenir trop de récompenses lors d'une transaction.
Questions fréquentes : calcul des récompenses en fonction du nombre de Token, ou participation au calcul en fonction du nombre de Token dans la paire de DEX.
Au cours des deux dernières années, de nombreux problèmes sont apparus. Certains projets de Finance décentralisée semblent offrir des rendements élevés, mais en réalité, le niveau de développement est inégal. Par exemple, certains projets distribuent des récompenses en fonction des positions à des moments fixes, ce qui a été exploité par des attaquants utilisant des prêts flash pour acheter une grande quantité de jetons et obtenir la majorité des récompenses.
Manipulation des prix
La manipulation des prix est étroitement liée aux prêts éclair, et il y a principalement deux problèmes :
Utiliser des données tierces pour calculer les prix, mais mauvaise utilisation ou manque de vérification.
Utiliser le solde de Token de certaines adresses comme variable de calcul, et ces soldes peuvent être temporairement augmentés ou diminués.
Attaque par réentrance
Le principal risque d'appeler des contrats externes est la possibilité de prendre le contrôle du flux, entraînant des modifications inattendues des données.
Un exemple typique d'attaque par réentrance :
solidity
mapping (address => uint) private userBalances;
fonction retirerBalance() public {
uint amountToWithdraw = userBalances[msg.sender];
(bool succès, ) = msg.sender.call.value(montantÀRetirer)("");
require(succès);
userBalances[msg.sender] = 0;
}
Puisque le solde de l'utilisateur est remis à zéro seulement à la fin de la fonction, il est possible d'effectuer plusieurs retraits en appelant plusieurs fois.
Pour résoudre le problème de réentrance, il faut faire attention à :
Ne pas seulement empêcher la réentrance d'une seule fonction
Suivre le modèle Checks-Effects-Interactions
Utiliser un modificateur de protection contre la réentrance vérifié
Il est conseillé d'utiliser des pratiques de sécurité matures pour éviter 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.
Implémenter des fonctionnalités de mise à niveau et de suspension des contrats
Utiliser un verrouillage temporel
É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, améliorer l'efficacité tout en renforçant le contrôle des risques.
Introduire les tiers avec prudence, en supposant qu'ils ne sont pas sûrs et en effectuant des vérifications.
Comment les utilisateurs peuvent évaluer la sécurité des contrats intelligents
Le contrat est-il open-source
Le propriétaire utilise-t-il une multi-signature décentralisée ?
Vérifiez la situation des transactions existantes du contrat
Le contrat est-il upgradable, y a-t-il un verrouillage temporel
Accepte-t-il les audits de plusieurs institutions, les droits du propriétaire sont-ils trop étendus ?
Faites attention à la fiabilité des oracles
En somme, la sécurité est essentielle dans le domaine de la Finance décentralisée. Les promoteurs de projets doivent construire un système de sécurité complet, et les utilisateurs doivent également rester vigilants et participer avec prudence.
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.
15 J'aime
Récompense
15
6
Partager
Commentaire
0/400
GateUser-bd883c58
· 07-21 12:00
Il faut quand même laisser une porte dérobée !
Voir l'originalRépondre0
LayoffMiner
· 07-21 02:24
Ha, c'est toujours la même chose, un lavage de minage astucieux.
Voir l'originalRépondre0
LiquidationWatcher
· 07-21 02:19
Il y a tant de failles, à quoi bon jouer à la Finance décentralisée ?
Voir l'originalRépondre0
NestedFox
· 07-21 02:18
Encore se faire prendre pour des cons.
Voir l'originalRépondre0
Layer2Observer
· 07-21 02:08
Le code est la preuve la plus solide.
Voir l'originalRépondre0
SerumSurfer
· 07-21 02:07
Prêts Flash, même les chiens ne s'y intéressent pas.
Trois grands risques de sécurité dans la Finance décentralisée : Prêts Flash, manipulation des prix et attaques par réinjection.
Vulnérabilités de sécurité courantes dans la Finance décentralisée et mesures préventives
Récemment, un expert en sécurité a partagé un cours sur la sécurité de la Finance décentralisée, explorant les incidents de sécurité majeurs récemment rencontrés dans l'industrie Web3, analysant les raisons de ces incidents et comment les éviter, tout en résumant les vulnérabilités de sécurité courantes dans les contrats intelligents et les mesures de prévention. Cet article mettra l'accent sur trois types de vulnérabilités courantes : les prêts flash, la manipulation des prix et les attaques par réinjection.
Prêt instantané
Les prêts flash sont en eux-mêmes une innovation de la Finance décentralisée, mais ils sont souvent exploités par des hackers pour mener des attaques :
Au cours des deux dernières années, de nombreux problèmes sont apparus. Certains projets de Finance décentralisée semblent offrir des rendements élevés, mais en réalité, le niveau de développement est inégal. Par exemple, certains projets distribuent des récompenses en fonction des positions à des moments fixes, ce qui a été exploité par des attaquants utilisant des prêts flash pour acheter une grande quantité de jetons et obtenir la majorité des récompenses.
Manipulation des prix
La manipulation des prix est étroitement liée aux prêts éclair, et il y a principalement deux problèmes :
Attaque par réentrance
Le principal risque d'appeler des contrats externes est la possibilité de prendre le contrôle du flux, entraînant des modifications inattendues des données.
Un exemple typique d'attaque par réentrance : solidity mapping (address => uint) private userBalances;
fonction retirerBalance() public { uint amountToWithdraw = userBalances[msg.sender]; (bool succès, ) = msg.sender.call.value(montantÀRetirer)(""); require(succès); userBalances[msg.sender] = 0; }
Puisque le solde de l'utilisateur est remis à zéro seulement à la fin de la fonction, il est possible d'effectuer plusieurs retraits en appelant plusieurs fois.
Pour résoudre le problème de réentrance, il faut faire attention à :
Il est conseillé d'utiliser des pratiques de sécurité matures pour éviter de réinventer la roue.
Conseils de sécurité pour les projets
Comment les utilisateurs peuvent évaluer la sécurité des contrats intelligents
En somme, la sécurité est essentielle dans le domaine de la Finance décentralisée. Les promoteurs de projets doivent construire un système de sécurité complet, et les utilisateurs doivent également rester vigilants et participer avec prudence.