
Una colección de aplicaciones Python y scripts de shell para enviar por correo electrónico una hoja de cálculo xlsx de nuevas vulnerabilidades en la base de datos NIST CVE y sus productos asociados en un horario diario.
Descripción del proyecto
Una colección de aplicaciones Python y scripts de shell para enviar por correo electrónico una hoja de cálculo xlsx de nuevas vulnerabilidades en la base de datos NIST CVE y sus productos asociados, en un horario diario. La hoja de cálculo puede luego interpretarse manualmente para evaluar el riesgo para su organización específica.
Archivo: cve_manager.py
Un script Python originalmente escrito por Antonios Atlasis - [email protected]
https://github.com/aatlasis/cve_manager
Cambios respecto al original:
Agregada importación de la biblioteca de manipulación de datos pandas
sudo pip3 install pandas openpyxl
Agregada vista de base de datos que une datos de cve y cpe
Modificadas consultas e informes CPE predeterminados para incluir la cadena de vector cvssv3 en lugar de la puntuación cvssv2
Modificadas consultas e informes CPE predeterminados para ordenar por fecha de publicación ASC, CVSS DESC y CPE ASC
Modificada la función de salida CPE a CSV para guardar automáticamente una copia en formato xlsx por cada CSV guardado
Archivo: email_xlsx_attach.py
Nuevo script Python, escrito por Shane Lawrence
envía los informes xlsx como archivos adjuntos de correo electrónico a través de un relay smtp local
Archivo: daily.sh
un script de shell bash, escrito por Shane Lawrence
Lo une todo en algo que cron puede ejecutar diariamente
Automatiza los siguientes usos de cve_manager.py:
Configuración de nuevo servidor:
Lea el PDF original en:
https://github.com/aatlasis/cve_manager/blob/master/CVE%20Manager.pdf
Configurar Python:
Requiere Python 3
Hágase un favor e instale también pip3
pip3 install psycopg2, openpyxl, pandas
Incluye necesarios:
psycopg2 - librerías de ciencia de datos
pandas - librerías de manipulación de datos (dependencia de openpyxl)
sys, argparse, os, zipfile, json, requests, re, io, csv, smtplib, base64, email, datetime
Configurar PostgreSQL:
Instale la última base de datos PostgreSQL para su distribución.
como root, systemctl enable postgresql
systemctl start postgresql
luego establezca una contraseña para el usuario de postgresql mediante:
sudo -u postgres psql
\l lists databases
\du lists users
CREATE USER username WITH PASSWORD 'password';
Usar cve_manager para crear la base de datos:
El usuario debe tener privilegios de creación
./cve_manager.py -u postgres -ps $PASSWORD -server localhost -db $DB -ow $USER -cd
Usar cve_manager.py para crear el esquema
El usuario debe tener privilegios de creación
./cve_manager.py -u postgres -ps $PASSWORD -server localhost -db $DB -ct
Usar cve_manager para descargar los datos CVE y CPE
./cve_manager.py -u $user -ps $pass -host $host -db $db -d -p -csv
Descargar manualmente y descomprimir los datos CWE
wget https://cwe.mitre.org/data/csv/1000.csv.zip
unzip 1000.csv.zip
Usar cve_manager para importar los datos NIST CVE y CPE en la base de datos
./cve_manager.py -u $user -ps $pass -host $host -db $db -idb -p
Usar cve_manager para importar los datos CWE en la base de datos
./cve_manager.py -u $user -ps $pass -host $host -db $db -icwe 1000.csv
Ejecutar un informe de ejemplo.
Este ejemplo crea un CSV y xlsx de las vulnerabilidades y los productos que afectan, solo con una severidad calificada de 7.0 o superior, creadas o actualizadas desde el 01 de julio de 2020
./cve_manager.py -u $user -ps $password -host $host -db $db -sc 7.0 -dt 2020-07-01 -cpe cpe -csv -o $reports
Enviar por correo electrónico los informes xlsx
Modifique email_xlsx_attach.py para su relay smtp, remitente, destinatarios y directorio de informes.
PENDIENTE:
La próxima iteración es descubrir cómo incorporar una lista de un inventario de productos críticos y solo crear informes que se apliquen a los CPE en el inventario de productos.
Shane Lawrence
Asesor Senior, Seguridad de Plataforma en la Nube