Model de Amenaça de la Porta de Decisió
Visió general
Decision Gate és un pla de control determinista i reproduïble per a la divulgació controlada i l’avançament d’etapes. Avalua condicions basades en proves, emet decisions auditable i suporta la verificació offline mitjançant runpacks. No executa converses d’agents.
La Porta de Decisió està composta per:
- Control plane core (scenario engine, evidence evaluation, run state, runpack Nucli del pla de control (motor de scenario, avaluació d’evidències, estat d’execució, constructor/verificador de runpack).
- Servidor MCP (JSON-RPC sobre stdio/HTTP/SSE) i eines CLI.
- Federació de proveïdors (proveïdors integrats més proveïdors MCP externs).
- Capa de distribució/broker (resolució i lliurament de càrrega útil).
- Storage layers (SQLite or in-memory run state + schema registry, optional Capes d’emmagatzematge (SQLite o estat d’execució en memòria + registre d’esquema, emmagatzematge d’objectes opcional per a runpacks).
Documentació relacionada
- Visió general del repositori i postura de seguretat:
README.mdiSECURITY.md. - Orientació operativa i controls: Guia de seguretat.
- Standards and investigation workflow:
Docs/standards/codebase_engineering_standards.md, Normatives i flux de treball d’investigació:Docs/standards/codebase_engineering_standards.md,Docs/standards/agent_investigation_guide.md. - Architecture references:
Docs/architecture/decision_gate_auth_disclosure_architecture.md,Docs/architecture/decision_gate_evidence_trust_anchor_architecture.md,Docs/architecture/decision_gate_runpack_architecture.md,Docs/architecture/decision_gate_namespace_registry_rbac_architecture.md, Referències d’arquitectura:Docs/architecture/decision_gate_auth_disclosure_architecture.md,Docs/architecture/decision_gate_evidence_trust_anchor_architecture.md,Docs/architecture/decision_gate_runpack_architecture.md,Docs/architecture/decision_gate_namespace_registry_rbac_architecture.md,Docs/architecture/decision_gate_provider_capability_architecture.md. - Component READMEs:
crates/decision-gate-core/README.md,crates/decision-gate-mcp/README.md, Component READMEs:crates/decision-gate-core/README.md,crates/decision-gate-mcp/README.md,crates/decision-gate-broker/README.md,crates/decision-gate-providers/README.md.
Objectius de Seguretat
- Avaluació determinista sense mutació oculta de l’estat.
- Evidence-backed disclosure only; fail closed on missing, invalid, or Divulgació basada en evidències només; fallar tancat en cas d’evidències mancants, invàlides o no verificables.
- Auditoria i detecció d’alteracions per a l’estat d’execució i runpacks.
- Exposició de dades minimitzada; per defecte a resums segurs i proves redactades.
- Clear trust boundaries between control plane, providers, dispatch targets, Clars límits de confiança entre el pla de control, proveïdors, objectius de despach i emmagatzematge.
- Accés a eines amb el mínim privilegi i operacions de registre amb autorització explícita.
- Ús de recursos limitats (mida de la sol·licitud, mida de la resposta del proveïdor, límits de taxa).
No-objectius / Fora d’abast
- Protegir la confidencialitat després que les dades s’hagin divulgat a sistemes posteriors.
- Protegir contra el compromís complet de l’amfitrió o del nucli sense controls externs.
- Assegurant proveïdors MCP externs, dipòsits a la baixa o aplicacions de client.
- Atestació de maquinari, garanties d’enclavament segur o serveis de custòdia de claus.
- Signatura criptogràfica de runpacks o registres d’esquema (més enllà dels camps de metadades).
- Termini TLS i confiança del proxy (responsabilitat de desplegament).
Actius
- Especificacions de l’escenari, condicions i etiquetes de política (lògica de seguretat).
- Run state logs: triggers, gate evaluations, decisions, packets, submissions, Registres d’estat d’execució: desencadenants, avaluacions de portes, decisions, paquets, presentacions, trucades d’eines.
- Valors d’evidència, hashes, ancoratges i signatures.
- Configuració de l’autoritat de l’espai de noms i mapes d’espai de noms.
- Data shape registry records (JSON Schemas), versions, and optional signing Registres de forma de dades (JSON Schemas), versions i metadades de signatura opcionals.
- Enviar càrregues, sobres i rebuts.
- Executar artefactes de Runpack, manifestos i informes de verificació.
- Contractes de proveïdors (contractes de capacitat) i esquemes.
- Registres d’auditoria (autenticació d’eines, precomprovació, ACL de registre, autenticació de l’inquilí, ús).
- Configuration files, provider auth tokens, registry ACL/principal mappings, Fitxers de configuració, tokens d’autenticació del proveïdor, mapeigs d’ACL/principal del registre, i claus de verificació de signatures.
- Run state store (SQLite or in-memory), schema registry store, and runpack Executar l’emmagatzematge d’estat (SQLite o en memòria), l’emmagatzematge del registre d’esquemes i el directori de sortida de runpack.
- Buckets d’emmagatzematge d’objectes per a artefactes i arxius de runpack (compatible amb S3).
- Contingut del catàleg de documents i qualsevol document addicional ingerit des del disc.
Model d’Adversari
- Adversaris d’estat-nació amb ple coneixement del comportament de Decision Gate.
- Clients no confiables o compromesos que emeten desencadenants o crides d’eines.
- Proveïdors d’evidència maliciosos o defectuosos i servidors MCP externs.
- Insiders compromesos amb accés a la configuració, emmagatzematge o registres.
- Atacants de xarxa capaços de MITM, reproduir o eliminar trànsit.
- Autors de scenarios maliciosos o erronis que poden definir especificacions insegures.
- Malicious schema registrants or policy administrators who can poison registry Registrants de esquema maliciosos o administradors de polítiques que poden contaminar les entrades del registre.
- Attackers controlling content references or broker sources (SSRF/exfiltration Atacants que controlen referències de contingut o fonts de broker (risc SSRF/exfiltració).
- Attackers who can tamper with on-disk provider contracts, configs, or runpack Atacants que poden manipular contractes de proveïdors en disc, configuracions o artefactes de runpack.
Trust Boundaries
- Transports del servidor MCP (stdio, HTTP, SSE): totes les entrades JSON-RPC no són de confiança.
- Definició d’entrada de l’escenari: les especificacions poden codificar la lògica de divulgació i l’accés a les dades.
- Límit del proveïdor d’evidències: proveïdors integrats vs proveïdors MCP externs.
- Namespace authority backend (Asset Core or registry): namespace validation is Autoritat de backend de l’espai de noms (Asset Core o registre): la validació de l’espai de noms és externa i ha de fallar de manera segura.
- Contractes de proveïdors i fitxers de configuració al disc.
- Backend del registre d’esquemes (en memòria/SQLite) i decisions d’ACL del registre.
- Executar l’emmagatzematge d’estat i els artefactes de descompressió: tractar l’emmagatzematge com a no de confiança.
- Runpack object storage (S3-compatible) and metadata: treat as untrusted and Emmagatzematge d’objectes Runpack (compatible amb S3) i metadades: tractar com a no fiable i verificar els hashes per a cada artefacte.
- Fonts de broker (http/arxiu/integrat) i sumidors (sistemes externs).
- Objectius de despach i sistemes a muntanya avall que reben divulgacions.
- Entorn de verificació fora de línia i lectors d’artefactes.
- Tenant authorization adapters and usage meters (if configured) are external Els adaptadors d’autorització de llogaters i els comptadors d’ús (si estan configurats) són punts de decisió externs.
- Ingesta de paths extra_docs (disc local) i recursos/lista/lectura MCP.
Punts d’entrada i superfícies d’atac
- MCP JSON-RPC methods:
tools/list,tools/call,resources/list, Mètodes MCP JSON-RPC:tools/list,tools/call,resources/list,resources/read. - MCP tools:
scenario_define,scenario_start,scenario_status,scenario_next,scenario_submit,scenario_trigger,evidence_query,runpack_export,runpack_verify,providers_list,provider_contract_get,provider_check_schema_get,schemas_list,schemas_register,schemas_get,scenarios_list,precheck,decision_gate_docs_search. - CLI commands:
serve,runpack export,runpack verify, authoring Comandaments CLI:serve,runpack export,runpack verify, autorització validar/normativitzar. - Fitxer de configuració i variable d’entorn
DECISION_GATE_CONFIG. - Proveïdors externs de MCP i punts finals HTTP.
- Built-in providers:
env,json,http,time(filesystem, environment, Proveïdors integrats:env,json,http,time(sistema de fitxers, entorn, xarxa). - External content references for packet payloads (
http://,https://, Referències de contingut extern per a càrregues útils de paquets (http://,https://,file://,inline:). - Rutes de configuració, contractes de proveïdor, comandes/URLs de proveïdor, rutes addicionals de documentació.
- Destinacions d’emmagatzematge de Runpack (directori de sortida local o emmagatzematge d’objectes).
Controls de seguretat i invariants
- Canonical JSON hashing (RFC 8785) with non-finite float rejection for specs, Hashing JSON canònic (RFC 8785) amb rebuig de flotants no finits per a especificacions, registres, paquets d’execució i hashes.
- Avaluació de tres estats amb
Unknowntractat com a no superat. - Evidence hash normalization; optional signature verification (ed25519) when Normalització del hash d’evidència; verificació de signatura opcional (ed25519) quan està configurat.
- Provider contract registry validates provider check params and allowed El registre de contractes del proveïdor valida els paràmetres de verificació del proveïdor i els comparadors permesos; la validació estricta de comparadors/tipus està activada per defecte.
- Namespace authority checks enforce tenant/namespace scoping and fail closed Les comprovacions d’autoritat de l’espai de noms imposen l’abast de l’inquilí/l’espai de noms i fallen tancades en catàlegs desconeguts o no disponibles.
- Evidence trust lanes enforced (verified by default); dev-permissive explicitly Les vies de confiança de proves s’apliquen (verificat per defecte); dev-permissive redueix explícitament la confiança a afirmada només per a proveïdors no exempts.
- Schema registry ACL enforces role/policy-class access and can require signing L’ACL del registre d’esquema aplica l’accés per rol/classe de política i pot requerir la signatura de metadades; les operacions del registre són auditades.
- Anchor policy enforcement rejects evidence missing required anchors and L’aplicació de la política d’ancoratge rebutja proves que falten ancoratges requerits i propaga els requisits d’ancoratge en la verificació del runpack.
- Size and path limits for config files, provider contracts, run state stores, Mides i límits de ruta per a fitxers de configuració, contractes de proveïdor, emmagatzematges d’estat d’execució, ingestió de documents, artefactes de runpack i claus d’emmagatzematge d’objectes.
- JSON provider enforces root-bound relative paths and emits
El proveïdor JSON imposa rutes relatives vinculades a l’arrel i emet ancoratges
file_path_rootedambroot_id+pathnormalitzat. - RET logic hard limits: DSL inputs capped at 1 MiB with nesting depth 32; serialized requirement inputs capped at 1 MiB with default max depth 32; plan execution stack depth capped at 64 frames; constant pools capped at 65.536 entrades.
- HTTP/SSE and stdio request body limits; provider-specific response size Límits de mida del cos de la sol·licitud HTTP/SSE i stdio; límits de mida de resposta específics del proveïdor i temps d’espera.
- Sol·licituds en vol amb límits i limitació de taxa opcional per a les crides d’eines MCP.
- MCP tool calls require explicit authn/authz (local-only by default; bearer or Les trucades d’eina MCP requereixen autenticació/autorització explícita (només local per defecte; llistes d’autorització de subjectes bearer o mTLS quan estiguin configurades) amb registre d’auditoria.
- Tool visibility filters list/call surfaces; docs search/resources can be La llista de filtres de visibilitat de l’eina/superfícies de trucades; la cerca de docs/recursos pot ser desactivada.
- El ganxo d’autorització del llogater (si està configurat) controla les trucades d’eines i és auditada.
- Precheck is read-only: asserted evidence validated against schemas, no run La prevalidació és només de lectura: evidència afirmada validada contra esquemes, sense mutació d’estat d’execució ni divulgacions.
- Resums segurs per a l’estat orientat al client; redacció d’evidències per política.
scenario_submit.payloadandscenario_trigger.payloadare persisted as runscenario_submit.payloadiscenario_trigger.payloades conserven com a registres d’execució i s’inclouen en els paquets d’execució; tracteu-los com a canals de dades d’auditoria no secrets.- SQLite run state uses canonical JSON + hash verification on load; runpack L’estat d’execució de SQLite utilitza JSON canònic + verificació de hash en carregar; els manifestos de runpack utilitzen hashes de fitxer + hash arrel per a la integritat.
Amenaces i Mitigacions
Autenticació, Autorització i Control d’Accés
- Unauthorized tool access: local-only defaults, bearer/mTLS modes, per-tool Accés a eines no autoritzat: valors per defecte només locals, modes bearer/mTLS, llistes d’acceptació per eina, filtres de visibilitat d’eines i registre d’auditoria.
- Tenant/namespace abuse: namespace authority checks, default namespace Abús de l’inquilí/espai de noms: comprovacions d’autoritat de l’espai de noms, denegació per defecte de l’espai de noms, ganxos d’autorització d’inquilí i ACLs del registre.
- Registry poisoning/leakage: ACL rules and optional signing metadata Enverinament/fugida del registre: requisits de regles ACL i metadades de signatura opcionals amb pistes d’auditoria.
Validació d’entrada i anàlisi
- Untrusted JSON-RPC/config inputs: strict typed decoding, comparator Entrades JSON-RPC/config no confiables: decodificació de tipus estrictes, validació de comparadors, normalització JSON canònica i límits de mida/camí.
- JSONPath/YAML parsing in
jsonprovider: root-bound relative paths (absolute Anàlisi de JSONPath/YAML en el proveïdorjson: rutes relatives vinculades a l’arrel (rutes absolutes rebutjades), comprovacions de recorregut, límits de mida i gestió d’errors estructurada. - Provider contract tampering: contract path validation and canonical hashing Manipulació del contracte del proveïdor: validació del camí del contracte i hash canònic dels payloads del contracte.
Integritat i Autenticitat de l’Evidència
- Malicious or faulty providers: trust lanes, optional signature verification, Proveïdors maliciosos o defectuosos: canals de confiança, verificació de signatures opcional, aplicació de polítiques d’ancoratge i hashing d’evidències canòniques.
- External MCP providers: response size limits, timeouts, and correlation ID Proveïdors externs de MCP: límits de mida de resposta, temps d’espera i neteja de l’ID de correlació; tractar com a processos no fiables o serveis remots.
Divulgació i Exposició de Dades
- Evidence leakage through tools: evidence redaction policies for
Filtració d’evidències a través d’eines: polítiques de redacció d’evidències per a
evidence_queryi comentaris descenario_next; resums segurs per defecte. - Sensitive data in submit/trigger payloads: payloads are intentionally durable for audit/replay; mitigated by integration policy (no raw secrets, use opaque gestors i emmagatzematges secrets externs).
- Policy bypass in dispatch: optional policy engine (
permit_all,deny_all, Bypass de política en l’enviament: motor de política opcional (permit_all,deny_all, o regles estàtiques) controla la divulgació abans de l’enviament.
Emmagatzematge i Integritat de Runpack
- Run state tampering: SQLite store verifies canonical hash on load and fails Manipulació de l’estat d’execució: la botiga SQLite verifica el hash canònic en carregar i falla tancada; les versions de l’estat d’execució són només d’append (amb poda de retenció opcional).
- Runpack tampering: verifier checks artifact hashes, root hash, and anchor policy; no built-in signing (external signing/WORM required for no-repudiació).
Proveïdors Externs, Fonts i Enviament
- Broker sources (http/file/inline) used for payload resolution: content hash verification, content type checks, size limits, no redirects (HTTP), and aplicació opcional de la ruta arrel (fitxer).
- Built-in providers: allowlists/denylists and size limits for
env, root restrictions and size limits forjson, and host allowlists + https-only valors per defecte per ahttp.
Disponibilitat i Exhaustió de Recursos
- Large requests/responses:
max_body_bytes, provider response caps, schema size limits, runpack artifact limits, and optional rate limiting/inflight limits. - Temps d’espera del proveïdor: temps d’espera del proveïdor HTTP i límits de resposta del proveïdor MCP.
Cadenes de subministrament i entorn d’execució
- External providers execute with local privileges; use OS sandboxing, scoped Els proveïdors externs s’executen amb privilegis locals; utilitzeu el sandboxing del sistema operatiu, credencials delimitades i permisos mínims.
- Provider contracts, configs, and docs extra_paths are local file inputs and Els contractes, configuracions i documents extra_paths del proveïdor són entrades de fitxers locals i han de ser protegits per ACLs del sistema de fitxers i controls d’integritat.
Multi-tenant i aïllament
- Tenant/namespace IDs are labels, not access controls: enforce authn/authz, Els IDs de llogater/namespace són etiquetes, no controls d’accés: imposeu authn/authz, ganxos d’authz del llogater i ACLs de registre en desplegaments compartits.
Auditoria i Observabilitat
- Auth decisions, registry access, tenant authz, and usage are logged with Les decisions d’autenticació, l’accés al registre, l’autorització del llogater i l’ús es registren amb esdeveniments d’auditoria estructurats; els registres de precomprovació són només hash per defecte.
Referències d’Implementació (Controls i Proteccions)
Núcleo d’Execució
- Canonical JSON hashing and non-finite float rejection:
Hashing JSON canònic i rebuig de flotants no finits:
crates/decision-gate-core/src/core/hashing.rs. - Tri-state comparator evaluation:
Avaluació del comparador de tres estats:
crates/decision-gate-core/src/runtime/comparator.rs. - Trust lane enforcement and anchor policy validation:
crates/decision-gate-core/src/runtime/engine.rs, Aplicació de la confiança en el carril i validació de la política d’ancoratge:crates/decision-gate-core/src/runtime/engine.rs,crates/decision-gate-core/src/core/evidence.rs. - Safe summaries:
Resums segurs:
crates/decision-gate-core/src/core/summary.rs. - Runpack build/verify and artifact size limits:
Limits de mida de build/verify i artefactes de Runpack:
crates/decision-gate-core/src/runtime/runpack.rs.
MCP Server i Eines
- Authn/authz, tool allowlists, bearer parsing, and auth audit:
Authn/authz, llistes d’eines permeses, anàlisi de portadors i auditoria d’autenticació:
crates/decision-gate-mcp/src/auth.rs,crates/decision-gate-config/src/config.rs. - Request limits (max body, inflight, rate limiting) and transport handling:
Límits de sol·licitud (màxim cos, en vol, limitació de taxa) i gestió del transport:
crates/decision-gate-mcp/src/server.rs,crates/decision-gate-config/src/config.rs. - Correlation ID sanitization:
Sanitització de l’ID de correlació:
crates/decision-gate-mcp/src/correlation.rs. - Tool visibility, docs gating, evidence redaction, and precheck handling:
Visibilitat de les eines, restricció de documents, redacció d’evidències i gestió de precomprovacions:
crates/decision-gate-mcp/src/tools.rs. - Audit event payloads:
Auditoria de càrregues d’esdeveniments:
crates/decision-gate-mcp/src/audit.rs. - Tenant authz and usage meter seams:
Seam d’autenticació i mesura d’ús del llogater:
crates/decision-gate-mcp/src/tenant_authz.rs,crates/decision-gate-mcp/src/usage.rs. - Provider contract validation + strict comparator validation:
Validació del contracte del proveïdor + validació estricta del comparador:
crates/decision-gate-mcp/src/capabilities.rs,crates/decision-gate-mcp/src/validation.rs. - Evidence signature verification and MCP provider response caps:
Verificació de la signatura d’evidència i límits de resposta del proveïdor MCP:
crates/decision-gate-mcp/src/evidence.rs.
Proveïdors i Corredor
- Built-in provider limits and policies:
crates/decision-gate-providers/src/env.rs,crates/decision-gate-providers/src/json.rs, Límits i polítiques dels proveïdors integrats:crates/decision-gate-providers/src/env.rs,crates/decision-gate-providers/src/json.rs,crates/decision-gate-providers/src/http.rs,crates/decision-gate-providers/src/time.rs. - Provider allow/deny policy:
Política d’autorització/denegació del proveïdor:
crates/decision-gate-providers/src/registry.rs. - Broker payload validation and source restrictions:
crates/decision-gate-broker/src/broker.rs,crates/decision-gate-broker/src/source/file.rs, Validació de la càrrega del broker i restriccions de font:crates/decision-gate-broker/src/broker.rs,crates/decision-gate-broker/src/source/file.rs,crates/decision-gate-broker/src/source/http.rs,crates/decision-gate-broker/src/source/inline.rs.
Emmagatzematge i Contractes
- SQLite run state + schema registry integrity and size limits:
Estat d’execució de SQLite + integritat del registre d’esquema i límits de mida:
crates/decision-gate-store-sqlite/src/store.rs. - In-memory stores (tests/demos only):
Magatzems en memòria (només proves/demostracions):
crates/decision-gate-core/src/runtime/store.rs. - Object-store runpack export key validation:
Validació de la clau d’exportació del runpack de l’object-store:
crates/decision-gate-mcp/src/runpack_object_store.rs. - Config file size/path validation and defaults:
Validació de la mida/cami del fitxer de configuració i valors per defecte:
crates/decision-gate-config/src/config.rs. - Canonical tool and schema contracts:
Contractes d’eines i esquemes canònics:
crates/decision-gate-contract/src/tooling.rs,crates/decision-gate-contract/src/schemas.rs. - CLI authoring/runpack tooling:
Eines d’autoria/execució de CLI:
crates/decision-gate-cli/src/main.rs.
Requisits Operatius
- Restrict MCP access to authenticated transports (mTLS, IPC ACLs, reverse Restrigeix l’accés a MCP a transports autenticats (mTLS, IPC ACLs, autenticació de proxy invers) i aplica TLS per a HTTP/SSE (o terminació explícita a l’upstream).
- Configure
server.authfor non-loopback deployments; rotate tokens and Configureserver.authper a desplegaments que no siguin de loopback; rotar tokens i mantenir llistes blanques d’eines. - Mantingueu desactivat el permís de desenvolupament en producció; requereix canals de confiança verificats.
- Require signature verification for external providers where integrity Requerir la verificació de signatures per a proveïdors externs on la integritat sigui important; gestionar la distribució de claus de manera segura.
- Configure allowlists for
env,json, andhttpproviders; avoid Configura llistes d’autorització per als proveïdorsenv,jsonihttp; evita l’accés il·limitat als fitxers. - Restrict
schemas_register,schemas_get,schemas_list,precheck, andscenarios_listto trusted callers (tool allowlists + tenant authz + registry ACLs). Restrict provider discovery tools with tool allowlists andprovider_discoveryllistes d’autorització/denegació. - Configure schema registry ACL rules and signing metadata requirements where Configureu les regles ACL del registre d’esquemes i els requisits de metadades de signatura on la procedència sigui important; protegiu l’emmagatzematge del registre.
- Limit or disable
runpack_exportfor untrusted callers; restrict output Limitar o desactivarrunpack_exportper a cridades no fiables; restringir rutes d’output i prefixos d’emmagatzematge d’objectes. - Store run state and runpacks in tamper-evident storage; sign manifests Emmagatzemar l’estat d’execució i els runpacks en un emmagatzematge que evidenciï manipulacions; signar els manifestos externament quan es requereixi no repudi.
- Aplicar un aïllament a nivell del sistema operatiu per a proveïdors externs i fonts de brokers.
- Set
server.max_body_bytes,server.limits, and provider timeouts to Estableixserver.max_body_bytes,server.limitsi els temps d’espera del proveïdor per prevenir l’esgotament de recursos. - Disable docs search/resources in untrusted environments or restrict extra Desactiva la cerca de documents/recursos en entorns no fiables o restringeix els camins addicionals a ubicacions només de lectura.
Postura de fallida
- Fallar tancat en cas d’evidència absent, invàlida o no verificable.
- Rebutjar configuracions, crides d’eines i registres d’esquema no vàlids.
- No divulgueu dades sobre resultats
Desconegutso ambigus.
Model de Amenaça Delta (2026-02-01)
- Added explicit coverage for docs search/resources, tool visibility filters, S’ha afegit cobertura explícita per a la cerca de documents/recursos, filtres de visibilitat d’eines, neteja d’ID de correlació i redacció de càrrega d’auditoria.
- Ampliació de les proteccions del corredor/font i cobertura de validació de claus d’emmagatzematge d’objectes.
- Controls de seguretat mapejats a ubicacions de codi concretes per a la traçabilitat.
- S’han afegit límits explícits de mida/profunditat d’entrada d’autoria en la normalització de contractes.
- S’ha afegit una política d’autorització/denegació d’host HTTP amb guàrdies d’IP privades/locales.
- S’obre una font de fitxer segura per a symlinks per a divulgacions de fitxers amb permisos d’arrel.