@mitre/hdf-schema 3.1.0 → 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-plan/v3.
|
|
3
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/hdf-plan/v3.2.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",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"description": "Human-readable plan name. Example: 'Portal Monthly Assessment'."
|
|
21
21
|
},
|
|
22
22
|
"type": {
|
|
23
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/plan/v3.
|
|
23
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/plan/v3.2.0#/$defs/Plan_Type",
|
|
24
24
|
"description": "The type of assessment plan."
|
|
25
25
|
},
|
|
26
26
|
"description": {
|
|
@@ -36,12 +36,12 @@
|
|
|
36
36
|
"type": "array",
|
|
37
37
|
"minItems": 1,
|
|
38
38
|
"items": {
|
|
39
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/plan/v3.
|
|
39
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/plan/v3.2.0#/$defs/Assessment"
|
|
40
40
|
},
|
|
41
41
|
"description": "The assessments to perform. Each assessment pairs a baseline with targets and resolved inputs."
|
|
42
42
|
},
|
|
43
43
|
"schedule": {
|
|
44
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/plan/v3.
|
|
44
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/plan/v3.2.0#/$defs/Schedule",
|
|
45
45
|
"description": "Optional scheduling configuration for recurring assessments."
|
|
46
46
|
},
|
|
47
47
|
"labels": {
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"description": "Optional key-value labels for grouping and querying plans."
|
|
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 plan document has not been tampered with."
|
|
57
57
|
},
|
|
58
58
|
"version": {
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"description": "Version of this plan document."
|
|
61
61
|
},
|
|
62
62
|
"generator": {
|
|
63
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
63
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.2.0#/$defs/Generator",
|
|
64
64
|
"description": "Information about the tool that generated this plan."
|
|
65
65
|
}
|
|
66
66
|
},
|
|
@@ -94,9 +94,9 @@
|
|
|
94
94
|
}
|
|
95
95
|
],
|
|
96
96
|
"$defs": {
|
|
97
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/plan/v3.
|
|
97
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/plan/v3.2.0": {
|
|
98
98
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
99
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/plan/v3.
|
|
99
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/plan/v3.2.0",
|
|
100
100
|
"title": "HDF Plan Primitives",
|
|
101
101
|
"description": "Types for defining assessment plans — what to scan, how to configure it, and when to run.",
|
|
102
102
|
"$defs": {
|
|
@@ -144,7 +144,7 @@
|
|
|
144
144
|
"description": "componentId of the system component this assessment targets. Use for direct component binding. Alternative to targetSelector."
|
|
145
145
|
},
|
|
146
146
|
"targetSelector": {
|
|
147
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.
|
|
147
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.2.0#/$defs/Target_Selector",
|
|
148
148
|
"description": "Label selector to match targets for this assessment. Overrides the system component's targetSelector if provided."
|
|
149
149
|
},
|
|
150
150
|
"inputs": {
|
|
@@ -226,9 +226,9 @@
|
|
|
226
226
|
}
|
|
227
227
|
}
|
|
228
228
|
},
|
|
229
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.
|
|
229
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.2.0": {
|
|
230
230
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
231
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.
|
|
231
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.2.0",
|
|
232
232
|
"title": "HDF System Primitives",
|
|
233
233
|
"description": "Types for describing system architecture, authorization boundaries, and components.",
|
|
234
234
|
"$defs": {
|
|
@@ -279,7 +279,7 @@
|
|
|
279
279
|
"description": "Rationale for why this override is needed."
|
|
280
280
|
},
|
|
281
281
|
"approvedBy": {
|
|
282
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
282
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Identity",
|
|
283
283
|
"description": "Identity of the person or system that approved this override."
|
|
284
284
|
}
|
|
285
285
|
},
|
|
@@ -360,9 +360,9 @@
|
|
|
360
360
|
}
|
|
361
361
|
}
|
|
362
362
|
},
|
|
363
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
363
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0": {
|
|
364
364
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
365
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
365
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0",
|
|
366
366
|
"title": "HDF Common Primitives",
|
|
367
367
|
"description": "Shared building blocks used by hdf-results and hdf-baseline schemas.",
|
|
368
368
|
"$defs": {
|
|
@@ -1107,15 +1107,40 @@
|
|
|
1107
1107
|
},
|
|
1108
1108
|
"code": {
|
|
1109
1109
|
"type": "string",
|
|
1110
|
-
"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."
|
|
1110
|
+
"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."
|
|
1111
1111
|
},
|
|
1112
1112
|
"sourceLocation": {
|
|
1113
1113
|
"$ref": "#/$defs/Source_Location",
|
|
1114
1114
|
"description": "The explicit location of the requirement within the source code."
|
|
1115
|
+
},
|
|
1116
|
+
"controlType": {
|
|
1117
|
+
"type": "string",
|
|
1118
|
+
"enum": [
|
|
1119
|
+
"policy",
|
|
1120
|
+
"procedure",
|
|
1121
|
+
"technical",
|
|
1122
|
+
"management",
|
|
1123
|
+
"operational"
|
|
1124
|
+
],
|
|
1125
|
+
"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."
|
|
1126
|
+
},
|
|
1127
|
+
"verificationMethod": {
|
|
1128
|
+
"$ref": "#/$defs/Verification_Method_Enum",
|
|
1129
|
+
"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."
|
|
1130
|
+
},
|
|
1131
|
+
"applicability": {
|
|
1132
|
+
"type": "string",
|
|
1133
|
+
"enum": [
|
|
1134
|
+
"required",
|
|
1135
|
+
"optional",
|
|
1136
|
+
"advisory"
|
|
1137
|
+
],
|
|
1138
|
+
"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."
|
|
1115
1139
|
}
|
|
1116
1140
|
},
|
|
1117
1141
|
"examples": [
|
|
1118
1142
|
{
|
|
1143
|
+
"$comment": "v3.1.x-style requirement: classification fields omitted. Consumers must continue to handle this shape under v3.2.0 (backward compatibility).",
|
|
1119
1144
|
"id": "SV-238196",
|
|
1120
1145
|
"title": "The Ubuntu operating system must enforce password complexity",
|
|
1121
1146
|
"impact": 0.5,
|
|
@@ -1143,11 +1168,85 @@
|
|
|
1143
1168
|
"data": "Verify the value of 'minlen' in /etc/security/pwquality.conf."
|
|
1144
1169
|
}
|
|
1145
1170
|
]
|
|
1171
|
+
},
|
|
1172
|
+
{
|
|
1173
|
+
"$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.",
|
|
1174
|
+
"id": "AC-3",
|
|
1175
|
+
"title": "Access Enforcement",
|
|
1176
|
+
"impact": 0.7,
|
|
1177
|
+
"tags": {
|
|
1178
|
+
"nist": [
|
|
1179
|
+
"AC-3"
|
|
1180
|
+
],
|
|
1181
|
+
"severity": "high"
|
|
1182
|
+
},
|
|
1183
|
+
"descriptions": [
|
|
1184
|
+
{
|
|
1185
|
+
"label": "default",
|
|
1186
|
+
"data": "The information system enforces approved authorizations for logical access to information and system resources."
|
|
1187
|
+
}
|
|
1188
|
+
],
|
|
1189
|
+
"code": "control 'AC-3' do; impact 0.7; end",
|
|
1190
|
+
"controlType": "technical",
|
|
1191
|
+
"verificationMethod": "automated",
|
|
1192
|
+
"applicability": "required"
|
|
1193
|
+
},
|
|
1194
|
+
{
|
|
1195
|
+
"$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.",
|
|
1196
|
+
"id": "KSI-CNA-01",
|
|
1197
|
+
"title": "Cyber Security Plan documents the system",
|
|
1198
|
+
"impact": 0.5,
|
|
1199
|
+
"tags": {
|
|
1200
|
+
"ksi": [
|
|
1201
|
+
"KSI-CNA"
|
|
1202
|
+
]
|
|
1203
|
+
},
|
|
1204
|
+
"descriptions": [
|
|
1205
|
+
{
|
|
1206
|
+
"label": "default",
|
|
1207
|
+
"data": "The Cyber Security Plan documents the system, its boundary, and its components."
|
|
1208
|
+
}
|
|
1209
|
+
],
|
|
1210
|
+
"controlType": "policy",
|
|
1211
|
+
"verificationMethod": "manual-by-design",
|
|
1212
|
+
"applicability": "required"
|
|
1213
|
+
},
|
|
1214
|
+
{
|
|
1215
|
+
"$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.",
|
|
1216
|
+
"id": "SV-999999",
|
|
1217
|
+
"title": "Example STIG rule pending automation",
|
|
1218
|
+
"impact": 0.3,
|
|
1219
|
+
"tags": {
|
|
1220
|
+
"stig_id": "SV-999999"
|
|
1221
|
+
},
|
|
1222
|
+
"descriptions": [
|
|
1223
|
+
{
|
|
1224
|
+
"label": "default",
|
|
1225
|
+
"data": "Example requirement that is intended to be automated but currently lacks a fix block."
|
|
1226
|
+
},
|
|
1227
|
+
{
|
|
1228
|
+
"label": "check",
|
|
1229
|
+
"data": "Manual review of system configuration is required."
|
|
1230
|
+
}
|
|
1231
|
+
],
|
|
1232
|
+
"verificationMethod": "manual-pending-automation",
|
|
1233
|
+
"applicability": "advisory"
|
|
1146
1234
|
}
|
|
1147
1235
|
],
|
|
1148
1236
|
"description": "Core requirement fields shared between baseline requirements and evaluated requirements. Contains the fundamental requirement definition without assessment results.",
|
|
1149
1237
|
"title": "Requirement Core"
|
|
1150
1238
|
},
|
|
1239
|
+
"Verification_Method_Enum": {
|
|
1240
|
+
"type": "string",
|
|
1241
|
+
"enum": [
|
|
1242
|
+
"automated",
|
|
1243
|
+
"manual-by-design",
|
|
1244
|
+
"manual-pending-automation",
|
|
1245
|
+
"hybrid"
|
|
1246
|
+
],
|
|
1247
|
+
"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.",
|
|
1248
|
+
"title": "Verification Method Enum"
|
|
1249
|
+
},
|
|
1151
1250
|
"Severity": {
|
|
1152
1251
|
"type": "string",
|
|
1153
1252
|
"enum": [
|
|
@@ -1178,9 +1277,9 @@
|
|
|
1178
1277
|
}
|
|
1179
1278
|
}
|
|
1180
1279
|
},
|
|
1181
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
1280
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.2.0": {
|
|
1182
1281
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1183
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
1282
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.2.0",
|
|
1184
1283
|
"title": "HDF Extension Primitives",
|
|
1185
1284
|
"description": "Extension types for waivers, attestations, generators, and integrity.",
|
|
1186
1285
|
"$defs": {
|
|
@@ -1208,15 +1307,15 @@
|
|
|
1208
1307
|
],
|
|
1209
1308
|
"properties": {
|
|
1210
1309
|
"type": {
|
|
1211
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
1310
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.2.0#/$defs/Override_Type",
|
|
1212
1311
|
"description": "The type of override applied to this requirement."
|
|
1213
1312
|
},
|
|
1214
1313
|
"status": {
|
|
1215
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
1314
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.2.0#/$defs/Result_Status",
|
|
1216
1315
|
"description": "The new status this override sets for the requirement. Optional when only impact is being overridden."
|
|
1217
1316
|
},
|
|
1218
1317
|
"impact": {
|
|
1219
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
1318
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.2.0#/$defs/Impact_Override",
|
|
1220
1319
|
"description": "Override to the requirement's impact score. At least one of status or impact must be set."
|
|
1221
1320
|
},
|
|
1222
1321
|
"reason": {
|
|
@@ -1224,7 +1323,7 @@
|
|
|
1224
1323
|
"description": "Explanation for why this override was applied."
|
|
1225
1324
|
},
|
|
1226
1325
|
"appliedBy": {
|
|
1227
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1326
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Identity",
|
|
1228
1327
|
"description": "Identity of who applied this override. For simple cases, use type 'simple' with just an identifier."
|
|
1229
1328
|
},
|
|
1230
1329
|
"appliedAt": {
|
|
@@ -1238,18 +1337,18 @@
|
|
|
1238
1337
|
"description": "Timestamp when this override expires and must be reviewed/renewed. REQUIRED - no permanent overrides allowed. ISO 8601 format."
|
|
1239
1338
|
},
|
|
1240
1339
|
"signature": {
|
|
1241
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1340
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Signature",
|
|
1242
1341
|
"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."
|
|
1243
1342
|
},
|
|
1244
1343
|
"evidence": {
|
|
1245
1344
|
"type": "array",
|
|
1246
1345
|
"items": {
|
|
1247
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1346
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Evidence"
|
|
1248
1347
|
},
|
|
1249
1348
|
"description": "Supporting evidence for this override, such as screenshots demonstrating manual verification for attestations."
|
|
1250
1349
|
},
|
|
1251
1350
|
"previousChecksum": {
|
|
1252
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1351
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Checksum",
|
|
1253
1352
|
"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."
|
|
1254
1353
|
}
|
|
1255
1354
|
},
|
|
@@ -1355,7 +1454,7 @@
|
|
|
1355
1454
|
"description": "Detailed explanation of the plan, including what actions will be taken."
|
|
1356
1455
|
},
|
|
1357
1456
|
"appliedBy": {
|
|
1358
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1457
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Identity",
|
|
1359
1458
|
"description": "Identity of who created this POA&M. For simple cases, use type 'simple' with just an identifier."
|
|
1360
1459
|
},
|
|
1361
1460
|
"appliedAt": {
|
|
@@ -1371,23 +1470,23 @@
|
|
|
1371
1470
|
"milestones": {
|
|
1372
1471
|
"type": "array",
|
|
1373
1472
|
"items": {
|
|
1374
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1473
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Milestone"
|
|
1375
1474
|
},
|
|
1376
1475
|
"description": "Optional array of milestones tracking progress toward completion."
|
|
1377
1476
|
},
|
|
1378
1477
|
"signature": {
|
|
1379
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1478
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Signature",
|
|
1380
1479
|
"description": "Optional digital signature for enhanced trust and non-repudiation."
|
|
1381
1480
|
},
|
|
1382
1481
|
"evidence": {
|
|
1383
1482
|
"type": "array",
|
|
1384
1483
|
"items": {
|
|
1385
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1484
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Evidence"
|
|
1386
1485
|
},
|
|
1387
1486
|
"description": "Supporting evidence for this POA&M, such as documentation of compensating controls or mitigation implementation."
|
|
1388
1487
|
},
|
|
1389
1488
|
"previousChecksum": {
|
|
1390
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1489
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Checksum",
|
|
1391
1490
|
"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."
|
|
1392
1491
|
}
|
|
1393
1492
|
},
|
|
@@ -1538,7 +1637,7 @@
|
|
|
1538
1637
|
},
|
|
1539
1638
|
"properties": {
|
|
1540
1639
|
"algorithm": {
|
|
1541
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1640
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Hash_Algorithm",
|
|
1542
1641
|
"description": "The hash algorithm used for the checksum."
|
|
1543
1642
|
},
|
|
1544
1643
|
"checksum": {
|
|
@@ -1571,9 +1670,9 @@
|
|
|
1571
1670
|
}
|
|
1572
1671
|
}
|
|
1573
1672
|
},
|
|
1574
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
1673
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.2.0": {
|
|
1575
1674
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1576
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
1675
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.2.0",
|
|
1577
1676
|
"title": "HDF Amendment Primitives",
|
|
1578
1677
|
"description": "Types for waivers, attestations, and POA&Ms that modify requirement compliance status.",
|
|
1579
1678
|
"$defs": {
|
|
@@ -1645,7 +1744,7 @@
|
|
|
1645
1744
|
"description": "Name of the baseline containing the requirement. Required when the system has multiple baselines with potentially overlapping requirement IDs."
|
|
1646
1745
|
},
|
|
1647
1746
|
"status": {
|
|
1648
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
1747
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.2.0#/$defs/Result_Status",
|
|
1649
1748
|
"description": "The new status this amendment sets. Optional when only impact is being overridden."
|
|
1650
1749
|
},
|
|
1651
1750
|
"impact": {
|
|
@@ -1657,7 +1756,7 @@
|
|
|
1657
1756
|
"description": "Justification for this amendment."
|
|
1658
1757
|
},
|
|
1659
1758
|
"appliedBy": {
|
|
1660
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1759
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Identity",
|
|
1661
1760
|
"description": "Identity of who applied this amendment."
|
|
1662
1761
|
},
|
|
1663
1762
|
"appliedAt": {
|
|
@@ -1673,22 +1772,22 @@
|
|
|
1673
1772
|
"evidence": {
|
|
1674
1773
|
"type": "array",
|
|
1675
1774
|
"items": {
|
|
1676
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1775
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Evidence"
|
|
1677
1776
|
},
|
|
1678
1777
|
"description": "Supporting evidence (screenshots, logs, URLs, documents)."
|
|
1679
1778
|
},
|
|
1680
1779
|
"signature": {
|
|
1681
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1780
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Signature",
|
|
1682
1781
|
"description": "Digital signature for non-repudiation."
|
|
1683
1782
|
},
|
|
1684
1783
|
"previousChecksum": {
|
|
1685
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1784
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Checksum",
|
|
1686
1785
|
"description": "Checksum of the prior amendment in the chain. Creates a tamper-evident linked list. Null for the first amendment."
|
|
1687
1786
|
},
|
|
1688
1787
|
"milestones": {
|
|
1689
1788
|
"type": "array",
|
|
1690
1789
|
"items": {
|
|
1691
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1790
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Milestone"
|
|
1692
1791
|
},
|
|
1693
1792
|
"description": "Remediation milestones (primarily for POA&M type amendments)."
|
|
1694
1793
|
},
|
|
@@ -1809,9 +1908,9 @@
|
|
|
1809
1908
|
}
|
|
1810
1909
|
}
|
|
1811
1910
|
},
|
|
1812
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
1911
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.2.0": {
|
|
1813
1912
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1814
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
1913
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.2.0",
|
|
1815
1914
|
"title": "HDF Result Primitives",
|
|
1816
1915
|
"description": "Types for representing assessment results and statuses.",
|
|
1817
1916
|
"$defs": {
|