Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
cmcp — cMCP: Gateway MCP riservato. Applicazione delle policy attestata via hardware per le chiamate agli strumenti MCP. | Kitploit
Strumenti/GitHubGitHub/agentrust-io/cmcp
Autenticazione e AutorizzazioneStrumenti DifensiviSicurezza CloudPrivacySicurezza HardwareSicurezza delle APISicurezza dell'IA
GitHubagentrust-io/cmcp

cmcp

cMCP: Gateway MCP riservato. Applicazione delle policy attestata via hardware per le chiamate agli strumenti MCP.

Vedi Repository
77820h 49m faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

cMCP

cMCP: Runtime MCP Confidenziale

Applica le policy degli strumenti MCP all'interno di un TEE, dove l'agente che governa non può raggiungerlo

Documentation

Avvio rapido · Architettura · Configurazione · CLI · Changelog

CI License: MIT PyPI OpenSSF Scorecard Discord

Anteprima per sviluppatori - lanciata al Confidential Computing Summit, 23 giugno 2026. Potrebbero esserci modifiche sostanziali prima della v1.0. Consulta STATUS.md per sapere esattamente cosa è disponibile oggi rispetto alla roadmap.

cMCP (Runtime MCP Confidenziale) è il modo sicuro e confidenziale di eseguire MCP: un gateway open-source che applica le policy delle chiamate agli strumenti MCP all'interno di un Trusted Execution Environment (TEE) hardware. Ogni chiamata a uno strumento viene intercettata, valutata rispetto a un bundle di policy Cedar e applicata dove il processo che governa non può raggiungerla. Ogni sessione produce una TRACE Claim firmata che un verificatore controlla senza fidarsi dell'operatore, attestata a livello hardware quando il gateway gira in un TEE e firmata soltanto in modalità software. Se stai cercando una versione sicura di MCP, questo è il runtime AgenTrust per essa.

TL;DR - Punta il tuo agente al Gateway cMCP. Valuta ogni chiamata a uno strumento rispetto a una policy Cedar all'interno di un TEE, blocca o oscura ciò che la policy nega ed emette una TRACE Claim a prova di manomissione come prova. Esegui pip install cmcp-runtime e avvia in modalità software senza richiedere hardware.

Il tuo agente chiama Snowflake, Salesforce, una dozzina di API. Cosa gli impedisce di far trapelare i dati di un cliente in una di queste chiamate? Se un regolatore lo chiedesse, potresti dimostrare che non è successo?


Il problema

Un agente chiama uno strumento. Il motore delle policy dice consenti. La chiamata allo strumento passa.

Nessuno di questi passaggi dimostra che il motore delle policy stesso non sia stato compromesso. La governance MCP solo software non può garantire:

  • Che la policy Cedar su disco sia quella effettivamente eseguita. Un amministratore malintenzionato può sostituire il bundle dopo l'approvazione; il controllo dell'hash viene eseguito nello stesso sistema operativo controllato dall'amministratore.
  • Che la decisione consenti/nega non sia stata alterata in memoria. Una CVE nella supply chain dell'evaluator gira nello stesso spazio di indirizzi dell'attaccante.
  • Che il log di audit rifletta ciò che è realmente accaduto. Qualsiasi soggetto in possesso della chiave di firma software può ricostruire una catena di audit valida a posteriori.

Il piano di controllo che governa le chiamate agli strumenti deve girare dove non può essere raggiunto dal processo che governa.

Applicazione delle policy attestata a livello hardware per le chiamate agli strumenti MCP. Ogni chiamata a uno strumento viene intercettata, valutata rispetto a un bundle di policy Cedar e applicata da un motore di policy che gira all'interno di un Trusted Execution Environment (TEE). L'hash del bundle di policy viene misurato nel report di attestazione hardware prima che venga eseguito qualsiasi codice.

A differenza delle soluzioni di connettività basate su tunnel, il Runtime cMCP elabora i payload delle chiamate agli strumenti all'interno del TEE. Il provider di connettività vede testo cifrato, non testo in chiaro. L'unica cosa che lascia l'enclave è la TRACE claim firmata.


Avvio rapido

root@kitploit:~
pip install cmcp-runtime

Crea cmcp-config.yaml:

root@kitploit:~
attestation:
  provider: auto
  enforcement_mode: advisory   # advisory facilita la messa a punto iniziale; il default è `enforcing`
listen_addr: "127.0.0.1:8443"  # fissa il loopback: la modalità dev gira senza bearer token
policy_bundle_path: ./policies/
catalog_path: ./catalog.json

