Récupération de données sur cartes mémoires et clés USB
Cartes SD, micro SD, clés USB ou encore disques SSD, ces médias stockent leurs données sur des puces mémoires appelées NAND. Découvrez notre travail sur ces technologies !
Il existe 2 technologies pour stocker des données sur des mémoires NAND :
– Avec puce : Le constructeur dessine un PCB (carte électronique) et implémente par soudure les composants. Lorsqu’on retire la coque de protection, les composants sont visibles et donc accessibles pour travailler.
– Monolith : Le constructeur créé un moulage et intègre les composants dans ce moulage. Ainsi, ni le PCB ni aucun composant n’est visible lorsque l’on retire la coque de protection. Le travail est alors plus complexe et beaucoup plus long sur ce type de média.
Lorsque les données d’une clé USB, carte mémoire, téléphone ou encore SSD ne sont plus accessibles, il est nécessaire d’accéder au PCB (carte électronique) pour retrouver les pistes communicant avec les mémoires de stockage.
Cette étape permet également d’évaluer l’intégrité de la carte et des zones de données (micro-fissures, oxydations etc.)
Métal, aluminium, plastique, la première partie du travail consiste à retirer la protection afin de découvrir le moulage.
Ensuite, il est nécessaire de retirer les entraves autour du moulage, principalement constituées de plastiques, de caches pour les LED et autres éléments décoratifs.
Une fois libre, il faut analyser la dureté et l’épaisseur de la résine à retirer pour accéder au PCB*.*Le circuit imprimé de la carte.
Débute alors son polissage.
Après quelques minutes, la couleur saumâtre des pistes de cuivre va apparaitre indiquant que nous nous approchons du PCB.La couche de résine deviendra de plus en plus transparente jusqu’à son élimination totale.
La résine entièrement retirée et le composant lavé, le PCB devient alors totalement visible et prêt pour accueillir nos lecteurs.
Le dump est le processus de clonage du contenu de la puce mémoire contenant les données utilisateurs. Pour le réaliser, il est nécessaire de connecter les pistes du PCB vers nos lecteurs.
En fonction de l’état de santé de la mémoire de stockage, le dump sera réalisé plusieurs fois. Les signaux ne sont pas parfaits et un 0 peut parfois être lu comme un 1 à cause du bruit* (*Brouillage électronique altérant le signal d’origine). En lisant plusieurs fois la puce, nous pouvons éliminer un maximum de bruit et créer un dump avec un maximum de données qualitatives.
Contrairement à la lecture sur un disque dur où les codes de correction d’erreurs sont appliqués à la volée, une mémoire flash est lue de manière brute sans correction. Les codes de correction d’erreurs seront appliqués à posteriori.
En fonction de la connectique présente sur le PCB, nous pouvons employer le lecteur adéquat.
Les étapes suivantes consistent à souder des petits fils conducteurs pour relier le PCB au lecteur.Cette opération à petite échelle peut se révéler destructrice sans précision ni matériel adéquat. Mises à nu, les pistes de cuivre s’arrachent très facilement.
Une fois les secteurs bruts sécurisés, le travail délicat commence. En effet, les secteurs bruts contenus dans les puces mémoires contiennent des données clients, des codes de correction d’erreurs (appelés ECC) et des zones nécessaires au fonctionnement et à l’organisation des données (appelées SA). En ajoutant à cela la fragmentation et la répartition des données par le contrôleur pour allonger la durée de vie de la carte, nous disposons d’un mélange de secteurs inutilisables.
Notre mission consiste désormais à détecter et éliminer les zones contenants des ECC et travailler les zones de SA pour trouver une logique, une continuité. Enfin, déterminer l’organisation des données clients implémentée par le contrôleur de la carte.
Une première analyse permet d’identifier des blocs de secteurs avec un motif similaire.L’objectif est de déterminer le type de carte et/ou une première interprétation du mélange de données réalisé par le contrôleur.
Une fois les données brutes préparées, nous pouvons accéder à une vue hexadécimale afin de rechercher des traces de fichiers permettant de trouver le secteur 0, de boot ou un MBR**MBR : Master Boot Record, zone contenant la table des partitions.
Désormais débute un jeu de piste pour retrouver des morceaux de données clients afin de les assembler dans le bon ordre.Indépendant de la fragmentation ou du système de fichiers, le contrôleur organise les données par blocs de secteurs.
L’ordre est une suite mathématique créée par le fabriquant. Celui-ci ne communiquant pas sur sa technologie, il est nécessaire d’effectuer du reverse engineering* pour le déterminer. Ce travail peut prendre de quelques minutes à plusieurs jours (notamment les SSD ou cartes SDXC).* Reverse engineering : Rétro-ingénierie, le fait de partir d’un produit terminé pour remonter à sa conception.
Enfin, reste à déterminer la translation finale pour accéder aux données utilisateur. Cette translation est le lien final entre le contrôleur et le contenu des puces mémoires.
Les données peuvent maintenant être extraites vers un nouveau support !
Vous subissez une perte de données ?