Reservar cita

Agentic AI Security Testing: La evidencia que hace verificables a los agentes de IA

Un trace compartido solo demuestra que unos eventos están relacionados entre sí. No muestra si un agente de IA ha respetado la aprobación, el destino, la autorización y la procedencia de los datos. Nuestro artículo, aceptado en la ICSPIS 2026 (IEEE), muestra qué telemetría se necesita para ello. Esta página traslada los resultados al OWASP Agent Control Standard (ACS).

Actualizado: octubre de 2026 · Valeri Milke, Lead Auditor ISO 27001 e ISO 42001

Accepted version con aviso de copyright de IEEE

92,9 %Recall de seguridad del perfil threat-guided P3 en las siete condiciones de telemetría: con un 100 % de precisión y un 0 % de falsos positivos en casos benignos
16,7 %Recall con correlación puramente causal (P2), aunque el 85,7 % de los efectos se atribuyó de forma unívoca. Atribución y evaluación de seguridad son requisitos distintos
50 %Recall de P3 cuando faltan todos los eventos de decisión (F1). Las comprobaciones de aprobación, alcance y destino pierden su punto de comparación
3024Celdas perfil-fallo-trace: 36 plantillas de workflow sintéticas × 3 repeticiones deterministas × 4 perfiles de evidencia × 7 condiciones de telemetría

Las aplicaciones agénticas conectan decisiones del modelo con herramientas que leen datos, delegan trabajo y modifican sistemas externos. Por ello, un incidente de seguridad abarca desde el contenido ingerido, pasando por la planificación, la aprobación y la llamada a la herramienta, hasta el efecto en el sistema de destino. En el artículo “Threat-Model-Guided Security Testing for Agentic AI: MCP Traces with MAESTRO and STRIDE”, Valeri Milke deriva de MAESTRO y STRIDE un Evidence Contract para flujos de trabajo con Model Context Protocol. Se puso a prueba con 3024 celdas de perfil, fallo y trace. El resultado central: los identificadores causales de trace mejoran la atribución, pero no aportan la semántica necesaria para evaluar la autorización o la procedencia. Solo las vinculaciones relevantes para la seguridad elevan el recall del 16,7 % al 92,9 %. El OWASP Agent Control Standard (ACS) ofrece para ello una especificación abierta: v0.1.0, release 0.1.2, descrita por su Project Lead como «public preview» y proyecto del OWASP GenAI Security Project desde septiembre de 2026. Aporta hooks, dispositions, provenance y mappings de trace. Mostramos campo por campo cómo encajan ambos. También mostramos dónde presenta todavía lagunas ACS v0.1 y cómo puede usted construir a partir de ellas pruebas de seguridad sólidas para sus agentes.

De un vistazo

Los resultados en cinco frases

En resumen: para que la seguridad de un agente de IA pueda ponerse a prueba, la telemetría debe respaldar cada etapa, desde la entrada, pasando por la decisión de política y la llamada a la herramienta, hasta el efecto observado, con hechos comparables. Los IDs de correlación por sí solos no bastan. El OWASP Agent Control Standard aporta para ello hooks, provenance y mappings de trace. Los Decision Receipts y la evidencia de efectos independiente deben completarlos los operadores.

  1. 92,9 %Las vinculaciones semánticas decidenEl perfil threat-guided P3 alcanzó, en todas las condiciones de telemetría, un 92,9 % de recall con un 100 % de precisión y un 0 % de falsos positivos. La correlación puramente causal llegó al 16,7 %.
  2. 85,7 %La atribución no es evaluaciónP2 y P3 atribuyeron de forma unívoca el mismo número de efectos. Solo P3 pudo valorar si se respetaron la aprobación, el scope, la procedencia y el destino.
  3. 50 %Los Decision Receipts son críticosSin eventos de decisión, el recall de P3 cayó a la mitad. La reconstrucción y la atribución cayeron al 0 %. En ACS, según nuestra interpretación, esto corresponde a un Guardian fail-open sin comprobante de decisión.
  4. +255 %La evidencia tiene su precioP3 generó una mediana de 2341 bytes de JSON canónico por workflow, frente a 659 bytes de logs fragmentados. Por ello, conviene introducir primero receipts completos para las operaciones privilegiadas.
  5. 6Seis familias, un límite claro de la conclusiónEl experimento prueba la fuerza probatoria de fixtures deterministas de tipo MCP. No es un benchmark de LLM ni de prompt injection. El siguiente paso es un SDK de MCP real.

Del modelo de amenazas al estándar de control

Los pilares sobre los que se asientan el artículo y ACS, y lo que viene a continuación. Abra un hito para ver los detalles.

Conceptos clave del artículo y del estándar

Abra una tarjeta para leer el concepto en detalle. El orden sigue el del artículo: de la pregunta de partida, pasando por el Evidence Contract, hasta los costes y la operación.

Cuatro perfiles de evidencia y lo que realmente demuestra cada uno

Los perfiles se construyen unos sobre otros. Cada nivel añade campos. Las tasas se refieren a las siete condiciones de telemetría (Tabla II del artículo); los valores en bytes son medianas bajo F0.

Recall 84,5 % · Falsos positivos 85,7 %
  • Solo IDs y marcas de tiempo locales a cada componente. La reconstrucción atribuye un efecto a la herramienta más cercana en el tiempo.
  • Atribución unívoca 0 %: los workflows paralelos de la misma familia se fusionan en cadenas falsas.
  • El recall aparentemente alto no es un rendimiento de seguridad. Las cadenas fusionadas erróneamente disparan la alarma en el 85,7 % de los casos benignos y la precisión cae al 66,4 %.
sin ACSheurística temporalsolo el recuento de duplicados es fiable
Interactivo · Trace Replay

Evidence Contract × ACS: comprobar la ruta de un agente etapa por etapa

Elija una familia de ataque del artículo, el perfil de evidencia y, opcionalmente, el fallo F1. Los nombres de campo y los valores proceden del experimento; las reglas de comprobación son las mismas que las del evaluador. Marcada en rojo aparece la etapa en la que la evidencia demuestra primero la violación.

Escenario
Perfil de evidencia

La aprobación era para mail.send con determinados argumentos. Se ejecuta el mismo nombre de herramienta con los argumentos sustituidos. El digest de argumentos difiere.

pInput

Prompt o registro recuperado con procedencia, operación solicitada, scope y destino previsto.

trace_id
"4bf92f3577b34da6a3ce929d0e0e4736"
span_id
"00f067aa0ba902b7"
parent_span_id
null
action_id
"act-9c41e2d07a"
source_trust
"trusted"
requested_operation
"read"
requested_scope
"kb.read"
principal_id
"principal-vamisec"
memory_trust
"trusted"
memory_age_s
30
intended_target
"tenant-a/resource-17"
Equivalente en ACS v0.1
Hook / Fuente
steps/userMessage · steps/knowledgeRetrieval · steps/memoryContextRetrieval
Campos
Provenance { origin, source_id, derived_from }
OpenTelemetry
acs.message.user · acs.knowledge.retrieval · acs.memory.retrieval + acs.provenance.origin
OCSF
6002 Application Lifecycle (ACS: Application Activity) · 6005 Datastore Activity + acs_provenance_origin
dDecision

Decisión de política explícita: ¿quién ha aprobado qué, con qué, hacia dónde y con qué capabilities?

