Стеклянная воронка на тёмной матовой поверхности разбита на пять расходящихся осколков, на каждом выгравировано название источника данных — NVD, KEV, Vulners, GitHub, Exploit-DB. На горлышке воронк...


CVE-2025-0282 - stack-based buffer overflow в Ivanti Connect Secure (CVSS 9.0, CWE-121/CWE-787) - попала в каталог CISA KEV 8 января 2025 года: активная эксплуатация в ransomware-кампаниях. Публичный PoC на Exploit-DB (EDB-52213) появился 15 апреля 2025 - спустя три с лишним месяца. Для CVE-2024-50623 (unrestricted file upload в Cleo Harmony/VLTrader/LexiCom, CVSS 9.8, CWE-434) - обратная история: на Exploit-DB записи нет до сих пор, зато на GitHub с декабря 2024 лежит PoC от watchtowrlabs. Пайплайн, привязанный только к NVD + Exploit-DB, первый вектор пропустит из-за задержки публикации PoC, а второй - потому что в Exploit-DB его попросту нет (хотя CVE-2024-50623 сидит в CISA KEV с 13 декабря 2024, и подключение KEV-фида решает проблему). Ниже - как собрать автоматический сбор данных об уязвимостях, который не зависит от одного источника и обогащает каждый CVE контекстом эксплуатации до того, как это сделает NIST.

Зачем атакующим ваш пробел в разведке уязвимостей​

Атакующие пользуются теми же базами, что и мы. В терминах MITRE ATT&CK это Vulnerability Scanning (T1595.002, Reconnaissance) и Scan Databases (T1596.005, Reconnaissance): сканирование диапазонов IP на известные CVE и поиск уязвимых версий ПО - Software (T1592.002, Reconnaissance). Разница - в скорости. Атакующая сторона мониторит GitHub, Telegram-каналы и форумы задолго до формального обогащения записи в NVD. Та же CVE-2024-50623, через которую Clop атаковала файловые трансферы Cleo, имела EPSS 0.9861 (Top 1% по вероятности эксплуатации) и SSVC-решение «Act» - но для пайплайнов, привязанных к Exploit-DB, этого вектора не существовало. Ноль. Пустота. Подробнее - в нашем материале про threat intelligence платформы.

Когда SOC видит CVE без CVSS score, без CPE-маппинга, без CWE - для автоматизированного пайплайна этой уязвимости функционально нет. Для атакующего она существует с момента публикации PoC. Каждый час разрыва - окно для компрометации.

Финансовый контекст тоже давит: регуляторные рамки - от FedRAMP до приказов ФСТЭК №17 и №21 - ссылаются на severity scores при определении сроков устранения уязвимостей. Если score отсутствует (а для ~80% новых CVE его скоро не будет), SLA формально не запускается, уязвимость «зависает» вне процесса remediation. Штрафы по ФЗ-152 за утечку через незакрытую брешь от этого не уменьшаются.

NVD в 2026 году: конец универсального обогащения CVE​

NIST перешёл к risk-based triage модели и отказался от цели полного анализа каждого CVE. По оценкам сообщества, полное обогащение метаданными (CPE-идентификаторы, CVSS score, CWE-классификация) теперь получают преимущественно записи в CISA KEV, CVE для ПО федерального правительства США и CVE для критического софта по Executive Order 14028 - а это малая часть от годового объёма.

Остальные ~80% CVE попадают в NVD без CPE, без CVSS, без CWE. Для vulnerability management платформ, которые сопоставляют CVE с инвентаризацией активов через CPE-маппинг, такая запись операционно невидима. Сканер завершает проход, отчитывается «чисто» - а уязвимость существует и эксплуатируется. Красиво, правда?

Объём CVE-submissions за последние годы вырос кратно. NIST увеличил число обогащённых CVE, но даже этого не хватило: значительная часть опубликованных CVE получила статус «Not Scheduled» - обогащение не планируется без явного запроса.

Отдельная боль: NIST объявил, что больше не будет выставлять собственный CVSS score, если CNA (CVE Numbering Authority) уже предоставил свой. Но CNA-supplied scores исторически менее проверены - расхождения между CVSS-оценками от разных CNA бывают достаточными, чтобы перебросить CVE между severity-уровнями. Скоринговая картина стала неоднородной, и полагаться только на NVD - значит получать неполную картину.

Источники для агрегации данных об уязвимостях​

Рабочий пайплайн vulnerability intelligence автоматизации строится на параллельном опросе нескольких источников с нормализацией в единую схему.

