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.
- Typed runtime auth descriptors (
scheme_name,credential_binding, apiKeynom/ubicació) incrustats en perfils d’execució. - 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.
- Typed credential resolver backends (default local encrypted secret store in
OSS; enterprise backends via seam) are external trust boundaries for secret
material. OSS local secret storage is metadata
v2with Argon2id-derived keys and AES-256-GCM at rest; legacy metadatav1is hard-rejected. Explicitenv://resolution is development-only and gated bydev.allow_dev_env_credentials. - 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 validate/normalize, and secret-store administration (secrets init,secrets put --from-env,secrets import --env-file --map,secrets list,secrets remove,secrets doctor). - Fitxer de configuració i variable d’entorn
DECISION_GATE_CONFIG. - Proveïdors externs de MCP i punts finals HTTP.
- Typed provider artifacts (
capabilities_path,runtime_profile_path) loaded des del disc local. - Built-in providers:
env,json,http,rest,time(filesystem, environment, 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 request body limits, stdio framing header limits (8 KiB cumulative),
fail-closed duplicate
Content-Lengthrejection, provider-specific response limits de mida, i temps d’espera del proveïdor. - Typed runtime profiles enforce deterministic digest validation before provider activació i fallada tancada en contingut de perfil no coincident.
- Typed OpenAPI import enforces operation-effective security resolution
(
operation.securityprecedence, explicit unauthenticated alternatives) and rebutja formes de requisits de seguretat no suportades/ambigües que fallen tancades. - Typed OpenAPI projection metadata (
x-decision-gate.projections) is treated as untrusted input: importer enforces deterministic id uniqueness, RFC6901 pointer validity, schema validity, and fail-closed rejection for JSON respostes object/array complexes que falten projeccions requerides. - Typed runtime auth is operation-scoped and explicit: only
bearer/basic/apiKey(header|query|cookie)are supported;oauth2andopenIdConnectroman fora de l’abast i falla tancat. - Typed OpenAPI imports require an explicit
credential_bindingsfield; omitted fields and missing secured-scheme mappings are rejected before import/runtime execució. - Each secured credential binding requires explicit wire render metadata
(
value_render), evitant el desplaçament implícit del format d’autenticació. - Credential locator parsing is fail-closed at import/register/runtime
boundaries: only
secret://andenv://schemes are accepted; bare env els noms i els esquemes desconeguts són rebutjats. - Runtime auth credential values are stored as raw secrets and rendered
deterministically at use-time (
identityorprefix). Preformatted-prefix les col·lisions es rebutgen amb errors de remediació de secret brut. secret://paths enforce anti-traversal and bounded syntax (./..rejected, max path length 256 chars, max 8 segments, max segment longitud 64,[A-Za-z0-9_.-]segment charset).- Typed runtime outbound controls enforce per-provider inflight caps and bounded
política de reintents per a timeout/
429/503, incloent l’ús limitat deRetry-After. - 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.
- Debug mutation diagnostics endpoint (
/debug/mutation_stats) is protected by the same auth model as MCP tool calls and fails closed (401/403) on sol·licituds no autenticades/no autoritzades. - 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 allowlists, tool visibility filters, auth-gated debug diagnostics endpoints, 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. - JSONPath/header extraction in
restprovider: GET-only request surface, bounded responses, JSON content-type enforcement forjson_path, strict validació de l’encapçalament de la sol·licitud i rebuig de la substitució de l’encapçalament d’autenticació. - 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.
- Typed provider artifact tampering: config validation requires typed artifact paths/protocol metadata and runtime loading verifies canonical profile digest integritat abans de l’execució.
- Typed runtime request-binding abuse: path bindings are percent-encoded before template substitution, typed header bindings reject reserved/auth-owned names, i els límits de seguretat en temps d’execució imposen sostres de temps d’espera/tamany de resposta.
- Typed OpenAPI security-shape abuse: importer rejects multi-scheme AND
requirements, missing security scheme refs, malformed security requirement
objectes/àmbits, i
apiKeyname/ininvàlids/faltants. - Typed OpenAPI projection abuse: importer rejects malformed projection arrays, duplicate projection ids, invalid RFC6901 pointers, and invalid projection esquemes; les fallades d’extracció de punters JSON en temps d’execució romanen tancades per defecte.
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
sanitization. Stdio framing headers are size-capped and duplicate
Content-Lengthheaders are rejected before payload parsing; treat providers com a processos no fiables o serveis remots. - Typed runtime providers: profile/source digests are bound into runtime execution and evidence anchors; tampered runtime profile artifacts are rebutjat abans que s’executin les comprovacions.
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), broker-owned transport policy (no caller-injected HTTP client overrides), and optional root aplicació de ruta (fitxer).
- Built-in providers: allowlists/denylists and size limits for
env, root restrictions and size limits forjson, and host allowlists + DNS-pinned validació entre iguals + denegació per defecte privada/link-local per ahttpirest. - Typed OpenAPI HTTP providers: runtime execution reuses hardened HTTP controls (DNS pinning, redirect rejection, status/content-type validation, bounded la resposta llegeix) amb ancoratges tipats deterministes.
- Typed import + lifecycle tooling enforces bounded
timeout_ms, boundedmax_response_bytes, boundedoperation_allowlistcardinality, bounded outbound inflight/retry controls, requiredcredential_bindingmapping, i rebuig de duplicatscheck_iden perfils de contractes/runtime amb fallada tancada.
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.
- Typed outbound retry bursts: bounded attempts/backoff and per-provider les tapes de vol externes mitiguen les tempestes de reintents i l’amplificació de difusió.
Cadenes de subministrament i entorn d’execució
- Release workflows enforce full artifact supply-chain evidence generation and verificació abans de l’eligibilitat de l’alliberament o la publicació pot procedir.
- Every release subject requires SBOM coverage, provenance, and signature verificació; la cobertura que falta és un error greu.
- Keyless OIDC signing (
cosign) is required in CI with certificate issuer and verificació identity-regexp. - Vulnerability policy is fail-closed: block
High/Criticalvulnerabilities més qualsevol CVE en el feed de Vulnerabilitats Exploidades Conegudes de CISA. - Supply-chain evidence artifacts are retained with release artifacts for audit i verificació fora de línia.
- 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. - Stdio framing header size enforcement for server and provider transports:
crates/decision-gate-mcp/src/server.rs,crates/decision-gate-mcp/src/evidence.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:
crates/decision-gate-mcp/src/tools/router.rs. - Deterministic docs ingestion with bounded extra-doc budgets:
crates/decision-gate-mcp/src/docs.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, external MCP provider response caps, and
typed provider runtime-profile loading:
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,crates/decision-gate-providers/src/http.rs,crates/decision-gate-providers/src/rest.rs,crates/decision-gate-providers/src/time.rs. - Typed provider runtime execution and profile digest enforcement:
crates/decision-gate-providers/src/typed.rs. - Provider allow/deny policy:
Política d’autorització/denegació del proveïdor:
crates/decision-gate-providers/src/registry.rs. - Typed import/adaptation/codegen pipeline:
crates/decision-gate-typed/src/lib.rs,crates/decision-gate-typed/src/adapter_openapi.rs,crates/decision-gate-typed/src/adapter_protobuf.rs,crates/decision-gate-typed/src/capability_codegen.rs,crates/decision-gate-typed/src/runtime_codegen.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. - Contract output generation and verification with descriptor-relative no-follow
file operations:
crates/decision-gate-contract/src/contract.rs. - CLI authoring/runpack tooling:
Eines d’autoria/execució de CLI:
crates/decision-gate-cli/src/main.rs.
Lliberació CI Supply Chain
- Supply-chain artifact generation and evidence contract emission:
scripts/ci/supply_chain_generate.sh,Docs/generated/supply_chain/supply_chain_evidence.schema.json. - Supply-chain verification hard gates:
scripts/ci/supply_chain_verify.sh,scripts/ci/vuln_policy_gate.py. - Release and publish workflow enforcement:
.github/workflows/release.yml,.github/workflows/publish.yml.
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,http, andrestproviders; avoid accés a fitxers sense restriccions. - For typed providers, protect
capabilities_pathandruntime_profile_pathartifacts with filesystem ACLs and integrity controls; treat these files as entrada no confiable fins que la verificació del resum sigui exitosa. - 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.
Model de Amenaça Delta (2026-02-14)
- Tightened debug diagnostics boundary:
/debug/mutation_statsnow follows MCP semàntica d’autenticació i falla tancada per a trucades no autoritzades. - Added end-to-end auth/schema coverage for debug mutation diagnostics to keep el contracte auditable i determinista sota la regressió de seguretat.
Model de Ameaça Delta (2026-02-15)
- Added explicit coverage for CLI stdio MCP framing header limits and
rebuig duplicat de
Content-Lengthen escenaris de transport hostils. - Added MCP server and external provider framing-header caps (8 KiB cumulative) per tancar els camins d’explotació de recursos abans de l’anàlisi.
- Added fail-closed duplicate
Content-Lengthrejection for MCP stdio framing tant en adaptadors de transport de servidor com en adaptadors de transport de proveïdor extern. - Added deterministic, bounded docs ingestion references for
docs.extra_pathsper reduir la no determinació del recorregut i el risc d’amplificació d’inici. - Added built-in HTTP provider DNS resolution pinning and default private / denegació de destinació local de l’enllaç per tancar camins de bypass SSRF només amb nom d’amfitrió.
- Added descriptor-relative no-follow file operations and atomic sibling-temp writes for contract artifact generation/verification to reduce TOCTOU risk sota una mutació concurrent del sistema de fitxers local.
Model de Ameaça Delta (2026-02-17)
- Added built-in REST provider attack-surface coverage for GET-only external
Extracció d’evidències de l’API (
json_path,header) sense adaptadors MCP externs. - Added REST-specific header hygiene controls, including reserved-header rebuig i denegació de la substitució de capçalera gestionada per l’autenticació.
- Extended provider hardening references to include REST provider DNS pinning,
private/link-local deny-by-default, JSON content-type gating for
json_path, i gestió de respostes limitades. - Added typed provider boundary coverage for local capability/runtime artifacts i validació del resum del perfil de temps d’execució de tipus fail-closed.
- Added typed OpenAPI runtime attack-surface coverage for profile-driven request vinculació, validació estricta de respostes i ancoratges tipats deterministes.
- Added typed runtime header-reservation and auth-header ownership enforcement més codificació de paràmetres de ruta segura per bloquejar la injecció de delimitadors.
- Added typed import/runtime hard limits (
timeout_ms,max_response_bytes, i la longitud deoperation_allowlist) amb validació de tancament en fallada. - Mapped typed import/codegen/runtime protections to OSS implementation files per a la revisió de seguretat traçable.
Model de Ameaça Delta (2026-02-19)
- Hardened typed lifecycle tool boundaries: all
typed_providers_*mutations now require explicittenant_id+namespace_idand pass scoped context a través d’autenticació, autoritat de l’espai de noms i ganxos de mesura d’ús. - Extended tenant-authz request context with optional
provider_idfor provider-scoped tool calls (typed_providers_*,evidence_query) so l’RBAC empresarial pot fer complir la política a nivell de proveïdor a la costura. - Added scoped typed runtime resolution seam (
TypedProfileResolver) keyed by(tenant_id, namespace_id, provider_id)to prevent cross-scope profile selecció quan l’estat del cicle de vida comparteix identificadors de proveïdor. - Resolver invocation now snapshots the configured typed resolver before calling it, avoiding lock-held resolver execution and reducing deadlock/DoS riscs de les implementacions de resolutors re-entrant.
- Added REST runtime policy hook seam (
RestPolicyEvaluator) for fail-closed decisions de denegació pre-xarxa sobre l’ús d’amfitrions/esquema d’egress i esquema d’autenticació. - Added deterministic REST policy deny-code coverage in provider tests to keep vocabulari d’aplicació/auditoria estable a través d’integracions.
- Updated release supply-chain posture to implemented state: complete artifact-level SBOM/provenance/signature verification with keyless OIDC signatura i portes de política de vulnerabilitat greu (Alt/Critical + KEV).
- Added release CI implementation references for supply-chain generation, verificació i aplicació del flux de treball.
Model de Ameaça Delta (2026-02-20)
- Added CI workflow hardening policy enforcement via
scripts/ci/workflow_hardening_check.pyfor immutable full-SHA action fixació i rebuig tancat per fallada de patrons mutables d’instal·ladors pipe-to-shell. - Added explicit self-hosted PR trust-boundary policy: any pull-request workflow
job using self-hosted runners must enforce same-repo guards
(
head.repo.full_name == github.repository). - Reduced default workflow token scope for release/publish and constrained OIDC escriure l’ús per alliberar/publicar feines que signen/verifiquen proves de la cadena de subministrament.
- Tightened keyless signature verification scope in release/publish by binding certificat d’identitat regexp al repositori + ruta de flux de treball + etiquetes refs.