Découvrez comment gérer la vulnérabilité Log4Shell dans Microsoft Defender pour point de terminaison

La vulnérabilité Log4Shell est une vulnérabilité d’exécution de code à distance (RCE) trouvée dans la bibliothèque de journalisation Apache Log4j 2. Apache Log4j 2 étant couramment utilisé par de nombreuses applications logicielles et services en ligne, il représente une situation complexe et à haut risque pour les entreprises du monde entier. Appelé « Log4Shell » (CVE-2021-44228, CVE-2021-45046), il introduit un nouveau vecteur d’attaque que les attaquants peuvent exploiter pour extraire des données et déployer des rançongiciels dans un organization.

Remarque

Reportez-vous aux blogs Conseils pour la prévention, la détection et la chasse à l’exploitation de la vulnérabilité Log4j 2 etMicrosoft Security Response Center pour obtenir des conseils et des informations techniques sur les recommandations d’atténuation spécifiques aux vulnérabilités et aux produits afin de protéger vos organization.

Vue d’ensemble des fonctionnalités de découverte, de surveillance et d’atténuation

Defender Vulnerability Management vous fournit les fonctionnalités suivantes pour vous aider à identifier, surveiller et atténuer l’exposition de votre organisation à la vulnérabilité Log4Shell :

  • Découverte : la détection des appareils exposés, à la fois Microsoft Defender pour point de terminaison les appareils intégrés ainsi que les appareils qui ont été découverts mais qui ne sont pas encore intégrés, est basée sur des logiciels vulnérables et des fichiers vulnérables détectés sur le disque.
  • Sensibilisation aux menaces : Vue consolidée pour évaluer l’exposition de votre organisation. Cette vue montre votre exposition au niveau de l’appareil et du logiciel, et permet d’accéder à des détails sur les fichiers vulnérables, comme la dernière fois qu’il a été vu, la dernière fois qu’il a été exécuté et la dernière fois qu’il a été exécuté avec des ports ouverts. Vous pouvez utiliser ces informations pour hiérarchiser vos actions de correction. L’affichage des données relatives aux appareils exposés dans le tableau de bord peut prendre jusqu’à 24 heures.
  • Options d’atténuation : Appliquez des options d’atténuation pour réduire votre risque d’exposition.
  • Repérage avancé : Utilisez la chasse avancée pour retourner les détails des fichiers log4j vulnérables identifiés sur le disque.

Remarque

Ces fonctionnalités sont prises en charge sur Windows 10 & Windows 11, Windows Server, Linux et macOS.

La prise en charge sur Linux nécessite Microsoft Defender pour point de terminaison client Linux version 101.52.57 (30.121092.15257.0) ou ultérieure.

La prise en charge sur macOS nécessite Microsoft Defender pour point de terminaison client macOS version 20.121111.15416.0 ou ultérieure.

Pour plus d’informations sur les versions prises en charge, consultez Plateformes et fonctionnalités de systèmes d’exploitation prises en charge.

Découverte des appareils exposés

Les fonctionnalités de gestion des vulnérabilités de Defender incorporées, ainsi que l’activation de la détection Log4j, dans le portail Microsoft Defender, vous aideront à découvrir les appareils exposés à la vulnérabilité Log4Shell.

Les appareils intégrés sont évalués à l’aide des fonctionnalités de gestion des vulnérabilités Defender incorporées existantes qui peuvent détecter des logiciels et des fichiers vulnérables.

Pour la détection sur les appareils découverts mais pas encore intégrés, la détection Log4j doit être activée. Cela lancera des sondes de la même façon que la découverte d’appareils sonde activement votre réseau. Cela inclut la détection à partir de plusieurs points de terminaison intégrés (appareils Windows 10+ et Windows Server 2019+ ) et uniquement la détection au sein des sous-réseaux, pour détecter les appareils vulnérables et exposés à distance à CVE-2021-44228.

Pour activer la détection Log4 :

  1. Accédez à Paramètres Découverte>>d’appareil Configuration de la découverte.
  2. Sélectionnez Activer la détection Log4j2 (CVE-2021-44228) .
  3. Sélectionnez Enregistrer.

Capture d’écran du paramètre pour activer la détection log4j2.

L’exécution de ces sondes déclenche le flux Log4j standard sans avoir d’impact nuisible sur l’appareil en cours de sondage ou sur le périphérique de détection. Le sondage lui-même est effectué en envoyant plusieurs requêtes HTTP aux appareils découverts, en ciblant les ports d’application web courants (par exemple, 80 8000 8080 443 8443) et les URL. La requête contient des en-têtes HTTP avec une charge utile JNDI qui déclenche une requête DNS à partir de la machine sondée.

