Une question (peut-être plus d’une) à 1,4+ million de dollars

Vendredi 21 février 2025 le monde crypto a été secoué par l’annonce de Ben Zhou, le PDG de Bybit, la plateforme crypto de Dubaï, deuxième au monde en termes de volumes (après Binance) qui rendait public une attaque de hackers sur un cold wallet (un portefeuille hors ligne: oui, vous avez bien lu, il s’agit d’un portefeuille non connecté à internet) capable de soustraire des ETH en staking, des mETH et d’autres tokens ERC20, pour un total de plus de 1,4 milliard de dollars, le plus grand vol de l’histoire des crypto-monnaies.

L’histoire de ces attaques commence avec MtGox, une crypto-bourse japonaise piratée à deux reprises, la première en 2011, la seconde en 2014. Le fait est que ces attaques (qui ont soustrait des bitcoins) ont reposé sur des failles dans les protocoles de sécurité de la bourse, des failles qui ont été largement dissimulées pendant plus de dix ans. Et pourtant, les vols continuent. En effet, si l’on regarde les rapports des sociétés de logiciels spécialisées dans l’analyse des blockchains comme Chainalysis, les vols dans le monde des actifs numériques se produisent continuellement, mais celui-ci a évidemment fait les gros titres en raison de son ampleur et en partie parce qu’il semble avoir été perpétré par un groupe bien connu de hackers coréens « Lazarus Group » impliqué dans d’autres cas notoires et récents : Ronin Network, DMM Bitcoin et WazirX, tous caractérisés par la même méthode.

Dans le cas de MtGox, le « complice » de l’attaque de 2014 fut un bug dans le protocole de validation des transactions, connu sous le nom de transaction malleability. Techniquement, l’attaque a été rendue possible parce que le hachage utilisé pour identifier un bloc de transactions et celui utilisé pour la signature numérique (c’est-à-dire la commande de transfert de fonds, que seul le détenteur de la clé privée peut donner) sont effectués sur deux ensembles d’informations différents. Probablement, le hacker a demandé à MtGox le remboursement des bitcoins qu’il avait déposés sur la bourse, laquelle a émis une transaction de remboursement avec un certain identifiant de hachage. La transaction était interceptée par le hacker qui en modifiait le contenu de manière à altérer le code de hachage de la transaction, sans que la signature numérique ne perde sa validité. Il remettait ensuite en réseau la transaction modifiée pour réclamer auprès de MtGox l’inexécution de la transaction de remboursement. La bourse, une fois constaté que la transaction de remboursement (le hacker ayant modifié l’identifiant) n’avait pas été validée, en émettait une nouvelle avec un code de hachage différent pour éviter le double-dépense, et l’attaque se poursuivait jusqu’à soustraire environ 7 % de tous les bitcoins en circulation à l’époque.

Dans le cas de Bybit, l’attaque s’est concentrée sur l’Ether et a exploité une innovation qui n’existait pas à l’époque de MtGox : le smart contract. Voyons alors de comprendre comment les pirates informatiques ont réussi à voler ces actifs numériques. Une analyse précise et complète a été fournie par SlowMist, une société de cybersécurité spécialisée dans les blockchains qui offre ses services aux acteurs les plus connus du secteur. Nous tenterons d’expliquer l’attaque de manière intuitive. Tout d’abord, elle s’est déroulée en trois phases:

1) Une transaction bénigne du cold wallet vers un hot (ou warm, cela importe peu) wallet;

2) La transaction bénigne contenait la faille (le cheval de Troie) qui a déclenché l’exécution d’un contrat malveillant;

3) Le contrat malveillant a transféré les tokens vers une adresse à partir de laquelle ils ont été répartis et retransférés vers 40 adresses différentes, puis retransférés pour en effacer les traces.