trace_id
"4bf92f3577b34da6a3ce929d0e0e4736"
span_id
"a1b2c3d4e5f60718"
parent_span_id
"00f067aa0ba902b7"
action_id
"act-9c41e2d07a"
decision
"allow"
approval_id
"apr-7f3c2a91d0be"
approval_subject
"principal-vamisec"
approved_tool
"mail.send"
approved_args_hash
"a3f9e0…c21e"
approved_target
"recipient:security@example.org"
approved_audience
"mcp://server-a"
approved_capabilities
["mail.send"]
max_delegation_depth
1
idempotency_required
true
Equivalente en ACS v0.1
Hook / Fuente
AcsResult (response envelope) · policy_data
Campos
decision · reasoning · reason_codes · policy_references · cited_provenance_ids · ask_details · chain_hash
OpenTelemetry
span event acs.decision (acs.decision, acs.evaluator)
OCSF
2004 Detection Finding (deny · modify · ask · defer)
tTool

Llamada a una herramienta MCP que repite los valores realmente ejecutados, en lugar de limitarse a remitir a la decisión.

trace_id
"4bf92f3577b34da6a3ce929d0e0e4736"
span_id
"b7ad6b7169203331"
parent_span_id
"a1b2c3d4e5f60718"
action_id
"act-9c41e2d07a"
approval_id
"apr-7f3c2a91d0be"
approval_subject
"principal-vamisec"
tool_name
"mail.send"
args_hash
"9d02b7…e4f8"
target
"recipient:security@example.org"
audience
"mcp://server-a"
effective_capabilities
["mail.send"]
delegation_depth
1
idempotency_key
"idem-5be04d1c"
Equivalente en ACS v0.1
Hook / Fuente
steps/toolCallRequest · steps/subagentStart
Campos
tool · operation · capability · arguments[].provenance · intent
OpenTelemetry
gen_ai.tool.call (ACS span · gen_ai.tool.name, acs.capability)
OCSF
1007 Process Activity
eEffect

Efecto observado de forma independiente en el sistema de destino, con destino, digest, aprobación y clave de idempotencia.

trace_id
"4bf92f3577b34da6a3ce929d0e0e4736"
span_id
"5f1e0c2b9d8a7e64"
parent_span_id
"b7ad6b7169203331"
action_id
"act-9c41e2d07a"
tool_name
"mail.send"
args_hash
"9d02b7…e4f8"
target
"recipient:security@example.org"
audience
"mcp://server-a"
approval_id
"apr-7f3c2a91d0be"
idempotency_key
"idem-5be04d1c"
Equivalente en ACS v0.1
Hook / Fuente
steps/toolCallResult + effect sink
Campos
exit_status · request_id_ref (ACS) · observed target, digest, idempotency key (sink)
OpenTelemetry
gen_ai.tool.result (ACS span · gen_ai.tool.name, acs.exit_status)
OCSF
1007 Process Activity
Invariante vulneradaRegla: Vinculación de la aprobación · Primera etapa: t (Tool)P3: todas las vinculaciones threat-guided. Las invariantes se pueden comprobar.

Representación esquemática. En ACS, los campos del contract se encuentran en parte en el payload del hook (Input: Provenance; Tool: tool, arguments, capability), las vinculaciones en policy_data del response envelope (Decision) o en un sumidero de efectos independiente (Effect). El Guardian deriva la confianza en la fuente de origin/source_id; no es un campo del esquema v0.1. Valores como example.org son marcadores de posición.

Interactivo · datos de medición reales

Matriz de fallos: dónde se sostiene la detección y dónde se rompe

Cuatro perfiles de evidencia × siete condiciones de telemetría, con 108 instancias de workflow por celda. Elija una métrica y haga clic en una celda para ver los resultados por familia de ataque. Todos los valores proceden de la ejecución reproducible del artículo.

Métrica
Matriz de fallos: dónde se sostiene la detección y dónde se rompe — Recall de seguridad
ProfilF0sin modificarF1sin decisionF2trace splitF3sin parent de efectoF4desfase temporalF5efecto duplicadoF6intercambio de Action-ID
P0Logs locales
P1+ Trace-ID
P2+ Span/Parent/Action
P3+ Security Bindings
Celda seleccionada

P3 + Security Bindings × F1 sin decision

Todos los eventos de decisión eliminados. En ACS, aproximadamente un Guardian inaccesible con la failure posture proceed, eventos acs.decision muestreados o un sumidero de trace caído (Trace es best-effort y nunca bloquea la aplicación).

50 %Recall de seguridad
0 %Atribución unívoca
0 %Reconstrucción exacta
0 %Tasa de falsos positivos
100 %Precisión
50 %Regla correcta

Casos inseguros por familia de ataque

  • Authority Inversion
  • Approval Replay
  • Scope Amplification
  • Memory Substitution
  • Target Redirection
  • Duplicate Effect

detectados (12) Falsos positivos en gemelos benignos (6)

Interpretación

La debilidad residual dominante: sin evento de decisión siguen siendo detectables la autoridad de la fuente, la memoria y los duplicados. Las comprobaciones de aprobación, scope y destino pierden su punto de comparación.

Corpus sintético y determinista con 36 plantillas × 3 repeticiones. Las tasas solo son válidas para las seis familias codificadas. Los intervalos de confianza serían engañosos, porque las repeticiones solo varían los IDs y el jitter.

Mapping

Crosswalk de ACS: familia de ataque → predicado → hook → reacción del Guardian

Para cada una de las seis familias del artículo: qué evidencia demuestra la violación, dónde la registra ACS y cómo debería reaccionar un Guardian. MAESTRO, STRIDE y OWASP ASI sirven para contextualizar.

Familia de ataquePredicado de evidenciaMAESTRO · STRIDE · OWASPHook y campos de ACSReacción del GuardianPrimera etapa
Authority InversionProcedencia no fiable Y operación solicitada de escrituraL2 Data Operations · L3 Agent FrameworksSpoofing · Elevation of PrivilegeASI01steps/knowledgeRetrieval → Provenance.origin; steps/toolCallRequest.capabilitydeny, o ask con un aprobador humano; reason code untrusted_into_consequentialp
Approval Replay / sustitución de argumentosID de aprobación, sujeto, herramienta o digest de argumentos en la llamada ≠ valores aprobadosL3 Agent Frameworks · L6 Security & ComplianceTampering · RepudiationASI02 · ASI09AcsResult.policy_data ↔ steps/toolCallRequest.argumentsdeny; tras un modify, volver a vincular el receipt a los valores reescritost
Delegation Scope AmplificationCapabilities efectivas ⊄ conjunto aprobado O profundidad de delegación > límiteL3 Agent Frameworks · L7 Agent EcosystemElevation of PrivilegeASI03steps/subagentStart · steps/toolCallRequest.capabilitymodify (atenuar las capabilities) o denyt
Memory Provenance SubstitutionMemoria no fiable o caducada Y destino ≠ destino previstoL2 Data OperationsTampering · SpoofingASI06steps/memoryContextRetrieval → Provenance.derived_fromdeny; entrada de memoria en cuarentenat
Post-Decision Target RedirectionDestino aprobado ≠ destino ejecutadoL3 Agent Frameworks · L4 Deployment & InfrastructureTampering · Information DisclosureASI02steps/toolCallRequest.arguments (target) ↔ policy_datadeny; normalizar el destino antes de la comparación (resolución de alias)t
Duplicate Effect under RetryMás de un efecto por aprobación (evaluador del artículo); adicionalmente, clave de idempotencia ausente o rotadaL4 Deployment & Infrastructure · L5 Evaluation & ObservabilityRepudiation · TamperingASI08steps/toolCallResult + effect sink (idempotency key)Exigir idempotencia; el sumidero de efectos notifica el duplicado como findinge

