Esta publicación de blog proporciona un resumen de CVE-2021-44228 y proporciona a los usuarios de Elastic Security detecciones para encontrar la explotación activa de la vulnerabilidad en su entorno.
Esta versión es precisa a partir del lunes 13 de diciembre de 2021. Las actualizaciones de Apache pueden investigarse directamente a través de la página de seguridad de Log4j2.
Resumen de CVE-2021-44228 (Log4Shell)
Log4j2 es un marco de trabajo de registro de código abierto incorporado en muchas aplicaciones basadas en Java tanto en sistemas de usuario final como en servidores. A fines de noviembre de 2021 , Chen Zhaojun de Alibaba identificó una vulnerabilidad de ejecución remota de código, que finalmente se informó bajo el ID de CVE : CVE-2021-44228 , lanzado al público el 10 de diciembre de 2021. La vulnerabilidad se explota mediante la deserialización incorrecta del usuario. entrada pasada al marco. Permite la ejecución remota de código y puede permitir que un atacante filtre datos confidenciales, como variables de entorno, o ejecute software malicioso en el sistema de destino.
La vulnerabilidad identificada afecta a todas las versiones de Log4j2 desde la versión 2.0-beta9 hasta la versión 2.14.1. Los primeros métodos para parchear el problema dieron como resultado una serie de versiones candidatas, que culminaron en recomendaciones para actualizar el marco a Log4j2 2.15.0-rc2 en el momento de esta publicación.
Dada la complejidad trivial y la naturaleza de la explotación generalizada observada, la mitigación debe considerarse crítica en cualquier entorno que haya identificado software que aproveche las versiones vulnerables de Log4j2.
Detectar la explotación de Log4Shell en Elastic Security
Los usuarios de Elastic Security pueden usar la siguiente regla de detección de correlación de eventos para identificar la explotación activa de la vulnerabilidad log4j2. Dependiendo del formato de los datos de eventos basados en el host, es posible que deba modificar esta detección para que coincida con sus campos de datos.
Regla de detección al usar datos de punto final
sequence by host.id with maxspan=1mn [network where event.action == "connection_attempted" and n process.name : "java" andn /* n outbound connection attempt to n LDAP, RMI or DNS standard ports n by JAVA process n */ n destination.port in (1389, 389, 1099, 53, 5353)] by process.pidn [process where event.type == "start" and nn /* Suspicious JAVA child process */n process.parent.name : "java" andn process.name : ("sh", n "bash", n "dash", n "ksh", n "tcsh", n "zsh", n "curl",n "perl*",n "python*",n "ruby*",n "php*", n "wget")] by process.parent.pid
Lee mas
Regla de detección cuando se utilizan datos de Auditbeat
sequence by agent.id with maxspan=1mn [network where event.action == "connected-to" and n process.name : "java" andn /* n outbound connection attempt to n LDAP, RMI or DNS standard ports n by JAVA process n */ n destination.port in (1389, 389, 1099, 53, 5353)] by process.pidn [process where event.type == "start" and nn /* Suspicious JAVA child process */n process.parent.name : "java" andn process.name : ("sh", n "bash", n "dash", n "ksh", n "tcsh", n "zsh", n "curl",n "perl*",n "python*",n "ruby*",n "php*", n "wget")] by process.parent.pid
Lee mas
Regla de detección al usar eventos transmitidos por Endgame
sequence by agent.id with maxspan=1mn [network where event.category == "network" and n process.name : "java" andn /* n outbound connection attempt to n LDAP, RMI or DNS standard ports n by JAVA process n */ n destination.port in (1389, 389, 1099, 53, 5353)] by process.pidn [process where event.type == "start" and nn /* Suspicious JAVA child process */n process.parent.name : "java" andn process.name : ("sh", n "bash", n "dash", n "ksh", n "tcsh", n "zsh", n "curl",n "perl*",n "python*",n "ruby*",n "php*", n "wget")] by process.parent.pid
Lee mas
Esta regla de detección busca una secuencia de un intento de conexión saliente a puertos estándar para LDAP, RMI y DNS (a menudo abusados a través de ataques de inyección JAVA / JNDI observados recientemente ) seguido de un proceso hijo de la misma instancia de proceso Java.