CVE: что это, как читать ID и сканировать уязвимости | Глоссарий FREEHOSTING

CVE

Common Vulnerabilities and Exposures
CVE — CVE — публичный каталог известных уязвимостей с уникальным идентификатором вида CVE-2024-12345. Используется как общий язык между вендорами, ресёрчерами, сканерами и SIEM-системами для однозначной идентификации бага.

Определение простыми словами

CVE (Common Vulnerabilities and Exposures) — это словарь уязвимостей, который ведёт корпорация MITRE при поддержке US-CERT. Каждой подтверждённой публичной уязвимости присваивается номер формата CVE-YYYY-NNNNN. Этот номер становится единым идентификатором, по которому ищут бажу в Nessus, Qualys, OpenVAS, Trivy и любом другом сканере.

CVE сам по себе не оценивает серьёзность. Для приоритизации используют CVSS (оценка 0–10), CWE (классификация типа бага) и NVD (расширенная база с метаданными). Zero-day попадает в каталог уже после раскрытия и патча.

Сравнение баз уязвимостей

База Кто ведёт Что добавляет к CVE Формат ID
CVE MITRE Базовое описание, ссылки CVE-2024-12345
NVD NIST CVSS-вектор, CWE, CPE тот же CVE
GHSA GitHub Привязка к npm/pip/maven пакетам GHSA-xxxx-xxxx-xxxx
OSV Google Машиночитаемый формат OSV-2024-1234
BDU ФСТЭК России Российская сертификация BDU:2024-12345

Кейсы использования

  • Patch management: Ansible-плейбук читает список CVE из inventory и обновляет только реально уязвимые хосты.
  • Compliance: PCI-DSS требует устранения CVE с CVSS ≥ 4.0 в течение 30 дней.
  • Supply chain: Trivy сканит Docker-образ и отдаёт список CVE с разбивкой по слоям.
  • SOC: SIEM коррелирует попытки эксплуатации (например, паттерн RCE) с CVE-номером и автоматически приоритизирует алерт.
  • Negative-сценарий: команда отключила автообновления и пропустила CVE с CVSS 9.8 в OpenSSH — через две недели сервер взломали через публичный PoC.

Технические детали

# Скан установленных пакетов на CVE (Debian/Ubuntu)
apt install -y debsecan
debsecan --suite $(lsb_release -cs) --format detail

# Сканирование Docker-образа
trivy image --severity CRITICAL,HIGH nginx:latest

# Проверка CVE через NVD API
curl -s "https://services.nvd.nist.gov/rest/json/cves/2.0?cveId=CVE-2021-44228" 
  | jq '.vulnerabilities[0].cve.metrics.cvssMetricV31[0].cvssData.baseScore'

# Подписка на свежие CVE по продукту
curl -s "https://cve.circl.lu/api/search/nginx/nginx" | jq '.[].id' | head

# Cron: ежедневный отчёт по новым high/critical
0 7 * * * /usr/bin/trivy fs --severity HIGH,CRITICAL / | mail -s "CVE daily" admin@example.com

Для прода держите CVE-инвентарь отдельной артефакт-базой: связка SBOM (CycloneDX/SPDX) + сканер + ticketing. Так каждый новый CVE автоматически превращается в задачу с дедлайном по политике, а не теряется в почте.

Частые вопросы

Чем CVE отличается от CVSS?

CVE — это идентификатор уязвимости (CVE-2024-12345). CVSS — численная оценка серьёзности от 0 до 10. У одного CVE одна оценка CVSS, по ней решают, как быстро патчить.

Кто присваивает CVE-номера?

MITRE и сеть аккредитованных CNA (CVE Numbering Authorities): GitHub, Red Hat, Cisco, Microsoft и сотни других. Любой ресёрчер может запросить CVE через CNA вендора или MITRE напрямую.

Все ли уязвимости получают CVE?

Нет. Внутренние баги, которые вендор фиксит без публичного раскрытия, и уязвимости в проприетарном корпоративном софте часто остаются без CVE-номера.