La asignación a MAESTRO, STRIDE y OWASP ASI, así como las reacciones recomendadas del Guardian, son interpretaciones de VamiSec basadas en el artículo. Los nombres de hooks y campos se corresponden con los ACS Schemas v0.1.0. El reason code untrusted_into_consequential figura allí como categoría de ejemplo.

Interactivo · Threat-to-Assertion

Test compiler: convertir una amenaza en una invariante comprobable

El artículo traduce cada hipótesis MAESTRO/STRIDE en la tupla H = (boundary, precondition, invariant, evidence, oracle). Elija uno de los cinco grupos de invariantes. El compiler muestra la tupla y dos esquemas: una política del Guardian sobre entradas de ACS y una prueba negativa para CI.

Hipótesis H = (boundary, precondition, invariant, evidence, oracle)
Límite
Decision → Tool
Precondición
Existe una aprobación (allow o ask con consentimiento).
Invariante
El ID de aprobación, el sujeto, la herramienta y el digest de argumentos de la llamada coinciden exactamente con los valores aprobados.
Evidencia
Decision Receipt en policy_data, eco de la herramienta en el steps/toolCallRequest
Oráculo
Alarma ante cualquier desviación de uno de los cuatro campos. Primera etapa: t
package acs.guardian.approval_binding

# Sketch: an approval is valid only for the exact call it approved.
# data.receipts holds the bound values the Guardian wrote into policy_data.
receipt := data.receipts[input.params.metadata.session_id][input.params.payload.tool.name]

# Digest over argument values only (provenance labels excluded).
values := {k: v.value | some k, v in input.params.payload.arguments}

exercised := {
  "args_hash": crypto.sha256(json.marshal(values)),
  "target": input.params.payload.arguments.target.value,
  "principal": input.params.metadata.user_context.user_id,
}

decision := {
  "decision": "deny",
  "reasoning": "Call does not match the bound approval",
  "reason_codes": ["approval_binding_mismatch"],
} if {
  input.method == "steps/toolCallRequest"
  some field in ["args_hash", "target", "principal"]
  exercised[field] != receipt[field]
}

Esquemas ilustrativos, no normativos. Rutas como input.params.payload siguen el ACS Request Envelope v0.1.0; los campos de policy_data son las vinculaciones del Evidence Contract.

Calculadora

Presupuesto de evidencia: qué implica el Evidence Contract en almacenamiento

La base son los bytes medianos por workflow del artículo. La calculadora muestra el volumen de JSON canónico por perfil y la priorización del artículo (receipts completos para las operaciones privilegiadas) y, como supuesto de VamiSec, tracing causal para el resto. Allí, sin embargo, desaparece la detección semántica.

Conservación
Volumen durante el período de conservación
  • P024 GB
  • P131 GB
  • P245 GB
  • P385 GB
Mezcla recomendada53 GBP3 para workflows privilegiados, P2 para el resto · 146 MB por día

Indicador del volumen de serialización: JSON canónico sin transport envelopes, compresión, indexación, replicación ni controles de protección de datos. No es una medición en producción (artículo §V-C).

Deep Dive · 10 capítulos

Del artículo a la práctica: pruebas de agentes con Evidence Contract y ACS

Problema, modelo de amenazas, Evidence Contract, el OWASP Agent Control Standard, el mapping entre ambos, diseño experimental, resultados, costes, un playbook práctico y los límites de la conclusión. Las cifras proceden del artículo aceptado en la ICSPIS 2026; los datos de ACS, de la especificación v0.1.0.

01Capítulo 1

Por qué las pruebas de agentes necesitan evidencia

Los agentes de IA que usan herramientas cruzan límites de confianza antes de que una operación elegida por el modelo se convierta en un efecto externo. Justamente ahí falta la evidencia en la mayoría de los entornos.

En el Model Context Protocol (MCP), un host crea un cliente por cada servidor. El host debe hacer cumplir la autorización, el consentimiento y los límites de seguridad. Las herramientas se descubren e invocan mediante operaciones de protocolo estructuradas. Sus descripciones y anotaciones pueden influir en el comportamiento del modelo y no son fiables per se. Por ello, un incidente se extiende desde la ingesta de contenidos, pasando por la planificación, la aprobación y la llamada a la herramienta, hasta el efecto remoto. No se queda en una única llamada al modelo.

De esta arquitectura se derivan tres transiciones observables: host→cliente, cliente→servidor y servidor→efecto. Un trace que termina con una respuesta correcta de la herramienta puede aun así pasar por alto si se produjo una escritura externa, si se ejecutó dos veces o si alcanzó otro destino. Los logs habituales de los componentes o un identificador de trace compartido rara vez registran si la aprobación coincidía, en el momento de la ejecución, con el principal, los argumentos, el destino y la autoridad delegada.

Tres preguntas de investigación

  • RQ1: ¿Qué perfiles de evidencia reconstruyen un efecto bajo fallos de telemetría controlados y lo atribuyen de forma unívoca?
  • RQ2: ¿Mejoran las vinculaciones semánticas derivadas de amenazas la detección de seguridad más allá de la mera correlación?
  • RQ3: ¿Qué cuesta la evidencia y qué modos de fallo persisten?

La contribución tiene tres partes: un Evidence Contract de cuatro etapas que traslada los hallazgos de MAESTRO y STRIDE a campos de runtime; un corpus determinista de fault injection con seis familias de ataque, variantes benignas muy próximas y un ledger de ground truth que el reconstructor nunca ve; y una comparación de perfiles fragmentados, correlacionados, causales y threat-guided sobre 3024 celdas.

02Capítulo 2

MAESTRO × STRIDE: del modelo de amenazas a la hipótesis de prueba

El threat modeling encuentra transiciones peligrosas. Una prueba operativa necesita además evidencia que conecte la transición con lo que realmente ocurrió.

MAESTRO organiza las amenazas en siete capas que interactúan de un sistema agéntico y subraya los efectos entre capas. Las capas van desde los Foundation Models, pasando por las operaciones de datos, los frameworks de agentes, la infraestructura de despliegue, la evaluación y la observabilidad, y la seguridad y el cumplimiento, hasta el ecosistema de agentes. STRIDE aporta seis categorías de propiedades: Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service y Elevation of Privilege.

El artículo utiliza ambos frameworks para seleccionar escenarios relevantes para los límites. No pretende una validación empírica de los frameworks. El OWASP Top 10 for Agentic Applications 2026 sirve como contraste del vocabulario. Sus riesgos, entre ellos ASI01 Agent Goal Hijack, ASI02 Tool Misuse and Exploitation, ASI03 Identity and Privilege Abuse, ASI06 Memory & Context Poisoning y ASI08 Cascading Failures, se consideran allí problemas a nivel de sistema.

Familia de ataqueLímite comprobadoPregunta de STRIDERelación con OWASP Agentic
Authority Inversion (untrusted source)Confianza en la fuente en la entradaSpoofing, Elevation of PrivilegeASI01 Agent Goal Hijack
Approval Replay / sustitución de argumentosVinculación decisión ↔ llamadaTampering, RepudiationASI02 Tool Misuse and Exploitation, ASI09 Human-Agent Trust Exploitation
Delegation Scope AmplificationAutoridad delegadaElevation of PrivilegeASI03 Identity and Privilege Abuse
Memory Provenance SubstitutionProcedencia y coherencia de destinoTampering, SpoofingASI06 Memory & Context Poisoning
Post-Decision Target RedirectionDestino aprobadoTampering, Information DisclosureASI02 Tool Misuse and Exploitation
Duplicate Effect under RetryCardinalidad de ejecuciónRepudiation, TamperingASI08 Cascading Failures

