
Eine Sammlung von Python-Anwendungen und Shell-Skripten, um täglich eine xlsx-Tabelle mit neuen Schwachstellen aus der NIST-CVE-Datenbank und deren zugehörigen Produkten zu versenden.
Projektbeschreibung
Eine Sammlung von Python-Anwendungen und Shell-Skripten, um täglich eine xlsx-Tabelle mit neuen Schwachstellen aus der NIST-CVE-Datenbank und den zugehörigen Produkten zu versenden. Die Tabelle kann dann manuell im Hinblick auf das Risiko für Ihre spezifische Organisation interpretiert werden.
Datei: cve_manager.py
Ein Python-Skript, ursprünglich verfasst von Antonios Atlasis - [email protected]
https://github.com/aatlasis/cve_manager
Änderungen gegenüber dem Original:
Import der Datenbearbeitungsbibliothek pandas hinzugefügt
sudo pip3 install pandas openpyxl
Datenbank-View hinzugefügt, der CVE- und CPE-Daten verknüpft
Standardmäßige CPE-Abfragen und -Berichte geändert, um cvssv3-Vektor-String anstelle von cvssv2-Score zu verwenden
Standardmäßige CPE-Abfragen und -Berichte geändert, um nach Veröffentlichungsdatum ASC, CVSS DESC und CPE ASC zu sortieren
CPE-Ausgabe an CSV-Funktion geändert, um automatisch eine Kopie im xlsx-Format für jede gespeicherte CSV zu erstellen
Datei: email_xlsx_attach.py
Neues Python-Skript, verfasst von Shane Lawrence
Sendet die xlsx-Berichte als E-Mail-Anhänge über einen lokalen SMTP-Relay
Datei: daily.sh
Ein Bash-Shell-Skript, verfasst von Shane Lawrence
Fügt alles in etwas zusammen, das cron täglich ausführen kann
Automatisiert die folgenden Verwendungen von cve_manager.py:
Neue Server-Einrichtung:
Lesen Sie das ursprüngliche PDF unter:
https://github.com/aatlasis/cve_manager/blob/master/CVE%20Manager.pdf
Python einrichten:
Erfordert Python 3
Tun Sie sich einen Gefallen und installieren Sie auch pip3
pip3 install psycopg2, openpyxl, pandas
Erforderliche Bibliotheken:
psycopg2 – Data-Science-Bibliotheken
pandas – Bibliotheken zur Datenbearbeitung (Abhängigkeit von openpyxl)
sys, argparse, os, zipfile, json, requests, re, io, csv, smtplib, base64, email, datetime
PostgreSQL einrichten:
Installieren Sie die neueste PostgreSQL-Datenbank für Ihre Distribution.
Als root: systemctl enable postgresql
systemctl start postgresql
Dann legen Sie ein Passwort für den PostgreSQL-Benutzer fest mit:
sudo -u postgres psql
\l listet Datenbanken auf
\du listet Benutzer auf
CREATE USER username WITH PASSWORD 'password';
Verwenden Sie cve_manager, um die Datenbank zu erstellen:
Der Benutzer muss Erstellungsberechtigungen haben
./cve_manager.py -u postgres -ps $PASSWORD -server localhost -db $DB -ow $USER -cd
Verwenden Sie cve_manager.py, um das Schema zu erstellen
Der Benutzer muss Erstellungsberechtigungen haben
./cve_manager.py -u postgres -ps $PASSWORD -server localhost -db $DB -ct
Verwenden Sie cve_manager, um die CVE- und CPE-Daten herunterzuladen
./cve_manager.py -u $user -ps $pass -host $host -db $db -d -p -csv
Laden Sie die CWE-Daten manuell herunter und entpacken Sie sie
wget https://cwe.mitre.org/data/csv/1000.csv.zip
unzip 1000.csv.zip
Verwenden Sie cve_manager, um die NIST-CVE- und CPE-Daten in die Datenbank zu importieren
./cve_manager.py -u $user -ps $pass -host $host -db $db -idb -p
Verwenden Sie cve_manager, um die CWE-Daten in die Datenbank zu importieren
./cve_manager.py -u $user -ps $pass -host $host -db $db -icwe 1000.csv
Führen Sie einen Beispielbericht aus.
Dieses Beispiel erstellt eine CSV und xlsx der Schwachstellen und der davon betroffenen Produkte,
nur mit einem Schweregrad von 7,0 oder höher, erstellt oder aktualisiert seit dem 1. Juli 2020
./cve_manager.py -u $user -ps $password -host $host -db $db -sc 7.0 -dt 2020-07-01 -cpe cpe -csv -o $reports
Versenden Sie die xlsx-Berichte per E-Mail
Passen Sie email_xlsx_attach.py für Ihren SMTP-Relay, Absender, Empfänger und das Berichtsverzeichnis an.
TODO:
Nächste Iteration ist herauszufinden, wie eine Liste eines kritischen Produktbestands integriert werden kann,
und nur Berichte zu erstellen, die für die CPEs im Produktbestand zutreffen.
Shane Lawrence
Sr. Berater, Sicherheit der Cloud-Plattform