Arkendia Classrooms
Leçon 17 sur 28 · 17 min

Architecture de Windows et notions de registre

Dans la majorité des entreprises, les postes de travail tournent sous Windows, et leurs identités sont gérées par Active Directory. Un défenseur qui ne comprend que Linux passerait donc à côté de l'essentiel du terrain. Dans ce chapitre, vous allez découvrir Windows « de l'intérieur » : comment il s'organise, comment il gère les droits, et où il range sa configuration, le fameux registre.

Au chapitre précédent, vous avez appris à observer un système Linux avec les processus, les services, les droits et les journaux. Vous allez retrouver exactement les mêmes notions sous Windows, avec d'autres noms et d'autres outils. Pour les exercices, utilisez votre propre ordinateur Windows ou, mieux, une machine virtuelle Windows dans votre laboratoire (l'éditeur propose des versions d'évaluation officielles pour cet usage ; vérifiez toujours les conditions de licence).

Les grandes lignes de l'architecture

Windows est organisé en deux grands « mondes » :

  • Le mode noyau (kernel mode), où s'exécutent le cœur du système et les pilotes. Un code qui s'y exécute a un accès total au matériel et à la mémoire : un pilote défaillant ou malveillant peut compromettre toute la machine.
  • Le mode utilisateur (user mode), où tournent les applications. Chaque application est isolée des autres et doit demander au noyau, via des appels système, tout ce qui touche au matériel.

Cette séparation est le même principe que sous Linux : un programme ordinaire ne peut pas casser le système, sauf s'il parvient à obtenir des privilèges plus élevés. Une grande partie de la sécurité consiste à empêcher cette élévation.

Processus, services et comptes de service

Comme sous Linux, un processus est un programme en cours d'exécution, avec un identifiant (PID) et un propriétaire. Vous pouvez les observer avec le Gestionnaire des tâches, ou en ligne de commande (tasklist, ou en PowerShell Get-Process, que nous verrons à la leçon 3).

Les services Windows sont l'équivalent des démons Linux : des programmes qui tournent en arrière-plan, souvent dès le démarrage, sans session utilisateur. Chaque service s'exécute sous un compte : un compte système très privilégié (LocalSystem), un compte de service à privilèges réduits, ou un compte dédié. Respecter le moindre privilège, c'est choisir pour chaque service le compte le plus limité possible. Beaucoup de processus de service apparaissent sous le nom svchost.exe, un hôte générique pour de nombreux services : sa présence en grand nombre est normale, mais un svchost.exe situé dans le mauvais dossier ou lancé par le mauvais parent serait suspect.

Le modèle de droits : SID, ACL et UAC

Windows identifie chaque utilisateur, groupe ou ordinateur par un SID (Security Identifier), un identifiant unique qui ne change pas même si le nom est modifié. Les droits d'accès à un fichier, à un dossier ou à une clé de registre sont décrits par une liste de contrôle d'accès (ACL), composée d'entrées qui disent « tel SID peut lire, tel autre peut modifier, tel autre est refusé ». Le système de fichiers NTFS les gère. Dans l'explorateur, c'est l'onglet « Sécurité » des propriétés d'un fichier ; en ligne de commande, icacls les affiche :

icacls C:\Users\Public

Par rapport au modèle Linux (propriétaire, groupe, autres), le modèle Windows est plus fin : on peut accorder ou refuser des droits précis à de nombreux utilisateurs et groupes à la fois, avec héritage depuis le dossier parent.

Le contrôle de compte d'utilisateur (UAC) joue le rôle de sudo : même un administrateur travaille par défaut avec un jeton de droits restreints, et une invite de confirmation s'affiche quand une action demande des droits élevés. Ne prenez pas l'habitude de cliquer « Oui » machinalement : c'est précisément cette invite qui protège.

Enfin, Windows intègre plusieurs protections : un antivirus intégré, un pare-feu, le chiffrement de disque, le démarrage sécurisé. Gardez-les actifs, comme vous l'avez appris dans le premier cours du parcours.

Le registre : la base de configuration

Le registre est une grande base de données hiérarchique où Windows et les applications stockent leur configuration : réglages du système, préférences des utilisateurs, programmes lancés au démarrage, etc. Il ressemble à une arborescence de dossiers :

  • les clés sont les « dossiers » ;
  • les valeurs sont les « fichiers » à l'intérieur d'une clé, avec un nom, un type (texte, nombre, données binaires…) et une donnée.

Les clés de premier niveau, appelées ruches (hives), sont :

RucheAbréviationContenu
HKEY_LOCAL_MACHINEHKLMConfiguration de la machine, valable pour tous les utilisateurs
HKEY_CURRENT_USERHKCUConfiguration de l'utilisateur connecté
HKEY_CLASSES_ROOTHKCRAssociations de types de fichiers et objets
HKEY_USERSHKUProfils de tous les utilisateurs chargés
HKEY_CURRENT_CONFIGHKCCProfil matériel courant

