Aprenda a administrar la vulnerabilidad de Log4Shell en Microsoft Defender para punto de conexión.
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. Denominado "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 yel Centro de respuesta de seguridad de Microsoft 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 dispositivos incorporados de Microsoft Defender para punto de conexión como dispositivos que se han detectado pero que aún no están incorporados, 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 la versión 101.52.57 del cliente Linux de Microsoft Defender para punto de conexión (30.121092.15257.0) o posterior.
La compatibilidad con macOS requiere la versión 20.121111.15416.0 del cliente macOS de Microsoft Defender para punto de conexión 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 Defender, le ayudarán a detectar dispositivos expuestos a la vulnerabilidad de Log4Shell.
Los dispositivos incorporados se evalúan mediante las funcionalidades de administración de vulnerabilidades de Defender insertadas existentes 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 inicia los sondeos de la misma manera que la detección de dispositivos sondea activamente la red. El sondeo incluye 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:
Vaya a Configuración Configuración de>detección de dispositivos>.
Seleccione Habilitar detección de Log4j2 (CVE-2021-44228).
Haga clic en Guardar.
La ejecución de estos sondeos desencadena 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 | Windows 10+, server2019+ |
Server 2012R2, server2016 |
Server 2008R2 | Linux y macOS |
---|---|---|---|---|---|
Buscar en memoria | Log4j-core | Yes | Sí[1] | - | Sí |
Uber-JARs | Yes | Sí[1] | - | Sí | |
Buscar en todos los archivos del disco | Log4j-core | Yes | Sí[1] | Sí | - |
Uber-JARs | Yes | Sí[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
En el portal de Microsoft Defender, vaya aVulnerabilidades débilesde administración>.
Seleccione CVE-2021-44228.
Seleccione Abrir página de vulnerabilidad.
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:
Seleccione Ver detalles de vulnerabilidad.
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.
Estado de mitigación
El estado de mitigación indica si la mitigación alternativa para deshabilitar las búsquedas de JDNI se aplicó 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.
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:
Abra una ventana elevada de PowerShell.
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:
Abra el archivo /etc/environment y elimine la línea LOG4J_FORMAT_MSG_NO_LOOKUPS=true.
Eliminar el archivo /etc/systemd/system.conf.d/log4j_disable_jndi_lookups.conf
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:
Seleccione Solicitar corrección para crear una solicitud de corrección.
Exploración de la vulnerabilidad en el portal de Microsoft Defender
Una vez que se encuentran dispositivos expuestos, archivos y software, la información pertinente se transmite a través de las siguientes experiencias en el portal de Microsoft Defender:
Inventario de software
En la página de inventario de software, busque CVE-2021-44228 para ver los detalles sobre las instalaciones y la exposición de software de Log4j:
Debilidades
En la página puntos débiles, busque CVE-2021-44228 para ver información sobre la vulnerabilidad de Log4Shell:
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