De multiples vulnérabilités zero-day nommées « BitForge » dans la mise en œuvre de protocoles cryptographiques largement utilisés tels que GG-18, GG-20 et Lindell 17 ont affecté les fournisseurs de portefeuilles de crypto-monnaie populaires, notamment Coinbase, ZenGo, Binance et bien d’autres.

Ces vulnérabilités pourraient permettre aux attaquants de voler des actifs numériques stockés dans des portefeuilles impactés en quelques secondes sans nécessiter d’interaction avec l’utilisateur ou le fournisseur.

Les failles ont été découvertes par l’équipe de recherche sur la cryptographie Fireblocks en mai 2023, qui les a collectivement nommées « BitForge ».

Aujourd’hui, les analystes ont publiquement divulgué BitForge dans la présentation BlackHat « Small Leaks, Billions Of Dollars: Practical Cryptographic Exploits That Undermine Leading Crypto Wallets », date à laquelle Coinbase et ZenGo ont appliqué des correctifs pour résoudre le problème.

Cependant, Fireblocks indique que Binance et des dizaines d’autres fournisseurs de portefeuilles restent vulnérables à BitForge, Fireblocks créant un vérificateur d’état pour les projets afin de vérifier s’ils sont exposés à des risques dus à des implémentations incorrectes du protocole de calcul en plusieurs parties (MPC).

La faille BitForge
La première faille (CVE-2023-33241) découverte par Fireblock affecte les schémas de signature de seuil (TSS) GG18 et GG20, qui sont considérés comme pionniers et également fondamentaux pour l’industrie du portefeuille MPC, permettant à plusieurs parties de générer des clés et de cosigner des transactions.

Les analystes de Fireblock ont découvert qu’en fonction des paramètres d’implémentation, il est possible pour un attaquant d’envoyer un message spécialement conçu et d’extraire des fragments de clé en morceaux de 16 bits, récupérant l’intégralité de la clé privée du portefeuille en 16 répétitions.

La faille provient d’un manque de vérification du module de Paillier (N) de l’attaquant et de l’état de son chiffrement basé sur l’existence de petits facteurs ou biprimes.

« Si elle est exploitée, la vulnérabilité permet à un acteur menaçant d’interagir avec les signataires du protocole TSS pour voler leurs fragments secrets et finalement obtenir la clé secrète principale », lit-on dans le rapport de Fireblock.

« La gravité de la vulnérabilité dépend des paramètres de mise en œuvre, donc différents choix de paramètres donnent lieu à différentes attaques avec différents degrés d’efforts/ressources nécessaires pour extraire la clé complète. »

La vulnérabilité découverte dans le protocole Lindell17 2PC (CVE-2023-33242) est de même nature, permettant à un attaquant d’extraire la totalité de la clé privée après environ 200 tentatives de signature.

La faille réside dans la mise en œuvre du protocole 2PC plutôt que dans le protocole lui-même et se manifeste par une mauvaise gestion des abandons par les portefeuilles, ce qui les oblige à continuer à signer des opérations qui exposent par inadvertance des morceaux de la clé privée.

« L’attaque profite d’une mauvaise gestion des abandons par les portefeuilles utilisant le protocole 2PC étant donné un » choix impossible « entre l’abandon des opérations, ce qui est une approche déraisonnable étant donné que les fonds peuvent être bloqués dans le portefeuille, ou de continuer à signer et à sacrifier des bits supplémentaires du clé avec chaque signature. » – Pare-feu
L’attaque qui exploite cette faille est « asymétrique », c’est-à-dire qu’elle peut être exploitée en corrompant le client ou le serveur.

Dans le premier scénario, l’attaquant corrompt le client pour lui faire envoyer des commandes au serveur en son nom, ce qui révélera une partie de la clé secrète du serveur.

Fireblock indique que 256 tentatives de ce type sont nécessaires pour collecter suffisamment de données pour reconstruire l’intégralité du partage secret du serveur.

Cependant, comme il n’y a pas de limite en place, l’attaquant peut pousser le serveur avec de nombreuses requêtes qui se succèdent rapidement, de sorte que l’attaque peut être effectuée en peu de temps.

Le deuxième scénario cible la clé secrète du client, en utilisant un serveur compromis pour la récupérer via des messages spécialement conçus. Encore une fois, 256 requêtes sont nécessaires pour une extraction complète de la clé.

Les analystes ont également publié deux exploits de preuve de concept (PoC) pour chacun des protocoles sur GitHub.

Coinbase a déclaré à Breachtrace avoir corrigé les failles de sa solution Wallet as a Service (WaaS) après la divulgation des failles, remerciant les chercheurs pour leur divulgation responsable.

« Nous tenons à remercier Fireblocks d’avoir identifié et divulgué ce problème de manière responsable. Bien que les clients et les fonds de Coinbase n’aient jamais été à risque, le maintien d’un modèle cryptographique totalement sans confiance est un aspect important de toute mise en œuvre de MPC », a déclaré Jeff Lunglhofer, directeur de la sécurité de l’information chez Coinbase. « Le fait de placer la barre haute pour la sécurité de l’industrie protège l’écosystème et est essentiel à l’adoption plus large de cette technologie. »

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *