Windows

ntfs

Le système de fichier NTFS comporte des particularités qui sont intéressantes à connaître pour l’analyse forensic :

NTFS améliore la sécurité grâce à ACL (Access Control List), pour gérer les droits d’accès aux fichiers ;

NTFS permet la gestion des ADS (Alternate Data Stream), permettant de dissimuler des flux de données ;

chaque fichier stocké possède un timestamp, ainsi que des attributs MACE, Modified, Access, Create, Entry Modified ;

NTFS utilise une structure de données appelée MFT (Master File Table) qui stocke les données sur le système avec des informations de timestamp.

Un volume NTFS est organisé de la manière suivante :

NTFS Boot Sector : contient le bloc de paramètres BIOS qui stocke des informations sur la structure du volume et les structures du système de fichiers, ainsi que le code de démarrage qui charge Windows ;

Master File Table : contient les informations nécessaires pour extraire des fichiers de la partition NTFS, tels que les attributs d’un fichier ;

File System Data : stocke les données qui ne sont pas contenues dans la MFT ;

Master File Table Copy : inclut des copies des enregistrements indispensables à la restauration du système de fichiers en cas de problème avec la copie originale.

Lorsque vous formatez un volume avec NTFS, Windows crée une MFT et des fichiers de métadonnées sur la partition. La MFT est une base de données relationnelle composée de lignes d’enregistrements de fichiers et de colonnes d’attributs de fichiers. Il contient au moins une entrée pour chaque fichier d’un volume NTFS, y compris la MFT elle-même.

Comme la MFT stocke des informations sur elle-même, NTFS réserve les 16 premiers enregistrements de la MFT pour les fichiers de métadonnées (environ 16 Ko) qui sont utilisés pour décrire la MFT. Les fichiers de métadonnées commençant par un signe dollar ($) sont décrits dans le tableau Fichiers de métadonnées stocké dans la MFT. Les enregistrements restants de la MFT contiennent les enregistrements de fichiers et de dossiers, pour chaque fichier et dossier du volume.

Le tableau suivant présente les fichiers système présents à la racine.

Entrée

Filename

Description

0

$MFT

Il contient tous les enregistrements des fichiers stockés et leurs informations (nom, horodatage, type de fichier, etc.).

1

$MFTMirr

Cette partie est une copie des 4 premières entrées MFT utilisées pour restaurer une partition.

2

$LogFile

Il s’agit d’un fichier journal contenant toutes les actions effectuées sur le volume.

3

$Volume

Il contient toutes les informations du volume, telles que le nom ou la version du système de fichiers.

4

$AttrDef

Il contient la liste de tous les attributs définis par le système sur le volume.

5

.

Le répertoire racine.

6

$Bitmap

Cette partie représente les clusters free ou inutilisés sur le volume.

7

$Boot

Cette partie contient les informations de Boot.

8

$BadClus

Cette partie contient tous les clusters ayant des secteurs défectueux sur le volume. Cela permet également d’identifier les clusters non référencés.

9

$Secure

Contient des descripteurs de sécurité uniques pour tous les fichiers d’un volume.

10

$UpCase

Il contient une table de caractères Unicode en majuscules pour effectuer la correspondance sous Windows et DOS.

11

$Extend

Utilisé pour diverses extensions facultatives telles que $Quota, $ObjId, $Reparse.

Valeur

Description

$STANDARD_INFORMATION

0x10

Attributs de fichier (Read-Only ou Archive), horodatage et nombre de liens physiques.

$ATTRIBUTE_LIST

0x20

Une liste d’attributs qui constituent le fichier et la référence de fichier du fichier MFT dans lequel chaque attribut est situé.

| $FILE_NAME | 0x30 | Le nom du fichier en Unicode| | $OBJECT_ID | 0x40 | Identificateur d’objet de 16 octets attribué par le service de suivi de liens.| | $VOLUME_NAME | 0x60 | Le nom du volume.| | $VOLUME_INFORMATION | 0x70 | Information sur le volume | | $DATA | 0x80 | Le contenu du fichier| [ $INDEX_ROOT | 0x90 | Utilisé pour implémenter l’allocation de nom de fichier pour les grands répertoires. | | $INDEX_ALLOCATION | 0xA0 | Utilisé pour implémenter l’allocation de nom de fichier pour les grands répertoires.| | $BITMAP | 0xB0 | Un index bitmap pour un grand répertoire. | | $REPARSE_POINT |0xC0 | Les données du point d’analyse.|