Forensic Windows : analyser les Shadow Copies (VSS)

Forensic Windows : analyser les Shadow Copies (VSS)

Un fichier supprimé, une ruche de registre modifiée, un exécutable effacé après usage : sur un système Windows, ces éléments peuvent encore exister dans un cliché instantané, que l'on appelle aussi une Shadow Copy. Encore faut-il savoir les retrouver et les extraire.

Dans cette quatorzième partie de la série consacrée au forensic Windows, nous allons nous intéresser aux clichés instantanés créés par le service Volume Shadow Copy (VSS) : leur fonctionnement, leur configuration dans le Registre, leur inventaire avec vssadmin, puis l'exploration de leur contenu avec mklink et ShadowCopyView. Si vous avez manqué les épisodes précédents, vous pouvez consulter la partie 11 sur la MFT, la partie 12 sur le SRUM et la partie 13 sur les Jump Lists.

Comprendre le Volume Shadow Copy

Une Shadow Copy (ou cliché instantané) est une image d'un volume à un instant donné, créée par le service VSS de Windows. En investigation numérique, elle permet d'accéder à l'état antérieur des fichiers, y compris ceux qui ont été modifiés ou supprimés depuis.

Des points de restauration au service VSS

Les points de restauration sont apparus avec Windows Me, puis ont été repris par Windows XP. À cette époque, le mécanisme reposait sur un filtre qui surveillait certains types de fichiers et en conservait une copie avant leur modification.

Le Volume Shadow Copy Service (VSS) est apparu avec Windows XP et Windows Server 2003. Il permet de créer des clichés instantanés d'un volume, même lorsque des fichiers sont ouverts et en cours d'utilisation. Depuis Windows Vista, la restauration du système s'appuie sur VSS : un point de restauration correspond donc à une Shadow Copy du volume. D'autres fonctionnalités reposent sur ce service, comme les versions précédentes des fichiers, la Sauvegarde Windows Server ou les clichés instantanés des dossiers partagés sur un serveur de fichiers.

Le principe de la copie sur écriture

Contrairement à une sauvegarde classique, un cliché VSS ne correspond pas à une copie complète du disque. Le service s'appuie sur un mécanisme de copie sur écriture (copy-on-write) qui enregistre uniquement les blocs modifiés après la création du cliché. Cette méthode réduit considérablement l'espace de stockage nécessaire tout en conservant la possibilité de restaurer l'état d'un volume à une date donnée.

Elle a une conséquence directe pour l'analyste : lorsque la zone de stockage est pleine, Windows supprime les clichés les plus anciens. Pour aller plus loin sur l'architecture du service, la documentation Microsoft sur VSS détaille le rôle des demandeurs, des writers et des fournisseurs.

Illustration du fonctionnement des Shadow Copies (VSS) sous Windows

Pourquoi les Shadow Copies intéressent l'analyste forensic

Ces clichés instantanés permettent notamment de :

  • Retrouver des fichiers supprimés ou d'anciennes versions de documents
  • Récupérer d'anciennes versions des ruches de registre (SYSTEM, SOFTWARE, NTUSER.DAT, etc.) pour comparer l'état du système à différentes dates
  • Observer l'installation ou la désinstallation de logiciels
  • Mettre en évidence des traces laissées par un outil malveillant avant sa suppression

La configuration de VSS dans le Registre

La configuration du service VSS est stockée dans la clé suivante :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSS

Sa sous-clé Settings peut contenir des valeurs comme MaxShadowCopies, qui fixe le nombre maximal de clichés utilisés par la fonction des dossiers partagés (64 par défaut), ou IdleTimeout, qui définit le délai d'inactivité avant l'arrêt du service.

D’autres paramètres liés aux opérations de sauvegarde et de restauration sont stockés dans :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\BackupRestore

Cette clé contient notamment différentes règles relatives aux fichiers, aux répertoires ou aux clés de registre à exclure de certaines opérations de sauvegarde, de création de clichés ou de restauration.

Il faut cependant distinguer les différentes sous-clés. Par exemple, FilesNotToBackup fournit principalement des instructions aux applications de sauvegarde, mais n’exclut pas directement les fichiers des Shadow Copies. La sous-clé FilesNotToSnapshot concerne plus précisément les fichiers à retirer de nouveaux clichés.

Identifier les Shadow Copies disponibles

Avant toute analyse, il faut inventorier les Shadow Copies présentes sur le système.

Avec vssadmin

Windows fournit l'utilitaire vssadmin. Depuis une invite de commandes ouverte en tant qu'administrateur, exécutez la commande suivante :

vssadmin list shadows

Pour limiter la liste aux clichés d'un volume précis, ajoutez l'option /for= :

vssadmin list shadows /for=C:

Cette commande affiche l'ensemble des clichés présents, avec notamment :

  • L'identifiant du jeu de clichés et celui du cliché
  • Le volume d'origine
  • La date et l'heure de création
  • Le chemin du volume de cliché (champ Shadow Copy Volume), utilisé pour y accéder
  • Le fournisseur
  • Le type et les attributs du cliché

La commande vssadmin list shadowstorage affiche l'espace alloué à la zone de stockage des clichés pour chaque volume. Elle permet de comprendre pourquoi un système ne conserve que peu d'historique.

Avec PowerShell

Les clichés sont également exposés par la classe CIM Win32_ShadowCopy :

