Ce gars a piraté le microcontrôleur à l'intérieur des cartes SD utilisées pour marquer les blocs défectueux : https://www.bunniestudios.com/blog/?p=3554
Vous pourriez faire la même chose et marquer arbitrairement des blocs comme défectueux.
Aujourd'hui, lors du Chaos Computer Congress (30C3), xobs et moi avons révélé une découvertes selon laquelle certaines cartes SD contiennent des vulnérabilités qui permettent l'exécution de code arbitraire - sur la carte mémoire elle-même. Du côté obscur, l'exécution de code sur la carte mémoire permet une classe d'attaques MITM (homme du milieu), où la carte semble se comporter d'une certaine manière, mais en fait elle fait quelque chose d'autre. Du côté lumineux, cela permet également la possibilité pour les amateurs de matériel d'accéder à une source très bon marché et omniprésente de microcontrôleurs.
.
Ces algorithmes sont trop compliqués et trop spécifiques à l'appareil pour être exécutés au niveau de l'application ou du système d'exploitation, il s'avère donc que chaque disque de mémoire flash est livré avec un microcontrôleur relativement puissant pour exécuter un ensemble personnalisé d'algorithmes d'abstraction de disque. Même la minuscule carte microSD contient non pas un, mais au moins deux puces - un contrôleur, et au moins une puce flash (les cartes à haute densité empilent plusieurs matrices flash).
.
Le microcontrôleur intégré est généralement un CPU 8051 ou ARM fortement modifié. Dans les implémentations modernes, le microcontrôleur atteindra des niveaux de performance d'environ 100 MHz, et disposera également de plusieurs accélérateurs matériels sur la puce. Étonnamment, le coût d'ajout de ces contrôleurs au dispositif est probablement de l'ordre de 0,15 à 0,30 $, en particulier pour les entreprises capables de fabriquer à la fois la mémoire flash et les contrôleurs au sein de la même unité commerciale. Il est probablement moins cher d'ajouter ces microcontrôleurs que de tester et caractériser minutieusement chaque puce de mémoire flash, ce qui explique pourquoi les dispositifs de mémoire flash gérés peuvent être moins chers par bit que les puces flash brutes, malgré l'inclusion d'un microcontrôleur.
.
L'essence du problème est qu'un mécanisme de chargement et de mise à jour du micrologiciel est pratiquement obligatoire, surtout pour les contrôleurs tiers. Les utilisateurs finaux sont rarement exposés à ce processus, car tout se passe à l'usine, mais cela ne rend pas le mécanisme moins réel. Dans mes explorations des marchés électroniques en Chine, j'ai vu des commerçants graver des micrologiciels sur des cartes qui "étendent" la capacité de la carte - en d'autres termes, ils chargent un micrologiciel qui rapporte que la capacité d'une carte est beaucoup plus grande que le stockage réel disponible. Le fait que cela soit possible au point de vente signifie très probablement que le mécanisme de mise à jour n'est pas sécurisé.
Dans notre présentation à 30C3, nous relatons nos découvertes en explorant une marque de microcontrôleur particulière, à savoir, Appotech et ses offres AX211 et AX215. Nous découvrons une simple séquence de "knock" transmise via des commandes réservées au fabricant (à savoir, CMD63 suivie de 'A', 'P', 'P', 'O') qui plongent le contrôleur en mode de chargement d'un micrologiciel. À ce stade, la carte acceptera les 512 prochains octets et les exécutera en tant que code.