CVEs: Vulnerabilidades e Exposições Comuns
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?
- Descoberta: Uma vulnerabilidade é descoberta por um pesquisador de segurança, desenvolvedor, ou usuário final.
- 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.
- Avaliação: O CNA avalia a vulnerabilidade, confirma sua existência e impacto, e então emite um CVE com uma descrição.
- 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:
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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 oOWASP
e oSnyk
que funcionam para várias linguagens. Temos também oSnyk
.
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.
Calculadoras:
Agora vamos rebalancear. Selecionei alguns valores aleatórios, obviamente não devemos levar em consideração e só serve de amostragem.
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.