La selección está organizada con una finalidad concreta según predicados de evidencia en los cuatro límites del contract, y no según la frecuencia de los ataques. La correspondencia con STRIDE y OWASP ASI es una interpretación de VamiSec basada en el artículo y no una cobertura completa de los frameworks.

03Capítulo 3

El Evidence Contract: cuatro etapas que se respaldan mutuamente

La unidad observable es la ruta P = (p, d, t, e). Solo adquiere relevancia para la seguridad cuando las etapas contiguas repiten los mismos hechos y, con ello, se vuelven comparables.

Cada evento lleva un ID de evento inmutable, componente, etapa, versión de esquema y marca de tiempo. Los campos de correlación añaden IDs de trace, span, parent y acción. Los campos threat-guided vinculan hechos cuya igualdad u orden aplica un oráculo de prueba. Lo decisivo es que el evento de la herramienta repita los valores ejecutados, en lugar de limitarse a apuntar a la decisión. Solo la comparación de etapas contiguas hace visibles las sustituciones que permanecen invisibles en traces de mera correlación.

EtapaCampos registrados (artículo §III-A)
p · InputConfianza en la fuente, operación y scope solicitados, destino previsto, memory provenance
d · Decisionallow/deny, principal, ID de aprobación, herramienta aprobada, digest de argumentos, destino, audience, capability set, límite de profundidad de delegación, requisito de idempotencia
t · ToolRepetición de los valores realmente ejecutados: herramienta, argumentos o digest, destino, capabilities, delegación
e · EffectDestino observado, digest de la operación, audience, aprobación, clave de idempotencia

Lo que el contract deliberadamente no registra

Ningún perfil registra chain-of-thought oculta. La evidencia de decisión se limita a resultados de política explícitos, reason codes concisos, atributos aprobados y hashes adecuados para pruebas controladas. No es necesario almacenar contenidos sensibles de prompts ni el reasoning del modelo. Las etiquetas de provenance, los identificadores estables y los keyed digests bastan para las pruebas y reducen la exposición.

04Capítulo 4

El OWASP Agent Control Standard (ACS) en diez minutos

ACS es una especificación de wire abierta. Con ella, un Guardian Agent puede revisar las acciones de un agente de IA antes de su ejecución y permitirlas, bloquearlas, reescribirlas, someterlas a aprobación o aplazarlas (allow, deny, modify, ask, defer), mediante envelopes firmados (ACS-Core los exige; la implementación de referencia, una prueba de concepto, aún no lo aplica) y con audit trail.

Desde septiembre de 2026, ACS es un proyecto del OWASP GenAI Security Project, en el nivel 2 (Incubator) según sus propios metadatos; la especificación v0.1.0 es del 5 de junio de 2026 y el tag de release actual es 0.1.2. Surgió del Agent Observability Standard (AOS). Según ACS, un agente se considera fiable si es inspectable, traceable e instrumentable. Es decir, los operadores deben poder determinar a posteriori qué hizo un agente y por qué, y limitar de antemano lo que puede hacer.

