Un attaquant a vidé plus de 1 000 bitcoin (environ 70 millions de dollars) de près de 1 200 portefeuilles qui utilisaient le matériel Coldcard pour générer une graine de clé, a révélé Galaxy Research vendredi. Le chiffre est nettement supérieur aux estimations initiales faites par l’entreprise 24 heures plus tôt. Les pertes potentielles concernent tous les utilisateurs de Coldcard qui ont créé une graine entre mars 2021 et la date actuelle.

Des estimations de Galaxy Research indiquent que 1 082,65 bitcoin ont été retirés de 1 196 adresses, la majorité des fonds ayant été transférée entre 01:10 et 01:50 UTC le 30 juillet, sur une fenêtre de 40 minutes. Ce chiffre dépasse largement le vol de 594 BTC (38 millions de dollars) signalé dans environ 500 portefeuilles à signature unique. Le tout s’est produit en 40 minutes. Chacune des adresses concernées détenait plus de 0,15 BTC. Plus de 562 BTC ont été transférés vers une adresse particulière qui n’a encore vu aucune transaction.

Le rapport a mis en avant le travail des équipes d’ingénierie et de sécurité de Block, qui ont reconnu un schéma dans le mouvement de ces fonds. « La trace des transactions on-chain identifiées par d’autres chercheurs, dont Clay Garrett, pointe correctement vers le voleur. Cependant, elle n’identifie pas la vulnérabilité qui a permis cette particularité de vol », a indiqué l’entreprise, avertissant que « de futures attaques pourraient viser n’importe quelle adresse Coldcard générée à l’aide du micrologiciel vulnérable ».

Comment le RNG (générateur de nombres aléatoires) de Coldcard s’est-il trompé ?

Coldcard est un portefeuille matériel qui utilise un ordinateur déconnecté (air-gapped) pour stocker le bitcoin de l’utilisateur. L’appareil emploie une méthode de signature cryptographique qui devrait, en théorie, résister à toute tentative d’interception par un tiers. Il nécessite une phrase mnémonique de 24 mots pour la génération de la graine, choisie parmi un large ensemble de mots possibles. En réalité, l’entropie réelle d’un portefeuille Coldcard était plus faible que prévu.

Les équipes ingénierie et sécurité de Block ont publié un rapport détaillant le problème. Dans le micrologiciel Coldcard, il y avait deux occurrences d’une fonction qui générait des nombres aléatoires avec la même signature cryptographique, y compris l’implémentation matérielle écrite par Coinkite et une version logicielle reprise de MicroPython.

Une vérification effectuée au moment de la compilation confirmant la présence du paramètre d’environnement n’a pas pu activer la fonctionnalité, ce qui a amené certains appareils à utiliser le générateur de nombres aléatoires logiciel compromis. Cette vulnérabilité a été corrigée dans la toute dernière version 4.21. Les versions concernées remontent à la première publication 4.0.0 de mars 2021. L’aléatoire compromis était basé sur le numéro de série et l’horloge du processeur, qui ne sont pas considérés comme sûrs.

Qui est affecté par la vulnérabilité ?

Le premier signalement du problème de sécurité est venu de Coinkite, qui a publié une page d’assistance pour les utilisateurs ayant utilisé le matériel Mk3 avec un micrologiciel 4.0.1 ou supérieur. La société a mis à jour l’avis pour inclure également certains appareils Mk4, Mk5 et Coldcard Q, et a publié des mises à jour de micrologiciel d’urgence pour tout le matériel concerné.

Selon des informations, Coinkite a mis à jour son avis officiel pour reconnaître que tous les appareils existants sont potentiellement vulnérables à cette attaque, les mises à niveau du micrologiciel n’apportant qu’une sécurité partielle. En théorie, tous les portefeuilles contenant des phrases mnémoniques générées avant la publication de la version 4.21 sont à risque, d’après l’avis de Coinkite.

La vulnérabilité ne touche pas seulement la génération de la graine. Le chiffrement de la « paper wallet » de Coldcard, les outils de découpage des clés, la génération de masques et la fonctionnalité Key Teleport utilisent tous la même fonction de hasard.

Coinkite accuse l’IA d’avoir permis le vol

Le PDG de Coinkite, Rodolfo Novak (NVK), a publié des excuses concernant le problème de sécurité, reconnaissant que la société était responsable de l’erreur dans le processus de génération de la phrase mnémonique. « Nous avons pleinement assumé la responsabilité du bogue du micrologiciel qui a conduit à cette situation », a-t-il déclaré, précisant que la revue initiale de la vulnérabilité n’avait pas permis de repérer le problème. Novak a spéculé que l’attaquant aurait pu utiliser l’IA pour identifier la vulnérabilité, affirmant que « c’est un rappel marquant du nouveau paradigme dans lequel nous entrons avec l’IA ».

Il convient de noter que Coinkite semble s’attaquer à lui-même, puisque l’article Decrypt indique que l’entreprise a utilisé un système d’IA pour analyser son propre code à la recherche de problèmes de sécurité potentiels. On rapporte que cet outil a été utilisé quelques mois plus tôt, Coinkite affirmant que « cela n’a pas trouvé cette vulnérabilité, ni quoi que ce soit d’autre d’important ». Attaquants et défenseurs disposent tous des mêmes outils, mais dans ce cas, il semble qu’ils aient tous manqué leur tâche.

Que dois-je faire si je suis propriétaire d’un portefeuille Coldcard ?

Coinkite recommande aux utilisateurs de mettre à jour le micrologiciel de leurs appareils et de créer de nouvelles phrases mnémoniques. Elle conseille également de réaliser des transactions d’essai vers la nouvelle adresse de portefeuille avant de transférer des fonds importants. Les utilisateurs doivent conserver leur ancienne graine comme sauvegarde, car ce document sera nécessaire pour retrouver l’accès aux fonds après la transaction.

Le prix du bitcoin (BTC) a à peine bougé à la suite de cette révélation. Le cours du BTC évolue autour de 63 000 dollars vendredi.

Si vous lisez ceci, vous avez déjà une longueur d’avance. Gardez-la grâce à notre newsletter.