listen_addr qui non è facoltativo. CMCP_DEV_MODE=1 salta deliberatamente il requisito del bearer token così puoi provare rapidamente le cose, e il bind predefinito è comunque 0.0.0.0:8443. Sulla 0.3.0 quella combinazione metteva in piedi un gateway non autenticato su ogni interfaccia della tua macchina. Dalla 0.4.0 viene rifiutata: la modalità dev senza token può fare bind solo su un indirizzo loopback, e un bind non-loopback richiede CMCP_BEARER_TOKEN. Fissa listen_addr esplicitamente e la configurazione è corretta in entrambi i casi.

Avvia il gateway:

root@kitploit:~
CMCP_DEV_MODE=1 cmcp start --config cmcp-config.yaml

Effettua una chiamata a uno strumento:

root@kitploit:~
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"}}}'

Preferisci una versione guidata? agentrust-io.com/quickstart percorre lo stesso percorso in circa dieci minuti su un laptop, senza hardware e senza registrazione: installa, scrivi una regola Cedar forbid, osserva una chiamata a uno strumento restituire 403 POLICY_DENY prima che raggiunga un upstream, poi verifica la ricevuta firmata.

Consulta docs/quickstart.md per la procedura completa: policy Cedar, catalogo degli strumenti, prima TRACE Claim e verifica (nessun TEE hardware richiesto).


Come funziona

  1. L'agente invia ogni chiamata a uno strumento al Gateway cMCP invece che direttamente ai server MCP.
  2. All'avvio il gateway misura l'hash del bundle di policy Cedar nel report di attestazione hardware. Nessun codice viene eseguito prima di questa misurazione.
  3. Ogni chiamata in arrivo viene valutata dal motore di policy Cedar che gira all'interno del TEE. Il risultato è consenti, nega o oscura. La chiamata e la sua decisione vengono aggiunte alla catena di audit sigillata a livello hardware.
  4. Al termine della sessione il gateway produce una TRACE Claim: un artefatto firmato e attestato a livello hardware che registra quali strumenti sono stati eseguiti, quale policy ha deciso ogni chiamata e l'intera catena di audit. Un verificatore la controlla senza fidarsi dell'operatore.
root@kitploit:~
Agent -> cMCP Runtime -> Motore di policy Cedar (TEE) -> Strumento
                     |
               GatewayClaim (Profilo TRACE)
               +-- trace.eat_profile
               +-- trace.runtime.platform + measurement
               +-- trace.policy.bundle_hash
               +-- trace.cnf.jwk  (chiave di conferma Ed25519)
               +-- gateway.audit_chain (root/tip/lunghezza)
               +-- signature (Ed25519 su JSON canonico)

Provider hardware

Ordine di rilevamento automatico del provider: azure-cvm -> tpm -> sev-snp -> tdx. Viene selezionato il primo provider il cui detect() ha successo. opaque è un segnaposto non ancora implementato: è escluso dall'auto-rilevamento e selezionarlo esplicitamente solleva ATTESTATION_PROVIDER_NOT_IMPLEMENTED invece di ripiegare silenziosamente. Se non viene rilevato alcun provider hardware, il gateway si avvia solo con CMCP_DEV_MODE=1 (un fallback solo software non attestato) e altrimenti rifiuta di avviarsi.

root@kitploit:~
from cmcp_runtime.config import TEEProvider

# Auto-rilevamento (default)
# attestation.provider: auto  ->  azure-cvm -> tpm -> sev-snp -> tdx
# (solo software viene usato solo con CMCP_DEV_MODE=1)

# Selezione hardware esplicita
# attestation.provider: sev-snp

# OPAQUE Managed Runtime (solo opt-in; non ancora implementato)
# OPAQUE_ATTESTATION_URL=https://... cmcp start --config cmcp-config.yaml

Modalità di applicazione

ModalitàComportamentoCaso d'uso

Il default è enforcing. Imposta enforcement_mode: advisory in cmcp-config.yaml per usare la modalità advisory.


Configurazione

Riferimento completo di cmcp-config.yaml:

root@kitploit:~
attestation:
  provider: auto                    # auto | tpm | sev-snp | tdx | opaque | software-only
  enforcement_mode: enforcing       # enforcing | advisory | silent
  validity_seconds: 86400           # finestra di freschezza dell'attestazione (default: 24 ore)
  staleness_policy: fail_closed     # fail_closed | warn_only
  expected_measurement: ~           # fissa uno specifico PCR/measurement (facoltativo)

