Résumé
[version du 12 août 2021]
Le 11 août 2021, Microsoft a publié un avis concernant la
vulnérabilité CVE-2021-36958 affectant le spouleur d’impression (print
spooler). Microsoft indique que cette vulnérabilité permet une
exécution de code arbitraire à distance. Le CERT/CC ajoute qu'en se
connectant à une imprimante malveillante, l'attaquant peut exécuter du
code arbitraire avec les privilèges SYSTEM [8].
Aucun correctif n'est disponible pour l'instant. Microsoft conseille
donc de désactiver le service.
Comme la désactivation complète des impressions est difficilement
réalisable, le CERT-FR renvoie vers les recommandations formulées dans
le paragraphe [version initiale].
[version du 11 août]
Microsoft a publié une mise à jour de sécurité
(KB5005652) corrigeant la
vulnérabilité référencée par l'identifiant CVE-2021-34481 [7]. Point
important : Microsoft a récemment pris connaissance d'un scénario
d'attaque à distance pour cette vulnérabilité dont l'impact initial se
restreignait alors seulement à une élévation de privilèges locaux.
Ainsi, Microsoft a donc révisé son évaluation en conséquence. Le score
CVSSv3 de cette vulnérabilité s'élève maintenant à 8.8. Nous vous
recommandons d'installer ces mises à jour immédiatement.
[version du 16 juillet, 15h30]
Le 6 juillet 2021, Microsoft annonçait un correctif pour la
CVE-2021-34527 afin de protéger les systèmes Windows contre une attaque
distante. Cependant, le 15 juillet 2021, Microsoft a publié un
bulletin de sécurité [3] qui confirme l'existence d'une vulnérabilité
non corrigée permettant une élévation locale des privilèges avec
les privilèges SYSTEM. Cette vulnérabilité est référencée par
l'identifiant CVE-2021-34481 [4]. L'attaquant exploite la
vulnérabilité en accédant au système cible localement. Il peut également
s'appuyer sur une interaction avec l'utilisateur pour effectuer les
actions requises afin d'exploiter la vulnérabilité (ex. : inciter un
utilisateur légitime à ouvrir un document malveillant).
Le CERT-FR rappelle que les recommandations ci-dessous sont toujours
valables. Par ailleurs, des compléments d'aide à la détection ont été
ajoutés ci-après.
[version du 12 juillet, 15h30] Correction d'une erreur dans le nom
du chemin "C:\Windows\System32\spool\drivers", il s'agit bien de
"drivers" et non pas "driver".
[version du 08 juillet 2021 14h30] Le correctif publié par
Microsoft ainsi que la sécurisation de la fonctionnalité "Point and
Print" (décrite ci-dessous) permettent de se prémunir contre une
exécution de code arbitraire à distance. L'application de ces mesures
permet d'envisager la réactivation de l'impression distante sur les
serveurs d'impression (cf. ci-dessous).
[version du 08 juillet 2021 09h00 : information concernant la
publication des correctifs, ajout d'une recommandation de l'éditeur]
voir ci-dessous.
[version du 07 juillet 2021 10h00 : information concernant la
publication des correctifs] se référer à la section "Solution".
[version initiale]
Cette alerte annule et remplace l’alerte CERT-FR
CERTFR-2021-ALE-013.
Le 29 juin 2021, deux chercheurs ont présenté une façon d’exploiter une
vulnérabilité affectant le spouleur d’impression (print spooler) et
permettant une exécution de code à distance, entraînant une élévation de
privilèges avec les droits SYSTEM.
Le 1er juillet 2021, Microsoft a publié un avis de sécurité indiquant
que cette vulnérabilité « jour zéro » (zero day) est différente de la
vulnérabilité CVE-2021-1675 initialement corrigée lors du Patch Tuesday
du 09 juin 2021.
Cette nouvelle vulnérabilité, CVE-2021-34527, affecte le spouleur
d’impression (print spooler) qui est un composant du système
d’exploitation Windows activé par défaut. Elle permet à un attaquant
d’exécuter du code arbitraire à distance avec les droits SYSTEM.
Des codes d'exploitation sont publiquement disponibles sur Internet,
ce qui signifie que l’exploitation de cette vulnérabilité est imminente
ou déjà en cours.
Ces codes exploitent la possibilité offerte par le service spouleur
d'impression de téléverser un pilote, dans le cadre de l’ajout d’une
nouvelle imprimante, pour installer un code malveillant. Ce service
étant activé par défaut, tout système Windows est donc actuellement
vulnérable, avec la possibilité d'une exploitation à distance.
En particulier, au sein d'un système d'information Microsoft, les
contrôleurs de domaine Active Directory sont particulièrement exposés,
puisqu'un attaquant, ayant préalablement compromis un poste utilisateur,
pourra in fine obtenir les droits et privilèges de niveau
"administrateur de domaine" Active Directory.
L’ANSSI recommande fortement de réaliser les actions suivantes :
-
pour tous les systèmes ne nécessitant pas le service d'impression,
en particulier pour les contrôleurs de domaine (le CERT-FR
recommande fortement de ne jamais activer le service spouleur
d'impression sur les contrôleurs de domaine) :
- modifier le type de démarrage vers la valeur "Désactivé" /
"Disabled" pour le service "Spooler" (description : "Spouleur
d'impression" / "Print Spooler", exécutable : "spoolsv.exe"),
- une fois le service désactivé, il est nécessaire d’arrêter
manuellement le service ou de redémarrer la machine ;
- appliquer une politique de filtrage réseau afin d'éviter les
latéralisations sur les systèmes nécessitant le service d'impression
(notamment les postes de travail) : on pourra notamment utiliser le
pare-feu intégré pour interdire les connexions entrantes sur les
ports 445 et 139 (canaux nommés SMB) ainsi qu'interdire les
connexions à destination du processus spoolsv.exe ;
- [08 juillet 2021 14h30] sur les équipements non corrigés ou
qui ne sont pas des serveurs d'impression, désactiver la prise
en compte des demandes d’impression distante
sur l’ensemble des
systèmes, tout en laissant la possibilité de lancer une
impression locale. Ce paramètre peut être défini à l’aide d’une
Stratégie de Groupe (Group Policy) : le paramètre « Autoriser le
spouleur d’impression à accepter les connexions des clients » doit
être à l’état « Désactivé »/« Disabled » (« Configuration
ordinateur » / «Modèle d’administration » / « Imprimantes ») ;
- mettre en place une détection système et réseau dans le but de
détecter les exploitations sur les équipements vulnérables, les
éventuelles latéralisations ainsi que la compromission des contrôles
de domaine Active Directory ;
- suivre les recommandations de sécurisation d'Active Directory [1].
Informations d'aide à la détection système
Une première mesure de détection des codes d'exploitation actuels
consistera en la surveillance des processus enfant créés par le
processus spoolsv.exe, les codes d'exploitation utilisant cette
technique pour exécuter un code malveillant. Pour tracer la création
d'un processus fils, on peut regarder les évènements suivants :
- l'évènement numéro 4688 du fournisseur
"Microsoft-Windows-Security-Auditing" enregistré dans le journal de
sécurité, si la stratégie est configurée pour le générer car cet
évènement n'est pas produit par défaut ;
- l'évènement numéro 1 du fournisseur "Microsoft-Windows-Sysmon"
enregistré dans le journal sysmon si l'outil System Monitor est
installé.
Il convient de noter que les moyens de détection ci-dessus sont
pertinents dans le cadre de la détection d'une exploitation à l'aide des
codes publiés le 29 juin 2021.
En complément, il pourrait être utile de tracer :
- l’évènement numéro 11 du fournisseur
"Microsoft-Windows-Security-Mitigations/KernelMode", qui pourra être
utilisé afin d’identifier le chargement d’une bibliothèque dynamique
(dll) non signée (champs SignatureLevel et ImageName) par le
processus spoolsv.exe
(« ProcessPath:*\Windows\System32\spoolsv.exe »).
- l’évènement numéro 7 du fournisseur
"Microsoft-Windows-Sysmon/Operational" avec une configuration
appropriée de System Monitor pour identifier le chargement de
bibliothèque (dll) par le processus spoolsv.exe
("Image:\C:\Windows\System32\spoolsv.exe") depuis le répertoire
de pilote (champ
"ImageLoaded:C:\Windows\System32\spool\drivers\*") avec le
champ "Signed" à false
- [16 juillet 2021] L’évènement numéro 808 du fournisseur
"Microsoft-Windows-PrintService/Admin" indique qu'une erreur est
survenue lors du chargement d'un pilote (le chemin de la dll est
mentionné par le champ PluginDllName). Un nom peu commun peut être
considéré comme un marqueur. Note: l'enregistrement de cet évènement
est activé par défaut.
- [16 juillet 2021] Certaines valeurs non usuelles remontées par
l’évènement numéro 13 du fournisseur
"Microsoft-Windows-Sysmon/Operational" peuvent indiquer une
exploitation. Par exemple : DriverVersion=0.0.0.0,
DriverDate=01/01/1601 ou encore Manufacturer=(Empty). L'installation
d'un pilote d'imprimante avec une valeur "Manufacturer" vide est une
action devant être considérée comme suspecte. De plus, si les clés
"Configuration File" et "Data File" contiennent la même valeur,
cela peut-être considéré comme une exploitation réussie. Note : la
configuration doit être modifiée pour surveiller les modifications
de registre dans
HKLM\System\CurrentControlSet\Control\Print\Environments\Windows
x64\Drivers\Version-* par spoolsv.exe. Une règle Sigma peut être
consultée en suivant le lien [5].
- [16 juillet 2021] Les codes d'exploitation publiques montrent
un caractère déterministe permettant une mise en détection à l'aide
de l’évènement numéro 316 du fournisseur
"Microsoft-Windows-PrintService/Operational". En effet, le champs
Param1 contient le nom du driver (1234, Mimikatz…) et le champs
Param4 les valeurs de pDriverPath, pConfigFile, pDataFile.
On s’intéressera particulièrement à une valeur suspecte de
pDataFile ou de Param1. Quand l'exploitation est réussie,
pConfigFile et pDataFile ont la même valeur : la DLL
malveillante. Note : cet évènement n'est pas activé par défaut, il
s'active de la façon suivante : wevtutil.exe sl
"Microsoft-Windows-PrintService/Operational" /e:True. Une règle
Sigma peut être consultée en suivant le lien [6].
Enfin, l’éditeur met à disposition un ensemble d’informations pour les
utilisateurs de la solution Microsoft 365 Defender [2].
Solution
[05 janvier 2022] La
vulnérabilité CVE-2021-36958 a été corrigée dans le Patch Tuesday de
septembre 2021 :
https://www.cert.ssi.gouv.fr/avis/CERTFR-2021-AVI-710/.
[16 juillet 2021] Le CERT-FR actualisera cette alerte lorsqu'un
correctif sera disponible pour la vulnérabilité CVE-2021-36958.
[11 août 2021] Microsoft a publié un correctif pour la vulnérabilité
CVE CVE-2021-34481. Le CERT-FR recommande son installation dans les
plus brefs délais.
[16 juillet 2021] Le CERT-FR actualisera cette alerte lorsqu'un
correctif sera disponible pour la CVE CVE-2021-34481.
[08 juillet 2021 14h30] Le CERT-FR recommande très fortement
d'appliquer le correctif sans délai, même si celui-ci semble corriger
uniquement l'exécution de code arbitraire à distance et non l'escalade
de privilège en local.
En outre, il est obligatoire de respecter la recommandation de
l'éditeur concernant la fonctionnalité "Point and Print" en
s'assurant que, si les clés de registre existent (ce n'est pas le cas
par défaut), celles-ci sont bien définies avec les valeurs suivantes :
- la clé de registre NoWarningNoElevationOnInstall
(HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows
NT\Printers\PointAndPrint) doit être absente ou égale à 0 (DWORD)
- la clé de registre NoWarningNoElevationOnUpdate (même emplacement)
doit être absente ou égale à 0 (DWORD)
[06 juillet 2021] L'éditeur a publié des correctifs pour les
versions maintenues de son système d'exploitation, à l'exception des
versions Windows 2012 R2, Windows 2016 et Windows 10 Version 1607 pour
lesquelles un correctif sera publié ultérieurement.
[08 juillet 2021] Des correctifs sont désormais disponibles
pour toutes les versions maintenues de Microsoft Windows.
Important : Il convient de noter que les versions qui ne sont plus
maintenues, telles que Windows 10 Version 1903, sont affectées par la
vulnérabilité mais ne seront pas corrigées.