Decision Gate Docs

Avaluació de portes determinista, reproduïble amb decisions auditable.

Asset Core docs

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).
  • Visió general del repositori i postura de seguretat: README.md i SECURITY.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, apiKey nom/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 v2 with Argon2id-derived keys and AES-256-GCM at rest; legacy metadata v1 is hard-rejected. Explicit env:// resolution is development-only and gated by dev.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 Unknown tractat 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_rooted amb root_id + path normalitzat.
  • 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-Length rejection, 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.security precedence, 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; oauth2 and openIdConnect roman fora de l’abast i falla tancat.
  • Typed OpenAPI imports require an explicit credential_bindings field; 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:// and env:// 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 (identity or prefix). 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 de Retry-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.payload and scenario_trigger.payload are persisted as run scenario_submit.payload i scenario_trigger.payload es 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 json provider: root-bound relative paths (absolute Anàlisi de JSONPath/YAML en el proveïdor json: 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 rest provider: GET-only request surface, bounded responses, JSON content-type enforcement for json_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 apiKey name/in invà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-Length headers 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_query i comentaris de scenario_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 for json, and host allowlists + DNS-pinned validació entre iguals + denegació per defecte privada/link-local per a http i rest.
  • 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, bounded max_response_bytes, bounded operation_allowlist cardinality, bounded outbound inflight/retry controls, required credential_binding mapping, i rebuig de duplicats check_id en 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/Critical vulnerabilities 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.auth for non-loopback deployments; rotate tokens and Configure server.auth per 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, and rest providers; avoid accés a fitxers sense restriccions.
  • For typed providers, protect capabilities_path and runtime_profile_path artifacts 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, and scenarios_list to trusted callers (tool allowlists + tenant authz + registry ACLs). Restrict provider discovery tools with tool allowlists and provider_discovery llistes 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_export for untrusted callers; restrict output Limitar o desactivar runpack_export per 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 Estableix server.max_body_bytes, server.limits i 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 Desconeguts o 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_stats now 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-Length en 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-Length rejection 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_paths per 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 de operation_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 explicit tenant_id + namespace_id and 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_id for 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.py for 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.