L'ATmega88 est un microcontrôleur AVR 8 bits très populaire, conçu pour des applications embarquées à faible coût. Il dispose de 8 Ko de mémoire flash interne, de 512 octets de mémoire eeprom non volatile dédiée et de 512 octets de SRAM rapide pour le stockage des variables d'exécution. Ce MCU offre une interaction directe et synchronisée 1:1 avec les périphériques matériels externes, une caractéristique architecturale qui le distingue des anciennes familles de microcontrôleurs Microchip PIC que nous avons disséquées et documentées en détail dans des articles de rétro-ingénierie antérieurs. Chaque fonction matérielle à l'intérieur de l'ATmega88 est directement liée à des composants de sécurité critiques, notamment les registres lockbit et les fusibles programmables, que les attaquants ciblent lors des opérations de décapsulation pour déverrouiller les régions mémoire protégées et effectuer un dump flash complet en vue d'une extraction de firmware et d'une production de matériel dupliqué.
Avant de plonger dans la dissection au niveau du silicium, il est essentiel de clarifier le risque d'attaques par lecture non autorisée contre les banques de mémoire protégées de l'ATmega88. Si un développeur ne configure pas correctement les paramètres de verrouillage et de fusibles sur ce microcontrôleur, des acteurs malveillants disposant d'un équipement de laboratoire FIB peuvent retirer les couches métalliques, sonder les pistes de signaux internes et récupérer l'intégralité du code programme stocké dans la flash sans enfreindre les barrières de protection logicielle standard. De nombreux amateurs négligent l'activation des lockbits lors des tests de prototype, laissant leur logique de capteur propriétaire et leur code de contrôle exposés à un dump et à une récupération faciles après de simples opérations de sondage physique du silicium.
Cette puce est fabriquée selon un nœud de fabrication CMOS mature de 350 nanomètres (nm), utilisant un empilement de trois couches métalliques distinctes pour acheminer les signaux d'alimentation, d'horloge et de données à travers le substrat de silicium. Du point de vue de l'analyse des semi-conducteurs, la disposition de la puce ATmega88 est exceptionnellement soignée et organisée, ce qui en fait un spécimen idéal pour quiconque apprend la rétro-ingénierie matérielle, les techniques de décapsulation et le mappage des circuits de sécurité internes des MCU. Notre équipe de laboratoire a entièrement décapsulé un échantillon de puce ATmega88 d'origine, a éliminé les couches métalliques successives par des traitements chimiques contrôlés et a capturé des images microscopiques haute résolution pour créer cette analyse détaillée destinée à ceux qui étudient les faiblesses de sécurité du silicium et les tactiques de contournement des fusibles utilisées pour déverrouiller la mémoire AVR.

Le processus de fabrication des tranches de 0,35 micromètre (μm) d'Atmel assure une construction des couches de silicium cohérente et reproductible, ce qui simplifie l'élimination contrôlée des couches pour les analyses en laboratoire axées sur les circuits de fusibles et de lockbits. La photographie ci-dessus montre la puce ATmega88 complète sous un grossissement de 200x au microscope optique, révélant les principales partitions de blocs fonctionnels, notamment les matrices de mémoire flash, les blocs de stockage eeprom, les périphériques ADC analogiques et la zone de logique CPU centrale. Chaque bloc segmenté abrite des pistes de circuit uniques qui contrôlent les autorisations d'accès à la mémoire définies par l'ensemble des fusibles de sécurité de la puce, qui déterminent si les outils de débogage externes peuvent exécuter des commandes de lecture de mémoire brute.
Nous avons appliqué un bain d'acide fluorhydrique (HF) dilué par incréments de temps précis pour dissoudre partiellement et éliminer la couche métallique supérieure la plus externe, étiquetée M3 sur l'empilement de silicium de l'ATmega88. La gravure partielle était un choix délibéré plutôt qu'une élimination complète de la couche, car les traces métalliques résiduelles laissées derrière elles servent de feuilles de route visuelles pour tracer les chemins de signaux descendant vers les couches métalliques inférieures M2 et M1, ainsi que les couches de grilles en polysilicium sous-jacentes. Cette technique de délaminage partiel est une procédure standard dans tout laboratoire professionnel de hack par faisceau d'ions focalisés (FIB) spécialisé dans la rétro-ingénierie des microcontrôleurs et l'inspection des circuits de fusibles internes sans détruire définitivement les points de repère critiques de la puce nécessaires au mappage de la logique de déverrouillage.
Les nouveaux venus dans la décapsulation des puces commettent souvent l'erreur de retirer complètement toutes les couches métalliques supérieures en un seul traitement acide agressif, ce qui efface les marqueurs d'alignement critiques et les bus de signaux enterrés qui relient les sorties des lockbits aux portes de contrôle d'accès à la mémoire flash. Notre méthode de gravure HF progressive évite cet écueil courant, préservant les traces de routage M3 partielles que nous recoupons à plusieurs niveaux de grossissement pour tracer comment les blocs logiques de fusibles bloquent ou autorisent les opérations de dump complet sur la matrice flash du MCU lors de la communication avec un programmateur externe.

