Aprenda a administrar la vulnerabilidad de Log4Shell en Microsoft Defender para punto de conexión

Se aplica a:

La vulnerabilidad de Log4Shell es una vulnerabilidad de ejecución remota de código (RCE) que se encuentra en la biblioteca de registro de Apache Log4j 2. Como Apache Log4j 2 es utilizado habitualmente por muchas aplicaciones de software y servicios en línea, representa una situación compleja y de alto riesgo para empresas de todo el mundo. Conocido como "Log4Shell" (CVE-2021-44228, CVE-2021-45046) presenta un nuevo vector de ataque que los atacantes pueden aprovechar para extraer datos e implementar ransomware en una organización.

Nota:

Consulte los blogs Guía para prevenir, detectar y buscar la explotación de la vulnerabilidad Log4j 2 yMicrosoft Security Response Center para obtener instrucciones e información técnica sobre la vulnerabilidad y las recomendaciones de mitigación específicas del producto para proteger su organización.

Introducción a las funcionalidades de detección, supervisión y mitigación

La administración de vulnerabilidades de Defender proporciona las siguientes funcionalidades para ayudarle a identificar, supervisar y mitigar la exposición de la organización a la vulnerabilidad de Log4Shell:

  • Detección: la detección de dispositivos expuestos, tanto Microsoft Defender para punto de conexión dispositivos incorporados como dispositivos que se han detectado pero que aún no se han incorporado, se basa en el software vulnerable y en los archivos vulnerables detectados en el disco.
  • Reconocimiento de amenazas: Una vista consolidada para evaluar la exposición de la organización. Esta vista muestra la exposición en el nivel de dispositivo y de software, y proporciona acceso a detalles sobre archivos vulnerables como, por ejemplo, la última vez que se vio, la última vez que se ejecutó y la última vez que se ejecutó con puertos abiertos. Puede usar esta información para priorizar las acciones de corrección. Los datos relacionados con dispositivos expuestos pueden tardar hasta 24 horas en aparecer en el panel.
  • Opciones de mitigación: Aplique opciones de mitigación para ayudar a reducir el riesgo de exposición.
  • Búsqueda avanzada: Use la búsqueda avanzada para devolver detalles de los archivos log4j vulnerables identificados en el disco.

Nota:

Estas funcionalidades se admiten en Windows 10 & Windows 11, Windows Server, Linux y macOS.

La compatibilidad con Linux requiere Microsoft Defender para punto de conexión cliente Linux versión 101.52.57 (30.121092.15257.0) o posterior.

La compatibilidad con macOS requiere Microsoft Defender para punto de conexión cliente de macOS versión 20.121111.15416.0 o posterior.

Para obtener más información sobre las versiones admitidas, consulte Plataformas y funcionalidades de sistemas operativos compatibles.

Detección de dispositivos expuestos

Las funcionalidades de administración de vulnerabilidades de Defender insertadas, junto con la habilitación de la detección de Log4j, en el portal de Microsoft 365 Defender, le ayudarán a detectar dispositivos expuestos a la vulnerabilidad de Log4Shell.

Los dispositivos incorporados se evalúan mediante las funcionalidades integradas existentes de administración de vulnerabilidades de Defender que pueden detectar archivos y software vulnerables.

Para la detección en dispositivos detectados pero aún no incorporados, la detección de Log4j debe estar habilitada. Esto iniciará los sondeos de la misma manera que la detección de dispositivos sondea activamente la red. Esto incluye sondeo desde varios puntos de conexión incorporados (dispositivos Windows 10+ y Windows Server 2019+) y solo sondeos dentro de subredes, para detectar dispositivos vulnerables y expuestos de forma remota a CVE-2021-44228.

Para habilitar la detección de Log4:

  1. Vaya a Configuración Configuración de>detección de dispositivos>.
  2. Seleccione Habilitar detección de Log4j2 (CVE-2021-44228).
  3. Seleccione Guardar.

Captura de pantalla de la configuración para habilitar la detección de log4j2.

La ejecución de estos sondeos desencadenará el flujo log4j estándar sin causar ningún impacto perjudicial en el dispositivo que se está sondeando o en el dispositivo de sondeo. El sondeo se realiza mediante el envío de varias solicitudes HTTP a dispositivos detectados, como destino de puertos de aplicación web comunes (por ejemplo, 80 8000 8080 443 8443) y direcciones URL. La solicitud contiene encabezados HTTP con una carga de JNDI que desencadena una solicitud DNS de la máquina sondeada.

