ActualitésCryptoBitquery retrace un vol présumé de 106 M$ en cryptomonnaies via des portefeuilles déjà utilisés

Bitquery retrace un vol présumé de 106 M$ en cryptomonnaies via des portefeuilles déjà utilisés

Auteur: Coindoo·

Points clés

  • •Bitquery a retracé environ 108,8 millions de dollars en USDC sortis de comptes sur OKX, Kraken et Crypto.com entre le 1er et le 2 novembre, des fonds signalés par ZachXBT comme un vol présumé visant une entité basée dans l'UE.
  • •Onze des 15 portefeuilles récepteurs avaient reçu des paiements des mêmes plateformes avant le 1er novembre, ce qui amène Bitquery à déduire que l'auteur du vol détenait probablement à la fois les identifiants d'accès et les clés privées des portefeuilles.
  • •Environ 62,98 millions de dollars en stablecoins ont été convertis en 27 553 ETH via UniswapX en environ quatre heures, et seuls quelque 3,7 millions de dollars restaient en USDC que Circle pouvait geler.
  • •Un portefeuille a reçu 43 retraits de Kraken en 91 minutes, chacun inférieur à 50 000 $, un schéma interprété par Bitquery comme une tentative de contourner les limites de retrait individuel.
  • •Au 13h47 UTC le 2 novembre, 78,27 millions de dollars se trouvaient toujours dans des adresses liées à l'auteur du vol sur Ethereum, tandis qu'environ 30,5 millions de dollars avaient déjà transité par des plateformes dont une adresse de dépôt KuCoin, LI.FI et FixedFloat.
Bitquery retrace un vol présumé de 106 M$ en cryptomonnaies via des portefeuilles déjà utilisés

Une enquête menée le 2 novembre par la société d'analyse blockchain Bitquery a retracé environ 108,8 millions de dollars en USDC sortis de comptes sur trois plateformes d'échange de cryptomonnaies, à la suite de fonds signalés par l'investreur on-chain ZachXBT comme un vol présumé visant une entité basée dans l'UE, comme relayé dans une publication du compte X Officer's Notes. L'enquête de Bitquery a révélé que 11 des 15 portefeuilles récepteurs avaient déjà reçu des paiements de ces mêmes plateformes avant le 1er novembre, que 62,98 millions de dollars en stablecoins avaient été convertis en 27 553 ETH, et que seuls 3,7 millions de dollars des fonds restaient en USDC gelables.

Vingt et une heures à travers trois plateformes

Le premier retrait est parti d'OKX à 12h25 UTC le 1er novembre. Kraken a suivi 44 minutes plus tard et a finalement versé 95 % du total, Crypto.com fournissant le reste aux côtés d'OKX. Environ deux tiers des fonds, soit 73,2 millions de dollars, sont sortis dans les trois heures précédant 23h00 UTC, et le dernier paiement est arrivé à 09h09 UTC le lendemain matin.

Un portefeuille a reçu 43 retraits de Kraken en 91 minutes, chacun inférieur à 50 000 $. Bitquery interprète ce schéma comme une tentative de l'auteur du vol de contourner une limite applicable aux retraits individuels, une protection standard sur les comptes d'échange. Si cette lecture est correcte, la limite a modifié la forme des flux sortants sans en réduire le montant.

Aucun de ces montants n'est une perte confirmée par la victime. Bitquery a analysé uniquement Ethereum et vérifié les principaux portefeuilles des trois plateformes ; les transactions sur d'autres chaînes ou via d'autres portefeuilles de ces mêmes plateformes pourraient donc s'ajouter au décompte. La victime n'a pas été nommée, mais l'historique des portefeuilles pointe vers une activité de trading ou de paiements utilisant Kraken depuis mai — une hypothèse que Bitquery dit elle-même tenir avec prudence.

Pourquoi les anciens portefeuilles pointent au-delà de la connexion à la plateforme

