
Descarga y agrega datos de vulnerabilidades conocidas explotadas de CVSS, EPSS y CISA en archivos JSON/CSV unificados y una base de datos SQLite. Enriquece informes de escáneres de vulnerabilidades (p. ej., OpenVAS) para una remediación priorizada. Incluye una canalización opcional de Logstash y una plantilla de panel de PowerBI.
Common Vulnerability Scoring System (CVSS) es un estándar industrial gratuito y abierto para evaluar la gravedad de las vulnerabilidades de seguridad en sistemas informáticos.
Exploit Prediction Scoring System (EPSS) estima la probabilidad de que una vulnerabilidad de software sea explotada en la naturaleza.
CISA publica una lista de vulnerabilidades explotadas conocidas.
Este proyecto descarga la información de las tres fuentes y las combina en una sola lista.
Los escáneres muestran el número CVE y la puntuación CVSS, pero a menudo no exportan los detalles completos como "exploitabilityScore" o "userInteractionRequired". Al agregar la puntuación EPSS, obtienes más opciones para seleccionar qué hacer primero y filtrar según los umbrales que tengan sentido para tu entorno.
Puedes usar la información para enriquecer los datos proporcionados por tu escáner de vulnerabilidades, como OpenVAS, para priorizar la remediación.
Puedes usar herramientas como PowerBI para combinar los resultados del escáner de vulnerabilidades con la información descargada por el script en este repositorio.
Tras la descarga, se extraerá, formateará y generará la información requerida.
CVSS, EPSS y un archivo combinado de toda la información CVE estarán disponibles. Las salidas están en formatos json y csv.
Además, la información se importa a una base de datos sqlite.
El objetivo no fue el rendimiento ni la eficiencia.
En cambio, el script está escrito de manera simple. Se realizan múltiples pasos para que sea más fácil de entender y rastrear. Los archivos de los pasos intermedios se escriben en el disco para que te sea más fácil ajustar los comandos a tus necesidades.
Solo utiliza bash, jq y sqlite3 para ser muy amigable para principiantes y demostrar el uso de jq.
Este repositorio contiene una carpeta demo con un archivo de plantilla de PowerBI. Genera un panel que puedes ajustar a tus necesidades.

El informe de OpenVAS debe estar en formato csv para que la importación funcione.

PowerBI utilizará el archivo CVE.json creado y establecerá una relación:

Puedes descargar PowerBI gratis desde https://aka.ms/pbiSingleInstaller y no necesitas una cuenta de Microsoft para usarlo.
Puedes esperar a que cron ejecute el script de descarga según un horario.
Alternativamente, puedes ejecutar el script de descarga manualmente ejecutando:
docker exec -it vulnerability-tables-cron bash /opt/scripts/download.sh
Hay tres contenedores docker.
El contenedor cron descarga la información una vez a la semana (lunes 06:00) y almacena los archivos en el directorio de salida.
Utiliza curl y wget para descargar archivos. jq se usa para trabajar con json.
El contenedor filebeat lee los archivos json y los reenvía al contenedor logstash.
El contenedor logstash se puede usar para enviar a una instancia de OpenSearch, cargarlo en Azure Log Analytics u otras salidas compatibles.
Filebeat y logstash son opcionales y se incluyen solo por conveniencia.
Se generarán varios archivos de salida. Aquí hay una estimación:
316K CISA_known_exploited.csv
452K CISA_known_exploited.json
50M CVSS.csv
179M CVSS.json
206M CVE.json
56M CVE.csv
6.7M EPSS.csv
12M EPSS.json
49M database.sqlite
Puedes esperar esta información para cada CVE:
grep -i 'CVE-2021-44228' CVE.json | jq
{
"CVE": "CVE-2021-44228",
"CVSS2_accessComplexity": "AV:N/AC:M/Au:N/C:C/I:C/A:C",
"CVSS2_accessVector": "NETWORK",
"CVSS2_authentication": "MEDIUM",
"CVSS2_availabilityImpact": "NONE",
"CVSS2_baseScore": "COMPLETE",
"CVSS2_baseSeverity": "COMPLETE",
"CVSS2_confidentialityImpact": "COMPLETE",
"CVSS2_exploitabilityScore": "9.3",
"CVSS2_impactScore": "null",
"CVSS2_integrityImpact": "8.6",
"CVSS2_vectorString": "10",
"CVSS3_attackComplexity": "null",
"CVSS3_attackVector": "null",
"CVSS3_availabilityImpact": "null",
"CVSS3_baseScore": "null",
"CVSS3_baseSeverity": "null",
"CVSS3_confidentialityImpact": "null",
"CVSS3_exploitabilityScore": "null",
"CVSS3_impactScore": "null",
"CVSS3_integrityImpact": "null",
"CVSS3_privilegesRequired": "null",
"CVSS3_scope": "null",
"CVSS3_userInteraction": "null",
"CVSS3_vectorString": "null",
"CVSS3_acInsufInfo": "null",
"CVSS3_obtainAllPrivilege": "null",
"CVSS3_obtainUserPrivilege": "null",
"CVSS3_obtainOtherPrivilege": "null",
"CVSS3_userInteractionRequired": "null",
"EPSS": "0.97095",
"EPSS_Percentile": "0.99998",
"CISA_dateAdded": "2021-12-10",
"CISA_RequiredAction": "For all affected software assets for which updates exist, the only acceptable remediation actions are: 1) Apply updates; OR 2) remove affected assets from agency networks. Temporary mitigations using one of the measures provided at https://www.cisa.gov/uscert/ed-22-02-apache-log4j-recommended-mitigation-measures are only acceptable until updates are available."
}