La question se pose alors: comment a-t-il été possible de déclencher le contrat malveillant dans la phase 2? Pour des raisons de sécurité (protection des clés privées essentiellement), Bybit, comme de nombreux autres opérateurs, utilise GnosisSafe, un portefeuille smart contract qui prévoit une procédure de signature multiple pour autoriser une transaction, dans ce cas une transaction d’un portefeuille hors ligne vers un portefeuille en ligne. En termes simples, l’utilisation de la clé privée pour effectuer une transaction nécessite plus d’une confirmation (dans ce cas, il en fallait trois). Lorsqu’une transaction est déclenchée sur le réseau Ethereum, les paramètres à approuver (avec la signature numérique) sont « to » (le destinataire) et « data » (l’objet de la transaction). Cependant, GnosisSafe prévoit un autre paramètre, « operation », qui ne peut prendre que deux valeurs: « 0 », qui permet d’appeler la fonction execTransaction qui exécute le contrat souhaité par l’utilisateur; ou il peut prendre la valeur « 1 », auquel cas GnosisSafe n’appelle plus execTransaction, mais DelegateCall, c’est-à-dire une fonction qui active un autre contrat: et c’est exactement ainsi que les hackers ont implanté le contrat malveillant, qui a pris le contrôle du cold wallet en permettant l’exécution de deux fonctions: sweepETH et sweepERC20 (nous ne pensons pas qu’il soit nécessaire d’expliquer ce que ces deux fonctions ont fait).

À ce stade, on peut se demander: comment se fait-il que trois signataires différents (qui sont des opérateurs réels) n’aient pas remarqué le changement de « 0 » à « 1 » du paramètre « operation »? On peut soupçonner que le paramètre a été « obscurci » (représenté comme un zéro aux yeux de l’opérateur alors qu’en réalité c’était un un : pas simple à réaliser !), mais peut-être existe-t-il une explication encore plus banale: pensons à quand nous accédons à notre e-banking plutôt qu’à notre webmail; combien vérifient la barre d’URL pour s’assurer que le protocole est https au lieu du simple (et peu sécurisé) http ou que l’adresse est correctement saisie (le changement d’une seule lettre pourrait échapper à n’importe quel regard)?


Et surtout, combien oublient de mettre en place l’authentification à deux facteurs qui offre néanmoins une sécurité accrue? Probablement que trois contrôles pour un paramètre rarement utilisé ne sont pas efficaces.

Pourtant, sur le site Reddit, l’hypothèse circule selon laquelle les niveaux de sécurité de Bybit n’étaient pas au plus haut niveau (comme c’est le cas pour d’autres plateformes telles que Fireblocks ou Coinbase) afin de ne pas sacrifier la rapidité des transactions.

Entre-temps, les enquêtes se poursuivent afin de tenter de tracer le parcours des tokens volés et des récompenses sont même offertes pour inciter des hackers éthiques à coopérer dans la recherche. Toutefois, nous ne pouvons pas ne pas souligner le scénario habituel mis en scène: l’annonce de l’attaque par la direction de la plateforme attaquée (voir le communiqué sur le site de Bybit), souvent faite d’abord sur les réseaux sociaux (comme X par exemple), l’assurance que la situation est sous contrôle et que la bourse dispose des moyens de dédommager les utilisateurs. Exactement ce qu’a fait Ben Zhou: le cold wallet attaqué est unique; les autres sont en sécurité; Bybit dispose des moyens de dédommager, etc.

Nous continuons à soutenir le même point. Les bourses crypto sont des structures centralisées (qui n’ont donc rien à voir avec la philosophie de base des blockchains: la décentralisation) tout à fait semblables aux bourses traditionnelles que nous connaissons, avec la différence que, plutôt que de transférer des actifs hors bourse via des bases de données et des connexions centralisées, elles le font en utilisant les blockchains, ce que d’ailleurs pourraient également faire les bourses traditionnelles. Nous nous demandons donc pourquoi ces structures ne sont pas régulées et surveillées comme toutes les bourses sur lesquelles nous opérons; pourquoi personne ne peut contrôler la capitalisation et les montants réels que ces bourses mettent en garantie aux investisseurs, et il faut se fier à la parole de la direction? Pourquoi – s’ils existent réellement – personne n’impose à toutes ces structures (sans aucune exception) les normes de sécurité les plus élevées existantes?

 

Disclaimer: Le présent article exprime l’opinion personnelle des collaborateurs de Custodia Wealth Management qui l’ont rédigé. Il ne s’agit pas de conseils ou de recommandations d’investissement, de conseils personnalisés et il ne doit pas être considéré comme une incitation à effectuer des transactions sur des instruments financiers.