-
-
Notifications
You must be signed in to change notification settings - Fork 92
[IDEA] Add OWASP Threat Model Library parity #1034
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: 2.0-dev
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -47,6 +47,14 @@ | |
| "description": "The component that the BOM describes.", | ||
| "$ref": "cyclonedx-component-2.0.schema.json#/$defs/component" | ||
| }, | ||
| "scope": { | ||
| "description": "The scope of the analysis represented by this BOM, including what is in and out of scope.", | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. CycloneDX is about system transparency, not BOM. |
||
| "$ref": "cyclonedx-common-2.0.schema.json#/$defs/modelScope" | ||
| }, | ||
| "modelLifecycle": { | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. too specific for a metadata. shall go somewhere else |
||
| "description": "Lifecycle metadata for the model represented by this BOM.", | ||
| "$ref": "#/$defs/modelLifecycle" | ||
| }, | ||
| "supplier": { | ||
| "title": "Supplier", | ||
| "description": " The organization that supplied the component that the BOM describes. The supplier may often be the manufacturer, but may also be a distributor or repackager.", | ||
|
|
@@ -65,6 +73,47 @@ | |
| } | ||
| } | ||
| }, | ||
| "modelLifecycle": { | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. why put this here, and not in the existing threat or blueprint or behaviour space? |
||
| "type": "object", | ||
| "title": "Model Lifecycle", | ||
| "description": "Version, release, review, and freeze information for the model represented by this BOM.", | ||
| "additionalProperties": false, | ||
| "properties": { | ||
| "version": { | ||
| "type": "string", | ||
| "pattern": "^\\d+(\\.\\d+)*$", | ||
| "description": "The structured version of the model." | ||
| }, | ||
| "frozen": { | ||
| "type": "boolean", | ||
| "description": "Whether the model is frozen and must be versioned before modification." | ||
| }, | ||
| "releasedAt": { | ||
| "$ref": "#/$defs/dateOrDateTime", | ||
| "description": "When the model was released." | ||
| }, | ||
| "productReleaseDate": { | ||
| "$ref": "#/$defs/dateOrDateTime", | ||
| "description": "When the product release modeled by this BOM was released." | ||
| }, | ||
| "reviewedAt": { | ||
| "$ref": "#/$defs/dateOrDateTime", | ||
| "description": "When the model was last reviewed." | ||
| } | ||
| } | ||
| }, | ||
| "dateOrDateTime": { | ||
| "oneOf": [ | ||
| { | ||
| "type": "string", | ||
| "format": "date" | ||
| }, | ||
| { | ||
| "type": "string", | ||
| "format": "date-time" | ||
| } | ||
| ] | ||
| }, | ||
| "distributionConstraints": { | ||
| "title": "Distribution Constraints", | ||
| "description": "Conditions and constraints governing the sharing and distribution of the data or components described by this BOM.", | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why would the model scope live here, and not in cyclonedx-ai-modelcard-2.0.schema.json ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
modelScope is intentionally a common definition because it is reused by metadata.scope and blueprint.scope. It describes analysis/model boundaries generally, not AI-model-card-specific scope. Keeping it in the common schema avoids duplicating the same structure and allows threat models beyond AI systems to use it.
This comes from the need of having a threat modelling scope very well defined - i.e. if you are threat modelling a feature - but have a full system diagram it is important to define the scope boundaries of the threat model, especially if something is out of scope but for completeness still mentioned in the dataflows etc (i.e. if modelling a new feature, perhaps authentication is out of scope, but for completeness of the diagram it is still mentioned)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see. so this "model" is actually some threat model?
or behavior?
For me this all looks unintuitive, anyway. see #1034 (comment)