@mitre/hdf-schema 3.1.0-rc.1 → 3.2.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 -1
- package/dist/go/go.mod +2 -2
- package/dist/go/hdf.go +172 -76
- package/dist/helpers.d.ts +4 -0
- package/dist/index.js +21 -21
- package/dist/schemas/hdf-amendments.schema.json +134 -35
- package/dist/schemas/hdf-baseline.schema.json +139 -40
- package/dist/schemas/hdf-comparison.schema.json +190 -91
- package/dist/schemas/hdf-evidence-package.schema.json +133 -34
- package/dist/schemas/hdf-plan.schema.json +139 -40
- package/dist/schemas/hdf-results.schema.json +169 -70
- package/dist/schemas/hdf-system.schema.json +148 -49
- package/dist/ts/hdf-baseline.d.ts +79 -2
- package/dist/ts/hdf-baseline.js +52 -0
- package/dist/ts/hdf-baseline.ts +82 -2
- package/dist/ts/hdf-results.d.ts +79 -2
- package/dist/ts/hdf-results.js +52 -0
- package/dist/ts/hdf-results.ts +82 -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-amendments/v3.
|
|
3
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/hdf-amendments/v3.2.0",
|
|
4
4
|
"title": "HDF Amendments",
|
|
5
5
|
"description": "Waivers, attestations, and POA&Ms that modify requirement compliance status or impact. Amendments are standalone documents that can be applied to results via merge operations.",
|
|
6
6
|
"type": "object",
|
|
@@ -29,18 +29,18 @@
|
|
|
29
29
|
"description": "URI to the hdf-system document these amendments apply to."
|
|
30
30
|
},
|
|
31
31
|
"appliedBy": {
|
|
32
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
32
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Identity",
|
|
33
33
|
"description": "Default identity of who created this amendments document. Individual overrides may specify their own appliedBy."
|
|
34
34
|
},
|
|
35
35
|
"approvedBy": {
|
|
36
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
36
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Identity",
|
|
37
37
|
"description": "Identity of the authorizing official who approved these amendments."
|
|
38
38
|
},
|
|
39
39
|
"overrides": {
|
|
40
40
|
"type": "array",
|
|
41
41
|
"minItems": 1,
|
|
42
42
|
"items": {
|
|
43
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
43
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.2.0#/$defs/Standalone_Override"
|
|
44
44
|
},
|
|
45
45
|
"description": "The set of amendments (waivers, attestations, POA&Ms, and other overrides)."
|
|
46
46
|
},
|
|
@@ -52,11 +52,11 @@
|
|
|
52
52
|
"description": "Optional key-value labels for grouping and querying amendments."
|
|
53
53
|
},
|
|
54
54
|
"integrity": {
|
|
55
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
55
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.2.0#/$defs/Integrity",
|
|
56
56
|
"description": "Cryptographic integrity information for verifying this amendments document has not been tampered with."
|
|
57
57
|
},
|
|
58
58
|
"signature": {
|
|
59
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
59
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Signature",
|
|
60
60
|
"description": "Document-level digital signature covering all amendments."
|
|
61
61
|
},
|
|
62
62
|
"version": {
|
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
"description": "Version of this amendments document."
|
|
65
65
|
},
|
|
66
66
|
"generator": {
|
|
67
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
67
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.2.0#/$defs/Generator",
|
|
68
68
|
"description": "Information about the tool that generated this document."
|
|
69
69
|
}
|
|
70
70
|
},
|
|
@@ -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.2.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.2.0",
|
|
107
107
|
"title": "HDF Common Primitives",
|
|
108
108
|
"description": "Shared building blocks used by hdf-results and hdf-baseline schemas.",
|
|
109
109
|
"$defs": {
|
|
@@ -848,15 +848,40 @@
|
|
|
848
848
|
},
|
|
849
849
|
"code": {
|
|
850
850
|
"type": "string",
|
|
851
|
-
"description": "The raw source code of the requirement. Set to null for manual-only requirements or requirements not yet implemented. Note that if this is an overlay, it does not include the underlying source code."
|
|
851
|
+
"description": "The raw source code of the requirement. Set to null for manual-only requirements or requirements not yet implemented; use verificationMethod to disambiguate manual-by-design from manual-pending-automation. Note that if this is an overlay, it does not include the underlying source code."
|
|
852
852
|
},
|
|
853
853
|
"sourceLocation": {
|
|
854
854
|
"$ref": "#/$defs/Source_Location",
|
|
855
855
|
"description": "The explicit location of the requirement within the source code."
|
|
856
|
+
},
|
|
857
|
+
"controlType": {
|
|
858
|
+
"type": "string",
|
|
859
|
+
"enum": [
|
|
860
|
+
"policy",
|
|
861
|
+
"procedure",
|
|
862
|
+
"technical",
|
|
863
|
+
"management",
|
|
864
|
+
"operational"
|
|
865
|
+
],
|
|
866
|
+
"description": "Classification of the control's nature, aligning with NIST SP 800-53 / SP 800-53A categories. 'policy' = an authored governance statement; 'procedure' = a documented process; 'technical' = an enforced technical configuration; 'management' = a programmatic/management activity; 'operational' = a recurring operational activity (e.g. AT, IR, MA families). Optional: when omitted, consumers may infer heuristically from family/id but should not assume a default."
|
|
867
|
+
},
|
|
868
|
+
"verificationMethod": {
|
|
869
|
+
"$ref": "#/$defs/Verification_Method_Enum",
|
|
870
|
+
"description": "How this requirement is intended to be verified. Disambiguates the two cases that null 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and runs without operator action; 'hybrid' = part automated, part manual. Optional: when omitted, consumers should not infer a default."
|
|
871
|
+
},
|
|
872
|
+
"applicability": {
|
|
873
|
+
"type": "string",
|
|
874
|
+
"enum": [
|
|
875
|
+
"required",
|
|
876
|
+
"optional",
|
|
877
|
+
"advisory"
|
|
878
|
+
],
|
|
879
|
+
"description": "Whether the requirement is mandatory within its baseline. Distinct from severity (risk weight) and status (lifecycle state). Maps 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{}). Optional: when omitted, consumers should treat the requirement as 'required' by convention."
|
|
856
880
|
}
|
|
857
881
|
},
|
|
858
882
|
"examples": [
|
|
859
883
|
{
|
|
884
|
+
"$comment": "v3.1.x-style requirement: classification fields omitted. Consumers must continue to handle this shape under v3.2.0 (backward compatibility).",
|
|
860
885
|
"id": "SV-238196",
|
|
861
886
|
"title": "The Ubuntu operating system must enforce password complexity",
|
|
862
887
|
"impact": 0.5,
|
|
@@ -884,11 +909,85 @@
|
|
|
884
909
|
"data": "Verify the value of 'minlen' in /etc/security/pwquality.conf."
|
|
885
910
|
}
|
|
886
911
|
]
|
|
912
|
+
},
|
|
913
|
+
{
|
|
914
|
+
"$comment": "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.",
|
|
915
|
+
"id": "AC-3",
|
|
916
|
+
"title": "Access Enforcement",
|
|
917
|
+
"impact": 0.7,
|
|
918
|
+
"tags": {
|
|
919
|
+
"nist": [
|
|
920
|
+
"AC-3"
|
|
921
|
+
],
|
|
922
|
+
"severity": "high"
|
|
923
|
+
},
|
|
924
|
+
"descriptions": [
|
|
925
|
+
{
|
|
926
|
+
"label": "default",
|
|
927
|
+
"data": "The information system enforces approved authorizations for logical access to information and system resources."
|
|
928
|
+
}
|
|
929
|
+
],
|
|
930
|
+
"code": "control 'AC-3' do; impact 0.7; end",
|
|
931
|
+
"controlType": "technical",
|
|
932
|
+
"verificationMethod": "automated",
|
|
933
|
+
"applicability": "required"
|
|
934
|
+
},
|
|
935
|
+
{
|
|
936
|
+
"$comment": "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.",
|
|
937
|
+
"id": "KSI-CNA-01",
|
|
938
|
+
"title": "Cyber Security Plan documents the system",
|
|
939
|
+
"impact": 0.5,
|
|
940
|
+
"tags": {
|
|
941
|
+
"ksi": [
|
|
942
|
+
"KSI-CNA"
|
|
943
|
+
]
|
|
944
|
+
},
|
|
945
|
+
"descriptions": [
|
|
946
|
+
{
|
|
947
|
+
"label": "default",
|
|
948
|
+
"data": "The Cyber Security Plan documents the system, its boundary, and its components."
|
|
949
|
+
}
|
|
950
|
+
],
|
|
951
|
+
"controlType": "policy",
|
|
952
|
+
"verificationMethod": "manual-by-design",
|
|
953
|
+
"applicability": "required"
|
|
954
|
+
},
|
|
955
|
+
{
|
|
956
|
+
"$comment": "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.",
|
|
957
|
+
"id": "SV-999999",
|
|
958
|
+
"title": "Example STIG rule pending automation",
|
|
959
|
+
"impact": 0.3,
|
|
960
|
+
"tags": {
|
|
961
|
+
"stig_id": "SV-999999"
|
|
962
|
+
},
|
|
963
|
+
"descriptions": [
|
|
964
|
+
{
|
|
965
|
+
"label": "default",
|
|
966
|
+
"data": "Example requirement that is intended to be automated but currently lacks a fix block."
|
|
967
|
+
},
|
|
968
|
+
{
|
|
969
|
+
"label": "check",
|
|
970
|
+
"data": "Manual review of system configuration is required."
|
|
971
|
+
}
|
|
972
|
+
],
|
|
973
|
+
"verificationMethod": "manual-pending-automation",
|
|
974
|
+
"applicability": "advisory"
|
|
887
975
|
}
|
|
888
976
|
],
|
|
889
977
|
"description": "Core requirement fields shared between baseline requirements and evaluated requirements. Contains the fundamental requirement definition without assessment results.",
|
|
890
978
|
"title": "Requirement Core"
|
|
891
979
|
},
|
|
980
|
+
"Verification_Method_Enum": {
|
|
981
|
+
"type": "string",
|
|
982
|
+
"enum": [
|
|
983
|
+
"automated",
|
|
984
|
+
"manual-by-design",
|
|
985
|
+
"manual-pending-automation",
|
|
986
|
+
"hybrid"
|
|
987
|
+
],
|
|
988
|
+
"description": "How a requirement is intended to be verified. Disambiguates the two cases that null 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and runs without operator action; 'hybrid' = part automated, part manual. Named '_Enum' to disambiguate from the unrelated Verification_Method DID-context struct.",
|
|
989
|
+
"title": "Verification Method Enum"
|
|
990
|
+
},
|
|
892
991
|
"Severity": {
|
|
893
992
|
"type": "string",
|
|
894
993
|
"enum": [
|
|
@@ -919,9 +1018,9 @@
|
|
|
919
1018
|
}
|
|
920
1019
|
}
|
|
921
1020
|
},
|
|
922
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
1021
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.2.0": {
|
|
923
1022
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
924
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
1023
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.2.0",
|
|
925
1024
|
"title": "HDF Amendment Primitives",
|
|
926
1025
|
"description": "Types for waivers, attestations, and POA&Ms that modify requirement compliance status.",
|
|
927
1026
|
"$defs": {
|
|
@@ -993,7 +1092,7 @@
|
|
|
993
1092
|
"description": "Name of the baseline containing the requirement. Required when the system has multiple baselines with potentially overlapping requirement IDs."
|
|
994
1093
|
},
|
|
995
1094
|
"status": {
|
|
996
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
1095
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.2.0#/$defs/Result_Status",
|
|
997
1096
|
"description": "The new status this amendment sets. Optional when only impact is being overridden."
|
|
998
1097
|
},
|
|
999
1098
|
"impact": {
|
|
@@ -1005,7 +1104,7 @@
|
|
|
1005
1104
|
"description": "Justification for this amendment."
|
|
1006
1105
|
},
|
|
1007
1106
|
"appliedBy": {
|
|
1008
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1107
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Identity",
|
|
1009
1108
|
"description": "Identity of who applied this amendment."
|
|
1010
1109
|
},
|
|
1011
1110
|
"appliedAt": {
|
|
@@ -1021,22 +1120,22 @@
|
|
|
1021
1120
|
"evidence": {
|
|
1022
1121
|
"type": "array",
|
|
1023
1122
|
"items": {
|
|
1024
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1123
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Evidence"
|
|
1025
1124
|
},
|
|
1026
1125
|
"description": "Supporting evidence (screenshots, logs, URLs, documents)."
|
|
1027
1126
|
},
|
|
1028
1127
|
"signature": {
|
|
1029
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1128
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Signature",
|
|
1030
1129
|
"description": "Digital signature for non-repudiation."
|
|
1031
1130
|
},
|
|
1032
1131
|
"previousChecksum": {
|
|
1033
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1132
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Checksum",
|
|
1034
1133
|
"description": "Checksum of the prior amendment in the chain. Creates a tamper-evident linked list. Null for the first amendment."
|
|
1035
1134
|
},
|
|
1036
1135
|
"milestones": {
|
|
1037
1136
|
"type": "array",
|
|
1038
1137
|
"items": {
|
|
1039
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1138
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Milestone"
|
|
1040
1139
|
},
|
|
1041
1140
|
"description": "Remediation milestones (primarily for POA&M type amendments)."
|
|
1042
1141
|
},
|
|
@@ -1157,9 +1256,9 @@
|
|
|
1157
1256
|
}
|
|
1158
1257
|
}
|
|
1159
1258
|
},
|
|
1160
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
1259
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.2.0": {
|
|
1161
1260
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1162
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
1261
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.2.0",
|
|
1163
1262
|
"title": "HDF Result Primitives",
|
|
1164
1263
|
"description": "Types for representing assessment results and statuses.",
|
|
1165
1264
|
"$defs": {
|
|
@@ -1290,9 +1389,9 @@
|
|
|
1290
1389
|
}
|
|
1291
1390
|
}
|
|
1292
1391
|
},
|
|
1293
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
1392
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.2.0": {
|
|
1294
1393
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1295
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
1394
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.2.0",
|
|
1296
1395
|
"title": "HDF Extension Primitives",
|
|
1297
1396
|
"description": "Extension types for waivers, attestations, generators, and integrity.",
|
|
1298
1397
|
"$defs": {
|
|
@@ -1320,15 +1419,15 @@
|
|
|
1320
1419
|
],
|
|
1321
1420
|
"properties": {
|
|
1322
1421
|
"type": {
|
|
1323
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
1422
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.2.0#/$defs/Override_Type",
|
|
1324
1423
|
"description": "The type of override applied to this requirement."
|
|
1325
1424
|
},
|
|
1326
1425
|
"status": {
|
|
1327
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
1426
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.2.0#/$defs/Result_Status",
|
|
1328
1427
|
"description": "The new status this override sets for the requirement. Optional when only impact is being overridden."
|
|
1329
1428
|
},
|
|
1330
1429
|
"impact": {
|
|
1331
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
1430
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.2.0#/$defs/Impact_Override",
|
|
1332
1431
|
"description": "Override to the requirement's impact score. At least one of status or impact must be set."
|
|
1333
1432
|
},
|
|
1334
1433
|
"reason": {
|
|
@@ -1336,7 +1435,7 @@
|
|
|
1336
1435
|
"description": "Explanation for why this override was applied."
|
|
1337
1436
|
},
|
|
1338
1437
|
"appliedBy": {
|
|
1339
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1438
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Identity",
|
|
1340
1439
|
"description": "Identity of who applied this override. For simple cases, use type 'simple' with just an identifier."
|
|
1341
1440
|
},
|
|
1342
1441
|
"appliedAt": {
|
|
@@ -1350,18 +1449,18 @@
|
|
|
1350
1449
|
"description": "Timestamp when this override expires and must be reviewed/renewed. REQUIRED - no permanent overrides allowed. ISO 8601 format."
|
|
1351
1450
|
},
|
|
1352
1451
|
"signature": {
|
|
1353
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1452
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Signature",
|
|
1354
1453
|
"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."
|
|
1355
1454
|
},
|
|
1356
1455
|
"evidence": {
|
|
1357
1456
|
"type": "array",
|
|
1358
1457
|
"items": {
|
|
1359
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1458
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Evidence"
|
|
1360
1459
|
},
|
|
1361
1460
|
"description": "Supporting evidence for this override, such as screenshots demonstrating manual verification for attestations."
|
|
1362
1461
|
},
|
|
1363
1462
|
"previousChecksum": {
|
|
1364
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1463
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Checksum",
|
|
1365
1464
|
"description": "SHA-256 checksum of the previous amendment in chronological order. Creates a tamper-evident chain of amendments (similar to blockchain). Null for the first amendment on a requirement."
|
|
1366
1465
|
}
|
|
1367
1466
|
},
|
|
@@ -1467,7 +1566,7 @@
|
|
|
1467
1566
|
"description": "Detailed explanation of the plan, including what actions will be taken."
|
|
1468
1567
|
},
|
|
1469
1568
|
"appliedBy": {
|
|
1470
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1569
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Identity",
|
|
1471
1570
|
"description": "Identity of who created this POA&M. For simple cases, use type 'simple' with just an identifier."
|
|
1472
1571
|
},
|
|
1473
1572
|
"appliedAt": {
|
|
@@ -1483,23 +1582,23 @@
|
|
|
1483
1582
|
"milestones": {
|
|
1484
1583
|
"type": "array",
|
|
1485
1584
|
"items": {
|
|
1486
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1585
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Milestone"
|
|
1487
1586
|
},
|
|
1488
1587
|
"description": "Optional array of milestones tracking progress toward completion."
|
|
1489
1588
|
},
|
|
1490
1589
|
"signature": {
|
|
1491
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1590
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Signature",
|
|
1492
1591
|
"description": "Optional digital signature for enhanced trust and non-repudiation."
|
|
1493
1592
|
},
|
|
1494
1593
|
"evidence": {
|
|
1495
1594
|
"type": "array",
|
|
1496
1595
|
"items": {
|
|
1497
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1596
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Evidence"
|
|
1498
1597
|
},
|
|
1499
1598
|
"description": "Supporting evidence for this POA&M, such as documentation of compensating controls or mitigation implementation."
|
|
1500
1599
|
},
|
|
1501
1600
|
"previousChecksum": {
|
|
1502
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1601
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Checksum",
|
|
1503
1602
|
"description": "SHA-256 checksum of the previous amendment in chronological order. Creates a tamper-evident chain of amendments (similar to blockchain). Null for the first amendment on a requirement."
|
|
1504
1603
|
}
|
|
1505
1604
|
},
|
|
@@ -1650,7 +1749,7 @@
|
|
|
1650
1749
|
},
|
|
1651
1750
|
"properties": {
|
|
1652
1751
|
"algorithm": {
|
|
1653
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1752
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Hash_Algorithm",
|
|
1654
1753
|
"description": "The hash algorithm used for the checksum."
|
|
1655
1754
|
},
|
|
1656
1755
|
"checksum": {
|