
Una raccolta di applicazioni Python e script shell per inviare via email un foglio di calcolo xlsx delle nuove vulnerabilità nel database NIST CVE e dei relativi prodotti associati, con una pianificazione giornaliera.
Descrizione del progetto
Una raccolta di app Python e script shell per inviare via email un foglio di calcolo xlsx con le nuove vulnerabilità nel database NIST CVE e i relativi prodotti, con cadenza giornaliera. Il foglio di calcolo può poi essere interpretato manualmente per valutare il rischio specifico per la tua organizzazione.
File: cve_manager.py
Uno script Python originariamente scritto da Antonios Atlasis - [email protected]
https://github.com/aatlasis/cve_manager
Modifiche rispetto all'originale:
Aggiunta l'importazione della libreria di manipolazione dati pandas
sudo pip3 install pandas openpyxl
Aggiunta vista del database che unisce i dati cve e cpe
Modificate le query e i report predefiniti per cpe per includere la stringa del vettore cvssv3 invece del punteggio cvssv2
Modificate le query e i report predefiniti per cpe per ordinare per data di pubblicazione ASC, CVSS DESC e CPE ASC
Modificata la funzione di output cpe in csv per salvare automaticamente una copia in formato xlsx per ogni csv salvato
File: email_xlsx_attach.py
Nuovo script Python, scritto da Shane Lawrence
Invia i report xlsx come allegati email tramite un relay smtp locale
File: daily.sh
Uno script bash shell, scritto da Shane Lawrence
Mette tutto insieme in qualcosa che cron può eseguire quotidianamente
Automatizza i seguenti usi di cve_manager.py:
Nuova configurazione del server:
Leggi il pdf originale a:
https://github.com/aatlasis/cve_manager/blob/master/CVE%20Manager.pdf
Configurare Python:
Richiede Python 3
Fatti un favore e installa anche pip3
pip3 install psycopg2, openpyxl, pandas
Include richieste:
psycopg2 - librerie di data science
pandas - librerie di manipolazione dati (dipendenza da openpyxl)
sys, argparse, os, zipfile, json, requests, re, io, csv, smtplib, base64, email, datetime
Configurare PostgreSQL:
Installa l'ultimo database PostgreSQL per la tua distribuzione.
come root, systemctl enable postgresql
systemctl start postgresql
quindi imposta una password per l'utente postgresql con:
sudo -u postgres psql
\l elenca i database
\du elenca gli utenti
CREATE USER username WITH PASSWORD 'password';
Usare cve_manager per creare il database:
L'utente deve avere privilegi di creazione
./cve_manager.py -u postgres -ps $PASSWORD -server localhost -db $DB -ow $USER -cd
Usare cve_manager.py per creare lo schema
L'utente deve avere privilegi di creazione
./cve_manager.py -u postgres -ps $PASSWORD -server localhost -db $DB -ct
Usare cve_manager per scaricare i dati CVE e CPE
./cve_manager.py -u $user -ps $pass -host $host -db $db -d -p -csv
Scaricare e decomprimere manualmente i dati CWE
wget https://cwe.mitre.org/data/csv/1000.csv.zip
unzip 1000.csv.zip
Usare cve_manager per importare i dati NIST CVE e CPE nel database
./cve_manager.py -u $user -ps $pass -host $host -db $db -idb -p
Usare cve_manager per importare i dati CWE nel database
./cve_manager.py -u $user -ps $pass -host $host -db $db -icwe 1000.csv
Eseguire un report di esempio.
Questo esempio crea un csv e un xlsx delle vulnerabilità e dei prodotti che influenzano,
solo con gravità 7.0 o superiore, create o aggiornate dopo il 01 Luglio 2020
./cve_manager.py -u $user -ps $password -host $host -db $db -sc 7.0 -dt 2020-07-01 -cpe cpe -csv -o $reports
Inviare via email i report xlsx
Modificare email_xlsx_attach.py per il tuo relay smtp, mittente, destinatari e directory dei report.
DA FARE:
La prossima iterazione è capire come incorporare un elenco di un inventario di prodotti critici,
e creare solo report che si applicano ai CPE presenti nell'inventario dei prodotti.
Shane Lawrence
Consulente Senior, Sicurezza della Piattaforma Cloud