Uno de los principales desafíos en la gestión de vulnerabilidades es el abrumador número de vulnerabilidades combinadas con recursos limitados. No todas las vulnerabilidades son igualmente peligrosas, y no todas requieren una reparación urgente. Por ejemplo, una vulnerabilidad con una puntuación CVSS alta podría suponer poco riesgo real si la probabilidad de explotación es extremadamente baja. En el artículo anterior, presentamos a En este artículo, voy a demostrar cómo implementé el soporte EPSS e integré esta métrica en mis procesos de filtración y análisis para mejorar los esfuerzos de remediación. Solución sin código para la priorización de vulnerabilidades utilizando Budibase Al adoptar la priorización basada en EPSS, puede mejorar significativamente la eficacia de su estrategia de reparación al centrarse en las vulnerabilidades que realmente importan.De mi investigación, he descubierto que muchas soluciones de gestión de vulnerabilidades todavía no incorporan completamente EPSS, a pesar de su disponibilidad para el público. La buena noticia es que no necesita plataformas caras para implementar la priorización basada en EPSS. ¿Qué es EPSS y por qué es útil? El sistema de puntuación predictiva de explotación ( Representa la probabilidad de que una vulnerabilidad específica sea explotada dentro de los próximos 30 días, expresada en porcentaje. EPSS La versión actual del modelo es la versión 4, que se lanzó el 17 de marzo de 2025. Mantiene el proyecto, y los datos se actualizan diariamente y están disponibles para descargar en formato .csv. FIRST.org Una vulnerabilidad con una probabilidad muy baja de explotación representa una amenaza menor inmediata. Una vulnerabilidad con una probabilidad muy baja de explotación representa una amenaza menor inmediata. Este enfoque mejora la eficiencia al dirigir los recursos, como el tiempo y el esfuerzo, hacia las vulnerabilidades que suponen un riesgo más significativo, permitiendo abordar las vulnerabilidades menos críticas más tarde, ya sea cuando se vuelven más arriscadas o cuando hay recursos adicionales disponibles. Por ejemplo, considere dos vulnerabilidades: una con una puntuación de CVSS de 7,0 y una EPSS de 0,01 (indicando una probabilidad de explotación del 1%), y otra con una puntuación de CVSS de 6,5 y una EPSS de 0,91 (indicando una probabilidad de explotación del 91%). Mientras que CVSS indica la gravedad teórica, EPSS ofrece una visión de la probabilidad de que una vulnerabilidad esté siendo explotada, proporcionando un contexto valioso con respecto a posibles amenazas del mundo real. Como se ilustra en la imagen anterior, cuando se aplica el método EPSS con un umbral de más del 10%: El esfuerzo se reduce a sólo 2.7%, significativamente menor que el esfuerzo requerido con un umbral de CVSS de 7 o superior. La cobertura alcanza el 63,2%, ligeramente inferior al enfoque CVSS, que es beneficioso para evitar la priorización excesiva de las vulnerabilidades menos relevantes. La eficacia se sitúa en el 65,2%, lo que es significativamente mayor que lo que se logra con el método CVSS 7+. Además de la puntuación EPSS, también hay una métrica percentil que indica la proporción (o porcentaje) de vulnerabilidades con la misma o menor probabilidad de explotación. Por ejemplo, si una vulnerabilidad tiene una puntuación EPSS de 0,10 (10%) y un porcentaje de 88, significa que el 88% de todas las otras vulnerabilidades tienen una puntuación EPSS más baja. El uso de la puntuación EPSS junto a su percentil permite una priorización más precisa, especialmente cuando se trata de grandes conjuntos de datos. Una explicación detallada de cómo interpretar estos valores se puede encontrar en el artículo a continuación ⬇️. https://www.first.org/epss/articles/prob_percentile_bins?embedable=true Es importante recordar que la puntuación EPSS es una predicción y no una garantía de explotación.Para más información sobre cómo funciona el modelo, visite la página oficial: https://www.first.org/epss/model. Cómo implementé EPSS en mi sistema usando Budibase Para implementar la filtración basada en el valor de EPSS, primero descargé el archivo del oficial sitio web, que contiene las últimas puntuaciones de probabilidad de explotación para vulnerabilidades. Aquí está un ejemplo del contenido del archivo CSV: first.org #model_version:v2025.03.14,score_date:2025-08-02T12:55:00Z cve,epss,percentile CVE-1999-0001,0.0142,0.79836 CVE-1999-0002,0.14818,0.94265 CVE-1999-0003,0.90339,0.99584 ... A continuación, actualizé el script de Python que uso para exportar vulnerabilidades de la solución de VM. Parsing the EPSS and percentile values Converting these values into percentages by multiplying by 100 Rounding them to whole numbers No todos los CVEs están presentes en el conjunto de datos EPSS; para los que no están incluidos, asigno el valor de 99. No todos los CVEs están presentes en el conjunto de datos EPSS; para los que no están incluidos, asigno el valor de 99. Después de importar los datos a la base de datos, implementé las siguientes características en Budibase: Un formulario de filtro para los umbrales EPSS, como >10% Un mecanismo para refrescar automáticamente los dashboards en función del umbral seleccionado Two control buttons: One for viewing the list of vulnerabilities in a pop-up window Another for exporting the results to a .csv file for further analysis or reporting. Después de eso, actualizé las consultas SQL en Budibase añadiendo condiciones para filtrar por valor EPSS y porcentaje. Ejemplo de bloqueo condicional: ... ( CASE WHEN {{epssthr}}::text IS NULL THEN TRUE ELSE epssScore >= {{epssthr}} END ) AND ( CASE WHEN {{epssrating}}::text IS NULL THEN TRUE ELSE epsspercentile >= {{epssrating}} END ) ... Aquí está un ejemplo de una consulta SQL para el dashboard que muestra los servicios más vulnerables: SELECT COUNT(hostname) AS total, VulnerableEntity || ' ' || VulnerableEntityVersion AS VulnerableObject FROM mat_allassets WHERE osname ILIKE '%windows 20%' AND VulnerableEntity IS NOT NULL AND status = 'new' AND VulnerabilityIssueTime < CURRENT_DATE - {{days}}::interval AND ( CASE WHEN {{ sev }}::text IS NULL THEN TRUE ELSE severity = {{ sev }}::text END ) AND ( CASE WHEN {{expltbl}}::bool IS NULL THEN TRUE ELSE metrics ILIKE 'Exploitable: {{expltbl}}%'::text END ) AND ( CASE WHEN {{expltbl}}::bool IS NULL THEN TRUE ELSE metrics ILIKE 'Exploitable: {{expltbl}}%'::text END ) AND ( CASE WHEN {{netvector}}::bool IS NULL THEN TRUE ELSE metrics ILIKE '%HasNetworkAttackVector: {{netvector}}%'::text END ) AND ( CASE WHEN {{remedy}}::bool IS NULL THEN TRUE ELSE metrics ILIKE '%HasFix: {{remedy}}%'::text END ) AND ( CASE WHEN {{vulntrend}}::bool IS NULL THEN TRUE ELSE VulnerIsTrend = '{{vulntrend}}'::text END ) AND ( CASE WHEN {{hostimport}}::text IS NULL THEN TRUE ELSE HostImportance = '{{hostimport}}'::text END ) AND ( CASE WHEN {{epssthr}}::text IS NULL THEN TRUE ELSE epssScore >= {{epssthr}} END ) AND ( CASE WHEN {{epssrating}}::text IS NULL THEN TRUE ELSE epsspercentile >= {{epssrating}} END ) GROUP BY VulnerableObject ORDER BY total DESC LIMIT 10; Después, incluí los enlaces de variables de la interfaz de usuario en la consulta SQL. . Artículo sobre priorización de vulnerabilidades Al final, desarrollé una aplicación simple y fácil de usar que me permite establecer filtros de priorización, incluyendo un umbral para el sistema de puntuación de predicción de explotación (EPSS). En la captura de pantalla de abajo, establecí el umbral de EPSS a 10 o más, seleccioné vulnerabilidades de tendencia mayores de 14 días, y requirió la presencia de un exploit. Al utilizar un umbral de EPSS (Exploit Predictive Scoring System) del 10%, podemos cubrir el 63,2% de las vulnerabilidades explotadas, logrando una eficiencia de reparación del 65,2%, mientras utilizamos menos recursos. Para desactivar la filtración EPSS, simplemente establezco el valor límite en 0; el filtro ya no se aplicará. Además, si establezco un filtro de gravedad por encima de la media, los resultados suelen destacar vulnerabilidades como ejecuciones de código remoto (RCEs), ejecuciones de comandos o inyecciones de SQL. Enfoque donde importa EPSS es una poderosa herramienta que mejora significativamente la eficiencia de la priorización de vulnerabilidades. En lugar de "apagar los incendios ciegamente", ahora trabajamos con intención, centrándonos en los temas más críticos primero. Dicho esto, cada infraestructura es única, y cualquier sistema de priorización debe adaptarse al entorno específico. También es esencial recordar que cualquier proceso de gestión de vulnerabilidades comienza con el descubrimiento e inventario de activos. Sin una comprensión clara de lo que estamos protegiendo, cada otro paso pierde su significado. Además, nunca deje configuraciones predeterminadas en su infraestructura, ya que siguen siendo uno de los vectores de ataque más comunes. Me encantaría escuchar tus opiniones en los comentarios: Do you use EPSS in your work?