
Uma coleção de aplicativos python e scripts shell para enviar por email uma planilha xlsx de novas vulnerabilidades no banco de dados NIST CVE e seus produtos associados em uma programação diária.
Descrição do Projeto
Uma coleção de aplicativos Python e scripts de shell para enviar por e-mail uma planilha xlsx de novas vulnerabilidades no banco de dados NIST CVE e seus produtos associados em uma programação diária. A planilha pode então ser interpretada manualmente para avaliar o risco para sua organização específica.
Arquivo: cve_manager.py
Um script Python originalmente escrito por Antonios Atlasis - [email protected]
https://github.com/aatlasis/cve_manager
Alterações em relação ao original:
Adicionada importação da biblioteca de manipulação de dados pandas
sudo pip3 install pandas openpyxl
Adicionada visão de banco de dados que une dados de cve e cpe
Modificadas consultas e relatórios padrão de cpe para incluir a string de vetor cvssv3 em vez da pontuação cvssv2
Modificadas consultas e relatórios padrão de cpe para ordenar por data de publicação ASC, CVSS DESC e CPE ASC
Modificada a função de saída cpe para csv para salvar automaticamente uma cópia no formato xlsx para cada csv salvo
Arquivo: email_xlsx_attach.py
Novo script Python, escrito por Shane Lawrence
envia os relatórios xlsx como anexos de e-mail através de um relay smtp local
Arquivo: daily.sh
um script bash shell, escrito por Shane Lawrence
Junta tudo em algo que o cron pode executar diariamente
Automatiza os seguintes usos do cve_manager.py:
Nova configuração do servidor:
Leia o pdf original em:
https://github.com/aatlasis/cve_manager/blob/master/CVE%20Manager.pdf
Configurar python:
Requer python 3
Faça um favor a si mesmo e instale também o pip3
pip3 install psycopg2, openpyxl, pandas
Inclusões necessárias:
psycopg2 - bibliotecas de ciência de dados
pandas - bibliotecas de manipulação de dados (dependência de openpyxl)
sys, argparse, os, zipfile, json, requests, re, io, csv, smtplib, base64, email, datetime
Configurar postgres:
Instale o banco de dados postgresql mais recente para sua distribuição.
como root, systemctl enable postgresql
systemctl start postgresql
então defina uma senha para o usuário postgresql por:
sudo -u postgres psql
\l lista bancos de dados
\du lista usuários
CREATE USER username WITH PASSWORD 'password';
Use cve_manager para criar o banco de dados:
O usuário deve ter privilégios de criação
./cve_manager.py -u postgres -ps $PASSWORD -server localhost -db $DB -ow $USER -cd
Use cve_manager.py para criar o esquema
O usuário deve ter privilégios de criação
./cve_manager.py -u postgres -ps $PASSWORD -server localhost -db $DB -ct
Use cve_manager para baixar os dados CVE e CPE
./cve_manager.py -u $user -ps $pass -host $host -db $db -d -p -csv
Baixe e descompacte manualmente os dados CWE
wget https://cwe.mitre.org/data/csv/1000.csv.zip
unzip 1000.csv.zip
Use cve_manager para importar os dados NIST CVE e CPE para o banco de dados
./cve_manager.py -u $user -ps $pass -host $host -db $db -idb -p
Use cve_manager para importar os dados CWE para o banco de dados
./cve_manager.py -u $user -ps $pass -host $host -db $db -icwe 1000.csv
Execute um relatório de exemplo.
Este exemplo cria um csv e xlsx das vulnerabilidades e produtos que afetam, apenas com gravidade classificada como 7.0 ou superior, criados ou atualizados desde 01 de julho 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
Envie os relatórios xlsx por e-mail
Modifique o email_xlsx_attach.py para seu relay smtp, remetente, destinatários e diretório de relatórios.
A FAZER:
A próxima iteração é descobrir como incorporar uma lista de um inventário de produtos críticos, e criar apenas relatórios que se apliquem aos CPEs do inventário de produtos.
Shane Lawrence
Conselheiro Sênior, Segurança da Plataforma de Nuvem