
Scarica e aggrega dati di vulnerabilità note come CVSS, EPSS e CISA in file JSON/CSV unificati e un database SQLite. Arricchisce i report degli scanner di vulnerabilità (es. OpenVAS) per una remediation prioritaria. Include una pipeline Logstash opzionale e un modello di dashboard PowerBI.
Il Common Vulnerability Scoring System (CVSS) è uno standard industriale gratuito e aperto per valutare la gravità delle vulnerabilità di sicurezza dei sistemi informatici.
L'Exploit Prediction Scoring System (EPSS) stima la probabilità che una vulnerabilità software venga sfruttata in circostanze reali.
La CISA pubblica un elenco di vulnerabilità note sfruttate.
Questo progetto scarica le informazioni dalle tre fonti e le combina in un unico elenco.
Gli scanner mostrano il numero CVE e il punteggio CVSS, ma spesso non esportano i dettagli completi come "exploitabilityScore" o "userInteractionRequired". Aggiungendo il punteggio EPSS si hanno più opzioni per selezionare cosa fare per primo e filtrare in base alle soglie che hanno senso per il proprio ambiente.
Puoi utilizzare queste informazioni per arricchire i dati forniti dal tuo scanner di vulnerabilità, come OpenVAS, per dare priorità alla correzione.
Puoi usare strumenti come PowerBI per combinare i risultati dello scanner di vulnerabilità con le informazioni scaricate dallo script in questo repository.
Dopo il download, le informazioni necessarie vengono estratte, formattate e vengono generati file di output.
Saranno disponibili CVSS, EPSS e un file combinato di tutte le informazioni CVE. Gli output sono disponibili in formato json e csv.
Inoltre, le informazioni vengono importate in un database sqlite.
L'obiettivo non era le prestazioni o l'efficienza.
Lo script è invece scritto in modo semplice. Vengono eseguiti più passaggi per renderlo più facile da comprendere e tracciabile. I file delle fasi intermedie vengono scritti su disco per permetterti di adattare più facilmente i comandi alle tue esigenze.
Utilizza solo bash, jq e sqlite3 per essere molto adatto ai principianti e dimostrare l'uso di jq.
Questo repository contiene una cartella demo con un file modello di PowerBI. Genera una dashboard che puoi adattare alle tue esigenze.

Il report di OpenVAS deve essere in formato csv affinché l'importazione funzioni.

PowerBI utilizzerà il file CVE.json creato e creerà una relazione:

Puoi scaricare PowerBI gratuitamente da https://aka.ms/pbiSingleInstaller e non hai bisogno di un account Microsoft per utilizzarlo.
Puoi attendere che cron esegua lo script di download secondo una pianificazione.
In alternativa, puoi eseguire manualmente lo script di download con:
docker exec -it vulnerability-tables-cron bash /opt/scripts/download.sh
Ci sono tre contenitori Docker.
Il contenitore cron scarica le informazioni una volta a settimana (lunedì alle 06:00) e memorizza i file nella directory di output.
Utilizza curl e wget per scaricare i file. jq è usato per lavorare con json.
Il contenitore filebeat legge i file json e li inoltra al contenitore logstash.
Il contenitore logstash può essere utilizzato per inviare a un'istanza OpenSearch, caricare in Azure Log Analytics o ad altre destinazioni supportate.
Filebeat e logstash sono opzionali e sono inclusi solo per comodità.
Verranno generati diversi file di output. Ecco una stima:
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
Puoi aspettarti queste informazioni per ogni 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."
}