Un coffre-fort à bitcoins percé – Une faille 0day incroyable révélée chez Ledger

Collectionnez les articles du JDC en NFT

Collecter cet article

Ledger pris de court par une faille – Le développeur répondant au pseudo de Monokh a rendue publique une importante faille de sécurité chez les appareils de Ledger. Cette vulnérabilité peut être utilisée pour voler les fonds de l’utilisateur.

Présentation de l’attaque

L’attaquant peut transférer les bitcoins d’un utilisateur, en lui donnant l’impression qu’il réalise une transaction d’un montant plus faible dans une autre cryptomonnaie. Les cryptomonnaies concernées sont les forks de Bitcoin (ex. : Litecoin, Bitcoin Cash, etc.)

Le problème est le suivant : l’appareil de Ledger expose la clé publique Bitcoin (mainnet) de l’utilisateur et la fonctionnalité de signature en dehors de l’application dédiée.

Pour manipuler une crypto donnée, l’utilisateur doit installer l’application correspondante sur son appareil. Ainsi, il est courant de se retrouver avec plusieurs applis sur son Ledger. Il faut donc que les applications soient isolées. Cela signifie qu’une seule application doit être déverrouillée pour communiquer avec le réseau.

Le canal de communication avec l’extérieur permet d’utiliser diverses fonctions, comme :

  • L’export des clés publiques ;
  • La signature des messages ;
  • La confirmation des transactions.

Les applications verrouillées doivent donc être intouchables par les messages externes. Malheureusement, ce n’est pas toujours le cas. En effet, pour Bitcoin et ses forks, l’appareil expose ces fonctions.

Ledger nano X

Déroulé de l’attaque

Le proof of concept se trouve sur le dépôt Github de Monokh.

Une fois l’application déverrouillée (par exemple, Litecoin), l’attaquant pourra créer une transaction Bitcoin dûment signée lorsque l’utilisateur confirmera sa transaction Litecoin.

  1. Tout d’abord, ouvrir l’application Litecoin.
  2. En utilisant la fonction getWalletPublicKey(’84’/0’/0’/’).publicKey, il est possible de retrouver les adresses Bitcoin Segwit de l’utilisateur.
  3. Ensuite, il faut réunir les UTXO, et programmer la transaction Bitcoin pour dépenser les sorties.
  4. Puis, il faut envoyer la requête createPaymentTransactionNew(…) afin de demander à l’utilisateur de confirmer la transaction.
  5. Enfin, l’attaquant pourra recevoir la transaction Bitcoin signée par l’utilisateur à son insu.

L’appareil va donc demander à l’utilisateur de confirmer sa transaction Litecoin, mais ce sera la transaction Bitcoin de l’attaquant qui sera signée et diffusée.

Cela pose un gros problème de sécurité. Ce déverrouillage intempestif permet à un attaquant de connaître toutes les clés publiques Bitcoin associées au wallet et également de mener l’attaque décrite ci-dessus.

Monokh propose plusieurs exemples pour mener cette attaque :

  • Vous êtes invité à essayer un nouveau service sur le testnet de Bitcoin, et ce dernier va en fait transférer les « vrais » bitcoins de votre portefeuille.
  • Vous échangez des coins de faible valeur sur une plateforme d’échange douteuse. L’exchange peut lire vos soldes Bitcoin et, si l’opportunité se présente, voler vos BTC.
  • Vous pourriez être ciblé avec une version modifiée de Ledger Live, qui envoie vos bitcoins au lieu d’altcoins. Par exemple, lors d’un échange de pair à pair d’altcoins.

Ledger Live Interface

Comment se protéger ?

Les applications doivent donc être complètement isolées au regard des chemins de dérivation. De même, aucune information sur les clés publiques de l’utilisateur ou les fonctionnalités de signature ne devraient être exposées.

En l’état :

  • Les utilisateurs des appareils de Ledger ne devraient pas utiliser d’applications dédiées aux altcoins concernées ;
  • Ou sinon, ils devraient n’utiliser qu’une seule application par appareil.

La réponse de Ledger

Monokh a informé Ledger de cette faille de sécurité en janvier 2019. Ledger ne l’aurait pas prise au sérieux :

  • Le problème a été réduit à un problème de confidentialité ;
  • Ledger n’a pas communiqué sur ses éventuels correctifs ;
  • Ledger aura attendu un an et demi pour reconnaître le problème ;
  • Monokh n’a eu aucune réponse et la communication avec Ledger fut très lacunaire.

