Sécurité

Hacker montre comment on peut pirater une carte mémoire (et quelques curiosités intéressantes)

Lors de la trentième édition du Chaos Communication Congress, un événement technologique annuel qui se tient à Hambourg, en Allemagne, le pirate Andrew “bunnie” Huang a démontré à quel point les cartes mémoire sont peu sûres. Grâce à la modification des microprogrammes, il est possible, par exemple, de réaliser des attaques de type “man-in-the-middle”, dans lesquelles les données transmises entre la carte mémoire et l’appareil sont interceptées.

Pour expliquer la vulnérabilité de certaines cartes SD, Bunnie donne quelques informations sur le fonctionnement de ces petites pièces. Une carte mémoire n’est pas seulement un morceau de plastique qui stocke des données : en plus de la mémoire flash, qui stocke les informations, il y a un microcontrôleur, généralement un processeur ARM ou une variante de l’Intel 8051, qui exécute des algorithmes de correction d’erreurs et coûte au fabricant quelque chose entre 15 et 30 cents.

Ces algorithmes complexes sont nécessaires car les mémoires flash, pour être extrêmement bon marché, sortent d’usines pleines de défauts : selon le fabricant, jusqu’à 80% des secteurs sont incapables de conserver les données. Les mémoires problématiques peuvent être vendues avec une capacité moindre, de sorte qu’aucune puce n’est gaspillée. Ainsi, une puce de mémoire flash de 2 Go défectueuse peut être une puce de 1 Go en parfait état. Les secteurs défectueux sont désactivés silencieusement par le microcontrôleur de la carte mémoire.

  Les données de 267 millions d'utilisateurs de Facebook exposées sur Internet

Pour que toute la magie opère, la carte mémoire doit contenir un micrologiciel, avec des instructions de microcontrôleur et des algorithmes de correction d’erreurs. Ce microprogramme peut être mis à jour à l’aide d’une séquence de commandes. Le problème est que, selon Bunnie, la plupart des fabricants laissent cette séquence sans protection, ce qui permet à quiconque de modifier indûment le microprogramme.

En modifiant le microprogramme, il est possible de faire croire au système d’exploitation qu’il lit une clé USB de 64 Go alors qu’en fait, il n’y a qu’une mémoire flash de 2 Go, pour ne citer qu’un exemple. Les données seront écrites jusqu’à la limite de la mémoire flash et commenceront alors à être corrompues. Lorsque des magasins de réputation douteuse vous vendent des cartes mémoire de très grande capacité à des prix incroyables, vous savez déjà comment cela a été fait.

Mais les changements peuvent aller plus loin : vous pouvez par exemple faire copier automatiquement des données importantes de la carte mémoire dans une zone réservée de la mémoire flash, sans que vous en ayez la moindre idée. De plus, les données peuvent être interceptées d’une manière ou d’une autre. Vous ne pouvez donc pas garantir qu’après avoir formaté une carte mémoire, celle-ci sera complètement propre.

  La fuite peut avoir exposé les données de la quasi-totalité de la population de l'Équateur

Au moins, il y a des nouvelles positives dans tout cela. Comme les microcontrôleurs de ces cartes mémoire sont relativement puissants (certains peuvent atteindre environ 100 MHz), ils peuvent être utilisés dans des projets simples : ils coûtent moins cher qu’un Arduino avec un microcontrôleur 8 bits à 16 MHz, mais ils offrent beaucoup plus de performances et disposent tout de même de quelques gigaoctets de mémoire.

L’explication complète se trouve sur le blog de Bunnie. La vidéo ci-dessous montre la présentation faite lors du Congrès Chaos Communication.

A propos de l'auteur

Bernard

Actuellement responsable informatique dans une PME, je bosse dans le domaine depuis une vingtaine d'année maintenant. Fan inconditionnel de DBZ, et de la triologie Die Hard. #teamWindows sur Perlmol !

Laisser un commentaire