¿En qué consiste la vulnerabilidad de Apache Log4J (Log4Shell)?

Log4Shell (CVE-2021-44228, CVE-2021-45046 y CVE-2021-45105) es una vulnerabilidad de ejecución remota de código (RCE) que permite a los agentes maliciosos ejecutar código Java arbitrario, tomando el control de un servidor de destino.

Descripción general de la vulnerabilidad Log4Shell

2021 fue un año muy intenso para las vulnerabilidades de día cero que tuvieron su coronación con Log4Shell, el cual es un fallo crítico encontrado en la ampliamente utilizada biblioteca de inicio de sesión con base en Java, Apache Log4j. Oficialmente identificada como CVE-2021-44228, el Common Vulnerability Scoring System (CVSS) le otorga una puntuación de gravedad de 10 en una escala de 10 (CVSS v3.1).

La vulnerabilidad se comunicó en primera instancia de forma privada a Apache el 24 de noviembre de 2021. El 9 de diciembre de 2021, Log4Shell se divulgó públicamente y se lanzó un parche inicial con la versión 2.15.0 de Apache Log4j.

Las posteriores noticias de ataques observados de libre circulación provocaron que diversas agencias de ciberseguridad nacional emitieran alertas, incluida la Agencia de seguridad cibernética e infraestructura (CISA) de EE. UU., el Centro nacional de ciberseguridad (NCSC) del Reino Unido y el Centro canadiense de ciberseguridad. Debido a la popularidad de Apache Log4j, cientos de millones de dispositivos podrían verse afectados.

Funcionamiento de Log4Shell

Log4Shell es una vulnerabilidad por inyección de Java Naming and Directory Interface™ (JNDI), la cual permite la ejecución remota de código (RCE). Al incluir datos que no son de confianza (como rutinas maliciosas) en el mensaje registrado de una versión afectada de Apache Log4j, un atacante puede establecer una conexión a un servidor malicioso mediante una búsqueda de JNDI. El resultado: acceso completo a su sistema desde cualquier lugar del mundo.

Dado que la búsqueda de JNDI admite distintos tipos de directorios, como el servicio de nombres de dominio (DNS), el protocolo ligero de acceso a directorios (LDAP), el cual proporciona información valiosa como los dispositivos de red de la organización, la invocación del método remoto (RMI) y el protocolo inter-ORB (IIOP), Log4Shell puede llevar a otras amenazas como:

  • Coinmining (minería de monedas): los atacantes pueden utilizar sus recursos para extraer criptomonedas. Esta amenaza puede ser muy costosa, debido a la enorme cantidad de potencia de procesamiento requerido para ejecutar servicios y aplicaciones en la nube.
  • Denegación de servicio (DoS) de red: esta amenaza permite que los atacantes desconecten y/o deshabiliten una red, sitio web o servicio para que la organización atacada no pueda acceder a ellos.
  • Ransomware: tras lograr el RCE, los atacantes pueden recopilar y cifrar datos con el fin de pedir posteriormente un rescate por ellos.

 

A continuación, se muestra una posible cadena de infección:

Posible cadena de infección

Complementos, aplicaciones y productos vulnerables

Básicamente, todo dispositivo conectado a internet ejecuta alguna versión entre la 2.0 y la 2.14.1 de Apache Log4j. Las versiones afectadas se incluyen en Apache Struts, Apache Solr, Apache Druid, Elasticsearch, Apache Dubbo y VMware vCenter.

Aplicación de parches y mitigación

Apache lanzó inicialmente la versión 2.15.0 de Apache Log4j con el fin de parchear la vulnerabilidad. Sin embargo, esta versión solo funcionaba con Java 8. Los usuarios de versiones anteriores necesitaban aplicar y volver a aplicar medidas de mitigación temporales. En el momento de esta publicación, Apache lanzó la versión 2.16.0 y avisó a los usuarios que actualizasen lo antes posible sus posibles bibliotecas afectadas.

Se recomienda también encarecidamente la utilización de otras estrategias de mitigación como la aplicación virtual de parches y la utilización de un sistema de prevención/detección de intrusiones (IDS/IPS). La aplicación virtual de parches protege la vulnerabilidad de futuros exploits, mientras que la IDS/IPS inspecciona el acceso y la salida de tráfico en busca de comportamientos sospechosos.

Apache Log4J

Investigaciones relacionadas

Artículos relacionados