@mitre/hdf-schema 3.4.4 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -2
- package/dist/go/hdf.go +535 -271
- package/dist/helpers.d.ts +56 -1
- package/dist/helpers.js +98 -38
- package/dist/index.d.ts +2 -0
- package/dist/index.js +28 -26
- package/dist/schemas/hdf-amendments.schema.json +235 -48
- package/dist/schemas/hdf-baseline.schema.json +240 -53
- package/dist/schemas/hdf-comparison.schema.json +1948 -1504
- package/dist/schemas/hdf-evidence-package.schema.json +242 -48
- package/dist/schemas/hdf-plan.schema.json +692 -498
- package/dist/schemas/hdf-requirement-change-event.schema.json +5290 -0
- package/dist/schemas/hdf-results.schema.json +1650 -1215
- package/dist/schemas/hdf-system.schema.json +262 -68
- package/dist/ts/hdf.d.ts +420 -73
- package/dist/ts/hdf.js +65 -30
- package/dist/ts/hdf.ts +428 -77
- package/package.json +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/hdf-amendments/v3.
|
|
3
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/hdf-amendments/v3.5.0",
|
|
4
4
|
"title": "HDF Amendments",
|
|
5
5
|
"description": "Waivers, attestations, and POA&Ms that modify requirement compliance status or impact. Amendments are standalone documents that can be applied to results via merge operations.",
|
|
6
6
|
"type": "object",
|
|
@@ -29,18 +29,18 @@
|
|
|
29
29
|
"description": "URI to the hdf-system document these amendments apply to."
|
|
30
30
|
},
|
|
31
31
|
"appliedBy": {
|
|
32
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
32
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.5.0#/$defs/Identity",
|
|
33
33
|
"description": "Default identity of who created this amendments document. Individual overrides may specify their own appliedBy."
|
|
34
34
|
},
|
|
35
35
|
"approvedBy": {
|
|
36
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
36
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.5.0#/$defs/Identity",
|
|
37
37
|
"description": "Identity of the authorizing official who approved these amendments."
|
|
38
38
|
},
|
|
39
39
|
"overrides": {
|
|
40
40
|
"type": "array",
|
|
41
41
|
"minItems": 1,
|
|
42
42
|
"items": {
|
|
43
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
43
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.5.0#/$defs/Standalone_Override"
|
|
44
44
|
},
|
|
45
45
|
"description": "The set of amendments (waivers, attestations, POA&Ms, and other overrides)."
|
|
46
46
|
},
|
|
@@ -52,11 +52,11 @@
|
|
|
52
52
|
"description": "Optional key-value labels for grouping and querying amendments."
|
|
53
53
|
},
|
|
54
54
|
"integrity": {
|
|
55
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
55
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.5.0#/$defs/Integrity",
|
|
56
56
|
"description": "Cryptographic integrity information for verifying this amendments document has not been tampered with."
|
|
57
57
|
},
|
|
58
58
|
"signature": {
|
|
59
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
59
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.5.0#/$defs/Signature",
|
|
60
60
|
"description": "Document-level digital signature covering all amendments."
|
|
61
61
|
},
|
|
62
62
|
"version": {
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"description": "Version of this amendments document."
|
|
65
65
|
},
|
|
66
66
|
"generator": {
|
|
67
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
67
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.5.0#/$defs/Generator",
|
|
68
68
|
"description": "Information about the tool that generated this document."
|
|
69
69
|
}
|
|
70
70
|
},
|
|
@@ -101,12 +101,140 @@
|
|
|
101
101
|
}
|
|
102
102
|
],
|
|
103
103
|
"$defs": {
|
|
104
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
104
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.5.0": {
|
|
105
105
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
106
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
106
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.5.0",
|
|
107
107
|
"title": "HDF Common Primitives",
|
|
108
108
|
"description": "Shared building blocks used by hdf-results and hdf-baseline schemas.",
|
|
109
109
|
"$defs": {
|
|
110
|
+
"External_Reference": {
|
|
111
|
+
"type": "object",
|
|
112
|
+
"title": "External Reference",
|
|
113
|
+
"description": "A generalized reference to any external artifact by identity and/or location, modeled on the STIX 2.1 `external_references` common property. Purpose-agnostic: cite a CVE, an ATT&CK technique, a STIX bundle/object, a BOM, a runbook, or any vendor artifact — including kinds with no dedicated HDF reference category. `sourceName` names the system; `externalId` cites by id within that system; `href` locates it. `sourceName` + `externalId` is equivalently a URN (`urn:<sourceName>:<externalId>`, RFC 8141), so the by-identity and by-location forms stay interconvertible. A reference is inert context: it overrides nothing, so it carries only lightweight optional `addedBy`/`addedAt` attribution, never override machinery.",
|
|
114
|
+
"required": [
|
|
115
|
+
"sourceName"
|
|
116
|
+
],
|
|
117
|
+
"anyOf": [
|
|
118
|
+
{
|
|
119
|
+
"required": [
|
|
120
|
+
"externalId"
|
|
121
|
+
]
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"required": [
|
|
125
|
+
"href"
|
|
126
|
+
]
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"required": [
|
|
130
|
+
"description"
|
|
131
|
+
]
|
|
132
|
+
}
|
|
133
|
+
],
|
|
134
|
+
"properties": {
|
|
135
|
+
"sourceName": {
|
|
136
|
+
"type": "string",
|
|
137
|
+
"minLength": 1,
|
|
138
|
+
"description": "Name of the external system/source being referenced (e.g., 'cve', 'mitre-att&ck', 'stix', 'taxii', or any vendor label). Open string — not a closed enum. Use the `x-` prefix convention for custom/experimental sources, mirroring `bomType`."
|
|
139
|
+
},
|
|
140
|
+
"externalId": {
|
|
141
|
+
"type": "string",
|
|
142
|
+
"description": "Identifier of the artifact within `sourceName` (e.g., 'CVE-2021-44228' for source 'cve', 'T1059' for 'mitre-att&ck'). Cite by id without needing a URL. Together with `sourceName` this is a URN."
|
|
143
|
+
},
|
|
144
|
+
"href": {
|
|
145
|
+
"type": "string",
|
|
146
|
+
"format": "uri-reference",
|
|
147
|
+
"description": "Location of the artifact. `uri-reference` (not `uri`) so a bare internal `#fragment`/`#uuid` reference is expressible alongside absolute URLs. `checksum`/`mediaType` apply only to a retrievable `href`."
|
|
148
|
+
},
|
|
149
|
+
"description": {
|
|
150
|
+
"type": "string",
|
|
151
|
+
"description": "Human-readable description of what is referenced. Satisfies the at-least-one rule on its own when neither id nor href is available."
|
|
152
|
+
},
|
|
153
|
+
"rel": {
|
|
154
|
+
"type": "string",
|
|
155
|
+
"description": "Open relationship token describing how this reference relates to the referencing object. Deliberately open (cf. OSCAL `rel` allow-other, RFC 8288 extension relations). Documented starter vocabulary: 'reference' (generic), 'definition' (defines the concept), 'evidence' (supporting evidence), 'investigate' (a live pivot to investigate), 'canonical' (the authoritative source)."
|
|
156
|
+
},
|
|
157
|
+
"mediaType": {
|
|
158
|
+
"type": "string",
|
|
159
|
+
"description": "IANA media type of the referenced artifact when retrievable (RFC 6838), e.g., 'application/json'. Meaningful only with `href`."
|
|
160
|
+
},
|
|
161
|
+
"checksum": {
|
|
162
|
+
"$ref": "#/$defs/Checksum",
|
|
163
|
+
"description": "Integrity hash of the referenced artifact. Reuses the HDF `Checksum` primitive (not STIX `hashes`). Meaningful only with a retrievable `href`."
|
|
164
|
+
},
|
|
165
|
+
"addedBy": {
|
|
166
|
+
"$ref": "#/$defs/Identity",
|
|
167
|
+
"description": "Who attached this reference. Lightweight, flat attribution — a reference overrides nothing, so it has no chaining/superseding/disposition."
|
|
168
|
+
},
|
|
169
|
+
"addedAt": {
|
|
170
|
+
"type": "string",
|
|
171
|
+
"format": "date-time",
|
|
172
|
+
"description": "When this reference was attached (RFC 3339 / trimmed-UTC per HDF timestamp convention)."
|
|
173
|
+
},
|
|
174
|
+
"kind": {
|
|
175
|
+
"type": "string",
|
|
176
|
+
"minLength": 1,
|
|
177
|
+
"description": "Open token classifying the referenced/embedded payload, turning a bare reference into an enrichment envelope. Deliberately open (like `sourceName`/`rel`), not a closed enum. Documented starter vocabulary: 'threat-intel' (STIX/CTI object), 'annotation' (human triage note), 'exploitation' (EPSS/KEV signal carried as context), 'advisory' (vendor/security advisory). Use the `x-` prefix for custom kinds."
|
|
178
|
+
},
|
|
179
|
+
"document": {
|
|
180
|
+
"type": "object",
|
|
181
|
+
"additionalProperties": true,
|
|
182
|
+
"description": "Optional lossless embedded copy of the referenced artifact — the raw STIX object, EPSS record, advisory, or annotation payload — preserved verbatim. Composes with `href`/`externalId` (which point at the artifact) and `checksum` (which ties the copy to the source): a single entry can both point and embed. HDF stays payload-agnostic — the content is carried untouched, never normalized into HDF fields — so this does not duplicate the source ontology (e.g. STIX rides here unchanged)."
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
"unevaluatedProperties": false,
|
|
186
|
+
"examples": [
|
|
187
|
+
{
|
|
188
|
+
"$comment": "By-identity: cite a CVE by its id in the 'cve' system without a URL — equivalently urn:cve:CVE-2021-44228.",
|
|
189
|
+
"sourceName": "cve",
|
|
190
|
+
"externalId": "CVE-2021-44228",
|
|
191
|
+
"rel": "definition"
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
"$comment": "By-identity AND by-locator together (anyOf, not oneOf) — an ATT&CK technique cited by id with its canonical URL.",
|
|
195
|
+
"sourceName": "mitre-att&ck",
|
|
196
|
+
"externalId": "T1059",
|
|
197
|
+
"href": "https://attack.mitre.org/techniques/T1059/",
|
|
198
|
+
"rel": "canonical"
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
"$comment": "By-locator to a retrievable STIX bundle, with integrity hash, media type, and attribution.",
|
|
202
|
+
"sourceName": "stix",
|
|
203
|
+
"href": "https://cti.example.org/bundles/log4shell.json",
|
|
204
|
+
"rel": "investigate",
|
|
205
|
+
"mediaType": "application/json",
|
|
206
|
+
"checksum": {
|
|
207
|
+
"algorithm": "sha256",
|
|
208
|
+
"value": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
|
209
|
+
},
|
|
210
|
+
"addedBy": {
|
|
211
|
+
"type": "email",
|
|
212
|
+
"identifier": "analyst@agency.gov"
|
|
213
|
+
},
|
|
214
|
+
"addedAt": "2026-07-26T00:00:00Z"
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"$comment": "Enrichment envelope: a STIX threat-intel object embedded losslessly in `document` and classified via `kind`, cited by id and pointed at by href — the pointer and the embedded copy compose. The payload rides verbatim; HDF does not normalize STIX fields.",
|
|
218
|
+
"sourceName": "stix",
|
|
219
|
+
"externalId": "vulnerability--f7c1b8e0-1234-4a2b-9c3d-000000000001",
|
|
220
|
+
"href": "https://cti.example.org/bundles/log4shell.json#vulnerability--f7c1b8e0-1234-4a2b-9c3d-000000000001",
|
|
221
|
+
"rel": "investigate",
|
|
222
|
+
"kind": "threat-intel",
|
|
223
|
+
"document": {
|
|
224
|
+
"type": "vulnerability",
|
|
225
|
+
"spec_version": "2.1",
|
|
226
|
+
"id": "vulnerability--f7c1b8e0-1234-4a2b-9c3d-000000000001",
|
|
227
|
+
"name": "CVE-2021-44228",
|
|
228
|
+
"external_references": [
|
|
229
|
+
{
|
|
230
|
+
"source_name": "cve",
|
|
231
|
+
"external_id": "CVE-2021-44228"
|
|
232
|
+
}
|
|
233
|
+
]
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
]
|
|
237
|
+
},
|
|
110
238
|
"Hash_Algorithm": {
|
|
111
239
|
"type": "string",
|
|
112
240
|
"enum": [
|
|
@@ -730,6 +858,13 @@
|
|
|
730
858
|
"Baseline_Metadata": {
|
|
731
859
|
"type": "object",
|
|
732
860
|
"properties": {
|
|
861
|
+
"externalReferences": {
|
|
862
|
+
"type": "array",
|
|
863
|
+
"items": {
|
|
864
|
+
"$ref": "#/$defs/External_Reference"
|
|
865
|
+
},
|
|
866
|
+
"description": "Optional references to external artifacts relevant to this baseline (CTI/STIX, advisories, source catalogs, or any URI-addressable artifact). Travels with the baseline definition. Inert context; see External_Reference."
|
|
867
|
+
},
|
|
733
868
|
"name": {
|
|
734
869
|
"type": "string",
|
|
735
870
|
"description": "The name - must be unique."
|
|
@@ -807,6 +942,13 @@
|
|
|
807
942
|
"Requirement_Core": {
|
|
808
943
|
"type": "object",
|
|
809
944
|
"properties": {
|
|
945
|
+
"externalReferences": {
|
|
946
|
+
"type": "array",
|
|
947
|
+
"items": {
|
|
948
|
+
"$ref": "#/$defs/External_Reference"
|
|
949
|
+
},
|
|
950
|
+
"description": "Optional references to external artifacts relevant to this requirement (CTI/STIX correlation, advisories, control/definition sources, or any URI-addressable artifact). Applies to both baseline requirement definitions and evaluated requirements. Inert context; see External_Reference."
|
|
951
|
+
},
|
|
810
952
|
"id": {
|
|
811
953
|
"type": "string",
|
|
812
954
|
"description": "The requirement identifier. Example: 'SV-238196'."
|
|
@@ -893,7 +1035,7 @@
|
|
|
893
1035
|
},
|
|
894
1036
|
"examples": [
|
|
895
1037
|
{
|
|
896
|
-
"$comment": "v3.1.x-style requirement: classification fields omitted. Consumers must continue to handle this shape under v3.
|
|
1038
|
+
"$comment": "v3.1.x-style requirement: classification fields omitted. Consumers must continue to handle this shape under v3.5.0 (backward compatibility).",
|
|
897
1039
|
"id": "SV-238196",
|
|
898
1040
|
"title": "The Ubuntu operating system must enforce password complexity",
|
|
899
1041
|
"impact": 0.5,
|
|
@@ -1030,9 +1172,9 @@
|
|
|
1030
1172
|
}
|
|
1031
1173
|
}
|
|
1032
1174
|
},
|
|
1033
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
1175
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.5.0": {
|
|
1034
1176
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1035
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
1177
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.5.0",
|
|
1036
1178
|
"title": "HDF Amendment Primitives",
|
|
1037
1179
|
"description": "Types for waivers, attestations, and POA&Ms that modify requirement compliance status.",
|
|
1038
1180
|
"$defs": {
|
|
@@ -1140,6 +1282,13 @@
|
|
|
1140
1282
|
]
|
|
1141
1283
|
},
|
|
1142
1284
|
"properties": {
|
|
1285
|
+
"externalReferences": {
|
|
1286
|
+
"type": "array",
|
|
1287
|
+
"items": {
|
|
1288
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.5.0#/$defs/External_Reference"
|
|
1289
|
+
},
|
|
1290
|
+
"description": "Optional references to the external artifacts behind this override (e.g. the STIX bundle/object, advisory, or CTI feed that motivated it). Inert context distinct from `evidence`; see External_Reference."
|
|
1291
|
+
},
|
|
1143
1292
|
"type": {
|
|
1144
1293
|
"$ref": "#/$defs/Override_Type",
|
|
1145
1294
|
"description": "The type of amendment."
|
|
@@ -1153,7 +1302,7 @@
|
|
|
1153
1302
|
"description": "Name of the baseline containing the requirement. Required when the system has multiple baselines with potentially overlapping requirement IDs."
|
|
1154
1303
|
},
|
|
1155
1304
|
"status": {
|
|
1156
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
1305
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.5.0#/$defs/Result_Status",
|
|
1157
1306
|
"description": "The new status this amendment sets. Optional when only impact is being overridden."
|
|
1158
1307
|
},
|
|
1159
1308
|
"impact": {
|
|
@@ -1165,7 +1314,7 @@
|
|
|
1165
1314
|
"description": "Justification for this amendment."
|
|
1166
1315
|
},
|
|
1167
1316
|
"appliedBy": {
|
|
1168
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1317
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.5.0#/$defs/Identity",
|
|
1169
1318
|
"description": "Identity of who applied this amendment."
|
|
1170
1319
|
},
|
|
1171
1320
|
"appliedAt": {
|
|
@@ -1181,20 +1330,20 @@
|
|
|
1181
1330
|
"evidence": {
|
|
1182
1331
|
"type": "array",
|
|
1183
1332
|
"items": {
|
|
1184
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1333
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.5.0#/$defs/Evidence"
|
|
1185
1334
|
},
|
|
1186
1335
|
"description": "Supporting evidence (screenshots, logs, URLs, documents)."
|
|
1187
1336
|
},
|
|
1188
1337
|
"signature": {
|
|
1189
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1338
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.5.0#/$defs/Signature",
|
|
1190
1339
|
"description": "Digital signature for non-repudiation."
|
|
1191
1340
|
},
|
|
1192
1341
|
"previousChecksum": {
|
|
1193
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1342
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.5.0#/$defs/Checksum",
|
|
1194
1343
|
"description": "Checksum of the prior amendment in the chain. Creates a tamper-evident linked list. Null for the first amendment."
|
|
1195
1344
|
},
|
|
1196
1345
|
"cvss": {
|
|
1197
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.
|
|
1346
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.5.0#/$defs/Cvss",
|
|
1198
1347
|
"$comment": "When present alongside impact.value on a riskAdjustment override, impact.value should be approximately cvss.computedScore / 10.0. Soft consistency rule — validators may warn but should not error. The cvss block makes Environmental/Threat enrichment auditable.",
|
|
1199
1348
|
"description": "Structured CVSS scoring data backing this override. Captures the rubric (which Environmental/Threat metrics the consumer modified, the recomputed score) used to justify a riskAdjustment. For other override types this is optional context."
|
|
1200
1349
|
},
|
|
@@ -1205,7 +1354,7 @@
|
|
|
1205
1354
|
"milestones": {
|
|
1206
1355
|
"type": "array",
|
|
1207
1356
|
"items": {
|
|
1208
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1357
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.5.0#/$defs/Milestone"
|
|
1209
1358
|
},
|
|
1210
1359
|
"description": "Remediation milestones (primarily for POA&M type amendments)."
|
|
1211
1360
|
},
|
|
@@ -1222,7 +1371,7 @@
|
|
|
1222
1371
|
"affectedPackages": {
|
|
1223
1372
|
"type": "array",
|
|
1224
1373
|
"items": {
|
|
1225
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.
|
|
1374
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.5.0#/$defs/Affected_Package"
|
|
1226
1375
|
},
|
|
1227
1376
|
"description": "Software packages this amendment is scoped to, distinct from componentRef (which scopes to an HDF-internal Component by UUID). Use when the source amendment format references packages by purl/cpe/name+version — e.g., VEX `affects[]` / `products[]`, OSCAL POA&M `subjects[]`, FedRAMP component-aware amendments. Symmetric with Evaluated_Requirement.affectedPackages, which scopes findings to the same package vocabulary. When omitted, the amendment applies system-wide (or only to componentRef when that is set)."
|
|
1228
1377
|
}
|
|
@@ -1355,9 +1504,9 @@
|
|
|
1355
1504
|
}
|
|
1356
1505
|
}
|
|
1357
1506
|
},
|
|
1358
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
1507
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.5.0": {
|
|
1359
1508
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1360
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
1509
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.5.0",
|
|
1361
1510
|
"title": "HDF Result Primitives",
|
|
1362
1511
|
"description": "Types for representing assessment results and statuses.",
|
|
1363
1512
|
"$defs": {
|
|
@@ -1488,9 +1637,9 @@
|
|
|
1488
1637
|
}
|
|
1489
1638
|
}
|
|
1490
1639
|
},
|
|
1491
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.
|
|
1640
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.5.0": {
|
|
1492
1641
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1493
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.
|
|
1642
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.5.0",
|
|
1494
1643
|
"title": "HDF CVSS Primitives",
|
|
1495
1644
|
"description": "Types for representing CVSS (Common Vulnerability Scoring System) data attached to assessment findings. Supports CVSS v2.0, v3.0, v3.1, and v4.0 metric groups (Base, Threat, Environmental, Supplemental).",
|
|
1496
1645
|
"$defs": {
|
|
@@ -1692,9 +1841,9 @@
|
|
|
1692
1841
|
}
|
|
1693
1842
|
}
|
|
1694
1843
|
},
|
|
1695
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.
|
|
1844
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.5.0": {
|
|
1696
1845
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1697
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.
|
|
1846
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.5.0",
|
|
1698
1847
|
"title": "HDF Affected Package Primitives",
|
|
1699
1848
|
"description": "Types for representing the software package(s) affected by a vulnerability finding.",
|
|
1700
1849
|
"$defs": {
|
|
@@ -1807,9 +1956,9 @@
|
|
|
1807
1956
|
}
|
|
1808
1957
|
}
|
|
1809
1958
|
},
|
|
1810
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
1959
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.5.0": {
|
|
1811
1960
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1812
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
1961
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.5.0",
|
|
1813
1962
|
"title": "HDF Extension Primitives",
|
|
1814
1963
|
"description": "Extension types for waivers, attestations, generators, and integrity.",
|
|
1815
1964
|
"$defs": {
|
|
@@ -1836,16 +1985,23 @@
|
|
|
1836
1985
|
}
|
|
1837
1986
|
],
|
|
1838
1987
|
"properties": {
|
|
1988
|
+
"externalReferences": {
|
|
1989
|
+
"type": "array",
|
|
1990
|
+
"items": {
|
|
1991
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.5.0#/$defs/External_Reference"
|
|
1992
|
+
},
|
|
1993
|
+
"description": "Optional references to the external artifacts behind this override (e.g. the STIX bundle/object or CTI feed motivating an E:A riskAdjustment). Inert context distinct from `evidence`; see External_Reference. Symmetric with Standalone_Override.externalReferences for the inline (results-embedded) override carrier."
|
|
1994
|
+
},
|
|
1839
1995
|
"type": {
|
|
1840
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
1996
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.5.0#/$defs/Override_Type",
|
|
1841
1997
|
"description": "The type of override applied to this requirement."
|
|
1842
1998
|
},
|
|
1843
1999
|
"status": {
|
|
1844
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
2000
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.5.0#/$defs/Result_Status",
|
|
1845
2001
|
"description": "The new status this override sets for the requirement. Optional when only impact is being overridden."
|
|
1846
2002
|
},
|
|
1847
2003
|
"impact": {
|
|
1848
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
2004
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.5.0#/$defs/Impact_Override",
|
|
1849
2005
|
"description": "Override to the requirement's impact score. At least one of status or impact must be set."
|
|
1850
2006
|
},
|
|
1851
2007
|
"reason": {
|
|
@@ -1853,7 +2009,7 @@
|
|
|
1853
2009
|
"description": "Explanation for why this override was applied."
|
|
1854
2010
|
},
|
|
1855
2011
|
"appliedBy": {
|
|
1856
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2012
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.5.0#/$defs/Identity",
|
|
1857
2013
|
"description": "Identity of who applied this override. For simple cases, use type 'simple' with just an identifier."
|
|
1858
2014
|
},
|
|
1859
2015
|
"appliedAt": {
|
|
@@ -1867,27 +2023,27 @@
|
|
|
1867
2023
|
"description": "Timestamp when this override expires and must be reviewed/renewed. REQUIRED - no permanent overrides allowed. ISO 8601 format."
|
|
1868
2024
|
},
|
|
1869
2025
|
"signature": {
|
|
1870
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2026
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.5.0#/$defs/Signature",
|
|
1871
2027
|
"description": "Optional digital signature for enhanced trust and non-repudiation. Supports hardware security tokens (PKCS#11/PKCS#12), Yubikeys, GPG keys, passkeys, and other signing methods."
|
|
1872
2028
|
},
|
|
1873
2029
|
"evidence": {
|
|
1874
2030
|
"type": "array",
|
|
1875
2031
|
"items": {
|
|
1876
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2032
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.5.0#/$defs/Evidence"
|
|
1877
2033
|
},
|
|
1878
2034
|
"description": "Supporting evidence for this override, such as screenshots demonstrating manual verification for attestations."
|
|
1879
2035
|
},
|
|
1880
2036
|
"previousChecksum": {
|
|
1881
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2037
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.5.0#/$defs/Checksum",
|
|
1882
2038
|
"description": "SHA-256 checksum of the previous amendment in chronological order. Creates a tamper-evident chain of amendments (similar to blockchain). Null for the first amendment on a requirement."
|
|
1883
2039
|
},
|
|
1884
2040
|
"cvss": {
|
|
1885
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.
|
|
2041
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.5.0#/$defs/Cvss",
|
|
1886
2042
|
"$comment": "When present alongside impact.value on a riskAdjustment override, impact.value should be approximately cvss.computedScore / 10.0. Soft consistency rule — validators may warn but should not error. The cvss block makes Environmental/Threat enrichment auditable.",
|
|
1887
2043
|
"description": "Structured CVSS scoring data backing this override. Captures the rubric (which Environmental/Threat metrics the consumer modified, the recomputed score) used to justify a riskAdjustment. For other override types this is optional context."
|
|
1888
2044
|
},
|
|
1889
2045
|
"justification": {
|
|
1890
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
2046
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.5.0#/$defs/Justification",
|
|
1891
2047
|
"description": "Structured controlled-vocabulary classification for why this override applies. Complements (does not replace) the free-text 'reason' field. Most useful on falsePositive and attestation overrides where the structured category enables filtering and lossless round-trip with VEX / OSCAL / FedRAMP DR. See the Justification primitive for the precedent vocabulary and rationale."
|
|
1892
2048
|
}
|
|
1893
2049
|
},
|
|
@@ -1916,6 +2072,34 @@
|
|
|
1916
2072
|
"appliedAt": "2026-04-14T10:00:00Z",
|
|
1917
2073
|
"expiresAt": "2026-10-14T00:00:00Z"
|
|
1918
2074
|
},
|
|
2075
|
+
{
|
|
2076
|
+
"$comment": "Inline riskAdjustment carrying the STIX source that motivated it via externalReferences (the enrichment envelope, with the raw sighting embedded losslessly in document). This is the shape the enrich pass writes onto Evaluated_Requirement.overrides[] for the E:A recompute.",
|
|
2077
|
+
"type": "riskAdjustment",
|
|
2078
|
+
"impact": {
|
|
2079
|
+
"value": 0.9
|
|
2080
|
+
},
|
|
2081
|
+
"reason": "CVE-2021-44228 actively exploited in the wild per STIX threat intelligence",
|
|
2082
|
+
"appliedBy": {
|
|
2083
|
+
"identifier": "secops@agency.gov",
|
|
2084
|
+
"type": "email"
|
|
2085
|
+
},
|
|
2086
|
+
"appliedAt": "2026-07-27T00:00:00Z",
|
|
2087
|
+
"expiresAt": "2026-10-25T00:00:00Z",
|
|
2088
|
+
"externalReferences": [
|
|
2089
|
+
{
|
|
2090
|
+
"sourceName": "stix",
|
|
2091
|
+
"externalId": "sighting--a1b2c3d4-0000-4a2b-9c3d-000000000002",
|
|
2092
|
+
"kind": "threat-intel",
|
|
2093
|
+
"rel": "evidence",
|
|
2094
|
+
"document": {
|
|
2095
|
+
"type": "sighting",
|
|
2096
|
+
"spec_version": "2.1",
|
|
2097
|
+
"id": "sighting--a1b2c3d4-0000-4a2b-9c3d-000000000002",
|
|
2098
|
+
"sighting_of_ref": "vulnerability--f7c1b8e0-1234-4a2b-9c3d-000000000001"
|
|
2099
|
+
}
|
|
2100
|
+
}
|
|
2101
|
+
]
|
|
2102
|
+
},
|
|
1919
2103
|
{
|
|
1920
2104
|
"type": "falsePositive",
|
|
1921
2105
|
"status": "passed",
|
|
@@ -1975,7 +2159,8 @@
|
|
|
1975
2159
|
"type",
|
|
1976
2160
|
"explanation",
|
|
1977
2161
|
"appliedBy",
|
|
1978
|
-
"appliedAt"
|
|
2162
|
+
"appliedAt",
|
|
2163
|
+
"expiresAt"
|
|
1979
2164
|
],
|
|
1980
2165
|
"properties": {
|
|
1981
2166
|
"type": {
|
|
@@ -1994,7 +2179,7 @@
|
|
|
1994
2179
|
"description": "Detailed explanation of the plan, including what actions will be taken."
|
|
1995
2180
|
},
|
|
1996
2181
|
"appliedBy": {
|
|
1997
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2182
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.5.0#/$defs/Identity",
|
|
1998
2183
|
"description": "Identity of who created this POA&M. For simple cases, use type 'simple' with just an identifier."
|
|
1999
2184
|
},
|
|
2000
2185
|
"appliedAt": {
|
|
@@ -2005,28 +2190,28 @@
|
|
|
2005
2190
|
"expiresAt": {
|
|
2006
2191
|
"type": "string",
|
|
2007
2192
|
"format": "date-time",
|
|
2008
|
-
"description": "
|
|
2193
|
+
"description": "Required deadline for this POA&M. A POA&M is a time-boxed acceptance of an open finding; without a deadline it lets a failing requirement duck remediation indefinitely. Source a real date (e.g. a remediation target or vendor-fix date) — never a wall-clock default. ISO 8601 format."
|
|
2009
2194
|
},
|
|
2010
2195
|
"milestones": {
|
|
2011
2196
|
"type": "array",
|
|
2012
2197
|
"items": {
|
|
2013
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2198
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.5.0#/$defs/Milestone"
|
|
2014
2199
|
},
|
|
2015
2200
|
"description": "Optional array of milestones tracking progress toward completion."
|
|
2016
2201
|
},
|
|
2017
2202
|
"signature": {
|
|
2018
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2203
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.5.0#/$defs/Signature",
|
|
2019
2204
|
"description": "Optional digital signature for enhanced trust and non-repudiation."
|
|
2020
2205
|
},
|
|
2021
2206
|
"evidence": {
|
|
2022
2207
|
"type": "array",
|
|
2023
2208
|
"items": {
|
|
2024
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2209
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.5.0#/$defs/Evidence"
|
|
2025
2210
|
},
|
|
2026
2211
|
"description": "Supporting evidence for this POA&M, such as documentation of compensating controls or mitigation implementation."
|
|
2027
2212
|
},
|
|
2028
2213
|
"previousChecksum": {
|
|
2029
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2214
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.5.0#/$defs/Checksum",
|
|
2030
2215
|
"description": "SHA-256 checksum of the previous amendment in chronological order. Creates a tamper-evident chain of amendments (similar to blockchain). Null for the first amendment on a requirement."
|
|
2031
2216
|
}
|
|
2032
2217
|
},
|
|
@@ -2039,6 +2224,7 @@
|
|
|
2039
2224
|
"type": "email"
|
|
2040
2225
|
},
|
|
2041
2226
|
"appliedAt": "2025-12-01T09:00:00Z",
|
|
2227
|
+
"expiresAt": "2099-12-31T00:00:00Z",
|
|
2042
2228
|
"milestones": [
|
|
2043
2229
|
{
|
|
2044
2230
|
"description": "Update base Docker image to use OpenSSL 3.0.x",
|
|
@@ -2071,7 +2257,7 @@
|
|
|
2071
2257
|
"description": "Automated POA&M creation from vulnerability scan"
|
|
2072
2258
|
},
|
|
2073
2259
|
"appliedAt": "2025-11-28T14:00:00Z",
|
|
2074
|
-
"expiresAt": "
|
|
2260
|
+
"expiresAt": "2099-12-31T00:00:00Z",
|
|
2075
2261
|
"milestones": [
|
|
2076
2262
|
{
|
|
2077
2263
|
"description": "Configure firewall rules to restrict database access to management VLAN",
|
|
@@ -2106,7 +2292,7 @@
|
|
|
2106
2292
|
"type": "email"
|
|
2107
2293
|
},
|
|
2108
2294
|
"appliedAt": "2025-12-05T10:00:00Z",
|
|
2109
|
-
"expiresAt": "
|
|
2295
|
+
"expiresAt": "2099-12-31T00:00:00Z",
|
|
2110
2296
|
"milestones": [
|
|
2111
2297
|
{
|
|
2112
2298
|
"description": "Complete migration to replacement system",
|
|
@@ -2158,7 +2344,8 @@
|
|
|
2158
2344
|
},
|
|
2159
2345
|
"format": {
|
|
2160
2346
|
"type": "string",
|
|
2161
|
-
"description": "The
|
|
2347
|
+
"description": "The named format of the source data, when it follows a recognized format specification with its own identity: an interchange format emitted by many tools ('SARIF', 'XCCDF', 'OSCAL') or one of several named output formats a single tool produces ('FVDL', 'exec-json', 'FPF'). Never a serialization structure — 'JSON', 'XML', and 'CSV' are encodings, not formats. Omit for a tool's native output: an absent format means the tool's own shape, and data arriving as a named format is converted by that format's converter, which sets this field alongside the producing tool's name.",
|
|
2348
|
+
"$comment": "Format-not-serialization rule decided 2026-08-01; bare JSON/XML/CSV labels were swept from the converters at the same time."
|
|
2162
2349
|
}
|
|
2163
2350
|
},
|
|
2164
2351
|
"description": "The security tool that produced the assessment data represented in this HDF file. Aligns with SARIF, OSCAL, and CycloneDX terminology.",
|
|
@@ -2177,7 +2364,7 @@
|
|
|
2177
2364
|
},
|
|
2178
2365
|
"properties": {
|
|
2179
2366
|
"algorithm": {
|
|
2180
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2367
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.5.0#/$defs/Hash_Algorithm",
|
|
2181
2368
|
"description": "The hash algorithm used for the checksum."
|
|
2182
2369
|
},
|
|
2183
2370
|
"checksum": {
|