CVEs: Vulnerabilidades y Exposiciones Comunes
CVE (Common Vulnerabilities and Exposures) es un sistema de nomenclatura utilizado para identificar y catalogar vulnerabilidades de seguridad conocidas en software y hardware.
Cada CVE es una entrada en una lista que está patrocinada por CISA- Cybersecurity and Infrastructure Security Agency.
¿Por qué son importantes los CVEs?
Los CVEs son importantes porque proporcionan un estándar universal para identificar y comunicar vulnerabilidades de seguridad. Ayudan a:
- Profesionales de Seguridad: A identificar rápidamente vulnerabilidades conocidas en sistemas y aplicaciones, permitiendo una respuesta más rápida y eficaz.
- Desarrolladores y Proveedores de Software: A rastrear y corregir fallos de seguridad en sus productos.
- Herramientas de Seguridad Automatizadas: A correlacionar vulnerabilidades conocidas con sistemas en uso, permitiendo escaneos de seguridad más precisos.
¿Cómo se crea un CVE?
- Descubrimiento: Una vulnerabilidad es descubierta por un investigador de seguridad, desarrollador o usuario final.
- Reporte: La vulnerabilidad se reporta a una CNA (CVE Numbering Authority), como el propio MITRE, fabricantes de software o agencias de seguridad.
- Evaluación: La CNA evalúa la vulnerabilidad, confirma su existencia e impacto, y luego emite un CVE con una descripción.
- Publicación: El CVE se añade a la base de datos pública de MITRE, donde está disponible para todos y tiene la siguiente estructura:
- CVE ID: Un identificador único, como CVE-2024-12345. Este identificador se compone del prefijo "CVE", seguido del año en que se descubrió la vulnerabilidad y un número secuencial.
- Descripción: Un resumen corto de la vulnerabilidad, incluyendo el impacto potencial y el software o hardware afectado.
- Referencias: Enlaces a detalles adicionales, como avisos de seguridad, informes técnicos o parches.
Publicación de CVEs
Existen diversos sitios y bases de datos que publican información sobre CVEs. Cada uno de estos sitios puede tener un enfoque o un conjunto específico de información, complementando lo que proporciona MITRE y el NVD (National Vulnerability Database) que son los dos principales para desarrollo de software.
-
Diversidad de Enfoque: Un público objetivo o un propósito diferente. Algunos están más enfocados en dar contexto y detalles técnicos adicionales (como el NVD), mientras que otros pueden concentrarse en cómo explotar vulnerabilidades (como Exploit DB).
-
Agilidad en la Divulgación: Algunos sitios son más conservadores en publicar y prefieren esperar para estar seguros de la vulnerabilidad encontrada, ya que puede ser un falso positivo.
-
Especialización por Sector o Producto: Proveedores de hardware y software que publican vulnerabilidades específicas para sus plataformas.
Vamos a explorar los principales sitios y sus características, siendo los dos primeros los más importantes para desarrollo:
-
MITRE CVE Database: Mantiene la base oficial de CVEs, donde todas las vulnerabilidades reconocidas reciben un identificador único. Este sitio es la fuente primaria de información de CVE e incluye descripciones básicas de las vulnerabilidades. Proporciona una lista estandarizada de identificadores de CVE, con descripciones cortas para cada vulnerabilidad. Enfocado en la normalización y asignación de IDs.
-
NVD (National Vulnerability Database): Mantenido por el NIST (National Institute of Standards and Technology) de EE.UU., el NVD es la base de datos de vulnerabilidades oficial del gobierno de EE.UU. Utiliza la lista de CVEs de MITRE como base y añade detalles como puntuaciones de riesgo, métricas CVSS-Common Vulnerability Scoring System), e información sobre impacto, mitigación y categorización de los CVEs. Enfoque: Asigna puntuaciones de severidad (CVSS), proporciona detalles técnicos adicionales, enlaces a parches y actualizaciones, y categorización de vulnerabilidades.
-
Exploit DB: Una base de datos de exploits mantenida por Offensive Security. Este sitio está más enfocado en exploits reales que utilizan vulnerabilidades conocidas y pueden ser usados para probarlas. Enfocado en investigadores de seguridad, red teams y entusiastas de la ciberseguridad.
-
VulDB - Vulnerability Database: Una base de datos de vulnerabilidades mantenida por una comunidad global de expertos en seguridad. Incluye CVEs y otras vulnerabilidades no listadas en bases de datos oficiales. Enfocado en información rápida y actualizada, con recursos como feeds de noticias de vulnerabilidades, estadísticas e informes personalizados.
-
CERT (Computer Emergency Response Team) Websites: Existen varios CERTs alrededor del mundo, como el US-CERT en EE.UU., JPCERT (Japón), y CERT-EU (Unión Europea), que publican alertas de seguridad, incluyendo información sobre CVEs y orientaciones sobre cómo mitigar vulnerabilidades específicas.
-
Security Advisories de Fabricantes: Algunos fabricantes tienen sus propios sitios de seguridad y publican información sobre vulnerabilidades (CVEs) que afectan a sus productos y proporcionan soluciones de mitigación, parches y actualizaciones de seguridad.
-
Vulners Database: Una base de datos de vulnerabilidades que agrega información de diversas fuentes, incluyendo CVEs, boletines de seguridad de fabricantes e informes de seguridad independientes para proporcionar una visión amplia en un único lugar. Tiene versión gratuita y de pago, siendo esta última la que permite acceso expandido a la API, alertas personalizadas, funcionalidades avanzadas de búsqueda y soporte.
¿Escáneres de CVEs?
Existen diversos escáneres de vulnerabilidades disponibles que se enfocan en la detección y análisis de CVEs en diferentes entornos (infraestructura, aplicaciones web, contenedores, clouds, etc.), siendo las elecciones muy dependientes del proyecto y del presupuesto.
-
Trivy: Uno de mis favoritos en el mundo DevOps por ser open source. Escáner de vulnerabilidades ligero y rápido para contenedores, imágenes, archivos de configuración e infraestructura como código (IaC) con enfoque en CVEs. La base de datos se actualiza frecuentemente. Es muy útil para pipelines.
-
Clair: Un escáner de vulnerabilidades enfocado en contenedores, especialmente integrado con CoreOS y plataformas Kubernetes. Analiza imágenes de contenedores para identificar CVEs utilizando feeds de vulnerabilidades de fuentes confiables para actualizar la base de datos.
-
Anchore: Herramienta de análisis de seguridad y conformidad para contenedores, muy utilizada en pipelines.
-
Nessus: Uno de los escáneres de vulnerabilidades con enfoque en CVEs, pero no es open source y extremadamente caro. Escaneos detallados para identificar CVEs en sistemas operativos, aplicaciones, bases de datos y dispositivos de red (infraestructura en general). Está aquí para mostrar que existen soluciones muy robustas para este propósito, pero generalmente usadas en empresas realmente grandes con sistemas muy críticos.
-
OpenVAS (Greenbone Vulnerability Manager)
: Un escáner de vulnerabilidades de código abierto con enfoque en CVEs. Soporta el escaneo de sistemas y redes para detectar CVEs conocidos. -
Otros escáneres
: Varios otros existen enfocados en bibliotecas de lenguajes específicos como Retire.js para librerías en JavaScript y elOWASP
y elSnyk
que funcionan para varios lenguajes.
Estos escáneres varían en términos de enfoque, desde infraestructura tradicional hasta entornos de contenedores y aplicaciones modernas. Elegir el correcto depende del contexto en el que desees escanear para CVEs.
Ejemplos de CVES
-
CVE-2014-0160 (Heartbleed): Una falla crítica en OpenSSL que permitía la lectura de memoria del servidor, potencialmente exponiendo datos sensibles, incluyendo contraseñas y claves privadas.
-
CVE-2017-0144 (EternalBlue): Una falla de seguridad en el protocolo SMB de Microsoft, explotada por el ransomware WannaCry.
-
CVE-2021-44228 (Log4Shell): Una vulnerabilidad de ejecución remota de código en Log4j, una biblioteca de logging en Java, que afectó a miles de sistemas en todo el mundo.
CISA
Creada para mejorar la ciberseguridad, proteger la infraestructura crítica y coordinar las respuestas a incidentes de seguridad cibernética en Estados Unidos, pero va más allá de la ciberseguridad.
CISA desempeña varias funciones importantes para garantizar la seguridad cibernética y física
de Estados Unidos:
-
Protección de la Infraestructura Crítica: energía, transporte, agua, comunicaciones, finanzas, salud y otras que son esenciales para el funcionamiento de la sociedad y la economía.
-
Ciberseguridad: Coordina esfuerzos para prevenir, mitigar y responder a amenazas cibernéticas, tanto para entidades gubernamentales como para el sector privado. Proporciona directrices, alertas y mejores prácticas para ayudar a proteger redes y sistemas contra ataques cibernéticos.
-
Respuesta a Incidentes: Ayuda al gobierno y empresas privadas a investigar ataques cibernéticos y a desarrollar estrategias de respuesta y recuperación.
-
Divulgación de Vulnerabilidades y Amenazas: Publica informes de seguridad, divulga información sobre vulnerabilidades conocidas (incluyendo CVEs) y emite alertas de seguridad sobre amenazas emergentes. Trabaja con otras entidades, como MITRE, para compartir información sobre vulnerabilidades.
-
Capacitación y Asistencia Técnica: Ofrece capacitaciones, talleres y ejercicios de simulación.
CVSS (Common Vulnerability Scoring System)
Generalmente el NIST inicialmente calcula la puntuación de un CVE para un propósito general (base), pero esta puntuación puede no reflejar el escenario del entorno de la aplicación. Entonces es posible rebalancear los pesos (vector) aplicados al CVE.
Inicia con los pesos encontrados en el NIST y rehaz los cálculos y ve cuán grave es realmente el CVE para otro escenario.
Ya tenemos la calculadora 4.0 pero no siempre aparecen el vector para ella.
Calculadoras:
Ahora vamos a rebalancear. Seleccioné algunos valores aleatorios, obviamente no debemos tenerlos en cuenta y solo sirve de muestra.
Lee la guía de estándares CVSS para entender completamente cómo evaluar vulnerabilidades usando CVSS e interpretar las puntuaciones resultantes. Las puntuaciones se computan en secuencia, de modo que la Puntuación Base se usa para calcular la Puntuación Temporal y la Puntuación Temporal se usa para calcular la Puntuación del Entorno.