@mitre/hdf-schema 3.0.0 → 3.1.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +55 -0
- package/README.md +96 -41
- package/dist/go/hdf.go +148 -104
- package/dist/helpers.js +4 -44
- 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 -44
- 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,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Waivers, attestations,
|
|
2
|
+
* Waivers, attestations, and POA&Ms that modify requirement compliance status or impact.
|
|
3
3
|
* Amendments are standalone documents that can be applied to results via merge operations.
|
|
4
4
|
*/
|
|
5
5
|
export interface HdfAmendments {
|
|
@@ -41,7 +41,7 @@ export interface HdfAmendments {
|
|
|
41
41
|
*/
|
|
42
42
|
name: string;
|
|
43
43
|
/**
|
|
44
|
-
* The set of amendments (waivers, attestations,
|
|
44
|
+
* The set of amendments (waivers, attestations, POA&Ms, and other overrides).
|
|
45
45
|
*/
|
|
46
46
|
overrides: StandaloneOverride[];
|
|
47
47
|
/**
|
|
@@ -158,9 +158,9 @@ export declare enum HashAlgorithm {
|
|
|
158
158
|
Sha512 = "sha512"
|
|
159
159
|
}
|
|
160
160
|
/**
|
|
161
|
-
* A standalone amendment that modifies a requirement's compliance status
|
|
162
|
-
*
|
|
163
|
-
* results documents.
|
|
161
|
+
* A standalone amendment that modifies a requirement's compliance status and/or impact
|
|
162
|
+
* score. At least one of status or impact must be set. Extends the inline Override concept
|
|
163
|
+
* with requirementId and baselineRef for use outside of results documents.
|
|
164
164
|
*/
|
|
165
165
|
export interface StandaloneOverride {
|
|
166
166
|
/**
|
|
@@ -190,6 +190,10 @@ export interface StandaloneOverride {
|
|
|
190
190
|
* format.
|
|
191
191
|
*/
|
|
192
192
|
expiresAt: Date;
|
|
193
|
+
/**
|
|
194
|
+
* Override to the requirement's impact score. At least one of status or impact must be set.
|
|
195
|
+
*/
|
|
196
|
+
impact?: ImpactOverride;
|
|
193
197
|
/**
|
|
194
198
|
* componentId of the local component that provides this control. Set when the provider is
|
|
195
199
|
* in the same system. Omit for external or cross-system providers; the reason field
|
|
@@ -219,10 +223,9 @@ export interface StandaloneOverride {
|
|
|
219
223
|
*/
|
|
220
224
|
signature?: Signature;
|
|
221
225
|
/**
|
|
222
|
-
* The new status this amendment sets.
|
|
223
|
-
* work, they don't change status).
|
|
226
|
+
* The new status this amendment sets. Optional when only impact is being overridden.
|
|
224
227
|
*/
|
|
225
|
-
status
|
|
228
|
+
status?: ResultStatus;
|
|
226
229
|
/**
|
|
227
230
|
* The type of amendment.
|
|
228
231
|
*/
|
|
@@ -280,6 +283,20 @@ export declare enum EvidenceType {
|
|
|
280
283
|
Screenshot = "screenshot",
|
|
281
284
|
URL = "url"
|
|
282
285
|
}
|
|
286
|
+
/**
|
|
287
|
+
* Override to the requirement's impact score. At least one of status or impact must be
|
|
288
|
+
* set.
|
|
289
|
+
*
|
|
290
|
+
* An override to the requirement's impact score. The prior impact is the original result
|
|
291
|
+
* value or the preceding override in the chain.
|
|
292
|
+
*/
|
|
293
|
+
export interface ImpactOverride {
|
|
294
|
+
/**
|
|
295
|
+
* The overridden impact score (0.0–1.0).
|
|
296
|
+
*/
|
|
297
|
+
value: number;
|
|
298
|
+
[property: string]: any;
|
|
299
|
+
}
|
|
283
300
|
/**
|
|
284
301
|
* A milestone or task within a POA&M remediation plan.
|
|
285
302
|
*/
|
|
@@ -415,8 +432,7 @@ export interface VerificationMethod {
|
|
|
415
432
|
[property: string]: any;
|
|
416
433
|
}
|
|
417
434
|
/**
|
|
418
|
-
* The new status this amendment sets.
|
|
419
|
-
* work, they don't change status).
|
|
435
|
+
* The new status this amendment sets. Optional when only impact is being overridden.
|
|
420
436
|
*
|
|
421
437
|
* The status of an individual test result. 'notApplicable' indicates the requirement does
|
|
422
438
|
* not apply to the target. 'notReviewed' indicates the requirement was not assessed (e.g.,
|
|
@@ -432,15 +448,27 @@ export declare enum ResultStatus {
|
|
|
432
448
|
/**
|
|
433
449
|
* The type of amendment.
|
|
434
450
|
*
|
|
435
|
-
* The type of amendment
|
|
436
|
-
*
|
|
437
|
-
* (no status change). 'inherited': control provided by another
|
|
438
|
-
*
|
|
451
|
+
* The type of amendment, aligned with FedRAMP deviation request categories. 'waiver': risk
|
|
452
|
+
* accepted by Authorizing Official. 'attestation': manually verified by assessor. 'poam':
|
|
453
|
+
* remediation tracked (no status change). 'inherited': control provided by another
|
|
454
|
+
* component or system. 'falsePositive': scanner incorrectly identified a finding — for
|
|
455
|
+
* compliance scans (STIG, CIS), the check actually passes, so status is typically set to
|
|
456
|
+
* 'passed'; for vulnerability scans (CVE, SCA), the flagged vulnerability does not apply to
|
|
457
|
+
* this system, so status is typically set to 'notApplicable'. The disposition field on the
|
|
458
|
+
* requirement distinguishes false positives from genuinely not-applicable findings.
|
|
459
|
+
* 'riskAdjustment': impact score adjusted based on environmental context (FedRAMP Risk
|
|
460
|
+
* Adjustment); does not change pass/fail status, only impact via the impact field.
|
|
461
|
+
* 'operationalRequirement': deviation required by operational constraints (FedRAMP
|
|
462
|
+
* Operational Requirement); the finding cannot be remediated because the system requires
|
|
463
|
+
* the affected functionality. Remains an open risk. Migration note: 'exception' was removed
|
|
464
|
+
* in v3.1.0 — use 'waiver' with status 'notApplicable' instead.
|
|
439
465
|
*/
|
|
440
466
|
export declare enum OverrideType {
|
|
441
467
|
Attestation = "attestation",
|
|
442
|
-
|
|
468
|
+
FalsePositive = "falsePositive",
|
|
443
469
|
Inherited = "inherited",
|
|
470
|
+
OperationalRequirement = "operationalRequirement",
|
|
444
471
|
Poam = "poam",
|
|
472
|
+
RiskAdjustment = "riskAdjustment",
|
|
445
473
|
Waiver = "waiver"
|
|
446
474
|
}
|
|
@@ -44,8 +44,7 @@ export var Status;
|
|
|
44
44
|
Status["Pending"] = "pending";
|
|
45
45
|
})(Status || (Status = {}));
|
|
46
46
|
/**
|
|
47
|
-
* The new status this amendment sets.
|
|
48
|
-
* work, they don't change status).
|
|
47
|
+
* The new status this amendment sets. Optional when only impact is being overridden.
|
|
49
48
|
*
|
|
50
49
|
* The status of an individual test result. 'notApplicable' indicates the requirement does
|
|
51
50
|
* not apply to the target. 'notReviewed' indicates the requirement was not assessed (e.g.,
|
|
@@ -62,16 +61,28 @@ export var ResultStatus;
|
|
|
62
61
|
/**
|
|
63
62
|
* The type of amendment.
|
|
64
63
|
*
|
|
65
|
-
* The type of amendment
|
|
66
|
-
*
|
|
67
|
-
* (no status change). 'inherited': control provided by another
|
|
68
|
-
*
|
|
64
|
+
* The type of amendment, aligned with FedRAMP deviation request categories. 'waiver': risk
|
|
65
|
+
* accepted by Authorizing Official. 'attestation': manually verified by assessor. 'poam':
|
|
66
|
+
* remediation tracked (no status change). 'inherited': control provided by another
|
|
67
|
+
* component or system. 'falsePositive': scanner incorrectly identified a finding — for
|
|
68
|
+
* compliance scans (STIG, CIS), the check actually passes, so status is typically set to
|
|
69
|
+
* 'passed'; for vulnerability scans (CVE, SCA), the flagged vulnerability does not apply to
|
|
70
|
+
* this system, so status is typically set to 'notApplicable'. The disposition field on the
|
|
71
|
+
* requirement distinguishes false positives from genuinely not-applicable findings.
|
|
72
|
+
* 'riskAdjustment': impact score adjusted based on environmental context (FedRAMP Risk
|
|
73
|
+
* Adjustment); does not change pass/fail status, only impact via the impact field.
|
|
74
|
+
* 'operationalRequirement': deviation required by operational constraints (FedRAMP
|
|
75
|
+
* Operational Requirement); the finding cannot be remediated because the system requires
|
|
76
|
+
* the affected functionality. Remains an open risk. Migration note: 'exception' was removed
|
|
77
|
+
* in v3.1.0 — use 'waiver' with status 'notApplicable' instead.
|
|
69
78
|
*/
|
|
70
79
|
export var OverrideType;
|
|
71
80
|
(function (OverrideType) {
|
|
72
81
|
OverrideType["Attestation"] = "attestation";
|
|
73
|
-
OverrideType["
|
|
82
|
+
OverrideType["FalsePositive"] = "falsePositive";
|
|
74
83
|
OverrideType["Inherited"] = "inherited";
|
|
84
|
+
OverrideType["OperationalRequirement"] = "operationalRequirement";
|
|
75
85
|
OverrideType["Poam"] = "poam";
|
|
86
|
+
OverrideType["RiskAdjustment"] = "riskAdjustment";
|
|
76
87
|
OverrideType["Waiver"] = "waiver";
|
|
77
88
|
})(OverrideType || (OverrideType = {}));
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Waivers, attestations,
|
|
2
|
+
* Waivers, attestations, and POA&Ms that modify requirement compliance status or impact.
|
|
3
3
|
* Amendments are standalone documents that can be applied to results via merge operations.
|
|
4
4
|
*/
|
|
5
5
|
export interface HdfAmendments {
|
|
@@ -39,7 +39,7 @@ export interface HdfAmendments {
|
|
|
39
39
|
*/
|
|
40
40
|
name: string;
|
|
41
41
|
/**
|
|
42
|
-
* The set of amendments (waivers, attestations,
|
|
42
|
+
* The set of amendments (waivers, attestations, POA&Ms, and other overrides).
|
|
43
43
|
*/
|
|
44
44
|
overrides: StandaloneOverride[];
|
|
45
45
|
/**
|
|
@@ -162,9 +162,9 @@ export enum HashAlgorithm {
|
|
|
162
162
|
}
|
|
163
163
|
|
|
164
164
|
/**
|
|
165
|
-
* A standalone amendment that modifies a requirement's compliance status
|
|
166
|
-
*
|
|
167
|
-
* results documents.
|
|
165
|
+
* A standalone amendment that modifies a requirement's compliance status and/or impact
|
|
166
|
+
* score. At least one of status or impact must be set. Extends the inline Override concept
|
|
167
|
+
* with requirementId and baselineRef for use outside of results documents.
|
|
168
168
|
*/
|
|
169
169
|
export interface StandaloneOverride {
|
|
170
170
|
/**
|
|
@@ -194,6 +194,10 @@ export interface StandaloneOverride {
|
|
|
194
194
|
* format.
|
|
195
195
|
*/
|
|
196
196
|
expiresAt: Date;
|
|
197
|
+
/**
|
|
198
|
+
* Override to the requirement's impact score. At least one of status or impact must be set.
|
|
199
|
+
*/
|
|
200
|
+
impact?: ImpactOverride;
|
|
197
201
|
/**
|
|
198
202
|
* componentId of the local component that provides this control. Set when the provider is
|
|
199
203
|
* in the same system. Omit for external or cross-system providers; the reason field
|
|
@@ -223,10 +227,9 @@ export interface StandaloneOverride {
|
|
|
223
227
|
*/
|
|
224
228
|
signature?: Signature;
|
|
225
229
|
/**
|
|
226
|
-
* The new status this amendment sets.
|
|
227
|
-
* work, they don't change status).
|
|
230
|
+
* The new status this amendment sets. Optional when only impact is being overridden.
|
|
228
231
|
*/
|
|
229
|
-
status
|
|
232
|
+
status?: ResultStatus;
|
|
230
233
|
/**
|
|
231
234
|
* The type of amendment.
|
|
232
235
|
*/
|
|
@@ -287,6 +290,21 @@ export enum EvidenceType {
|
|
|
287
290
|
URL = "url",
|
|
288
291
|
}
|
|
289
292
|
|
|
293
|
+
/**
|
|
294
|
+
* Override to the requirement's impact score. At least one of status or impact must be
|
|
295
|
+
* set.
|
|
296
|
+
*
|
|
297
|
+
* An override to the requirement's impact score. The prior impact is the original result
|
|
298
|
+
* value or the preceding override in the chain.
|
|
299
|
+
*/
|
|
300
|
+
export interface ImpactOverride {
|
|
301
|
+
/**
|
|
302
|
+
* The overridden impact score (0.0–1.0).
|
|
303
|
+
*/
|
|
304
|
+
value: number;
|
|
305
|
+
[property: string]: any;
|
|
306
|
+
}
|
|
307
|
+
|
|
290
308
|
/**
|
|
291
309
|
* A milestone or task within a POA&M remediation plan.
|
|
292
310
|
*/
|
|
@@ -425,8 +443,7 @@ export interface VerificationMethod {
|
|
|
425
443
|
}
|
|
426
444
|
|
|
427
445
|
/**
|
|
428
|
-
* The new status this amendment sets.
|
|
429
|
-
* work, they don't change status).
|
|
446
|
+
* The new status this amendment sets. Optional when only impact is being overridden.
|
|
430
447
|
*
|
|
431
448
|
* The status of an individual test result. 'notApplicable' indicates the requirement does
|
|
432
449
|
* not apply to the target. 'notReviewed' indicates the requirement was not assessed (e.g.,
|
|
@@ -443,15 +460,27 @@ export enum ResultStatus {
|
|
|
443
460
|
/**
|
|
444
461
|
* The type of amendment.
|
|
445
462
|
*
|
|
446
|
-
* The type of amendment
|
|
447
|
-
*
|
|
448
|
-
* (no status change). 'inherited': control provided by another
|
|
449
|
-
*
|
|
463
|
+
* The type of amendment, aligned with FedRAMP deviation request categories. 'waiver': risk
|
|
464
|
+
* accepted by Authorizing Official. 'attestation': manually verified by assessor. 'poam':
|
|
465
|
+
* remediation tracked (no status change). 'inherited': control provided by another
|
|
466
|
+
* component or system. 'falsePositive': scanner incorrectly identified a finding — for
|
|
467
|
+
* compliance scans (STIG, CIS), the check actually passes, so status is typically set to
|
|
468
|
+
* 'passed'; for vulnerability scans (CVE, SCA), the flagged vulnerability does not apply to
|
|
469
|
+
* this system, so status is typically set to 'notApplicable'. The disposition field on the
|
|
470
|
+
* requirement distinguishes false positives from genuinely not-applicable findings.
|
|
471
|
+
* 'riskAdjustment': impact score adjusted based on environmental context (FedRAMP Risk
|
|
472
|
+
* Adjustment); does not change pass/fail status, only impact via the impact field.
|
|
473
|
+
* 'operationalRequirement': deviation required by operational constraints (FedRAMP
|
|
474
|
+
* Operational Requirement); the finding cannot be remediated because the system requires
|
|
475
|
+
* the affected functionality. Remains an open risk. Migration note: 'exception' was removed
|
|
476
|
+
* in v3.1.0 — use 'waiver' with status 'notApplicable' instead.
|
|
450
477
|
*/
|
|
451
478
|
export enum OverrideType {
|
|
452
479
|
Attestation = "attestation",
|
|
453
|
-
|
|
480
|
+
FalsePositive = "falsePositive",
|
|
454
481
|
Inherited = "inherited",
|
|
482
|
+
OperationalRequirement = "operationalRequirement",
|
|
455
483
|
Poam = "poam",
|
|
484
|
+
RiskAdjustment = "riskAdjustment",
|
|
456
485
|
Waiver = "waiver",
|
|
457
486
|
}
|
package/dist/ts/hdf-results.d.ts
CHANGED
|
@@ -417,8 +417,22 @@ export interface EvaluatedRequirement {
|
|
|
417
417
|
*/
|
|
418
418
|
descriptions: Description[];
|
|
419
419
|
/**
|
|
420
|
-
* The
|
|
421
|
-
*
|
|
420
|
+
* The type of the most recent non-expired override or POAM governing this requirement.
|
|
421
|
+
* Indicates why the requirement is in its current state (e.g., waiver, falsePositive,
|
|
422
|
+
* riskAdjustment) or what remediation is being tracked (poam). Absent when no overrides or
|
|
423
|
+
* POAMs apply.
|
|
424
|
+
*/
|
|
425
|
+
disposition?: OverrideType;
|
|
426
|
+
/**
|
|
427
|
+
* The current effective impact score (0.0–1.0) after applying the most recent non-expired
|
|
428
|
+
* override with an impact field. Absent when no impact overrides apply; consumers should
|
|
429
|
+
* use the requirement's impact field in that case.
|
|
430
|
+
*/
|
|
431
|
+
effectiveImpact?: number;
|
|
432
|
+
/**
|
|
433
|
+
* The current effective compliance status of this requirement after applying the most
|
|
434
|
+
* recent non-expired override with a status field, or computed from results (worst-wins) if
|
|
435
|
+
* no status-bearing overrides exist.
|
|
422
436
|
*/
|
|
423
437
|
effectiveStatus?: ResultStatus;
|
|
424
438
|
/**
|
|
@@ -446,9 +460,10 @@ export interface EvaluatedRequirement {
|
|
|
446
460
|
*/
|
|
447
461
|
sourceLocation?: SourceLocation;
|
|
448
462
|
/**
|
|
449
|
-
* Chronological history of all
|
|
450
|
-
*
|
|
451
|
-
* recent override should be first in array.
|
|
463
|
+
* Chronological history of all overrides applied to this requirement. Overrides are
|
|
464
|
+
* intentional changes to the compliance status and/or impact score (waivers, attestations,
|
|
465
|
+
* false positives, risk adjustments). Most recent override should be first in array.
|
|
466
|
+
* Preserves full audit trail.
|
|
452
467
|
*/
|
|
453
468
|
statusOverrides?: StatusOverride[];
|
|
454
469
|
/**
|
|
@@ -494,8 +509,41 @@ export interface Description {
|
|
|
494
509
|
[property: string]: any;
|
|
495
510
|
}
|
|
496
511
|
/**
|
|
497
|
-
* The
|
|
498
|
-
*
|
|
512
|
+
* The type of the most recent non-expired override or POAM governing this requirement.
|
|
513
|
+
* Indicates why the requirement is in its current state (e.g., waiver, falsePositive,
|
|
514
|
+
* riskAdjustment) or what remediation is being tracked (poam). Absent when no overrides or
|
|
515
|
+
* POAMs apply.
|
|
516
|
+
*
|
|
517
|
+
* The type of amendment, aligned with FedRAMP deviation request categories. 'waiver': risk
|
|
518
|
+
* accepted by Authorizing Official. 'attestation': manually verified by assessor. 'poam':
|
|
519
|
+
* remediation tracked (no status change). 'inherited': control provided by another
|
|
520
|
+
* component or system. 'falsePositive': scanner incorrectly identified a finding — for
|
|
521
|
+
* compliance scans (STIG, CIS), the check actually passes, so status is typically set to
|
|
522
|
+
* 'passed'; for vulnerability scans (CVE, SCA), the flagged vulnerability does not apply to
|
|
523
|
+
* this system, so status is typically set to 'notApplicable'. The disposition field on the
|
|
524
|
+
* requirement distinguishes false positives from genuinely not-applicable findings.
|
|
525
|
+
* 'riskAdjustment': impact score adjusted based on environmental context (FedRAMP Risk
|
|
526
|
+
* Adjustment); does not change pass/fail status, only impact via the impact field.
|
|
527
|
+
* 'operationalRequirement': deviation required by operational constraints (FedRAMP
|
|
528
|
+
* Operational Requirement); the finding cannot be remediated because the system requires
|
|
529
|
+
* the affected functionality. Remains an open risk. Migration note: 'exception' was removed
|
|
530
|
+
* in v3.1.0 — use 'waiver' with status 'notApplicable' instead.
|
|
531
|
+
*
|
|
532
|
+
* The type of override applied to this requirement.
|
|
533
|
+
*/
|
|
534
|
+
export declare enum OverrideType {
|
|
535
|
+
Attestation = "attestation",
|
|
536
|
+
FalsePositive = "falsePositive",
|
|
537
|
+
Inherited = "inherited",
|
|
538
|
+
OperationalRequirement = "operationalRequirement",
|
|
539
|
+
Poam = "poam",
|
|
540
|
+
RiskAdjustment = "riskAdjustment",
|
|
541
|
+
Waiver = "waiver"
|
|
542
|
+
}
|
|
543
|
+
/**
|
|
544
|
+
* The current effective compliance status of this requirement after applying the most
|
|
545
|
+
* recent non-expired override with a status field, or computed from results (worst-wins) if
|
|
546
|
+
* no status-bearing overrides exist.
|
|
499
547
|
*
|
|
500
548
|
* The status of an individual test result. 'notApplicable' indicates the requirement does
|
|
501
549
|
* not apply to the target. 'notReviewed' indicates the requirement was not assessed (e.g.,
|
|
@@ -503,8 +551,8 @@ export interface Description {
|
|
|
503
551
|
*
|
|
504
552
|
* The status of this test within the requirement. Example: 'failed'.
|
|
505
553
|
*
|
|
506
|
-
* The new status this override sets for the requirement.
|
|
507
|
-
*
|
|
554
|
+
* The new status this override sets for the requirement. Optional when only impact is being
|
|
555
|
+
* overridden.
|
|
508
556
|
*/
|
|
509
557
|
export declare enum ResultStatus {
|
|
510
558
|
Error = "error",
|
|
@@ -566,8 +614,8 @@ export interface Evidence {
|
|
|
566
614
|
*
|
|
567
615
|
* The identity that created this signature.
|
|
568
616
|
*
|
|
569
|
-
* Identity of who applied this
|
|
570
|
-
*
|
|
617
|
+
* Identity of who applied this override. For simple cases, use type 'simple' with just an
|
|
618
|
+
* identifier.
|
|
571
619
|
*
|
|
572
620
|
* Identity of the person or system that approved this override.
|
|
573
621
|
*
|
|
@@ -664,6 +712,7 @@ export interface Poam {
|
|
|
664
712
|
/**
|
|
665
713
|
* The type of POA&M. 'remediation' fixes root cause. 'mitigation' reduces risk via
|
|
666
714
|
* compensating controls. 'riskAcceptance' documents decision to accept risk.
|
|
715
|
+
* 'vendorDependency' tracks a fix that depends on a vendor releasing a patch or update.
|
|
667
716
|
*/
|
|
668
717
|
type: PoamType;
|
|
669
718
|
[property: string]: any;
|
|
@@ -790,11 +839,13 @@ export interface VerificationMethod {
|
|
|
790
839
|
/**
|
|
791
840
|
* The type of POA&M. 'remediation' fixes root cause. 'mitigation' reduces risk via
|
|
792
841
|
* compensating controls. 'riskAcceptance' documents decision to accept risk.
|
|
842
|
+
* 'vendorDependency' tracks a fix that depends on a vendor releasing a patch or update.
|
|
793
843
|
*/
|
|
794
844
|
export declare enum PoamType {
|
|
795
845
|
Mitigation = "mitigation",
|
|
796
846
|
Remediation = "remediation",
|
|
797
|
-
RiskAcceptance = "riskAcceptance"
|
|
847
|
+
RiskAcceptance = "riskAcceptance",
|
|
848
|
+
VendorDependency = "vendorDependency"
|
|
798
849
|
}
|
|
799
850
|
/**
|
|
800
851
|
* A reference to an external document.
|
|
@@ -887,30 +938,34 @@ export interface SourceLocation {
|
|
|
887
938
|
[property: string]: any;
|
|
888
939
|
}
|
|
889
940
|
/**
|
|
890
|
-
* An intentional change to a requirement's compliance status
|
|
891
|
-
*
|
|
892
|
-
* have an expiration date to enforce periodic review.
|
|
941
|
+
* An intentional change to a requirement's compliance status and/or impact score. At least
|
|
942
|
+
* one of status or impact must be set. Overrides change the effectiveStatus or impact of
|
|
943
|
+
* the requirement. All overrides must have an expiration date to enforce periodic review.
|
|
893
944
|
*/
|
|
894
945
|
export interface StatusOverride {
|
|
895
946
|
/**
|
|
896
|
-
* Timestamp when this
|
|
947
|
+
* Timestamp when this override was applied. ISO 8601 format.
|
|
897
948
|
*/
|
|
898
949
|
appliedAt: Date;
|
|
899
950
|
/**
|
|
900
|
-
* Identity of who applied this
|
|
901
|
-
*
|
|
951
|
+
* Identity of who applied this override. For simple cases, use type 'simple' with just an
|
|
952
|
+
* identifier.
|
|
902
953
|
*/
|
|
903
954
|
appliedBy: Identity;
|
|
904
955
|
/**
|
|
905
|
-
* Supporting evidence for this
|
|
956
|
+
* Supporting evidence for this override, such as screenshots demonstrating manual
|
|
906
957
|
* verification for attestations.
|
|
907
958
|
*/
|
|
908
959
|
evidence?: Evidence[];
|
|
909
960
|
/**
|
|
910
|
-
* Timestamp when this
|
|
911
|
-
* permanent
|
|
961
|
+
* Timestamp when this override expires and must be reviewed/renewed. REQUIRED - no
|
|
962
|
+
* permanent overrides allowed. ISO 8601 format.
|
|
912
963
|
*/
|
|
913
964
|
expiresAt: Date;
|
|
965
|
+
/**
|
|
966
|
+
* Override to the requirement's impact score. At least one of status or impact must be set.
|
|
967
|
+
*/
|
|
968
|
+
impact?: ImpactOverride;
|
|
914
969
|
/**
|
|
915
970
|
* SHA-256 checksum of the previous amendment in chronological order. Creates a
|
|
916
971
|
* tamper-evident chain of amendments (similar to blockchain). Null for the first amendment
|
|
@@ -918,7 +973,7 @@ export interface StatusOverride {
|
|
|
918
973
|
*/
|
|
919
974
|
previousChecksum?: Checksum;
|
|
920
975
|
/**
|
|
921
|
-
* Explanation for why this
|
|
976
|
+
* Explanation for why this override was applied.
|
|
922
977
|
*/
|
|
923
978
|
reason: string;
|
|
924
979
|
/**
|
|
@@ -928,30 +983,29 @@ export interface StatusOverride {
|
|
|
928
983
|
*/
|
|
929
984
|
signature?: Signature;
|
|
930
985
|
/**
|
|
931
|
-
* The new status this override sets for the requirement.
|
|
932
|
-
*
|
|
986
|
+
* The new status this override sets for the requirement. Optional when only impact is being
|
|
987
|
+
* overridden.
|
|
933
988
|
*/
|
|
934
|
-
status
|
|
989
|
+
status?: ResultStatus;
|
|
935
990
|
/**
|
|
936
|
-
* The type of
|
|
991
|
+
* The type of override applied to this requirement.
|
|
937
992
|
*/
|
|
938
993
|
type: OverrideType;
|
|
939
994
|
[property: string]: any;
|
|
940
995
|
}
|
|
941
996
|
/**
|
|
942
|
-
*
|
|
997
|
+
* Override to the requirement's impact score. At least one of status or impact must be
|
|
998
|
+
* set.
|
|
943
999
|
*
|
|
944
|
-
*
|
|
945
|
-
*
|
|
946
|
-
* (no status change). 'inherited': control provided by another component or system
|
|
947
|
-
* (overrides to notApplicable/passed).
|
|
1000
|
+
* An override to the requirement's impact score. The prior impact is the original result
|
|
1001
|
+
* value or the preceding override in the chain.
|
|
948
1002
|
*/
|
|
949
|
-
export
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
1003
|
+
export interface ImpactOverride {
|
|
1004
|
+
/**
|
|
1005
|
+
* The overridden impact score (0.0–1.0).
|
|
1006
|
+
*/
|
|
1007
|
+
value: number;
|
|
1008
|
+
[property: string]: any;
|
|
955
1009
|
}
|
|
956
1010
|
/**
|
|
957
1011
|
* A supported platform target. Example: the platform name being 'ubuntu'.
|
package/dist/ts/hdf-results.js
CHANGED
|
@@ -43,8 +43,42 @@ export var HashAlgorithm;
|
|
|
43
43
|
HashAlgorithm["Sha512"] = "sha512";
|
|
44
44
|
})(HashAlgorithm || (HashAlgorithm = {}));
|
|
45
45
|
/**
|
|
46
|
-
* The
|
|
47
|
-
*
|
|
46
|
+
* The type of the most recent non-expired override or POAM governing this requirement.
|
|
47
|
+
* Indicates why the requirement is in its current state (e.g., waiver, falsePositive,
|
|
48
|
+
* riskAdjustment) or what remediation is being tracked (poam). Absent when no overrides or
|
|
49
|
+
* POAMs apply.
|
|
50
|
+
*
|
|
51
|
+
* The type of amendment, aligned with FedRAMP deviation request categories. 'waiver': risk
|
|
52
|
+
* accepted by Authorizing Official. 'attestation': manually verified by assessor. 'poam':
|
|
53
|
+
* remediation tracked (no status change). 'inherited': control provided by another
|
|
54
|
+
* component or system. 'falsePositive': scanner incorrectly identified a finding — for
|
|
55
|
+
* compliance scans (STIG, CIS), the check actually passes, so status is typically set to
|
|
56
|
+
* 'passed'; for vulnerability scans (CVE, SCA), the flagged vulnerability does not apply to
|
|
57
|
+
* this system, so status is typically set to 'notApplicable'. The disposition field on the
|
|
58
|
+
* requirement distinguishes false positives from genuinely not-applicable findings.
|
|
59
|
+
* 'riskAdjustment': impact score adjusted based on environmental context (FedRAMP Risk
|
|
60
|
+
* Adjustment); does not change pass/fail status, only impact via the impact field.
|
|
61
|
+
* 'operationalRequirement': deviation required by operational constraints (FedRAMP
|
|
62
|
+
* Operational Requirement); the finding cannot be remediated because the system requires
|
|
63
|
+
* the affected functionality. Remains an open risk. Migration note: 'exception' was removed
|
|
64
|
+
* in v3.1.0 — use 'waiver' with status 'notApplicable' instead.
|
|
65
|
+
*
|
|
66
|
+
* The type of override applied to this requirement.
|
|
67
|
+
*/
|
|
68
|
+
export var OverrideType;
|
|
69
|
+
(function (OverrideType) {
|
|
70
|
+
OverrideType["Attestation"] = "attestation";
|
|
71
|
+
OverrideType["FalsePositive"] = "falsePositive";
|
|
72
|
+
OverrideType["Inherited"] = "inherited";
|
|
73
|
+
OverrideType["OperationalRequirement"] = "operationalRequirement";
|
|
74
|
+
OverrideType["Poam"] = "poam";
|
|
75
|
+
OverrideType["RiskAdjustment"] = "riskAdjustment";
|
|
76
|
+
OverrideType["Waiver"] = "waiver";
|
|
77
|
+
})(OverrideType || (OverrideType = {}));
|
|
78
|
+
/**
|
|
79
|
+
* The current effective compliance status of this requirement after applying the most
|
|
80
|
+
* recent non-expired override with a status field, or computed from results (worst-wins) if
|
|
81
|
+
* no status-bearing overrides exist.
|
|
48
82
|
*
|
|
49
83
|
* The status of an individual test result. 'notApplicable' indicates the requirement does
|
|
50
84
|
* not apply to the target. 'notReviewed' indicates the requirement was not assessed (e.g.,
|
|
@@ -52,8 +86,8 @@ export var HashAlgorithm;
|
|
|
52
86
|
*
|
|
53
87
|
* The status of this test within the requirement. Example: 'failed'.
|
|
54
88
|
*
|
|
55
|
-
* The new status this override sets for the requirement.
|
|
56
|
-
*
|
|
89
|
+
* The new status this override sets for the requirement. Optional when only impact is being
|
|
90
|
+
* overridden.
|
|
57
91
|
*/
|
|
58
92
|
export var ResultStatus;
|
|
59
93
|
(function (ResultStatus) {
|
|
@@ -100,12 +134,14 @@ export var Status;
|
|
|
100
134
|
/**
|
|
101
135
|
* The type of POA&M. 'remediation' fixes root cause. 'mitigation' reduces risk via
|
|
102
136
|
* compensating controls. 'riskAcceptance' documents decision to accept risk.
|
|
137
|
+
* 'vendorDependency' tracks a fix that depends on a vendor releasing a patch or update.
|
|
103
138
|
*/
|
|
104
139
|
export var PoamType;
|
|
105
140
|
(function (PoamType) {
|
|
106
141
|
PoamType["Mitigation"] = "mitigation";
|
|
107
142
|
PoamType["Remediation"] = "remediation";
|
|
108
143
|
PoamType["RiskAcceptance"] = "riskAcceptance";
|
|
144
|
+
PoamType["VendorDependency"] = "vendorDependency";
|
|
109
145
|
})(PoamType || (PoamType = {}));
|
|
110
146
|
/**
|
|
111
147
|
* Explicit severity rating. Typically derived from impact score but provided explicitly for
|
|
@@ -121,22 +157,6 @@ export var Severity;
|
|
|
121
157
|
Severity["Low"] = "low";
|
|
122
158
|
Severity["Medium"] = "medium";
|
|
123
159
|
})(Severity || (Severity = {}));
|
|
124
|
-
/**
|
|
125
|
-
* The type of status override applied to this requirement.
|
|
126
|
-
*
|
|
127
|
-
* The type of amendment. 'waiver': risk accepted (AO). 'attestation': manually verified
|
|
128
|
-
* (assessor). 'exception': not applicable (system owner + AO). 'poam': remediation tracked
|
|
129
|
-
* (no status change). 'inherited': control provided by another component or system
|
|
130
|
-
* (overrides to notApplicable/passed).
|
|
131
|
-
*/
|
|
132
|
-
export var OverrideType;
|
|
133
|
-
(function (OverrideType) {
|
|
134
|
-
OverrideType["Attestation"] = "attestation";
|
|
135
|
-
OverrideType["Exception"] = "exception";
|
|
136
|
-
OverrideType["Inherited"] = "inherited";
|
|
137
|
-
OverrideType["Poam"] = "poam";
|
|
138
|
-
OverrideType["Waiver"] = "waiver";
|
|
139
|
-
})(OverrideType || (OverrideType = {}));
|
|
140
160
|
export var CloudProvider;
|
|
141
161
|
(function (CloudProvider) {
|
|
142
162
|
CloudProvider["Aws"] = "aws";
|