REDACTED

Mon voyage dans les méandres de la sécurité informatique.

View on GitHub

Le registre Windows et son exploitation dans un contexte forensique

Le composant principal autour duquel s’articule une partie non négligeable de nos efforts forensiques sur Windows est le registre Windows et les clés qui lui sont associées. Ledit registre est, de facto, une base de données qui sert à stocker les différentes configurations, paramètres et autres informations essentielles au bon fonctionnement du système d’exploitation.

Petit rappel préliminaire

Les clés et valeurs

Les clés sont des conteneurs qui agissent comme des dossiers pour organiser les informations. Elles peuvent contenir d’autres clés, ou des valeurs. Chaque clé est identifiée par un chemin d’accès unique dans la hiérarchie du registre.

Les valeurs, quant à elles, sont des éléments stockés à l’intérieur des clés, et contiennent elles-mêmes des données. Ainsi, dans l’exemple ci-dessous, Ordinateur\HKEY_CURRENT_CONFIG\Software\Fonts est la clé, LogPixels est une valeur, et 120 est la donnée associée à cette valeur (en hexadécimal dans notre cas)

Regedit

Comme mentionné précédemment, ces clés/valeurs sont utilisées pour stocker des configurations, des paramètres, des préférences ou d’autres types d’informations. Chaque valeur est associée à un nom (comme LogPixels ci dessus), et au type de données qu’elle utilise, comme des chaînes de caractères, des nombres, des booléens, etc. Ces clés et valeurs ne sont pas là pour faire joli, mais sont au centre de plusieurs fonctionnalités “tangibles” de Windows, impactant l’expérience de ses utilisateurs. Par exemple :

Il est bien entendu possible de lire, modifier, ou encore supprimer ces clés et valeurs manuellement via certains outils appropriés, le plus populaire étant l’éditeur de registre par défaut déjà inclus dans Windows, regedit. Pour y accéder, rien de plus simple : touche windows + r, puis entrez “regedit” et appuyez sur entrée.

Les clés racines

Il existe cinq clés “racines” utilisées par le registre Windows et qui contiennent toutes les autres sous-clés. Elles servent à représenter la structure logique des clés de registre sous Windows :

Les ruches

Les données du registre sont en réalité stockées sur le disque en tant que fichiers appellés “ruches”, chacune d’entre elles représentant une partie du registre. Lorsque Windows démarre, il charge ces ruches en mémoire afin que les programmes et le système puissent y accéder rapidement. Ainsi, les modifications apportées au registre sont d’abord effectuées en mémoire, puis sauvegardées sur le disque dans les fichiers de ruches correspondants. Si nous n’avons donc pas accès à un système en temps réel, alors nous devrons aller chercher ces ruches dans l’arborescence de fichier Windows, car c’est à l’intérieur de celles-ci que se situent réellement les données sur disque qui nous intéressent.

La majorité de ces ruches sont situées dans le répertoire C:\Windows\system32\Config et sont liées à un emplacement dans le registre :

screenshot des ruches

Deux autres ruches sont en outre situées dans le répertoire de l’utilisateur actuel (donc C:\Users\[utilisateur]) :

Et enfin, la dernière ruche nous concernant, AmCache, est située dans le dossier de compatibilité applicative (mes traductions sont décidément les meilleures) : C:\Windows\AppCompat\Programs\Amcache.hve

Les journaux de transaction et les sauvegardes du registre

Afin de garder une trace des changements apportés au registre, Windows met à disposition de l’utilisateur deux types de fichiers:

Explorer le registre Windows

Une fois en possession de ruches (précédemment récupérées dans une hypothétique étape de collecte pour les besoins du scénario), il nous faut donc explorer celles-ci en utilisant des outils en général créés et maintenus par des tierces parties, regedit étant incapable d’importer des ruches et ne fonctionnant de toute manière qu’en temps réel (sur un système “à chaud”).

Notre couteau suisse : Registry Explorer

L’un des outils développés par George Zimmerman (un nom qui reviendra souvent dans le domaine de la forensique numérique), Registry Explorer (souvent abrévié “RegExplorer”), permet d’intéragir avec le registre Windows directement. Les utilisateurs peuvent ainsi effectuer des recherches, exporter/importer des données, et ajouter ou supprimer des clés. Il offre la possibilité d’importer plusieurs ruches dans l’outil afin de les analyser simultanément, et d’incorporer les journaux de transaction auxdites ruches afin de visualiser des versions plus récentes et “fiables” de ces dernières si le besoin s’en fait sentir.

screenshot de regexplorer

Pour charger les ruches (peu importe que le système visé soit celui sur lequel l’enquêteur est connecté, ou une sauvegarde), il suffit de se rendre dans l’onglet “File” -> “Load hive” de Registry Explorer.

Les premiers pas : récupération d’informations liées au système.

L’examen du registre Windows, c’est un peu comme une course, au final. Ainsi les premières clés à récupérer sont celles qui contiennent les informations les plus généralistes concernant la machine sur laquelle nous enquétons :

screenshot de la ruche SAM

Le jog : récupération d’informations liées à l’utilisation de fichiers/dossiers

Ensuite, savoir quels fichiers et dossiers notre utilisateur a intéragi avec est particulèrement important. Les clés à récupérer dans ce cadre-ci sont :

screenshot de ComDlg32

Le sprint : récupération d’informations relatives à l’exécution de programmes

Les clés suivantes sont utilisées afin que l’enquêteur forensique puisse savoir quels programmes ont été exécutés par l’utilisateur sur lequel nous enquêtons. Elles incluent :

screenshot de la clé bam

Vitesse de croisière : récupération d’informations liés au périphériques tiers

Comme vous pouvez le voir, je ne fais pas de cardio habituellement et ma tentative d’analogie sur la course à pied commence à s’essoufler, mais bon. Une fois que nous avons récoltés les informations clés des précédentes étapes, il est pertinent de se tourner vers les périphériques extérieurs ayant été connectés à ladite machine (clés USB ou disques additionels).

screenshot de usbstor

Conclusion

Pour conclure, l’analyse du registre est un aspect essentiel du processus forensique sous Windows, et savoir lesquelles de ces clés sont les plus pertinentes est un atout pour tout analyste forensique. En attendant, votre humble serviteur a préparé une petite antisèche, disponible en cliquant ici, et vous donne rendez-vous au prochain article (quand je saurais quoi ajouter) !