· 6 min de lectura.
CWE vs. CVE: la diferencia en un ejemplo
tomar CVE-2021-44228, Log4Shell. Su CWE es CWE-917: inyección de lenguaje de expresión. Los dos niveles exigen dos soluciones diferentes.
Arreglando el CVE significa actualizar Log4j a la versión 2.17. Es urgente, se hace en una noche y te protege sólo de ese único defecto.
Arreglando el CWE significa evitar que los datos entrantes lleguen a un evaluador de expresiones. Lleva tiempo y requiere una revisión del diseño, y también lo protege de los siguientes tres defectos de la misma familia, incluidos aquellos que aún no tienen un número.
Un solo CWE cubre miles de CVEs. Por eso un informe de seguridad que sólo habla de CVEs describe una instantánea, nunca una tendencia.
Las debilidades con las que más te toparás
Un puñado de CWE representan una gran parte del CVEs publicado. Para cada uno, un ejemplo conocido concreta la idea:
| CWE | debilidad | Lo que obtiene el atacante | caso conocido |
|---|---|---|---|
CWE-79 | Secuencias de comandos entre sitios (XSS) | Ejecutar código en el navegador de otro usuario | Innumerables fallas en CMS y complementos |
CWE-89 | inyección SQL | Leer o modificar la base de datos. | CVE-2023-34362 (MOVER) |
CWE-787 | Escritura fuera de límites | Memoria corrupta, a menudo hasta la ejecución del código. | Defectos del navegador y de la pila de red |
CWE-22 | Recorrido del camino | Leer archivos fuera del directorio previsto | Dispositivo Edge y fallas VPN |
CWE-352 | Falsificación de solicitudes entre sitios (CSRF) | Hacer que un usuario que ha iniciado sesión actúe sin saberlo | Interfaces de administración mal protegidas |
CWE-862 | Autorización faltante | Llegar a una función sin que se le permita | Defectos muy comunes del API |
CWE-416 | Usar después gratis | Ejecución del programa de secuestro | Defectos del motor de renderizado |
CWE-78 | Inyección de comandos del sistema operativo | Ejecutar comandos en el servidor | Defectos de electrodomésticos y enrutadores |
CWE-917 | Inyección de lenguaje de expresión | Ejecutar código a través de una cadena interpretada | CVE-2021-44228 (Log4Shell) |
La lista completa tiene más de 900 entradas, organizadas jerárquicamente: desde pilares muy generales hasta variantes muy específicas. Está disponible en cwe.mitre.org; No duplicamos aquí sus 900 filas, ya que no le enseñarían nada que el catálogo oficial no pueda enseñar.
El CWE Top 25: para qué sirve realmente
Cada año, MITRE publica el CWE Los 25 mejores debilidades más peligrosas, clasificadas combinando la frecuencia de CVEs asociado con su gravedad. En la edición de 2024, CWE-79 (XSS) vuelve a estar en la cima, por delante de CWE-787 (escritura fuera de límites) y CWE-89 (Inyección SQL).
Esta clasificación no sirve para decidir qué arreglar esta semana: sirve para decidir en qué entrenar a un equipo y para qué ajustar las herramientas de análisis estático. Es una herramienta de prevención, no una herramienta de clasificación de alertas: a menudo ambas se confunden y eso es una pérdida de tiempo en ambos extremos.
La cadena CAPEC, CWE, CVE
Tres catálogos, tres preguntas: una patrón de ataque (CAPEC) describe como se hace, a debilidad (CWE) describe el defecto siendo explotado, a vulnerabilidad (CVE) describe donde realmente vive ese defecto.
Aplicado a Log4Shell: inyección de código (CAPEC-242) → inyección de lenguaje de expresión (CWE-917) → Log4j 2.0 a 2.14.1 (CVE-2021-44228). Leer en esta dirección te permite anticiparte; leer de otra manera te permite reaccionar.
Lo que significa para ti, en la práctica
Tres usos que encajan en una reunión de equipo:
- Cuente su CVEs por CWE durante los últimos doce meses. si
CWE-862aparece ocho veces, no tienes ocho errores: tienes un problema de diseño de control de acceso. - Ajusta tus herramientas de análisis a los tres CWE más frecuentes en su código en lugar de las 900 reglas predeterminadas. La tasa de falsos positivos se desploma y el equipo deja de ignorar los informes.
- Pon el CWE en el ticket, no solo el CVE. El desarrollador que lo soluciona comprende qué no volver a escribir en otro lugar.
Preguntas frecuentes
¿Cuántos CWE hay?
Más de 900, organizados en forma jerárquica (pilares, clases, bases, variantes). Sólo alrededor de un centenar aparecen regularmente en el CVEs publicado: esos son en los que debemos centrarnos.
¿CWE o CVE para impulsar la seguridad de las aplicaciones?
CWE para prevención, porque describe una clase de fallas que puede eliminar en el momento del diseño. CVE como respuesta, porque identifica un defecto específico a corregir en un producto específico. Ambos, nunca uno en lugar del otro.
¿Puede un CVE tener varios CWE?
Sí, y es común. Una cadena de exploits a menudo combina una debilidad de autorización con una inyección. Luego, los registros enumeran varios CWE; el primero de la lista suele ser la causa más directa.