Onze des 15 portefeuilles récepteurs avaient reçu des paiements de ces mêmes plateformes avant le 1er novembre, et ensemble ils ont reçu 84 % des fonds. Le plus ancien a effectué son premier retrait Kraken le 4 mai, puis 48 autres avant le vol. Plusieurs de ces portefeuilles se sont payés entre eux au cours de l'été. Huit des 15 sont des comptes intelligents Trust Wallet configurés pour payer les frais de réseau en USDC — les frais sont ainsi prélevés sur le solde de tokens plutôt qu'en ETH — bien que Bitquery n'ait rien trouvé indiquant une faille dans l'application elle-même.

Cet historique explique pourquoi Bitquery considère ces portefeuilles comme appartenant à la victime, et pourquoi la connexion à la plateforme seule ne suffit pas à expliquer ce qui s'est passé ensuite. L'USDC a généralement transité vers un portefeuille neuf en moins de trois minutes, et son transfert ultérieur nécessitait les clés du portefeuille récepteur. Bitquery conclut que l'auteur du vol détenait très probablement à la fois les identifiants d'accès et ces clés. Selon son analyse, cela pointe soit vers une intrusion dans les appareils du propriétaire ou dans la configuration de ses portefeuilles, soit vers une personne au sein même de l'équipe de la victime. La chaîne ne permet pas de trancher entre ces deux hypothèses.

Cette conclusion sur la propriété des portefeuilles reste une inférence tirée de leur comportement, et ni la victime ni les plateformes ne l'ont confirmée. Si certaines de ces adresses appartenaient à un employé, un sous-traitant ou une contrepartie, les paiements antérieurs montreraient que l'entité faisait confiance à une personne, et non que ses propres clés avaient fuité. Dans tous les cas, rien dans la trace n'indique une faille de Kraken, de Crypto.com ou d'OKX. Les retraits proviennent des comptes d'un seul client.

Là où une liste d'adresses autorisées tient, et là où elle cède

Une liste d'adresses autorisées (allowlist) permet à un compte de ne retirer des fonds que vers des adresses approuvées à l'avance. La trace scinde ce vol en deux cas, qui sollicitent ce réglage de manière différente.

Les 11 portefeuilles déjà connus relèvent du cas qu'une allowlist ne peut pas couvrir. S'ils étaient déjà approuvés, les transferts vers eux passeraient le contrôle, car le réglage restreint l'adresse sans rien dire de qui en détient les clés aujourd'hui.

Les quatre nouveaux portefeuilles, qui ont reçu 17,27 millions de dollars, constituent le cas inverse. Les premiers paiements d'OKX comme de Kraken sont allés vers des adresses sans historique. Selon Bitquery, si les comptes utilisaient une allowlist, l'auteur du vol a réussi à y ajouter des adresses ; s'ils n'en avaient pas, les fonds pouvaient aller n'importe où. On ignore si ces comptes avaient activé cette fonctionnalité.

C'est pour ce second scénario que les contrôles supplémentaires des plateformes sont conçus :

  • OKX : en plus de sa fonctionnalité d'allowlist, un verrou séparé pour les nouvelles adresses bloque les retraits vers un destinataire nouvellement ajouté pendant 24 heures.
  • Crypto.com Exchange : une retenue de 24 heures s'applique aux adresses récemment ajoutées en liste blanche, et la désactivation de cette fonctionnalité prend encore 24 heures supplémentaires pour prendre effet.
  • Kraken : le verrouillage global des paramètres (Global Settings Lock) bloque les nouvelles adresses de retrait et les modifications des paramètres protégés. Le lever implique d'attendre un délai choisi par l'utilisateur, sauf s'il a configuré au préalable une clé maîtresse (Master Key), une credential distincte capable de passer outre.

Aucun de ces contrôles ne concerne un portefeuille déjà présent sur la liste. Un verrou qui ralentit les nouvelles adresses permet toujours à quiconque détient les bonnes clés d'utiliser une ancienne.

Convertis hors de l'USDC gelable en quelques heures

Les fonds retirés sont partis en USDC, que son émetteur, Circle, peut geler à n'importe quelle adresse — un pouvoir que les émetteurs ont déjà exercé lors de vols on-chain passés. ETH n'a pas d'émetteur, et DAI n'a pas de fonction de gel ; la conversion des stablecoins était donc le premier travail de l'auteur du vol.