# Lister les Shadow Copies avec leur date de création et leur chemin d'accès
Get-CimInstance -ClassName Win32_ShadowCopy | Select-Object ID, InstallDate, VolumeName, DeviceObject

La propriété DeviceObject correspond au chemin \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopyN utilisé dans la suite de l'article.

Une fois l'inventaire réalisé, sélectionnez un cliché antérieur à la période suspecte afin de rechercher des traces qui n'avaient pas encore été supprimées ou modifiées.

Accéder à une Shadow Copy avec mklink

Dans la sortie de vssadmin, repérez le champ Shadow Copy Volume, qui contient un chemin semblable au suivant :

\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy42

Notez le numéro correspondant au cliché qui vous intéresse.

À l’aide de la commande Mklink, nous pouvons créer un lien symbolique vers cette version :

REM Remplacez 42 par le numéro du cliché relevé dans la sortie de vssadmin
mklink /d C:\ShadowCopy42 \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy42\

Vous pouvez ensuite parcourir l'ancienne version du volume à partir du lien créé et extraire les éléments nécessaires à l'investigation, comme un fichier supprimé depuis ou une ruche de registre. Dans le cliché, les ruches situées sous Windows\System32\config\ ne sont pas verrouillées par le système : elles peuvent être copiées directement.

Ces éléments peuvent ensuite être analysés à l'aide des outils présentés dans les articles précédents, par exemple Registry Explorer pour les ruches. Une fois l'analyse terminée, supprimez le lien avec la commande rmdir C:\ShadowCopy42 : seul le lien est supprimé, le cliché reste intact.

Cette technique n'est pas réservée aux défenseurs : des attaquants l'utilisent pour lire des fichiers normalement verrouillés, comme la base NTDS.dit d'un contrôleur de domaine. C'est l'une des méthodes d'extraction présentées dans notre article sur la sécurité des mots de passe dans l'Active Directory. La création d'un lien vers HarddiskVolumeShadowCopy hors d'une investigation est donc un comportement à surveiller.

Explorer les clichés avec ShadowCopyView

Une autre méthode, plus simple, consiste à utiliser ShadowCopyView, un outil gratuit développé par NirSoft. Il liste l'ensemble des clichés du système, y compris ceux que la fonction « Versions précédentes » de Windows n'affiche pas, et permet d'en extraire des fichiers système grâce à son exécution avec des droits élevés.

L'outil ne nécessite aucune installation. Sur un système 64 bits, téléchargez la version 64 bits, puis lancez ShadowCopyView.exe avec des privilèges administratifs. La partie haute de la fenêtre affiche les Shadow Copies présentes sur le système ainsi que leur date de création.

Sélectionnez le cliché qui vous intéresse : son contenu s'affiche dans la partie basse. Sélectionnez ensuite un fichier ou un dossier, puis utilisez l'option Copy Selected Files To (touche F8 ou icône en forme de disquette) pour le copier vers le répertoire de votre choix.

REM Copier la ruche SOFTWARE du cliché n°42 vers C:\Temp
ShadowCopyView.exe /CopyFile "42" "Windows\System32\config\SOFTWARE" "C:\Temp\SOFTWARE_vss42"

Les limites des Shadow Copies

Les Shadow Copies ne constituent pas un historique permanent. Leur disponibilité dépend notamment :

  • De l'activation de la protection du système, qui n'est pas activée par défaut sur Windows 10 et Windows 11
  • De l'espace alloué à la zone de stockage (les clichés les plus anciens sont supprimés lorsqu'elle est pleine)
  • De la fréquence de création des clichés
  • Des exclusions définies dans FilesNotToSnapshot
  • De leur éventuelle suppression par un utilisateur ou un attaquant

Un fichier créé puis supprimé entre deux clichés peut ne jamais apparaître dans les versions disponibles.

Par ailleurs, de nombreux rançongiciels suppriment les Shadow Copies avant le chiffrement afin d'empêcher la restauration des données, par exemple avec vssadmin delete shadows /all /quiet ou wmic shadowcopy delete. Cette technique est référencée par MITRE ATT&CK sous l'identifiant T1490 (Inhibit System Recovery). L'absence de clichés peut donc être normale, notamment sur un poste où la protection du système n'a jamais été activée, mais elle peut aussi constituer un indice à corréler avec les traces d'exécution de vssadmin.exe ou wmic.exe (Prefetch, Amcache, BAM) et avec les journaux du système.

Conclusion

Les Shadow Copies constituent une source particulièrement précieuse en investigation numérique. Elles permettent d’accéder à des états antérieurs d’un volume et de retrouver des fichiers, des configurations ou des artefacts qui ont depuis été modifiés ou supprimés.

Grâce à vssadmin, mklink ou ShadowCopyView, l’analyste peut inventorier les clichés disponibles, explorer leur contenu et extraire les éléments nécessaires à son investigation. La comparaison de plusieurs Shadow Copies permet également d’observer l’évolution du système dans le temps et de reconstruire une chronologie plus complète des événements.

Leur absence, enfin, n'est jamais neutre : elle traduit soit une configuration par défaut, soit une suppression volontaire, et dans ce second cas, elle devient elle-même un élément de l'enquête.

Ajouter IT-Connect à mes
sources préférées

author avatar

Consultant et formateur expert Windows Server et Cloud Azure. Chercheur en Cybersécurité.