@mitre/hdf-schema 3.0.1 → 3.1.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/LICENSE.md +55 -0
- package/README.md +83 -40
- package/dist/go/hdf.go +148 -104
- package/dist/index.d.ts +26 -1
- package/dist/index.js +26 -1
- package/dist/schemas/hdf-amendments.schema.json +178 -53
- package/dist/schemas/hdf-baseline.schema.json +181 -56
- package/dist/schemas/hdf-comparison.schema.json +523 -108
- package/dist/schemas/hdf-evidence-package.schema.json +175 -50
- package/dist/schemas/hdf-plan.schema.json +181 -56
- package/dist/schemas/hdf-results.schema.json +502 -87
- package/dist/schemas/hdf-system.schema.json +190 -65
- package/dist/ts/hdf-amendments.d.ts +43 -15
- package/dist/ts/hdf-amendments.js +18 -7
- package/dist/ts/hdf-amendments.ts +44 -15
- package/dist/ts/hdf-results.d.ts +91 -37
- package/dist/ts/hdf-results.js +40 -20
- package/dist/ts/hdf-results.ts +91 -36
- package/package.json +44 -45
- package/dist/python/hdf_amendments.py +0 -695
- package/dist/python/hdf_baseline.py +0 -782
- package/dist/python/hdf_comparison.py +0 -1771
- package/dist/python/hdf_evidence_package.py +0 -593
- package/dist/python/hdf_plan.py +0 -363
- package/dist/python/hdf_results.py +0 -2163
- package/dist/python/hdf_system.py +0 -904
- package/src/schemas/hdf-amendments.schema.json +0 -97
- package/src/schemas/hdf-baseline.schema.json +0 -190
- package/src/schemas/hdf-comparison.schema.json +0 -107
- package/src/schemas/hdf-evidence-package.schema.json +0 -227
- package/src/schemas/hdf-plan.schema.json +0 -92
- package/src/schemas/hdf-results.schema.json +0 -304
- package/src/schemas/hdf-system.schema.json +0 -136
- package/src/schemas/primitives/amendments.schema.json +0 -155
- package/src/schemas/primitives/common.schema.json +0 -814
- package/src/schemas/primitives/comparison.schema.json +0 -809
- package/src/schemas/primitives/component.schema.json +0 -518
- package/src/schemas/primitives/data-flow.schema.json +0 -158
- package/src/schemas/primitives/extensions.schema.json +0 -342
- package/src/schemas/primitives/parameter.schema.json +0 -128
- package/src/schemas/primitives/plan.schema.json +0 -128
- package/src/schemas/primitives/platform.schema.json +0 -32
- package/src/schemas/primitives/result.schema.json +0 -133
- package/src/schemas/primitives/runner.schema.json +0 -83
- package/src/schemas/primitives/statistics.schema.json +0 -71
- package/src/schemas/primitives/system.schema.json +0 -132
- package/src/schemas/primitives/target.schema.json +0 -523
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/hdf-plan/v3.0.0",
|
|
4
|
-
"title": "HDF Plan",
|
|
5
|
-
"description": "Defines an assessment plan — what baselines to run against which targets, with resolved inputs and scheduling. Maps to OSCAL Assessment Plan.",
|
|
6
|
-
"type": "object",
|
|
7
|
-
"unevaluatedProperties": false,
|
|
8
|
-
"required": [
|
|
9
|
-
"name",
|
|
10
|
-
"assessments"
|
|
11
|
-
],
|
|
12
|
-
"properties": {
|
|
13
|
-
"planId": {
|
|
14
|
-
"type": "string",
|
|
15
|
-
"format": "uuid",
|
|
16
|
-
"description": "Unique identifier for this plan. Optional in casual use, expected in production documents. Auto-generated if omitted during creation."
|
|
17
|
-
},
|
|
18
|
-
"name": {
|
|
19
|
-
"type": "string",
|
|
20
|
-
"description": "Human-readable plan name. Example: 'Portal Monthly Assessment'."
|
|
21
|
-
},
|
|
22
|
-
"type": {
|
|
23
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/plan/v3.0.0#/$defs/Plan_Type",
|
|
24
|
-
"description": "The type of assessment plan."
|
|
25
|
-
},
|
|
26
|
-
"description": {
|
|
27
|
-
"type": "string",
|
|
28
|
-
"description": "Description of the plan's purpose and scope."
|
|
29
|
-
},
|
|
30
|
-
"systemRef": {
|
|
31
|
-
"type": "string",
|
|
32
|
-
"format": "uri-reference",
|
|
33
|
-
"description": "URI to the hdf-system document this plan targets. Example: 'portal-prod.hdf-system.json'."
|
|
34
|
-
},
|
|
35
|
-
"assessments": {
|
|
36
|
-
"type": "array",
|
|
37
|
-
"minItems": 1,
|
|
38
|
-
"items": {
|
|
39
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/plan/v3.0.0#/$defs/Assessment"
|
|
40
|
-
},
|
|
41
|
-
"description": "The assessments to perform. Each assessment pairs a baseline with targets and resolved inputs."
|
|
42
|
-
},
|
|
43
|
-
"schedule": {
|
|
44
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/plan/v3.0.0#/$defs/Schedule",
|
|
45
|
-
"description": "Optional scheduling configuration for recurring assessments."
|
|
46
|
-
},
|
|
47
|
-
"labels": {
|
|
48
|
-
"type": "object",
|
|
49
|
-
"additionalProperties": {
|
|
50
|
-
"type": "string"
|
|
51
|
-
},
|
|
52
|
-
"description": "Optional key-value labels for grouping and querying plans."
|
|
53
|
-
},
|
|
54
|
-
"integrity": {
|
|
55
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.0.0#/$defs/Integrity",
|
|
56
|
-
"description": "Cryptographic integrity information for verifying this plan document has not been tampered with."
|
|
57
|
-
},
|
|
58
|
-
"version": {
|
|
59
|
-
"type": "string",
|
|
60
|
-
"description": "Version of this plan document."
|
|
61
|
-
},
|
|
62
|
-
"generator": {
|
|
63
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.0.0#/$defs/Generator",
|
|
64
|
-
"description": "Information about the tool that generated this plan."
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
"examples": [
|
|
68
|
-
{
|
|
69
|
-
"name": "Portal Monthly Assessment",
|
|
70
|
-
"type": "automated",
|
|
71
|
-
"systemRef": "portal-prod.hdf-system.json",
|
|
72
|
-
"assessments": [
|
|
73
|
-
{
|
|
74
|
-
"baselineRef": "RHEL9-STIG",
|
|
75
|
-
"targetSelector": { "labels.component": "WebTier" },
|
|
76
|
-
"inputs": {
|
|
77
|
-
"max_concurrent_sessions": 5,
|
|
78
|
-
"password_min_length": 15
|
|
79
|
-
},
|
|
80
|
-
"runner": {
|
|
81
|
-
"name": "cinc-auditor",
|
|
82
|
-
"version": "6.8.1"
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
],
|
|
86
|
-
"schedule": {
|
|
87
|
-
"cron": "0 2 1 * *",
|
|
88
|
-
"notifyOnRegression": ["security-team@agency.gov"]
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
]
|
|
92
|
-
}
|
|
@@ -1,304 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/hdf-results/v3.0.0",
|
|
4
|
-
"type": "object",
|
|
5
|
-
"unevaluatedProperties": false,
|
|
6
|
-
"required": [
|
|
7
|
-
"baselines"
|
|
8
|
-
],
|
|
9
|
-
"properties": {
|
|
10
|
-
"id": {
|
|
11
|
-
"type": "string",
|
|
12
|
-
"format": "uuid",
|
|
13
|
-
"description": "Unique identifier for this assessment run."
|
|
14
|
-
},
|
|
15
|
-
"timestamp": {
|
|
16
|
-
"type": "string",
|
|
17
|
-
"format": "date-time",
|
|
18
|
-
"description": "When this assessment was executed."
|
|
19
|
-
},
|
|
20
|
-
"components": {
|
|
21
|
-
"type": "array",
|
|
22
|
-
"items": {
|
|
23
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/component/v3.0.0#/$defs/Component"
|
|
24
|
-
},
|
|
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
|
-
},
|
|
27
|
-
"baselines": {
|
|
28
|
-
"type": "array",
|
|
29
|
-
"items": {
|
|
30
|
-
"$ref": "#/$defs/Evaluated_Baseline"
|
|
31
|
-
},
|
|
32
|
-
"description": "Information on the baselines that were evaluated, including findings."
|
|
33
|
-
},
|
|
34
|
-
"statistics": {
|
|
35
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/statistics/v3.0.0#/$defs/Statistics",
|
|
36
|
-
"description": "Statistics for the assessment run, including duration and result counts."
|
|
37
|
-
},
|
|
38
|
-
"generator": {
|
|
39
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.0.0#/$defs/Generator",
|
|
40
|
-
"description": "Information about the tool that generated this file."
|
|
41
|
-
},
|
|
42
|
-
"tool": {
|
|
43
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.0.0#/$defs/Tool",
|
|
44
|
-
"description": "The security tool that produced the assessment data in this file."
|
|
45
|
-
},
|
|
46
|
-
"integrity": {
|
|
47
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.0.0#/$defs/Integrity",
|
|
48
|
-
"description": "Cryptographic integrity information for verifying this file."
|
|
49
|
-
},
|
|
50
|
-
"runner": {
|
|
51
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/runner/v3.0.0#/$defs/Runner",
|
|
52
|
-
"description": "Information about the test execution environment where the security tool was run. Distinct from targets (what is being tested)."
|
|
53
|
-
},
|
|
54
|
-
"remediation": {
|
|
55
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.0.0#/$defs/Remediation",
|
|
56
|
-
"description": "Optional reference to automated remediation resources (Ansible playbooks, Terraform scripts, etc.) for fixing failing requirements found in this assessment."
|
|
57
|
-
},
|
|
58
|
-
"systemRef": {
|
|
59
|
-
"type": "string",
|
|
60
|
-
"format": "uri-reference",
|
|
61
|
-
"description": "Reference to an hdf-system document describing the system under assessment. May be a relative path, absolute URI, or fragment identifier."
|
|
62
|
-
},
|
|
63
|
-
"planRef": {
|
|
64
|
-
"type": "string",
|
|
65
|
-
"format": "uri-reference",
|
|
66
|
-
"description": "Reference to an hdf-plan document describing the assessment plan that produced these results. May be a relative path, absolute URI, or fragment identifier."
|
|
67
|
-
},
|
|
68
|
-
"extensions": {
|
|
69
|
-
"type": "object",
|
|
70
|
-
"additionalProperties": true,
|
|
71
|
-
"description": "Reserved for tool-specific data not defined in the HDF standard. Use this to preserve original tool output, auxiliary data, or custom metadata."
|
|
72
|
-
}
|
|
73
|
-
},
|
|
74
|
-
"examples": [
|
|
75
|
-
{
|
|
76
|
-
"baselines": [
|
|
77
|
-
{
|
|
78
|
-
"name": "web-server-hardening",
|
|
79
|
-
"title": "Web Server Security Baseline",
|
|
80
|
-
"version": "1.0.0",
|
|
81
|
-
"summary": "Security hardening checks for Apache HTTP Server",
|
|
82
|
-
"requirements": [
|
|
83
|
-
{
|
|
84
|
-
"id": "SV-100001",
|
|
85
|
-
"title": "Web server must use TLS 1.2 or higher",
|
|
86
|
-
"impact": 0.7,
|
|
87
|
-
"tags": {
|
|
88
|
-
"nist": ["SC-8", "SC-23"]
|
|
89
|
-
},
|
|
90
|
-
"descriptions": [
|
|
91
|
-
{
|
|
92
|
-
"label": "default",
|
|
93
|
-
"data": "The web server must be configured to use TLS 1.2 or higher for all encrypted connections."
|
|
94
|
-
}
|
|
95
|
-
],
|
|
96
|
-
"results": [
|
|
97
|
-
{
|
|
98
|
-
"status": "passed",
|
|
99
|
-
"codeDesc": "SSL configuration is expected to include TLSv1.2",
|
|
100
|
-
"startTime": "2025-06-15T14:30:00Z",
|
|
101
|
-
"runTime": 0.042
|
|
102
|
-
}
|
|
103
|
-
]
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
"id": "SV-100002",
|
|
107
|
-
"title": "Web server must have X-Frame-Options header set",
|
|
108
|
-
"impact": 0.5,
|
|
109
|
-
"tags": {
|
|
110
|
-
"nist": ["SA-11", "RA-5"]
|
|
111
|
-
},
|
|
112
|
-
"descriptions": [
|
|
113
|
-
{
|
|
114
|
-
"label": "default",
|
|
115
|
-
"data": "The anti-clickjacking X-Frame-Options header must be present on all responses."
|
|
116
|
-
}
|
|
117
|
-
],
|
|
118
|
-
"results": [
|
|
119
|
-
{
|
|
120
|
-
"status": "failed",
|
|
121
|
-
"codeDesc": "HTTP response headers are expected to include X-Frame-Options",
|
|
122
|
-
"startTime": "2025-06-15T14:30:01Z",
|
|
123
|
-
"message": "X-Frame-Options header not found in response"
|
|
124
|
-
}
|
|
125
|
-
]
|
|
126
|
-
}
|
|
127
|
-
]
|
|
128
|
-
}
|
|
129
|
-
],
|
|
130
|
-
"components": [
|
|
131
|
-
{
|
|
132
|
-
"type": "application",
|
|
133
|
-
"name": "Apache HTTP Server 2.4"
|
|
134
|
-
}
|
|
135
|
-
],
|
|
136
|
-
"generator": {
|
|
137
|
-
"name": "nikto-to-hdf",
|
|
138
|
-
"version": "1.0.0"
|
|
139
|
-
},
|
|
140
|
-
"tool": {
|
|
141
|
-
"name": "Nikto"
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
],
|
|
145
|
-
"description": "The top level value containing all assessment results.",
|
|
146
|
-
"title": "HDF Results",
|
|
147
|
-
"$defs": {
|
|
148
|
-
"Evaluated_Baseline": {
|
|
149
|
-
"type": "object",
|
|
150
|
-
"unevaluatedProperties": false,
|
|
151
|
-
"required": [
|
|
152
|
-
"name",
|
|
153
|
-
"requirements"
|
|
154
|
-
],
|
|
155
|
-
"allOf": [
|
|
156
|
-
{
|
|
157
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.0.0#/$defs/Baseline_Metadata"
|
|
158
|
-
}
|
|
159
|
-
],
|
|
160
|
-
"properties": {
|
|
161
|
-
"depends": {
|
|
162
|
-
"type": "array",
|
|
163
|
-
"items": {
|
|
164
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.0.0#/$defs/Dependency"
|
|
165
|
-
},
|
|
166
|
-
"description": "The set of dependencies this baseline depends on."
|
|
167
|
-
},
|
|
168
|
-
"parentBaseline": {
|
|
169
|
-
"type": "string",
|
|
170
|
-
"description": "The name of the parent baseline if this is a dependency of another."
|
|
171
|
-
},
|
|
172
|
-
"description": {
|
|
173
|
-
"type": "string",
|
|
174
|
-
"description": "The description - should be more detailed than the summary."
|
|
175
|
-
},
|
|
176
|
-
"integrity": {
|
|
177
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.0.0#/$defs/Integrity",
|
|
178
|
-
"description": "Cryptographic integrity information for verifying this baseline has not been tampered with."
|
|
179
|
-
},
|
|
180
|
-
"originalChecksum": {
|
|
181
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.0.0#/$defs/Checksum",
|
|
182
|
-
"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."
|
|
183
|
-
},
|
|
184
|
-
"resultsChecksum": {
|
|
185
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.0.0#/$defs/Checksum",
|
|
186
|
-
"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."
|
|
187
|
-
},
|
|
188
|
-
"statusMessage": {
|
|
189
|
-
"type": "string",
|
|
190
|
-
"description": "An explanation of the baseline status. Example: why it was skipped, failed to load, or any other status details."
|
|
191
|
-
},
|
|
192
|
-
"requirements": {
|
|
193
|
-
"type": "array",
|
|
194
|
-
"items": {
|
|
195
|
-
"$ref": "#/$defs/Evaluated_Requirement"
|
|
196
|
-
},
|
|
197
|
-
"minItems": 1,
|
|
198
|
-
"description": "The set of requirements including any findings. A baseline must have at least one requirement."
|
|
199
|
-
},
|
|
200
|
-
"groups": {
|
|
201
|
-
"type": "array",
|
|
202
|
-
"items": {
|
|
203
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.0.0#/$defs/Requirement_Group"
|
|
204
|
-
},
|
|
205
|
-
"description": "A set of descriptions for the requirement groups."
|
|
206
|
-
},
|
|
207
|
-
"inputs": {
|
|
208
|
-
"type": "array",
|
|
209
|
-
"items": {
|
|
210
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/parameter/v3.0.0#/$defs/Input"
|
|
211
|
-
},
|
|
212
|
-
"description": "Typed inputs used to parameterize this baseline at execution time. See the Input primitive for the full schema."
|
|
213
|
-
},
|
|
214
|
-
"extensions": {
|
|
215
|
-
"type": "object",
|
|
216
|
-
"additionalProperties": true,
|
|
217
|
-
"description": "Reserved for tool-specific baseline metadata not defined in the HDF standard."
|
|
218
|
-
}
|
|
219
|
-
},
|
|
220
|
-
"description": "Information on a baseline that was evaluated, including any findings.",
|
|
221
|
-
"title": "Evaluated Baseline"
|
|
222
|
-
},
|
|
223
|
-
"Evaluated_Requirement": {
|
|
224
|
-
"type": "object",
|
|
225
|
-
"unevaluatedProperties": false,
|
|
226
|
-
"required": [
|
|
227
|
-
"id",
|
|
228
|
-
"impact",
|
|
229
|
-
"tags",
|
|
230
|
-
"results",
|
|
231
|
-
"descriptions"
|
|
232
|
-
],
|
|
233
|
-
"allOf": [
|
|
234
|
-
{
|
|
235
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.0.0#/$defs/Requirement_Core"
|
|
236
|
-
}
|
|
237
|
-
],
|
|
238
|
-
"properties": {
|
|
239
|
-
"descriptions": {
|
|
240
|
-
"type": "array",
|
|
241
|
-
"minItems": 1,
|
|
242
|
-
"items": {
|
|
243
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.0.0#/$defs/Requirement_Description"
|
|
244
|
-
},
|
|
245
|
-
"contains": {
|
|
246
|
-
"type": "object",
|
|
247
|
-
"required": [
|
|
248
|
-
"label"
|
|
249
|
-
],
|
|
250
|
-
"properties": {
|
|
251
|
-
"label": {
|
|
252
|
-
"const": "default"
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
},
|
|
256
|
-
"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'."
|
|
257
|
-
},
|
|
258
|
-
"severity": {
|
|
259
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.0.0#/$defs/Severity",
|
|
260
|
-
"description": "Explicit severity rating. Typically derived from impact score but provided explicitly for clarity."
|
|
261
|
-
},
|
|
262
|
-
"sourceLocation": {
|
|
263
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.0.0#/$defs/Source_Location",
|
|
264
|
-
"description": "The explicit location of the requirement within the source code."
|
|
265
|
-
},
|
|
266
|
-
"results": {
|
|
267
|
-
"type": "array",
|
|
268
|
-
"minItems": 1,
|
|
269
|
-
"items": {
|
|
270
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.0.0#/$defs/Requirement_Result"
|
|
271
|
-
},
|
|
272
|
-
"description": "The set of all tests within the requirement and their results."
|
|
273
|
-
},
|
|
274
|
-
"statusOverrides": {
|
|
275
|
-
"type": "array",
|
|
276
|
-
"items": {
|
|
277
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.0.0#/$defs/Status_Override"
|
|
278
|
-
},
|
|
279
|
-
"description": "Chronological history of all status overrides applied to this requirement. Status overrides are intentional changes to the compliance status (waivers, attestations). Most recent override should be first in array. Preserves full audit trail."
|
|
280
|
-
},
|
|
281
|
-
"poams": {
|
|
282
|
-
"type": "array",
|
|
283
|
-
"items": {
|
|
284
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.0.0#/$defs/POAM"
|
|
285
|
-
},
|
|
286
|
-
"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."
|
|
287
|
-
},
|
|
288
|
-
"effectiveStatus": {
|
|
289
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/result/v3.0.0#/$defs/Result_Status",
|
|
290
|
-
"description": "The current effective status of this requirement after applying the most recent non-expired override, or computed from results if no overrides exist."
|
|
291
|
-
},
|
|
292
|
-
"evidence": {
|
|
293
|
-
"type": "array",
|
|
294
|
-
"items": {
|
|
295
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.0.0#/$defs/Evidence"
|
|
296
|
-
},
|
|
297
|
-
"description": "Supporting evidence for this requirement's findings, such as screenshots, code samples, or log excerpts."
|
|
298
|
-
}
|
|
299
|
-
},
|
|
300
|
-
"description": "A requirement that has been evaluated, including any findings.",
|
|
301
|
-
"title": "Evaluated Requirement"
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
}
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "https://mitre.github.io/hdf-libs/schemas/hdf-system/v3.0.0",
|
|
4
|
-
"title": "HDF System",
|
|
5
|
-
"description": "Describes a system's authorization boundary, components, and interconnections. Maps to OSCAL SSP system-characteristics and FedRAMP system inventory.",
|
|
6
|
-
"type": "object",
|
|
7
|
-
"unevaluatedProperties": false,
|
|
8
|
-
"required": [
|
|
9
|
-
"name",
|
|
10
|
-
"components"
|
|
11
|
-
],
|
|
12
|
-
"properties": {
|
|
13
|
-
"systemId": {
|
|
14
|
-
"type": "string",
|
|
15
|
-
"format": "uuid",
|
|
16
|
-
"description": "Stable UUID (RFC 4122) for this system. Enables cross-document correlation independent of file location. Optional in casual use, expected in production documents."
|
|
17
|
-
},
|
|
18
|
-
"owner": {
|
|
19
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/common/v3.0.0#/$defs/Identity",
|
|
20
|
-
"description": "Team or individual responsible for this system's authorization and compliance. Maps to OSCAL responsible-party with role 'system-owner'."
|
|
21
|
-
},
|
|
22
|
-
"name": {
|
|
23
|
-
"type": "string",
|
|
24
|
-
"description": "Human-readable system name. Example: 'Enterprise Portal Production'."
|
|
25
|
-
},
|
|
26
|
-
"identifier": {
|
|
27
|
-
"type": "string",
|
|
28
|
-
"description": "System identifier from an authoritative source. Example: eMASS system ID, FedRAMP package ID."
|
|
29
|
-
},
|
|
30
|
-
"identifierScheme": {
|
|
31
|
-
"type": "string",
|
|
32
|
-
"format": "uri-reference",
|
|
33
|
-
"description": "URI identifying the scheme of the system identifier. Example: 'https://emass.mil', 'https://fedramp.gov'."
|
|
34
|
-
},
|
|
35
|
-
"description": {
|
|
36
|
-
"type": "string",
|
|
37
|
-
"description": "Description of the system's purpose and mission."
|
|
38
|
-
},
|
|
39
|
-
"authorizationStatus": {
|
|
40
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.0.0#/$defs/Authorization_Status",
|
|
41
|
-
"description": "Current Authorization to Operate (ATO) status."
|
|
42
|
-
},
|
|
43
|
-
"authorizationDate": {
|
|
44
|
-
"type": "string",
|
|
45
|
-
"format": "date-time",
|
|
46
|
-
"description": "Date the current authorization status was granted. ISO 8601 format."
|
|
47
|
-
},
|
|
48
|
-
"categorizationLevel": {
|
|
49
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.0.0#/$defs/Categorization_Level",
|
|
50
|
-
"description": "FIPS 199 security categorization (impact level)."
|
|
51
|
-
},
|
|
52
|
-
"boundaryDescription": {
|
|
53
|
-
"type": "string",
|
|
54
|
-
"description": "Description of the system's authorization boundary. Example: network CIDR blocks, cloud VPC IDs, physical locations."
|
|
55
|
-
},
|
|
56
|
-
"components": {
|
|
57
|
-
"type": "array",
|
|
58
|
-
"minItems": 1,
|
|
59
|
-
"items": {
|
|
60
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/component/v3.0.0#/$defs/Component"
|
|
61
|
-
},
|
|
62
|
-
"description": "System components within the authorization boundary. Uses the full polymorphic Component type with stable identity (componentId), external references, and SBOM support."
|
|
63
|
-
},
|
|
64
|
-
"controlDesignations": {
|
|
65
|
-
"type": "array",
|
|
66
|
-
"items": {
|
|
67
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/system/v3.0.0#/$defs/Control_Designation"
|
|
68
|
-
},
|
|
69
|
-
"description": "Declares which controls are common, hybrid, or system-specific, and which component provides them. Maps to NIST SP 800-53 control designations and OSCAL leveraged-authorizations."
|
|
70
|
-
},
|
|
71
|
-
"dataFlows": {
|
|
72
|
-
"type": "array",
|
|
73
|
-
"items": {
|
|
74
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/data-flow/v3.0.0#/$defs/Data_Flow"
|
|
75
|
-
},
|
|
76
|
-
"description": "Inter-component data flows describing how components communicate. Supports local, cross-system, and external flows. Replaces the interconnections[] field."
|
|
77
|
-
},
|
|
78
|
-
"labels": {
|
|
79
|
-
"type": "object",
|
|
80
|
-
"additionalProperties": {
|
|
81
|
-
"type": "string"
|
|
82
|
-
},
|
|
83
|
-
"description": "Optional key-value labels for grouping and querying systems."
|
|
84
|
-
},
|
|
85
|
-
"integrity": {
|
|
86
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.0.0#/$defs/Integrity",
|
|
87
|
-
"description": "Cryptographic integrity information for verifying this system document has not been tampered with."
|
|
88
|
-
},
|
|
89
|
-
"version": {
|
|
90
|
-
"type": "string",
|
|
91
|
-
"description": "Version of this system document."
|
|
92
|
-
},
|
|
93
|
-
"generator": {
|
|
94
|
-
"$ref": "https://mitre.github.io/hdf-libs/schemas/primitives/extensions/v3.0.0#/$defs/Generator",
|
|
95
|
-
"description": "Information about the tool that generated this system document."
|
|
96
|
-
}
|
|
97
|
-
},
|
|
98
|
-
"examples": [
|
|
99
|
-
{
|
|
100
|
-
"name": "Enterprise Portal Production",
|
|
101
|
-
"identifier": "SYS-2024-00142",
|
|
102
|
-
"identifierScheme": "https://emass.mil",
|
|
103
|
-
"authorizationStatus": "authorized",
|
|
104
|
-
"authorizationDate": "2025-06-15T00:00:00Z",
|
|
105
|
-
"categorizationLevel": "moderate",
|
|
106
|
-
"boundaryDescription": "All resources in prod VPC (10.0.0.0/16)",
|
|
107
|
-
"components": [
|
|
108
|
-
{
|
|
109
|
-
"name": "WebTier",
|
|
110
|
-
"type": "application",
|
|
111
|
-
"componentId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
|
|
112
|
-
"description": "RHEL 9 web servers running the portal",
|
|
113
|
-
"baselineRefs": ["RHEL9-STIG", "DISA-Container-STIG"],
|
|
114
|
-
"sbomRef": "https://artifacts.agency.gov/sbom/webtier-2026-03.cdx.json",
|
|
115
|
-
"sbomFormat": "cyclonedx"
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
"name": "DatabaseTier",
|
|
119
|
-
"type": "database",
|
|
120
|
-
"componentId": "11111111-2222-3333-4444-555555555555",
|
|
121
|
-
"baselineRefs": ["PostgreSQL-15-STIG"]
|
|
122
|
-
}
|
|
123
|
-
],
|
|
124
|
-
"dataFlows": [
|
|
125
|
-
{
|
|
126
|
-
"from": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
|
|
127
|
-
"to": "11111111-2222-3333-4444-555555555555",
|
|
128
|
-
"protocol": "jdbc",
|
|
129
|
-
"port": 5432,
|
|
130
|
-
"direction": "unidirectional",
|
|
131
|
-
"description": "Web tier connects to database"
|
|
132
|
-
}
|
|
133
|
-
]
|
|
134
|
-
}
|
|
135
|
-
]
|
|
136
|
-
}
|