Peu avant minuit UTC le 1er novembre, un portefeuille neuf a commencé à vendre des stablecoins via UniswapX, une enchère dans laquelle des sociétés de trading se concurrencent pour exécuter les ordres. En environ quatre heures, il a vendu 62,98 millions de dollars en USDC et USDT contre 27 553 ETH, soit environ 2 286 $ par pièce. Une autre branche des fonds est passée en DAI. Bitquery n'a observé aucun gel par Circle pendant la vente ni lors de sa vérification lundi, et indique ne pas savoir si quelqu'un a demandé à Circle d'agir.

À 13h47 UTC le 2 novembre, 78,27 millions de dollars se trouvaient toujours sur Ethereum dans des adresses que Bitquery relie à l'auteur du vol, dont la majeure partie hors de portée de tout émetteur. Environ 30,5 millions de dollars avaient déjà quitté ces adresses. Le plus gros départ, 8,12 millions de dollars, est allé vers une adresse de dépôt KuCoin que Bitquery estime être le compte mutualisé de Kyrrex, une plateforme européenne. LI.FI, un routeur de ponts et d'échanges, a reçu 4,34 millions de dollars, en partie via des portefeuilles à usage unique que la société d'analyse TRM associe à Wagyu, un service permettant des échanges vers Monero, une cryptomonnaie axée sur la confidentialité dont le registre est conçu pour masquer émetteurs, destinataires et montants. FixedFloat, une plateforme d'échange instantané ne nécessitant aucun compte, a reçu 1,32 million de dollars.

Voir l'ETH sur Ethereum ne donne à la victime aucun moyen de le récupérer. Ce qui reste accessible dépend de tiers ayant un pouvoir sur leur part : Circle pour l'USDC restant, KuCoin et Kyrrex pour le compte crédité par le dépôt, et les plateformes d'échange instantané pour l'identité des auteurs des ordres.

Ce qui pourrait trancher la question de l'accès

Kraken, qui a exécuté 178 des retraits, peut confirmer qui détient le compte et ce qui s'y est passé. Trois registres permettraient de tester la théorie de Bitquery : le moment où les quatre nouvelles adresses ont été ajoutées et l'existence éventuelle d'un verrou ou d'un délai à ce moment-là ; l'origine des retraits, via une session connectée ou via des clés API dotées de droits de retrait, des credentials permettant à un logiciel d'agir sur un compte sans connexion humaine ; et la modification éventuelle d'un paramètre de sécurité dans les heures précédant 12h25 UTC le 1er novembre.

Si ces journaux montrent que les nouvelles adresses sont passées parce qu'un délai d'attente avait été désactivé, la leçon portera sur les paramètres du compte. Si les paramètres étaient intacts et que les fonds ont néanmoins transité par d'anciens portefeuilles, la lecture d'une compromission des clés se renforcera. Le signal public le plus proche est plus étroit : Circle gèlera ou non les 3,74 millions d'USDC encore détenus, pour l'essentiel dans cinq portefeuilles, avant que l'auteur du vol ne les déplace.

Vérifier qui peut dépenser depuis chaque adresse enregistrée

Pour quiconque détient d'importants soldes sur des plateformes, cette trace plaide pour un audit des listes de retrait selon le détenteur des clés plutôt que selon l'adresse. Pour chaque destination enregistrée, la question est de savoir quel téléphone, ordinateur portable, extension de navigateur ou service peut signer pour elle aujourd'hui, et si ce même appareil contient aussi les identifiants de la plateforme. Le point de Bitquery est qu'une seule intrusion dans un tel appareil ouvre les deux.

Les défenses qu'il suggère découlent de ce constat : une clé matérielle pour la connexion et pour les portefeuilles figurant sur l'allowlist, l'activation du délai d'attente pour les nouvelles adresses, et la même vigilance sur les portefeuilles autorisés que sur le compte lui-même. Un paiement atterrissant dans un portefeuille que vous avez cessé d'utiliser est un signal d'alerte. Coindoo a documenté une faille similaire lorsque d'anciens portefeuilles ont été vidés après que des traders ont cessé d'utiliser un bot — une adresse à laquelle vous ne pensez plus peut toujours être accessible à quelqu'un capable d'en dépenser les fonds.