
Baixa e agrega dados de vulnerabilidades conhecidas exploradas do CVSS, EPSS e CISA em arquivos JSON/CSV unificados e um banco de dados SQLite. Enriquece relatórios de scanners de vulnerabilidades (por exemplo, OpenVAS) para remediação priorizada. Inclui pipeline opcional do Logstash e modelo de dashboard do PowerBI.
O Common Vulnerability Scoring System (CVSS) é um padrão industrial gratuito e aberto para avaliar a gravidade de vulnerabilidades de segurança em sistemas informáticos.
O Exploit Prediction Scoring System (EPSS) estima a probabilidade de uma vulnerabilidade de software ser explorada na natureza.
A CISA publica uma lista de vulnerabilidades conhecidas e exploradas.
Este projeto descarrega as informações das três fontes e combina-as numa única lista.
Os scanners mostram o número CVE e a pontuação CVSS, mas muitas vezes não exportam os detalhes completos, como "exploitabilityScore" ou "userInteractionRequired". Ao adicionar a pontuação EPSS, obtém mais opções para selecionar o que fazer primeiro e filtrar pelos limiares que fazem sentido para o seu ambiente.
Pode usar as informações para enriquecer os dados fornecidos pelo seu scanner de vulnerabilidades, como o OpenVAS, a fim de priorizar a remediação.
Pode usar ferramentas como o PowerBI para combinar os resultados do scanner de vulnerabilidades com as informações descarregadas pelo script neste repositório.
Após o download, as informações necessárias serão extraídas, formatadas e os ficheiros de saída serão gerados.
Os ficheiros CVSS, EPSS e um ficheiro combinado com todas as informações CVE estarão disponíveis. As saídas estão disponíveis nos formatos json e csv.
Adicionalmente, as informações são importadas para uma base de dados sqlite.
O objetivo não foi desempenho ou eficiência.
Em vez disso, o script foi escrito de forma simples. Várias etapas são realizadas para facilitar a compreensão e rastreabilidade. Os ficheiros das etapas intermédias são escritos em disco para permitir ajustar os comandos às suas necessidades.
Utiliza apenas bash, jq e sqlite3 para ser muito amigável para principiantes e demonstrar o uso do jq.
Este repositório contém uma pasta demo com um ficheiro de modelo PowerBI. Gera um dashboard que pode ajustar às suas necessidades.

O relatório do OpenVAS deve estar no formato csv para que a importação funcione.

O PowerBI usará o ficheiro CVE.json criado e estabelecerá uma relação:

Pode descarregar o PowerBI gratuitamente em https://aka.ms/pbiSingleInstaller e não precisa de uma conta Microsoft para o utilizar.
Pode esperar que o cron execute o script de download num horário agendado.
Alternativamente, pode executar o script de download manualmente executando:
docker exec -it vulnerability-tables-cron bash /opt/scripts/download.sh
Existem três contentores docker.
O contentor cron descarrega as informações uma vez por semana (segunda-feira às 06:00) e armazena os ficheiros no diretório de saída.
Utiliza curl e wget para descarregar ficheiros. jq é usado para trabalhar com json.
O contentor filebeat lê os ficheiros json e encaminha-os para o contentor logstash.
O contentor logstash pode ser usado para enviar para uma instância OpenSearch, carregar para o Azure Log Analytics ou outras saídas suportadas.
Filebeat e logstash são opcionais e estão incluídos apenas por conveniência.
Vários ficheiros de saída serão gerados. Aqui está uma estimativa:
316K CISA_known_exploited.csv
452K CISA_known_exploited.json
50M CVSS.csv
179M CVSS.json
206M CVE.json
56M CVE.csv
6.7M EPSS.csv
12M EPSS.json
49M database.sqlite
Pode esperar estas informações para cada CVE:
grep -i 'CVE-2021-44228' CVE.json | jq
{
"CVE": "CVE-2021-44228",
"CVSS2_accessComplexity": "AV:N/AC:M/Au:N/C:C/I:C/A:C",
"CVSS2_accessVector": "NETWORK",
"CVSS2_authentication": "MEDIUM",
"CVSS2_availabilityImpact": "NONE",
"CVSS2_baseScore": "COMPLETE",
"CVSS2_baseSeverity": "COMPLETE",
"CVSS2_confidentialityImpact": "COMPLETE",
"CVSS2_exploitabilityScore": "9.3",
"CVSS2_impactScore": "null",
"CVSS2_integrityImpact": "8.6",
"CVSS2_vectorString": "10",
"CVSS3_attackComplexity": "null",
"CVSS3_attackVector": "null",
"CVSS3_availabilityImpact": "null",
"CVSS3_baseScore": "null",
"CVSS3_baseSeverity": "null",
"CVSS3_confidentialityImpact": "null",
"CVSS3_exploitabilityScore": "null",
"CVSS3_impactScore": "null",
"CVSS3_integrityImpact": "null",
"CVSS3_privilegesRequired": "null",
"CVSS3_scope": "null",
"CVSS3_userInteraction": "null",
"CVSS3_vectorString": "null",
"CVSS3_acInsufInfo": "null",
"CVSS3_obtainAllPrivilege": "null",
"CVSS3_obtainUserPrivilege": "null",
"CVSS3_obtainOtherPrivilege": "null",
"CVSS3_userInteractionRequired": "null",
"EPSS": "0.97095",
"EPSS_Percentile": "0.99998",
"CISA_dateAdded": "2021-12-10",
"CISA_RequiredAction": "For all affected software assets for which updates exist, the only acceptable remediation actions are: 1) Apply updates; OR 2) remove affected assets from agency networks. Temporary mitigations using one of the measures provided at https://www.cisa.gov/uscert/ed-22-02-apache-log4j-recommended-mitigation-measures are only acceptable until updates are available."
}