Превращаем Claude в ИБ-аналитика с помощью CVE MCP Server

01 сен 2026
1,330
231
6
1 месяц

CVE MCP Server

Каждый, кто хоть раз разбирал отчеты сканера уязвимостей, знает эту рутину. Прилетает алерт по условному CVE-2024-3400. Дальше открываешь базу NVD, чтобы глянуть базовый скор CVSS. Следом идет вкладка с EPSS, где нужно оценить вероятность реальной атаки в ближайший месяц. Потом открываешь каталог CISA KEV и проверяешь, эксплуатируют ли дыру прямо сейчас. Если уязвимость свежая, идешь на GitHub искать публичные proof-of-concept эксплойты. Десять вкладок в браузере, бесконечный копипаст идентификаторов и попытки свести все цифры в голове. Когда в бэклоге полсотни таких записей, рабочий день улетает в трубу.

Недавно наткнулся на репозиторий cve-mcp-server от разработчика Mahipal Jangra. Проект решает эту проблему через протокол MCP (Model Context Protocol). Вы подключаете сервер к Claude Desktop или Claude Code, после чего языковая модель получает прямой доступ к 28 инструментам безопасности и двум десяткам внешних источников данных.

Как устроен триаж через одну команду

Главная находка проекта заключается в оркестраторе triage_cve. Вместо того чтобы вручную опрашивать разные базы данных или заставлять модель последовательно дергать десяток утилит, вы задаете один прямой вопрос: «Нужно ли нам срочно патчить CVE-2024-3400?».

Claude делает один вызов triage_cve. Сервер параллельно опрашивает NVD, достает свежие метрики EPSS, сверяется с базой CISA KEV и ищет репозитории с кодом эксплойтов на GitHub. Если официальный API NIST NVD начинает сбоить или упирается в лимиты частоты запросов, сервер незаметно переключается на резервный источник VulnCheck NVD++.

Реклама

После сбора фактов запускается локальный движок скоринга, который рассчитывает итоговый риск по шкале от 0 до 100:

Итоговый риск = (CVSS × 0.20) + (EPSS × 0.35) + (KEV × 0.30) + (PoC × 0.15)

В формулу заложена понятная инженерная логика:

  • Метрика EPSS получила наибольший вес (35%), так как отражает статистическую вероятность реальной эксплуатации. Высокий CVSS 10.0 при минимальном EPSS 0.01 на практике редко требует бросать все задачи посреди ночи.
  • Статус CISA KEV дает 30% веса, поскольку подтверждает факты атак в дикой природе.
  • Базовый CVSS отвечает за теоретическую тяжесть последствий (20%).
  • Наличие готового PoC добавляет 15%, так как снижает барьер входа для атакующих.

Если уязвимость уже числится в каталоге CISA KEV, срабатывает безусловный оверрайд. Итоговый скор автоматически поднимается минимум до 76 баллов со статусом CRITICAL, даже если первоначальный CVSS был скромным. При глубоком анализе с параметром depth="deep" сервер выдает дерево решений по методологии SSVC v2 от CISA, подсказывая конкретное действие: патчить немедленно (Act) или отложить до планового окна (Track).

Что умеет сервер без платных ключей

Приятный момент: проектом можно пользоваться сразу после клонирования репозитория. Четыре базовых источника работают вообще без API-токенов:

  • расчет вероятности эксплуатации через EPSS,
  • сверка со списком активных угроз CISA KEV,
  • поиск уязвимостей в пакетах через OSV.dev,
  • сопоставление техник с матрицей MITRE ATT&CK.

Если добавить бесплатный ключ NVD, лимит запросов к государственной базе вырастает с 5 до 50 за 30 секунд. Личный токен GitHub снимает жесткие ограничения на поиск публичных эксплойтов и advisory-отчетов.

Для глубокого расследования инцидентов предусмотрены сетевые интеграции. Подключив ключи от AbuseIPDB, GreyNoise, Shodan и VirusTotal, можно проверять репутацию подозрительных IP-адресов и вредоносных файлов прямо в окне чата.

