Comprendre le MBR de protection dans les disques partitionnés en GPT. Partie 1.

Introduction

Dans cette série d'articles de blog, je vais me plonger dans le schéma de la table de partition GUID. Mon objectif est de fournir une compréhension claire du schéma GPT et de la manière dont il permet aux enquêteurs d'analyser et de récupérer avec précision les données des périphériques de stockage modernes. La prise en charge par GPT de disques plus grands, de partitions multiples et de fonctions d'intégrité des données améliorées, telles que la redondance et la protection CRC, permet aux enquêteurs d'accéder à toutes les données nécessaires et de les vérifier. En outre, la compatibilité du GPT avec les systèmes d'exploitation contemporains et les microprogrammes UEFI améliore la capacité à effectuer des examens médico-légaux complets, ce qui le rend indispensable pour découvrir des preuves numériques et garantir l'intégrité et la fiabilité des résultats médico-légaux. 

Je commencerai par le MBR protecteur et la manière dont il diffère du MBR traditionnel utilisé avec les anciens disques dans le BIOS. Ensuite, je vous présenterai l'en-tête GPT, puis la matrice d'entrée GPT. Enfin, je vous ferai part de mes conclusions et de mes conseils pour expliquer ces concepts à un profane, par exemple lors d'un témoignage devant un juge ou un jury.

En fin de compte, après avoir lu cette série, vous n'aurez aucun mal à relever un défi CTF sur notre plateforme CTF.

PARTIE 1

Le MBR protecteur

Le Master Boot Record (MBR) nous a fourni une feuille de route pour localiser jusqu'à quatre partitions primaires sur un disque dur. Chaque entrée de partition de 16 octets nous guidait vers l'emplacement de cette partition, qu'elle soit FAT32 ou NTFS. Cependant, l'ancien MBR présentait des limitations, notamment, mais pas uniquement :

  • Une limite de taille de 2 To.
  • Limité à 4 partitions primaires ; si plus de partitions sont nécessaires, l'une de ces partitions primaires sera désignée comme partition étendue.
  • Un seul point de défaillance puisque le MBR, qui comprend la table de partition, était situé dans le secteur 0 sans aucune sauvegarde.

Le LBA 0 (secteur logique 0) d'un disque dur GPT contient ce que l'on appelle un MBR de protection plutôt qu'un MBR hérité. Imaginez le MBR de protection comme un panneau à l'entrée de la bibliothèque qui dit à tout le monde : "Hé, cette bibliothèque utilise un système nouveau et amélioré. N'utilisez pas l'ancienne méthode car elle ne fonctionnera pas ici".

Au lieu de contenir l'emplacement des quatre partitions primaires du disque, le MBR de protection marque l'ensemble du disque comme étant utilisé par GPT, ce qui indique aux systèmes plus anciens que le disque est entièrement utilisé. Le MBR de protection n'existe que pour des raisons de compatibilité ascendante. Il contient UNIQUEMENT une entrée de partition, qui marque le disque et empêche les anciens outils de mal interpréter la structure du disque. 

Structure du MBR de protection

Les 440 premiers octets du MBR de protection contiennent un code de démarrage qui n'est pas utilisé par les systèmes UEFI. Il est ignoré.  

Voici une disposition hypothétique d'un disque avec une installation récente de Windows 10 n'ayant qu'une seule partition créée pendant le processus d'installation, le lecteur C :. La partition système UEFI est automatiquement créée et cachée à l'utilisateur, et la partition réservée Microsoft est également créée lors de l'installation et cachée à l'utilisateur. 

Ici, nous pouvons voir le MBR de protection résidant au LBA 0, qui pointe vers l'en-tête GPT au LBA 1.

Disposition hexagonale du MBR de protection

Voici un exemple d'agencement hexadécimal du MBR de protection :

Comme indiqué précédemment, les 440 premiers octets du code de démarrage ne sont pas utilisés par les systèmes UEFI. Ces 440 premiers octets peuvent être mis à zéro sur certains systèmes. Voici le MBR de protection de la station de travail que j'utilise pour écrire ce blog, où j'utilise un disque NVME Samsung de 1 To :

