
Une faille de cinq ans dans la génération de seeds de Coldcard a relancé les appels à des tests indépendants du firmware des wallets matériels après que des attaques présumées ont siphonné près de 90 millions de dollars de Bitcoin de milliers de wallets.
Nick Percoco, responsable de la sécurité de Kraken, a déclaré dimanche sur X que l'incident devrait servir d'avertissement pour l'industrie des wallets matériels, arguant que les fabricants ne devraient pas être les seules parties à vérifier la manière dont les phrases de récupération des wallets sont générées.
Il a indiqué que le firmware de production devrait subir des tests indépendants pour confirmer que la source de hasard approuvée est bien celle utilisée lors de la création des secrets de wallet.
Selon la dernière analyse de la blockchain de Galaxy Research, des attaquants présumés ont maintenant balayé plus de 1 800 BTC de plus de 5 200 adresses de victimes potentielles à travers quatre vagues d'attaques observées, bien que la société ait souligné que ces chiffres sont des estimations on-chain plutôt que des pertes confirmées. Coinkite n'a pas vérifié chaque wallet affecté, et les données de la blockchain seules ne peuvent pas déterminer si un seul acteur a mené toutes les attaques.
Coinkite a révélé jeudi que la vulnérabilité remontait à mars 2021, lorsque la société a migré une partie de son firmware tout en intégrant une nouvelle bibliothèque cryptographique.
Au lieu d'utiliser le générateur de nombres aléatoires véritable basé sur le matériel de Coldcard pour créer les seeds des wallets, le firmware mis à jour a accidentellement appelé un générateur pseudo-aléatoire déterministe plus faible fourni par MicroPython.
Selon le rapport post-mortem de Coinkite, le générateur de nombres aléatoires prévu restait actif ailleurs dans le firmware, permettant aux revues de code de vérifier sa présence sans révéler que la création du wallet reposait sur une source d'entropie différente.
La société a déclaré qu'elle ignorait que le générateur MicroPython existait dans le chemin de code pertinent avant l'enquête. Bien que le générateur de nombres aléatoires matériel ait continué à fonctionner pour d'autres fonctions, il n'était plus responsable de la génération de nouveaux secrets de wallet.
L'équipe d'ingénierie et de sécurité Bitcoin de Block est parvenue indépendamment à la même conclusion lors de son examen technique. La société a déclaré que le firmware affecté invoquait la solution de secours déterministe de MicroPython au lieu du générateur de nombres aléatoires matériel STM32 lors de la création des seeds de wallet. Bien que Block ait déclaré n'avoir pas achevé les tests empiriques complets de chaque appareil, elle a décidé de divulguer ses conclusions car des rapports de vols actifs avaient déjà fait surface.
Coinkite estime que les seeds créées sur les appareils Mk2 et Mk3 affectés peuvent contenir environ 40 bits d'entropie effective, tandis que les modèles Mk4, Mk5 et Q affectés peuvent contenir environ 72 bits au lieu des 128 bits prévus.
En utilisant l'incident Coldcard comme exemple, Percoco a soutenu que la certification des wallets matériels a négligé l'une des parties les plus importantes de la sécurité des wallets.
Il a déclaré que les utilisateurs doivent actuellement faire confiance aux fabricants pour la bonne implémentation de la génération de seeds, car aucun processus indépendant ne vérifie que le firmware de production appelle réellement la source d'entropie approuvée. Les certifications existantes, y compris les évaluations Common Criteria pour les éléments sécurisés, les revues CSPN et les audits sponsorisés par les fournisseurs, ne valident pas systématiquement cette relation, selon Percoco.
Pour illustrer cette lacune, il a cité la norme NIST SP 800-90B, la norme américaine régissant la conception et la validation des générateurs de nombres aléatoires véritables utilisés dans les systèmes cryptographiques, ainsi que le cadre BSI AIS-31 allemand, qui établit des exigences de test similaires. Il a soutenu qu'une vérification de bout en bout comparable n'existe actuellement pas pour les wallets matériels.
Percoco a également comparé le secteur à la sécurité des paiements, notant que les dispositifs de saisie de code PIN ne peuvent pas être expédiés sans tests de laboratoire indépendants, tandis que les modules cryptographiques du gouvernement américain exigent une validation de la source d'entropie avant approbation.
Alors que l'activité d'attaque se poursuivait ce week-end, Coinkite a déclaré avoir interrompu toutes les expéditions après avoir confirmé la vulnérabilité et détruit tous les appareils restants dans ses installations contenant le firmware affecté.
La société a néanmoins conseillé aux clients de ne pas jeter les appareils affectés, car ils pourraient devenir importants si les fonds volés étaient finalement récupérés par des procédures judiciaires. Coinkite a ajouté que son équipe juridique coordonnerait avec les forces de l'ordre dans plusieurs juridictions, le cas échéant.
Des mises à jour du firmware ont déjà été publiées pour chaque modèle affecté, y compris la version 4.2.0 pour Mk2 et Mk3, la version 5.6.0 pour Mk4 et Mk5, la version 1.5.0Q pour Coldcard Q, et les versions 6.6.0X et 6.6.0QX pour les versions Edge. Selon la société, l'installation du firmware mis à jour ne corrige que la création future de wallets et ne renforce pas les phrases de récupération générées avant le patch.
Pour cette raison, les utilisateurs concernés par l'avis sont invités à générer des phrases de récupération entièrement nouvelles après avoir mis à jour leurs appareils, à vérifier une adresse de réception, à envoyer une petite transaction test, et à migrer le solde restant seulement après avoir confirmé que le transfert a réussi.
Coinkite a déclaré que les wallets créés en utilisant au moins 50 lancers de dés équitables et privés ne sont pas considérés comme exposés par la seule faille de génération de nombres aléatoires. La société a ajouté qu'une phrase de passe BIP-39 forte et unique fournit une autre couche de protection mais ne supprime pas la faiblesse d'une seed déjà affectée, ce qui signifie que la migration reste la ligne de conduite recommandée.
Une analyse distincte de la blockchain de Galaxy Research indique que les attaques se sont poursuivies depuis que la vulnérabilité est devenue publique.
Alex Thorn, responsable de la recherche chez Galaxy, a identifié une quatrième vague d'attaques coordonnées présumées le 3 août, portant le total observé par la firme à environ 1 815,75 BTC sur 5 294 adresses de victimes potentielles si aucun des groupes d'adresses ne se chevauche. Thorn a décrit les wallets comme des "victimes probables de Coldcard" et a souligné que les chiffres proviennent de l'analyse de la blockchain plutôt que de registres d'appareils confirmés ou de conclusions des forces de l'ordre.
Galaxy a également signalé que l'activité d'attaque a atteint 13,8 balayages de wallets par bloc lors de la dernière vague, contre une ligne de base de 0,3 balayage par bloc avant l'incident. La firme a observé que la plupart des soldes des victimes étaient envoyés à des adresses nouvellement créées au lieu d'un seul wallet de collecte, tandis que certains fonds avaient déjà transité par des transactions de second niveau, rendant le Bitcoin volé plus difficile à tracer.
Selon Galaxy, les utilisateurs dont les fonds volés restent dans des transactions Bitcoin non confirmées peuvent encore avoir une opportunité limitée de diffuser une transaction de remplacement à frais plus élevés avant que les mineurs ne confirment le transfert original.
Citant la documentation de Bitcoin Core, la firme de recherche a noté que le "Replace-by-Fee" ne peut être tenté que tant que la transaction reste non confirmée et ne garantit pas la récupération même lorsque le propriétaire légitime contrôle toujours les clés affectées.