ИсточникЧто даётAPI / доступRate limit
NVD API 2.0CVE, CPE, CVSS, CWEREST, без ключа5 запросов/30 сек (50 с ключом)
CISA KEVПодтверждённая эксплуатация, due datesJSON-фидНет (обновление 1–2 раза/день)
FIRST EPSSВероятность эксплуатации за 30 днейCSV/RESTБез ограничений
CISA VulnrichmentSSVC-решения, timeline эксплуатацииGitHub APIСтандартный GitHub rate limit
OSV.devУязвимости open-source пакетов (npm, PyPI, Maven)REST100 запросов/мин
GitHub Advisory DBGHSA, пакетные уязвимостиGraphQL5000 запросов/час (с токеном)

Чего нет в таблице, но без чего пайплайн слепой: Exploit-DB и поиск PoC на GitHub. Структурированных API для автоматического мониторинга новых CVE у них нет, но наличие публичного PoC радикально меняет приоритет. Для Exploit-DB используется RSS-фид или SearchSploit CLI, для GitHub - code search API с запросом по шаблону CVE-YYYY-NNNNN extension:py.

OSV.dev отдельно ценен тем, что отдаёт данные на уровне конкретных пакетов. Для CVE-2021-44228 (Log4Shell, CVSS 10.0, EPSS 1.0000) OSV показывает, что уязвим org.apache.logging.log4j:log4j-core начиная с версии 2.0-beta9, исправлено в 2.15.0. Этот уровень детализации - какой именно пакет и какие версии - отсутствует в чистом NVD-потоке и нужен для SCA-интеграций.

Коммерческие провайдеры (VulnCheck, например) покрывают SSVC-оценками значительно больше CVE, чем бесплатный CISA Vulnrichment. Разница существенная, но Vulnrichment бесплатен и подходит командам без бюджета на коммерческий threat intelligence. Если бюджет есть - берите оба.

Автоматизация CVE обработки: от сбора до обогащения​

📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме

Контраст на верифицированных данных - тут становится интересно:

CVECVSSEPSSPercentileSSVCЭксплуатация
CVE-2023-22900 (Efence SQLi, CWE-89)9.80.010360.69%TrackНе зафиксирована, публичного PoC не обнаружено
CVE-2023-24154 (TOTOLINK CMDi, CWE-77)9.80.019578.46%Track*В Exploit-DB нет, наличие PoC на GitHub не подтверждено
CVE-2024-50623 (Cleo upload, CWE-434)9.80.986199.92%ActАктивная с 13.12.2024
CVE-2025-0282 (Ivanti BoF, CWE-121/787)9.00.999799.98%ActАктивная с 08.01.2025

Три CVE с CVSS 9.8 - и разброс EPSS от 0.01 до 0.99. По голому CVSS все три получат одинаковый приоритет. На практике - это как ставить одинаковый замок на дверь квартиры и на дверь серверной.

Запрос EPSS для конкретного CVE:
Python:
import requests

def get_epss(cve_id: str) -> dict:
    resp = requests.get(
        f"https://api.first.org/data/v1/epss?cve={cve_id}"
    )
    data = resp.json()["data"]
    if data:
        return {"epss": float(data[0]["epss"]),
                "percentile": float(data[0]["percentile"])}
    return {"epss": None, "percentile": None}
Скрипт-обогатитель вызывает get_epss() для каждого CVE из NVD-фида и добавляет результат к записи перед отправкой в SIEM или тикет-систему. Запрос к EPSS API не требует аутентификации, но для массовой обработки используйте batch-запросы (?cve=CVE-1,CVE-2,...,CVE-100) вместо тысяч отдельных вызовов - иначе рискуете словить блок на уровне CDN/WAF.

Автоматический скоринг уязвимостей и интеграция vulnerability intelligence с SOC

Формула приоритизации вместо голого CVSS​

Рабочая модель для SOC, которая вытесняет чистый CVSS-скоринг:

Приоритет = f(EPSS, KEV_status, SSVC_decision, asset_exposure, business_criticality)

Конкретная логика маршрутизации:
  1. CVE в CISA KEV - немедленный патч, SLA 24 часа
  2. EPSS > 0.6 И SSVC = Act - высокий приоритет, SLA 48 часов
  3. EPSS > 0.3 И PoC доступен (GitHub/EDB) - средний приоритет, SLA 7 дней
  4. CVSS >= 9.0, но EPSS < 0.1 И SSVC = Track - мониторинг без немедленного действия
