@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-baseline/v3.
|
|
3
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/hdf-baseline/v3.7.0",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"unevaluatedProperties": false,
|
|
6
6
|
"required": [
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
],
|
|
10
10
|
"allOf": [
|
|
11
11
|
{
|
|
12
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
12
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Baseline_Metadata"
|
|
13
13
|
}
|
|
14
14
|
],
|
|
15
15
|
"properties": {
|
|
@@ -24,34 +24,34 @@
|
|
|
24
24
|
"groups": {
|
|
25
25
|
"type": "array",
|
|
26
26
|
"items": {
|
|
27
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
27
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Requirement_Group"
|
|
28
28
|
},
|
|
29
29
|
"description": "A set of descriptions for the requirement groups."
|
|
30
30
|
},
|
|
31
31
|
"inputs": {
|
|
32
32
|
"type": "array",
|
|
33
33
|
"items": {
|
|
34
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/parameter/v3.
|
|
34
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/parameter/v3.7.0#/$defs/Input"
|
|
35
35
|
},
|
|
36
36
|
"description": "The input(s) or attribute(s) to be used in the run."
|
|
37
37
|
},
|
|
38
38
|
"integrity": {
|
|
39
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
39
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.7.0#/$defs/Integrity",
|
|
40
40
|
"description": "Cryptographic integrity information for verifying this baseline has not been tampered with."
|
|
41
41
|
},
|
|
42
42
|
"remediation": {
|
|
43
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
43
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Remediation",
|
|
44
44
|
"description": "Optional reference to automated remediation resources (Ansible playbooks, Terraform scripts, etc.) for implementing the security controls defined in this baseline."
|
|
45
45
|
},
|
|
46
46
|
"depends": {
|
|
47
47
|
"type": "array",
|
|
48
48
|
"items": {
|
|
49
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
49
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Dependency"
|
|
50
50
|
},
|
|
51
51
|
"description": "The set of dependencies this baseline depends on."
|
|
52
52
|
},
|
|
53
53
|
"generator": {
|
|
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/Generator",
|
|
55
55
|
"description": "The tool that generated this file."
|
|
56
56
|
}
|
|
57
57
|
},
|
|
@@ -142,7 +142,7 @@
|
|
|
142
142
|
],
|
|
143
143
|
"allOf": [
|
|
144
144
|
{
|
|
145
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
145
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Requirement_Core"
|
|
146
146
|
}
|
|
147
147
|
],
|
|
148
148
|
"properties": {
|
|
@@ -151,7 +151,7 @@
|
|
|
151
151
|
"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'."
|
|
152
152
|
},
|
|
153
153
|
"severity": {
|
|
154
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
154
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Severity",
|
|
155
155
|
"description": "Explicit severity rating. Typically derived from impact score but provided explicitly for clarity."
|
|
156
156
|
}
|
|
157
157
|
},
|
|
@@ -193,9 +193,9 @@
|
|
|
193
193
|
"description": "Array of labeled descriptions. At least one description with label 'default' must be present.",
|
|
194
194
|
"title": "Baseline Requirement Descriptions"
|
|
195
195
|
},
|
|
196
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
196
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0": {
|
|
197
197
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
198
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
198
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0",
|
|
199
199
|
"title": "HDF Common Primitives",
|
|
200
200
|
"description": "Shared building blocks used by hdf-results and hdf-baseline schemas.",
|
|
201
201
|
"$defs": {
|
|
@@ -635,6 +635,24 @@
|
|
|
635
635
|
"type",
|
|
636
636
|
"data"
|
|
637
637
|
],
|
|
638
|
+
"if": {
|
|
639
|
+
"properties": {
|
|
640
|
+
"encoding": {
|
|
641
|
+
"const": "base64"
|
|
642
|
+
}
|
|
643
|
+
},
|
|
644
|
+
"required": [
|
|
645
|
+
"encoding"
|
|
646
|
+
]
|
|
647
|
+
},
|
|
648
|
+
"then": {
|
|
649
|
+
"properties": {
|
|
650
|
+
"data": {
|
|
651
|
+
"pattern": "^[0-9A-Za-z+/]+={0,2}$",
|
|
652
|
+
"contentEncoding": "base64"
|
|
653
|
+
}
|
|
654
|
+
}
|
|
655
|
+
},
|
|
638
656
|
"properties": {
|
|
639
657
|
"type": {
|
|
640
658
|
"type": "string",
|
|
@@ -651,7 +669,8 @@
|
|
|
651
669
|
},
|
|
652
670
|
"data": {
|
|
653
671
|
"type": "string",
|
|
654
|
-
"
|
|
672
|
+
"minLength": 1,
|
|
673
|
+
"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."
|
|
655
674
|
},
|
|
656
675
|
"description": {
|
|
657
676
|
"type": "string",
|
|
@@ -663,7 +682,7 @@
|
|
|
663
682
|
},
|
|
664
683
|
"encoding": {
|
|
665
684
|
"type": "string",
|
|
666
|
-
"description": "Encoding used for the data. Example: 'base64', 'utf-8'."
|
|
685
|
+
"description": "Encoding used for the data. Example: 'base64', 'utf-8'. The value 'base64' (exactly, lowercase) requires data to be bare base64."
|
|
667
686
|
},
|
|
668
687
|
"size": {
|
|
669
688
|
"type": "number",
|
|
@@ -727,6 +746,7 @@
|
|
|
727
746
|
}
|
|
728
747
|
}
|
|
729
748
|
],
|
|
749
|
+
"$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.",
|
|
730
750
|
"description": "Supporting evidence for a finding or override, such as screenshots, code samples, log excerpts, or URLs.",
|
|
731
751
|
"title": "Evidence"
|
|
732
752
|
},
|
|
@@ -804,6 +824,13 @@
|
|
|
804
824
|
"status"
|
|
805
825
|
],
|
|
806
826
|
"properties": {
|
|
827
|
+
"title": {
|
|
828
|
+
"type": "string",
|
|
829
|
+
"minLength": 1,
|
|
830
|
+
"pattern": "^[^ \\t\\n\\r]([^\\n\\r]*[^ \\t\\n\\r])?$",
|
|
831
|
+
"$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.",
|
|
832
|
+
"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."
|
|
833
|
+
},
|
|
807
834
|
"description": {
|
|
808
835
|
"type": "string",
|
|
809
836
|
"description": "Description of this milestone or task."
|
|
@@ -833,6 +860,25 @@
|
|
|
833
860
|
"description": "Identity of who completed this milestone."
|
|
834
861
|
}
|
|
835
862
|
},
|
|
863
|
+
"examples": [
|
|
864
|
+
{
|
|
865
|
+
"title": "Deploy OpenSSH 9.8p1",
|
|
866
|
+
"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.",
|
|
867
|
+
"estimatedCompletion": "2026-10-31T00:00:00Z",
|
|
868
|
+
"status": "inProgress"
|
|
869
|
+
},
|
|
870
|
+
{
|
|
871
|
+
"description": "Isolate the affected host on a restricted VLAN until the vendor patch is available.",
|
|
872
|
+
"estimatedCompletion": "2026-09-05T00:00:00Z",
|
|
873
|
+
"status": "completed",
|
|
874
|
+
"completedAt": "2026-09-04T14:30:00Z",
|
|
875
|
+
"completedBy": {
|
|
876
|
+
"identifier": "network-admin@example.com",
|
|
877
|
+
"type": "email"
|
|
878
|
+
}
|
|
879
|
+
}
|
|
880
|
+
],
|
|
881
|
+
"$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.",
|
|
836
882
|
"description": "A milestone or task within a POA&M remediation plan.",
|
|
837
883
|
"title": "Milestone"
|
|
838
884
|
},
|
|
@@ -1122,7 +1168,7 @@
|
|
|
1122
1168
|
"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."
|
|
1123
1169
|
}
|
|
1124
1170
|
},
|
|
1125
|
-
"$comment": "Examples, in order: 1) v3.1.x-style requirement: classification fields omitted. Consumers must continue to handle this shape
|
|
1171
|
+
"$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.",
|
|
1126
1172
|
"examples": [
|
|
1127
1173
|
{
|
|
1128
1174
|
"id": "SV-238196",
|
|
@@ -1258,9 +1304,9 @@
|
|
|
1258
1304
|
}
|
|
1259
1305
|
}
|
|
1260
1306
|
},
|
|
1261
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/parameter/v3.
|
|
1307
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/parameter/v3.7.0": {
|
|
1262
1308
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1263
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/parameter/v3.
|
|
1309
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/parameter/v3.7.0",
|
|
1264
1310
|
"title": "HDF Parameter Primitives",
|
|
1265
1311
|
"description": "Input/parameter type definitions for typed, traceable configuration values that bridge governance prose and scanner automation.",
|
|
1266
1312
|
"$defs": {
|
|
@@ -1391,9 +1437,9 @@
|
|
|
1391
1437
|
}
|
|
1392
1438
|
}
|
|
1393
1439
|
},
|
|
1394
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
1440
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.7.0": {
|
|
1395
1441
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1396
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
1442
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.7.0",
|
|
1397
1443
|
"title": "HDF Extension Primitives",
|
|
1398
1444
|
"description": "Extension types for waivers, attestations, generators, and integrity.",
|
|
1399
1445
|
"$defs": {
|
|
@@ -1423,20 +1469,20 @@
|
|
|
1423
1469
|
"externalReferences": {
|
|
1424
1470
|
"type": "array",
|
|
1425
1471
|
"items": {
|
|
1426
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1472
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/External_Reference"
|
|
1427
1473
|
},
|
|
1428
1474
|
"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."
|
|
1429
1475
|
},
|
|
1430
1476
|
"type": {
|
|
1431
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
1477
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.7.0#/$defs/Override_Type",
|
|
1432
1478
|
"description": "The type of override applied to this requirement."
|
|
1433
1479
|
},
|
|
1434
1480
|
"status": {
|
|
1435
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
1481
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.7.0#/$defs/Result_Status",
|
|
1436
1482
|
"description": "The new status this override sets for the requirement. Optional when only impact is being overridden."
|
|
1437
1483
|
},
|
|
1438
1484
|
"impact": {
|
|
1439
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
1485
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.7.0#/$defs/Impact_Override",
|
|
1440
1486
|
"description": "Override to the requirement's impact score. At least one of status or impact must be set."
|
|
1441
1487
|
},
|
|
1442
1488
|
"reason": {
|
|
@@ -1444,7 +1490,7 @@
|
|
|
1444
1490
|
"description": "Explanation for why this override was applied."
|
|
1445
1491
|
},
|
|
1446
1492
|
"appliedBy": {
|
|
1447
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1493
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Identity",
|
|
1448
1494
|
"description": "Identity of who applied this override. For simple cases, use type 'simple' with just an identifier."
|
|
1449
1495
|
},
|
|
1450
1496
|
"appliedAt": {
|
|
@@ -1458,27 +1504,27 @@
|
|
|
1458
1504
|
"description": "Timestamp when this override expires and must be reviewed/renewed. REQUIRED - no permanent overrides allowed. ISO 8601 format."
|
|
1459
1505
|
},
|
|
1460
1506
|
"signature": {
|
|
1461
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1507
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Signature",
|
|
1462
1508
|
"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."
|
|
1463
1509
|
},
|
|
1464
1510
|
"evidence": {
|
|
1465
1511
|
"type": "array",
|
|
1466
1512
|
"items": {
|
|
1467
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1513
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Evidence"
|
|
1468
1514
|
},
|
|
1469
1515
|
"description": "Supporting evidence for this override, such as screenshots demonstrating manual verification for attestations."
|
|
1470
1516
|
},
|
|
1471
1517
|
"previousChecksum": {
|
|
1472
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1518
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Checksum",
|
|
1473
1519
|
"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."
|
|
1474
1520
|
},
|
|
1475
1521
|
"cvss": {
|
|
1476
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.
|
|
1522
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.7.0#/$defs/Cvss",
|
|
1477
1523
|
"$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.",
|
|
1478
1524
|
"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."
|
|
1479
1525
|
},
|
|
1480
1526
|
"justification": {
|
|
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/Justification",
|
|
1482
1528
|
"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."
|
|
1483
1529
|
}
|
|
1484
1530
|
},
|
|
@@ -1571,7 +1617,7 @@
|
|
|
1571
1617
|
"evidence": [
|
|
1572
1618
|
{
|
|
1573
1619
|
"type": "screenshot",
|
|
1574
|
-
"data": "
|
|
1620
|
+
"data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==",
|
|
1575
1621
|
"description": "Screenshot showing firewall configuration",
|
|
1576
1622
|
"mimeType": "image/png",
|
|
1577
1623
|
"encoding": "base64",
|
|
@@ -1614,7 +1660,7 @@
|
|
|
1614
1660
|
"description": "Detailed explanation of the plan, including what actions will be taken."
|
|
1615
1661
|
},
|
|
1616
1662
|
"appliedBy": {
|
|
1617
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1663
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Identity",
|
|
1618
1664
|
"description": "Identity of who created this POA&M. For simple cases, use type 'simple' with just an identifier."
|
|
1619
1665
|
},
|
|
1620
1666
|
"appliedAt": {
|
|
@@ -1630,23 +1676,23 @@
|
|
|
1630
1676
|
"milestones": {
|
|
1631
1677
|
"type": "array",
|
|
1632
1678
|
"items": {
|
|
1633
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1679
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Milestone"
|
|
1634
1680
|
},
|
|
1635
1681
|
"description": "Optional array of milestones tracking progress toward completion."
|
|
1636
1682
|
},
|
|
1637
1683
|
"signature": {
|
|
1638
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1684
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Signature",
|
|
1639
1685
|
"description": "Optional digital signature for enhanced trust and non-repudiation."
|
|
1640
1686
|
},
|
|
1641
1687
|
"evidence": {
|
|
1642
1688
|
"type": "array",
|
|
1643
1689
|
"items": {
|
|
1644
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1690
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Evidence"
|
|
1645
1691
|
},
|
|
1646
1692
|
"description": "Supporting evidence for this POA&M, such as documentation of compensating controls or mitigation implementation."
|
|
1647
1693
|
},
|
|
1648
1694
|
"previousChecksum": {
|
|
1649
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1695
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Checksum",
|
|
1650
1696
|
"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."
|
|
1651
1697
|
}
|
|
1652
1698
|
},
|
|
@@ -1799,7 +1845,7 @@
|
|
|
1799
1845
|
},
|
|
1800
1846
|
"properties": {
|
|
1801
1847
|
"algorithm": {
|
|
1802
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1848
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Hash_Algorithm",
|
|
1803
1849
|
"description": "The hash algorithm used for the checksum."
|
|
1804
1850
|
},
|
|
1805
1851
|
"checksum": {
|
|
@@ -1832,9 +1878,9 @@
|
|
|
1832
1878
|
}
|
|
1833
1879
|
}
|
|
1834
1880
|
},
|
|
1835
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
1881
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.7.0": {
|
|
1836
1882
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1837
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
1883
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.7.0",
|
|
1838
1884
|
"title": "HDF Amendment Primitives",
|
|
1839
1885
|
"description": "Types for waivers, attestations, and POA&Ms that modify requirement compliance status.",
|
|
1840
1886
|
"$defs": {
|
|
@@ -1945,7 +1991,7 @@
|
|
|
1945
1991
|
"externalReferences": {
|
|
1946
1992
|
"type": "array",
|
|
1947
1993
|
"items": {
|
|
1948
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1994
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/External_Reference"
|
|
1949
1995
|
},
|
|
1950
1996
|
"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."
|
|
1951
1997
|
},
|
|
@@ -1955,6 +2001,7 @@
|
|
|
1955
2001
|
},
|
|
1956
2002
|
"requirementId": {
|
|
1957
2003
|
"type": "string",
|
|
2004
|
+
"minLength": 1,
|
|
1958
2005
|
"description": "The ID of the requirement being amended. Must match a requirement ID in the referenced baseline."
|
|
1959
2006
|
},
|
|
1960
2007
|
"baselineRef": {
|
|
@@ -1962,7 +2009,7 @@
|
|
|
1962
2009
|
"description": "Name of the baseline containing the requirement. Required when the system has multiple baselines with potentially overlapping requirement IDs."
|
|
1963
2010
|
},
|
|
1964
2011
|
"status": {
|
|
1965
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
2012
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.7.0#/$defs/Result_Status",
|
|
1966
2013
|
"description": "The new status this amendment sets. Optional when only impact is being overridden."
|
|
1967
2014
|
},
|
|
1968
2015
|
"impact": {
|
|
@@ -1974,7 +2021,7 @@
|
|
|
1974
2021
|
"description": "Justification for this amendment."
|
|
1975
2022
|
},
|
|
1976
2023
|
"appliedBy": {
|
|
1977
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2024
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Identity",
|
|
1978
2025
|
"description": "Identity of who applied this amendment."
|
|
1979
2026
|
},
|
|
1980
2027
|
"appliedAt": {
|
|
@@ -1990,20 +2037,20 @@
|
|
|
1990
2037
|
"evidence": {
|
|
1991
2038
|
"type": "array",
|
|
1992
2039
|
"items": {
|
|
1993
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2040
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Evidence"
|
|
1994
2041
|
},
|
|
1995
2042
|
"description": "Supporting evidence (screenshots, logs, URLs, documents)."
|
|
1996
2043
|
},
|
|
1997
2044
|
"signature": {
|
|
1998
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2045
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Signature",
|
|
1999
2046
|
"description": "Digital signature for non-repudiation."
|
|
2000
2047
|
},
|
|
2001
2048
|
"previousChecksum": {
|
|
2002
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2049
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Checksum",
|
|
2003
2050
|
"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."
|
|
2004
2051
|
},
|
|
2005
2052
|
"cvss": {
|
|
2006
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.
|
|
2053
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.7.0#/$defs/Cvss",
|
|
2007
2054
|
"$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.",
|
|
2008
2055
|
"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."
|
|
2009
2056
|
},
|
|
@@ -2014,7 +2061,7 @@
|
|
|
2014
2061
|
"milestones": {
|
|
2015
2062
|
"type": "array",
|
|
2016
2063
|
"items": {
|
|
2017
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2064
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.7.0#/$defs/Milestone"
|
|
2018
2065
|
},
|
|
2019
2066
|
"description": "Remediation milestones (primarily for POA&M type amendments)."
|
|
2020
2067
|
},
|
|
@@ -2031,7 +2078,7 @@
|
|
|
2031
2078
|
"affectedPackages": {
|
|
2032
2079
|
"type": "array",
|
|
2033
2080
|
"items": {
|
|
2034
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.
|
|
2081
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.7.0#/$defs/Affected_Package"
|
|
2035
2082
|
},
|
|
2036
2083
|
"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)."
|
|
2037
2084
|
}
|
|
@@ -2164,9 +2211,9 @@
|
|
|
2164
2211
|
}
|
|
2165
2212
|
}
|
|
2166
2213
|
},
|
|
2167
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
2214
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.7.0": {
|
|
2168
2215
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
2169
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
2216
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.7.0",
|
|
2170
2217
|
"title": "HDF Result Primitives",
|
|
2171
2218
|
"description": "Types for representing assessment results and statuses.",
|
|
2172
2219
|
"$defs": {
|
|
@@ -2297,9 +2344,9 @@
|
|
|
2297
2344
|
}
|
|
2298
2345
|
}
|
|
2299
2346
|
},
|
|
2300
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.
|
|
2347
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.7.0": {
|
|
2301
2348
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
2302
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.
|
|
2349
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/cvss/v3.7.0",
|
|
2303
2350
|
"title": "HDF CVSS Primitives",
|
|
2304
2351
|
"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).",
|
|
2305
2352
|
"$defs": {
|
|
@@ -2496,9 +2543,9 @@
|
|
|
2496
2543
|
}
|
|
2497
2544
|
}
|
|
2498
2545
|
},
|
|
2499
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.
|
|
2546
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.7.0": {
|
|
2500
2547
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
2501
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.
|
|
2548
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/affected-package/v3.7.0",
|
|
2502
2549
|
"title": "HDF Affected Package Primitives",
|
|
2503
2550
|
"description": "Types for representing the software package(s) affected by a vulnerability finding.",
|
|
2504
2551
|
"$defs": {
|