Replies: 3 comments
-
|
I think what you're looking for is being designed by the Blueprints and the Threat Modeling working groups. I assume your definition of provenance aligns with the OWASP, MITRE, and English dictionary definitions of the word? But I need to clarify since you're referring to formulation. If you're talking about SLSA Provenance-like meaning, then that's different. In CycloneDX v2.0, you should be able to describe every actor (components, services, humans, organizations, agents, etc) and all of the behaviors and interactions - both observed and declared. If an actor performs a series of behaviors, you'll be able to describe the formulation (the precise steps the actor took) in order to perform their task. |
Beta Was this translation helpful? Give feedback.
-
|
@stevespringett thanks for the pointer, Blueprints and Threat Modeling are the right WGs and glad they are the right home for this. To clarify which sense of "provenance" I had in mind: closer to the SLSA sense than the OWASP / MITRE / dictionary sense. Specifically, the operationally-useful subset of "who produced this artifact, under what policy, with what evidence, verifiable after the fact by someone who does not trust the producer." My question was narrower than The observation that prompted the question: for AI-agent-produced BOMs specifically (lockfiles from On v2.0 "describe every actor (components, services, humans, organizations, agents, etc) and all of the behaviors and interactions, both observed and declared": that is the right home for this, and the actor plus declared-vs-observed decomposition answers most of what the narrower question was probing. Agent actors with declared policy plus observed decisions is the shape. Happy to take this to the Blueprints or Threat Modeling WG meetings rather than continuing here. Is the right next step to show up on the WG agenda (or ping the chairs), or submit a discussion note in advance? If there is a meeting agenda URL or chair contact I should loop in on, happy to take it to the right room. Thanks for the redirect. |
Beta Was this translation helpful? Give feedback.
-
|
This maps to AIPOU's recent interop work: keep the agent/work receipt outside the core format, but let the BOM/workflow record carry stable digest-bound references. AIPOU is not trying to redefine CycloneDX provenance. It records a human/agent work unit with wallet authorization, nonce/replay checks, local hashes instead of raw prompts/outputs, provider/model/client metadata, and an Ed25519 collector signature. Optional validator-approved claims/rewards are a later layer and should not be implied by a BOM field. For CycloneDX, the useful subset seems to be:
AIPOU's external evidence link prototype is scheme-neutral and uses SHA-256 digests so protocols can reference each other without absorbing trust models: My instinct: CycloneDX should not store the whole AI work receipt unless it becomes native vocabulary; it should carry an external evidence reference with digest, scheme, and validation semantics. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Question prompted by the growing share of lockfiles that are now generated by AI agents (Claude Code, Cursor, autonomous CI pipelines calling
npm install/pip installvia tool calls). The resulting BOM records what got resolved. The open question is how to record who (which agent, under which Cedar or similar policy) in a way CycloneDX parsers already understand.Having read through the 1.6 spec, the primitives already present seem to cover most of it:
formulation[].workflows[]is the documented home for "how this BOM came to be" (build steps, task types, timing). This fits agent-driven resolution directly; treating thenpm installcall as a build step is a natural mapping.properties[]on workflow entries (and at top level) is a namespace-scoped property bag where vendor-specific metadata rides without extending the spec.signature(JSF) already covers cryptographic attestation of BOM contents.The specific dimension that feels missing, if I am reading correctly, is agent identity + policy digest as vocabulary on workflow entries. Concretely, a workflow entry would carry properties like:
Which is already valid CycloneDX 1.6. The question is whether the working group sees value in a small vocabulary convention for this pattern (a reserved namespace or documented property names for agent-attested builds) so multiple tools emit consistent metadata and downstream consumers know how to parse it.
Adjacent prior art I found in existing discussions: #618 (capturing generation environment for reproducibility). The agent-provenance question sits alongside that but narrows specifically to the "who ran this" dimension rather than "on what OS/arch."
Reference implementation, purely to show the shape (NOT a proposed spec change):
https://github.com/ScopeBlind/sb-runtime/tree/main/examples/cyclonedx-integration
That example takes a BOM plus a signed receipt (Ed25519 + JCS, instance of the IETF draft-farley-acta-signed-receipts format) and attaches the receipt via existing CycloneDX 1.6 fields. Output validates against the stock 1.6 schema unchanged. Published as an example, not a format proposal.
What I am asking the working group
formulation.workflow.propertiesfeel like the intended use of those fields, or is there a better-fitting structure I am missing?com.scopeblind:...) fine indefinitely?Thanks for the project. The fact that agent-attestation already fits cleanly into existing 1.6 fields is actually the most useful finding from the exercise.
Beta Was this translation helpful? Give feedback.
All reactions