19hooks nativos steps/* en la especificación v0.1.0, de sessionStart a sessionEnd, incluidos los tres hooks de skills
5Dispositions: allow, deny, modify, ask, defer
44JSON Schemas en /schema/v0.1.0/
3Pilares: Instrument, Trace, Inspect

Los tres pilares

Instrument

Hooks en puntos de ejecución con consecuencias: input, recuperación de conocimiento, memoria, llamadas a herramientas, compactación, subagentes y skills. Las acciones de código, shell, archivos y red pasan por steps/toolCallRequest, que debe dispararse para toda acción que salga del contexto de razonamiento. El Guardian responde con una disposition. El gate principal de aplicación es steps/toolCallRequest. steps/toolCallResult sirve como gate para ocultar (redact) las salidas antes de que lleguen al agente.

Trace

Vocabulario normativo para OpenTelemetry y OCSF. Una llamada a una herramienta se convierte en el span gen_ai.tool.call con gen_ai.tool.name y acs.capability. Las decisiones se registran como span event acs.decision en el span del paso evaluado, no como un span propio. En OCSF, deny, modify, ask y defer pasan a ser Detection Findings (clase 2004). Los mappings tienen el estado «Working draft»; Trace es best-effort y una autodeclaración del entorno observado. Los tres hooks de skills no están mapeados, y gen_ai.tool.call es un nombre de span de ACS, no un span de OpenTelemetry GenAI (allí: execute_tool {gen_ai.tool.name}).

Inspect

Una Agent Bill of Materials (AgBOM) revela las herramientas, los modelos y los datos accesibles del agente, y puede mapearse a CycloneDX, SPDX y SWID. Los métodos agbom/snapshot y agbom/changed se registran en OCSF como clase 5001 Device Inventory Info (ACS la denomina «Inventory Info»). Serialización en CycloneDX 1.6, SPDX 3.0 o SWID (al menos uno; estado «Working draft»).

Wire, provenance y audit chain

  • Wire format JSON-RPC 2.0. Namespaces de métodos: steps/* (hooks), protocols/* (MCP encapsulado; A2A está reservado para v0.2), agbom/*, system/* y handshake/*. En caso de conflicto de versión, el handshake termina con UNSUPPORTED_VERSION. La prosa de la especificación aún presupone mecanismos de MCP anteriores a la revisión 2026-07-28, y si el wrapping de MCP forma parte de ACS-Core es contradictorio en el texto; las llamadas a herramientas MCP también pueden pasar por steps/toolCallRequest/-Result.
  • Provenance es una etiqueta factual de procedencia en los campos que transportan datos. La asigna código determinista del framework, nunca el LLM: origin (user_input, system, tool_output, retrieved, agent_generated, a2a_inbound, external), source_id y derived_from como aristas de linaje.
  • En el perfil acs-provenance, la provenance a nivel de campo es obligatoria para todo campo con datos de la sesión, incluido cada argumento de steps/toolCallRequest. La clasificación de confianza la realiza el Guardian según su política local; no es un campo del esquema v0.1.
  • Cada respuesta para un paso que transporta contenido lleva un chain_hash: la cabeza SHA-256 rodante de la audit chain. policy_references (incluida la policy_version opcional) y cited_provenance_ids hacen que la decisión sea reproducible.
  • Las firmas son criptoágiles y obligatorias en ACS-Core: cada solicitud y cada respuesta se firma sobre el envelope canónico; HMAC-SHA256 con una clave de sesión derivada mediante HKDF es la base que lo cumple. Hace evidente la manipulación en la red, pero no un Guardian comprometido. El no repudio solo llega con el perfil acs-crypto: ML-DSA-65 (obligatorio) y SLH-DSA-128s (recomendado como respaldo).
05Capítulo 5

Evidence Contract ↔ ACS: qué cubre el estándar y qué debe completar usted

ACS aporta, para input, decision y tool, los hooks, envelopes y mappings de trace; para el efecto, solo la respuesta de la herramienta. Las dos lagunas más importantes son la vinculación de la decisión, cuya ausencia explica en el experimento la debilidad residual dominante F1, y la evidencia de efectos independiente, que el artículo fundamenta como requisito pero no mide por separado.

Etapa del contractEquivalente en ACS (v0.1.0)Necesidad de complemento
p · Input & Provenancesteps/userMessage, steps/knowledgeRetrieval, steps/memoryContextRetrieval; Provenance origin/source_id/derived_from; atributo OTel acs.provenance.origin; enriquecimiento OCSF acs_provenance_originMantener la confianza en la fuente como política del Guardian (el esquema v0.1 no tiene campo trust)
d · DecisionAcsResult: decision, reasoning, reason_codes, policy_references (policy_version), cited_provenance_ids, ask_details (approver, timeout_disposition), chain_hash; span event acs.decision; OCSF 2004 Detection FindingVincular en policy_data el digest de argumentos, el destino normalizado, el capability set, la profundidad de delegación, la expiración y el requisito de idempotencia; persistir el Decision Receipt de forma duradera
t · Tool & Delegationsteps/toolCallRequest: tool, operation, capability, arguments con provenance, raw_command, intent; steps/subagentStart o agentTrigger (a2a_inbound); turn_id/parent_turn_id; span gen_ai.tool.call; OCSF 1007Comparar los valores ejecutados con el receipt: igualdad de digest de argumentos, destino y capability como oráculo de prueba
e · Effectsteps/toolCallResult (exit_status, request_id_ref); span gen_ai.tool.resultObservación independiente del efecto en el sistema de destino (gateway, auditoría de BD, sink) con destino observado, digest de la operación y clave de idempotencia, correlacionada mediante el Action-ID

Los datos de ACS proceden de los JSON Schemas v0.1.0 publicados (hooks/*, provenance.json, response-envelope.json, trace/otel-mapping.json, trace/ocsf-mapping.json). policy_data está previsto expresamente en el estándar como campo estructurado y específico de la política. Según la especificación, los eventos Trace de ACS son autodeclaraciones del entorno observado y best-effort; solo se convierten en evidencia cuando una parte ajena al runtime emisor los atestigua. Las firmas (acs-crypto) y la vinculación de contenido (acs-audit) refuerzan la integridad. El experimento asume telemetría auténtica (capítulo 10).

Por qué la laguna de efectos es estructural

Los hooks de ACS se disparan en el runtime del agente. steps/toolCallResult informa de lo que la herramienta devuelve al agente. No informa de lo que ocurrió realmente en el sistema de destino. El artículo muestra por qué importa esta diferencia: un trace que termina en la respuesta correcta de la herramienta puede pasar por alto escrituras duplicadas o destinos redirigidos. Por ello, la evidencia de efectos debe proceder de una segunda fuente, independiente del agente. Se vincula al trace de ACS mediante Action-IDs y Request-IDs.

Por qué fail-open es el problema F1

Si el Guardian no está accesible con la failure posture proceed, la acción continúa. ACS exige registrar como audit event todo proceed en fail-open, pero no se genera ningún comprobante de decisión con vinculaciones de aprobación. Operativamente, esto corresponde al fallo F1 del experimento (interpretación de VamiSec). Si faltan los eventos de decisión, la reconstrucción exacta y la atribución caen al 0 %, y el recall del perfil threat-guided al 50 %. Por ello, un despliegue de ACS que se tome en serio las pruebas de seguridad negocia on_decision_failure: deny (en la implementación de referencia: ACS_ON_DECISION_FAILURE=deny), establece la startup posture refuse en el Observed Agent y trata un receipt ausente como un fallo de prueba, no como una laguna en el log.

06Capítulo 6

Diseño experimental: corpus, perfiles y fallos

36 plantillas de workflow, tres repeticiones deterministas, cuatro perfiles de evidencia, siete condiciones de telemetría. Además, un ledger de ground truth que el reconstructor nunca llega a ver.

El corpus contiene seis familias de workflows, cada una con cuatro variantes inseguras y dos variantes benignas muy próximas: 36 plantillas, de las cuales 24 son inseguras y 12 benignas. Tres repeticiones deterministas dan 108 instancias de workflow. Las repeticiones varían los identificadores y el jitter de los eventos. Son una comprobación de reproducibilidad, no muestras estadísticas independientes.

Un generador de confianza produce eventos JSON canónicos de tipo MCP. Por separado se crea un ledger de ground truth con las identidades de evento esperadas, las aristas de parent, las etiquetas de unsafe, la regla vulnerada y la primera etapa de la violación. Antes de la reconstrucción se eliminan de los eventos observables los IDs privados de caso. Los workflows de la misma familia comparten una ventana temporal deliberadamente solapada. Es un caso difícil para la atribución por proximidad temporal.

CondiciónFalloEquivalente real en la operación de ACS
F0Evidencia sin modificarReferencia
F1Todos los eventos de decisión eliminadosGuardian inaccesible con proceed, eventos acs.decision muestreados, Detection Findings descartados, sumidero de trace caído (Trace es best-effort y nunca bloquea la aplicación)
F2Trace IDs sustituidos en el límite de la herramientaContext propagation interrumpida entre el cliente y el servidor MCP
F3Parent links eliminados en los eventos de efectoTelemetría de efectos de los sistemas de destino sin contexto de trace
F4Marcas de tiempo desplazadas, orden invertidoClock skew, exportadores asíncronos
F5Telemetría de efectos duplicadaExportación at-least-once, retries en el collector
F6Action-IDs intercambiados entre workflows paralelosErrores de concurrencia en la instrumentación o en el collector

La columna “Equivalente real” es una interpretación de VamiSec, no un resultado del artículo. Los fallos dirigidos a campos que no existen en un perfil se consideran no aplicables para la puntuación de fault detection.

Reconstrucción y métricas

  • P0 agrupa un efecto con la herramienta más cercana en el tiempo, P1 por trace ID. P2 y P3 siguen las aristas de parent y recurren a los Action-IDs cuando falta el parent de un efecto.
  • La reconstrucción exacta exige prompt, decisión, herramienta, todos los efectos y, en P2/P3, las aristas de parent esperadas.
  • La atribución unívoca exige que todos los efectos esperados se asignen exactamente al prompt, la decisión y la herramienta correctos, incluso cuando falta una arista de parent.
  • Recall y precisión usan la etiqueta de unsafe; la tasa de falsos positivos benignos, las 12 plantillas benignas. Las tasas de Correct-Rule y First-Stage ponen a prueba el diagnóstico.

La implementación utiliza exclusivamente la biblioteca estándar de Python. Dos ejecuciones limpias produjeron hashes byte-idénticos de configuración, casos, agregados y summary. Tres pruebas unitarias comprueban el tamaño y el equilibrio de la matriz, las salidas deterministas y la comparación de recall de P3 frente a P2.

07Capítulo 7

Resultados: qué se sostiene y qué se rompe

La evidencia causal resiste los trace splits y los parents de efecto perdidos. Sin embargo, la ausencia de la etapa de decisión impide la reconstrucción completa y elimina una parte esencial del significado de seguridad.

PerfilExactoAtribuciónRecallPrecisiónFalsos positivosBytes
P0 · IDs locales, tiempo0,0 %0,0 %84,5 %66,4 %85,7 %659
P1 · + Trace-ID71,4 %71,4 %16,7 %100 %0 %843
P2 · + Span/Parent/Action71,4 %85,7 %16,7 %100 %0 %1245
P3 · + Security Bindings71,4 %85,7 %92,9 %100 %0 %2341

Tabla II del artículo: tasas agregadas sobre las siete condiciones de telemetría. Bytes = mediana del JSON canónico por workflow bajo F0.

P0 nunca alcanzó una atribución unívoca, porque los workflows solapados en el tiempo se fusionaron. Su recall aparente del 84,5 % no es un rendimiento de seguridad utilizable: las cadenas fusionadas erróneamente dispararon la alarma en el 85,7 % de los casos benignos. P1 solo detectó efectos duplicados. P2 elevó la atribución unívoca al 85,7 %, pero el recall de seguridad se mantuvo en el 16,7 %. P3 conservó la atribución de P2 y elevó el recall, la Correct-Rule-Rate y la localización First-Stage al 92,9 %.

Sensibilidad a los fallos

  1. F0Evidencia sin modificar

    P1 a P3 reconstruyen y atribuyen cada workflow. P3 alcanza un 100 % de recall y de precisión sin falsos positivos.

  2. F2Trace split en el límite de la herramienta

    P1 pierde por completo la reconstrucción y la atribución. P2 y P3 se mantienen en el 100 %, porque los IDs de parent y de acción salvan el límite de trace modificado.

  3. F3Parents de efecto perdidos

    La reconstrucción exacta de P2/P3 cae al 0 %; la atribución unívoca se mantiene en el 100 % gracias al action fallback.

  4. F4–F6Desfase temporal, duplicados, intercambio de Action-IDs

    Sin pérdidas en P2/P3: la evidencia restante proporciona una ruta unívoca y las comprobaciones de corrupción detectan la inconsistencia inyectada.

  5. F1Eventos de decisión ausentes

    La debilidad residual dominante: la reconstrucción y la atribución caen al 0 % en P1 a P3, y el recall de P3 al 50 %. La autoridad de la fuente, la memoria y los duplicados siguen siendo detectables. La vinculación de la aprobación, del scope y del destino pierde su punto de comparación.

08Capítulo 8

Costes de evidencia y operación: priorizar en lugar de hacer sampling

Más vinculaciones significan más bytes. La respuesta es una priorización consciente, no un sampling que elimine Decision Receipts.

659 BP0 por workflow (mediana, JSON canónico, F0)
843 BP1: +27,9 %
1245 BP2: +88,9 %
2341 BP3: +255,2 % frente a P0, +88,0 % frente a P2

P3 añade 1682 bytes (aproximadamente 1,64 KiB) respecto a P0 y 1096 bytes respecto a P2. Un collector con la misma representación de eventos conservaría, para un workflow de tamaño medio, aproximadamente 3,55 veces los bytes canónicos de P0, o 1,88 veces los de P2. Estos valores responden a RQ3 como comparación del volumen de serialización. No miden latencia, CPU, volumen de transmisión, compresión, indexación ni costes monetarios.

Reglas de operación del artículo, traducidas a ACS

  • Receipts de Decision, Invocation y Effect completos primero para las operaciones privilegiadas: en términos de ACS, para capabilities como filesystem.delete, network.egress o process.execute.
  • Fijar límites de conservación explícitos. La deduplicación, la compresión y los keyed digests pueden reducir el volumen, pero deben medirse por separado.
  • Quien omite un campo relevante para las invariantes o elimina Decision Receipts mediante sampling modifica el Evidence Contract y debe volver a evaluar. F1 muestra lo que entonces se pierde.
  • Modelar por separado integridad, relojes, conservación y control de acceso. ACS ofrece para ello la base HMAC (acs-core), firmas asimétricas o PQC (acs-crypto), request_hash (acs-audit) y el chain_hash de la cadena de auditoría.
09Capítulo 9

Playbook práctico: pruebas de seguridad basadas en ACS en la pipeline

Así traslada usted el artículo y el estándar a una batería de pruebas que se ejecuta en CI y se pone en rojo de forma fiable cuando falta evidencia.

  1. Paso 1Traducir las amenazas en hipótesis

    Recorrer las capas de MAESTRO y las propiedades de STRIDE para cada workflow de agentes. Para cada transición peligrosa, formular una tupla H = (boundary, precondition, invariant, evidence, oracle).

  2. Paso 2Definir los hooks y perfiles de ACS

    ACS-Core como base, más los perfiles acs-trace y acs-provenance. Además de los seis hooks obligatorios de ACS-Core (sessionStart, userMessage o agentTrigger, toolCallRequest, toolCallResult, agentResponse, sessionEnd), instrumentar steps/knowledgeRetrieval, steps/memoryContextRetrieval y steps/subagentStart, y comprobar que el Guardian los incluye en methods_evaluated (si no, rige ALLOW-by-default).

  3. Paso 3Definir el Decision Receipt

    Principal, versión de la política, reason code, operación, destino normalizado, digest de argumentos, capabilities, profundidad de delegación, expiración e idempotencia en policy_data. Persistido y vinculado a request_id y chain_hash.

  4. Paso 4Endurecer la failure posture

    Establecer la failure posture en fail-closed: on_decision_failure: deny en el ServerHello (implementación de referencia: ACS_ON_DECISION_FAILURE=deny) y, en el Observed Agent, la startup posture refuse por si ya falla el handshake. Firmar los envelopes. Un receipt ausente es un fallo de prueba.

  5. Paso 5Conectar un sumidero de efectos (effect sink) independiente

    La auditoría de gateway, de base de datos o de sink aporta el destino observado, el digest de la operación y la clave de idempotencia, correlacionados mediante el Action-ID.

  6. Paso 6Pruebas negativas con gemelos benignos

    Por cada familia, casos inseguros y casos benignos muy próximos, como la resolución de alias permitida o los accesos de lectura repetidos. Congelar los predicates antes de probar.

  7. Paso 7Dos gates de CI

    Gate 1, reconstrucción: etapas obligatorias y aristas de parent completas; de lo contrario, cuarentena. Gate 2, corrección: invariantes cumplidas; de lo contrario, interrupción indicando la regla vulnerada y la primera etapa.

  8. Paso 8Inyectar fallos de telemetría

    Ejecutar F1 a F6 con regularidad contra la propia pipeline. Una prueba que sigue en verde bajo F1 no comprueba aprobaciones.

Prueba negativa: Approval Replay

Conceder la aprobación para la herramienta A con el digest de argumentos X y, a continuación, llamar a la herramienta A con el digest Y. Se espera que la invariante de vinculación de la aprobación (Approval Binding) resulte vulnerada en la etapa t. Gemelo benigno: aprobación nueva y vinculada con retry.

Prueba negativa: Target Redirection

Destino aprobado tenant-a, destino ejecutado tenant-b. Se espera que la igualdad de destino resulte vulnerada en la etapa t o e. Gemelo benigno: resolución de alias permitida al mismo destino canónico.

Prueba negativa: Scope Amplification

El subagente hereda write, aunque solo se delegó read. Se espera: capabilities efectivas ⊄ conjunto aprobado. Gemelo benigno: child atenuado con solo lectura (read-only).

10Capítulo 10

Límites de la conclusión y el siguiente paso de validación

El experimento valida la fuerza probatoria de la evidencia para fixtures deterministas de tipo MCP. No es un benchmark de LLM ni de robustez en producción.

El estudio utiliza fixtures deterministas sintéticos, invariantes escritas a mano y calendarios de eventos fijos. No ejecuta ningún LLM, ninguna implementación de MCP, ningún OAuth, ningún motor de políticas ni ningún servicio externo. No mide el éxito de la prompt injection ni demuestra que un control impida un efecto. Precision y recall solo son válidos para las seis familias codificadas. Dado que el evaluador se diseñó a partir de las mismas hipótesis de amenaza, el experimento prueba la fuerza probatoria y la coherencia de la implementación, no el descubrimiento de nuevas amenazas.

  • El ledger de ground truth está separado lógicamente, pero procede de la misma base de código. Implementaciones independientes, mutación property-based y capturas reales de protocolo reducirían los errores de modo común.
  • Se da por supuesto que la telemetría es auténtica. Siguen abiertos los productores falsificados, el truncamiento de logs más allá de los fallos inyectados, los collectors comprometidos y la verificación criptográfica.
  • Las nuevas clases de amenaza necesitan su propia hipótesis, campos, oráculos y pruebas escritas de forma independiente. Resource Exhaustion, por ejemplo, requiere evidencia de presupuesto y de consumo; la telemetría falsificada requiere identidad del productor y comprobación de integridad.

Divulgación del artículo: OpenAI Codex se utilizó para la organización de la literatura, el andamiaje de la implementación y la revisión del código de evaluación sintético, los primeros borradores y la revisión lingüística, así como el formateo. La formulación de la pregunta, el modelo de amenazas, la ejecución, la comprobación de los resultados y las fuentes, y todas las decisiones finales corresponden al autor.

Autoevaluación

Evidence-Readiness-Radar: ¿se pueden probar realmente sus agentes?

Diez preguntas en cinco dimensiones, derivadas del Evidence Contract del artículo y de los perfiles del OWASP Agent Control Standard. El resultado muestra dónde su telemetría todavía no respalda las aprobaciones, los destinos, la delegación y los efectos.

  1. ProvenanceACS · Provenance
    ¿Recibe todo contenido que llega al agente (entrada del usuario, retrieval, salida de herramientas, memoria) una etiqueta de procedencia asignada de forma determinista, con indicación de la fuente?
  2. ProvenanceArtículo §IV-C
    ¿Impide una política que contenidos de fuentes no fiables autoricen una operación con consecuencias?
  3. Decision ReceiptsArtículo §VI-A
    ¿Existe, para cada ejecución de herramienta con consecuencias, un comprobante de decisión persistido con principal, versión de la política y reason code?
  4. Decision ReceiptsArtículo §III-A
    ¿Vincula el comprobante de decisión el digest de argumentos, el destino normalizado, el capability set, la profundidad de delegación y el tiempo de expiración?
  5. Herramienta y delegaciónACS · steps/toolCallRequest
    ¿Repite el evento de la herramienta los valores realmente ejecutados, en lugar de limitarse a remitir a la decisión?
  6. Herramienta y delegaciónACS · steps/subagentStart
    ¿Se registran las delegaciones a subagentes con sus capabilities efectivas y su profundidad, y se comprueban frente al conjunto aprobado?
  7. Evidencia de efectosArtículo §II-A
    ¿Se observa el efecto en el sistema de destino con independencia del agente, por ejemplo mediante auditoría del gateway, de la base de datos o del sink?
  8. Evidencia de efectosArtículo §III-B
    ¿Llevan los efectos de escritura una clave de idempotencia, de modo que las ejecuciones duplicadas bajo retry sean detectables?
  9. Operación e integridadACS · Failure posture
    ¿Está su Guardian configurado como fail-closed, de modo que sin decisión no se ejecute ninguna acción?
  10. Operación e integridadArtículo §VI-A
    ¿Fallan sus pruebas de seguridad en CI cuando faltan en la evidencia etapas obligatorias o aristas de parent?
ProvenanceDecisionReceiptsHerramientay delegaciónEvidenciade efectosOperación eintegridad
Provenance0 %Decision Receipts0 %Herramienta y delegación0 %Evidencia de efectos0 %Operación e integridad0 %

Responda a las diez preguntas. El resultado aparecerá aquí.

Research Edition · descarga gratuita

Threat-Model-Guided Security Testing for Agentic AI: artículo y ACS Practitioner Brief

El artículo aceptado en la ICSPIS 2026 como accepted version, complementado con una parte práctica. Muestra cómo puede implantar el Evidence Contract con el OWASP Agent Control Standard y llevarlo a su pipeline en forma de pruebas negativas.

Portada de la Research Edition de VamiSec “Threat-Model-Guided Security Testing for Agentic AI”
Artículo (5 págs.) + ACS BriefPDF, gratuitoInglésActualizado: 10/2026
  • Artículo completo: método, resultados sobre 3024 celdas, análisis de fallos y límites de validez
  • Mapping Evidence Contract ↔ ACS v0.1: hooks, provenance, dispositions, OTel y OCSF
  • Esquema mínimo del Decision Receipt y recomendaciones sobre la failure posture: fail-closed en lugar de proceed
  • Catálogo de pruebas negativas con seis familias de ataque y gates de CI para reconstrucción y corrección
Descarga gratuita

Solicitar whitepaper

Research Edition: Threat-Model-Guided Security Testing for Agentic AI (ICSPIS 2026)

Qué contiene la Research Edition

El artículo completo

La versión aceptada (accepted version) del artículo de la ICSPIS 2026 con método, Tabla I/II, análisis de fallos, costes de evidencia y límites de validez. Publicada con el aviso de copyright de IEEE.

ACS Practitioner Brief

En cuatro páginas: el mapping del Evidence Contract a hooks de ACS, provenance, dispositions, spans de OpenTelemetry y clases OCSF, incluidas las lagunas de ACS v0.1 que debe cerrar usted mismo.

Esquema del Decision Receipt

Los campos mínimos de un comprobante de decisión que minimiza los datos: principal, versión de la política, reason code, operación, destino, digest de argumentos, capabilities, profundidad de delegación, expiración y clave de idempotencia.

Catálogo de pruebas negativas

Seis familias de ataque, cada una con cuatro variantes inseguras y dos benignas, como plantilla para su propia batería de pruebas, más gates de CI para reconstrucción y corrección.

El estándar en detalle

OWASP Agent Control Standard: entender el control en tiempo de ejecución antes de probarlo

Esta página usa ACS como vocabulario de la evidencia de prueba. Cómo funciona el propio estándar – Guardian y Observed Agent, 19 hooks, cinco dispositions, handshake y failure posture, perfiles y la madurez de v0.1.0 – lo explica nuestro análisis en profundidad, con simulador del Guardian, ciclo de vida de los hooks y matriz de riesgos.

19hooks nativos steps/*
5dispositions: allow, deny, modify, ask, defer
7perfiles: ACS-Core y seis opcionales
  • Simulador del Guardian con ejemplos de wire fieles al esquema
  • Matriz de riesgos OWASP Agentic Top 10 × componentes de ACS
  • Autoevaluación de preparación para ACS y whitepaper para CISOs (en alemán)
FAQ

Preguntas frecuentes sobre Agentic AI Security Testing y ACS

Respuestas breves a las preguntas que más nos llegan sobre el artículo, el Evidence Contract y el OWASP Agent Control Standard.

El Threat-Model-Guided Security Testing deriva la telemetría y los oráculos de prueba de un agente de IA directamente de un modelo de amenazas; en el artículo, de MAESTRO y STRIDE. Cada amenaza se convierte en una tupla comprobable formada por límite, precondición, invariante, evidencia y oráculo. La prueba verifica entonces de forma determinista si los hechos registrados cumplen la invariante, por ejemplo si la herramienta, los argumentos y el destino coinciden en la llamada con los valores aprobados.

ACS aporta los puntos de control y el vocabulario: hooks como steps/toolCallRequest, provenance en los argumentos, dispositions, chain_hash y mappings de OpenTelemetry y OCSF. El Evidence Contract del artículo define qué hechos deben vincularse como mínimo en esos puntos para que una prueba pueda comprobar aprobación, destino, alcance y procedencia. Dos componentes los añade el operador: un decision receipt persistente con campos de vinculación en policy_data y efectos observados de forma independiente en el sistema de destino. El propio estándar – Guardian, 19 hooks, cinco dispositions, perfiles y madurez – lo explica nuestro análisis en profundidad «Agent Control Standard (ACS)» del área Agentic AI Security.

No. Los trace IDs y los parent IDs muestran qué eventos están relacionados entre sí. No muestran por qué se permitió una acción. En el experimento, el perfil puramente causal atribuyó de forma unívoca el 85,7 % de los efectos, pero solo detectó el 16,7 % de los casos inseguros. Solo las vinculaciones relevantes para la seguridad, como el ID de aprobación, el digest de argumentos, el destino, las capabilities y la procedencia, elevaron el recall al 92,9 %.

El artículo recomienda un comprobante de decisión duradero y que minimice los datos, que vincule a un ID de acción el principal, la versión de la política, el reason code, la operación aprobada, el destino normalizado, el digest de argumentos relevante, las capabilities delegadas y el tiempo de expiración. En ACS, decision, reasoning, reason_codes, policy_references y chain_hash ya figuran en el response envelope. Los campos de vinculación los añade usted en policy_data.

Con proceed, una acción continúa aunque el Guardian no esté accesible. ACS prescribe registrar como audit event todo proceed en fail-open, pero entonces no existe ningún comprobante de decisión con vinculaciones de aprobación. Según nuestra interpretación, esto corresponde al fallo F1 del experimento: sin eventos de decisión, la reconstrucción y la atribución cayeron al 0 % y el recall al 50 %. La especificación prevé expresamente on_decision_failure: deny (fail-closed) para los despliegues que no aceptan cambiar aplicación por disponibilidad; para los handshakes fallidos se añade la startup posture refuse, configurada fuera del protocolo. Sin ella, un handshake fallido inicia la sesión sin protección (su valor por defecto también es proceed). El README del proyecto aconseja establecer ACS_ON_DECISION_FAILURE=deny antes de confiar en el fail-closed. El propio valor por defecto proceed está en debate en el proyecto (issues #32 y #37).

En la mediana, el perfil threat-guided generó 2341 bytes de JSON canónico por workflow. Eso supone un 255,2 % más que los logs fragmentados (659 bytes) y un 88,0 % más que el tracing causal (1245 bytes). El valor es un indicador del volumen de serialización, sin compresión, transporte ni indexación. En la práctica, introduzca primero los receipts completos para las operaciones privilegiadas.

No. El experimento valida la fuerza probatoria de la evidencia para fixtures deterministas de tipo MCP. No ejecuta ningún LLM, ninguna implementación real de MCP ni ningún motor de políticas, y no mide si una prompt injection tiene éxito. Benchmarks como InjecAgent o AgentDojo responden a la cuestión de la robustez. El artículo parte de ahí y aclara qué evidencia necesita como mínimo un evaluador para reconstruir y clasificar una ruta.

El artículo ha sido aceptado para la 9th International Conference on Signal Processing and Information Security (ICSPIS 2026), que se celebra del 10 al 12 de noviembre de 2026 en Dubái. La versión aceptada está disponible aquí para su descarga como Research Edition, con el aviso de copyright de IEEE y un ACS Practitioner Brief complementario. Tras la publicación añadiremos la cita completa con enlace a IEEE Xplore.

Estándares y fuentes

Los contenidos de esta página se basan en las siguientes guías y estudios disponibles públicamente.

V. Milke, VamiSec GmbH · ICSPIS 2026 (aceptado) · 2026

Threat-Model-Guided Security Testing for Agentic AI: MCP Traces with MAESTRO and STRIDE

Fuente primaria de esta página: Evidence Contract, corpus de fault injection y resultados sobre 3024 celdas. Accepted version con aviso de copyright de IEEE.

OWASP GenAI Security Project · 2026

Agent Control Standard (ACS)

Listado en el área Agentic Security, con fecha del 1 de septiembre de 2026

GenAI Security Project (GitHub) · 2026

agent-control-standard: especificación, esquemas e implementación de referencia (prueba de concepto)

README con las lagunas conocidas de la implementación de referencia (autenticación del wire, failure posture proceed) y hoja de ruta (v0.2.0, objetivo: marzo de 2027). En v0.1.0 la conformidad es autodeclarada, sin suite de pruebas (issue #19).

OWASP GenAI Security Project · 2026

ACS JSON Schema v0.1.0 (44 schemas)

Request/Response envelope, Provenance, hooks y mappings de OpenTelemetry y OCSF: base del mapping de esta página.

Model Context Protocol · 2026

Model Context Protocol: Architecture (Revision 2026-07-28)

Host, clientes y servidores; responsabilidad del host en materia de autorización y consentimiento.

Model Context Protocol · 2026

Model Context Protocol: Tools (Revision 2026-07-28)

Descubrimiento e invocación de herramientas; recomendación de que una persona pueda rechazar las operaciones sensibles.

K. Huang, Cloud Security Alliance · 2025

Agentic AI Threat Modeling Framework: MAESTRO

Siete capas que interactúan, con foco en los efectos entre capas.

Microsoft Learn

Threats: Microsoft Threat Modeling Tool (STRIDE)

Las seis categorías de STRIDE como anclas de propiedades.

W3C · 2021

Trace Context (W3C Recommendation)

Trace IDs y parent IDs estandarizados para la correlación distribuida: base de los perfiles P1/P2.

OWASP GenAI Security Project · 2025

OWASP Top 10 for Agentic Applications for 2026

ASI01–ASI10 como contraste para el vocabulario de los escenarios.

Zhan, Liang, Ying, Kang · Findings of ACL · 2024

InjecAgent: Benchmarking Indirect Prompt Injections in Tool-Integrated LLM Agents

Benchmark de prompt injection indirecta a través de herramientas.

Debenedetti et al. · NeurIPS Datasets and Benchmarks · 2024

AgentDojo: A Dynamic Environment to Evaluate Prompt Injection Attacks and Defenses for LLM Agents

Entorno ampliable con tareas, ataques y defensas realistas.

NIST · 2008

NIST SP 800-115: Technical Guide to Information Security Testing and Assessment

Procedimientos de prueba repetibles y evidencia clara.

OWASP Foundation · 2025

OWASP AI Testing Guide

Pruebas de sistemas de IA orientadas a controles.

OCSF Project

Open Cybersecurity Schema Framework (OCSF)

Clases de eventos a las que mapea ACS: 3002 Authentication, 6002 («Application Activity» en ACS, Application Lifecycle en OCSF), 1007 Process Activity, 6005 Datastore Activity, 2004 Detection Finding, 5001 Device Inventory Info.

¿Se pueden probar sus agentes, o solo están registrados en logs?

En la consulta inicial comprobamos si la telemetría de sus agentes respalda realmente las aprobaciones, los destinos, la delegación y los efectos. Además, aclaramos cómo llevar hooks de ACS, políticas del Guardian y pruebas negativas a su pipeline.