Lors du dernier congrès du Chaos Computer Club qui s’est tenu en Allemagne fin décembre, deux spécialistes ont expliqué que toutes les cartes mémoire de type flash possèdent un microcontrôleur dont le micrologiciel (ou firmware) peut, dans certains cas, être reprogrammé. Cette vulnérabilité permettrait de mener des attaques malveillantes pour voler ou altérer des données. Mais les amateurs de hacking pourraient aussi l’exploiter de façon positive pour transformer une carte mémoire en miniordinateur. Sean Cross, l’un des auteurs de l’étude consacrée à ce hacking, est revenu pour Futura-Sciences sur les deux facettes de cette découverte.


au sommaire


    D’après les travaux de Sean Cross et Andrew Huang, toutes les cartes utilisant de la mémoire flash contiennent un microcontrôleur dont le firmware est potentiellement modifiable via son système de mise à jour. Entre de mauvaises mains, la technique pourrait permettre d’altérer ou de voler des données. Mais elle peut aussi transformer n’importe quelle carte mémoire en microcontrôleur à bas coût. © Bunniestudios

    D’après les travaux de Sean Cross et Andrew Huang, toutes les cartes utilisant de la mémoire flash contiennent un microcontrôleur dont le firmware est potentiellement modifiable via son système de mise à jour. Entre de mauvaises mains, la technique pourrait permettre d’altérer ou de voler des données. Mais elle peut aussi transformer n’importe quelle carte mémoire en microcontrôleur à bas coût. © Bunniestudios

    Chaque année, le Chaos Computer Club, ou CCC, tient son congrès annuel (le Chaos Communication Congress) au cours duquel la fine fleur des « bons » hackers, des spécialistes en sécurité informatique ainsi que des pourfendeurs de toute forme de censure se réunissent. L'occasion pour eux d'échanger à travers des conférences et des ateliers mêlant technique et débats politiques. Cette année, la 30e édition du congrès s'est tenue à Hambourg, en Allemagne, du 27 au 30 décembre.

    L'une des conférences les plus marquantes fut celle délivrée par deux hackers américains, Sean Cross (« xobs ») et Andrew Huang (« bunnie »). Ils ont démontré que certaines cartes mémoire SD (secure digitaldigital) contiennent une vulnérabilité qui peut servir à exécuter un code arbitraire, directement sur la carte. « Du côté obscur, l'exécution de code sur la carte permet de réaliser des attaques de type man in the middle [l'homme au milieu, NDLRNDLR] où la carte semble se comporter d'une certaine manière, alors qu'en réalité elle fait autre chose, expliquent les deux auteurs sur leur blog. Du côté clair, cela ouvre la possibilité aux amateurs d'accéder à des microcontrôleurs très répandus et bon marché. » Ils précisent que leur découverte s'applique à toutes les familles de cartes mémoire amovibles ou intégrées (MicroSD, SD, MMC, eMMC, iNAND) ainsi qu'aux clés USB et solutions de stockage SSD. En gros, tout ce qui utilise de la mémoire flash.

    La mémoire flash n’est pas fiable

    De moins en moins chère, de plus en plus miniaturisée, cette mémoire flash n'est pas suffisamment fiable. Pour assurer un bon fonctionnement, les ingénieurs recourent à des algorithmes sophistiqués qui vont corriger les erreurs et gérer l'allocation des blocs de mémoire de manière à assurer l'intégrité des données stockées. Ces algorithmes sont exécutés par un microcontrôleur intégré à la carte mémoire. Il s'agit la plupart du temps d'un microcontrôleur IntelIntel 8051 ou ARMARM, dont la fréquence d'horloge peut atteindre 100 MHz. Ce composant, qui s'apparente à un miniordinateur, fonctionne grâce à un micrologiciel (firmwarefirmware) qui gère l'exécution des algorithmes. Chaque modèle de carte flash requiert un algorithme spécifique. Il faut donc que le firmware puisse être mis à jour pour corriger les bugsbugs qui surviennent.

    Cette carte mémoire SD a été ouverte pour révéler le microcontrôleur placé dans le coin supérieur gauche. C’est lui qui exécute les algorithmes de correction d’erreur qui permettent de garantir l’intégrité des données stockées sur la mémoire flash. © Bunniestudios
    Cette carte mémoire SD a été ouverte pour révéler le microcontrôleur placé dans le coin supérieur gauche. C’est lui qui exécute les algorithmes de correction d’erreur qui permettent de garantir l’intégrité des données stockées sur la mémoire flash. © Bunniestudios

    Or, xobs et bunnie ont découvert que sur certaines cartes mémoire, le système de mise à jour du firmware n'est pas protégé. Par ingénierie inverséeingénierie inversée (en anglais reverse engineering) sur les registres spécifiques d'un microcontrôleur 8051, ils ont pu injecter un code modifié qui intervient sur le traitement des commandes SD. Pour résumer, il est possible de prendre la main sur le microcontrôleur de la carte mémoire comme cela pourrait se faire avec un ordinateurordinateur.

    Vulnérabilité des cartes mémoire SD aussi utile que dangereuse

    Comme le précisent bien les deux hackers, cette découverte a un côté positif et un côté négatif. Le côté positif est que les makers pourraient exploiter la technique pour reconfigurer le microcontrôleur d'une carte mémoire et s'en servir pour piloter certains composants, comme des capteurscapteurs« Un Arduino avec un microcontrôleur 8 bits de 16 MHz vous coûtera 20 dollars. Une carte MicroSD de plusieurs gigaoctets de mémoire et un microcontrôleur beaucoup plus performant coûtent une fraction de ce prix », argumentent les auteurs. Du côté négatif, cette vulnérabilité peut ouvrir la voie à des attaques de l'homme au milieu qui seraient difficilement repérables. « Il n'y a pas de protocoleprotocole ou de méthode standard pour inspecter et certifier le contenu du code qui s'exécute sur le microcontrôleur de la carte mémoire. » Que peut-on réellement faire de bon et de mauvais avec cette technique de hacking ? Quel est le risque pour le grand public ? Futura-Sciences a posé ces questions parmi d'autres à Sean Cross.

    Futura-Sciences : Vous évoquez la possibilité d’utiliser votre méthode de hacking pour réaliser des attaques de l’homme au milieu. Pouvez-vous nous donner des exemples ?

    Sean Cross : Plusieurs attaques pourraient être intéressantes. Étant donné que vous avez accès aux données une fois qu'elles ont été écrites, rien ne vous empêche de les modifier. Vous pourriez, par exemple, chercher des mots ou des phrases clés dans des données texte et les remplacer afin de modifier un message politique. Vous pourriez aussi surveiller des transactions et détecter des dossiers importants que vous pourriez ensuite stocker dans une partie réservée de la carte mémoire afin de les récupérer même si la carte venait à être formatée. Les outils d'analyse scientifique, comme ceux utilisés par les forces de l'ordre, commencent généralement par faire une lecture séquentielle secteur par secteur d'une carte mémoire. Ce modèle est facilement identifiable. Il est possible de créer un firmware qui repère cette méthode, puis répond qu'il n'y a pas de données ou bien formate la carte.

    Est-ce qu’une carte MicroSD (ou tout autre format mentionné dans votre étude) insérée dans un terminal mobile pourrait être hackée à distance via une application malveillante ?

    Sean Cross : Non, car il vous faut pouvoir exécuter des commandes SD de bas niveau, et AndroidAndroid [ou tout autre système d'exploitationsystème d'exploitation mobilemobile, NDLR] ne permet pas cela.

    Quelle est la réalité de la menace pour les consommateurs qui utilisent ces cartes mémoire, des clés USB ou du stockage SSD ?

    Sean Cross : La menace n'est pas grande. Il est très compliqué de modifier le firmware des cartes mémoire, de SSD ou de clés USB. D'abord, vous devez avoir accès au code, puis vous devez comprendre ce code pour pouvoir enfin le modifier. Alors qu'un adversaire peut passer des mois à créer un terminal de stockage malveillant, le consommateur peut contrer cette attaque simplement en achetant un autre produit.

    Dans votre étude, vous soulignez le fait que cette vulnérabilité est aussi utile que dangereuse. Pouvez-vous nous donner quelques exemples où une carte SD peut servir de microcontrôleur ?

    Sean Cross : Une carte SD consomme peu d'énergieénergie et est très petite. Au cours de notre recherche, nous avons découvert comment contrôler indépendamment chaque broche du connecteur, ce qui signifie que nous pouvons faire communiquer cette carte avec une grande variété d'appareils. On pourrait par exemple connecter une carte SD directement à un capteur de température et le placer dans la forêt. Un tel système coûterait aux alentours de deux euros, mais pourrait facilement collecter des données pendant au moins un an. À ce niveau de prix, on pourrait couvrir une zone avec une forte densité de capteurs et avoir une bonne compréhension des profils climatiques.

    Nous avons remarqué que la plupart de ces cartes mémoire utilisent un microcontrôleur 32 bits. Les amateurs se servent souvent des plateformes Arduino et PIC pour de petits projets. Celles-ci utilisent des processeurs 8 bits qui nécessitent des astuces de programmation pour réaliser des calculs mathématiques impliquant des nombres supérieurs à 256. Une idée intéressante pourrait être de se servir d'une carte SD en guise de coprocesseurcoprocesseur pour les calculs mathématiques.

    Voir aussi

    Découvrez notre comparatif des meilleures cartes Micro SD