Selon l'analyse de Tan Phat Digital, l'explosion de la finance décentralisée (DeFi) et des applications décentralisées (dApps) a révolutionné l'autonomie financière, mais a en même temps ouvert une nouvelle ère pour les cybercriminels. Au cours de la période 2022-2023, les pertes dues aux attaques et escroqueries liées aux contrats intelligents ont atteint des milliards de dollars, les rapports enregistrant un chiffre de 3,7 milliards de dollars pour la seule année 2022. Le point le plus préoccupant aujourd’hui ne réside pas seulement dans les vulnérabilités techniques involontaires, mais aussi dans la montée en puissance des contrats conçus selon une « logique intentionnellement malveillante ». Ces entités profitent de l'immuabilité de la blockchain et du manque de compréhension technique des utilisateurs pour procéder à des détournements d'actifs sans mécanismes de réversibilité. L'identification des signes de toxicité souvent négligés nécessite une compréhension approfondie de l'architecture de la machine virtuelle Ethereum (EVM), des normes de jetons et des procédures de fonctionnement des navigateurs de blocs.
La nature et les mécanismes d'exécution des contrats intelligents malveillants
Un contrat intelligent malveillant est plus qu'un simple morceau de code défectueux ; ce sont des instruments financiers programmés pour briser les hypothèses sur la sécurité des utilisateurs. L'une des principales caractéristiques des contrats intelligents est qu'ils sont auto-exécutables et indépendants des tiers, ce qui signifie qu'une fois la transaction déclenchée, aucun régulateur ni banque ne peut intervenir pour protéger les intérêts de l'utilisateur en cas d'erreur. La fraude aux contrats intelligents comprend souvent l'installation de « portes dérobées » qui permettent aux propriétaires de projets de retirer tous les actifs du pool de liquidités (pool) ou d'empêcher les utilisateurs de retirer des fonds dans des conditions cachées.
En savoir plus : Qu'est-ce qui est intelligent Contrat ? Ce qu'il faut savoir sur les contrats intelligents
Vulnérabilités de réentrance et de distorsion dans les contrats Honeypot
La réentrance est un exemple classique de la façon dont la logique contractuelle peut être exploitée pour drainer des fonds d'un protocole. Ce mécanisme se produit lorsqu'un contrat appelle une adresse externe (généralement le contrat de l'attaquant) avant d'avoir le temps de mettre à jour son état d'équilibre interne. Dans ce scénario, l'attaquant utilise une fonction fallback pour rappeler la fonction de retrait de la victime plusieurs fois au cours d'une seule transaction, lui permettant ainsi de retirer des fonds au-delà du solde réel.
Le danger augmente lorsque cette technique est utilisée dans les contrats « Honeypot ». Les fraudeurs déploient intentionnellement un contrat qui semble vulnérable au bug Reentrancy pour inciter les développeurs ou les robots de recherche de vulnérabilité à déposer des fonds dans l'espoir de « pirater » le contrat. Cependant, le contrat honeypot contient des contrôles supplémentaires ou des fonctions cachées qui rendent les retraits pratiquement impossibles, faisant ainsi du pirate informatique lui-même une victime. Cela montre que le risque vient non seulement de l'interaction avec la dApp, mais également de la tentative d'exploiter des contrats apparemment « mauvais » sur la blockchain.
Types courants de réentrée :
Fonction unique de réentrée : Une fonction qui est appelée à plusieurs reprises avant la fin de la première exécution. Cela brise l'intégrité des données du solde, conduisant à des retraits illimités.
Réentrée inter-fonctions : L'attaquant utilise deux fonctions différentes mais partage le même état. Ce type est plus difficile à détecter via des tests de logique unique, nécessitant une analyse de l'état global.
Réentrée entre contrats : se produit lorsque l'état d'un contrat dépend de l'état non mis à jour d'un autre contrat, provoquant souvent des erreurs de logique système dans les protocoles DeFi complexes.
Violations du contrôle d'accès et de la logique de frappe
L'un des signes les plus courants de logiciels malveillants que les utilisateurs ignorent souvent est la présence de fonctions administratives avec des pouvoirs excessifs. Des fonctions telles que mintUnlimitedTokens(), ownerOnlyWithdraw() ou des variantes de la fonction blacklist() permettent aux propriétaires de contrats de contrôler entièrement le sort des actifs de leurs utilisateurs. Un exemple concret est le piratage du projet DMC, où la fonction mintFromStaking() ne disposait pas d'un mécanisme de contrôle d'accès, ce qui a permis à l'attaquant de créer plus de 40 millions de nouveaux jetons et de drainer des liquidités sur PancakeSwap.
Un contrôle d'accès inapproprié est souvent déguisé en noms de fonctions techniques ou apparemment inoffensifs. Les fraudeurs peuvent utiliser tx.origin au lieu de msg.sender pour effectuer des attaques de phishing par proxy, ou utiliser la logique de changement de propriétaire (setOwner) cachée au plus profond du code source obscurci. Les utilisateurs ne voient souvent que l'interface utilisateur brillante sans vérifier si l'adresse du portefeuille administratif est réellement verrouillée (renoncée) ou entre les mains d'un portefeuille privé capable de manipuler l'intégralité de l'offre.
Voir aussi : Quel est le danger de l'arnaque à l'approbation et pourquoi tant de personnes tombent dans le piège
Risques liés à l'autorité d'approbation des jetons et aux attaques de phishing sophistiquées
Autorité d'approbation des jetons (jeton Approbation) est l’épine dorsale des transactions DeFi, permettant aux dApps de dépenser des jetons au nom des utilisateurs. Mais c’est aussi le « talon d’Achille » que les cybercriminels exploitent le plus à fond. Lorsque les utilisateurs interagissent avec un échange décentralisé (DEX), il leur est généralement demandé de signer une transaction approuve. Habituellement, les dApp nécessitent une autorisation d'approbation universelle (approbation illimitée) afin que les utilisateurs n'aient pas à refaire cette opération et économisent les frais d'essence pour les périodes futures.
Mécanisme d'approbation illimité et fonction transferFrom
Techniquement, la fonction approve(spender, montant) enregistre une valeur "d'allocation" sur la blockchain pour une adresse de contrat spécifique. Si un utilisateur signe une approbation d'une valeur maximale ($2^{256} - 1$), la dApp a le droit de retirer la totalité du solde de ce token dans le portefeuille de l'utilisateur à tout moment via la fonction transferFrom(). Le risque survient lorsque le contrat de la dApp est piraté ou que la dApp elle-même est un outil de fraude. L'attaquant n'a pas besoin de détenir la clé privée de l'utilisateur ; ils exécutent simplement l'ordre de transfert en fonction des autorisations que l'utilisateur a précédemment volontairement accordées.
Analyse des risques par statut d'approbation :
Utilisateurs à approbation infinie : Faites face au risque de perdre la totalité du solde du token à jamais car la valeur de l'allocation est supérieure ou égale au solde du portefeuille, permettant à la fonction
transferFromde s'exécuter avec succès à tout momentL'utilisateur approuve limit : Ne prend qu'un certain nombre de jetons approuvés. La fonction
transferFromest bloquée par la valeur d'allocation signée spécifique.L'utilisateur connecte uniquement le portefeuille : Cet état est sûr, aucun actif n'est perdu car aucune transaction
approven'a été enregistrée sur la blockchain, la commandetransferFromsera annulée (annulée).
Tendances de phishing et signatures malveillantes au Vietnam Nam
Au Vietnam, les formes de fraude contournant la couche d'approbation deviennent extrêmement populaires sous le nom de "Scam Airdrop" ou "Fake Tech Support". Les fraudeurs envoient d'étranges jetons dans les portefeuilles des utilisateurs avec un lien vers un faux site Web. Lorsque les utilisateurs accèdent et tentent de « réclamer » des récompenses, ils sont incités à signer des demandes d'approbation ou des signatures Permis (EIP-712). La signature Permit est particulièrement dangereuse car elle permet d'approuver l'accès au jeton sans que l'utilisateur ait à effectuer une transaction en chaîne à ce moment-là, rendant la victime ignorante des frais d'essence déduits et subjective en termes de sécurité.
De plus, le « Pig Butchering » - une forme de fraude amoureuse et d'investissement - profite également de contrats intelligents malveillants pour bloquer les fonds des victimes. Les victimes sont invitées à déposer des fonds sur une fausse plateforme de trading, où les fonds réels sont transférés directement dans le portefeuille de l'escroc via un contrat doté de droits de retrait cachés.
Obfuscation et proxy : techniques de dissimulation de contrat malveillantes
Pour éviter d'être détectés par les outils d'analyse automatisés et les analystes de sécurité, les attaquants utilisent souvent des techniques d'obscurcissement du code (obscurcissement) et des structures de proxy complexes. Utiliser des noms de fonctions trompeurs est une tactique courante ; par exemple, une fonction qui est essentiellement vide de fonds (rugPull) mais qui est nommée safeWithdraw() ou emergencyRefund().
Risques d'appel de délégué et de mise à niveau de contrat
Le modèle Proxy permet à un contrat (Proxy) de transmettre la logique d'exécution à un autre contrat (Implémentation) via les commandes delegatecall. Le point clé est que la commande delegatecall exécute le code source du contrat cible mais utilise l'espace de stockage du contrat appelant. Cela permet au porteur de projet de modifier à tout moment l’adresse logique du contrat. Un projet pourrait démarrer avec un contrat totalement propre pour réussir les audits initiaux, puis « mettre à niveau » vers une version malveillante pour extorquer des fonds aux utilisateurs.
Un attaquant pourrait également exploiter les collisions de stockage dans les structures proxy pour modifier des variables importantes telles que l'adresse du propriétaire (owner) ou les indicateurs de contrôle des transactions. Ces vulnérabilités sont souvent difficiles à détecter pour les utilisateurs ordinaires, car sur les navigateurs de blocage comme Etherscan, ils ne voient que les interactions avec les adresses proxy qui ne contiennent pas de logique malveillante directe.
Processus de test et d'identification des contrats intelligents malveillants
Tan Phat Digital recommande aux utilisateurs d'effectuer un processus de test multicouche, ne s'appuyant pas uniquement sur des informations superficielles, mais approfondissant les données en chaîne. Vérifier l'authenticité du code source est la première et la plus importante étape. Un contrat vérifié sur Etherscan ou BscScan aura une icône de coche verte, permettant à la communauté d'examiner le code source réel.
Analyse du verrouillage de liquidité
La liquidité est le facteur qui détermine si un utilisateur peut vendre ses jetons ou non. Un projet malveillant effectue généralement un « Rug Pull » en drainant les liquidités du pool commercial. Les utilisateurs peuvent effectuer une vérification manuelle sur le navigateur de blocs en suivant ces étapes :
Accédez à la page Token Tracker de ce jeton sur le navigateur de blocs.
Recherchez les transactions de dépôt de liquidité initiales et vérifiez l'adresse de réception du jeton LP (Liquidity Provider).
Confirmez si les jetons LP ont été envoyés pour "graver" des adresses ou des crédits de contrats de verrouillage réputés.
Commun méthodes de verrouillage de liquidité :
Burn Address : Transférez les jetons LP à l'adresse se terminant par
dEaD. Il s'agit d'un niveau de confiance absolu car personne ne peut retirer les actifs brûlés.Plateforme Unicrypt / PinkSale : utilise un contrat intelligent intermédiaire avec une période de blocage. Haut niveau de confiance, l'heure de déverrouillage peut être vérifiée publiquement sur le site Web de la plateforme.
Dev Wallet (Déverrouillé) : Les jetons LP se trouvent directement dans le portefeuille du programmeur. Le niveau de confiance est très faible, le propriétaire du projet peut retirer de l'argent à tout moment pour effectuer Rug Pull.
Audit et évaluation du rapport KYC
Ce n'est pas parce qu'un projet prétend avoir été audité par des unités comme CertiK ou Hacken qu'il est totalement sûr. Les utilisateurs doivent vérifier l'authenticité de ce rapport directement sur le site Internet du cabinet d'audit. Un véritable rapport d'audit doit correspondre à l'adresse du contrat actif et aux validations du code source sur GitHub. Les signes courants de fraude incluent des fautes de frappe, une conception incohérente ou des liens vers une page GitHub personnelle au lieu de la page officielle du classement de l'auditeur.
Outils et stratégies de défense proactive
Gérer les autorisations d'approbation avec Revoke.cash et Rabby Wallet
Vérifier et révoquer régulièrement les approbations de jetons est une habitude de sécurité essentielle. Revoke.cash est un outil leader qui permet aux utilisateurs d'afficher une liste de toutes les dApps qui ont déjà été approuvées et d'effectuer une « révocation » ou de mettre à jour la limite d'approbation à un niveau sûr. Pendant ce temps, Rabby Wallet est considéré comme un portefeuille sûr grâce à sa fonction d'avertissement de risque intégrée, affichant une notice rouge si une transaction nécessite l'approbation d'un contrat non vérifié ou montre des signes de malveillance.
Distinction entre déconnexion et révocation
Une erreur courante est de croire que déconnecter le portefeuille de la dApp protégera les actifs. Cependant :
Déconnecter : annule uniquement l'autorisation accordée au site Web de consulter l'adresse et le solde de votre portefeuille. Cela n'affecte pas les droits d'approbation enregistrés sur la blockchain.
Révoquer : est une véritable transaction blockchain qui supprime le droit de la dApp de dépenser des jetons. C'est la seule action qui peut empêcher les contrats malveillants de retirer des fonds de votre portefeuille via la commande
transferFrom.
Asset Rescue et White-hat Rescue
Une fois qu'un portefeuille est compromis par un "Sweeper Bot", retirer les actifs restants devient extrêmement difficile car le bot draine automatiquement les frais de gaz dès qu'ils sont chargés.
Outils de sauvetage et mécanisme principal :
Flashbots : Utilise un mécanisme de transaction groupé fermé, ne passe pas par le pool de mémoire public. Nécessite des connaissances techniques pour configurer index.js et les clés privées.
Récupération de portefeuille piraté : Fournit une interface pour prendre en charge la création automatique de bundles. Les utilisateurs doivent passer à un RPC spécial pour éviter d'exposer les transactions au réseau public.
Revoke.cash (Exploit Checker) : Vérifiez si le portefeuille figure sur la liste des dApps piratées. Cet outil a uniquement pour effet de prévenir et de révocation, et non d'économiser les fonds qui ont été transférés.
10 questions fréquemment posées (FAQ) sur la sécurité des contrats intelligents
Le simple fait de déconnecter le portefeuille de la dApp est-il suffisamment sûr ? Non. La déconnexion empêche uniquement le site Web de consulter le solde de votre portefeuille. Les autorisations restent sur la blockchain, permettant au contrat malveillant de retirer vos fonds à tout moment via la commande
transferFrom. Vous devez exécuter la commande Revoke pour révoquer réellement l'accès à l'actif.Comment savoir si la liquidité d'un projet est vraiment verrouillée ? Vous devez vérifier sur le navigateur de blocs (Etherscan/BscScan). Si des jetons de liquidité (jetons LP) sont envoyés à l'adresse de gravure (
0x...dEaD) ou à des contrats de verrouillage réputés tels que Unicrypt, PinkSale d'une durée supérieure à 6 à 12 mois, ils sont considérés comme sûrs.Pourquoi les dApps demandent-ils souvent des autorisations « Approuver » illimitées ? Les dApps demandent des autorisations maximales (2256−1) pour plus de commodité et économiser les frais d'essence pour les utilisateurs lors de transactions futures. Cependant, si ce contrat contient un code malveillant, le pirate informatique peut vider tous les jetons de votre portefeuille sans que vous signiez aucune commande supplémentaire.
Qu'est-ce qu'un contrat « Honeypot » et comment l'identifier ? Un honeypot est un type de contrat qui vous permet d'acheter des jetons mais installe un code qui vous empêche de les vendre. Vous pouvez l'identifier en vérifiant sur Dexscreener : si le graphique ne contient que des ordres d'achat (bleu) et aucun ordre de vente (rouge), il s'agit bien d'un piège.
Que dois-je faire si je découvre que mon portefeuille contient un « Sweeper Bot » ? N'ajoutez absolument pas d'argent supplémentaire à ce portefeuille car le robot le retirera immédiatement. La seule solution consiste à utiliser un outil tel que Flashbots ou Hacked Wallet Recovery pour créer un ensemble fermé de transactions afin de « voler » les actifs avant que le robot ne puisse réagir.
Le rapport d'audit garantit-il que le projet est totalement inpiratable ? Non. L'audit n'est qu'une évaluation à un moment donné. Le projet peut modifier la logique ultérieurement grâce au modèle Proxy, ou les pirates peuvent exploiter des erreurs manquées par les auditeurs.
Dans quelle mesure une signature « Permis » (EIP-712) est-elle dangereuse ? Il s'agit d'un type de signature "hors ligne", ne coûte pas d'essence mais a la même valeur que la commande Approuver. Les pirates incitent souvent les utilisateurs à signer un permis via de faux sites Web Airdrop afin de prendre le contrôle des actifs à l'insu de la victime.
Comment vérifier l'authenticité d'un rapport KYC ou d'audit ? Vous devez visiter directement le site Web de l'émetteur (comme CertiK Leaderboard) et rechercher le nom du projet. Ne faites jamais confiance aux captures d'écran ou aux liens PDF fournis par le projet lui-même, car ils sont faciles à modifier.
Outre la cryptographie, quels types d'« escroqueries aux contrats » sont populaires ? Les formes courantes incluent les escroqueries aux contrats de réparation à domicile (demandant un dépôt important puis disparaissant) et les escroqueries aux contrats téléphoniques (usurpation de l'identité de l'opérateur de réseau pour obtenir des informations personnelles afin de souscrire à des forfaits coûteux).
Peut récupérer de l'argent après qu'il ait été retiré du portefeuille par un contrat malveillant. non ? En raison de la nature immuable et décentralisée de la blockchain, les transactions une fois effectuées sont irréversibles. La seule chance est de se signaler aux bourses centralisées (CEX) afin qu'elles puissent bloquer les actifs si des voleurs y transfèrent de l'argent.
L'évolution des contrats intelligents malveillants montre que plus la technologie blockchain devient complexe, plus les failles logiques deviennent imprévisibles. L'avenir de la sécurité Web3 passera à un modèle de « sécurité continue » et à une surveillance en temps réel. Selon les experts de Tan Phat Digital, la sensibilisation accrue des utilisateurs à la gestion des droits d'approbation et aux capacités d'auto-vérification (DYOR) constituera le plus grand obstacle pour les cybercriminels. La sécurité ne vient pas seulement de lignes de code épurées, mais aussi de la combinaison de la technologie de sécurité et de la vigilance de chaque individu participant au marché.
Partager








