
El objetivo es clasificar ataques conocidos y aprender cómo los equipos de seguridad responden rápidamente.
Para este laboratorio, el objetivo era hacer triage de otra vulnerabilidad real muy conocida, Log4Shell, una de las vulnerabilidades más explotadas en los últimos años debido a lo común que era la biblioteca afectada en el software empresarial.
Fui a la Base de Datos Nacional de Vulnerabilidades y busqué el CVE:
https://nvd.nist.gov/vuln/search#/nvd/home?resultType=records
Busqué CVE-2021-44228 y abrí la página de resultados.
Después de leer la descripción, respondí algunas preguntas básicas para entender qué está realmente en riesgo:
Encontré la puntuación CVSS y la cadena vectorial listadas en la página:
Revisé la cadena vectorial parte por parte para ver qué significaba realmente cada componente:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Esto es prácticamente lo peor que puede ser una cadena vectorial: no se necesitan privilegios, no hay interacción del usuario, es accesible a través de la red e incluso puede afectar a elementos fuera del propio componente vulnerable (Alcance: Cambiado). Esa combinación es parte de la razón por la que Log4Shell se trató como un problema tan urgente y generalizado cuando se reveló.
Revisé la sección de Enumeración de Debilidades en la página de NVD para este CVE.
El CWE listado es CWE-917: Neutralización Incorrecta de Elementos Especiales utilizados en una Declaración de Lenguaje de Expresiones (Expression Language Statement). En términos simples, esto significa que el software toma entradas y las evalúa como parte de una expresión sin verificarlas adecuadamente primero, lo que permitió a los atacantes colar búsquedas JNDI maliciosas a través de mensajes de registro normales.
Consideré si trataría esto como un riesgo mayor o menor en dos escenarios diferentes.
Escenario 1: El software vulnerable está activo y es accesible. Riesgo mayor. Esta vulnerabilidad permite a un atacante acceder y modificar declaraciones EL (Lenguaje de Expresiones), afectando directamente la confidencialidad y la integridad.
Escenario 2: El software vulnerable está instalado en una máquina que está apagada y no es accesible. Riesgo menor. Si no se puede acceder al software vulnerable en absoluto, la confidencialidad y la integridad permanecen intactas, ya que no hay forma de que un atacante interactúe con él.
De los CVEs que he triageado hasta ahora, este se destacó por lo poco que necesita un atacante para explotarlo: sin privilegios, sin interacción del usuario, solo acceso a la red, junto con el hecho de que la vulnerabilidad podía afectar a sistemas más allá del propio componente. Es un buen ejemplo de por qué Log4Shell causó una agitación tan generalizada en la industria cuando salió a la luz.