
Télécharge et agrège les données CVSS, EPSS et CISA sur les vulnérabilités connues exploitées dans des fichiers JSON/CSV unifiés et une base de données SQLite. Enrichit les rapports de scanneurs de vulnérabilités (par ex., OpenVAS) pour une correction priorisée. Inclut un pipeline Logstash facultatif et un modèle de tableau de bord PowerBI.
Common Vulnerability Scoring System (CVSS) est une norme industrielle gratuite et ouverte pour évaluer la gravité des vulnérabilités de sécurité des systèmes informatiques.
Exploit Prediction Scoring System (EPSS) estime la probabilité qu'une vulnérabilité logicielle soit exploitée dans la nature.
La CISA publie une liste des vulnérabilités connues exploitées.
Ce projet télécharge les informations des trois sources et les combine en une seule liste.
Les scanners vous montrent le numéro CVE et le score CVSS, mais n'exportent souvent pas les détails complets comme "exploitabilityScore" ou "userInteractionRequired". En ajoutant le score EPSS, vous obtenez plus d'options pour choisir quoi faire en premier et filtrer sur les seuils qui ont du sens pour votre environnement.
Vous pouvez utiliser ces informations pour enrichir celles fournies par votre scanner de vulnérabilités comme OpenVAS afin de prioriser la remédiation.
Vous pouvez utiliser des outils comme PowerBI pour combiner les résultats du scanner de vulnérabilités avec les informations téléchargées par le script de ce dépôt.
Après le téléchargement, les informations requises seront extraites, formatées et des fichiers de sortie seront générés.
CVSS, EPSS et un fichier combiné de toutes les informations CVE seront disponibles. Les sorties sont disponibles aux formats json et csv.
De plus, les informations sont importées dans une base de données sqlite.
L'objectif n'était pas la performance ou l'efficacité.
Au lieu de cela, le script est écrit de manière simple. Plusieurs étapes sont réalisées pour le rendre plus facile à comprendre et traçable. Les fichiers des étapes intermédiaires sont écrits sur le disque pour vous permettre d'ajuster plus facilement les commandes à vos besoins.
Il utilise uniquement bash, jq et sqlite3 pour être très accessible aux débutants et démontrer l'utilisation de jq.
Ce dépôt contient un dossier demo avec un fichier modèle PowerBI. Il génère un tableau de bord que vous pouvez ajuster à vos besoins.

Le rapport OpenVAS doit être au format csv pour que l'import fonctionne.

PowerBI utilisera le fichier CVE.json créé et établira une relation :

Vous pouvez télécharger PowerBI gratuitement depuis https://aka.ms/pbiSingleInstaller et vous n'avez pas besoin d'un compte Microsoft pour l'utiliser.
Vous pouvez soit attendre que cron exécute le script de téléchargement selon un planning.
Sinon, vous pouvez exécuter manuellement le script de téléchargement en lançant :
docker exec -it vulnerability-tables-cron bash /opt/scripts/download.sh
Il y a trois conteneurs docker.
Le conteneur cron télécharge les informations une fois par semaine (lundi à 06:00) et stocke les fichiers dans le répertoire de sortie.
Il utilise curl et wget pour télécharger les fichiers. jq est utilisé pour travailler avec json.
Le conteneur filebeat lit les fichiers json et les transmet au conteneur logstash.
Le conteneur logstash peut être utilisé pour envoyer vers une instance OpenSearch, télécharger vers Azure Log Analytics, ou d'autres sorties prises en charge.
Filebeat et logstash sont optionnels et inclus uniquement pour la commodité.
Plusieurs fichiers de sortie seront générés. Voici une estimation :
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
Vous pouvez vous attendre à ces informations pour chaque 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."
}