Проверка зависимостей и сетевой разведки

Помимо триажа отдельных уязвимостей, сервер закрывает еще две частые задачи: аудит пакетов и проверку сетевых индикаторов компрометации.

С помощью инструмента scan_dependencies можно передать модели манифест с версиями библиотек. Сервер делает запрос к OSV.dev и возвращает список проблемных пакетов с рекомендациями по безопасным версиям.

Вы: Проверь зависимости: requests 2.28.0, flask 2.2.0, django 3.2.0, pillow 9.0.0

Claude: Найдено 12 уязвимостей.
Критические проблемы: Django 3.2.0 (SQL-инъекции) и Pillow 9.0.0 (heap overflow).
Рекомендация: обновите django до версии >=4.2.16, а pillow до >=10.3.0.

Если нужно проверить подозрительный адрес из логов веб-сервера, вызываются сетевые утилиты. Связка AbuseIPDB и GreyNoise покажет репутацию хоста, признак выходной ноды Tor и список конкретных CVE, под которые этот адрес сейчас сканирует периметр в интернете.

Архитектура и безопасность

Под капотом у проекта связка из Python 3.10+, библиотеки FastMCP, асинхронного HTTP-клиента httpx и базы aiosqlite для локального кеширования ответов. Кеш здорово экономит лимиты API: записи NVD живут локально 1 час, скоры EPSS хранятся 6 часов, а справочники MITRE ATT&CK сохраняются на сутки.

Разработчик внимательно отнесся к безопасности. Все сетевые соединения идут исключительно наружу по HTTPS, входящие порты по умолчанию не открываются. Внутри встроен фильтр приватных диапазонов: запросы к адресам 127.0.0.1, 10.0.0.0/8 или 192.168.0.0/16 отсекаются до отправки во внешние сервисы. Модель физически не сможет использовать сервер для разведки вашей внутренней инфраструктуры.

Для разбора XML задействован защищенный парсер defusedxml. Все вызовы фиксируются в локальном файле ~/.cve-mcp/audit.log, причем секретные токены и тела ответов в лог не попадают. По умолчанию сервер общается через stdio, но через переменную MCP_TRANSPORT=http его можно переключить в режим HTTP-сервиса и запаковать в Docker.

Как запустить

Установка занимает пару минут:

git clone https://github.com/mukul975/cve-mcp-server.git
cd cve-mcp-server
python -m venv venv
source venv/bin/activate
pip install -e .

Для подключения к Claude Desktop добавьте секцию в конфигурационный файл claude_desktop_config.json:

{
  "mcpServers": {
    "cve-mcp": {
      "command": "python",
      "args": ["-m", "cve_mcp.server"],
      "cwd": "/абсолютный/путь/к/cve-mcp-server",
      "env": {
        "NVD_API_KEY": "ваш-ключ-nvd",
        "GITHUB_TOKEN": "ghp_ваш-токен"
      }
    }
  }
}

В Claude Code сервер регистрируется одной командой в терминале:

claude mcp add cve-mcp -- python -m cve_mcp.server

Ограничения и выводы

Утилита не занимается активным сканированием сети и ничего не пишет во внешние системы. Встроенный парсер векторов пока работает с формулой CVSS v3.1, оценки версии 4.0 выводятся в том виде, в котором их отдает NVD. Некоторые внешние API на бесплатных тарифах довольно скупы на квоты: GreyNoise дает всего 50 запросов в неделю, а VirusTotal ограничивает частоту четырьмя вызовами в минуту.

Репозиторий пригодится бэкенд-разработчикам, системным администраторам и небольшим командам безопасности, которым не хватает ресурсов на тяжелые коммерческие платформы вроде SOAR или Threat Intelligence. Вместо ручного блуждания по десятку сайтов вы получаете готовую сводку и обоснованный приоритет патчей за пару секунд.

Начать работу можно без единого ключа, а дополнительные токены прописать в .env позже, когда возникнет реальная необходимость.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.