Ledger-live

Le développeur semble dépité du manque de sérieux dont a fait preuve l’entreprise face à une brèche de sécurité aussi grave. Le fait d’avoir rendu toutes ces informations publiques a fini par faire réagir le fabricant de hardware wallets.

Dans ce bulletin daté du mardi 4 août, Ledger Donjon décrit brièvement le problème : les chemins de dérivation sont trop permissifs.

Ledger insiste sur le fait que ce design est un compromis entre sécurité maximale et confort d’utilisation. Enfin, l’entreprise assure que le problème sera réglé. L’utilisateur sera informé lorsqu’une application correspondant à un fork de Bitcoin tente d’effectuer une dérivation sur un chemin inhabituel. Dans le futur, si cela ne pose pas de problème de compatibilité, les chemins de dérivation seront restreints.

Ledger a remercié le développeur Monokh pour sa contribution.

Un coup dur pour Ledger ?

Cette faille de sécurité est un coup dur pour le fabricant de portefeuilles physiques. Bien qu’elle ne soit pas d’une extrême facilité à exploiter, elle est bien réelle. Le délai au bout duquel Ledger a pris en compte ce problème ne véhicule pas une très bonne image. C’est d’ailleurs sur un ton assez acerbe que Monokh conclut son article.

« La conclusion la plus choquante est peut-être la négligence de Ledger concernant le traitement de ce problème. Pour un problème de cette gravité, ne pas tenter de le résoudre, ne pas communiquer et éviter sa divulgation est irrespectueux envers la confiance que les gens (y compris moi-même) leur accordent. […] Je les exhorte à reconsidérer leur attention à la sécurité. Tel devrait être l’engagement d’un fabricant de portefeuilles matériels. » Monokh, Ledger App Isolation Bypass

Morgan Phuc

Cofounder @ 8Decimals & Partner @ Node Guardians - Making crypto great again - Journal du Coin / BitConseil

Commentaires

5 responses à “Un coffre-fort à bitcoins percé – Une faille 0day incroyable révélée chez Ledger


Amélia
c'est ainsi que je viens de jeter mon ledger nano x à la poubelle, j'ai préféré me faire un wallet papier à l'ancienne maintenant plus de problème
Répondre · Il y a 4 ans

Reponse
Très mauvaise idée le papier ! Préférez les plaques en métal type cryptosteel ou autres, qui ne peuvent pas être détruites aussi facilement. De plus, sans un Ledger ou appareil d'une marque concurrente, il faudra penser à utiliser un environnement hors ligne très sécurisé (par exemple Tails), ce qui complique énormément les choses pour le commun des mortels. Bref, inutile de dramatiser pour si peu tout en dégradant notablement sa sécurité.
Répondre · Il y a 4 ans

Jonathan
Ça n'a pas trop de sens. Le papier ne peut pas signer de transaction. Il faut toujours disposer d'un setup sécurisé pour signer et diffuser sa transaction. Reprenez votre ledger et gardez uniquement l'application bitcoin. Ça ne posera plus de problème.
Répondre · Il y a 4 ans

Godilla
Retour de bâton bien mérité ! À force de se la pêter en dénigrant la concurrence (trouver des failles chez Trezor et les autres), voilà ce qui arrive. Au moins, Trezor est plus transparent que Ledger ! Il est temps d'aller vers des systèmes plus ouvert et open source que Ledger (COLDCARD, par exemple). D'autant plus insultant que leur base de données client se trouve aussi dans la nature ! Il va falloir déménager pour ne pas risquer un home invasion et se faire braqué ! Cette compagnie est décidément misérable en termes de respect du client.
Répondre · Il y a 4 ans

Reponse
C'est clair qu'en un très court laps de temps et en quelques événements, Ledger va perdre la confiance d'une très grande partie de sa clientèle... Le pire est qu'il ne s'agit pas d'une faille 0day comme précisée dans le titre, mais déjà prévue et corrigée en 2014 avec un BIP afin que les futurs hardware wallets ne se fassent pas avoir de la sorte... Bref, c'est inexcusable !
Répondre · Il y a 4 ans

Votre email ne sera pas publié. En publiant un commentaire, vous acceptez notre politique de confidentialité.


Recevez un condensé d'information chaque jour