Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
cmcp — cMCP: Конфиденциальный MCP-шлюз. Аппаратно-аттестованное применение политик для вызовов инструментов MCP. | Kitploit
Инструменты/GitHubGitHub/agentrust-io/cmcp
Аутентификация и авторизацияОборонительные ИнструментыБезопасность облачных средКонфиденциальностьАппаратная БезопасностьБезопасность APIБезопасность ИИ
GitHubagentrust-io/cmcp

cmcp

cMCP: Конфиденциальный MCP-шлюз. Аппаратно-аттестованное применение политик для вызовов инструментов MCP.

Репозиторий
77613 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
<p align="center">
  <img src="https://raw.githubusercontent.com/agentrust-io/cmcp/HEAD/docs/assets/icon.svg" width="96" height="96" alt="cMCP"/>
</p>

# cMCP: конфиденциальная среда выполнения MCP

Обновления сообщества и новости участников: [AgenTrust в LinkedIn](https://www.linkedin.com/company/agentrust-io/).

### Обеспечьте соблюдение политики инструментов MCP внутри TEE, где управляемый агент не может до неё добраться

<p align="center">
  <a href="https://cmcp.agentrust-io.com">
    <img src="https://img.shields.io/badge/Documentation-cmcp.agentrust--io.com-7c3aed?style=for-the-badge" alt="Documentation" height="36">
  </a>
</p>

<p align="center">
  <strong>
    <a href="#quick-start">Быстрый старт</a> ·
    <a href="#how-it-works">Архитектура</a> ·
    <a href="#configuration">Конфигурация</a> ·
    <a href="#cli-reference">CLI</a> ·
    <a href="https://github.com/agentrust-io/cmcp/blob/main/CHANGELOG.md">Журнал изменений</a>
  </strong>
</p>

[![CI](https://github.com/agentrust-io/cmcp/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/agentrust-io/cmcp/actions/workflows/ci.yml) [![License: MIT](https://img.shields.io/badge/license-MIT-blue)](LICENSE) [![PyPI](https://img.shields.io/pypi/v/cmcp-runtime)](https://pypi.org/project/cmcp-runtime/) [![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/agentrust-io/cmcp/badge)](https://scorecard.dev/viewer/?uri=github.com/agentrust-io/cmcp) [![Discord](https://img.shields.io/badge/Discord-Join-5865F2?logo=discord&logoColor=white&style=flat)](https://discord.gg/grgzFEHgkj)

> **Developer Preview** — представлен на Confidential Computing Summit, 23 июня 2026 г. До версии v1.0 возможны критические изменения. См. [STATUS.md](https://github.com/agentrust-io/cmcp/blob/main/STATUS.md), чтобы узнать, что уже доступно сегодня, а что только в планах.

**cMCP (Confidential MCP Runtime) — это открытый шлюз, который проверяет каждый вызов инструмента, совершаемый ИИ-агентом, на соответствие написанным вами правилам и может работать на изолированном оборудовании, которое агент не может подделать.** ИИ-агенты используют инструменты (базы данных, CRM, электронную почту, внутренние API), отправляя запросы, называемые вызовами инструментов, обычно через MCP — Model Context Protocol. cMCP находится на пути этих вызовов, проверяет каждый из них на соответствие вашим правилам (написанным на языке политик Cedar) и блокирует те, которые правила запрещают. Он может работать внутри TEE (доверенной среды выполнения: оборудования, которое держит память программы изолированной даже от владельца машины), где управляемый им агент не может до него добраться. Каждая сессия завершается подписанной квитанцией — TRACE Claim, — которую любой может проверить, не доверяя тому, кто запускал шлюз. Квитанция подтверждается аппаратным отчётом, когда шлюз работает в TEE, и только подписывается (без аппаратного подтверждения) в программном режиме. Впервые сталкиваетесь с этими терминами? См. [термины простым языком](https://agentrust-io.com/#plain-terms).

> **Кратко:** Направьте своего агента на cMCP Gateway. Он проверяет каждый вызов инструмента на соответствие вашим правилам Cedar, блокирует или скрывает (заменяет пустыми значениями) то, что правила запрещают, и выдаёт вам подписанную квитанцию, показывающую, изменял ли её кто-либо. Выполните `pip install cmcp-runtime` и запустите в программном режиме на любом компьютере; специальное оборудование не требуется.

Ваш агент обращается к Snowflake, Salesforce, десятку API. Что мешает ему утечь данные клиента в одном из этих вызовов? Если регулятор спросит, сможете ли вы доказать, что этого не произошло?

---

## Проблема

Агент вызывает инструмент. Механизм политик говорит «разрешить». Вызов инструмента проходит.

Ничто из этого не доказывает, что сам механизм политик не был скомпрометирован. Управление MCP только программными средствами не может гарантировать:

- Что политика Cedar на диске — та же, что выполнялась. Недобросовестный администратор может подменить пакет после утверждения; проверка хеша выполняется внутри той же ОС, которую контролирует администратор.
- Что решение «разрешить/запретить» не было перевёрнуто в памяти. Уязвимость цепочки поставок (CVE) в вычислителе выполняется в том же адресном пространстве, что и атакующий.
- Что журнал аудита отражает то, что произошло на самом деле. Любая сторона, владеющая программным ключом подписи, может задним числом восстановить действительную цепочку аудита.

Плоскость управления, которая регулирует вызовы инструментов, должна работать там, где до неё не может добраться процесс, которым она управляет.

Аппаратно подтверждённое применение политик для вызовов инструментов MCP. Каждый вызов инструмента перехватывается, оценивается по пакету политик Cedar и применяется движком политик, работающим внутри доверенной среды исполнения (TEE). Прежде чем обслужить хотя бы один вызов инструмента, шлюз измеряет свой установленный код, пакет политик и конфигурацию в отчёте аппаратной аттестации и повторно проходит аттестацию при каждой перезагрузке пакета.

При аппаратном развёртывании среда выполнения cMCP обрабатывает полезные нагрузки вызовов инструментов внутри TEE. То, что хост и провайдер подключения могут прочитать, также зависит от политики исходящего трафика, а вышестоящий сервер инструментов является отдельным компонентом вне TEE. Программный режим (`CMCP_DEV_MODE`) не обеспечивает аппаратной изоляции. [LIMITATIONS.md](https://github.com/agentrust-io/cmcp/blob/main/LIMITATIONS.md) перечисляет то, что cMCP не предотвращает.

---

## Быстрый старт

```bash
pip install cmcp-runtime
```

Создайте `cmcp-config.yaml`:

```yaml
attestation:
  provider: auto
  enforcement_mode: advisory   # advisory eases first-run tuning; the default is `enforcing`
listen_addr: "127.0.0.1:8443"  # pin loopback: dev mode runs without a bearer token
policy_bundle_path: ./policies/
catalog_path: ./catalog.json
```

`listen_addr` здесь не является необязательным. `CMCP_DEV_MODE=1` намеренно пропускает требование bearer-токена, чтобы вы могли быстро всё опробовать, а привязка по умолчанию по-прежнему `0.0.0.0:8443`. В версии 0.3.0 эта комбинация поднимала неаутентифицированный шлюз на всех интерфейсах вашей машины. Начиная с 0.4.0 это запрещено: режим разработки без токена может привязываться только к loopback-адресу, а привязка к не-loopback адресу требует `CMCP_BEARER_TOKEN`. Явно задайте `listen_addr`, и конфигурация будет корректной в обеих версиях.

Запустите шлюз:

```bash
CMCP_DEV_MODE=1 cmcp start --config cmcp-config.yaml
```

Сделайте вызов инструмента:

```bash
curl -X POST http://localhost:8443/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"salesforce.contacts","arguments":{"query":"Acme Corp"},"_cmcp":{"session_id":"s1","workflow_id":"demo-agent"}}}'
```

Нужна пошаговая версия? [agentrust-io.com/quickstart](https://agentrust-io.com/quickstart/) проходит тот же путь примерно за десять минут на ноутбуке, без оборудования и без регистрации: установка, написание одного правила Cedar `forbid`, наблюдение за тем, как вызов инструмента возвращает 403 `POLICY_DENY` до того, как он достигнет вышестоящей системы, затем проверка подписанной квитанции.

Полное пошаговое руководство см. в [docs/quickstart.md](https://github.com/agentrust-io/cmcp/blob/main/docs/quickstart.md): политика Cedar, каталог инструментов, первый TRACE Claim и верификация (аппаратный TEE не требуется).

---

## Как это работает

1. Агент отправляет каждый вызов инструмента в cMCP Gateway, а не напрямую в MCP-серверы.
2. При запуске, до начала обслуживания трафика, шлюз измеряет свой установленный код, пакет политик Cedar и конфигурацию. На SEV-SNP, TDX и Azure CVM дайджест привязывается к `report_data`; на уровне TPM он расширяется в сертифицированный NV-индекс. Перезагрузка политики запускает новую аттестацию.
3. Каждый входящий вызов инструмента оценивается движком политик Cedar, работающим внутри TEE. Результат — разрешить, запретить или отредактировать. Вызов и его решение добавляются в аппаратно-запечатанную цепочку аудита.
4. В конце сессии шлюз формирует TRACE Claim: подписанный, аппаратно-аттестованный артефакт, который фиксирует, какие инструменты запускались, какая политика приняла решение по каждому вызову, и полную цепочку аудита. Верификатор проверяет это, не доверяя оператору.

```
Agent -> cMCP Runtime -> Cedar Policy Engine (TEE) -> Tool
                     |
               GatewayClaim (TRACE Profile)
               +-- trace.eat_profile
               +-- trace.runtime.platform + measurement
               +-- trace.policy.bundle_hash
               +-- trace.cnf.jwk  (Ed25519 confirmation key)
               +-- gateway.audit_chain (root/tip/length)
               +-- signature (Ed25519 over canonical JSON)
```

## Аппаратные провайдеры

| Провайдер | Платформа | Гарантия | Примечания |
|---|---|---|---|
| `tpm` | TPM 2.0 / vTPM (Azure, AWS, GCP Trusted Launch) | Средняя | Локальная квота TPM |
| `sev-snp` | AMD SEV-SNP (Azure DCasv5, AWS C6a Nitro) | Высокая | AMD KDS |
| `tdx` | Intel TDX (Azure DCedsv5, GCP C3) | Высокая | Intel PCS |
| `gpu-cc` _(v0.2)_ | NVIDIA H100/H200/Blackwell (режим CC) | Высокая | NVIDIA Remote Attestation Service (NRAS) |

Порядок проверки при автоопределении провайдера: `azure-cvm -> tpm -> sev-snp -> tdx`. Выбирается первый провайдер, чей `detect()` завершился успешно. Если ни один аппаратный провайдер не обнаружен, шлюз запускается только при `CMCP_DEV_MODE=1` (резервный программный режим без аттестации), а в противном случае отказывается запускаться.

```python
from cmcp_runtime.config import TEEProvider

# Auto-detect (default)
# attestation.provider: auto  ->  azure-cvm -> tpm -> sev-snp -> tdx
# (software-only is used only under CMCP_DEV_MODE=1)

# Explicit hardware selection
# attestation.provider: sev-snp
```

## Режимы принудительного применения

| Режим | Поведение | Сценарий использования |
|---|---|---|
| `enforcing` | Отказы политики возвращают HTTP 403; вызов не пересылается | Продакшн |
| `advisory` | Отказы политики логируются; вызов продолжается | Первое развёртывание, настройка политики |
| `silent` | Политика оценивается, но ничего не логируется и не блокируется | Базовый замер |

По умолчанию используется `enforcing`. Установите `enforcement_mode: advisory` в `cmcp-config.yaml`, чтобы использовать режим advisory.

---

## Конфигурация

Полный справочник по `cmcp-config.yaml`:

```yaml
attestation:
  provider: auto                    # auto | tpm | sev-snp | tdx | software-only
  enforcement_mode: enforcing       # enforcing | advisory | silent
  validity_seconds: 86400           # attestation freshness window (default: 24 hours)
  staleness_policy: fail_closed     # fail_closed | warn_only
  expected_measurement: ~           # pin a specific PCR/measurement (optional)

policy_bundle_path: policies/       # directory containing .cedar files and manifest.json
catalog_path: catalog.json          # approved tool catalog

listen_addr: "127.0.0.1:8443"     # tokenless dev mode is loopback-only; set CMCP_BEARER_TOKEN before binding wider
max_response_size_bytes: 2097152    # 2 MB default
policy_reload_interval_seconds: 0   # >0 with a pinned CMCP_POLICY_HASH refuses to start, see docs/spec/policy-hot-reload.md
```

Переменные окружения:

| Переменная | Эффект |
|---|---|
| `CMCP_DEV_MODE=1` | Использовать программный TEE-провайдер; аппаратное обеспечение не требуется |
| `CMCP_BEARER_TOKEN` | Требовать этот bearer-токен во всех входящих запросах |

---

## Справочник CLI

| Команда | Флаги | Описание |
|---|---|---|
| `cmcp start` | `--config PATH` (обязателен) | Запустить шлюз |
| `cmcp validate-config` | `--config PATH` (обязателен) | Проверить `cmcp-config.yaml` без запуска |
| `cmcp validate-bundle` | `--bundle-path PATH` (обязателен), `--expected-hash sha256:<hex>` (обязателен) | Проверить хеш Cedar-бандла перед развёртыванием |
| `cmcp verify` | `CLAIM_FILE` (обязателен); `--policy-hash`, `--catalog-hash`, `--max-age`, `--trusted-key`, `--trusted-tpm-ca`, `--audit-bundle`, `--agent-manifest`, `--agent-manifest-trust-anchor` | Проверить подписанный TRACE Claim (подпись, схему, актуальность, цепочку аудита, закреплённые хеши и доверенные якоря) |

---

## TRACE Claims

`GatewayClaim` — это единица доказательства, передаваемая аудитору, регулятору или нижестоящему верификатору. Он создаётся для каждой сессии (или для каждого вызова, настраивается) и подписывается ключом, который никогда не покидает TEE.

| Поле | Описание |
|---|---|
| `trace.eat_profile` | URI профиля EAT: `tag:agentrust-io.com,2026:trace-v0.2` |
| `trace.runtime` | Платформа TEE и аппаратные измерения, зафиксированные при загрузке анклава |
| `trace.policy.bundle_hash` | SHA-256 Cedar-бандла, загруженного при запуске; изменение любого файла политики изменяет это значение |
| `trace.cnf.jwk` | Публичный ключ Ed25519, привязанный к ключу подписи TEE |
| `trace.tool_transcript` | Представление каждого вызова на основе цепочки аудита: `hash` (привязывается к вершине цепочки аудита), `call_count` и сохраняющие конфиденциальность `entries` (имя инструмента, класс данных, решение) |
| `gateway.audit_chain` | Корень и вершина хеш-цепочки журнала аудита; проверяемы без воспроизведения отдельных записей |
| `signature` | Ed25519 над каноническим JSON полного тела claim (RFC 8785) |

(Эта таблица — сводка наиболее часто используемых полей.)

Проверка с помощью библиотеки `cmcp_verify` не требует доверия к оператору. Верификатор проверяет подпись по ключу, привязанному к TEE, хеш бандла политики по утверждённому значению и цепочку аудита на внутреннюю согласованность.

Нормативная схема — [`schemas/trace-claim.schema.json`](https://github.com/agentrust-io/cmcp/blob/main/schemas/trace-claim.schema.json), а [docs/quickstart.md](https://github.com/agentrust-io/cmcp/blob/main/docs/quickstart.md) показывает полный пример. См. [docs/spec/verification-library.md](https://github.com/agentrust-io/cmcp/blob/main/docs/spec/verification-library.md) и [спецификацию TRACE](https://trace.agentrust-io.com) для полного протокола проверки.

---

## Соответствие стандартам

| Стандарт | Покрытие |
|---|---|
| OWASP Agentic AI Top 10 | MCP10 (утечка данных через вызовы инструментов), MCP02 (несанкционированные инструменты), MCP08 (доказуемое управление), MCP04 (цепочка поставок) |
| NIST SP 800-207 | Точка принятия решений по политике внутри TEE; отсутствие неявного доверия к идентичности рабочей нагрузки |
| EU AI Act Art. 12, 15 | Записи аудита по каждому решению (Art. 12); средства кибербезопасности на базе TEE (Art. 15) |
| DORA Art. 9 | Цепочка аттестации; хранение журнала аудита через `gateway.audit_chain` |
| RATS/EAT RFC 9711 | `GatewayClaim` является EAT; поле `eat_profile` идентифицирует профиль TRACE |

---

## Безопасность

| Инструмент | Что проверяет |
|---|---|
| ruff | Линтинг стиля и импортов в каждом PR |
| bandit | Линтинг безопасности Python в каждом PR |
| pip-audit | Сканирование уязвимостей зависимостей в каждом PR |
| mypy | Статическая проверка типов в каждом PR |
| CodeQL | SAST для Python, расширенные запросы безопасности, еженедельно |
| OpenSSF Scorecard | Еженедельная оценка, загрузка SARIF |

См. [SECURITY.md](https://github.com/agentrust-io/cmcp/blob/main/SECURITY.md) для сообщения об уязвимостях и SLA реагирования. См. [LIMITATIONS.md](https://github.com/agentrust-io/cmcp/blob/main/LIMITATIONS.md) для явных границ области применения, включая остаточные риски для захвата полезной нагрузки APM, инъекции конфигурации во время выполнения и цепочки поставок P4.1 (typosquat), которые Phase 1 не закрывает.

---

## Документация

| Страница | Описание |
|---|---|
| [docs/quickstart.md](https://github.com/agentrust-io/cmcp/blob/main/docs/quickstart.md) | От нуля до первого TRACE Claim менее чем за 30 минут |
| [docs/configuration.md](https://github.com/agentrust-io/cmcp/blob/main/docs/configuration.md) | Полный справочник по конфигурации со всеми полями и значениями по умолчанию |
| [docs/confinement.md](https://github.com/agentrust-io/cmcp/blob/main/docs/confinement.md) | Экспериментальная песочница для Linux-агента, тесты обхода и допущения о доверии |
| [docs/SPEC.md](https://github.com/agentrust-io/cmcp/blob/main/docs/SPEC.md) | Спецификация продукта: таксономия проблем, архитектура, матрица покрытия |
| [docs/spec/threat-model.md](https://github.com/agentrust-io/cmcp/blob/main/docs/spec/threat-model.md) | Анализ STRIDE, модель нарушителя, остаточные риски |
| [docs/spec/cedar-policy.md](https://github.com/agentrust-io/cmcp/blob/main/docs/spec/cedar-policy.md) | Справочник по языку политик Cedar и схема |
| [docs/testing/benchmarks.md](https://github.com/agentrust-io/cmcp/blob/main/docs/testing/benchmarks.md) | Бенчмарки задержки и пропускной способности для каждого провайдера TEE |

---

## FAQ

### Что такое cMCP?

cMCP (Confidential MCP Runtime) — это открытый шлюз, который обеспечивает соблюдение политики вызовов инструментов MCP внутри аппаратной доверенной среды исполнения (TEE). Он перехватывает каждый вызов инструмента, проверяет его на соответствие пакету политик Cedar, применяет решение (разрешить, запретить или отредактировать) и записывает вызов в аппаратно-запечатанную цепочку аудита.

### Чем cMCP отличается от программного управления MCP?

Программное управление запускает движок политик в той же ОС, до которой может добраться оператор или CVE в цепочке поставок, поэтому оно не может доказать, что выполнялась утверждённая политика или что решение не было подменено в памяти. cMCP запускает движок политик внутри TEE и измеряет его код и пакет Cedar в отчёте аппаратной аттестации до того, как он обслужит хотя бы один вызов, поэтому плоскость управления недоступна для процесса, которым она управляет.

### Нужно ли специальное оборудование, чтобы попробовать?

Нет. Установите `CMCP_DEV_MODE=1`, чтобы использовать программный провайдер TEE и пройти полный быстрый старт без аппаратного TEE. Аппаратные провайдеры (TPM, AMD SEV-SNP, Intel TDX) используются в продакшене.

### Что такое TRACE Claim?

TRACE Claim (a `GatewayClaim`) — это подписанный артефакт с аппаратной аттестацией, создаваемый для каждой сессии. Он фиксирует, какие инструменты выполнялись, какая политика приняла решение по каждому вызову, хеш пакета Cedar и цепочку аудита, и подписывается ключом Ed25519, который никогда не покидает TEE. Верификатор проверяет его с помощью библиотеки `cmcp_verify`, не доверяя оператору.

### Какие провайдеры TEE поддерживаются?

TPM 2.0 / vTPM, AMD SEV-SNP и Intel TDX, с запланированной на v0.2 конфиденциальной вычислятельной средой NVIDIA GPU. Порядок автоопределения: конфиденциальная ВМ Azure, затем TPM 2.0 / vTPM, затем AMD SEV-SNP, затем Intel TDX; программный провайдер используется только при CMCP_DEV_MODE=1.

### Под какой лицензией распространяется cMCP?

MIT.

---

## Участие в разработке

[CONTRIBUTING.md](https://github.com/agentrust-io/cmcp/blob/main/CONTRIBUTING.md) · [GOVERNANCE.md](https://github.com/agentrust-io/cmcp/blob/main/GOVERNANCE.md) · [Discussions](https://github.com/orgs/agentrust-io/discussions)

Присоединяйтесь к сообществу в [Discord](https://discord.gg/grgzFEHgkj).

Используете cMCP в продакшене? Добавьте свою организацию в [ADOPTERS.md](https://github.com/agentrust-io/cmcp/blob/main/ADOPTERS.md).

---

## Лицензия

MIT — см. [LICENSE](https://github.com/agentrust-io/cmcp/blob/main/LICENSE).
Скачать инструмент