Skip to main content

CVEs: Vulnerabilidades e Exposições Comuns

alt text

CVE (Common Vulnerabilities and Exposures) é um sistema de nomenclatura usado para identificar e catalogar vulnerabilidades de segurança conhecidas em software e hardware.

Cada CVE é uma entrada em uma lista que é patrocinada pela CISA- Cybersecurity and Infrastructure Security Agency.

Por que CVEs são importantes?

Os CVEs são importantes porque fornecem um padrão universal para identificar e comunicar vulnerabilidades de segurança. Eles ajudam:

  • Profissionais de Segurança: A identificar rapidamente vulnerabilidades conhecidas em sistemas e aplicações, permitindo uma resposta mais rápida e eficaz.
  • Desenvolvedores e Fornecedores de Software: A rastrear e corrigir falhas de segurança em seus produtos.
  • Ferramentas de Segurança Automatizadas: A correlacionar vulnerabilidades conhecidas com sistemas em uso, permitindo varreduras de segurança mais precisas.

Como um CVE é criado?

  1. Descoberta: Uma vulnerabilidade é descoberta por um pesquisador de segurança, desenvolvedor, ou usuário final.
  2. Relatório: A vulnerabilidade é reportada a um CNA (CVE Numbering Authority), como o próprio MITRE, fabricantes de software ou agências de segurança.
  3. Avaliação: O CNA avalia a vulnerabilidade, confirma sua existência e impacto, e então emite um CVE com uma descrição.
  4. Publicação: O CVE é adicionado ao banco de dados público do MITRE, onde está disponível para todos e tem a seguinte estrutura:
    • CVE ID: Um identificador único, como CVE-2024-12345. Este identificador é composto pelo prefixo "CVE", seguido do ano em que a vulnerabilidade foi descoberta e um número sequencial.
    • Descrição: Um resumo curto da vulnerabilidade, incluindo o impacto potencial e o software ou hardware afetado.
    • Referências: Links para detalhes adicionais, como avisos de segurança, relatórios técnicos ou patches.

Publicação de CVEs

Existem diversos sites e bancos de dados que publicam informações sobre CVEs. Cada um desses sites pode ter um enfoque ou um conjunto específico de informações, complementando o que é fornecido pela MITRE e pelo NVD (National Vulnerability Database) que são os dois principais para desenvolvimento de software.

  • Diversidade de Foco: Um público-alvo ou um propósito diferente. Alguns são mais focados em dar contexto e detalhes técnicos adicionais (como o NVD), enquanto outros podem se concentrar em como explorar vulnerabilidades (como o Exploit DB).

  • Agilidade na Divulgação: Alguns sites são mais conservadores em publicar e preferem esperar para ter certeza da vulnerabilidade encontrada, pois pode ser um falso positivo.

  • Especialização por Setor ou Produto: Fornecedores de hardware e software que publicam vulnerabilidades específicas para suas plataformas.

Vamos explorar os principais sites e suas características sendo os dois primeiros os mais importantes para desenvolvimento:

  1. MITRE CVE Database: Mantém a base oficial de CVEs, onde todas as vulnerabilidades reconhecidas recebem um identificador único. Este site é a fonte primária de informações de CVE e inclui descrições básicas das vulnerabilidades. Fornece uma lista padronizada de identificadores de CVE, com descrições curtas para cada vulnerabilidade. Focado na normalização e atribuição de IDs.

  2. NVD (National Vulnerability Database): Mantido pelo NIST (National Institute of Standards and Technology) dos EUA, o NVD é o banco de dados de vulnerabilidades oficial do governo dos EUA. Ele usa a lista de CVEs da MITRE como base e adiciona detalhes como pontuações de risco, métricas CVSS-ommon Vulnerability Scoring System), e informações sobre impacto, mitigação e categorização das CVEs. Enfoque: Atribui pontuações de severidade (CVSS), fornece detalhes técnicos adicionais, links para patches e atualizações, e categorização de vulnerabilidades.

  3. Exploit DB: Um banco de dados de exploits mantido pela Offensive Security. Este site é mais focado em exploits reais que utilizam vulnerabilidades conhecidas e podem ser usados para testá-las. Focado em pesquisadores de segurança, red teams e entusiastas de cibersegurança.

  4. VulDB - Vulnerability Database: Um banco de dados de vulnerabilidades mantido por uma comunidade global de especialistas em segurança. Inclui CVEs e outras vulnerabilidades não listadas em bancos de dados oficiais. Focado em informações rápidas e atualizadas, com recursos como feeds de notícias de vulnerabilidades, estatísticas e relatórios personalizados.

  5. CERT (Computer Emergency Response Team) Websites: Existem vários CERTs ao redor do mundo, como o US-CERT nos EUA, JPCERT (Japão), e CERT-EU (União Europeia), que publicam alertas de segurança, incluindo informações sobre CVEs e orientações sobre como mitigar vulnerabilidades específicas.

  6. Security Advisories de Fabricantes: Altungs fabricantes têm seus próprios sites de segurança e publicam informações sobre vulnerabilidades (CVEs) que afetam seus produtos e fornecem soluções de mitigação, patches e atualização de segurança.

  7. Vulners Database: Um banco de dados de vulnerabilidades que agrega informações de diversas fontes, incluindo CVEs, boletins de segurança de fabricantes, e relatórios de segurança independentes para fornecer uma visão ampla em um único local. Possui a versão gratuíta e paga sendo esta permitindo acesso expandido a api, alertas pernalizados, funcionalidades avanças de pesquisa e suporte.

