
Une collection d'applications Python et de scripts shell pour envoyer par courriel une feuille de calcul xlsx des nouvelles vulnérabilités de la base de données NIST CVE et de leurs produits associés selon un calendrier quotidien.
Description du projet
Une collection d'applications Python et de scripts shell pour envoyer par e-mail un tableur xlsx des nouvelles vulnérabilités de la base de données NIST CVE et de leurs produits associés, selon un planification quotidienne. Le tableur peut ensuite être interprété manuellement pour évaluer les risques propres à votre organisation.
Fichier : cve_manager.py
Un script Python initialement rédigé par Antonios Atlasis - [email protected]
https://github.com/aatlasis/cve_manager
Modifications par rapport à l'original :
Ajout de l'import de la bibliothèque de manipulation de données pandas
sudo pip3 install pandas openpyxl
Ajout d'une vue de base de données qui joint les données CVE et CPE
Modification des requêtes et rapports CPE par défaut pour inclure la chaîne de vecteur CVSSv3 au lieu du score CVSSv2
Modification des requêtes et rapports CPE par défaut pour trier par date de publication ASC, CVSS DESC et CPE ASC
Modification de la fonction de sortie CPE vers CSV pour enregistrer automatiquement une copie au format xlsx pour chaque CSV enregistré
Fichier : email_xlsx_attach.py
Nouveau script Python, rédigé par Shane Lawrence
envoie les rapports xlsx en pièces jointes par e-mail via un relais SMTP local
Fichier : daily.sh
Un script shell bash, rédigé par Shane Lawrence
Rassemble le tout dans quelque chose que cron peut exécuter quotidiennement
Automatise les utilisations suivantes de cve_manager.py :
Configuration d'un nouveau serveur :
Lisez le PDF original à :
https://github.com/aatlasis/cve_manager/blob/master/CVE%20Manager.pdf
Configuration de Python :
Nécessite Python 3
Rendez-vous service et installez également pip3
pip3 install psycopg2, openpyxl, pandas
Inclus requis :
psycopg2 - bibliothèques de science des données
pandas - bibliothèques de manipulation de données (dépend de openpyxl)
sys, argparse, os, zipfile, json, requests, re, io, csv, smtplib, base64, email, datetime
Configuration de PostgreSQL :
Installez la dernière base de données PostgreSQL pour votre distribution.
En tant que root, systemctl enable postgresql
systemctl start postgresql
puis définissez un mot de passe pour l'utilisateur postgresql en tapant :
sudo -u postgres psql
\l liste les bases de données
\du liste les utilisateurs
CREATE USER nom_utilisateur WITH PASSWORD 'mot_de_passe';
Utilisez cve_manager pour créer la base de données :
L'utilisateur doit avoir les privilèges de création
./cve_manager.py -u postgres -ps $PASSWORD -server localhost -db $DB -ow $USER -cd
Utilisez cve_manager.py pour créer le schéma
L'utilisateur doit avoir les privilèges de création
./cve_manager.py -u postgres -ps $PASSWORD -server localhost -db $DB -ct
Utilisez cve_manager pour télécharger les données CVE et CPE
./cve_manager.py -u $user -ps $pass -host $host -db $db -d -p -csv
Téléchargez et décompressez manuellement les données CWE
wget https://cwe.mitre.org/data/csv/1000.csv.zip
unzip 1000.csv.zip
Utilisez cve_manager pour importer les données NIST CVE et CPE dans la base de données
./cve_manager.py -u $user -ps $pass -host $host -db $db -idb -p
Utilisez cve_manager pour importer les données CWE dans la base de données
./cve_manager.py -u $user -ps $pass -host $host -db $db -icwe 1000.csv
Exécutez un exemple de rapport.
Cet exemple crée un CSV et un xlsx des vulnérabilités et des produits qu'elles affectent,
uniquement avec une sévérité évaluée à 7.0 ou plus, créés ou mis à jour depuis le 01 juillet 2020
./cve_manager.py -u $user -ps $password -host $host -db $db -sc 7.0 -dt 2020-07-01 -cpe cpe -csv -o $reports
Envoyez les rapports xlsx par e-mail
Modifiez email_xlsx_attach.py pour votre relais SMTP, expéditeur, destinataires et répertoire de rapports.
À FAIRE :
La prochaine itération consiste à trouver comment intégrer une liste d'un inventaire de produits critiques,
et ne créer que des rapports qui s'appliquent aux CPE de l'inventaire de produits.
Shane Lawrence
Conseiller Senior, Sécurité des Plateformes Cloud