Illustration d’un NFT sauvé d’un portefeuille compromis avant qu’un sweeper bot automatisé ne puisse le récupérer

Pendant des années, la réponse honnête à « mon portefeuille a été vidé, pouvez-vous récupérer quelque chose » a presque toujours été non. Cela a changé pour une catégorie précise de cas : les actifs qui se trouvent encore, techniquement, dans un portefeuille compromis parce qu’un sweeper bot n’a pas encore pu les atteindre. Comprendre pourquoi cet écart existe, et comment l’exploiter, constitue la base d’une technique de récupération réellement utile.

Pourquoi il reste quelque chose, tout court

Quand un attaquant compromet un portefeuille, il fait généralement deux choses : il vide tout ce qu’il peut atteindre immédiatement, puis installe un sweeper bot qui surveille le solde et vide tout nouvel apport dès son arrivée. Mais certains actifs ne se vident pas proprement dès le premier passage, des tokens stakés dans un pool de liquidité ou une position génératrice de revenus, par exemple, peuvent rester verrouillés jusqu’à ce qu’une condition de déverrouillage précise soit remplie. Le bot de l’attaquant attend simplement, et maintient dans l’intervalle le véritable propriétaire hors du portefeuille.

Le problème central d’une tentative de récupération classique

Le geste évident, envoyer une petite quantité d’ETH dans le portefeuille compromis pour couvrir le gas, puis retirer l’actif verrouillé, échoue immédiatement en pratique. Le sweeper bot surveille exactement le même portefeuille, et il réclamera cet ETH entrant ainsi que toute transaction en résultant plus vite qu’une personne ne peut agir manuellement. Toute transaction ordinaire, diffusée publiquement, donne au bot de l’attaquant tout ce dont il a besoin pour gagner la course.

Comment un bundle privé permet de contourner cela

La parade consiste à ne jamais laisser la transaction de financement et la transaction de récupération atteindre séparément le réseau public. À la place, les deux sont regroupées dans un bundle unique, une transaction de financement, la transaction qui fait sortir l’actif ciblé, et une transaction finale confirmant que toute la séquence a réussi, et soumises directement et de façon privée à un producteur de bloc, accompagnées d’une commission pour leur inclusion en tant qu’unité atomique. Comme le bundle n’apparaît on-chain qu’une fois entièrement exécuté, le sweeper bot de l’attaquant n’a jamais l’occasion de réagir.

  • Le contrat compromis est rétro-ingénieré à partir de son code source publié pour identifier la méthode de récupération exacte nécessaire.
  • La séquence complète de transactions est simulée à l’avance pour estimer précisément les coûts de gas.
  • Le bundle, financement, récupération, confirmation, est soumis de façon privée plutôt qu’au mempool public.
  • Un processus de surveillance suit en continu le portefeuille compromis afin que tout nouveau solde déverrouillé puisse être déplacé dès qu’il devient disponible, privant l’attaquant d’origine d’une seconde chance.
Point clé

Cela ne fonctionne que tant que l’actif ciblé reste accessible et déverrouillé. Si un sweeper bot l’a déjà récupéré, ou si l’actif exige une clé privée que le propriétaire n’a jamais eue, il ne reste rien à récupérer par cette méthode, elle dépend entièrement du fait qu’il reste encore quelque chose dans le portefeuille.

Ce qui est réellement récupérable

Les tokens ERC-20 et les NFT ERC-721 suivent tous deux des interfaces standardisées, ce qui signifie qu’une méthode de récupération construite pour le standard fonctionne généralement pour n’importe quel token ou collection qui l’utilise, y compris le transfert groupé d’un large lot de NFT hors d’un portefeuille compromis en une seule transaction. Les stablecoins et les tokens de staking ou de fourniture de liquidité standards sont tout aussi simples à traiter. Les protocoles personnalisés avec des mécanismes de verrouillage non standards nécessitent une rétro-ingénierie individuelle et prennent plus de temps, et la prise en charge s’étend actuellement à Ethereum, Polygon, et d’autres chaînes compatibles EVM telles qu’Avalanche et BNB Chain.

Pourquoi cela compte pour les victimes

L’implication pratique est qu’un portefeuille vidé n’est pas automatiquement une impasse. Si une position quelconque était stakée, verrouillée, ou autrement inaccessible aux outils automatisés de l’attaquant au moment du vol, il peut encore exister une véritable fenêtre de récupération, sensible au facteur temps, et elle se referme au moment précis où la position se déverrouille et où le bot de l’attaquant y accède le premier.

récupération de NFTportefeuilles compromissweeper botsrécupération de portefeuille

Articles connexes

Comment nous forçons par force brute d’anciens portefeuilles Blockchain.info pour récupérer des mots de passe perdus Signatures « IncreaseAllowance » malveillantes : comment de faux DApps vident les portefeuilles Web3 L’habitude de cinq minutes qui ferme une voie d’attaque DeFi courante