Por ejemplo, User-Agent: ${jndi:dns://192.168.1.3:5353/MDEDiscoveryUser-Agent} donde 192.168.1.3 es la dirección IP del equipo de sondeo.

Nota:

Habilitar la detección de Log4j2 también significa que los dispositivos incorporados usarán el sondeo automático para detectar vulnerabilidades locales.

Detección de archivos y software vulnerables

La administración de vulnerabilidades de Defender proporciona capas de detección para ayudarle a detectar:

  • Software vulnerable: la detección se basa en las enumeraciones de Common Platform (CPE) de aplicaciones instaladas que se sabe que son vulnerables a la ejecución remota de código de Log4j.

  • Archivos vulnerables: Se evalúan tanto los archivos en memoria como los archivos del sistema de archivos. Estos archivos pueden ser archivos jar log4j-core con la versión vulnerable conocida o un Uber-JAR que contiene una clase de búsqueda jndi vulnerable o un archivo log4j-core vulnerable. En concreto, lo siguiente:

    • determina si un archivo JAR contiene un archivo Log4j vulnerable examinando los archivos JAR y buscando el archivo siguiente: \META-INF\maven\org.apache.logging.log4j\log4j-core\pom.properties: si este archivo existe, la versión de Log4j se lee y extrae.
    • busca el archivo JndiLookup.class dentro del archivo JAR buscando rutas de acceso que contengan la cadena "/log4j/core/lookup/JndiLookup.class": si el archivo JndiLookup.class existe, Defender Vulnerability Management determina si este archivo JAR contiene un archivo Log4j con la versión definida en pom.properties.
    • busca los archivos JAR de Log4j-core vulnerables insertados dentro de un archivo JAR anidado mediante la búsqueda de rutas de acceso que contengan cualquiera de estas cadenas:
      • lib/log4j-core-
      • WEB-INF/lib/log4j-core-
      • App-INF/lib/log4j-core-

En esta tabla se describen las funcionalidades de búsqueda compatibles con plataformas y versiones:

Funcionalidad Tipo de archivo Windows10+,
server2019+
Server 2012R2,
server2016
Server 2008R2 Linux y macOS
Buscar en memoria Log4j-core Yes [1] - Yes
Uber-JARs Yes [1] - Yes
Buscar en todos los archivos del disco Log4j-core Yes [1] Yes -
Uber-JARs Yes [1] - -

(1) Las funcionalidades están disponibles cuando KB5005292 está instalado en Windows Server 2012 R2 y 2016.

Más información sobre las opciones de mitigación y exposición de Log4Shell

  1. En el portal Microsoft 365 Defender, vaya a Vulnerabilidades de administración>de vulnerabilidades.
  2. Seleccione CVE-2021-44228.
  3. Seleccione Abrir página de vulnerabilidad.

Captura de pantalla de la página de vulnerabilidades en el panel de administración de vulnerabilidades.

Mitigación de vulnerabilidades de Log4Shell

La vulnerabilidad de Log4Shell se puede mitigar evitando las búsquedas de JNDI en las versiones 2.10 - 2.14.1 de Log4j con configuraciones predeterminadas. Para crear esta acción de mitigación, desde el panel Reconocimiento de amenazas:

  1. Seleccione Ver detalles de vulnerabilidad.
  2. Seleccione Opciones de mitigación.

Puede optar por aplicar la mitigación a todos los dispositivos expuestos o seleccionar dispositivos incorporados específicos. Para completar el proceso y aplicar la mitigación en los dispositivos, seleccione Crear acción de mitigación.

Captura de pantalla de las opciones de mitigación de CVE-2021-44228.

Estado de mitigación

El estado de mitigación indica si la mitigación alternativa para deshabilitar las búsquedas de JDNI se ha aplicado al dispositivo. Puede ver el estado de mitigación de cada dispositivo afectado en las pestañas Dispositivos expuestos. Esto puede ayudar a priorizar la mitigación o la aplicación de revisiones de dispositivos en función de su estado de mitigación.

Captura de pantalla de Posibles estados de mitigación.

En la tabla siguiente se enumeran los posibles estados de mitigación:

Estado de mitigación Descripción
Solución alternativa aplicada Windows: se observó la variable de entorno LOG4J_FORMAT_MSG_NO_LOOKUPS antes del reinicio del dispositivo más reciente.

Linux + macOS: todos los procesos en ejecución tienen LOG4J_FORMAT_MSG_NO_LOOKUPS=true en sus variables de entorno.
Solución alternativa pendiente de reinicio Se establece la variable de entorno LOG4J_FORMAT_MSG_NO_LOOKUPS, pero no se ha detectado ningún reinicio siguiente.
No aplicado Windows: no se observó la variable de entorno LOG4J_FORMAT_MSG_NO_LOOKUPS.

Linux y macOS: no todos los procesos en ejecución tienen LOG4J_FORMAT_MSG_NO_LOOKUPS=true en sus variables de entorno y la acción de mitigación no se aplicó en el dispositivo.
Parcialmente mitigado Linux y macOS: aunque se aplicó una acción de mitigación en el dispositivo, no todos los procesos en ejecución tienen LOG4J_FORMAT_MSG_NO_LOOKUPS=true en sus variables de entorno.
No aplicable Dispositivos que tienen archivos vulnerables que no están en el intervalo de versiones de la mitigación.
Unknown El estado de mitigación no se pudo determinar en este momento.

Nota:

El estado de mitigación actualizado de un dispositivo puede tardar unas horas en reflejarse.

Reversión de las mitigaciones aplicadas para la vulnerabilidad de Log4Shell

En los casos en los que es necesario revertir la mitigación, siga estos pasos:

Para Windows:

  1. Abra una ventana elevada de PowerShell.
  2. Ejecute el siguiente comando:
  [Environment]::SetEnvironmentVariable("LOG4J\_FORMAT\_MSG\_NO\_LOOKUPS", $null,[EnvironmentVariableTarget]::Machine)

El cambio surtirá efecto después de reiniciar el dispositivo.

Para Linux:

  1. Abra el archivo /etc/environment y elimine la línea LOG4J_FORMAT_MSG_NO_LOOKUPS=true.
  2. Eliminar el archivo /etc/systemd/system.conf.d/log4j_disable_jndi_lookups.conf
  3. Eliminar el archivo /etc/systemd/user.conf.d/log4j_disable_jndi_lookups.conf

El cambio surtirá efecto después de reiniciar el dispositivo.

Para macOS:

Quite el archivo setenv. LOG4J_FORMAT_MSG_NO_LOOKUPS.plist de las carpetas siguientes:

  • /Library/LaunchDaemons/
  • /Library/LaunchAgents/
  • /Users/[username]/Library/LaunchAgents/ - para todos los usuarios

El cambio surtirá efecto después de reiniciar el dispositivo.

Recomendaciones de seguridad de Apache Log4j

Para ver la recomendación de seguridad activa relacionada con Apache log4j, seleccione la pestaña Recomendaciones de seguridad en la página de detalles de vulnerabilidad. En este ejemplo, si selecciona Actualizar Apache Log4j , verá otro control flotante con más información:

Captura de pantalla de la recomendación de seguridad de actualización de Apache Log4j.

Seleccione Solicitar corrección para crear una solicitud de corrección.

Exploración de la vulnerabilidad en el portal de Microsoft 365 Defender

Una vez que se encuentran dispositivos expuestos, archivos y software, la información pertinente también se transmitirá a través de las siguientes experiencias en el portal de Microsoft 365 Defender:

Inventario de software

En la página de inventario de software, busque CVE-2021-44228 para ver detalles sobre las instalaciones y la exposición de software de Log4j:

Captura de pantalla de la vulnerabilidad log4j en la página de inventario de software.

Debilidades

En la página puntos débiles, busque CVE-2021-44228 para ver información sobre la vulnerabilidad de Log4Shell:

Captura de pantalla de la vulnerabilidad log4j en la página de puntos débiles.

Uso de la búsqueda avanzada

Puede usar la siguiente consulta de búsqueda avanzada para identificar vulnerabilidades en el software instalado en los dispositivos:

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

Puede usar la siguiente consulta de búsqueda avanzada para identificar vulnerabilidades en el software instalado en los dispositivos para exponer los resultados de nivel de archivo desde el disco:

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