Developpez.com

Le Club des Développeurs et IT Pro

Un chercheur en sécurité réussit à casser la sécurité du Nano S

Un portefeuille matériel pour monnaies cryptographiques du français Ledger

Le 2018-03-26 21:11:41, par Patrick Ruiz, Chroniqueur Actualités
Les portefeuilles matériels sont ce qui se fait de mieux en matière de sécurité pour protéger ses jetons de monnaies cryptographiques. Ils ne sont pour autant pas inviolables comme l’a démontré un hacker avec le Nano S – une solution proposée par la société française Ledger et vendue en millions d’exemplaires à travers le monde.


Saleem Rashid pointe une vulnérabilité due à un choix de design du hardware wallet. En son sein, un processeur cryptographique – ST31H320 – muni d’une interface UART et un microcontrôleur STM32F042K6 chargé de la gestion de l’affichage, du clavier de l’appareil et de la connexion USB avec un PC.


D’après le chercheur en sécurité, le nœud du problème dans cette architecture est le fait qu’un attaquant puisse modifier le firmware du microcontrôleur STM32 pour contourner les vérifications de sécurité gérées par le processeur cryptographique. Et pour cause, le processeur cryptographique ne peut « voir » le firmware du STM32 pour l’authentifier. Pour parvenir à attester de l’authenticité du firmware du STM32, les ingénieurs de Ledger ont mis sur pied un stratagème consistant à charger le contenu entier de la mémoire flash du microcontrôleur au travers de l’interface UART ; un problème quand on sait que cette manière de faire revient à demander à un criminel de produire son extrait de casier judiciaire.

Le hacker s’est appuyé sur cette brèche pour parvenir à poser une backdoor sur la fonction de génération des clés privées de l’appareil. « Si vous êtes calés en langage C, vous noterez que j’ai remplacé un appel système au générateur de nombres aléatoires par un appel à une fonction qui définit toutes les entropies à zéro », explique-t-il.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 diff --git a/src/bolos_ux_onboarding_3_new.c b/src/bolos_ux_onboarding_3_new.c
index ce1849c..b950ae7 100644
--- a/src/bolos_ux_onboarding_3_new.c
+++ b/src/bolos_ux_onboarding_3_new.c
@@ -395,7 +395,7 @@ void screen_onboarding_3_new_init(void) {
 #else

     G_bolos_ux_context.onboarding_kind = BOLOS_UX_ONBOARDING_NEW_24;
-    cx_rng((unsigned char *)G_bolos_ux_context.string_buffer, 32);
+    os_memset(G_bolos_ux_context.string_buffer, 0, 32);
     G_bolos_ux_context.words_buffer_length = bolos_ux_mnemonic_from_data(
         (unsigned char *)G_bolos_ux_context.string_buffer, 32,
         (unsigned char *)G_bolos_ux_context.words_buffer,
Certes, l’exploitation de la vulnérabilité mise en lumière par le chercheur requiert que l’attaquant dispose d’un accès physique à l’appareil, une condition qui est souvent considérée comme étant difficile à remplir, mais qui dans ce cas l’a probablement été à plusieurs reprises au travers des revendeurs tiers. Un acteur malveillant qui contrôle le générateur de nombres aléatoires contrôle les clés privées et peut donc soutirer les jetons de cryptomonnaies d’un acquéreur de l’appareil.

Saleem Rashid a fait part de ses trouvailles à Ledger France en novembre 2017 et un correctif est disponible pour le Nano S depuis le 6 mars. L’entreprise met un nouveau firmware à la disposition des consommateurs et ce dernier leur sera proposé en téléchargement dès connexion de l’appareil à un ordinateur. Les trouvailles du chercheur en sécurité concernent également le Nano Blue pour lequel un correctif se fait toujours attendre.

Source

Billet Rashid

Votre opinion

Faites-vous usage des portefeuilles matériels proposés par Ledger ? Si oui, pour quelle raison ?
  Discussion forum
4 commentaires
  • Jiji66
    Membre éprouvé
    C'est sur qu'en ayant un accès physique à l'appareil et en prenant le temps de changer le firmware je ne connais pas beaucoup de systèmes qui résistent. De la à mettre un titre qui dit que la sécurité du Nano S a été cassée il y a un pas que personnellement je n'aurais pas franchi.
  • benjani13
    Membre extrêmement actif
    Envoyé par Jiji66
    C'est sur qu'en ayant un accès physique à l'appareil et en prenant le temps de changer le firmware je ne connais pas beaucoup de systèmes qui résistent. De la à mettre un titre qui dit que la sécurité du Nano S a été cassée il y a un pas que personnellement je n'aurais pas franchi.
    L'intégrité physique et logicielle d'un appareil que tu achètes est une vrai question de sécurité. D'autant plus quand, comme pour ce portefeuille Ledger, l'entreprise donne comme argument de vente qu'il n'est pas possible de modifier l'appareil. Et si, heureusement il y a de nombreux système où il n'est pas du tout triviale de modifier le firmware (et même simplement de le lire).
  • Jiji66
    Membre éprouvé
    Envoyé par benjani13
    ............ Et si, heureusement il y a de nombreux système où il n'est pas du tout triviale de modifier le firmware (et même simplement de le lire).
    Est-il alors encore possible de faire un upgrade du firmware sur ces système ?
  • transgohan
    Expert éminent
    Envoyé par Jiji66
    Est-il alors encore possible de faire un upgrade du firmware sur ces système ?
    Oui mais uniquement avec un binaire signé par exemple, ou même chiffré.
    Cela empêche que n'importe qui puisse flasher n'importe quoi.