Пункт 4 - контринтуитивный и самый ценный. По чистому CVSS - экстренный патч. По данным эксплуатации - наблюдение. Экономия ресурсов SOC на десятки человеко-часов в месяц. Попробуйте объяснить это менеджеру, который привык к «CVSS 9+ = всё бросаем и патчим». Но цифры убеждают.

Detection-чеклист: что пайплайн отдаёт в SIEM​

Каждая запись из пайплайна vulnerability intelligence должна содержать:
  1. CVE ID + affected CPE - корреляция с asset inventory в SIEM
  2. EPSS score + percentile - динамическая приоритизация алертов
  3. KEV status - boolean-флаг для немедленной эскалации
  4. SSVC decision (Track / Track* / Attend / Act) - маршрутизация в playbook
  5. PoC availability - URL репозитория или EDB-ID, если существует
  6. Days since disclosure - отслеживание exposure window
  7. CWE - тип уязвимости для группировки (все CWE-434 = file upload, все CWE-89 = SQLi)
Правило корреляции для SIEM: CVE из incoming feed совпадает с CPE в asset inventory, И (EPSS > 0.5 ИЛИ KEV = true) - генерировать алерт «Active Threat / Vulnerability» с приоритетом High. Если CPE match отсутствует (потому что NIST не добавил CPE) - алерт уровня Info с пометкой «manual triage required».

Точки интеграции​

SIEM (Elastic, Splunk, MaxPatrol SIEM). Данные передаются через REST API или syslog в JSON: cve_id, cvss_score, epss_score, kev_status, ssvc_decision, affected_cpe, poc_url. Корреляция сопоставляет affected_cpe с данными инвентаризации активов.

Тикет-система (Jira, TheHive). Автоматическое создание задач при совпадении CVE с активом из CMDB. TheHive + MISP - связка для хранения IOC и vulnerability data в одном месте. В реальных проектах это экономит кучу времени на ручном заведении тикетов.

Мессенджеры. Slack/Telegram webhook для критических алертов: CVE ID, CVSS, EPSS, KEV-статус, затронутые продукты, PoC-ссылка. Когда в три ночи прилетает алерт с KEV=true и EPSS 0.99 - хочется видеть всё сразу, а не лезть в консоль.

Оркестрация. n8n или Airflow для scheduling и retry logic. Типовой workflow: каждые 6 часов опросить NVD API, обогатить EPSS, проверить KEV, найти PoC на GitHub, отправить результаты в Slack + SIEM.

Ограничение подхода: пайплайн на публичных API работает с задержкой от часов до суток относительно коммерческих платформ (VulnCheck, Recorded Future), которые мониторят GitHub, форумы и мессенджеры в реальном времени. Для организаций с бюджетом на threat intelligence - коммерческие решения дополняют, но не заменяют собственную автоматизацию. Для команд без бюджета - описанный подход закрывает основную потребность в vulnerability management автоматизации. Не идеально, но работает.

Последние два года я строю пайплайны vulnerability intelligence для разных команд - от двух человек в региональном банке до SOC на 30 аналитиков. Вывод один: проблема не в технологиях, а в привычке верить единственному источнику правды. NVD был таким источником 20 лет, и инерция оказалась сильнее фактов. Даже после перехода NIST к triage-модели многие VM-процессы продолжают ссылаться на «CVSS score из NVD» как триггер SLA - score, которого для 80% новых CVE больше не будет.

EPSS меняет подход к приоритизации радикальнее, чем любой другой инструмент за последние пять лет. Но сопротивление реально: security-менеджеры не готовы объяснять руководству, почему CVE с CVSS 9.8 получила низкий приоритет. Проще залатать всё подряд и отчитаться. Это работает ровно до момента, когда количество необогащённых CVE начнёт расти быстрее, чем пропускная способность команды - и «латать всё подряд» станет физически невозможно. Кто выстроит автоматизированный pipeline с множественными источниками сейчас - через год будет объяснять остальным, как это делается. Если хочется обсудить конкретные реализации обогащения CVE-фидов или обменяться конфигами n8n-workflow для VM - на форуме codeby.net разбирают vulnerability intelligence и автоматизацию VM-процессов.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🧭 Навигатор · ИБ 2026
Не знаешь, какой трек твой?
5 направлений ИБ, реальные зарплаты и точка входа для каждого — в одном треде.
JuniorSenior+
100K → 600K+ ₽ /мес
Открыть навигатор →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab