Windows : comment se protéger de la vulnérabilité PrintNightmare ?

I. Présentation

Dans cet article, je vais vous expliquer comment vous protéger contre la vulnérabilité PrintNightmare, associée à la référence CVE-2021-34527 et qui cible le service "Spouleur d'impression" de Windows. Nous mettrons en place une GPO de protection.

PrintNightmare, c'est le nom de la nouvelle vulnérabilité critique qui touche le service "Spouleur d'impression" de Windows et qui inquiète particulièrement, car elle est activement exploitée. D'ailleurs, elle peut être exploitée à distance et lorsqu'une attaque est menée à bien, elle peut permettre à un attaquant de récupérer les droits SYSTEM sur un contrôleur de domaine.

Dans un premier temps, cette vulnérabilité a été associée à une nouvelle manière d'exploiter la faille CVE-2021-1675, corrigée le 8 juin dernier à l'occasion du Patch Tuesday. Mais in fine, il s'agit bien d'une nouvelle faille de sécurité de type Zero Day (qui a fuité un peu par erreur) et qui a sa propre référence CVE : CVE-2021-34527.

La faille de sécurité PrintNightmare concerne de nombreuses versions de Windows : Windows 7, Windows 8.1 et Windows 10, ainsi que toutes les versions de Windows Server depuis Windows Server 2008, y compris en Server Core (installation sans interface graphique).

L'ANSSI estime qu'il faut prendre cette vulnérabilité très au sérieux, tout comme l'agence américaine CISA (Cybersecurity and Infrastructure Security Agency).

Voici les recommandations à appliquer pour se protéger contre cette vulnérabilité.

II. PrintNightmare : les recommandations pour se protéger

Pour appliquer les recommandations ci-dessous, tenez compte des rôles de vos serveurs (contrôleurs de domaine, serveur d'impression, etc.), mais aussi des postes de travail. En fonction de votre infrastructure et des usages, tout n'est pas forcément applicable sur toutes les machines.

A. Désactiver le service "Spouleur d'impression"

Tout d'abord, il est recommandé de désactiver le service Spouleur d'impression sur les contrôleurs de domaine et sur tous les serveurs où le spouleur d'impression n'est pas utile (ce service gère les interactions entre votre machine et les imprimantes).

Attention : quand ce service est arrêté, il n'est plus possible d'imprimer à partir de l'hôte local. Cela n'est pas gênant sur la majorité des serveurs, mais à l'inverse cela peut être problématique sur les postes de travail.

Pour définir le type de démarrage "Désactivé" sur le service "Spouleur d'impression" ou "Print Spooler" en anglais. Voici la commande PowerShell qui permet d'effectuer cette configuration :

Set-Service -Name Spooler -StartupType Disabled

Une fois que le type de démarrage du service est modifié, il faut arrêter le service. En PowerShell, cela donne :

Stop-Service -Name Spooler

Une autre manière de faire consiste à créer une GPO. Grâce à cette GPO, on va pouvoir désactiver le service et l'arrêter. Parcourez les paramètres de cette façon :

Configuration ordinateur > Préférences > Paramètres du Panneau de configuration > Services

Créez une nouvelle configuration de service via un clic droit et configurez-le de cette façon :

Note : pour appliquer cette configuration de service à seulement certains hôtes, vous pouvez utiliser le ciblage avancé sur cet élément via l'onglet "Commun".

Sachez que de manière générale, sans parler de cette faille de sécurité, il est recommandé de désactiver le "Spouleur d'impression" sur les contrôleurs de domaine.

Passons à la seconde recommandation.

B. Bloquer les interactions distantes sur le Spouleur d'impression

Le paramètre "Autoriser le spouleur d'impression à accepter les connexions des clients" doit être désactivé pour bloquer les connexions en question.

Attention : quand ce paramètre est désactivé, les demandes d'impression distantes sont refusées. Concrètement, vous ne pouvez plus partager d'imprimantes sur l'hôte où s'applique cette stratégie. Par contre, il est toujours possible d'imprimer (sauf si le service Spouleur d'impression est arrêté) : ce qui est intéressant pour les postes clients. Il n'y a que le serveur d'impression que ça devrait gêner, finalement.

Toujours dans une GPO, ce paramètre est accessible à cet endroit :

Configuration ordinateur > Stratégies > Modèles d'administration > Imprimantes

C. Configurer le pare-feu Windows

L'ANSSI recommande "d'interdire les connexions entrantes sur les ports 445 et 139 (canaux nommés SMB) ainsi qu'interdire les connexions à destination du processus spoolsv.exe". Là encore, nous pouvons agir par GPO et ces règles sont là pour protéger les postes de travail puisqu'ils ont besoin du service d'impression.

Note : si vous utilisez le pare-feu de votre Endpoint, ce n'est pas utile de configurer le pare-feu de Windows par GPO : modifiez directement la politique de votre solution de sécurité pour créer des règles.

Suivez le chemin suivant :

Configuration ordinateur > Stratégies > Paramètres Windows > Paramètres de sécurité > Pare-feu Windows Defender avec fonctions avancées de sécurité (x2) > Règles de trafic entrant

Créer une nouvelle règle de trafic entrant via un clic droit : un assistant va démarrer.

Pour le type de règle, on ne va pas s'embêter à créer nos propres règles, car ce que l'on cherche à faire correspond à un modèle prédéfini. Choisissez "Partage de fichiers et d'imprimantes".

Cochez ensuite toutes les règles pour tout bloquer.

Concernant l'action à appliquer, choisissez "Bloquer la connexion". Bien sûr. 😉

Une fois la règle créée, vous obtenez le résultat ci-dessous. Ce qui pourrait vous gêner éventuellement, c'est le blocage du SMB pour l'accès distant aux fichiers des machines. Là encore, testez et surtout adaptez en fonction des rôles de la machine ciblée.

D. Détection d'une attaque sur le système

Lorsqu'une machine est victime de la faille de sécurité PrintNightmare, elle va générer des événements que l'on peut capturer et détecter à l'aide de l'Observateur d'événement de Windows, au sein du journal lié à la sécurité, mais aussi du journal de l'outil System Monitor (s'il est installé). Ces logs peuvent être collectés et analysés dans un outil adapté de type SIEM.

L'ANSSI indique qu'il faut prêter attention à l'événement avec un ID 4688 lorsqu'il est généré par le processus spoolsv.exe (Spouleur d'impression). Ce type d'événement n'est pas généré par défaut, voici comment l'activer.

Pour assurer un suivi des processus dans l'observateur d'événements, il faut activer le paramètre "Auditer le suivi des processus". Il se situe à cet emplacement :

Configuration ordinateur > Paramètres Windows > Paramètres de sécurité > Stratégies locales > Stratégie d'audit

Ensuite, pour générer les événements avec l'ID 4688, il faut activer le paramètre "Inclure une ligne de commande dans les événements de création de processus" qui se trouve sous :

Configuration ordinateur > Stratégies > Modèles d'administration > Système > Audit de création de processus

Sur les serveurs où l'application des règles de protection n'est pas possible, il est d'autant plus important de mettre en place cette génération des logs et d'en assurer la surveillance.

Quelques mots pour finir...

- Sur les postes de travail et les serveurs (autre que contrôleur de domaine et serveur d'impression), il sera possible dans la majorité des cas de désactiver le paramètre de GPO "Autoriser le spouleur d'impression à accepter les connexions des clients" et de configurer le pare-feu Windows, ce qui permettra de se protéger.

- Sur les contrôleurs de domaine, on pourra désactiver et arrêter le service Spouleur d'impression, et désactiver le paramètre de GPO "Autoriser le spouleur d'impression à accepter les connexions des clients" en complément. Si vous manipulez le pare-feu, attention avec les règles qui bloquent le SMB, vous allez avoir de mauvaises surprises : cela va bloquer l'accès au partage SYSVOL.

- Sur les serveurs d'impression, cela semble difficile d'appliquer ces recommandations sans remettre en cause le bon fonctionnement du service d'impression. Si vous utilisez une solution d'impression tierce avec son propre spouleur, alors ce sera surement une chance, car vous pourrez probablement appliquer une ou plusieurs de ces recommandations. Sinon, il faut mettre les serveurs d'impressions sous surveillance.

J'espère que cet article pourra vous aider à combattre la vulnérabilité PrintNightmare ! Bon courage !

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian Burnel

Ingénieur système et réseau et cofondateur d'IT-Connect. Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

florian a publié 3118 articlesVoir toutes les publications de cet auteur

2 thoughts on “Windows : comment se protéger de la vulnérabilité PrintNightmare ?

  • Hello

    Merci pour les explications et recommandations.
    Pour Linux y a t’il des recommandations spécifiques quant au spouleur ?
    Et merci pour les articles réguliers et toujours documentés.

    @+

    Répondre
    • Hello Christophe,
      En l’occurrence cette faille de sécurité ne touche pas Linux, mais peut-être que tu posais la question de manière générale?
      Bonne journée
      Florian

      Répondre

Laisser un commentaire

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

 

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.