@mitre/hdf-schema 3.3.2 → 3.4.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 +10 -0
- package/dist/go/hdf.go +473 -117
- package/dist/index.d.ts +1 -0
- package/dist/index.js +26 -25
- package/dist/schemas/hdf-amendments.schema.json +53 -46
- package/dist/schemas/hdf-baseline.schema.json +58 -51
- package/dist/schemas/hdf-comparison.schema.json +846 -243
- package/dist/schemas/hdf-evidence-package.schema.json +204 -51
- package/dist/schemas/hdf-plan.schema.json +58 -51
- package/dist/schemas/hdf-results.schema.json +785 -214
- package/dist/schemas/hdf-system.schema.json +760 -187
- package/dist/ts/hdf.d.ts +517 -52
- package/dist/ts/hdf.js +42 -14
- package/dist/ts/hdf.ts +526 -52
- 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-evidence-package/v3.
|
|
3
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/hdf-evidence-package/v3.4.0",
|
|
4
4
|
"title": "HDF Evidence Package",
|
|
5
5
|
"description": "Bundles references to all HDF documents for audit, authorization, and compliance review. Each content entry references a document by type, URI, and checksum for integrity verification.",
|
|
6
6
|
"type": "object",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"description": "URI to the hdf-plan document that drove this assessment. Used for completeness verification — every baseline in the plan should have a corresponding results document in this package."
|
|
35
35
|
},
|
|
36
36
|
"preparedBy": {
|
|
37
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
37
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.4.0#/$defs/Identity",
|
|
38
38
|
"description": "Identity of who prepared this evidence package."
|
|
39
39
|
},
|
|
40
40
|
"preparedAt": {
|
|
@@ -50,12 +50,19 @@
|
|
|
50
50
|
},
|
|
51
51
|
"description": "References to HDF documents included in this evidence package."
|
|
52
52
|
},
|
|
53
|
+
"externalEvidence": {
|
|
54
|
+
"type": "array",
|
|
55
|
+
"items": {
|
|
56
|
+
"$ref": "#/$defs/External_Evidence_Reference"
|
|
57
|
+
},
|
|
58
|
+
"description": "References to external native-format evidence (log/telemetry corpora and other artifacts) carried by URI + integrity hash + format discriminator, without recreating the data inside HDF. Logs in ECS/OCSF/etc. are legitimate accreditation evidence; HDF indexes them here rather than transcoding them."
|
|
59
|
+
},
|
|
53
60
|
"completenessCheck": {
|
|
54
61
|
"$ref": "#/$defs/Completeness_Check",
|
|
55
62
|
"description": "Summary of assessment completeness and compliance status."
|
|
56
63
|
},
|
|
57
64
|
"signature": {
|
|
58
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
65
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.4.0#/$defs/Signature",
|
|
59
66
|
"description": "Digital signature covering the entire evidence package."
|
|
60
67
|
},
|
|
61
68
|
"labels": {
|
|
@@ -66,7 +73,7 @@
|
|
|
66
73
|
"description": "Optional key-value labels for grouping and querying evidence packages."
|
|
67
74
|
},
|
|
68
75
|
"integrity": {
|
|
69
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
76
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.4.0#/$defs/Integrity",
|
|
70
77
|
"description": "Cryptographic integrity information for verifying this evidence package has not been tampered with."
|
|
71
78
|
},
|
|
72
79
|
"version": {
|
|
@@ -74,7 +81,7 @@
|
|
|
74
81
|
"description": "Version of this evidence package."
|
|
75
82
|
},
|
|
76
83
|
"generator": {
|
|
77
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
84
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.4.0#/$defs/Generator",
|
|
78
85
|
"description": "Information about the tool that generated this document."
|
|
79
86
|
}
|
|
80
87
|
},
|
|
@@ -88,9 +95,9 @@
|
|
|
88
95
|
"hdf-results",
|
|
89
96
|
"hdf-amendments",
|
|
90
97
|
"hdf-comparison",
|
|
91
|
-
"
|
|
98
|
+
"bom"
|
|
92
99
|
],
|
|
93
|
-
"description": "The type of document referenced in the evidence package.",
|
|
100
|
+
"description": "The type of document referenced in the evidence package. 'bom' covers any Bill-of-Materials/manifest document (SBOM, AI model/dataset, and reserved future kinds) — its specific kind is carried by the referenced document's bomType, not by a per-kind Content_Type value.",
|
|
94
101
|
"title": "Content Type"
|
|
95
102
|
},
|
|
96
103
|
"Content_Reference": {
|
|
@@ -111,7 +118,7 @@
|
|
|
111
118
|
"description": "URI to the document. Can be a relative path or absolute URL."
|
|
112
119
|
},
|
|
113
120
|
"checksum": {
|
|
114
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
121
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.4.0#/$defs/Checksum",
|
|
115
122
|
"description": "Cryptographic checksum for verifying the referenced document's integrity."
|
|
116
123
|
},
|
|
117
124
|
"description": {
|
|
@@ -143,14 +150,151 @@
|
|
|
143
150
|
"description": "March 2026 monthly scan results"
|
|
144
151
|
},
|
|
145
152
|
{
|
|
146
|
-
"type": "
|
|
153
|
+
"type": "bom",
|
|
147
154
|
"uri": "https://artifacts.agency.gov/sbom/webtier.cdx.json",
|
|
148
|
-
"description": "WebTier CycloneDX SBOM"
|
|
155
|
+
"description": "WebTier CycloneDX SBOM (bomType=sbom)"
|
|
149
156
|
}
|
|
150
157
|
],
|
|
151
|
-
"description": "A reference to an HDF document or
|
|
158
|
+
"description": "A reference to an HDF document or BOM/manifest included in the evidence package.",
|
|
152
159
|
"title": "Content Reference"
|
|
153
160
|
},
|
|
161
|
+
"External_Evidence_Format": {
|
|
162
|
+
"type": "string",
|
|
163
|
+
"title": "External Evidence Format",
|
|
164
|
+
"anyOf": [
|
|
165
|
+
{
|
|
166
|
+
"enum": [
|
|
167
|
+
"ecs",
|
|
168
|
+
"ocsf",
|
|
169
|
+
"cyclonedx",
|
|
170
|
+
"spdx",
|
|
171
|
+
"raw-log"
|
|
172
|
+
]
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"pattern": "^x-[a-z0-9]+(-[a-z0-9]+)*$"
|
|
176
|
+
}
|
|
177
|
+
],
|
|
178
|
+
"description": "The native format of the referenced external evidence. Reserved values are OPEN, referenceable, serialized standards: ecs (Elastic Common Schema), ocsf (Open Cybersecurity Schema Framework), cyclonedx, spdx, raw-log (unstructured/native logs). Custom or vendor-specific kinds MUST use an 'x-' prefix (e.g. 'x-splunk-export') so they cannot collide with a value later promoted into the reserved set. Adding a reserved value is a schema version bump.",
|
|
179
|
+
"$comment": "Reserved values must be OPEN, serialized, uri+hash-referenceable artifacts. Query-time normalization MODELS are deliberately EXCLUDED because they have no portable stored artifact to reference: Splunk CIM is a search-time 'schema-on-the-fly' over Splunk-internal indexes, and Microsoft ASIM is a set of query-time KQL parsers over Sentinel tables. To carry Splunk/Sentinel-derived evidence, reference its EXPORTED result set (JSON/CSV/NDJSON) via an 'x-' format + mediaType — never the model name. 'schema-one' is intentionally NOT yet reserved: it has no open public spec (as of 2026-07), and reserving a value whose shape/version is unverified would violate the fixture-integrity rule; it will be added once the authoritative spec is obtained. Carriage is reference-only and never parses the payload, so a large/complex or spec-gated format (e.g. Schema One) is still referenceable as an opaque 'x-' value."
|
|
180
|
+
},
|
|
181
|
+
"External_Evidence_Time_Range": {
|
|
182
|
+
"type": "object",
|
|
183
|
+
"title": "External Evidence Time Range",
|
|
184
|
+
"unevaluatedProperties": false,
|
|
185
|
+
"properties": {
|
|
186
|
+
"start": {
|
|
187
|
+
"type": "string",
|
|
188
|
+
"format": "date-time",
|
|
189
|
+
"description": "Start of the time window the corpus covers (ISO 8601)."
|
|
190
|
+
},
|
|
191
|
+
"end": {
|
|
192
|
+
"type": "string",
|
|
193
|
+
"format": "date-time",
|
|
194
|
+
"description": "End of the time window the corpus covers (ISO 8601)."
|
|
195
|
+
}
|
|
196
|
+
},
|
|
197
|
+
"description": "The time window a referenced external evidence corpus covers."
|
|
198
|
+
},
|
|
199
|
+
"External_Evidence_Metadata": {
|
|
200
|
+
"type": "object",
|
|
201
|
+
"title": "External Evidence Metadata",
|
|
202
|
+
"unevaluatedProperties": false,
|
|
203
|
+
"properties": {
|
|
204
|
+
"recordCount": {
|
|
205
|
+
"type": "integer",
|
|
206
|
+
"minimum": 0,
|
|
207
|
+
"description": "Approximate number of records/events in the referenced corpus."
|
|
208
|
+
},
|
|
209
|
+
"timeRange": {
|
|
210
|
+
"$ref": "#/$defs/External_Evidence_Time_Range",
|
|
211
|
+
"description": "The time window the referenced evidence covers."
|
|
212
|
+
},
|
|
213
|
+
"collector": {
|
|
214
|
+
"type": "string",
|
|
215
|
+
"description": "The tool/pipeline that collected or produced the corpus. Example: 'aws-security-lake', 'elastic-agent'."
|
|
216
|
+
}
|
|
217
|
+
},
|
|
218
|
+
"description": "Descriptive metadata about a referenced external evidence corpus. Does not affect integrity."
|
|
219
|
+
},
|
|
220
|
+
"External_Evidence_Reference": {
|
|
221
|
+
"type": "object",
|
|
222
|
+
"unevaluatedProperties": false,
|
|
223
|
+
"required": [
|
|
224
|
+
"uri",
|
|
225
|
+
"format"
|
|
226
|
+
],
|
|
227
|
+
"properties": {
|
|
228
|
+
"uri": {
|
|
229
|
+
"type": "string",
|
|
230
|
+
"format": "uri-reference",
|
|
231
|
+
"description": "URI to the external native-format evidence artifact (log/telemetry corpus, etc.). Can be a relative path or absolute URL. The data stays canonical in its native format — HDF references it, never parses or transcodes it."
|
|
232
|
+
},
|
|
233
|
+
"format": {
|
|
234
|
+
"$ref": "#/$defs/External_Evidence_Format",
|
|
235
|
+
"description": "The native format discriminator of the referenced artifact."
|
|
236
|
+
},
|
|
237
|
+
"checksum": {
|
|
238
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.4.0#/$defs/Checksum",
|
|
239
|
+
"description": "Cryptographic checksum of the referenced artifact for integrity verification.",
|
|
240
|
+
"$comment": "Strongly recommended for external evidence — a point-in-time reference without an integrity hash is weakly auditable. Kept out of `description` so this usage-specific note does not aggregate into the shared Checksum type's generated Go doc comment (quicktype concatenates $ref-sibling descriptions onto the referenced type)."
|
|
241
|
+
},
|
|
242
|
+
"mediaType": {
|
|
243
|
+
"type": "string",
|
|
244
|
+
"description": "Optional IANA media type describing the on-disk serialization, orthogonal to 'format' (the semantic standard). Examples: application/x-ndjson, application/json, application/vnd.apache.parquet, text/csv."
|
|
245
|
+
},
|
|
246
|
+
"formatVersion": {
|
|
247
|
+
"type": "string",
|
|
248
|
+
"description": "Optional producer-declared version of the format (e.g. ECS '9.4.0', OCSF '1.8.0'). Free-text and untrusted — HDF does not validate it against a registry."
|
|
249
|
+
},
|
|
250
|
+
"description": {
|
|
251
|
+
"type": "string",
|
|
252
|
+
"description": "Optional human-readable description of this evidence entry."
|
|
253
|
+
},
|
|
254
|
+
"metadata": {
|
|
255
|
+
"$ref": "#/$defs/External_Evidence_Metadata",
|
|
256
|
+
"description": "Optional descriptive metadata about the referenced corpus. Does not affect integrity."
|
|
257
|
+
}
|
|
258
|
+
},
|
|
259
|
+
"examples": [
|
|
260
|
+
{
|
|
261
|
+
"$comment": "ECS log corpus carried by reference (NDJSON) — HDF never parses it; the hash pins integrity.",
|
|
262
|
+
"uri": "https://evidence.agency.gov/logs/portal-2026-q1.ndjson",
|
|
263
|
+
"format": "ecs",
|
|
264
|
+
"formatVersion": "9.4.0",
|
|
265
|
+
"mediaType": "application/x-ndjson",
|
|
266
|
+
"checksum": {
|
|
267
|
+
"algorithm": "sha256",
|
|
268
|
+
"value": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
|
269
|
+
},
|
|
270
|
+
"metadata": {
|
|
271
|
+
"recordCount": 4200000,
|
|
272
|
+
"timeRange": {
|
|
273
|
+
"start": "2026-01-01T00:00:00Z",
|
|
274
|
+
"end": "2026-03-31T23:59:59Z"
|
|
275
|
+
},
|
|
276
|
+
"collector": "elastic-agent"
|
|
277
|
+
}
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
"$comment": "OCSF telemetry landed as Parquet in a security data lake.",
|
|
281
|
+
"uri": "s3://agency-security-lake/ocsf/portal/2026/q1/",
|
|
282
|
+
"format": "ocsf",
|
|
283
|
+
"formatVersion": "1.8.0",
|
|
284
|
+
"mediaType": "application/vnd.apache.parquet",
|
|
285
|
+
"collector": "aws-security-lake"
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
"$comment": "A Splunk export carried as an opaque x- custom format — CIM/ASIM are query-time models, so reference the EXPORT, not the model.",
|
|
289
|
+
"uri": "siem/auth-events-2026-q1.json",
|
|
290
|
+
"format": "x-splunk-export",
|
|
291
|
+
"mediaType": "application/json"
|
|
292
|
+
}
|
|
293
|
+
],
|
|
294
|
+
"description": "A reference to external native-format evidence (log/telemetry corpus or other artifact) carried by URI + integrity hash + format discriminator. Reference-only: the artifact is never embedded (corpora can be huge) or transcoded (that would be lossy) — it stays canonical in its native format and HDF acts as the structured index.",
|
|
295
|
+
"$comment": "Deliberately distinct from two look-alike primitives — the shared DRY is the common Checksum type, not the container. Bom (boms[] on components/system) models component COMPOSITION and is richer: also embeddable (document) and normalizable into HDF's queryable shape (packages/model/dataset). Content_Reference (contents[]) references HDF-ECOSYSTEM documents and BOMs by Content_Type. External_Evidence_Reference is reference-only and OPAQUE (HDF never inspects it), for NATIVE non-HDF log/telemetry corpora indexed as accreditation evidence; it carries log-specific metadata (recordCount/timeRange/collector) the other two do not. Do not merge these — collapsing them would mix incompatible discriminator axes and lose Bom's normalization.",
|
|
296
|
+
"title": "External Evidence Reference"
|
|
297
|
+
},
|
|
154
298
|
"SBOM_Coverage": {
|
|
155
299
|
"type": "object",
|
|
156
300
|
"unevaluatedProperties": false,
|
|
@@ -167,6 +311,7 @@
|
|
|
167
311
|
}
|
|
168
312
|
},
|
|
169
313
|
"description": "SBOM coverage statistics for the system.",
|
|
314
|
+
"$comment": "This metric intentionally measures SOFTWARE (SBOM) inventory coverage only. Coverage accounting for ai-model/dataset/other BOM kinds is deliberately out of scope for now; a future generalized bomCoverage metric may be added. This is a distinct software-inventory metric, not an oversight of the Content_Type 'sbom'->'bom' generalization — do not rename or generalize it.",
|
|
170
315
|
"title": "SBOM Coverage"
|
|
171
316
|
},
|
|
172
317
|
"Completeness_Check": {
|
|
@@ -199,15 +344,16 @@
|
|
|
199
344
|
},
|
|
200
345
|
"sbomCoverage": {
|
|
201
346
|
"$ref": "#/$defs/SBOM_Coverage",
|
|
202
|
-
"description": "SBOM coverage across system components."
|
|
347
|
+
"description": "SBOM coverage across system components.",
|
|
348
|
+
"$comment": "Intentionally software-inventory (SBOM) coverage only; ai-model/dataset/other BOM kinds are out of scope for this metric for now."
|
|
203
349
|
}
|
|
204
350
|
},
|
|
205
351
|
"description": "Informational summary of assessment completeness. Not authoritative — tools should compute these from the referenced documents.",
|
|
206
352
|
"title": "Completeness Check"
|
|
207
353
|
},
|
|
208
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
354
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.4.0": {
|
|
209
355
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
210
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
356
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.4.0",
|
|
211
357
|
"title": "HDF Common Primitives",
|
|
212
358
|
"description": "Shared building blocks used by hdf-results and hdf-baseline schemas.",
|
|
213
359
|
"$defs": {
|
|
@@ -216,9 +362,10 @@
|
|
|
216
362
|
"enum": [
|
|
217
363
|
"sha256",
|
|
218
364
|
"sha384",
|
|
219
|
-
"sha512"
|
|
365
|
+
"sha512",
|
|
366
|
+
"blake3"
|
|
220
367
|
],
|
|
221
|
-
"description": "Supported cryptographic hash algorithms for checksums and integrity verification.",
|
|
368
|
+
"description": "Supported cryptographic hash algorithms for checksums and integrity verification. blake3 covers container-image and other artifact digests that use it.",
|
|
222
369
|
"title": "Hash Algorithm"
|
|
223
370
|
},
|
|
224
371
|
"Requirement_Group": {
|
|
@@ -479,10 +626,11 @@
|
|
|
479
626
|
"email",
|
|
480
627
|
"username",
|
|
481
628
|
"system",
|
|
629
|
+
"agent",
|
|
482
630
|
"simple",
|
|
483
631
|
"other"
|
|
484
632
|
],
|
|
485
|
-
"description": "The type of identifier. Use 'email' for email addresses, 'username' for user accounts, 'system' for
|
|
633
|
+
"description": "The type of identifier. Use 'email' for email addresses, 'username' for user accounts, 'system' for deterministic non-interactive automation (CI jobs, cron, scanners), 'agent' for an AI/LLM agent acting with autonomy — kept distinct from 'system' so auditors can apply AI-specific scrutiny (e.g. 'an LLM proposed this' vs a deterministic job) and satisfy AI-source disclosure under frameworks like the EU AI Act and NIST AI RMF, 'simple' for basic string identifiers without additional classification, or 'other' for custom identity systems."
|
|
486
634
|
},
|
|
487
635
|
"description": {
|
|
488
636
|
"type": "string",
|
|
@@ -503,6 +651,11 @@
|
|
|
503
651
|
"type": "system",
|
|
504
652
|
"identifier": "automated-scanner-01",
|
|
505
653
|
"description": "Nightly compliance scan pipeline"
|
|
654
|
+
},
|
|
655
|
+
{
|
|
656
|
+
"type": "agent",
|
|
657
|
+
"identifier": "cve-enrichment-bot/v0.4.2",
|
|
658
|
+
"description": "OpenAI GPT-4 via internal CVE-enrichment tool; proposes environmental CVSS for human review"
|
|
506
659
|
}
|
|
507
660
|
],
|
|
508
661
|
"description": "Represents an identity that performed an action, such as capturing evidence or applying an override.",
|
|
@@ -990,7 +1143,7 @@
|
|
|
990
1143
|
},
|
|
991
1144
|
"examples": [
|
|
992
1145
|
{
|
|
993
|
-
"$comment": "v3.1.x-style requirement: classification fields omitted. Consumers must continue to handle this shape under v3.
|
|
1146
|
+
"$comment": "v3.1.x-style requirement: classification fields omitted. Consumers must continue to handle this shape under v3.4.0 (backward compatibility).",
|
|
994
1147
|
"id": "SV-238196",
|
|
995
1148
|
"title": "The Ubuntu operating system must enforce password complexity",
|
|
996
1149
|
"impact": 0.5,
|
|
@@ -1127,9 +1280,9 @@
|
|
|
1127
1280
|
}
|
|
1128
1281
|
}
|
|
1129
1282
|
},
|
|
1130
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
1283
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.4.0": {
|
|
1131
1284
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1132
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
1285
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.4.0",
|
|
1133
1286
|
"title": "HDF Extension Primitives",
|
|
1134
1287
|
"description": "Extension types for waivers, attestations, generators, and integrity.",
|
|
1135
1288
|
"$defs": {
|
|
@@ -1157,15 +1310,15 @@
|
|
|
1157
1310
|
],
|
|
1158
1311
|
"properties": {
|
|
1159
1312
|
"type": {
|
|
1160
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
1313
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.4.0#/$defs/Override_Type",
|
|
1161
1314
|
"description": "The type of override applied to this requirement."
|
|
1162
1315
|
},
|
|
1163
1316
|
"status": {
|
|
1164
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
1317
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.4.0#/$defs/Result_Status",
|
|
1165
1318
|
"description": "The new status this override sets for the requirement. Optional when only impact is being overridden."
|
|
1166
1319
|
},
|
|
1167
1320
|
"impact": {
|
|
1168
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
1321
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.4.0#/$defs/Impact_Override",
|
|
1169
1322
|
"description": "Override to the requirement's impact score. At least one of status or impact must be set."
|
|
1170
1323
|
},
|
|
1171
1324
|
"reason": {
|
|
@@ -1173,7 +1326,7 @@
|
|
|
1173
1326
|
"description": "Explanation for why this override was applied."
|
|
1174
1327
|
},
|
|
1175
1328
|
"appliedBy": {
|
|
1176
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1329
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.4.0#/$defs/Identity",
|
|
1177
1330
|
"description": "Identity of who applied this override. For simple cases, use type 'simple' with just an identifier."
|
|
1178
1331
|
},
|
|
1179
1332
|
"appliedAt": {
|
|
@@ -1187,27 +1340,27 @@
|
|
|
1187
1340
|
"description": "Timestamp when this override expires and must be reviewed/renewed. REQUIRED - no permanent overrides allowed. ISO 8601 format."
|
|
1188
1341
|
},
|
|
1189
1342
|
"signature": {
|
|
1190
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1343
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.4.0#/$defs/Signature",
|
|
1191
1344
|
"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."
|
|
1192
1345
|
},
|
|
1193
1346
|
"evidence": {
|
|
1194
1347
|
"type": "array",
|
|
1195
1348
|
"items": {
|
|
1196
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1349
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.4.0#/$defs/Evidence"
|
|
1197
1350
|
},
|
|
1198
1351
|
"description": "Supporting evidence for this override, such as screenshots demonstrating manual verification for attestations."
|
|
1199
1352
|
},
|
|
1200
1353
|
"previousChecksum": {
|
|
1201
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1354
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.4.0#/$defs/Checksum",
|
|
1202
1355
|
"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."
|
|
1203
1356
|
},
|
|
1204
1357
|
"cvss": {
|
|
1205
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.
|
|
1358
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.4.0#/$defs/Cvss",
|
|
1206
1359
|
"$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.",
|
|
1207
1360
|
"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."
|
|
1208
1361
|
},
|
|
1209
1362
|
"justification": {
|
|
1210
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
1363
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.4.0#/$defs/Justification",
|
|
1211
1364
|
"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."
|
|
1212
1365
|
}
|
|
1213
1366
|
},
|
|
@@ -1314,7 +1467,7 @@
|
|
|
1314
1467
|
"description": "Detailed explanation of the plan, including what actions will be taken."
|
|
1315
1468
|
},
|
|
1316
1469
|
"appliedBy": {
|
|
1317
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1470
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.4.0#/$defs/Identity",
|
|
1318
1471
|
"description": "Identity of who created this POA&M. For simple cases, use type 'simple' with just an identifier."
|
|
1319
1472
|
},
|
|
1320
1473
|
"appliedAt": {
|
|
@@ -1330,23 +1483,23 @@
|
|
|
1330
1483
|
"milestones": {
|
|
1331
1484
|
"type": "array",
|
|
1332
1485
|
"items": {
|
|
1333
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1486
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.4.0#/$defs/Milestone"
|
|
1334
1487
|
},
|
|
1335
1488
|
"description": "Optional array of milestones tracking progress toward completion."
|
|
1336
1489
|
},
|
|
1337
1490
|
"signature": {
|
|
1338
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1491
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.4.0#/$defs/Signature",
|
|
1339
1492
|
"description": "Optional digital signature for enhanced trust and non-repudiation."
|
|
1340
1493
|
},
|
|
1341
1494
|
"evidence": {
|
|
1342
1495
|
"type": "array",
|
|
1343
1496
|
"items": {
|
|
1344
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1497
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.4.0#/$defs/Evidence"
|
|
1345
1498
|
},
|
|
1346
1499
|
"description": "Supporting evidence for this POA&M, such as documentation of compensating controls or mitigation implementation."
|
|
1347
1500
|
},
|
|
1348
1501
|
"previousChecksum": {
|
|
1349
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1502
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.4.0#/$defs/Checksum",
|
|
1350
1503
|
"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."
|
|
1351
1504
|
}
|
|
1352
1505
|
},
|
|
@@ -1497,7 +1650,7 @@
|
|
|
1497
1650
|
},
|
|
1498
1651
|
"properties": {
|
|
1499
1652
|
"algorithm": {
|
|
1500
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1653
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.4.0#/$defs/Hash_Algorithm",
|
|
1501
1654
|
"description": "The hash algorithm used for the checksum."
|
|
1502
1655
|
},
|
|
1503
1656
|
"checksum": {
|
|
@@ -1530,9 +1683,9 @@
|
|
|
1530
1683
|
}
|
|
1531
1684
|
}
|
|
1532
1685
|
},
|
|
1533
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
1686
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.4.0": {
|
|
1534
1687
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1535
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
1688
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.4.0",
|
|
1536
1689
|
"title": "HDF Amendment Primitives",
|
|
1537
1690
|
"description": "Types for waivers, attestations, and POA&Ms that modify requirement compliance status.",
|
|
1538
1691
|
"$defs": {
|
|
@@ -1653,7 +1806,7 @@
|
|
|
1653
1806
|
"description": "Name of the baseline containing the requirement. Required when the system has multiple baselines with potentially overlapping requirement IDs."
|
|
1654
1807
|
},
|
|
1655
1808
|
"status": {
|
|
1656
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
1809
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.4.0#/$defs/Result_Status",
|
|
1657
1810
|
"description": "The new status this amendment sets. Optional when only impact is being overridden."
|
|
1658
1811
|
},
|
|
1659
1812
|
"impact": {
|
|
@@ -1665,7 +1818,7 @@
|
|
|
1665
1818
|
"description": "Justification for this amendment."
|
|
1666
1819
|
},
|
|
1667
1820
|
"appliedBy": {
|
|
1668
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1821
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.4.0#/$defs/Identity",
|
|
1669
1822
|
"description": "Identity of who applied this amendment."
|
|
1670
1823
|
},
|
|
1671
1824
|
"appliedAt": {
|
|
@@ -1681,20 +1834,20 @@
|
|
|
1681
1834
|
"evidence": {
|
|
1682
1835
|
"type": "array",
|
|
1683
1836
|
"items": {
|
|
1684
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1837
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.4.0#/$defs/Evidence"
|
|
1685
1838
|
},
|
|
1686
1839
|
"description": "Supporting evidence (screenshots, logs, URLs, documents)."
|
|
1687
1840
|
},
|
|
1688
1841
|
"signature": {
|
|
1689
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1842
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.4.0#/$defs/Signature",
|
|
1690
1843
|
"description": "Digital signature for non-repudiation."
|
|
1691
1844
|
},
|
|
1692
1845
|
"previousChecksum": {
|
|
1693
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1846
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.4.0#/$defs/Checksum",
|
|
1694
1847
|
"description": "Checksum of the prior amendment in the chain. Creates a tamper-evident linked list. Null for the first amendment."
|
|
1695
1848
|
},
|
|
1696
1849
|
"cvss": {
|
|
1697
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.
|
|
1850
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.4.0#/$defs/Cvss",
|
|
1698
1851
|
"$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.",
|
|
1699
1852
|
"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."
|
|
1700
1853
|
},
|
|
@@ -1705,7 +1858,7 @@
|
|
|
1705
1858
|
"milestones": {
|
|
1706
1859
|
"type": "array",
|
|
1707
1860
|
"items": {
|
|
1708
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1861
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.4.0#/$defs/Milestone"
|
|
1709
1862
|
},
|
|
1710
1863
|
"description": "Remediation milestones (primarily for POA&M type amendments)."
|
|
1711
1864
|
},
|
|
@@ -1722,7 +1875,7 @@
|
|
|
1722
1875
|
"affectedPackages": {
|
|
1723
1876
|
"type": "array",
|
|
1724
1877
|
"items": {
|
|
1725
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.
|
|
1878
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.4.0#/$defs/Affected_Package"
|
|
1726
1879
|
},
|
|
1727
1880
|
"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)."
|
|
1728
1881
|
}
|
|
@@ -1855,9 +2008,9 @@
|
|
|
1855
2008
|
}
|
|
1856
2009
|
}
|
|
1857
2010
|
},
|
|
1858
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
2011
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.4.0": {
|
|
1859
2012
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1860
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
2013
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.4.0",
|
|
1861
2014
|
"title": "HDF Result Primitives",
|
|
1862
2015
|
"description": "Types for representing assessment results and statuses.",
|
|
1863
2016
|
"$defs": {
|
|
@@ -1988,9 +2141,9 @@
|
|
|
1988
2141
|
}
|
|
1989
2142
|
}
|
|
1990
2143
|
},
|
|
1991
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.
|
|
2144
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.4.0": {
|
|
1992
2145
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1993
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.
|
|
2146
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.4.0",
|
|
1994
2147
|
"title": "HDF CVSS Primitives",
|
|
1995
2148
|
"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).",
|
|
1996
2149
|
"$defs": {
|
|
@@ -2192,9 +2345,9 @@
|
|
|
2192
2345
|
}
|
|
2193
2346
|
}
|
|
2194
2347
|
},
|
|
2195
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.
|
|
2348
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.4.0": {
|
|
2196
2349
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
2197
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.
|
|
2350
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.4.0",
|
|
2198
2351
|
"title": "HDF Affected Package Primitives",
|
|
2199
2352
|
"description": "Types for representing the software package(s) affected by a vulnerability finding.",
|
|
2200
2353
|
"$defs": {
|