policy_bundle_path: policies/       # directory contenente file .cedar e manifest.json
catalog_path: catalog.json          # catalogo degli strumenti approvati

listen_addr: "127.0.0.1:8443"     # la modalità dev senza token è solo-loopback; imposta CMCP_BEARER_TOKEN prima di fare bind su una rete più ampia
max_response_size_bytes: 2097152    # default 2 MB
policy_reload_interval_seconds: 0   # >0 con CMCP_POLICY_HASH fissato rifiuta l'avvio, vedi docs/spec/policy-hot-reload.md

Variabili d'ambiente:

VariabileEffetto
CMCP_DEV_MODE=1Usa il provider TEE solo software; nessun hardware richiesto
CMCP_BEARER_TOKENRichiedi questo bearer token su tutte le richieste in entrata
OPAQUE_ATTESTATION_URLAbilita l'attestazione OPAQUE Managed Runtime (opt-in esplicito)

Riferimento CLI


TRACE Claims

Una GatewayClaim è l'unità di prova consegnata a un revisore, a un regolatore o a un verificatore a valle. Viene prodotta per sessione (o per chiamata, configurabile) e firmata con una chiave che non lascia mai il TEE.

(Questa tabella è un riepilogo dei campi più utilizzati.)

La verifica con la libreria cmcp_verify non richiede di fidarsi dell'operatore. Il verificatore controlla la firma rispetto alla chiave legata al TEE, l'hash del bundle di policy rispetto al valore approvato e la catena di audit per la coerenza interna.

Lo schema normativo è schemas/trace-claim.schema.json e docs/quickstart.md mostra un esempio completo. Consulta docs/spec/verification-library.md e la specifica TRACE per il protocollo di verifica completo.


Allineamento agli standard


Sicurezza

Consulta SECURITY.md per la segnalazione delle vulnerabilità e gli SLA di risposta. Consulta LIMITATIONS.md per i confini di ambito espliciti, inclusi i rischi residui per la cattura dei payload APM, l'iniezione di configurazione runtime e la supply chain P4.1 (typosquat) che la Fase 1 non chiude.


Documentazione


FAQ

Cos'è cMCP?

cMCP (Runtime MCP Confidenziale) è un gateway open-source che applica le policy delle chiamate agli strumenti MCP all'interno di un Trusted Execution Environment hardware. Intercetta ogni chiamata a uno strumento, la valuta rispetto a un bundle di policy Cedar, applica la decisione (consenti, nega o oscura) e registra la chiamata in una catena di audit sigillata a livello hardware.

In cosa cMCP è diverso dalla governance MCP solo software?

La governance solo software esegue il motore delle policy nello stesso sistema operativo che un operatore o una CVE della supply chain può raggiungere, quindi non può dimostrare che la policy eseguita fosse quella approvata o che la decisione non sia stata alterata in memoria. cMCP esegue il motore delle policy all'interno di un TEE e misura l'hash del bundle Cedar nel report di attestazione hardware prima che venga eseguito qualsiasi codice, così il piano di controllo non può essere raggiunto dal processo che governa.

Mi serve hardware speciale per provarlo?

No. Imposta CMCP_DEV_MODE=1 per usare il provider TEE solo software ed eseguire l'intero avvio rapido senza un TEE hardware. I provider hardware (TPM, AMD SEV-SNP, Intel TDX, OPAQUE) vengono usati in produzione.

Cos'è una TRACE Claim?

Una TRACE Claim (una GatewayClaim) è un artefatto firmato e attestato a livello hardware prodotto per sessione. Registra quali strumenti sono stati eseguiti, quale policy ha deciso ogni chiamata, l'hash del bundle Cedar e la catena di audit, ed è firmata con una chiave Ed25519 che non lascia mai il TEE. Un verificatore la controlla con la libreria cmcp_verify senza fidarsi dell'operatore.

Quali provider TEE sono supportati?

TPM 2.0 / vTPM, AMD SEV-SNP e Intel TDX, con il confidential computing GPU NVIDIA previsto per la v0.2 e OPAQUE Confidential Runtime disponibile come opt-in esplicito. L'ordine di auto-rilevamento è Azure confidential VM, poi TPM 2.0 / vTPM, poi AMD SEV-SNP, poi Intel TDX; il provider solo software viene usato solo con CMCP_DEV_MODE=1.

Sotto quale licenza è cMCP?

MIT.


Contribuire

CONTRIBUTING.md · GOVERNANCE.md · Discussioni

