@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-results/v3.
|
|
3
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/hdf-results/v3.2.0",
|
|
4
4
|
"type": "object",
|
|
5
5
|
"unevaluatedProperties": false,
|
|
6
6
|
"required": [
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"components": {
|
|
21
21
|
"type": "array",
|
|
22
22
|
"items": {
|
|
23
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/component/v3.
|
|
23
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/component/v3.2.0#/$defs/Component"
|
|
24
24
|
},
|
|
25
25
|
"description": "The components that were assessed. Each component describes a system element (host, container, cloud resource, application, etc.) with optional identity, SBOM, and external references."
|
|
26
26
|
},
|
|
@@ -32,27 +32,27 @@
|
|
|
32
32
|
"description": "Information on the baselines that were evaluated, including findings."
|
|
33
33
|
},
|
|
34
34
|
"statistics": {
|
|
35
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/statistics/v3.
|
|
35
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/statistics/v3.2.0#/$defs/Statistics",
|
|
36
36
|
"description": "Statistics for the assessment run, including duration and result counts."
|
|
37
37
|
},
|
|
38
38
|
"generator": {
|
|
39
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
39
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.2.0#/$defs/Generator",
|
|
40
40
|
"description": "Information about the tool that generated this file."
|
|
41
41
|
},
|
|
42
42
|
"tool": {
|
|
43
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
43
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.2.0#/$defs/Tool",
|
|
44
44
|
"description": "The security tool that produced the assessment data in this file."
|
|
45
45
|
},
|
|
46
46
|
"integrity": {
|
|
47
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
47
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.2.0#/$defs/Integrity",
|
|
48
48
|
"description": "Cryptographic integrity information for verifying this file."
|
|
49
49
|
},
|
|
50
50
|
"runner": {
|
|
51
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/runner/v3.
|
|
51
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/runner/v3.2.0#/$defs/Runner",
|
|
52
52
|
"description": "Information about the test execution environment where the security tool was run. Distinct from targets (what is being tested)."
|
|
53
53
|
},
|
|
54
54
|
"remediation": {
|
|
55
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
55
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Remediation",
|
|
56
56
|
"description": "Optional reference to automated remediation resources (Ansible playbooks, Terraform scripts, etc.) for fixing failing requirements found in this assessment."
|
|
57
57
|
},
|
|
58
58
|
"systemRef": {
|
|
@@ -160,14 +160,14 @@
|
|
|
160
160
|
],
|
|
161
161
|
"allOf": [
|
|
162
162
|
{
|
|
163
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
163
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Baseline_Metadata"
|
|
164
164
|
}
|
|
165
165
|
],
|
|
166
166
|
"properties": {
|
|
167
167
|
"depends": {
|
|
168
168
|
"type": "array",
|
|
169
169
|
"items": {
|
|
170
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
170
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Dependency"
|
|
171
171
|
},
|
|
172
172
|
"description": "The set of dependencies this baseline depends on."
|
|
173
173
|
},
|
|
@@ -180,15 +180,15 @@
|
|
|
180
180
|
"description": "The description - should be more detailed than the summary."
|
|
181
181
|
},
|
|
182
182
|
"integrity": {
|
|
183
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
183
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.2.0#/$defs/Integrity",
|
|
184
184
|
"description": "Cryptographic integrity information for verifying this baseline has not been tampered with."
|
|
185
185
|
},
|
|
186
186
|
"originalChecksum": {
|
|
187
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
187
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Checksum",
|
|
188
188
|
"description": "SHA-256 checksum of the original baseline definition file (before execution). This is an immutable reference to the baseline as defined, used to detect tampering with baseline requirements or metadata."
|
|
189
189
|
},
|
|
190
190
|
"resultsChecksum": {
|
|
191
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
191
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Checksum",
|
|
192
192
|
"description": "SHA-256 checksum of the raw results before any amendments (statusOverrides or POAMs). Used to detect tampering with test results. Compare with currentChecksum to verify amendment integrity."
|
|
193
193
|
},
|
|
194
194
|
"statusMessage": {
|
|
@@ -206,14 +206,14 @@
|
|
|
206
206
|
"groups": {
|
|
207
207
|
"type": "array",
|
|
208
208
|
"items": {
|
|
209
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
209
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Requirement_Group"
|
|
210
210
|
},
|
|
211
211
|
"description": "A set of descriptions for the requirement groups."
|
|
212
212
|
},
|
|
213
213
|
"inputs": {
|
|
214
214
|
"type": "array",
|
|
215
215
|
"items": {
|
|
216
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/parameter/v3.
|
|
216
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/parameter/v3.2.0#/$defs/Input"
|
|
217
217
|
},
|
|
218
218
|
"description": "Typed inputs used to parameterize this baseline at execution time. See the Input primitive for the full schema."
|
|
219
219
|
},
|
|
@@ -238,7 +238,7 @@
|
|
|
238
238
|
],
|
|
239
239
|
"allOf": [
|
|
240
240
|
{
|
|
241
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
241
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Requirement_Core"
|
|
242
242
|
}
|
|
243
243
|
],
|
|
244
244
|
"properties": {
|
|
@@ -246,7 +246,7 @@
|
|
|
246
246
|
"type": "array",
|
|
247
247
|
"minItems": 1,
|
|
248
248
|
"items": {
|
|
249
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
249
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.2.0#/$defs/Requirement_Description"
|
|
250
250
|
},
|
|
251
251
|
"contains": {
|
|
252
252
|
"type": "object",
|
|
@@ -262,37 +262,37 @@
|
|
|
262
262
|
"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'."
|
|
263
263
|
},
|
|
264
264
|
"severity": {
|
|
265
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
265
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Severity",
|
|
266
266
|
"description": "Explicit severity rating. Typically derived from impact score but provided explicitly for clarity."
|
|
267
267
|
},
|
|
268
268
|
"sourceLocation": {
|
|
269
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
269
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Source_Location",
|
|
270
270
|
"description": "The explicit location of the requirement within the source code."
|
|
271
271
|
},
|
|
272
272
|
"results": {
|
|
273
273
|
"type": "array",
|
|
274
274
|
"minItems": 1,
|
|
275
275
|
"items": {
|
|
276
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
276
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.2.0#/$defs/Requirement_Result"
|
|
277
277
|
},
|
|
278
278
|
"description": "The set of all tests within the requirement and their results."
|
|
279
279
|
},
|
|
280
280
|
"statusOverrides": {
|
|
281
281
|
"type": "array",
|
|
282
282
|
"items": {
|
|
283
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
283
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.2.0#/$defs/Status_Override"
|
|
284
284
|
},
|
|
285
285
|
"description": "Chronological history of all overrides applied to this requirement. Overrides are intentional changes to the compliance status and/or impact score (waivers, attestations, false positives, risk adjustments). Most recent override should be first in array. Preserves full audit trail."
|
|
286
286
|
},
|
|
287
287
|
"poams": {
|
|
288
288
|
"type": "array",
|
|
289
289
|
"items": {
|
|
290
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
290
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.2.0#/$defs/POAM"
|
|
291
291
|
},
|
|
292
292
|
"description": "Plan of Action and Milestones for tracking remediation, mitigation, or risk acceptance. POAMs do NOT change effectiveStatus - they track the work being done to address a failure. Separate from statusOverrides which DO change status."
|
|
293
293
|
},
|
|
294
294
|
"effectiveStatus": {
|
|
295
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
295
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.2.0#/$defs/Result_Status",
|
|
296
296
|
"description": "The current effective compliance status of this requirement after applying the most recent non-expired override with a status field, or computed from results (worst-wins) if no status-bearing overrides exist."
|
|
297
297
|
},
|
|
298
298
|
"effectiveImpact": {
|
|
@@ -302,13 +302,13 @@
|
|
|
302
302
|
"description": "The current effective impact score (0.0–1.0) after applying the most recent non-expired override with an impact field. Absent when no impact overrides apply; consumers should use the requirement's impact field in that case."
|
|
303
303
|
},
|
|
304
304
|
"disposition": {
|
|
305
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
305
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.2.0#/$defs/Override_Type",
|
|
306
306
|
"description": "The type of the most recent non-expired override or POAM governing this requirement. Indicates why the requirement is in its current state (e.g., waiver, falsePositive, riskAdjustment) or what remediation is being tracked (poam). Absent when no overrides or POAMs apply."
|
|
307
307
|
},
|
|
308
308
|
"evidence": {
|
|
309
309
|
"type": "array",
|
|
310
310
|
"items": {
|
|
311
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
311
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Evidence"
|
|
312
312
|
},
|
|
313
313
|
"description": "Supporting evidence for this requirement's findings, such as screenshots, code samples, or log excerpts."
|
|
314
314
|
}
|
|
@@ -596,9 +596,9 @@
|
|
|
596
596
|
"description": "A requirement that has been evaluated, including any findings.",
|
|
597
597
|
"title": "Evaluated Requirement"
|
|
598
598
|
},
|
|
599
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/component/v3.
|
|
599
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/component/v3.2.0": {
|
|
600
600
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
601
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/component/v3.
|
|
601
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/component/v3.2.0",
|
|
602
602
|
"title": "HDF Component Primitives",
|
|
603
603
|
"description": "First-class system component with identity, polymorphic type, SBOM embedding, and system-binding properties. Components are the successor to Targets, adding stable identity (componentId), external system cross-references, and software inventory.",
|
|
604
604
|
"$defs": {
|
|
@@ -628,7 +628,7 @@
|
|
|
628
628
|
"description": "Description of this component's role or purpose."
|
|
629
629
|
},
|
|
630
630
|
"owner": {
|
|
631
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
631
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Identity",
|
|
632
632
|
"description": "Team or individual responsible for this component. Enables per-component ownership when different teams manage different parts of a system."
|
|
633
633
|
},
|
|
634
634
|
"externalIds": {
|
|
@@ -672,12 +672,12 @@
|
|
|
672
672
|
"inputOverrides": {
|
|
673
673
|
"type": "array",
|
|
674
674
|
"items": {
|
|
675
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.
|
|
675
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.2.0#/$defs/Input_Override"
|
|
676
676
|
},
|
|
677
677
|
"description": "System-specific overrides for baseline input values."
|
|
678
678
|
},
|
|
679
679
|
"targetSelector": {
|
|
680
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.
|
|
680
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.2.0#/$defs/Target_Selector",
|
|
681
681
|
"description": "Label selector to match targets belonging to this component during migration. Targets with matching labels are automatically included."
|
|
682
682
|
}
|
|
683
683
|
},
|
|
@@ -997,7 +997,7 @@
|
|
|
997
997
|
"const": "cloudAccount"
|
|
998
998
|
},
|
|
999
999
|
"provider": {
|
|
1000
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1000
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Cloud_Provider",
|
|
1001
1001
|
"description": "Cloud provider."
|
|
1002
1002
|
},
|
|
1003
1003
|
"accountId": {
|
|
@@ -1036,7 +1036,7 @@
|
|
|
1036
1036
|
"const": "cloudResource"
|
|
1037
1037
|
},
|
|
1038
1038
|
"provider": {
|
|
1039
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1039
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Cloud_Provider",
|
|
1040
1040
|
"description": "Cloud provider."
|
|
1041
1041
|
},
|
|
1042
1042
|
"resourceType": {
|
|
@@ -1216,9 +1216,9 @@
|
|
|
1216
1216
|
}
|
|
1217
1217
|
}
|
|
1218
1218
|
},
|
|
1219
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1219
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0": {
|
|
1220
1220
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
1221
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
1221
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0",
|
|
1222
1222
|
"title": "HDF Common Primitives",
|
|
1223
1223
|
"description": "Shared building blocks used by hdf-results and hdf-baseline schemas.",
|
|
1224
1224
|
"$defs": {
|
|
@@ -1963,15 +1963,40 @@
|
|
|
1963
1963
|
},
|
|
1964
1964
|
"code": {
|
|
1965
1965
|
"type": "string",
|
|
1966
|
-
"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."
|
|
1966
|
+
"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."
|
|
1967
1967
|
},
|
|
1968
1968
|
"sourceLocation": {
|
|
1969
1969
|
"$ref": "#/$defs/Source_Location",
|
|
1970
1970
|
"description": "The explicit location of the requirement within the source code."
|
|
1971
|
+
},
|
|
1972
|
+
"controlType": {
|
|
1973
|
+
"type": "string",
|
|
1974
|
+
"enum": [
|
|
1975
|
+
"policy",
|
|
1976
|
+
"procedure",
|
|
1977
|
+
"technical",
|
|
1978
|
+
"management",
|
|
1979
|
+
"operational"
|
|
1980
|
+
],
|
|
1981
|
+
"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."
|
|
1982
|
+
},
|
|
1983
|
+
"verificationMethod": {
|
|
1984
|
+
"$ref": "#/$defs/Verification_Method_Enum",
|
|
1985
|
+
"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."
|
|
1986
|
+
},
|
|
1987
|
+
"applicability": {
|
|
1988
|
+
"type": "string",
|
|
1989
|
+
"enum": [
|
|
1990
|
+
"required",
|
|
1991
|
+
"optional",
|
|
1992
|
+
"advisory"
|
|
1993
|
+
],
|
|
1994
|
+
"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."
|
|
1971
1995
|
}
|
|
1972
1996
|
},
|
|
1973
1997
|
"examples": [
|
|
1974
1998
|
{
|
|
1999
|
+
"$comment": "v3.1.x-style requirement: classification fields omitted. Consumers must continue to handle this shape under v3.2.0 (backward compatibility).",
|
|
1975
2000
|
"id": "SV-238196",
|
|
1976
2001
|
"title": "The Ubuntu operating system must enforce password complexity",
|
|
1977
2002
|
"impact": 0.5,
|
|
@@ -1999,11 +2024,85 @@
|
|
|
1999
2024
|
"data": "Verify the value of 'minlen' in /etc/security/pwquality.conf."
|
|
2000
2025
|
}
|
|
2001
2026
|
]
|
|
2027
|
+
},
|
|
2028
|
+
{
|
|
2029
|
+
"$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.",
|
|
2030
|
+
"id": "AC-3",
|
|
2031
|
+
"title": "Access Enforcement",
|
|
2032
|
+
"impact": 0.7,
|
|
2033
|
+
"tags": {
|
|
2034
|
+
"nist": [
|
|
2035
|
+
"AC-3"
|
|
2036
|
+
],
|
|
2037
|
+
"severity": "high"
|
|
2038
|
+
},
|
|
2039
|
+
"descriptions": [
|
|
2040
|
+
{
|
|
2041
|
+
"label": "default",
|
|
2042
|
+
"data": "The information system enforces approved authorizations for logical access to information and system resources."
|
|
2043
|
+
}
|
|
2044
|
+
],
|
|
2045
|
+
"code": "control 'AC-3' do; impact 0.7; end",
|
|
2046
|
+
"controlType": "technical",
|
|
2047
|
+
"verificationMethod": "automated",
|
|
2048
|
+
"applicability": "required"
|
|
2049
|
+
},
|
|
2050
|
+
{
|
|
2051
|
+
"$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.",
|
|
2052
|
+
"id": "KSI-CNA-01",
|
|
2053
|
+
"title": "Cyber Security Plan documents the system",
|
|
2054
|
+
"impact": 0.5,
|
|
2055
|
+
"tags": {
|
|
2056
|
+
"ksi": [
|
|
2057
|
+
"KSI-CNA"
|
|
2058
|
+
]
|
|
2059
|
+
},
|
|
2060
|
+
"descriptions": [
|
|
2061
|
+
{
|
|
2062
|
+
"label": "default",
|
|
2063
|
+
"data": "The Cyber Security Plan documents the system, its boundary, and its components."
|
|
2064
|
+
}
|
|
2065
|
+
],
|
|
2066
|
+
"controlType": "policy",
|
|
2067
|
+
"verificationMethod": "manual-by-design",
|
|
2068
|
+
"applicability": "required"
|
|
2069
|
+
},
|
|
2070
|
+
{
|
|
2071
|
+
"$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.",
|
|
2072
|
+
"id": "SV-999999",
|
|
2073
|
+
"title": "Example STIG rule pending automation",
|
|
2074
|
+
"impact": 0.3,
|
|
2075
|
+
"tags": {
|
|
2076
|
+
"stig_id": "SV-999999"
|
|
2077
|
+
},
|
|
2078
|
+
"descriptions": [
|
|
2079
|
+
{
|
|
2080
|
+
"label": "default",
|
|
2081
|
+
"data": "Example requirement that is intended to be automated but currently lacks a fix block."
|
|
2082
|
+
},
|
|
2083
|
+
{
|
|
2084
|
+
"label": "check",
|
|
2085
|
+
"data": "Manual review of system configuration is required."
|
|
2086
|
+
}
|
|
2087
|
+
],
|
|
2088
|
+
"verificationMethod": "manual-pending-automation",
|
|
2089
|
+
"applicability": "advisory"
|
|
2002
2090
|
}
|
|
2003
2091
|
],
|
|
2004
2092
|
"description": "Core requirement fields shared between baseline requirements and evaluated requirements. Contains the fundamental requirement definition without assessment results.",
|
|
2005
2093
|
"title": "Requirement Core"
|
|
2006
2094
|
},
|
|
2095
|
+
"Verification_Method_Enum": {
|
|
2096
|
+
"type": "string",
|
|
2097
|
+
"enum": [
|
|
2098
|
+
"automated",
|
|
2099
|
+
"manual-by-design",
|
|
2100
|
+
"manual-pending-automation",
|
|
2101
|
+
"hybrid"
|
|
2102
|
+
],
|
|
2103
|
+
"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.",
|
|
2104
|
+
"title": "Verification Method Enum"
|
|
2105
|
+
},
|
|
2007
2106
|
"Severity": {
|
|
2008
2107
|
"type": "string",
|
|
2009
2108
|
"enum": [
|
|
@@ -2034,9 +2133,9 @@
|
|
|
2034
2133
|
}
|
|
2035
2134
|
}
|
|
2036
2135
|
},
|
|
2037
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.
|
|
2136
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.2.0": {
|
|
2038
2137
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
2039
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.
|
|
2138
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.2.0",
|
|
2040
2139
|
"title": "HDF System Primitives",
|
|
2041
2140
|
"description": "Types for describing system architecture, authorization boundaries, and components.",
|
|
2042
2141
|
"$defs": {
|
|
@@ -2087,7 +2186,7 @@
|
|
|
2087
2186
|
"description": "Rationale for why this override is needed."
|
|
2088
2187
|
},
|
|
2089
2188
|
"approvedBy": {
|
|
2090
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2189
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Identity",
|
|
2091
2190
|
"description": "Identity of the person or system that approved this override."
|
|
2092
2191
|
}
|
|
2093
2192
|
},
|
|
@@ -2168,9 +2267,9 @@
|
|
|
2168
2267
|
}
|
|
2169
2268
|
}
|
|
2170
2269
|
},
|
|
2171
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/statistics/v3.
|
|
2270
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/statistics/v3.2.0": {
|
|
2172
2271
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
2173
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/statistics/v3.
|
|
2272
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/statistics/v3.2.0",
|
|
2174
2273
|
"title": "HDF Statistics Primitives",
|
|
2175
2274
|
"description": "Statistics types for tracking assessment run metrics.",
|
|
2176
2275
|
"$defs": {
|
|
@@ -2239,9 +2338,9 @@
|
|
|
2239
2338
|
}
|
|
2240
2339
|
}
|
|
2241
2340
|
},
|
|
2242
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
2341
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.2.0": {
|
|
2243
2342
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
2244
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.
|
|
2343
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.2.0",
|
|
2245
2344
|
"title": "HDF Extension Primitives",
|
|
2246
2345
|
"description": "Extension types for waivers, attestations, generators, and integrity.",
|
|
2247
2346
|
"$defs": {
|
|
@@ -2269,15 +2368,15 @@
|
|
|
2269
2368
|
],
|
|
2270
2369
|
"properties": {
|
|
2271
2370
|
"type": {
|
|
2272
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
2371
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.2.0#/$defs/Override_Type",
|
|
2273
2372
|
"description": "The type of override applied to this requirement."
|
|
2274
2373
|
},
|
|
2275
2374
|
"status": {
|
|
2276
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
2375
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.2.0#/$defs/Result_Status",
|
|
2277
2376
|
"description": "The new status this override sets for the requirement. Optional when only impact is being overridden."
|
|
2278
2377
|
},
|
|
2279
2378
|
"impact": {
|
|
2280
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
2379
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.2.0#/$defs/Impact_Override",
|
|
2281
2380
|
"description": "Override to the requirement's impact score. At least one of status or impact must be set."
|
|
2282
2381
|
},
|
|
2283
2382
|
"reason": {
|
|
@@ -2285,7 +2384,7 @@
|
|
|
2285
2384
|
"description": "Explanation for why this override was applied."
|
|
2286
2385
|
},
|
|
2287
2386
|
"appliedBy": {
|
|
2288
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2387
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Identity",
|
|
2289
2388
|
"description": "Identity of who applied this override. For simple cases, use type 'simple' with just an identifier."
|
|
2290
2389
|
},
|
|
2291
2390
|
"appliedAt": {
|
|
@@ -2299,18 +2398,18 @@
|
|
|
2299
2398
|
"description": "Timestamp when this override expires and must be reviewed/renewed. REQUIRED - no permanent overrides allowed. ISO 8601 format."
|
|
2300
2399
|
},
|
|
2301
2400
|
"signature": {
|
|
2302
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2401
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Signature",
|
|
2303
2402
|
"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."
|
|
2304
2403
|
},
|
|
2305
2404
|
"evidence": {
|
|
2306
2405
|
"type": "array",
|
|
2307
2406
|
"items": {
|
|
2308
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2407
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Evidence"
|
|
2309
2408
|
},
|
|
2310
2409
|
"description": "Supporting evidence for this override, such as screenshots demonstrating manual verification for attestations."
|
|
2311
2410
|
},
|
|
2312
2411
|
"previousChecksum": {
|
|
2313
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2412
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Checksum",
|
|
2314
2413
|
"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."
|
|
2315
2414
|
}
|
|
2316
2415
|
},
|
|
@@ -2416,7 +2515,7 @@
|
|
|
2416
2515
|
"description": "Detailed explanation of the plan, including what actions will be taken."
|
|
2417
2516
|
},
|
|
2418
2517
|
"appliedBy": {
|
|
2419
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2518
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Identity",
|
|
2420
2519
|
"description": "Identity of who created this POA&M. For simple cases, use type 'simple' with just an identifier."
|
|
2421
2520
|
},
|
|
2422
2521
|
"appliedAt": {
|
|
@@ -2432,23 +2531,23 @@
|
|
|
2432
2531
|
"milestones": {
|
|
2433
2532
|
"type": "array",
|
|
2434
2533
|
"items": {
|
|
2435
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2534
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Milestone"
|
|
2436
2535
|
},
|
|
2437
2536
|
"description": "Optional array of milestones tracking progress toward completion."
|
|
2438
2537
|
},
|
|
2439
2538
|
"signature": {
|
|
2440
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2539
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Signature",
|
|
2441
2540
|
"description": "Optional digital signature for enhanced trust and non-repudiation."
|
|
2442
2541
|
},
|
|
2443
2542
|
"evidence": {
|
|
2444
2543
|
"type": "array",
|
|
2445
2544
|
"items": {
|
|
2446
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2545
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Evidence"
|
|
2447
2546
|
},
|
|
2448
2547
|
"description": "Supporting evidence for this POA&M, such as documentation of compensating controls or mitigation implementation."
|
|
2449
2548
|
},
|
|
2450
2549
|
"previousChecksum": {
|
|
2451
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2550
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Checksum",
|
|
2452
2551
|
"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."
|
|
2453
2552
|
}
|
|
2454
2553
|
},
|
|
@@ -2599,7 +2698,7 @@
|
|
|
2599
2698
|
},
|
|
2600
2699
|
"properties": {
|
|
2601
2700
|
"algorithm": {
|
|
2602
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2701
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Hash_Algorithm",
|
|
2603
2702
|
"description": "The hash algorithm used for the checksum."
|
|
2604
2703
|
},
|
|
2605
2704
|
"checksum": {
|
|
@@ -2632,9 +2731,9 @@
|
|
|
2632
2731
|
}
|
|
2633
2732
|
}
|
|
2634
2733
|
},
|
|
2635
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
2734
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.2.0": {
|
|
2636
2735
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
2637
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.
|
|
2736
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/amendments/v3.2.0",
|
|
2638
2737
|
"title": "HDF Amendment Primitives",
|
|
2639
2738
|
"description": "Types for waivers, attestations, and POA&Ms that modify requirement compliance status.",
|
|
2640
2739
|
"$defs": {
|
|
@@ -2706,7 +2805,7 @@
|
|
|
2706
2805
|
"description": "Name of the baseline containing the requirement. Required when the system has multiple baselines with potentially overlapping requirement IDs."
|
|
2707
2806
|
},
|
|
2708
2807
|
"status": {
|
|
2709
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
2808
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.2.0#/$defs/Result_Status",
|
|
2710
2809
|
"description": "The new status this amendment sets. Optional when only impact is being overridden."
|
|
2711
2810
|
},
|
|
2712
2811
|
"impact": {
|
|
@@ -2718,7 +2817,7 @@
|
|
|
2718
2817
|
"description": "Justification for this amendment."
|
|
2719
2818
|
},
|
|
2720
2819
|
"appliedBy": {
|
|
2721
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2820
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Identity",
|
|
2722
2821
|
"description": "Identity of who applied this amendment."
|
|
2723
2822
|
},
|
|
2724
2823
|
"appliedAt": {
|
|
@@ -2734,22 +2833,22 @@
|
|
|
2734
2833
|
"evidence": {
|
|
2735
2834
|
"type": "array",
|
|
2736
2835
|
"items": {
|
|
2737
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2836
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Evidence"
|
|
2738
2837
|
},
|
|
2739
2838
|
"description": "Supporting evidence (screenshots, logs, URLs, documents)."
|
|
2740
2839
|
},
|
|
2741
2840
|
"signature": {
|
|
2742
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2841
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Signature",
|
|
2743
2842
|
"description": "Digital signature for non-repudiation."
|
|
2744
2843
|
},
|
|
2745
2844
|
"previousChecksum": {
|
|
2746
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2845
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Checksum",
|
|
2747
2846
|
"description": "Checksum of the prior amendment in the chain. Creates a tamper-evident linked list. Null for the first amendment."
|
|
2748
2847
|
},
|
|
2749
2848
|
"milestones": {
|
|
2750
2849
|
"type": "array",
|
|
2751
2850
|
"items": {
|
|
2752
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
2851
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Milestone"
|
|
2753
2852
|
},
|
|
2754
2853
|
"description": "Remediation milestones (primarily for POA&M type amendments)."
|
|
2755
2854
|
},
|
|
@@ -2870,9 +2969,9 @@
|
|
|
2870
2969
|
}
|
|
2871
2970
|
}
|
|
2872
2971
|
},
|
|
2873
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
2972
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.2.0": {
|
|
2874
2973
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
2875
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.
|
|
2974
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.2.0",
|
|
2876
2975
|
"title": "HDF Result Primitives",
|
|
2877
2976
|
"description": "Types for representing assessment results and statuses.",
|
|
2878
2977
|
"$defs": {
|
|
@@ -3003,9 +3102,9 @@
|
|
|
3003
3102
|
}
|
|
3004
3103
|
}
|
|
3005
3104
|
},
|
|
3006
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/runner/v3.
|
|
3105
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/runner/v3.2.0": {
|
|
3007
3106
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3008
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/runner/v3.
|
|
3107
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/runner/v3.2.0",
|
|
3009
3108
|
"title": "HDF Runner Primitive",
|
|
3010
3109
|
"description": "Information about the test execution environment where the security tool/scanner was executed.",
|
|
3011
3110
|
"$defs": {
|
|
@@ -3041,7 +3140,7 @@
|
|
|
3041
3140
|
"description": "The container instance identifier. Example: 'a1b2c3d4e5f6', 'security-scan-job-xyz123'. Can be a Docker container ID, Kubernetes pod name, or other container runtime identifier."
|
|
3042
3141
|
},
|
|
3043
3142
|
"operator": {
|
|
3044
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.
|
|
3143
|
+
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.2.0#/$defs/Identity",
|
|
3045
3144
|
"description": "The identity of the person or system responsible for executing the test. This could be a human auditor manually completing a checklist, an automated CI/CD system, or a security tool. Optional field to support both automated and manual HDF generation."
|
|
3046
3145
|
}
|
|
3047
3146
|
},
|
|
@@ -3088,9 +3187,9 @@
|
|
|
3088
3187
|
}
|
|
3089
3188
|
}
|
|
3090
3189
|
},
|
|
3091
|
-
"https://mitre.github.io/hdf-libs/schemas/primitives/parameter/v3.
|
|
3190
|
+
"https://mitre.github.io/hdf-libs/schemas/primitives/parameter/v3.2.0": {
|
|
3092
3191
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3093
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/parameter/v3.
|
|
3192
|
+
"$id": "https://mitre.github.io/hdf-libs/schemas/primitives/parameter/v3.2.0",
|
|
3094
3193
|
"title": "HDF Parameter Primitives",
|
|
3095
3194
|
"description": "Input/parameter type definitions for typed, traceable configuration values that bridge governance prose and scanner automation.",
|
|
3096
3195
|
"$defs": {
|