Par exemple, User-Agent : ${jndi :dns ://192.168.1.3 :5353/MDEDiscoveryUser-Agent} où 192.168.1.3 est l’adresse IP de la machine de détection.

Remarque

L’activation de la détection Log4j2 signifie également que les appareils intégrés utiliseront l’auto-détection pour détecter les vulnérabilités locales.

Détection des logiciels et des fichiers vulnérables

Defender Vulnerability Management fournit des couches de détection pour vous aider à découvrir :

  • Logiciels vulnérables : la découverte est basée sur les énumérations CPE (Common Platform Enumerations) des applications installées qui sont connues pour être vulnérables à l’exécution de code à distance Log4j.

  • Fichiers vulnérables : Les fichiers en mémoire et les fichiers du système de fichiers sont évalués. Ces fichiers peuvent être des fichiers jar Log4j-core avec la version vulnérable connue ou un fichier Uber-JAR qui contient une classe de recherche jndi vulnérable ou un fichier log4j-core vulnérable. Plus précisément, il :

    • détermine si un fichier JAR contient un fichier Log4j vulnérable en examinant les fichiers JAR et en recherchant le fichier suivant : \META-INF\maven\org.apache.logging.log4j\log4j-core\pom.properties . Si ce fichier existe, la version de Log4j est lue et extraite.
    • recherche le fichier JndiLookup.class dans le fichier JAR en recherchant les chemins d’accès qui contiennent la chaîne « /log4j/core/lookup/JndiLookup.class » : si le fichier JndiLookup.class existe, Defender Vulnerability Management détermine si ce fichier JAR contient un fichier Log4j avec la version définie dans pom.properties.
    • recherche tous les fichiers JAR Log4j-core vulnérables incorporés dans un fichier JAR imbriqué en recherchant les chemins d’accès qui contiennent l’une de ces chaînes :
      • lib/log4j-core-
      • WEB-INF/lib/log4j-core-
      • App-INF/lib/log4j-core-

Ce tableau décrit les plateformes et versions prises en charge par les fonctionnalités de recherche :

Fonctionnalité Type de fichier Windows10+,
server2019+
Server 2012R2,
server2016
Server 2008R2 Linux + macOS
mémoire Recherche dans Log4j-core Oui Oui[1] - Oui
Uber-JARs Oui Oui[1] - Oui
Recherche tous les fichiers sur disque Log4j-core Oui Oui[1] Oui -
Uber-JARs Oui Oui[1] - -

(1) Les fonctionnalités sont disponibles lorsque KB5005292 est installé sur Windows Server 2012 R2 et 2016.

En savoir plus sur vos options d’exposition et d’atténuation Log4Shell

  1. Dans le portail Microsoft Defender, accédez à Gestion des>vulnérabilités Faiblesses.
  2. Sélectionnez CVE-2021-44228.
  3. Sélectionnez Ouvrir la page de vulnérabilité.

Capture d’écran de la page des vulnérabilités dans le tableau de bord de gestion des vulnérabilités.

Atténuation des vulnérabilités Log4Shell

La vulnérabilité log4Shell peut être atténuée en empêchant les recherches JNDI sur les versions 2.10 à 2.14.1 de Log4j avec les configurations par défaut. Pour créer cette action d’atténuation, à partir du tableau de bord De sensibilisation aux menaces :

  1. Sélectionnez Afficher les détails de la vulnérabilité.
  2. Sélectionnez Options d’atténuation.

Vous pouvez choisir d’appliquer l’atténuation à tous les appareils exposés ou de sélectionner des appareils intégrés spécifiques. Pour terminer le processus et appliquer l’atténuation sur les appareils, sélectionnez Create action d’atténuation.

Capture d’écran des options d’atténuation pour CVE-2021-44228.

Status d’atténuation

Le status d’atténuation indique si l’atténuation de la solution de contournement pour désactiver les recherches JDNI a été appliquée à l’appareil. Vous pouvez afficher les status d’atténuation pour chaque appareil affecté dans les onglets Appareils exposés. Cela peut aider à hiérarchiser l’atténuation et/ou la mise à jour corrective des appareils en fonction de leur status d’atténuation.

Capture d’écran des états d’atténuation possibles.

Le tableau ci-dessous répertorie les états d’atténuation potentiels :

Status d’atténuation Description
Solution de contournement appliquée Windows : la variable d’environnement LOG4J_FORMAT_MSG_NO_LOOKUPS a été observée avant le dernier redémarrage de l’appareil.

Linux + macOS : tous les processus en cours d’exécution ont LOG4J_FORMAT_MSG_NO_LOOKUPS=true dans leurs variables d’environnement.
Solution de contournement en attente de redémarrage La variable d’environnement LOG4J_FORMAT_MSG_NO_LOOKUPS est définie, mais aucun redémarrage suivant n’a été détecté.
Non appliqué Windows : la variable d’environnement LOG4J_FORMAT_MSG_NO_LOOKUPS n’a pas été observée.

Linux + macOS : tous les processus en cours d’exécution n’ont pas LOG4J_FORMAT_MSG_NO_LOOKUPS=true dans leurs variables d’environnement, et l’action d’atténuation n’a pas été appliquée sur l’appareil.
Partiellement atténué Linux + macOS : bien que l’action d’atténuation ait été appliquée sur l’appareil, tous les processus en cours d’exécution n’ont pas LOG4J_FORMAT_MSG_NO_LOOKUPS=true dans leurs variables d’environnement.
Non applicable Appareils qui ont des fichiers vulnérables qui ne sont pas dans la plage de versions de l’atténuation.
Inconnu La status d’atténuation n’a pas pu être déterminée pour l’instant.

Remarque

La réflexion de l’status d’atténuation mise à jour d’un appareil peut prendre quelques heures.

Rétablissement des atténuations appliquées pour la vulnérabilité Log4Shell

Dans les cas où l’atténuation doit être rétablie, procédez comme suit :

Pour Windows :

  1. Ouvrez une fenêtre PowerShell avec élévation de privilèges.
  2. Exécutez la commande suivante :
  [Environment]::SetEnvironmentVariable("LOG4J\_FORMAT\_MSG\_NO\_LOOKUPS", $null,[EnvironmentVariableTarget]::Machine)

La modification prend effet après le redémarrage de l’appareil.

Pour Linux :

  1. Ouvrez le fichier /etc/environment et supprimez la ligne LOG4J_FORMAT_MSG_NO_LOOKUPS=true
  2. Supprimez le fichier /etc/systemd/system.conf.d/log4j_disable_jndi_lookups.conf
  3. Supprimer le fichier /etc/systemd/user.conf.d/log4j_disable_jndi_lookups.conf

La modification prend effet après le redémarrage de l’appareil.

Pour macOS :

Supprimez le fichier setenv. LOG4J_FORMAT_MSG_NO_LOOKUPS.plist à partir des dossiers suivants :

  • /Library/LaunchDaemons/
  • /Library/LaunchAgents/
  • /Users/[username]/Library/LaunchAgents/ - pour tous les utilisateurs

La modification prend effet après le redémarrage de l’appareil.

Recommandations de sécurité Apache Log4j

Pour afficher les recommandations de sécurité actives liées à Apache log4j, sélectionnez l’onglet Recommandations de sécurité dans la page des détails de la vulnérabilité. Dans cet exemple, si vous sélectionnez Mettre à jour Apache Log4j , vous verrez un autre menu volant avec plus d’informations :

Capture d’écran de la mise à jour de la recommandation de sécurité apache log4j.

Sélectionnez Demander la correction pour créer une demande de correction.

Explorer la vulnérabilité dans le portail Microsoft Defender

Une fois les appareils, les fichiers et les logiciels exposés trouvés, les informations pertinentes sont également transmises via les expériences suivantes dans le portail Microsoft Defender :

Inventaire de logiciels

Dans la page d’inventaire logiciel, recherchez CVE-2021-44228 pour afficher des détails sur les installations et l’exposition des logiciels Log4j :

Capture d’écran de la vulnérabilité log4j sur la page d’inventaire logiciel.

Faiblesses

Dans la page des faiblesses, recherchez CVE-2021-44228 pour afficher des informations sur la vulnérabilité Log4Shell :

Capture d’écran de la vulnérabilité log4j sur la page des faiblesses.

Utiliser la chasse avancée

Vous pouvez utiliser la requête de repérage avancée suivante pour identifier les vulnérabilités dans les logiciels installés sur les appareils :

   DeviceTvmSoftwareVulnerabilities
   | where CveId in ("CVE-2021-44228", "CVE-2021-45046")

Vous pouvez utiliser la requête de repérage avancée suivante pour identifier les vulnérabilités dans les logiciels installés sur les appareils pour exposer les résultats au niveau du fichier à partir du disque :

   DeviceTvmSoftwareEvidenceBeta
   | mv-expand DiskPaths
   | where DiskPaths contains "log4j"
   | project DeviceId, SoftwareName, SoftwareVendor, SoftwareVersion, DiskPaths