À propos d'Unlukey

Unlukey est un projet de recherche collaboratif sur les vulnérabilités de génération faible dans les wallets de cryptomonnaies.

Motivation

Nos recherches sur Ill Bloom, Coldcard et d’autres vulnérabilités de génération faible de seed nous ont appris qu’il reste encore beaucoup à faire pour protéger les utilisateurs de ce type d’attaques. Nous avons décidé de nous attaquer à ce problème non seulement parce qu’il est très probable que de nouvelles vulnérabilités de ce type soient exploitées à l’avenir, mais aussi parce qu’il existe encore des victimes exposées à des vulnérabilités déjà découvertes.

Avertir les utilisateurs concernés

Avertir les utilisateurs de wallets générés à partir de phrases de récupération vulnérables est difficile. Si un seul produit est concerné, les canaux officiels du fournisseur peuvent être utilisés pour joindre les utilisateurs. Cependant, dans des cas comme Ill Bloom, de nombreux wallets concernés avaient été générés par des applications abandonnées, mais leurs utilisateurs avaient importé les mnémoniques vulnérables dans d’autres applications. Avec le temps, les utilisateurs peuvent ne plus savoir quel logiciel a généré à l’origine leur phrase de récupération.

Cela rend la divulgation par le fournisseur d’origine insuffisante. Une phrase de récupération peut rester en usage longtemps après la disparition du wallet qui l’a générée. Comme la même phrase peut se retrouver dans un autre wallet, la détection et l’alerte doivent fonctionner partout où la phrase est actuellement utilisée, pas seulement là où elle a été créée à l’origine.

Un mécanisme de détection partagé permet à plusieurs systèmes d’avertir les utilisateurs concernés dès qu’une vulnérabilité est connue.

Avantage des défenseurs

Il existe également un avantage de timing pour les défenseurs. Nous avons observé des cas où des attaquants ont vidé des fonds dérivés d’une phrase de récupération vulnérable sur une blockchain, alors que les fonds associés à la même phrase restaient intacts sur une autre. Exploiter des seeds vulnérables à grande échelle nécessite que les attaquants génèrent des seeds candidates, dérivent des comptes et recherchent des fonds sur plusieurs blockchains. Ce processus est coûteux en calcul et prend du temps, ce qui crée une opportunité pour les défenseurs d’identifier les utilisateurs concernés et de les avertir avant que les attaquants ne découvrent tous les fonds associés.

Protection à long terme

Une fois qu’une phrase de récupération est créée avec une entropie insuffisante, le risque peut persister et affecter les dépôts futurs. Les utilisateurs concernés qui ne sont pas victimes d’une attaque de vidage coordonnée initiale peuvent continuer à utiliser des wallets vulnérables pendant des années, jusqu’à ce que leurs soldes dépassent le seuil minimum d’un attaquant ou que de nouveaux attaquants exploitent la même vulnérabilité avec une stratégie différente. Certaines erreurs, comme utiliser directement le générateur de nombres aléatoires non sécurisé d’une plateforme pour dériver l’entropie, peuvent se reproduire dans de nouvelles applications ou être introduites lors de la mise à jour d’une dépendance. Un système de détection intégré aux wallets et mis à jour avec chaque variante connue de génération d’entropie non sécurisée peut détecter rapidement de nouveaux cas et éviter des dégâts supplémentaires.

Couverture

  • Une vulnérabilité d’aléa faible dans le firmware Coldcard faisait générer les phrases de récupération par un PRNG logiciel au lieu du RNG matériel, réduisant leur entropie effective et permettant aux attaquants de découvrir des phrases de récupération vulnérables et de vider les fonds.

    Espace de recherche 22–72 bits
    En savoir plus
  • Une vulnérabilité d’aléa faible dans CryptoJS faisait générer par les applications de portefeuille concernées des phrases de récupération BIP39 avec une entropie considérablement réduite, permettant aux attaquants de découvrir des phrases de récupération vulnérables et de vider les fonds.

    Espace de recherche 39–47 bits
    En savoir plus