Maintenant que la couche métallique M3 supérieure a été partiellement retirée, les modules fonctionnels centraux précédemment obscurcis sur la puce de silicium deviennent entièrement distinguables par notre caméra de microscope et notre logiciel d'analyse. Le grand bloc SRAM rectangulaire occupe une section proéminente de la disposition de la puce, aux côtés de la banque dédiée des 32 registres de travail CPU à usage général que le MCU utilise pour stocker temporairement les données pendant l'exécution du programme et les cycles de lecture des capteurs. Ces banques de registres contiennent des valeurs intermédiaires avant qu'elles ne soient écrites dans la mémoire eeprom ou flash, ce qui en fait des cibles secondaires pour les attaquants effectuant un sondage de signaux en temps réel après la décapsulation pour reconstruire partiellement le code lors des premières phases de récupération de l'extraction de firmware.
Chaque octet stocké dans la SRAM est volatile et perdu une fois que le MCU est hors tension, contrairement aux matrices eeprom et flash non volatiles qui conservent les données à long terme même sans alimentation. Cette distinction de mémoire clé a un impact sur la manière dont les adversaires structurent leurs workflows de dump : ils doivent capturer les traces de signaux de la SRAM pendant que la puce est alimentée, tandis que les données flash et eeprom peuvent être extraites hors ligne après avoir contourné avec succès les fusibles de protection de verrouillage de la puce et déverrouillé les autorisations d'accès à la mémoire.
Plus tôt dans notre analyse, nous avons qualifié le processus de fabrication 350nm d'Atmel d'« impressionnant », un sentiment partagé par les pirates matériels et les chercheurs en semi-conducteurs au sein de la communauté maker together club qui effectuent régulièrement des démontages de puces pour des projets éducatifs de rétro-ingénierie. La construction ordonnée en couches de la puce ATmega88 permet une gravure métallique partielle contrôlée qui laisse de faibles contours métalliques résiduels incrustés dans les tranchées de dioxyde de silicium, qui restent visibles en ajustant la profondeur de mise au point du microscope sans éliminer complètement l'empreinte de routage de la couche. Cette caractéristique de visibilité subtile simplifie considérablement le traçage des longs bus de signaux qui circulent entre la banque de fusibles de configuration et la logique de sécurité lockbit responsable de la restriction des demandes de dump et de lecture de mémoire non autorisées.
Cette particularité de fabrication est bien plus qu'un détail esthétique pour les analystes de sécurité du silicium. Lorsqu'on tente de cartographier le chemin électrique de la grille flottante de chaque fusible vers les portes ET/OU qui appliquent les états de verrouillage mémoire, les traces métalliques M3 résiduelles agissent comme des guides visuels permanents qui évitent la désorientation lors du basculement entre les grossissements 200x, 500x et même 1000x pendant les sessions d'analyse de décapsulation ciblant les vulnérabilités de contournement des fusibles.

