Pular para o conteúdo

Como usar o PowerBI para visualizar uma lista de vulnerabilidades de segurança

    Este post apresenta um projeto que combina informações de três fontes para criar uma lista de vulnerabilidades de segurança: o Common Vulnerability Scoring System (CVSS), o Exploit Prediction Scoring System (EPSS) e a lista de vulnerabilidades exploradas conhecidas publicada pela CISA.

    O projeto baixa as informações dessas fontes e as combina em uma lista que pode ser usada para enriquecer as informações fornecidas pelo seu scanner de vulnerabilidades, como o OpenVAS, para priorizar a correção.

    Os scanners geralmente mostram apenas o número CVE e a pontuação CVSS, mas não exportam detalhes completos como “exploitabilityScore” ou “userInteractionRequired”. Adicionando a pontuação EPSS, você obtém mais opções para selecionar o que fazer primeiro e filtrar nos limiares que fazem sentido para o seu ambiente. As saídas do projeto estão disponíveis nos formatos json e csv, além das informações serem importadas para um banco de dados sqlite.

    Neste post, você também verá um exemplo de dashboard no PowerBI, contendo um arquivo de modelo do PowerBI que gera um painel que você pode ajustar às suas necessidades. Para usar o modelo, o relatório do OpenVAS deve estar no formato csv para que a importação funcione. Para utilizar o PowerBI, é necessário baixá-lo gratuitamente neste link. Não é preciso ter uma conta da Microsoft para utilizá-lo.

    O projeto é escrito em bash, jq e sqlite3, tornando-o muito amigável para iniciantes. Esse post oferece um guia passo a passo para a configuração e execução do projeto, incluindo a obtenção de uma chave da API NIST, edição do arquivo .env e ajuste do agendamento do cron. Existem três contêineres do docker que executam as etapas necessárias, e vários arquivos de saída serão gerados.

    No geral, o projeto oferece uma maneira fácil de combinar informações de várias fontes e priorizar a correção de vulnerabilidades de segurança.

    Recursos de segurança

    Antes de seguirmos, é importante entender o que são esses recursos que estamos citando aqui na postagem. O NIST (CVSS), o First.Org (EPSS) e o CISA (Exploited Vulnerabilities) são três recursos de segurança cibernética que ajudam a identificar e avaliar vulnerabilidades.

    • O NIST (CVSS) é um sistema de classificação de vulnerabilidades em que o NIST (National Institute of Standards and Technology) fornece uma pontuação numérica para medir a gravidade de uma vulnerabilidade de segurança. Essa pontuação é chamada de Pontuação de Severidade de Vulnerabilidade Comum (CVSS, na sigla em inglês).
      .
    • O First.Org (EPSS, sigla de Efficient Proactive Security Scoring) é um sistema de classificação de vulnerabilidades que usa informações de ameaças em tempo real, a fim de produzir uma pontuação que indica a probabilidade de uma vulnerabilidade ser explorada em um ataque. O objetivo do EPSS é ajudar as organizações a priorizarem as vulnerabilidades mais críticas para serem corrigidas de forma prioritária. É um esforço aberto e orientado por dados que utiliza informações de ameaças atuais da CVE e dados de exploração do mundo real. O modelo EPSS produz um escore de probabilidade entre 0 e 1 (0 e 100%), onde quanto maior o escore, maior a probabilidade de que uma vulnerabilidade seja explorada.
      .
    • O CISA (Exploited Vulnerabilities) é um repositório de vulnerabilidades exploradas que são conhecidas por criminosos cibernéticos ou que são usadas em ataques. Esse repositório fornece informações valiosas sobre vulnerabilidades que já foram exploradas em ataques, a fim de que as organizações possam estar cientes das vulnerabilidades mais perigosas que precisam ser corrigidas o mais rápido possível.

    Exemplo de Dashboard no PowerBI

    Este repositório contém um modelo de arquivo do PowerBI para gerar um painel personalizado de demonstração. É possível ajustar o painel para atender às suas necessidades:

    power-bi-1
    Imagem 1: Exemplo de painel com o PowerBI

     

    O relatório do OpenVAS precisa estar no formato .csv para a importação funcionar:

    power-bi-2
    Imagem 2: Importação do arquivo .csv

     

    O PowerBI usará o arquivo CVE.json criado e fará um relacionamento:

    power-bi-3
    Imagem 3: Relacionamento no PowerBI

    Configurações

    1. Obtenha uma chave de API NIST através deste link
      .
    2. Copie o arquivo env_example para .env (comando cp env_example .env)
      .
    3. Edite o arquivo .env e adicione sua chave da API
      .
    4. (opcional) O arquivo docker-compose pode ser editado para ajustar o agendamento do cron
      .
    5. (opcional) O arquivo data/vulnerability-tables-logstash/config/logstash.conf pode ser editado opcionalmente
      .
    6. Em seguida, execute o comando docker-compose up -d
      .
    7. Os arquivos estarão disponíveis em data/vulnerability-tables-cron/output/ após a conclusão do script, que levará alguns minutos.

    Execução

    Você pode esperar o cron executar o script de download em um agendamento.

    Alternativamente, você pode executar manualmente o script de download com o seguinte comando:

    docker exec -it vulnerability-tables-cron bash /opt/scripts/download.sh

    Descrição do Container

    Existem três contêineres do Docker:

    1. O contêiner cron faz o download das informações uma vez por semana (segunda-feira às 06:00) e armazena os arquivos no diretório de saída. Ele usa curl e wget para baixar arquivos. jq é usado para trabalhar com JSON.
      .
    2. O contêiner filebeat lê os arquivos JSON e encaminha para o contêiner logstash.
      .
    3. O contêiner logstash pode ser usado para enviar para uma instância do OpenSearch, carregá-lo no Azure Log Analytics ou em outros destinos compatíveis.

    Tanto o contêiner filebeat quanto o logstash são opcionais e incluídos apenas para continência.

    Exemplos dos arquivos de saída

    Serão gerados vários arquivos de saída, e 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

    .

    Você pode esperar encontrar 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."
    }

    Download do Projeto

    Para realizar o download do CVE Vulnerability Information Downloader, acesse o site do projeto no GitHub.

    Links

     

    * * * * *

     

    4 comentários em “Como usar o PowerBI para visualizar uma lista de vulnerabilidades de segurança”

      1. Olá Raimundo,
        Sim, segue funcionando. A última vez que executei foi em março/23, não sei se houve alguma mudança de lá pra cá que tenha impactado. Mas conte o que houve por aí. Na parte das Configurações descritas na postagem aqui, parou em alguma parte? Deu algum erro? Se sim, cole ele aqui e conte as etapas que fez até o momento do problema.
        Fico no aguardo de tais informações para tentar te ajudar.
        Abraços,
        Tiago Souza.

    1. Vitor Fernando Bernardo

      Achei muito interessante e funcional, excelente projeto, porém vc não poderia disponibilizar o dashboard?? Ira me ajudar muito aqui na empresa…se não puder.. parabéns pelo trabalho.

    Deixe um comentário

    O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

    Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.