@mitre/hdf-schema 3.6.0 → 3.7.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 +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-plan/v3.
|
|
3
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/hdf-plan/v3.7.0",
|
|
4
4
|
"title": "HDF Plan",
|
|
5
5
|
"description": "Defines an assessment plan — what baselines to run against which targets, with resolved inputs and scheduling. Maps to OSCAL Assessment Plan.",
|
|
6
6
|
"type": "object",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"externalReferences": {
|
|
14
14
|
"type": "array",
|
|
15
15
|
"items": {
|
|
16
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
16
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/External_Reference"
|
|
17
17
|
},
|
|
18
18
|
"description": "Optional references to external artifacts relevant to this assessment plan (CTI/STIX, advisories, methodology docs, or any URI-addressable artifact). Inert context; see External_Reference."
|
|
19
19
|
},
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"description": "Human-readable plan name. Example: 'Portal Monthly Assessment'."
|
|
28
28
|
},
|
|
29
29
|
"type": {
|
|
30
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/plan/v3.
|
|
30
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/plan/v3.7.0#/$defs/Plan_Type",
|
|
31
31
|
"description": "The type of assessment plan."
|
|
32
32
|
},
|
|
33
33
|
"description": {
|
|
@@ -43,12 +43,12 @@
|
|
|
43
43
|
"type": "array",
|
|
44
44
|
"minItems": 1,
|
|
45
45
|
"items": {
|
|
46
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/plan/v3.
|
|
46
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/plan/v3.7.0#/$defs/Assessment"
|
|
47
47
|
},
|
|
48
48
|
"description": "The assessments to perform. Each assessment pairs a baseline with targets and resolved inputs."
|
|
49
49
|
},
|
|
50
50
|
"schedule": {
|
|
51
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/plan/v3.
|
|
51
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/plan/v3.7.0#/$defs/Schedule",
|
|
52
52
|
"description": "Optional scheduling configuration for recurring assessments."
|
|
53
53
|
},
|
|
54
54
|
"labels": {
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"description": "Optional key-value labels for grouping and querying plans."
|
|
60
60
|
},
|
|
61
61
|
"integrity": {
|
|
62
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
62
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.7.0#/$defs/Integrity",
|
|
63
63
|
"description": "Cryptographic integrity information for verifying this plan document has not been tampered with."
|
|
64
64
|
},
|
|
65
65
|
"version": {
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"description": "Version of this plan document."
|
|
68
68
|
},
|
|
69
69
|
"generator": {
|
|
70
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
70
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.7.0#/$defs/Generator",
|
|
71
71
|
"description": "Information about the tool that generated this plan."
|
|
72
72
|
}
|
|
73
73
|
},
|
|
@@ -101,9 +101,9 @@
|
|
|
101
101
|
}
|
|
102
102
|
],
|
|
103
103
|
"$defs": {
|
|
104
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
104
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0": {
|
|
105
105
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
106
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
106
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0",
|
|
107
107
|
"title": "HDF Common Primitives",
|
|
108
108
|
"description": "Shared building blocks used by hdf-results and hdf-baseline schemas.",
|
|
109
109
|
"$defs": {
|
|
@@ -543,6 +543,24 @@
|
|
|
543
543
|
"type",
|
|
544
544
|
"data"
|
|
545
545
|
],
|
|
546
|
+
"if": {
|
|
547
|
+
"properties": {
|
|
548
|
+
"encoding": {
|
|
549
|
+
"const": "base64"
|
|
550
|
+
}
|
|
551
|
+
},
|
|
552
|
+
"required": [
|
|
553
|
+
"encoding"
|
|
554
|
+
]
|
|
555
|
+
},
|
|
556
|
+
"then": {
|
|
557
|
+
"properties": {
|
|
558
|
+
"data": {
|
|
559
|
+
"pattern": "^[0-9A-Za-z+/]+={0,2}$",
|
|
560
|
+
"contentEncoding": "base64"
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
},
|
|
546
564
|
"properties": {
|
|
547
565
|
"type": {
|
|
548
566
|
"type": "string",
|
|
@@ -559,7 +577,8 @@
|
|
|
559
577
|
},
|
|
560
578
|
"data": {
|
|
561
579
|
"type": "string",
|
|
562
|
-
"
|
|
580
|
+
"minLength": 1,
|
|
581
|
+
"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."
|
|
563
582
|
},
|
|
564
583
|
"description": {
|
|
565
584
|
"type": "string",
|
|
@@ -571,7 +590,7 @@
|
|
|
571
590
|
},
|
|
572
591
|
"encoding": {
|
|
573
592
|
"type": "string",
|
|
574
|
-
"description": "Encoding used for the data. Example: 'base64', 'utf-8'."
|
|
593
|
+
"description": "Encoding used for the data. Example: 'base64', 'utf-8'. The value 'base64' (exactly, lowercase) requires data to be bare base64."
|
|
575
594
|
},
|
|
576
595
|
"size": {
|
|
577
596
|
"type": "number",
|
|
@@ -635,6 +654,7 @@
|
|
|
635
654
|
}
|
|
636
655
|
}
|
|
637
656
|
],
|
|
657
|
+
"$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.",
|
|
638
658
|
"description": "Supporting evidence for a finding or override, such as screenshots, code samples, log excerpts, or URLs.",
|
|
639
659
|
"title": "Evidence"
|
|
640
660
|
},
|
|
@@ -712,6 +732,13 @@
|
|
|
712
732
|
"status"
|
|
713
733
|
],
|
|
714
734
|
"properties": {
|
|
735
|
+
"title": {
|
|
736
|
+
"type": "string",
|
|
737
|
+
"minLength": 1,
|
|
738
|
+
"pattern": "^[^ \\t\\n\\r]([^\\n\\r]*[^ \\t\\n\\r])?$",
|
|
739
|
+
"$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.",
|
|
740
|
+
"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."
|
|
741
|
+
},
|
|
715
742
|
"description": {
|
|
716
743
|
"type": "string",
|
|
717
744
|
"description": "Description of this milestone or task."
|
|
@@ -741,6 +768,25 @@
|
|
|
741
768
|
"description": "Identity of who completed this milestone."
|
|
742
769
|
}
|
|
743
770
|
},
|
|
771
|
+
"examples": [
|
|
772
|
+
{
|
|
773
|
+
"title": "Deploy OpenSSH 9.8p1",
|
|
774
|
+
"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.",
|
|
775
|
+
"estimatedCompletion": "2026-10-31T00:00:00Z",
|
|
776
|
+
"status": "inProgress"
|
|
777
|
+
},
|
|
778
|
+
{
|
|
779
|
+
"description": "Isolate the affected host on a restricted VLAN until the vendor patch is available.",
|
|
780
|
+
"estimatedCompletion": "2026-09-05T00:00:00Z",
|
|
781
|
+
"status": "completed",
|
|
782
|
+
"completedAt": "2026-09-04T14:30:00Z",
|
|
783
|
+
"completedBy": {
|
|
784
|
+
"identifier": "network-admin@example.com",
|
|
785
|
+
"type": "email"
|
|
786
|
+
}
|
|
787
|
+
}
|
|
788
|
+
],
|
|
789
|
+
"$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.",
|
|
744
790
|
"description": "A milestone or task within a POA&M remediation plan.",
|
|
745
791
|
"title": "Milestone"
|
|
746
792
|
},
|
|
@@ -1030,7 +1076,7 @@
|
|
|
1030
1076
|
"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."
|
|
1031
1077
|
}
|
|
1032
1078
|
},
|
|
1033
|
-
"$comment": "Examples, in order: 1) v3.1.x-style requirement: classification fields omitted. Consumers must continue to handle this shape
|
|
1079
|
+
"$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.",
|
|
1034
1080
|
"examples": [
|
|
1035
1081
|
{
|
|
1036
1082
|
"id": "SV-238196",
|
|
@@ -1166,9 +1212,9 @@
|
|
|
1166
1212
|
}
|
|
1167
1213
|
}
|
|
1168
1214
|
},
|
|
1169
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/plan/v3.
|
|
1215
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/plan/v3.7.0": {
|
|
1170
1216
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1171
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/plan/v3.
|
|
1217
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/plan/v3.7.0",
|
|
1172
1218
|
"title": "HDF Plan Primitives",
|
|
1173
1219
|
"description": "Types for defining assessment plans — what to scan, how to configure it, and when to run.",
|
|
1174
1220
|
"$defs": {
|
|
@@ -1216,7 +1262,7 @@
|
|
|
1216
1262
|
"description": "componentId of the system component this assessment targets. Use for direct component binding. Alternative to targetSelector."
|
|
1217
1263
|
},
|
|
1218
1264
|
"targetSelector": {
|
|
1219
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.
|
|
1265
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.7.0#/$defs/Target_Selector",
|
|
1220
1266
|
"description": "Label selector to match targets for this assessment. Overrides the system component's targetSelector if provided."
|
|
1221
1267
|
},
|
|
1222
1268
|
"inputs": {
|
|
@@ -1298,9 +1344,9 @@
|
|
|
1298
1344
|
}
|
|
1299
1345
|
}
|
|
1300
1346
|
},
|
|
1301
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.
|
|
1347
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.7.0": {
|
|
1302
1348
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1303
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.
|
|
1349
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.7.0",
|
|
1304
1350
|
"title": "HDF System Primitives",
|
|
1305
1351
|
"description": "Types for describing system architecture, authorization boundaries, and components.",
|
|
1306
1352
|
"$defs": {
|
|
@@ -1351,7 +1397,7 @@
|
|
|
1351
1397
|
"description": "Rationale for why this override is needed."
|
|
1352
1398
|
},
|
|
1353
1399
|
"approvedBy": {
|
|
1354
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1400
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Identity",
|
|
1355
1401
|
"description": "Identity of the person or system that approved this override."
|
|
1356
1402
|
}
|
|
1357
1403
|
},
|
|
@@ -1433,9 +1479,9 @@
|
|
|
1433
1479
|
}
|
|
1434
1480
|
}
|
|
1435
1481
|
},
|
|
1436
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
1482
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.7.0": {
|
|
1437
1483
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1438
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
1484
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.7.0",
|
|
1439
1485
|
"title": "HDF Extension Primitives",
|
|
1440
1486
|
"description": "Extension types for waivers, attestations, generators, and integrity.",
|
|
1441
1487
|
"$defs": {
|
|
@@ -1465,20 +1511,20 @@
|
|
|
1465
1511
|
"externalReferences": {
|
|
1466
1512
|
"type": "array",
|
|
1467
1513
|
"items": {
|
|
1468
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1514
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/External_Reference"
|
|
1469
1515
|
},
|
|
1470
1516
|
"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."
|
|
1471
1517
|
},
|
|
1472
1518
|
"type": {
|
|
1473
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
1519
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.7.0#/$defs/Override_Type",
|
|
1474
1520
|
"description": "The type of override applied to this requirement."
|
|
1475
1521
|
},
|
|
1476
1522
|
"status": {
|
|
1477
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
1523
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.7.0#/$defs/Result_Status",
|
|
1478
1524
|
"description": "The new status this override sets for the requirement. Optional when only impact is being overridden."
|
|
1479
1525
|
},
|
|
1480
1526
|
"impact": {
|
|
1481
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
1527
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.7.0#/$defs/Impact_Override",
|
|
1482
1528
|
"description": "Override to the requirement's impact score. At least one of status or impact must be set."
|
|
1483
1529
|
},
|
|
1484
1530
|
"reason": {
|
|
@@ -1486,7 +1532,7 @@
|
|
|
1486
1532
|
"description": "Explanation for why this override was applied."
|
|
1487
1533
|
},
|
|
1488
1534
|
"appliedBy": {
|
|
1489
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1535
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Identity",
|
|
1490
1536
|
"description": "Identity of who applied this override. For simple cases, use type 'simple' with just an identifier."
|
|
1491
1537
|
},
|
|
1492
1538
|
"appliedAt": {
|
|
@@ -1500,27 +1546,27 @@
|
|
|
1500
1546
|
"description": "Timestamp when this override expires and must be reviewed/renewed. REQUIRED - no permanent overrides allowed. ISO 8601 format."
|
|
1501
1547
|
},
|
|
1502
1548
|
"signature": {
|
|
1503
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1549
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Signature",
|
|
1504
1550
|
"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."
|
|
1505
1551
|
},
|
|
1506
1552
|
"evidence": {
|
|
1507
1553
|
"type": "array",
|
|
1508
1554
|
"items": {
|
|
1509
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1555
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Evidence"
|
|
1510
1556
|
},
|
|
1511
1557
|
"description": "Supporting evidence for this override, such as screenshots demonstrating manual verification for attestations."
|
|
1512
1558
|
},
|
|
1513
1559
|
"previousChecksum": {
|
|
1514
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1560
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Checksum",
|
|
1515
1561
|
"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."
|
|
1516
1562
|
},
|
|
1517
1563
|
"cvss": {
|
|
1518
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.
|
|
1564
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.7.0#/$defs/Cvss",
|
|
1519
1565
|
"$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.",
|
|
1520
1566
|
"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."
|
|
1521
1567
|
},
|
|
1522
1568
|
"justification": {
|
|
1523
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
1569
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.7.0#/$defs/Justification",
|
|
1524
1570
|
"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."
|
|
1525
1571
|
}
|
|
1526
1572
|
},
|
|
@@ -1613,7 +1659,7 @@
|
|
|
1613
1659
|
"evidence": [
|
|
1614
1660
|
{
|
|
1615
1661
|
"type": "screenshot",
|
|
1616
|
-
"data": "
|
|
1662
|
+
"data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==",
|
|
1617
1663
|
"description": "Screenshot showing firewall configuration",
|
|
1618
1664
|
"mimeType": "image/png",
|
|
1619
1665
|
"encoding": "base64",
|
|
@@ -1656,7 +1702,7 @@
|
|
|
1656
1702
|
"description": "Detailed explanation of the plan, including what actions will be taken."
|
|
1657
1703
|
},
|
|
1658
1704
|
"appliedBy": {
|
|
1659
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1705
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Identity",
|
|
1660
1706
|
"description": "Identity of who created this POA&M. For simple cases, use type 'simple' with just an identifier."
|
|
1661
1707
|
},
|
|
1662
1708
|
"appliedAt": {
|
|
@@ -1672,23 +1718,23 @@
|
|
|
1672
1718
|
"milestones": {
|
|
1673
1719
|
"type": "array",
|
|
1674
1720
|
"items": {
|
|
1675
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1721
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Milestone"
|
|
1676
1722
|
},
|
|
1677
1723
|
"description": "Optional array of milestones tracking progress toward completion."
|
|
1678
1724
|
},
|
|
1679
1725
|
"signature": {
|
|
1680
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1726
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Signature",
|
|
1681
1727
|
"description": "Optional digital signature for enhanced trust and non-repudiation."
|
|
1682
1728
|
},
|
|
1683
1729
|
"evidence": {
|
|
1684
1730
|
"type": "array",
|
|
1685
1731
|
"items": {
|
|
1686
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1732
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Evidence"
|
|
1687
1733
|
},
|
|
1688
1734
|
"description": "Supporting evidence for this POA&M, such as documentation of compensating controls or mitigation implementation."
|
|
1689
1735
|
},
|
|
1690
1736
|
"previousChecksum": {
|
|
1691
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1737
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Checksum",
|
|
1692
1738
|
"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."
|
|
1693
1739
|
}
|
|
1694
1740
|
},
|
|
@@ -1841,7 +1887,7 @@
|
|
|
1841
1887
|
},
|
|
1842
1888
|
"properties": {
|
|
1843
1889
|
"algorithm": {
|
|
1844
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1890
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Hash_Algorithm",
|
|
1845
1891
|
"description": "The hash algorithm used for the checksum."
|
|
1846
1892
|
},
|
|
1847
1893
|
"checksum": {
|
|
@@ -1874,9 +1920,9 @@
|
|
|
1874
1920
|
}
|
|
1875
1921
|
}
|
|
1876
1922
|
},
|
|
1877
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
1923
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.7.0": {
|
|
1878
1924
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1879
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
1925
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.7.0",
|
|
1880
1926
|
"title": "HDF Amendment Primitives",
|
|
1881
1927
|
"description": "Types for waivers, attestations, and POA&Ms that modify requirement compliance status.",
|
|
1882
1928
|
"$defs": {
|
|
@@ -1987,7 +2033,7 @@
|
|
|
1987
2033
|
"externalReferences": {
|
|
1988
2034
|
"type": "array",
|
|
1989
2035
|
"items": {
|
|
1990
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2036
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/External_Reference"
|
|
1991
2037
|
},
|
|
1992
2038
|
"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."
|
|
1993
2039
|
},
|
|
@@ -1997,6 +2043,7 @@
|
|
|
1997
2043
|
},
|
|
1998
2044
|
"requirementId": {
|
|
1999
2045
|
"type": "string",
|
|
2046
|
+
"minLength": 1,
|
|
2000
2047
|
"description": "The ID of the requirement being amended. Must match a requirement ID in the referenced baseline."
|
|
2001
2048
|
},
|
|
2002
2049
|
"baselineRef": {
|
|
@@ -2004,7 +2051,7 @@
|
|
|
2004
2051
|
"description": "Name of the baseline containing the requirement. Required when the system has multiple baselines with potentially overlapping requirement IDs."
|
|
2005
2052
|
},
|
|
2006
2053
|
"status": {
|
|
2007
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
2054
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.7.0#/$defs/Result_Status",
|
|
2008
2055
|
"description": "The new status this amendment sets. Optional when only impact is being overridden."
|
|
2009
2056
|
},
|
|
2010
2057
|
"impact": {
|
|
@@ -2016,7 +2063,7 @@
|
|
|
2016
2063
|
"description": "Justification for this amendment."
|
|
2017
2064
|
},
|
|
2018
2065
|
"appliedBy": {
|
|
2019
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2066
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Identity",
|
|
2020
2067
|
"description": "Identity of who applied this amendment."
|
|
2021
2068
|
},
|
|
2022
2069
|
"appliedAt": {
|
|
@@ -2032,20 +2079,20 @@
|
|
|
2032
2079
|
"evidence": {
|
|
2033
2080
|
"type": "array",
|
|
2034
2081
|
"items": {
|
|
2035
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2082
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Evidence"
|
|
2036
2083
|
},
|
|
2037
2084
|
"description": "Supporting evidence (screenshots, logs, URLs, documents)."
|
|
2038
2085
|
},
|
|
2039
2086
|
"signature": {
|
|
2040
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2087
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Signature",
|
|
2041
2088
|
"description": "Digital signature for non-repudiation."
|
|
2042
2089
|
},
|
|
2043
2090
|
"previousChecksum": {
|
|
2044
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2091
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Checksum",
|
|
2045
2092
|
"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."
|
|
2046
2093
|
},
|
|
2047
2094
|
"cvss": {
|
|
2048
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.
|
|
2095
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.7.0#/$defs/Cvss",
|
|
2049
2096
|
"$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.",
|
|
2050
2097
|
"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."
|
|
2051
2098
|
},
|
|
@@ -2056,7 +2103,7 @@
|
|
|
2056
2103
|
"milestones": {
|
|
2057
2104
|
"type": "array",
|
|
2058
2105
|
"items": {
|
|
2059
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2106
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Milestone"
|
|
2060
2107
|
},
|
|
2061
2108
|
"description": "Remediation milestones (primarily for POA&M type amendments)."
|
|
2062
2109
|
},
|
|
@@ -2073,7 +2120,7 @@
|
|
|
2073
2120
|
"affectedPackages": {
|
|
2074
2121
|
"type": "array",
|
|
2075
2122
|
"items": {
|
|
2076
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.
|
|
2123
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.7.0#/$defs/Affected_Package"
|
|
2077
2124
|
},
|
|
2078
2125
|
"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)."
|
|
2079
2126
|
}
|
|
@@ -2206,9 +2253,9 @@
|
|
|
2206
2253
|
}
|
|
2207
2254
|
}
|
|
2208
2255
|
},
|
|
2209
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
2256
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.7.0": {
|
|
2210
2257
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
2211
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
2258
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.7.0",
|
|
2212
2259
|
"title": "HDF Result Primitives",
|
|
2213
2260
|
"description": "Types for representing assessment results and statuses.",
|
|
2214
2261
|
"$defs": {
|
|
@@ -2339,9 +2386,9 @@
|
|
|
2339
2386
|
}
|
|
2340
2387
|
}
|
|
2341
2388
|
},
|
|
2342
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.
|
|
2389
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.7.0": {
|
|
2343
2390
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
2344
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.
|
|
2391
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.7.0",
|
|
2345
2392
|
"title": "HDF CVSS Primitives",
|
|
2346
2393
|
"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).",
|
|
2347
2394
|
"$defs": {
|
|
@@ -2538,9 +2585,9 @@
|
|
|
2538
2585
|
}
|
|
2539
2586
|
}
|
|
2540
2587
|
},
|
|
2541
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.
|
|
2588
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.7.0": {
|
|
2542
2589
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
2543
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.
|
|
2590
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.7.0",
|
|
2544
2591
|
"title": "HDF Affected Package Primitives",
|
|
2545
2592
|
"description": "Types for representing the software package(s) affected by a vulnerability finding.",
|
|
2546
2593
|
"$defs": {
|