Unisciti alla community su Discord.

Usi cMCP in produzione? Aggiungi la tua organizzazione a ADOPTERS.md.


Licenza

MIT - vedi LICENSE.

Scarica lo strumento
ProviderPiattaformaGaranziaNote
tpmTPM 2.0 / vTPM (Azure, AWS, GCP Trusted Launch)MediaQuote TPM locale
sev-snpAMD SEV-SNP (Azure DCasv5, AWS C6a Nitro)AltaAMD KDS
tdxIntel TDX (Azure DCedsv5, GCP C3)AltaIntel PCS
gpu-cc (v0.2)NVIDIA H100/H200/Blackwell (modalità CC)AltaNVIDIA Remote Attestation Service (NRAS)
opaque (opt-in)OPAQUE Confidential Runtimen/d (non ancora implementato)Segnaposto: escluso dall'auto-rilevamento; selezionarlo esplicitamente solleva un errore di non implementazione
enforcingLe denial delle policy restituiscono HTTP 403; la chiamata non viene inoltrataProduzione
advisoryLe denial delle policy vengono registrate; la chiamata procedePrimo deployment, messa a punto delle policy
silentLa policy viene valutata ma non viene registrato o bloccato nullaBaseline
ComandoFlagDescrizione
cmcp start--config PATH (obbligatorio)Avvia il gateway
cmcp validate-config--config PATH (obbligatorio)Valida cmcp-config.yaml senza avviare
cmcp validate-bundle--bundle-path PATH (obbligatorio), --expected-hash sha256:<hex> (obbligatorio)Verifica l'hash di un bundle Cedar prima del deployment
cmcp verifyCLAIM_FILE (obbligatorio); --policy-hash, --catalog-hash, --max-age, --trusted-key, --trusted-tpm-ca, --audit-bundle, --agent-manifest, --agent-manifest-trust-anchorVerifica una TRACE Claim firmata (firma, schema, freschezza, catena di audit, hash fissati e trust anchor)
CampoDescrizione
trace.eat_profileURI del profilo EAT: tag:agentrust-io.com,2026:trace-v0.2
trace.runtimePiattaforma TEE e misurazione hardware registrate al boot dell'enclave
trace.policy.bundle_hashSHA-256 del bundle Cedar caricato all'avvio; modificare qualsiasi file di policy cambia questo valore
trace.cnf.jwkChiave pubblica Ed25519 legata alla chiave di firma del TEE
trace.tool_transcriptVista per chiamata derivata dalla catena di audit: hash (legato alla punta della catena di audit), call_count ed entries che preservano la privacy (nome dello strumento, classe di dati, decisione)
gateway.audit_chainLog di audit concatenato tramite hash con root e tip; verificabile senza riprodurre le singole voci
signatureEd25519 su JSON canonico dell'intero corpo della claim (RFC 8785)
StandardCopertura
OWASP Agentic AI Top 10MCP10 (perdita di dati tramite chiamate a strumenti), MCP02 (strumenti non autorizzati), MCP08 (governance dimostrabile), MCP04 (supply chain)
NIST SP 800-207Punto di decisione delle policy all'interno del TEE; nessuna fiducia implicita nell'identità del carico di lavoro
EU AI Act Art. 12, 15Registri di audit per decisione (Art. 12); controlli di cybersecurity basati su TEE (Art. 15)
DORA Art. 9Catena di attestazione; conservazione dei log di audit tramite gateway.audit_chain
RATS/EAT RFC 9711GatewayClaim è un EAT; il campo eat_profile identifica il profilo TRACE
StrumentoCosa controlla
ruffLint di stile e import su ogni PR
banditLint di sicurezza Python su ogni PR
pip-auditScansione delle vulnerabilità delle dipendenze su ogni PR
mypyControllo statico dei tipi su ogni PR
CodeQLSAST Python, query security-extended, settimanale
OpenSSF ScorecardPunteggio settimanale, upload SARIF
PaginaDescrizione
docs/quickstart.mdDa zero alla prima TRACE Claim in meno di 30 minuti
docs/configuration.mdRiferimento completo della configurazione con tutti i campi e i default
docs/SPEC.mdSpecifica del prodotto: tassonomia dei problemi, architettura, matrice di copertura
docs/spec/threat-model.mdAnalisi STRIDE, modello dell'avversario, rischi residui
docs/spec/cedar-policy.mdRiferimento del linguaggio di policy Cedar e schema
docs/testing/benchmarks.mdBenchmark di latenza e throughput per provider TEE