Facile à voler et à encaisser, la cryptomonnaie est un des actifs numériques les plus attrayants pour les cybercriminels. D’ailleurs, les investisseurs sérieux utilisent souvent des portefeuilles physiques pour protéger leurs investissements en cryptomonnaie. Ce genre de portefeuille conserve les clés privées à distance des ordinateurs et des smartphones vulnérables et rend la signature des transactions beaucoup plus sûre. Malheureusement, posséder un portefeuille matériel ne garantit pas que les fonds sont en sécurité, et c’est ce qu’un de nos clients a appris à ses dépens.
Les symptômes du piratage
Les cybercriminels travaillent discrètement : en ce jour fatidique, une opération d’un montant conséquent et dont l’argent a été envoyé à quelqu’un d’autre apparaissait dans l’historique des transactions du portefeuille de cryptomonnaie. Pourtant, la victime n’avait effectué aucune transaction ce jour-là. De plus, le portefeuille de cryptomonnaie n’était même pas dans un port de
l’ordinateur !
La dissection du portefeuille
La victime avait acheté un portefeuille matériel assez connu, Trezor Model T. Ce dernier utilise un code totalement open source, qu’il s’agisse de celui du logiciel ou du hardware, et repose sur le célèbre microcontrôleur STM32F427.
Le fabricant de Trezor Model T a adopté diverses mesures de sécurité qui, en théorie, devraient efficacement protéger l’appareil contre les cybercriminels. L’emballage et le boîtier sont scellés par des stickers holographiques et le microcontrôleur utilise le mode de protection de lecture de la mémoire flash (RDP 2). Le chargeur d’amorçage (bootloader) vérifie la signature numérique du micrologiciel et affiche un message commun du micrologiciel avant de supprimer toutes les données du portefeuille si une anomalie est détectée. L’utilisateur doit saisir un code PIN, utilisé pour chiffrer l’espace de stockage, pour accéder à l’appareil et confirmer les transactions. Pourtant, ce système ne protège pas la clé d’accès principale, qui est souvent utilisée comme base pour générer la phrase secrète mnémonique. D’ailleurs, en plus du code PIN, vous pouvez protéger votre clé d’accès principale en choisissant un mot de passe, conformément à la proposition BIP-39.
Après y avoir jeté un coup d’œil rapide, le portefeuille que nous avons examiné semblait être exactement le même que l’original, et ne montrait aucun signe de sabotage. La boîte était vendue par un vendeur de confiance sur un site connu de petites annonces et les stickers holographiques de la boîte et du portefeuille étaient présents et en bon état. Lorsque nous l’avons allumé en mode mise à jour, le portefeuille a affiché qu’il utilisait la version 2.4.3 du micrologiciel et la version 2.0.4 du chargeur d’amorçage.
Rien ne semblait suspect lorsque nous avons manipulé le portefeuille. Toute les options fonctionnaient correctement et l’interface utilisateur était la même que celle de l’appareil original. Pourtant, comme nous savions qu’un vol avait été commis via cet appareil, nous avons continué nos recherches. C’est à ce moment-là que nous avons fait quelques découvertes intéressantes.
Nous avons immédiatement constaté que le fournisseur n’avait jamais sorti la version 2.0.4 du chargeur d’amorçage. L’historique des modifications du projet sur GitHub indique brièvement que cette version a été laissée de côté à cause de faux appareils. Après avoir lu cette déclaration si intrigante, nous avons évidemment pris un scalpel et commencé la dissection de l’appareil…
Le boîtier était dur à ouvrir : les deux parties étaient unies par beaucoup trop de colle et de ruban adhésif double-face contrairement au collage par ultrasons que Trezor utilise en usine. Encore plus curieusement, à l’intérieur il y avait un microcontrôleur complètement différent qui montrait des traces de soudage ! Au lieu du modèle original STM32F427, l’unité avait un STM32F429 et les mécanismes de protection de lecture de la mémoire flash du microcontrôleur étaient désactivés (RDP 0 au lieu de RDP 2 dans les appareils Trezor originaux).
Il s’avère que la théorie du faux portefeuille de cryptomonnaie était bel et bien réelle. Il s’agit d’une attaque de la chaîne d’approvisionnement au cours de laquelle une victime qui ne se doute de rien achète un appareil déjà piraté. Pourtant, le mécanisme utilisé pour voler la cryptomonnaie n’était toujours pas évident…
Un cheval de Troie dans le micrologiciel
Nous n’allons pas répéter les vérités communes des portefeuilles de cryptomonnaie dont nous avons déjà parlé, mais nous souhaitons vous rappeler un point : un portefeuille de cryptomonnaie a une clé privée, et toute personne qui connaît cette clé peut signer les transactions et dépenser votre argent. Étant donné que les cybercriminels ont pu réaliser une transaction alors que le portefeuille était hors-ligne et rangé dans le coffre-fort du propriétaire, cela signifie que les cybercriminels ont copié la clé privée après qu’elle a eu été générée ou… qu’ils la connaissaient depuis le début !
La désactivation de la protection de lecture de la mémoire flash, que les cybercriminels ont décidé de ne pas réactiver après avoir soudé le nouveau microcontrôleur, nous a permis d’extraire facilement le micrologiciel du portefeuille et, après avoir reconstruit le code, de découvrir que les cybercriminels connaissaient la clé privée en avance. Mais comment est-ce possible ?
Le chargeur d’amorçage d’origine et le micrologiciel du portefeuille n’ont subi que trois modifications.
Tout d’abord, les mécanismes du chargeur d’amorçage qui vérifient la protection et les signatures numériques ont été supprimés, ce qui permet aux cybercriminels de se débarrasser du problème de « l’écran rouge » lorsque l’appareil vérifie l’originalité du micrologiciel au démarrage.
Ensuite, à la phase d’initialisation ou de redémarrage du portefeuille, la phrase secrète générée au hasard était remplacée par une des 20 phrases secrètes générées en avance et sauvegardées dans le micrologiciel piraté. Le propriétaire pouvait allait l’utiliser au lieu d’en avoir une nouvelle unique.
Enfin, si l’utilisateur choisissait d’établir un mot de passe principal pour protéger la phrase secrète, seul le premier symbole était pris en compte (a…z, A…Z, 0…9 ou ! comme caractère spécial) et, si l’autre option était de ne pas avoir de mot de passe, il n’y avait plus que 64 combinaisons possibles. Ainsi, pour pirater le mot de passe du faux portefeuille, il n’y avait que 1280 possibilités à tester (64*20=1280).
Le faux portefeuille de cryptomonnaie fonctionnait normalement, sauf que les cybercriminels pouvaient totalement le contrôler depuis le début. Selon l’historique des transactions, les escrocs n’étaient pas pressés puisqu’ils ont attendu qu’un mois s’écoule depuis le premier dépôt sur le portefeuille avant de voler l’argent. Le propriétaire n’avait aucune protection : il avait perdu la partie dès que l’argent avait été transféré vers le portefeuille qui contenait le cheval de Troie.
La réponse du fabricant
Après la publication de notre étude, Trezor, le fabricant de ce modèle de portefeuille de cryptomonnaie, a communiqué sur son compte Twitter officiel que cet indicent remontait à 2022 lorsque plusieurs faux portefeuilles de cryptomonnaie d’un revendeur russe non autorisé sont apparus sur le marché, et a souligné qu’aucun autre incident ne leur avait été signalé depuis lors.
Comment éviter la menace du faux appareil
Il n’est pas facile de faire la différence entre un faux et un vrai portefeuille de cryptomonnaie si vous n’avez pas les connaissances et l’expérience requises. La meilleure protection consiste à acheter votre portefeuille directement auprès du fournisseur officiel et de choisir les modèles qui ont des versions spéciales de microcontrôleurs protégés. Même les produits Trezor d’origine ne sont pas l’idéal dans ce sens. Les portefeuilles d’autres marques ont des puces mieux protégées et des mécanismes de protection supplémentaires.
Il convient de souligner que même un portefeuille authentique et non modifié peut être vulnérable à un certain nombre de menaces. Les mesures prioritaires sont l’utilisation d’un mot de passe (si le modèle de votre portefeuille le permet) et, évidemment, l’installation d’une solution de protection sur tous vos ordinateurs et smartphones.