Lascia lavorare l'agente. Mantieni il controllo dell'effetto finale.
Proteggere un server MCP non basta: un agente raggiunge anche la shell, i file, le API e le automazioni che il suo harness gli permette di raggiungere. Questa guida riunisce l'intero percorso per sviluppatori e istituzioni: diagnosticare la configurazione che hai già, testare il confine, autorizzare solo il candidato esatto, controllare l'esecuzione e ricostruire con prove ciò che è realmente accaduto.
Disponibile · Break the Mandate
A chi è rivolta
Sviluppatori e maintainer
Team che già delegano attività ad agenti di programmazione e vogliono lasciarli lavorare più a lungo senza approvare ogni comando. Doctor sui propri file, un laboratorio locale senza account e una ricevuta da allegare alla PR.
Team di piattaforma e sicurezza
Chi decide cosa un agente può montare, raggiungere ed esportare. Una configurazione portabile versionata in Git, la stessa validazione in CLI e dashboard, e controlli di hold e stop confermati dal runtime.
Istituzioni e organizzazioni
Chi risponde di ciò che il software autonomo fa a clienti, revisori o autorità di regolamentazione. L'autorità resta fuori dall'agente, ogni effetto lascia una prova verificabile offline e i limiti di quella prova sono scritti.
Tre superfici, un solo principio
Gli agenti possono proporre. L'autorità resta fuori dall'agente. La copertura è limitata alle rotte dichiarate e testate: SecureStamp non controlla le operazioni che aggirano quel confine, e le nomina invece di nasconderle.
Server MCP
Un server avviato tramite una shell, un segreto scritto nel file o un pacchetto non bloccato a una versione trasformano uno strumento in una rotta di autorità che nessuno ha rivisto.
Doctor legge il file scelto e propone una copia corretta; MCP Guard media la chiamata e Action Proof lega l'autorizzazione all'effetto esatto.
Action ProofAgenti
L'agente può tentare la stessa cosa tramite MCP, la shell, uno script o una chiamata API diretta. I suoi log e riepiloghi descrivono ciò che dice di aver fatto, non ciò che è successo.
L'Execution Guardian del cliente ammette o trattiene ogni effetto mediato; un osservatore esterno all'agente registra l'esito, e un Task Contract limita passaggi, risorse, budget e validità.
Task ContractHarness
Mount, socket, credential helper, proxy e rete effettiva determinano quale autorità l'agente ha davvero, anche quando la configurazione dichiarata dice altro.
Il laboratorio testa il profilo dell'harness rotta per rotta, confrontandolo con una baseline permissiva, e segna ogni rotta senza sonda come not evaluated.
Laboratorio di agenti e harnessBreak the Mandate — la dimostrazione passo passo
La domanda iniziale è semplice: il tuo agente può fare qualcosa al di fuori dell'attività che hai approvato? Lo scenario di riferimento risponde in cinque passaggi, su fixture sintetiche, senza account e senza chiave API di un modello.
- 01
Un'attività utile
L'agente prepara una modifica reale all'interno di una fixture contenuta.
- 02
La lacuna, nella baseline
Lo stesso tentativo fuori ambito produce il suo effetto in una baseline volutamente permissiva, osservata da un altro processo. È un controllo sperimentale noto, non una vulnerabilità scoperta sulla tua macchina.
- 03
La lacuna, contenuta
Con il controllo attivo quella rotta è contenuta e l'attività utile viene comunque completata. Un rifiuto che rende l'attività inutile non conta come valore.
- 04
Le prove scadono quando l'ambiente cambia
Una dipendenza materiale del profilo cambia: le prove precedenti smettono di abilitare quella rotta finché non vengono rivalidate.
- 05
Esce solo il candidato esatto
Il candidato congelato viene rivisto. Alterarne i byte o la destinazione invalida l'esportazione; ripristinare ciò che era stato approvato consente l'effetto.
Avvio rapido
Doctor non richiede né Docker né un modello e non esegue nulla di ciò che legge. Lo scenario di riferimento è sintetico: non esegue mai codice del progetto e il suo report è etichettato come prova simulata.
# Node 22.22.3 o successivo npm install --save-dev @securestamp/mcp-guard @securestamp/execution-governance # 1. Doctor: diagnosi statica dei file che scegli npx securestamp-mcp-doctor scan .mcp.json --propose npx securestamp-mcp-doctor scan-native <settings.json|config.toml> --format=<shape> npx securestamp-mcp-doctor scan-workflow .github/workflows/agent.yml # 2. Scenario portabile: valida ed esegui il riferimento, con un hold npx securestamp-execution-governance validate scenario.json npx securestamp-execution-governance run scenario.json --hold-before=step-1
Ogni comando stampa il proprio utilizzo e i formati supportati quando riceve argomenti non validi. Per un HarnessProfileV1 completo, usa securestamp-mcp-doctor scan-harness. Con --hold-before, l'esecuzione mostra un effetto trattenuto che non viene mai ammesso. Nessuna telemetria per impostazione predefinita.
Doctor: prima i tuoi file nativi
Doctor produce fatti dichiarati, ciascuno con il proprio file e campo di origine, e una diagnosi parziale che indica quali livelli ha letto e quali restano sconosciuti. La compatibilità è descritta come forma + trasporto + client testato; un formato che non riconosce viene segnalato come non supportato, mai saltato in silenzio.
.mcp.json · JSON con mcpServers (stdio)Comandi dichiarati, riferimenti a credenziali, segreti scritti nel file, avvii tramite shell e pacchetti mutabili o @latest. Una versione bloccata non stabilisce l'integrità: verificare l'artefatto effettivo rispetto a quello approvato è compito dell'esecutore.
settings.json · config.toml ([mcp_servers])Permessi, strumenti e livelli di configurazione riconosciuti, con conflitti e dati mancanti. Un singolo file non rivela policy gestite, override della CLI o configurazione ereditata: l'output lo dice.
.github/workflows/*.ymlAgent Workflow Doctor: input non attendibile da issue, PR o commenti che raggiunge l'agente, permessi dichiarati, riferimenti a secret, strumenti ampi e checkout di contenuti esterni. Non scarica action, non risolve secret né esegue YAML.
HarnessProfileV1Il profilo completo per utenti avanzati. Doctor non lo inventa mai a partire da un solo file: mount, osservatore, credenziali effettive e backend sono scelti e validati dall'operatore.
- Legge solo i file a cui viene puntato; non scansiona la home directory.
- Non esegue comandi, hook o espressioni contenuti nel file.
- Non risolve segreti e non valida token.
- Propone una patch rivedibile su una copia; non sovrascrive mai l'originale.
- Mostra un risultato pulito con lo stesso peso di un rilievo.
- Una diagnosi statica non stabilisce né isolamento né protezione.
Exact Export: l'agente prepara, tu autorizzi la modifica esatta
L'agente prepara la modifica in una copia contenuta del tuo progetto. La credenziale di esportazione resta fuori dal suo ambiente e solo il candidato rivisto esce, tramite l'Execution Guardian.
- 01
Preparare
In quarantena, su uno snapshot del progetto scelto; il tuo .git non viene mai riutilizzato come base attendibile.
- 02
Congelare
Il candidato viene fissato prima della revisione: base, byte e digest, ref, destinazione e stato precedente.
- 03
Autorizzare
L'approvazione è legata a quel candidato. Una modifica successiva la invalida; un --yes non sostituisce MFA o quorum.
- 04
Eseguire
Tenuto in custodia dal Guardian, con un controllo dello stato della destinazione: drift e race non vengono mai sovrascritti.
- 05
Verificare
Verifica indipendente della postcondizione e una ricevuta da allegare alla PR o all'issue.
La destinazione iniziale è un repository Git locale. Con un profilo e una destinazione autorizzati, l'adapter GitHub crea un nuovo ref: non aggiorna alcun branch, non fa force-push, merge o deploy, e aprire una PR è un effetto separato con la propria autorizzazione. La custodia delle credenziali è dichiarata solo per il profilo che la dimostra con identità effettiva, mount, socket e rete più canary dal contesto dell'agente.
Una configurazione portabile, tre interfacce
La configurazione è un file JSON versionato nel tuo repository. La libreria genera i contratti completi e i loro digest; nessuno scrive le firme a mano. CLI e dashboard importano ed esportano la stessa rappresentazione e superano la stessa validazione: non esiste una policy web diversa dalla policy in Git. Ogni modifica crea una nuova revisione e le esecuzioni attive mantengono il proprio snapshot.
Scenario
Un SSPI-execution-scenario versionato: parametri, sorgente del progetto con digest del candidato e della base, e passi con la loro operazione e l'effetto atteso. Non accetta script arbitrari né un risultato atteso modificato per trasformare una lacuna in un successo.
Profilo
Il runner e il suo profilo: backend, lease dell'osservatore e lease del canale di controllo. Il sistema verifica la loro disponibilità e l'applicabilità delle prove.
Mandato
Limiti di effetti e di tempo, digest di ogni effetto e risorsa, e approvazioni richieste: un Task Contract fuori dalla portata dell'agente.
npm · @securestamp/execution-governanceContratti di scenario portabili, un piano di controllo con hold, resume e stop, e report redatti: validare e serializzare scenari, avviare esecuzioni, emettere ordini idempotenti, e costruire, verificare e confrontare report. Non concede autorità, non contiene l'host e non sostituisce il Guardian del cliente.
CLI · securestamp-mcp-doctor · securestamp-execution-governancescan, scan-native, scan-workflow e scan-harness per la diagnosi; validate e run per gli scenari. Nessun account. Ogni esecuzione produce il proprio report senza sovrascriverne un altro.
Dashboard · securestamp.online/dashboard/agentsScenari, preparazione, esecuzioni, dettaglio in tempo reale e analisi post-esecuzione, su runner registrati gestiti dal cliente. Il browser non esegue il test e non riceve le credenziali del provider; collegare un runner è opzionale.
Hold, resume, stop
I controlli agiscono sulle rotte mediate dal Guardian. L'agente può continuare a ragionare mentre i suoi effetti sono trattenuti; l'interfaccia lo mostra come «effetti trattenuti / processo in esecuzione», mai come un agente congelato.
Hold
Il Guardian chiude l'ammissione di nuovi effetti e conserva budget, grant consumati e cronologia. Non congela le chiamate già inviate né costruisce una coda di effetti obsoleti.
Resume
Prima di riaprire, mandato, validità, policy, profilo, osservatore e budget vengono rivalidati. Ogni nuova richiesta viene valutata di nuovo.
Stop
Terminale per l'esecuzione: chiude in modo durevole l'ammissione, annulla il lavoro in sospeso e termina i processi supervisionati e i loro figli. Prevale su resume e su una riconnessione.
Una risposta HTTP riuscita conferma solo che l'ordine è stato ricevuto. La dashboard mostra separatamente ciò che è stato richiesto, ciò che il supervisore ha applicato e ciò che è stato osservato. Se il canale remoto cade mentre l'osservatore è integro, le ammissioni restano trattenute in locale; se l'osservatore si guasta, il profilo interrompe l'egress e termina il container. Lo stop locale non dipende mai dalla dashboard.
Report: stati che non si riducono a un semaforo
Il report di esecuzione contiene solo un checksum informativo, dichiara il livello di prova e permette di confrontare le esecuzioni; un checksum non autentica l'emittente. Quando è allegato un bundle Action Proof completo, il verificatore indipendente lo verifica offline con ancore fornite fuori dal report e collega candidato, destinazione, autorità e risultato osservato del receipt. FAIL, un SKIP, evidenza mancante e rotta non valutata restano visibili; un guasto di strumentazione lascia l'esecuzione INCOMPLETE, mai PASS.
| Stato dell'esecuzione | queued · running · held · stopping · stopped · completed · failed · incomplete |
| Risultato della rotta | PASS · FAIL · SKIP |
| Copertura | protected · contradicted · partial · not_evaluated |
| Integrazione | simulated · integration_real · no_evaluated |
| Completezza | complete · incomplete |
| Esito del report | PASS · FAIL · INCOMPLETE |
| Esito dell'effetto | succeeded · failed_no_effect · indeterminate |
Checksum informativo
Il digest verifica i byte presentati, ma chiunque possa riscrivere il report può ricalcolarlo. Non autentica l'emittente.
Emittente attendibile per questo operatore
Solo rispetto agli anchor che l'operatore installa. Un anchor distribuito nell'artefatto stesso non lo rende attendibile.
Riprodotto da una terza parte
Qualcun altro ha eseguito lo stesso pack e ha ottenuto lo stesso risultato. È un'affermazione diversa e viene riportata separatamente.
Controllo informativo sulle pull request
Confronta base e head dei file nativi con gli stessi importer e le stesse regole, mostra le modifiche dichiarate, gli elementi sconosciuti e i candidati alla rivalidazione, e valida una ricevuta allegata rispetto ai suoi anchor. Viene eseguito da una revisione attendibile bloccata, con permessi di lettura, senza secret e senza eseguire codice della PR. Informa la revisione: non è il controllo che autorizza un'esportazione, né un sostituto del Guardian o di un ruleset.
Cosa non fa
- Non rende sicuro il modello né dimostra un allineamento generale: testa i limiti di esecuzione su un profilo dichiarato.
- Non controlla le rotte che aggirano il Guardian; una rotta senza sonda resta not evaluated, mai protetta per ereditarietà.
- Non annulla un effetto già avvenuto: hold e stop non sono un rollback.
- Una ricevuta mostra integrità e ambito rispetto ai suoi anchor; non mostra che il codice approvato sia innocuo né che qualcuno di indipendente lo abbia sottoposto ad audit.
- Non è un kill switch a livello aziendale: la v1 controlla l'esecuzione scelta e i suoi runner dichiarati.
- La compatibilità è pubblicata per profilo, versione e ambiente. Un PASS su un harness non si trasferisce a un altro sistema operativo, rotta o client.
Continua a leggere
Stato
Disponibile: Doctor sui file nativi, lo scenario di riferimento parametrizzato tramite npm, CLI e dashboard, Exact Export verso Git locale e il controllo informativo sulle PR. I report distinguono la cronologia con solo checksum dal bundle Action Proof allegato; una ricevuta condivisibile è dichiarata solo se il bundle esiste e verifica con ancore esterne. Ogni capacità pubblica il proprio livello di prova — simulated, integrazione reale o not evaluated — per profilo e ambiente.
Aperto e riproducibile
Scenari, fixture, ricette e vettori sono pubblicati affinché una terza parte possa riprodurre o confutare ogni proprietà. I controesempi si contribuiscono come issue con seed, profilo e risultato osservato; i rilievi sensibili seguono SECURITY.md. Non esiste una classifica degli «agenti sicuri» né badge generici.