La micrographie ci-dessus, associée à la deuxième photo de la zone des fusibles plus bas, capture exactement la même région de silicium de la puce ATmega88, avec une différence critique entre les deux clichés : l'image inférieure a subi une gravure HF plus profonde pour éliminer complètement la couche métallique M3, mais les tranchées gravées dans la couche isolante de dioxyde de silicium marquent toujours les positions de routage d'origine où le métal supérieur reposait autrefois sur les pistes de polysilicium de la banque de fusibles. Ces indentations gravées créent des lignes de référence permanentes que nous utilisons pour vérifier les connexions de signaux alimentant chaque fusible de configuration individuel sur le MCU.
Atmel a intégré plus de trente fusibles de configuration distincts sur la disposition du silicium de l'ATmega88, chacun assigné à une fonction matérielle unique allant de la sélection de la vitesse d'horloge système, des indicateurs d'activation des périphériques analogiques, des seuils de tension de détection de baisse de tension, et les fusibles de verrouillage de sécurité critiques qui bloquent l'accès externe à la mémoire flash et eeprom. Collectivement, ces fusibles forment la frontière de sécurité matérielle principale destinée à empêcher les outils tiers d'initier une opération de dump flash complet et d'achever l'extraction complète du firmware pour construire des dispositifs basés sur des microcontrôleurs dupliqués sans licence officielle.
Il est facile de comprendre pourquoi les analystes de sécurité des semi-conducteurs font l'éloge du flux de fabrication 350nm cohérent d'Atmel après avoir comparé des paires de couches gravées telles que ces deux gros plans de fusibles. Nous avons réussi à retirer la couche métallique M3 supérieure opaque qui bloquait la visibilité des structures de polysilicium des fusibles sous-jacents, tout en conservant des marqueurs de position clairs indiquant où les bus d'alimentation et de signal métalliques traversaient initialement cette région de circuit de sécurité sensible. Sans ces points de repère de tranchée gravés, le traçage de la chaîne logique de chaque fusible vers les portes de contrôle de verrouillage mémoire nécessiterait des sessions de découpe FIB et de sondage beaucoup plus longues lors des travaux de rétro-ingénierie par décapsulation.
Ces deux photographies en gros plan à fort grossissement montrent deux éléments de fusibles individuels extraits de l'ensemble complet de plus de trente fusibles de configuration intégrés dans le silicium du microcontrôleur ATmega88. Un choix de conception suscite des discussions animées au sein de la communauté du hacking matériel axée sur la sécurité des MCU : Atmel a déposé une plaque de blindage métallique solide directement sur la structure de la grille flottante de l'élément de fusible supérieur visible dans le cadre, une caractéristique de conception défensive destinée à bloquer les attaques d'effacement par UV et de sondage laser physique détaillées dans les guides techniques de dissection du silicium de snaileye.
Les ingénieurs d'Atmel ont ajouté cette couche de blindage métallique pour durcir la grille flottante du fusible contre les simples astuces de décapsulation par exposition aux UV qui effacent avec succès les états lockbit sur les anciennes familles de microcontrôleurs PIC. Malgré cette contre-mesure, les équipements avancés de découpe FIB et laser que l'on trouve dans les laboratoires professionnels de rétro-ingénierie peuvent toujours traverser la fine plaque métallique pour entrer directement en contact avec la grille flottante située en dessous, permettant aux attaquants de modifier manuellement les niveaux logiques des fusibles pour déverrouiller les banques de mémoire flash et eeprom protégées de la puce en vue d'une lecture non filtrée et d'une récupération complète du dump du code programme embarqué.
Nous avons tracé de fines pistes de signal en rouge sur chaque élément de fusible visible dans ces clichés de microscope pour retracer les bus d'entrée et de sortie dédiés qui connectent le circuit de grille flottante de chaque fusible au bloc logique de sécurité central abritant les portes de contrôle lockbit de l'ATmega88. Nous posons maintenant une question d'analyse ouverte aux lecteurs qui étudient la sécurité matérielle des microcontrôleurs : à quelle fin fonctionnelle servent ces pistes de signal en polysilicium et métal mises en évidence en rouge dans le cadre de la protection d'accès à la mémoire globale intégrée à ce MCU AVR ?
Pour développer cette analyse à l'intention des apprenants novices en rétro-ingénierie du silicium : chaque piste en rouge porte un signal logique binaire généré par l'état de charge stocké sur la grille flottante du fusible. Ces signaux convergent vers des portes logiques multi-entrées qui évaluent l'état combiné de tous les fusibles de sécurité et des registres lockbit. Si la combinaison des portes logiques remplit la condition "verrouillé" définie par la conception du CPU d'Atmel, toutes les interfaces de communication externes bloquent chaque demande de lecture et de dump envoyée par les outils de programmation, protégeant ainsi le code propriétaire stocké dans la matrice flash contre une extraction de firmware non autorisée utilisée pour fabriquer des produits matériels dupliqués sans licence.
De nombreux amateurs de décapsulation débutants sous-estiment à quel point ces bus de signaux de fusibles sont interconnectés. Une seule coupure ou un court-circuit appliqué à une piste en rouge peut modifier la sortie logique combinée du bloc de verrouillage de sécurité, créant un contournement matériel permanent qui ignore l'état de verrouillage des fusibles et accorde un accès sans restriction à tout le contenu de la mémoire flash et eeprom sans modifier chaque élément de fusible individuel sur la puce. Cette vulnérabilité à un seul point est la cible principale des équipes de rétro-ingénierie avancées qui tentent d'éviter de longs workflows de modification des fusibles lors de leurs opérations de dump et de récupération de code.
Un autre enseignement éducatif essentiel tiré de l'examen de ces structures de fusibles blindées est la compréhension de la limitation du blindage métallique passif en tant que contre-mesure de sécurité. Bien que la plaque métallique M3 bloque les tentatives d'effacement UV à faible coût, elle ne résiste pas au fraisage par faisceau d'ions focalisés de précision ou à l'ablation laser pulsée utilisée dans les laboratoires de décapsulation professionnels. Une fois le blindage métallique retiré, la grille flottante devient entièrement accessible au sondage électrique, permettant aux attaquants de manipuler les états de charge des fusibles pour désactiver la protection de verrouillage et déverrouiller les matrices mémoire du microcontrôleur pour un dump flash complet et une récupération complète du firmware.
Nous souhaitons également clarifier la différence entre les fusibles de configuration et les fusibles lockbit pour les lecteurs novices en architecture MCU AVR. Les fusibles de configuration générale gèrent la synchronisation des périphériques, les sources d'horloge et les paramètres d'alimentation, tandis que les fusibles lockbit dédiés existent uniquement pour appliquer des restrictions d'accès à la mémoire. Les deux types de fusibles acheminent des données de signal le long des pistes rouges marquées que nous avons indiquées sur les photos au microscope, se fusionnant à l'intérieur de portes logiques partagées qui prennent la décision finale d'autorisation d'accès pour toutes les opérations externes de lecture et de dump ciblant le stockage flash et eeprom.
Lors de la réalisation d'une rétro-ingénierie complète de l'ATmega88 pour le développement de dispositifs dupliqués, les pirates priorisent le mappage de ces pistes de fusibles en rouge en premier lors de l'analyse par décapsulation. En identifiant quels bus alimentent directement la logique d'évaluation lockbit, ils peuvent concevoir des coupes laser ou FIB minimales qui désactivent définitivement le verrouillage mémoire sans avoir à décoder ou modifier chaque fusible de configuration dispersé sur la puce de silicium, accélérant considérablement l'ensemble du workflow d'extraction de firmware et de récupération de code après avoir déverrouillé avec succès les partitions mémoire protégées du MCU.Sécurité matérielle recherche consiste à améliorer la sécurité globale globale
- Liste de rétro-ingénierie des MCU Atmel par Mikatech :