Cabecera blog ciberseguridad

¿Qué es JNDI?

JNDI es el acrónimo de Java Naming and Directory Interface, la cual es una API de java para consumir determinados servicios orientados a la búsqueda de objetos en una red.

JNDI es comúnmente utilizado para asociar nombres lógicos a recursos, análogamente a cómo el servicio DNS asocia FQDNs a IPs. Por ejemplo, en el momento en que un EJB (Enterprise JavaBeans) pide un recurso a JNDI, éste pasa la petición al servicio correspondiente y devuelve el recurso.

De entre los servicios soportados por JNDI se destacan LDAP, RMI o DNS entre otros, los cuales fueron activamente utilizados para atacar a componentes Log4J vulnerables (véase CVE-2021-44228) a través de ataques de tipo JNDI Injection. Este ataque se conoció comúnmente como “Log4Shell”, el cual fue ampliamente estudiado y monitorizado por parte de nuestro servicio de Threat Hunting.