@mitre/hdf-schema 3.6.0 → 3.7.0-rc.1
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 +8 -2
- package/dist/go/hdf.go +20 -12
- package/dist/index.js +28 -28
- package/dist/schemas/hdf-amendments.schema.json +95 -48
- package/dist/schemas/hdf-baseline.schema.json +100 -53
- package/dist/schemas/hdf-comparison.schema.json +177 -130
- package/dist/schemas/hdf-evidence-package.schema.json +96 -49
- package/dist/schemas/hdf-plan.schema.json +101 -54
- package/dist/schemas/hdf-requirement-change-event.schema.json +167 -120
- package/dist/schemas/hdf-results.schema.json +153 -106
- package/dist/schemas/hdf-system.schema.json +116 -69
- package/dist/ts/hdf.d.ts +12 -2
- package/dist/ts/hdf.ts +12 -2
- 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-results/v3.
|
|
3
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/hdf-results/v3.7.0",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"unevaluatedProperties": false,
|
|
6
6
|
"required": [
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"externalReferences": {
|
|
11
11
|
"type": "array",
|
|
12
12
|
"items": {
|
|
13
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
13
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/External_Reference"
|
|
14
14
|
},
|
|
15
15
|
"description": "Optional references to external artifacts (CTI/STIX, BOMs, advisories, runbooks, or any URI-addressable artifact) relevant to this assessment as a whole. Inert context; see External_Reference."
|
|
16
16
|
},
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"components": {
|
|
28
28
|
"type": "array",
|
|
29
29
|
"items": {
|
|
30
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/component/v3.
|
|
30
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/component/v3.7.0#/$defs/Component"
|
|
31
31
|
},
|
|
32
32
|
"description": "The components that were assessed. Each component describes a system element (host, container, cloud resource, application, etc.) with optional identity, SBOM, and external references."
|
|
33
33
|
},
|
|
@@ -39,23 +39,23 @@
|
|
|
39
39
|
"description": "Information on the baselines that were evaluated, including findings."
|
|
40
40
|
},
|
|
41
41
|
"statistics": {
|
|
42
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/statistics/v3.
|
|
42
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/statistics/v3.7.0#/$defs/Statistics",
|
|
43
43
|
"description": "Statistics for the assessment run, including duration and result counts."
|
|
44
44
|
},
|
|
45
45
|
"generator": {
|
|
46
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
46
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.7.0#/$defs/Generator",
|
|
47
47
|
"description": "Information about the tool that generated this file."
|
|
48
48
|
},
|
|
49
49
|
"tool": {
|
|
50
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
50
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.7.0#/$defs/Tool",
|
|
51
51
|
"description": "The security tool that produced the assessment data in this file."
|
|
52
52
|
},
|
|
53
53
|
"integrity": {
|
|
54
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
54
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.7.0#/$defs/Integrity",
|
|
55
55
|
"description": "Cryptographic integrity information for verifying this file."
|
|
56
56
|
},
|
|
57
57
|
"preAmendmentChecksum": {
|
|
58
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
58
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Checksum",
|
|
59
59
|
"description": "Hash of this results document as it stood immediately before the most recent amendment application. Written by `hdf amend apply` when it applies at least one override; an apply that matches nothing leaves the document untouched. The hash covers the results file's RAW BYTES as read, not a canonical form, so reproducing it requires the byte-identical original — reformatting or re-serializing the source changes the value. Only the most recent pre-application state is recorded: applying amendments to an already-amended document REPLACES this value, so it is a single link back one step, not a growing chain. Distinct from the `previousChecksum` inside an override, which chains amendments to each other and is computed over a canonical JSON form.",
|
|
60
60
|
"$comment": "Example 1: the real SHA-256 of hdf-converters/converters/nessus-to-hdf/fixtures/expected/sample.nessus.hdf.json, reproducible with `shasum -a 256` on that file — chosen over a synthetic digest so a reader can verify the hash basis is the raw file bytes.",
|
|
61
61
|
"examples": [
|
|
@@ -66,11 +66,11 @@
|
|
|
66
66
|
]
|
|
67
67
|
},
|
|
68
68
|
"runner": {
|
|
69
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/runner/v3.
|
|
69
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/runner/v3.7.0#/$defs/Runner",
|
|
70
70
|
"description": "Information about the test execution environment where the security tool was run. Distinct from targets (what is being tested)."
|
|
71
71
|
},
|
|
72
72
|
"remediation": {
|
|
73
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
73
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Remediation",
|
|
74
74
|
"description": "Optional reference to automated remediation resources (Ansible playbooks, Terraform scripts, etc.) for fixing failing requirements found in this assessment."
|
|
75
75
|
},
|
|
76
76
|
"systemRef": {
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
"description": "Reference to an hdf-plan document describing the assessment plan that produced these results. May be a relative path, absolute URI, or fragment identifier."
|
|
85
85
|
},
|
|
86
86
|
"derivation": {
|
|
87
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/events/v3.
|
|
87
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/events/v3.7.0#/$defs/Derivation",
|
|
88
88
|
"description": "Present ONLY on reconciled result sets: lineage recording the seed snapshot and event watermark this document was reassembled from (ADR-0005). Documents produced directly by a scan omit this field. When present, generator names the reconciling tool."
|
|
89
89
|
},
|
|
90
90
|
"extensions": {
|
|
@@ -182,14 +182,14 @@
|
|
|
182
182
|
],
|
|
183
183
|
"allOf": [
|
|
184
184
|
{
|
|
185
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
185
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Baseline_Metadata"
|
|
186
186
|
}
|
|
187
187
|
],
|
|
188
188
|
"properties": {
|
|
189
189
|
"depends": {
|
|
190
190
|
"type": "array",
|
|
191
191
|
"items": {
|
|
192
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
192
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Dependency"
|
|
193
193
|
},
|
|
194
194
|
"description": "The set of dependencies this baseline depends on."
|
|
195
195
|
},
|
|
@@ -202,15 +202,15 @@
|
|
|
202
202
|
"description": "The description - should be more detailed than the summary."
|
|
203
203
|
},
|
|
204
204
|
"integrity": {
|
|
205
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
205
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.7.0#/$defs/Integrity",
|
|
206
206
|
"description": "Cryptographic integrity information for verifying this baseline has not been tampered with."
|
|
207
207
|
},
|
|
208
208
|
"originalChecksum": {
|
|
209
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
209
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Checksum",
|
|
210
210
|
"description": "SHA-256 checksum of the original baseline definition file (before execution). This is an immutable reference to the baseline as defined, used to detect tampering with baseline requirements or metadata."
|
|
211
211
|
},
|
|
212
212
|
"resultsChecksum": {
|
|
213
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
213
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Checksum",
|
|
214
214
|
"description": "SHA-256 checksum of the raw results before any amendments (statusOverrides or POAMs). Used to detect tampering with test results. Compare with currentChecksum to verify amendment integrity."
|
|
215
215
|
},
|
|
216
216
|
"statusMessage": {
|
|
@@ -228,14 +228,14 @@
|
|
|
228
228
|
"groups": {
|
|
229
229
|
"type": "array",
|
|
230
230
|
"items": {
|
|
231
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
231
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Requirement_Group"
|
|
232
232
|
},
|
|
233
233
|
"description": "A set of descriptions for the requirement groups."
|
|
234
234
|
},
|
|
235
235
|
"inputs": {
|
|
236
236
|
"type": "array",
|
|
237
237
|
"items": {
|
|
238
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/parameter/v3.
|
|
238
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/parameter/v3.7.0#/$defs/Input"
|
|
239
239
|
},
|
|
240
240
|
"description": "Typed inputs used to parameterize this baseline at execution time. See the Input primitive for the full schema."
|
|
241
241
|
},
|
|
@@ -260,7 +260,7 @@
|
|
|
260
260
|
],
|
|
261
261
|
"allOf": [
|
|
262
262
|
{
|
|
263
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
263
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Requirement_Core"
|
|
264
264
|
}
|
|
265
265
|
],
|
|
266
266
|
"properties": {
|
|
@@ -268,7 +268,7 @@
|
|
|
268
268
|
"type": "array",
|
|
269
269
|
"minItems": 1,
|
|
270
270
|
"items": {
|
|
271
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
271
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.7.0#/$defs/Requirement_Description"
|
|
272
272
|
},
|
|
273
273
|
"contains": {
|
|
274
274
|
"type": "object",
|
|
@@ -284,37 +284,37 @@
|
|
|
284
284
|
"description": "Array of labeled descriptions. At least one description with label 'default' must be present. Convention: place default description first. Common labels: 'default', 'check', 'fix', 'rationale'."
|
|
285
285
|
},
|
|
286
286
|
"severity": {
|
|
287
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
287
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Severity",
|
|
288
288
|
"description": "Explicit severity rating. Typically derived from impact score but provided explicitly for clarity."
|
|
289
289
|
},
|
|
290
290
|
"sourceLocation": {
|
|
291
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
291
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Source_Location",
|
|
292
292
|
"description": "The explicit location of the requirement within the source code."
|
|
293
293
|
},
|
|
294
294
|
"results": {
|
|
295
295
|
"type": "array",
|
|
296
296
|
"minItems": 1,
|
|
297
297
|
"items": {
|
|
298
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
298
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.7.0#/$defs/Requirement_Result"
|
|
299
299
|
},
|
|
300
300
|
"description": "The set of all tests within the requirement and their results."
|
|
301
301
|
},
|
|
302
302
|
"statusOverrides": {
|
|
303
303
|
"type": "array",
|
|
304
304
|
"items": {
|
|
305
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
305
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.7.0#/$defs/Status_Override"
|
|
306
306
|
},
|
|
307
307
|
"description": "Chronological history of all overrides applied to this requirement. Overrides are intentional changes to the compliance status and/or impact score (waivers, attestations, false positives, risk adjustments). Most recent override should be first in array. Preserves full audit trail."
|
|
308
308
|
},
|
|
309
309
|
"poams": {
|
|
310
310
|
"type": "array",
|
|
311
311
|
"items": {
|
|
312
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
312
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.7.0#/$defs/POAM"
|
|
313
313
|
},
|
|
314
314
|
"description": "Plan of Action and Milestones for tracking remediation, mitigation, or risk acceptance. POAMs do NOT change effectiveStatus - they track the work being done to address a failure. Separate from statusOverrides which DO change status."
|
|
315
315
|
},
|
|
316
316
|
"effectiveStatus": {
|
|
317
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
317
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.7.0#/$defs/Result_Status",
|
|
318
318
|
"description": "The current effective compliance status of this requirement after applying the most recent non-expired override with a status field, or computed from results (worst-wins) if no status-bearing overrides exist."
|
|
319
319
|
},
|
|
320
320
|
"effectiveImpact": {
|
|
@@ -324,33 +324,33 @@
|
|
|
324
324
|
"description": "The current effective impact score (0.0–1.0) after applying the most recent non-expired override with an impact field. Absent when no impact overrides apply; consumers should use the requirement's impact field in that case."
|
|
325
325
|
},
|
|
326
326
|
"disposition": {
|
|
327
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
327
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.7.0#/$defs/Override_Type",
|
|
328
328
|
"description": "The type of the most recent non-expired override or POAM governing this requirement. Indicates why the requirement is in its current state (e.g., waiver, falsePositive, riskAdjustment) or what remediation is being tracked (poam). Absent when no overrides or POAMs apply."
|
|
329
329
|
},
|
|
330
330
|
"effectiveChecksum": {
|
|
331
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
331
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Checksum",
|
|
332
332
|
"description": "Checksum of this requirement's resolved effective posture, for per-control change detection in continuous monitoring.\n\nsha256 over the canonical JSON object with keys status, impact, disposition (in that order), holding the resolved effective status, resolved effective impact, and governing override type (null when nothing governs), with override expiry anchored to the document timestamp.\n\nFlips exactly when the operative status, impact, or disposition changes; stable under all other churn (result details, timestamps, tags).\n\nOptional; stamped by tooling (hdf convert, hdf amend apply)."
|
|
333
333
|
},
|
|
334
334
|
"evidence": {
|
|
335
335
|
"type": "array",
|
|
336
336
|
"items": {
|
|
337
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
337
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Evidence"
|
|
338
338
|
},
|
|
339
339
|
"description": "Supporting evidence for this requirement's findings, such as screenshots, code samples, or log excerpts."
|
|
340
340
|
},
|
|
341
341
|
"cvss": {
|
|
342
342
|
"type": "array",
|
|
343
343
|
"items": {
|
|
344
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.
|
|
344
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.7.0#/$defs/Cvss"
|
|
345
345
|
},
|
|
346
346
|
"description": "Structured CVSS scoring data for vulnerability findings. One entry per CVE — a finding may match multiple CVEs (common in vulnerability scanners). Captures vendor-supplied Base metrics plus optional consumer-owned Threat / Environmental / Supplemental groups for risk adjustment. See cvss.schema.json."
|
|
347
347
|
},
|
|
348
348
|
"epss": {
|
|
349
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/epss/v3.
|
|
349
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/epss/v3.7.0#/$defs/Epss",
|
|
350
350
|
"description": "FIRST.org EPSS (Exploit Prediction Scoring System) score for this CVE finding. Used alongside CVSS for prioritization — captures the probability the vulnerability will be exploited."
|
|
351
351
|
},
|
|
352
352
|
"kev": {
|
|
353
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/kev/v3.
|
|
353
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/kev/v3.7.0#/$defs/Kev",
|
|
354
354
|
"description": "CISA Known Exploited Vulnerabilities (KEV) catalog status. When inKev=true, dateAdded and dueDate carry the federal patching deadline."
|
|
355
355
|
},
|
|
356
356
|
"cwe": {
|
|
@@ -364,7 +364,7 @@
|
|
|
364
364
|
"affectedPackages": {
|
|
365
365
|
"type": "array",
|
|
366
366
|
"items": {
|
|
367
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.
|
|
367
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.7.0#/$defs/Affected_Package"
|
|
368
368
|
},
|
|
369
369
|
"description": "Packages affected by this vulnerability finding. Vulnerability-finding-scoped — see components[] on hdf-system for component-level package inventories. One entry per matched package signature (scanners often report multiple CPE variations per CVE)."
|
|
370
370
|
}
|
|
@@ -651,9 +651,9 @@
|
|
|
651
651
|
"description": "A requirement that has been evaluated, including any findings.",
|
|
652
652
|
"title": "Evaluated Requirement"
|
|
653
653
|
},
|
|
654
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
654
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0": {
|
|
655
655
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
656
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
656
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0",
|
|
657
657
|
"title": "HDF Common Primitives",
|
|
658
658
|
"description": "Shared building blocks used by hdf-results and hdf-baseline schemas.",
|
|
659
659
|
"$defs": {
|
|
@@ -1093,6 +1093,24 @@
|
|
|
1093
1093
|
"type",
|
|
1094
1094
|
"data"
|
|
1095
1095
|
],
|
|
1096
|
+
"if": {
|
|
1097
|
+
"properties": {
|
|
1098
|
+
"encoding": {
|
|
1099
|
+
"const": "base64"
|
|
1100
|
+
}
|
|
1101
|
+
},
|
|
1102
|
+
"required": [
|
|
1103
|
+
"encoding"
|
|
1104
|
+
]
|
|
1105
|
+
},
|
|
1106
|
+
"then": {
|
|
1107
|
+
"properties": {
|
|
1108
|
+
"data": {
|
|
1109
|
+
"pattern": "^[0-9A-Za-z+/]+={0,2}$",
|
|
1110
|
+
"contentEncoding": "base64"
|
|
1111
|
+
}
|
|
1112
|
+
}
|
|
1113
|
+
},
|
|
1096
1114
|
"properties": {
|
|
1097
1115
|
"type": {
|
|
1098
1116
|
"type": "string",
|
|
@@ -1109,7 +1127,8 @@
|
|
|
1109
1127
|
},
|
|
1110
1128
|
"data": {
|
|
1111
1129
|
"type": "string",
|
|
1112
|
-
"
|
|
1130
|
+
"minLength": 1,
|
|
1131
|
+
"description": "The evidence content. For screenshots/files: base64-encoded data or URL. For code/logs: the raw text. For URLs: the URL string. Must not be empty. When encoding is 'base64', data must be bare base64 matching ^[0-9A-Za-z+/]+={0,2}$ (OSCAL's Base64Datatype): no data: URI prefix, URL, or line breaks."
|
|
1113
1132
|
},
|
|
1114
1133
|
"description": {
|
|
1115
1134
|
"type": "string",
|
|
@@ -1121,7 +1140,7 @@
|
|
|
1121
1140
|
},
|
|
1122
1141
|
"encoding": {
|
|
1123
1142
|
"type": "string",
|
|
1124
|
-
"description": "Encoding used for the data. Example: 'base64', 'utf-8'."
|
|
1143
|
+
"description": "Encoding used for the data. Example: 'base64', 'utf-8'. The value 'base64' (exactly, lowercase) requires data to be bare base64."
|
|
1125
1144
|
},
|
|
1126
1145
|
"size": {
|
|
1127
1146
|
"type": "number",
|
|
@@ -1185,6 +1204,7 @@
|
|
|
1185
1204
|
}
|
|
1186
1205
|
}
|
|
1187
1206
|
],
|
|
1207
|
+
"$comment": "Examples, in order: 1) base64-encoded PNG screenshot with full capture provenance; 2) raw configuration text; 3) log excerpt; 4) URL to an external ticket; 5) base64-encoded file captured by an automated system.",
|
|
1188
1208
|
"description": "Supporting evidence for a finding or override, such as screenshots, code samples, log excerpts, or URLs.",
|
|
1189
1209
|
"title": "Evidence"
|
|
1190
1210
|
},
|
|
@@ -1262,6 +1282,13 @@
|
|
|
1262
1282
|
"status"
|
|
1263
1283
|
],
|
|
1264
1284
|
"properties": {
|
|
1285
|
+
"title": {
|
|
1286
|
+
"type": "string",
|
|
1287
|
+
"minLength": 1,
|
|
1288
|
+
"pattern": "^[^ \\t\\n\\r]([^\\n\\r]*[^ \\t\\n\\r])?$",
|
|
1289
|
+
"$comment": "The pattern is OSCAL's StringDatatype (\\S(.*\\S)?) as its XSD defines \\S and '.', spelled with explicit classes so ECMA-262 and Go regexp engines agree: \\S and '.' differ between them on CR and non-ASCII whitespace.",
|
|
1290
|
+
"description": "Short single-line label for this milestone, suitable where a consumer needs a title (for example an OSCAL POA&M remediation or task). No line breaks, and no leading or trailing whitespace. The description remains the full text of the milestone; the title does not replace it."
|
|
1291
|
+
},
|
|
1265
1292
|
"description": {
|
|
1266
1293
|
"type": "string",
|
|
1267
1294
|
"description": "Description of this milestone or task."
|
|
@@ -1291,6 +1318,25 @@
|
|
|
1291
1318
|
"description": "Identity of who completed this milestone."
|
|
1292
1319
|
}
|
|
1293
1320
|
},
|
|
1321
|
+
"examples": [
|
|
1322
|
+
{
|
|
1323
|
+
"title": "Deploy OpenSSH 9.8p1",
|
|
1324
|
+
"description": "Upgrade OpenSSH to 9.8p1 on every RHEL 9 host in the web tier to remediate CVE-2024-6387, then restart sshd during the Saturday maintenance window.",
|
|
1325
|
+
"estimatedCompletion": "2026-10-31T00:00:00Z",
|
|
1326
|
+
"status": "inProgress"
|
|
1327
|
+
},
|
|
1328
|
+
{
|
|
1329
|
+
"description": "Isolate the affected host on a restricted VLAN until the vendor patch is available.",
|
|
1330
|
+
"estimatedCompletion": "2026-09-05T00:00:00Z",
|
|
1331
|
+
"status": "completed",
|
|
1332
|
+
"completedAt": "2026-09-04T14:30:00Z",
|
|
1333
|
+
"completedBy": {
|
|
1334
|
+
"identifier": "network-admin@example.com",
|
|
1335
|
+
"type": "email"
|
|
1336
|
+
}
|
|
1337
|
+
}
|
|
1338
|
+
],
|
|
1339
|
+
"$comment": "Examples, in order: 1) titled milestone in progress — the title is the short label, the description the full remediation text; 2) untitled completed milestone with completion provenance — title is optional, and a consumer needing one derives it.",
|
|
1294
1340
|
"description": "A milestone or task within a POA&M remediation plan.",
|
|
1295
1341
|
"title": "Milestone"
|
|
1296
1342
|
},
|
|
@@ -1580,7 +1626,7 @@
|
|
|
1580
1626
|
"description": "Whether the requirement is mandatory within its baseline.\n\nDistinct from severity (risk weight) and status (lifecycle state).\n\nMaps cleanly onto: FedRAMP rev5 OSCAL 'CORE' prop, FedRAMP 20x inline 'Optional:' markers, CMMC sublevel rows, and CIS Implementation Group memberships (IG1/IG2/IG3 may carry richer semantics; layer those onto props[]/tags{}).\n\nOptional: when omitted, consumers should treat the requirement as 'required' by convention."
|
|
1581
1627
|
}
|
|
1582
1628
|
},
|
|
1583
|
-
"$comment": "Examples, in order: 1) v3.1.x-style requirement: classification fields omitted. Consumers must continue to handle this shape
|
|
1629
|
+
"$comment": "Examples, in order: 1) v3.1.x-style requirement: classification fields omitted. Consumers must continue to handle this shape for backward compatibility; 2) v3.2 example populating all three classification fields. controlType=technical because AC-3 is enforced via configuration, not policy text. verificationMethod=automated because a check exists. applicability=required because this is a CORE control in the source baseline; 3) v3.2 example for a manual-by-design requirement. FedRAMP 20x KSIs are statement-form: code is omitted (not null) and verificationMethod=manual-by-design distinguishes this from 'automation could exist but doesn't yet'. controlType=policy because this is an authored governance statement; 4) v3.2 example for a STIG rule lacking a <fix>. Differs from manual-by-design: automation should exist, just not yet. applicability=advisory used here because the source format flagged it as recommended-but-not-mandatory; CIS-style IG memberships and FedRAMP 'Optional:' markers map onto applicability=optional or advisory similarly.",
|
|
1584
1630
|
"examples": [
|
|
1585
1631
|
{
|
|
1586
1632
|
"id": "SV-238196",
|
|
@@ -1716,9 +1762,9 @@
|
|
|
1716
1762
|
}
|
|
1717
1763
|
}
|
|
1718
1764
|
},
|
|
1719
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/component/v3.
|
|
1765
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/component/v3.7.0": {
|
|
1720
1766
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1721
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/component/v3.
|
|
1767
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/component/v3.7.0",
|
|
1722
1768
|
"title": "HDF Component Primitives",
|
|
1723
1769
|
"description": "First-class system component with identity, polymorphic type, generalized BOM attachment (boms[]), and system-binding properties. Components are the successor to Targets, adding stable identity (componentId), external system cross-references, and manifest inventory (SBOM, AI model/dataset, and reserved future BOM kinds).",
|
|
1724
1770
|
"$defs": {
|
|
@@ -1764,7 +1810,7 @@
|
|
|
1764
1810
|
"description": "Description of this component's role or purpose."
|
|
1765
1811
|
},
|
|
1766
1812
|
"owner": {
|
|
1767
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1813
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Identity",
|
|
1768
1814
|
"description": "Team or individual responsible for this component. Enables per-component ownership when different teams manage different parts of a system."
|
|
1769
1815
|
},
|
|
1770
1816
|
"externalIds": {
|
|
@@ -1784,14 +1830,14 @@
|
|
|
1784
1830
|
"boms": {
|
|
1785
1831
|
"type": "array",
|
|
1786
1832
|
"items": {
|
|
1787
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/bom/v3.
|
|
1833
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/bom/v3.7.0#/$defs/Bom"
|
|
1788
1834
|
},
|
|
1789
1835
|
"description": "Component-scoped Bills of Materials (SBOM, ai-model, dataset, or any reserved bomType), each carried by passthrough (ref/document) or normalized. Replaces the former sbom/sbomRef/sbomFormat trio; a component may carry several BOMs (e.g. an SBOM plus an ai-model BOM). See primitives/bom.schema.json."
|
|
1790
1836
|
},
|
|
1791
1837
|
"integrity": {
|
|
1792
1838
|
"type": "array",
|
|
1793
1839
|
"items": {
|
|
1794
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1840
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Checksum"
|
|
1795
1841
|
},
|
|
1796
1842
|
"description": "Cryptographic integrity of this component's underlying artifact — model weights or shards, dataset archive, container image, or package bytes.\n\nAn array supports multi-file/sharded artifacts.\n\nThis is the single, generic home for artifact/subject integrity across all component types (it replaced the former per-type Container_Image digest and Artifact checksum fields).\n\nDistinct from BOM-document integrity (Bom.hashes[]) and from the document tamper-evidence Integrity type."
|
|
1797
1843
|
},
|
|
@@ -1805,12 +1851,12 @@
|
|
|
1805
1851
|
"inputOverrides": {
|
|
1806
1852
|
"type": "array",
|
|
1807
1853
|
"items": {
|
|
1808
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.
|
|
1854
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.7.0#/$defs/Input_Override"
|
|
1809
1855
|
},
|
|
1810
1856
|
"description": "System-specific overrides for baseline input values."
|
|
1811
1857
|
},
|
|
1812
1858
|
"targetSelector": {
|
|
1813
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.
|
|
1859
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.7.0#/$defs/Target_Selector",
|
|
1814
1860
|
"description": "Label selector to match targets belonging to this component during migration. Targets with matching labels are automatically included."
|
|
1815
1861
|
}
|
|
1816
1862
|
},
|
|
@@ -2093,7 +2139,7 @@
|
|
|
2093
2139
|
"const": "cloudAccount"
|
|
2094
2140
|
},
|
|
2095
2141
|
"provider": {
|
|
2096
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2142
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Cloud_Provider",
|
|
2097
2143
|
"description": "Cloud provider."
|
|
2098
2144
|
},
|
|
2099
2145
|
"accountId": {
|
|
@@ -2132,7 +2178,7 @@
|
|
|
2132
2178
|
"const": "cloudResource"
|
|
2133
2179
|
},
|
|
2134
2180
|
"provider": {
|
|
2135
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2181
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Cloud_Provider",
|
|
2136
2182
|
"description": "Cloud provider."
|
|
2137
2183
|
},
|
|
2138
2184
|
"resourceType": {
|
|
@@ -2431,9 +2477,9 @@
|
|
|
2431
2477
|
}
|
|
2432
2478
|
}
|
|
2433
2479
|
},
|
|
2434
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/bom/v3.
|
|
2480
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/bom/v3.7.0": {
|
|
2435
2481
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
2436
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/bom/v3.
|
|
2482
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/bom/v3.7.0",
|
|
2437
2483
|
"title": "HDF BOM Primitives",
|
|
2438
2484
|
"description": "Generalized Bill-of-Materials / manifest representation.\n\nOne extensible Bom shape, discriminated by bomType, carries any manifest kind (SBOM, AI model/dataset, and reserved future kinds) either by passthrough (opaque ref/embed of the native document) or normalized (converted into HDF's queryable shape).\n\nSubject identity (name, version, componentId) is inherited from the host component or system — the BOM never re-owns it.\n\nSee ADR-0001.",
|
|
2439
2485
|
"$defs": {
|
|
@@ -2489,7 +2535,7 @@
|
|
|
2489
2535
|
"hashes": {
|
|
2490
2536
|
"type": "array",
|
|
2491
2537
|
"items": {
|
|
2492
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2538
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Checksum"
|
|
2493
2539
|
},
|
|
2494
2540
|
"description": "Integrity of the carried BOM *document* itself (the referenced/embedded manifest file), NOT the integrity of the BOM's subject artifact. Subject/artifact integrity (model weights, dataset archive) is a component-level concern, not carried here. Subject identity is inherited from the host component/system; per-node identity lives in the type-extension."
|
|
2495
2541
|
},
|
|
@@ -2901,9 +2947,9 @@
|
|
|
2901
2947
|
}
|
|
2902
2948
|
}
|
|
2903
2949
|
},
|
|
2904
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.
|
|
2950
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.7.0": {
|
|
2905
2951
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
2906
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.
|
|
2952
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.7.0",
|
|
2907
2953
|
"title": "HDF System Primitives",
|
|
2908
2954
|
"description": "Types for describing system architecture, authorization boundaries, and components.",
|
|
2909
2955
|
"$defs": {
|
|
@@ -2954,7 +3000,7 @@
|
|
|
2954
3000
|
"description": "Rationale for why this override is needed."
|
|
2955
3001
|
},
|
|
2956
3002
|
"approvedBy": {
|
|
2957
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
3003
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Identity",
|
|
2958
3004
|
"description": "Identity of the person or system that approved this override."
|
|
2959
3005
|
}
|
|
2960
3006
|
},
|
|
@@ -3036,9 +3082,9 @@
|
|
|
3036
3082
|
}
|
|
3037
3083
|
}
|
|
3038
3084
|
},
|
|
3039
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/statistics/v3.
|
|
3085
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/statistics/v3.7.0": {
|
|
3040
3086
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3041
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/statistics/v3.
|
|
3087
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/statistics/v3.7.0",
|
|
3042
3088
|
"title": "HDF Statistics Primitives",
|
|
3043
3089
|
"description": "Statistics types for tracking assessment run metrics.",
|
|
3044
3090
|
"$defs": {
|
|
@@ -3107,9 +3153,9 @@
|
|
|
3107
3153
|
}
|
|
3108
3154
|
}
|
|
3109
3155
|
},
|
|
3110
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
3156
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.7.0": {
|
|
3111
3157
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3112
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
3158
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.7.0",
|
|
3113
3159
|
"title": "HDF Extension Primitives",
|
|
3114
3160
|
"description": "Extension types for waivers, attestations, generators, and integrity.",
|
|
3115
3161
|
"$defs": {
|
|
@@ -3139,20 +3185,20 @@
|
|
|
3139
3185
|
"externalReferences": {
|
|
3140
3186
|
"type": "array",
|
|
3141
3187
|
"items": {
|
|
3142
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
3188
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/External_Reference"
|
|
3143
3189
|
},
|
|
3144
3190
|
"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."
|
|
3145
3191
|
},
|
|
3146
3192
|
"type": {
|
|
3147
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
3193
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.7.0#/$defs/Override_Type",
|
|
3148
3194
|
"description": "The type of override applied to this requirement."
|
|
3149
3195
|
},
|
|
3150
3196
|
"status": {
|
|
3151
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
3197
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.7.0#/$defs/Result_Status",
|
|
3152
3198
|
"description": "The new status this override sets for the requirement. Optional when only impact is being overridden."
|
|
3153
3199
|
},
|
|
3154
3200
|
"impact": {
|
|
3155
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
3201
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.7.0#/$defs/Impact_Override",
|
|
3156
3202
|
"description": "Override to the requirement's impact score. At least one of status or impact must be set."
|
|
3157
3203
|
},
|
|
3158
3204
|
"reason": {
|
|
@@ -3160,7 +3206,7 @@
|
|
|
3160
3206
|
"description": "Explanation for why this override was applied."
|
|
3161
3207
|
},
|
|
3162
3208
|
"appliedBy": {
|
|
3163
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
3209
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Identity",
|
|
3164
3210
|
"description": "Identity of who applied this override. For simple cases, use type 'simple' with just an identifier."
|
|
3165
3211
|
},
|
|
3166
3212
|
"appliedAt": {
|
|
@@ -3174,27 +3220,27 @@
|
|
|
3174
3220
|
"description": "Timestamp when this override expires and must be reviewed/renewed. REQUIRED - no permanent overrides allowed. ISO 8601 format."
|
|
3175
3221
|
},
|
|
3176
3222
|
"signature": {
|
|
3177
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
3223
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Signature",
|
|
3178
3224
|
"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."
|
|
3179
3225
|
},
|
|
3180
3226
|
"evidence": {
|
|
3181
3227
|
"type": "array",
|
|
3182
3228
|
"items": {
|
|
3183
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
3229
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Evidence"
|
|
3184
3230
|
},
|
|
3185
3231
|
"description": "Supporting evidence for this override, such as screenshots demonstrating manual verification for attestations."
|
|
3186
3232
|
},
|
|
3187
3233
|
"previousChecksum": {
|
|
3188
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
3234
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Checksum",
|
|
3189
3235
|
"description": "SHA-256 checksum of the previous amendment in chronological order. Each amendment's checksum is recorded by the NEXT one, so editing an amendment in place is detectable — provided a later amendment is chained to it. It is NOT tamper-proof: the final amendment, the document envelope, deleted trailing amendments, and a chain that has been stripped or recomputed wholesale are all outside what it can detect. Use signature for non-repudiation. Omitted on the first amendment on a requirement."
|
|
3190
3236
|
},
|
|
3191
3237
|
"cvss": {
|
|
3192
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.
|
|
3238
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.7.0#/$defs/Cvss",
|
|
3193
3239
|
"$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.",
|
|
3194
3240
|
"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."
|
|
3195
3241
|
},
|
|
3196
3242
|
"justification": {
|
|
3197
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
3243
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.7.0#/$defs/Justification",
|
|
3198
3244
|
"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."
|
|
3199
3245
|
}
|
|
3200
3246
|
},
|
|
@@ -3287,7 +3333,7 @@
|
|
|
3287
3333
|
"evidence": [
|
|
3288
3334
|
{
|
|
3289
3335
|
"type": "screenshot",
|
|
3290
|
-
"data": "
|
|
3336
|
+
"data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==",
|
|
3291
3337
|
"description": "Screenshot showing firewall configuration",
|
|
3292
3338
|
"mimeType": "image/png",
|
|
3293
3339
|
"encoding": "base64",
|
|
@@ -3330,7 +3376,7 @@
|
|
|
3330
3376
|
"description": "Detailed explanation of the plan, including what actions will be taken."
|
|
3331
3377
|
},
|
|
3332
3378
|
"appliedBy": {
|
|
3333
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
3379
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Identity",
|
|
3334
3380
|
"description": "Identity of who created this POA&M. For simple cases, use type 'simple' with just an identifier."
|
|
3335
3381
|
},
|
|
3336
3382
|
"appliedAt": {
|
|
@@ -3346,23 +3392,23 @@
|
|
|
3346
3392
|
"milestones": {
|
|
3347
3393
|
"type": "array",
|
|
3348
3394
|
"items": {
|
|
3349
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
3395
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Milestone"
|
|
3350
3396
|
},
|
|
3351
3397
|
"description": "Optional array of milestones tracking progress toward completion."
|
|
3352
3398
|
},
|
|
3353
3399
|
"signature": {
|
|
3354
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
3400
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Signature",
|
|
3355
3401
|
"description": "Optional digital signature for enhanced trust and non-repudiation."
|
|
3356
3402
|
},
|
|
3357
3403
|
"evidence": {
|
|
3358
3404
|
"type": "array",
|
|
3359
3405
|
"items": {
|
|
3360
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
3406
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Evidence"
|
|
3361
3407
|
},
|
|
3362
3408
|
"description": "Supporting evidence for this POA&M, such as documentation of compensating controls or mitigation implementation."
|
|
3363
3409
|
},
|
|
3364
3410
|
"previousChecksum": {
|
|
3365
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
3411
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Checksum",
|
|
3366
3412
|
"description": "SHA-256 checksum of the previous amendment in chronological order. Each amendment's checksum is recorded by the NEXT one, so editing an amendment in place is detectable — provided a later amendment is chained to it. It is NOT tamper-proof: the final amendment, the document envelope, deleted trailing amendments, and a chain that has been stripped or recomputed wholesale are all outside what it can detect. Use signature for non-repudiation. Omitted on the first amendment on a requirement."
|
|
3367
3413
|
}
|
|
3368
3414
|
},
|
|
@@ -3515,7 +3561,7 @@
|
|
|
3515
3561
|
},
|
|
3516
3562
|
"properties": {
|
|
3517
3563
|
"algorithm": {
|
|
3518
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
3564
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Hash_Algorithm",
|
|
3519
3565
|
"description": "The hash algorithm used for the checksum."
|
|
3520
3566
|
},
|
|
3521
3567
|
"checksum": {
|
|
@@ -3548,9 +3594,9 @@
|
|
|
3548
3594
|
}
|
|
3549
3595
|
}
|
|
3550
3596
|
},
|
|
3551
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
3597
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.7.0": {
|
|
3552
3598
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3553
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
3599
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.7.0",
|
|
3554
3600
|
"title": "HDF Amendment Primitives",
|
|
3555
3601
|
"description": "Types for waivers, attestations, and POA&Ms that modify requirement compliance status.",
|
|
3556
3602
|
"$defs": {
|
|
@@ -3661,7 +3707,7 @@
|
|
|
3661
3707
|
"externalReferences": {
|
|
3662
3708
|
"type": "array",
|
|
3663
3709
|
"items": {
|
|
3664
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
3710
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/External_Reference"
|
|
3665
3711
|
},
|
|
3666
3712
|
"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."
|
|
3667
3713
|
},
|
|
@@ -3671,6 +3717,7 @@
|
|
|
3671
3717
|
},
|
|
3672
3718
|
"requirementId": {
|
|
3673
3719
|
"type": "string",
|
|
3720
|
+
"minLength": 1,
|
|
3674
3721
|
"description": "The ID of the requirement being amended. Must match a requirement ID in the referenced baseline."
|
|
3675
3722
|
},
|
|
3676
3723
|
"baselineRef": {
|
|
@@ -3678,7 +3725,7 @@
|
|
|
3678
3725
|
"description": "Name of the baseline containing the requirement. Required when the system has multiple baselines with potentially overlapping requirement IDs."
|
|
3679
3726
|
},
|
|
3680
3727
|
"status": {
|
|
3681
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
3728
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.7.0#/$defs/Result_Status",
|
|
3682
3729
|
"description": "The new status this amendment sets. Optional when only impact is being overridden."
|
|
3683
3730
|
},
|
|
3684
3731
|
"impact": {
|
|
@@ -3690,7 +3737,7 @@
|
|
|
3690
3737
|
"description": "Justification for this amendment."
|
|
3691
3738
|
},
|
|
3692
3739
|
"appliedBy": {
|
|
3693
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
3740
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Identity",
|
|
3694
3741
|
"description": "Identity of who applied this amendment."
|
|
3695
3742
|
},
|
|
3696
3743
|
"appliedAt": {
|
|
@@ -3706,20 +3753,20 @@
|
|
|
3706
3753
|
"evidence": {
|
|
3707
3754
|
"type": "array",
|
|
3708
3755
|
"items": {
|
|
3709
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
3756
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Evidence"
|
|
3710
3757
|
},
|
|
3711
3758
|
"description": "Supporting evidence (screenshots, logs, URLs, documents)."
|
|
3712
3759
|
},
|
|
3713
3760
|
"signature": {
|
|
3714
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
3761
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Signature",
|
|
3715
3762
|
"description": "Digital signature for non-repudiation."
|
|
3716
3763
|
},
|
|
3717
3764
|
"previousChecksum": {
|
|
3718
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
3765
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Checksum",
|
|
3719
3766
|
"description": "SHA-256 checksum of the prior amendment in chronological order. Each amendment's checksum is recorded by the NEXT one, so editing an amendment in place is detectable — provided a later amendment is chained to it. It is NOT tamper-proof: the final amendment, the document envelope, deleted trailing amendments, and a chain that has been stripped or recomputed wholesale are all outside what it can detect. Use signature for non-repudiation. Omitted on the first amendment."
|
|
3720
3767
|
},
|
|
3721
3768
|
"cvss": {
|
|
3722
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.
|
|
3769
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.7.0#/$defs/Cvss",
|
|
3723
3770
|
"$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.",
|
|
3724
3771
|
"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."
|
|
3725
3772
|
},
|
|
@@ -3730,7 +3777,7 @@
|
|
|
3730
3777
|
"milestones": {
|
|
3731
3778
|
"type": "array",
|
|
3732
3779
|
"items": {
|
|
3733
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
3780
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Milestone"
|
|
3734
3781
|
},
|
|
3735
3782
|
"description": "Remediation milestones (primarily for POA&M type amendments)."
|
|
3736
3783
|
},
|
|
@@ -3747,7 +3794,7 @@
|
|
|
3747
3794
|
"affectedPackages": {
|
|
3748
3795
|
"type": "array",
|
|
3749
3796
|
"items": {
|
|
3750
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.
|
|
3797
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.7.0#/$defs/Affected_Package"
|
|
3751
3798
|
},
|
|
3752
3799
|
"description": "Software packages this amendment is scoped to, distinct from componentRef (which scopes to an HDF-internal Component by UUID).\n\nUse 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.\n\nSymmetric with Evaluated_Requirement.affectedPackages, which scopes findings to the same package vocabulary.\n\nWhen omitted, the amendment applies system-wide (or only to componentRef when that is set)."
|
|
3753
3800
|
}
|
|
@@ -3880,9 +3927,9 @@
|
|
|
3880
3927
|
}
|
|
3881
3928
|
}
|
|
3882
3929
|
},
|
|
3883
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
3930
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.7.0": {
|
|
3884
3931
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3885
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
3932
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.7.0",
|
|
3886
3933
|
"title": "HDF Result Primitives",
|
|
3887
3934
|
"description": "Types for representing assessment results and statuses.",
|
|
3888
3935
|
"$defs": {
|
|
@@ -4013,9 +4060,9 @@
|
|
|
4013
4060
|
}
|
|
4014
4061
|
}
|
|
4015
4062
|
},
|
|
4016
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.
|
|
4063
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.7.0": {
|
|
4017
4064
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4018
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.
|
|
4065
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.7.0",
|
|
4019
4066
|
"title": "HDF CVSS Primitives",
|
|
4020
4067
|
"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).",
|
|
4021
4068
|
"$defs": {
|
|
@@ -4212,9 +4259,9 @@
|
|
|
4212
4259
|
}
|
|
4213
4260
|
}
|
|
4214
4261
|
},
|
|
4215
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.
|
|
4262
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.7.0": {
|
|
4216
4263
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4217
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.
|
|
4264
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.7.0",
|
|
4218
4265
|
"title": "HDF Affected Package Primitives",
|
|
4219
4266
|
"description": "Types for representing the software package(s) affected by a vulnerability finding.",
|
|
4220
4267
|
"$defs": {
|
|
@@ -4322,9 +4369,9 @@
|
|
|
4322
4369
|
}
|
|
4323
4370
|
}
|
|
4324
4371
|
},
|
|
4325
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/runner/v3.
|
|
4372
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/runner/v3.7.0": {
|
|
4326
4373
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4327
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/runner/v3.
|
|
4374
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/runner/v3.7.0",
|
|
4328
4375
|
"title": "HDF Runner Primitive",
|
|
4329
4376
|
"description": "Information about the test execution environment where the security tool/scanner was executed.",
|
|
4330
4377
|
"$defs": {
|
|
@@ -4368,7 +4415,7 @@
|
|
|
4368
4415
|
"description": "The container instance identifier. Example: 'a1b2c3d4e5f6', 'security-scan-job-xyz123'. Can be a Docker container ID, Kubernetes pod name, or other container runtime identifier."
|
|
4369
4416
|
},
|
|
4370
4417
|
"operator": {
|
|
4371
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
4418
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Identity",
|
|
4372
4419
|
"description": "The identity of the person or system responsible for executing the test. This could be a human auditor manually completing a checklist, an automated CI/CD system, or a security tool. Optional field to support both automated and manual HDF generation."
|
|
4373
4420
|
}
|
|
4374
4421
|
},
|
|
@@ -4417,9 +4464,9 @@
|
|
|
4417
4464
|
}
|
|
4418
4465
|
}
|
|
4419
4466
|
},
|
|
4420
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/events/v3.
|
|
4467
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/events/v3.7.0": {
|
|
4421
4468
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4422
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/events/v3.
|
|
4469
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/events/v3.7.0",
|
|
4423
4470
|
"title": "HDF Change Event Primitives",
|
|
4424
4471
|
"description": "Shared building blocks for HDF change-event wire documents. The envelope is entity-agnostic: hdf-requirement-change-event composes it today, and any future sibling event type (e.g. component change events — hdf-comparison already models componentDiffs alongside requirementDiffs) reuses it verbatim.",
|
|
4425
4472
|
"$defs": {
|
|
@@ -4473,7 +4520,7 @@
|
|
|
4473
4520
|
"priorChecksum": {
|
|
4474
4521
|
"oneOf": [
|
|
4475
4522
|
{
|
|
4476
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
4523
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Checksum"
|
|
4477
4524
|
},
|
|
4478
4525
|
{
|
|
4479
4526
|
"type": "null"
|
|
@@ -4491,7 +4538,7 @@
|
|
|
4491
4538
|
"systemRef": "apptier.hdf-system.json",
|
|
4492
4539
|
"componentId": "6e0f2a3b-9c01-4d5e-8f7a-1b2c3d4e5f60",
|
|
4493
4540
|
"timestamp": "2026-07-22T14:03:11Z",
|
|
4494
|
-
"schemaRef": "https://mitre.github.io/hdf-libs/schemas/hdf-requirement-change-event/v3.
|
|
4541
|
+
"schemaRef": "https://mitre.github.io/hdf-libs/schemas/hdf-requirement-change-event/v3.7.0",
|
|
4495
4542
|
"priorChecksum": {
|
|
4496
4543
|
"algorithm": "sha256",
|
|
4497
4544
|
"value": "704f62b2d0803438ad6b7b9bab45e2c4f350b7344135a2a7f8ef986d98669021"
|
|
@@ -4545,7 +4592,7 @@
|
|
|
4545
4592
|
],
|
|
4546
4593
|
"properties": {
|
|
4547
4594
|
"effectiveStatus": {
|
|
4548
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
4595
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.7.0#/$defs/Result_Status",
|
|
4549
4596
|
"description": "The resolved effective compliance status at this point in the chain."
|
|
4550
4597
|
},
|
|
4551
4598
|
"effectiveImpact": {
|
|
@@ -4594,7 +4641,7 @@
|
|
|
4594
4641
|
"description": "URI to the seed snapshot document (relative path or absolute URL)."
|
|
4595
4642
|
},
|
|
4596
4643
|
"checksum": {
|
|
4597
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
4644
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Checksum",
|
|
4598
4645
|
"description": "Checksum of the seed snapshot, REQUIRED: the derivation pins an immutable snapshot by content, not just location."
|
|
4599
4646
|
}
|
|
4600
4647
|
},
|
|
@@ -4643,9 +4690,9 @@
|
|
|
4643
4690
|
}
|
|
4644
4691
|
}
|
|
4645
4692
|
},
|
|
4646
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/parameter/v3.
|
|
4693
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/parameter/v3.7.0": {
|
|
4647
4694
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4648
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/parameter/v3.
|
|
4695
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/parameter/v3.7.0",
|
|
4649
4696
|
"title": "HDF Parameter Primitives",
|
|
4650
4697
|
"description": "Input/parameter type definitions for typed, traceable configuration values that bridge governance prose and scanner automation.",
|
|
4651
4698
|
"$defs": {
|
|
@@ -4776,9 +4823,9 @@
|
|
|
4776
4823
|
}
|
|
4777
4824
|
}
|
|
4778
4825
|
},
|
|
4779
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/epss/v3.
|
|
4826
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/epss/v3.7.0": {
|
|
4780
4827
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4781
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/epss/v3.
|
|
4828
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/epss/v3.7.0",
|
|
4782
4829
|
"title": "HDF EPSS Primitive",
|
|
4783
4830
|
"description": "Type for representing FIRST.org's Exploit Prediction Scoring System (EPSS) data for a vulnerability. EPSS estimates the probability that a CVE will be exploited in the wild in the next 30 days. See https://www.first.org/epss/ for the underlying model and methodology.",
|
|
4784
4831
|
"$defs": {
|
|
@@ -4833,9 +4880,9 @@
|
|
|
4833
4880
|
}
|
|
4834
4881
|
}
|
|
4835
4882
|
},
|
|
4836
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/kev/v3.
|
|
4883
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/kev/v3.7.0": {
|
|
4837
4884
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
4838
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/kev/v3.
|
|
4885
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/kev/v3.7.0",
|
|
4839
4886
|
"title": "HDF Kev Primitives",
|
|
4840
4887
|
"description": "Types for representing CISA Known Exploited Vulnerabilities (KEV) catalog membership. The KEV catalog (https://www.cisa.gov/known-exploited-vulnerabilities-catalog) flags CVEs that are confirmed actively exploited in the wild and drives federal patching urgency under CISA Binding Operational Directive 22-01.",
|
|
4841
4888
|
"$defs": {
|