Comme vous pouvez le constater, l'intégralité du MBR de protection contient dans ce cas des zéros, à l'exception des quatre octets situés à l'offset 440 (qui ne sont pas utilisés), de la première "entrée de partition primaire" (qui pointe simplement vers le LBA 1 - l'en-tête GPT) et de la signature de démarrage située sur les deux derniers octets du secteur (0x55AA). 

Examinons maintenant de plus près l'entrée de partition qui existe dans un MBR de protection :

Le premier octet de l'entrée de la partition est fixé à 0x00 pour indiquer qu'il ne s'agit pas d'une partition amorçable. Dans un MBR traditionnel, cette valeur serait soit 0x00 (non amorçable), soit 0x80 (amorçable). Les trois octets suivants représentent le Démarrage de la CHS (Cylindre/Tête/Secteur), qui correspondra à la valeur de 4 octets dans le fichier Démarrage LBA au niveau de l'octet 8. La valeur initiale du SHC est fixée à 0x000200 qui, une fois décomposée et convertie en adresse LBA, est égale à 1.

La valeur suivante d'un octet est fixée à 0xEE pour le type d'OS : Protection GPT. La valeur de trois octets au décalage 5 est fixée à l'adresse CHS du dernier bloc logique sur le disque. Le LBA de départ, qui nous amène à l'en-tête de partition GPT, est situé à l'offset 8 pour quatre octets et sa valeur sera fixée à 0x01000000 (ou LBA 1 en lecture little endian). Les 4 derniers octets de l'enregistrement à l'offset 12 représentent la taille du disque moins un. Il est défini à 0xFFFFFF si la taille du disque est trop importante pour être représentée dans ce champ, ce qui est très probablement le cas.

Réparation d'une MRB protectrice

Si le MBR est corrompu, perdu ou effacé, vous pouvez remplacer le secteur 0 en copiant le MBR de protection d'un autre disque. Vous pouvez également en créer un à partir de zéro, en laissant 0x00 du décalage 0 au 446, puis en créant une entrée de partition générique pointant vers le LBA 1, en vous assurant que 0xEE existe au décalage 4 pour indiquer le type de système d'exploitation protecteur GPT. Enfin, placez la signature de démarrage (0x55AA) sur les deux derniers octets du secteur.

Entrée générique

446447448449450451452453454455456457458459460461
00000200EEFFFFFF01000000FFFFFFFF

Signature des bottes

510511
55AA

Les éléments suivants suffiraient pour un MBR protecteur reconstruit :

Conclusion

Dans ce premier épisode, nous avons exploré le MBR de protection et son rôle crucial dans la rétrocompatibilité avec les anciens systèmes. Nous avons examiné comment le MBR de protection marque l'ensemble du disque comme étant utilisé par GPT, empêchant ainsi les anciens systèmes de mal interpréter la structure du disque. En comprenant la structure et la fonction du MBR de protection, vous disposez maintenant d'une base solide pour approfondir le schéma GPT.

Nous allons maintenant nous concentrer sur l'en-tête GPT, la pierre angulaire du schéma GPT qui définit l'agencement du disque et garantit l'intégrité des données. Dans la partie 2, nous décomposerons l'en-tête GPT, en examinant chaque champ et sa signification. Restez à l'écoute car nous continuons à démêler les complexités du schéma GPT, ce qui vous permettra d'acquérir les connaissances nécessaires pour gérer et récupérer efficacement les données des périphériques de stockage modernes.

Vous souhaitez approfondir la structure des TPG ?

En Partie 2Nous décomposons les En-tête GPT et expliquer comment il garantit l'intégrité des données sur le disque.
Ensuite, dans Troisième partie, nous explorons les Tableau d'entrée des partitions GPT et ce que les analystes judiciaires doivent savoir lorsqu'ils reconstruisent les tables de partition.

Facebook
Twitter
Courriel
Imprimer

5 réponses

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *