Aujourd’hui, nous allons parler de la dernière crise de PrintNightmare concernant les utilisateurs de Windows et donner quelques recommandations pour protéger votre PC. Il s’agit d’une vulnérabilité critique située dans la file d’attente d’impression de Windows. L’Agence américaine de cybersécurité et de sécurité des infrastructures (CISA) a publié une déclaration à ce sujet, et depuis lors, tout le monde parle d’autre chose. Aujourd’hui, nous discutons de cette question de A à Z.
PrintNightmare : Comment ça a commencé ?
Début juin, le 8, Microsoft a publié CVE-2021-1675, intitulé « Windows Print Spooler Remote Code Execution Vulnerability ». À l’époque, il semblait qu’il s’agissait d’une menace mineure qui avait été identifiée avant d’être exploitée et qui pouvait être facilement corrigée. Par conséquent, il n’y avait aucune raison de s’inquiéter.
Ensuite, les principales agences de sécurité du monde ont commencé à publier des déclarations mettant en garde contre une mise à jour majeure de CVE-2021-1675. Ces messages exhortaient les utilisateurs et les organisations à adopter immédiatement des mesures pour se protéger de cette menace. Dans le même laps de temps, Microsoft a publié la vulnérabilité CVE-2021-34527, qui est celle qui est surnommée PrintNightmare.
Microsoft a attribué CVE-2021-34527 à la vulnérabilité d’exécution de code à distance qui affecte le spouleur d’impression Windows. Obtenez plus d’informations ici : https://t.co/OarPvNCX7O
– Intelligence de sécurité Microsoft (@MsftSecIntel) 2 juillet 2021
Contrairement à CVE-2021-1675, qui a reçu une cote de risque élevé, PrintNightmare a obtenu, dès le départ, la cote de vulnérabilité critique, car il permet l’exécution de code à distance. Depuis lors, il y a eu plusieurs mises à jour et Microsoft a travaillé sans relâche sur ce problème. En attendant, et en attendant une solution définitive, nous avons également pu trouver plusieurs recommandations pour atténuer les risques.
Qu’est-ce que PrintNightmare ?
Le problème réside dans une fonction de la file d’attente d’impression Windows, plus précisément dans RpAddPrinterDriverEx() qui, comme son nom l’indique, permet l’installation d’une nouvelle imprimante sur le système. Bien que le gestionnaire d’impression n’en restreigne pas l’accès, tout utilisateur authentifié peut l’utiliser à distance.
Alors, quel est le problème avec un utilisateur pouvant installer une imprimante à distance, et qu’est-ce qui rend PrintNightmare si dangereux ? Lorsque nous parlons d’installer une imprimante, nous faisons référence à son pilote. Si quelqu’un peut installer un pilote sans autorisation, il peut contenir de nombreux éléments malveillants. Ainsi, un attaquant qui accède à un système et utilise RpAddPrinterDriverEx() pour exécuter du code malveillant peut élever ses privilèges, envoyer des charges utiles au système compromis et même prendre le contrôle total d’un PC.
Le gestionnaire d’impression est un composant présent dans toutes les versions de Windows, c’est pourquoi Microsoft indique que toute installation de son système d’exploitation est susceptible d’être attaquée à l’aide de PrintNightmare. Par conséquent, quelle que soit votre version de Windows, votre système est en principe exposé à PrintNightmare et, par conséquent, vous devez prendre des mesures pour vous protéger.
Comment se protéger de PrintNightmare ?
Il existe déjà un correctif Microsoft pour corriger PrintNightmare, mais la vérité est qu’il n’est pas efficace.
Mais avant d’entrer dans le vif du sujet, rappelons-nous ce que nous avons mentionné au début et distinguons CVE-2021-1675 et CVE-2021-34527. Pour le premier, Microsoft a déjà publié des correctifs qui atténuent les risques spécifiques de cette vulnérabilité. Cependant, ces correctifs ne résolvent pas le problème associé à CVE-2021-34527.
D’un autre côté, Microsoft a publié hier des correctifs pour PrintNightmare pour différentes versions de Windows, dont certains ne sont officiellement plus pris en charge :
- KB5004945 : Windows 10 20H1, 20H2 et 21H.
- KB5004946 : Windows 10 version 1909
- KB5004947 : Windows 10 version 1809 et Windows Server 2019
- KB5004949 : Windows 10 version 1803
- KB5004950 : Windows 10 version 1507
- KB5004951 : Windows 7 SP1 et Windows Server 2008 R2 SP1
- KB5004958 : Windows 8.1 et Windows Server 2012
- KB5004959 : Windows Server 2008 SP2
Les mauvaises nouvelles ont commencé à arriver après ces versions, certains utilisateurs prétendent que le patch officiel est incomplet et n’a aucun effet.
0Patch avait publié un correctif non officiel qui s’était avéré efficace contre PrintNightmare, mais l’application du correctif officiel de Microsoft atténue l’effet de celui développé par 0patch, le système est donc à nouveau vulnérable à une attaque basée sur ce problème de sécurité :
Si vous utilisez 0patch contre PrintNightmare, N’appliquez PAS la mise à jour Windows du 6 juillet ! Non seulement il ne corrige pas le vecteur d’attaque local, mais il ne corrige pas non plus le vecteur distant. Cependant, il modifie localspl.dll, ce qui fait que nos correctifs qui résolvent le problème cessent de s’appliquer. https://t.co/osoaxDVCoB
— 0patch (@0patch) 7 juillet 2021
Microsoft a déclaré travailler sur le problème mais en attendant, la recommandation est de ne pas autoriser la mise à jour automatique de Windows si le correctif de 0patch est utilisé, car la protection offerte par le correctif est déjà suffisante. Une autre possibilité consiste à désactiver les services d’impression dont vous n’avez pas besoin sur chaque système. Par exemple, les serveurs, à moins qu’il ne s’agisse de serveurs d’impression, doivent désactiver ces services pour des raisons de sécurité. Et en ce qui concerne les terminaux, exactement la même chose, réduisez au minimum les services actifs liés à l’impression, surtout si nous parlons de systèmes à partir desquels vous n’imprimez jamais.
Pour vérifier l’état actuel du service de file d’attente d’impression, nous devrons ouvrir une console PowerShell et taper Get-Service -Name Spooler dans la ligne de commande. En conséquence, nous obtiendrons l’état actuel de celui-ci. Si le service est affiché désactivé ou désactivé, nous n’aurons pas à nous inquiéter, car la porte PrintNightmare reste fermée sur ce système. Dans le cas où le service est actif, il existe deux possibilités, tant qu’il ne s’agit pas d’un serveur d’impression, auquel cas ces mesures ne peuvent pas être appliquées, car le service cessera de fonctionner.
Le premier est sans aucun doute le plus drastique, et nous ne pouvons l’utiliser que si nous n’imprimons jamais à partir de ce système. Dans la même console Powershell que nous utilisons pour vérifier l’état du service, nous devrons taper les commandes suivantes :
Stop-Service -Spouleur de nom -Force
Set-Service -Spouleur de noms -StartupType désactivé
Le premier arrêtera immédiatement le service d’impression Windows, tandis que le second modifiera sa configuration afin qu’il ne soit plus chargé après le redémarrage du système. Lorsque Microsoft publie un correctif qui corrige définitivement PrintNightmare, vous pouvez le réactiver avec cette commande ;
Set-Service -Spouleur de noms -StartupType activé
De cette façon, après avoir redémarré le système, vous pourrez à nouveau imprimer normalement à partir de ce système.
La deuxième méthode consiste à désactiver uniquement la fonction de serveur d’impression du système. De cette façon, vous pourrez toujours imprimer à partir du système, mais il n’aura plus la fonction de serveur d’impression pour les autres ordinateurs et périphériques du réseau. Pour ce faire, vous devez accéder à l’éditeur de stratégie de groupe local et vous devez accéder à Stratégie de l’ordinateur local > Configuration de l’ordinateur > Modèles d’administration > Imprimantes et rechercher l’entrée Autoriser le gestionnaire de travaux d’impression à accepter les connexions client.
Double-cliquez ensuite dessus et vérifiez son statut, qui doit être désactivé pour éviter les risques PrintNightmare. Ainsi, s’il est défini sur Non configuré ou Activé, modifiez cette valeur et redémarrez le système.
Que faire si vous avez déjà installé le correctif Microsoft pour PrintNightmare ?
Il est possible qu’au moment où vous lisez ceci, vous ayez déjà installé le correctif officiel de Microsoft. Le problème est qu’il ne résout pas le problème PrintNightmare. Dans un tel cas, vous devrez modifier les paramètres du registre Windows. Le moyen le plus rapide de le faire est d’ouvrir une console (invite de commandes) et de taper la commande suivante :
« HKEY_LOCAL_MACHINE Software Policies Microsoft Windows NT Printers PointAndPrint » / v RestrictDriverInstallationToAdministrators / t REG_DWORD / d 1 / f
Tapez-le exactement comme indiqué, vous pouvez faire un copier-coller. Gardez à l’esprit que, bien qu’il soit divisé en raison de sa longueur, il s’agit d’une seule commande.
En principe, ces mesures devraient déjà apporter le niveau de sécurité nécessaire, même s’il est vrai qu’il faudra encore attendre que Microsoft publie une solution définitive.