En réalité, seules deux de ces ruches, HKLM et HKU, sont des « vraies » ruches stockées dans des fichiers ; les autres sont des raccourcis. Ces fichiers (SYSTEM, SOFTWARE, SAM, SECURITY pour la machine, NTUSER.DAT pour chaque utilisateur) sont verrouillés pendant que Windows tourne.

Consulter le registre sans le casser

L'outil graphique est l'Éditeur du Registre (regedit). En ligne de commande, la commande reg est disponible :

reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Run"
reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\Run"

Ces deux clés, dites « Run », listent des programmes lancés automatiquement à l'ouverture de session. Elles sont consultées par tous les administrateurs, car c'est un endroit classique pour un logiciel légitime... comme pour un logiciel malveillant qui cherche à persister après un redémarrage. Du point de vue du défenseur, vérifier régulièrement ces clés (et les dossiers de démarrage, les tâches planifiées, les services) permet de repérer des programmes inattendus. C'est l'équivalent des tâches cron et des services systemd sous Linux.

Prudence. Une modification erronée du registre peut empêcher Windows de démarrer. Lisez, ne modifiez pas : en laboratoire, prenez d'abord un snapshot de la VM. Sur votre ordinateur personnel, ne modifiez jamais le registre sur la foi d'un tutoriel inconnu. Et rappelez-vous que ces explications concernent vos machines : consulter ou modifier le registre d'un système qui ne vous appartient pas est un accès non autorisé (articles 323-1 et suivants du Code pénal).

Le registre, source d'informations pour les enquêteurs

Le registre conserve aussi des traces d'activité : programmes récemment lancés, périphériques USB déjà branchés, réseaux Wi-Fi connus, documents récemment ouverts. C'est une mine d'informations pour l'analyse forensique après un incident : on y reconstitue ce qui s'est passé sur une machine. Cela signifie aussi que ce que vous faites sur une machine laisse des traces durables, une raison de plus de séparer strictement votre laboratoire de vos usages personnels.

Les chemins qui comptent

EmplacementÉquivalent LinuxRôle
C:\Windows/usr, /binLe système d'exploitation
C:\Program Files/usr, /optApplications installées
C:\Users\nom/home/nomProfil et fichiers de l'utilisateur
C:\Windows\System32\winevt\Logs/var/logJournaux d'événements
C:\Windows\System32\drivers\etc\hosts/etc/hostsFichier hosts local

À vous de jouer

Sur votre machine Windows (ou la VM de votre laboratoire), ouvrez un Invite de commandes ou PowerShell et exécutez :

whoami
whoami /groups
hostname
tasklist | more
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Run"
icacls C:\Windows\System32\drivers\etc\hosts

Dans votre carnet, notez : votre nom d'utilisateur et vos groupes ; les programmes qui se lancent au démarrage selon la clé Run ; et qui a le droit de modifier le fichier hosts.

Voir une solution

Groupes. whoami /groups affiche notamment BUILTIN\Users et, si vous êtes administrateur, BUILTIN\Administrators avec une mention indiquant si le groupe est « activé » dans le jeton courant (l'UAC restreint les droits par défaut).

Clé Run. Le résultat varie : beaucoup de machines n'ont que quelques entrées (applications de synchronisation, assistants matériels). Toute entrée que vous ne reconnaissez pas mérite une vérification.

Fichier hosts. icacls montre que les utilisateurs ordinaires peuvent lire le fichier, tandis que la modification est réservée aux administrateurs et au compte système (par exemple (F) pour « contrôle total » ou (M) pour « modification »). C'est cette protection qui empêche un programme lancé sans privilèges de rediriger les noms de domaine.

À retenir

  • Windows sépare le mode noyau (pilotes, cœur du système) du mode utilisateur (applications) ; le but de la sécurité est d'empêcher l'élévation de privilèges entre les deux.
  • Les droits s'expriment avec des SID et des ACL (NTFS), de façon plus fine que le modèle Linux ; l'UAC joue le rôle de sudo.
  • Les services Windows sont l'équivalent des démons Linux, et doivent tourner sous un compte au moindre privilège.
  • Le registre est une base hiérarchique de clés et de valeurs : HKLM (machine), HKCU (utilisateur courant), etc.
  • Les clés « Run » et les emplacements de démarrage sont des points de contrôle classiques pour détecter des programmes persistants non désirés.

Un seul ordinateur Windows se gère avec ces outils. Mais une entreprise en compte des centaines : comment gère-t-elle les utilisateurs et les règles de façon centralisée ? C'est le rôle d'Active Directory.

Publicité
Connectez-vous pour enregistrer votre progression. Se connecter