Scanners de CVEs?

Existem diversos scanners de vulnerabilidade disponíveis que focam na detecção e análise de CVEs em diferentes ambientes (infraestrutura, aplicações web, containers, clouds, etc) sendo as escolhas dependendo muito do projeto e do bolso.

  • Trivy: Um dos meus favoritos no mundo DevOps por ser open source. Scanner de vulnerabilidade leve e rápido para contêineres, imagens, arquivos de configuração e infraestrutura como código (IaC) com foco em CVEs. O banco de dados é atualizado frequentemente. É muito util para pipelines.

  • Clair: Um scanner de vulnerabilidades focado em containers, especialmente integrado com o CoreOS e plataformas Kubernetes. Analisa imagens de contêineres para identificar CVEs utilizando feeds de vulnerabilidades de fontes confiáveis para atualizar a base de dados.

  • Anchore: Ferramenta de de segurança análise de segurança e conformidade para contêineres, muito utilizado em pipeline.

  • Nessus: Um dos scanners de vulnerabilidade com foco em CVEs, mas não e opens source e extreamente caro. Escaneamentos detalhados para identificar CVEs em sistemas operacionais, aplicações, bancos de dados, e dispositivos de rede (infra em geral). Está aqui para mostrar que existem soluções muito robusta para esse propósito, mas geralmente usada em empresas realmente grandes com sistema muito críticos.

  • OpenVAS (Greenbone Vulnerability Manager): Um scanner de vulnerabilidades de código aberto com foco em CVEs. Suporta a varredura de sistemas e redes para detectar CVEs conhecidos.

  • Outros scanners: Vários outros existem focamos em bibliotecas de linguagens específicas como o Retire.js para libs em JavaScript e o OWASPe o Snyk que funcionam para várias linguagens. Temos também o Snyk.

Esses scanners variam em termos de foco, desde infraestrutura tradicional até ambientes de contêineres e aplicativos modernos. Escolher o certo depende do contexto em que você deseja escanear para CVEs.

Exemplos de CVES

  • CVE-2014-0160 (Heartbleed): Uma falha crítica no OpenSSL que permitia a leitura de memória do servidor, potencialmente expondo dados sensíveis, incluindo senhas e chaves privadas.

  • CVE-2017-0144 (EternalBlue): Uma falha de segurança no protocolo SMB da Microsoft, explorada pelo ransomware WannaCry.

  • CVE-2021-44228 (Log4Shell): Uma vulnerabilidade de execução remota de código no Log4j, uma biblioteca de logging em Java, que afetou milhares de sistemas no mundo todo.

CISA

Criada para melhorar a segurança cibernética, proteger a infraestrutura crítica e coordenar as respostas a incidentes de segurança cibernética nos Estados Unidos, mas vai além da cibersegurança.

CISA desempenha várias funções importantes para garantir a segurança cibernética e física dos Estados Unidos:

  • Proteção da Infraestrutura Crítica: energia, transporte, água, comunicações, finanças, saúde, e outras que são essenciais para o funcionamento da sociedade e da economia.

  • Cibersegurança: Coordena esforços para prevenir, mitigar e responder a ameaças cibernéticas, tanto para entidades governamentais quanto para o setor privado. Fornece diretrizes, alertas e melhores práticas para ajudar a proteger redes e sistemas contra ataques cibernéticos.

  • Resposta a Incidentes: Ajuda governo e empreas privadas a investigar ataques cibernéticos e a desenvolver estratégias de resposta e recuperação.

  • Divulgação de Vulnerabilidades e Ameaças: Publica relatórios de segurança, divulga informações sobre vulnerabilidades conhecidas (incluindo CVEs), e emite alertas de segurança sobre ameaças emergentes. Trabalha com outras entidades, como o MITRE, para compartilhar informações sobre vulnerabilidades.

  • Treinamento e Assistência Técnica: Oferece treinamentos, workshops, e exercícios de simulação.

CVSS (Common Vulnerability Scoring System)

Geralmente o NIST inicialmente calcula a pontuação de uma CVE para um propósito geral (base), mas esta pontuação pode não refletir o cenário do ambiente da aplicação. Então é possível rebalancer os pesos (vector) aplicados a CVE.

Inicie com os pesos encontrados no NIST e refaça os cálculos e veja quão grave a CVE realmente é para outro cenário.

Já temos a calculadora 4.0 mas nem sempre aparecem o vector para ela.

alt text

Calculadoras:

alt text

Agora vamos rebalancear. Selecionei alguns valores aleatórios, obviamente não devemos levar em consideração e só serve de amostragem.

alt text

Leia o guia de padrões CVSS para entender completamente como avaliar vulnerabilidades usando CVSS e interpretar as pontuações resultantes. As pontuações são computadas em sequência, de modo que a Pontuação Base seja usada para calcular a Pontuação Temporal e a Pontuação Temporal seja usada para calcular a Pontuação do Ambiente.