Revisitamos un incidente importante del pasado, no para reproducir el ataque, sino por las lecciones que aún se aplican a tu operación.
Qué ocurrió: escribir una línea de log se convirtió en una vía de ataque
Log4j manejaba la tarea mundana de escribir logs, y se usaba muchísimo en aplicaciones Java. El fallo: la librería interpretaba cierto patrón dentro de las cadenas registradas como algo que «resolver alcanzando un recurso externo», y terminaba ejecutando código especificado externamente.
Así que un atacante que lograra meter una cadena manipulada en «algún sitio que se registra» (un nombre de usuario, una cabecera) podía llegar a la ejecución de código. Que un acto pasivo como registrar logs pudiera convertirse en una vía de ataque fue una gran sorpresa.
Por qué era difícil saber si estabas afectado
La mayoría de las aplicaciones nunca instalaron Log4j directamente. Un framework o un SDK lo incorporaba. Eso es una dependencia transitiva, una dependencia de una dependencia de una dependencia. Sin tu «lista de materiales», ni siquiera podías saber si estabas afectado.
El mayor problema era no saber si lo usabas
Cuando «no puedes saber si lo usas», ni siquiera puedes priorizar la respuesta. El haber tenido o no una lista de materiales (SBOM) determinó en buena medida la rapidez de la respuesta.
Cronología
2021-12-09–10
El fallo se hace ampliamente conocido; el mundo se apresura a comprobar «¿estamos afectados?».justo después
Se despliegan parcheos de emergencia y mitigaciones temporales; los intentos de explotación se disparan.después
Se publican varios CVE de seguimiento (correcciones de la corrección): «corregido una vez» no era el final.
Lecciones que aún se aplican
Ten un SBOM (lista de materiales)
Haz visible lo que tu aplicación usa internamente: npm ls, los lockfiles y las herramientas de SBOM muestran lo que realmente se ejecuta. Mirar solo «lo que instalaste directamente» no basta.
Monitoriza las dependencias de forma automática
En el momento en que cae un CVE, sabe automáticamente si te afecta (Dependabot / osv-scanner), incluidas las dependencias transitivas. Las revisiones manuales siempre pasan algo por alto.
Haz que el parcheo sea rápido
Practica «actualizar, verificar, desplegar» de forma habitual para poder hacerlo rápido en una emergencia. Consulta cómo construir la monitorización de dependencias.
Sigue los CVE de seguimiento
Tras Log4Shell aparecieron correcciones de la corrección. No te quedes en «corregido una vez»: rastrea los seguimientos.
Lee a continuación
- Glosario: Qué es el RCE · Qué es un CVE
- Defensa: Integra la monitorización de dependencias en tu operación
- Framework: seguridad de Spring Boot (CVE de dependencias, Actuator, autorización, deserialización)
- Incidente: Un CVE conocido descuidado expuso a 147M
- Incidente: Heartbleed — un fallo crítico de OpenSSL
Fuentes y alcance
Estas fuentes primarias respaldan los ajustes, el alcance o las medidas anteriores; enlaces comprobados el 23 de octubre de 2026. Revisa sus condiciones de versión y configuración. Las prioridades y lecciones son recomendaciones del sitio, no una revalidación completa ni una garantía de seguridad.