@mitre/hdf-schema 3.4.0 → 3.4.2
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/dist/go/hdf.go +155 -460
- package/dist/helpers.js +5 -3
- package/dist/ts/hdf.d.ts +158 -463
- package/dist/ts/hdf.js +58 -130
- package/dist/ts/hdf.ts +158 -463
- package/package.json +2 -2
package/dist/ts/hdf.ts
CHANGED
|
@@ -66,9 +66,6 @@ export interface HDFResults {
|
|
|
66
66
|
|
|
67
67
|
/**
|
|
68
68
|
* Information on a baseline that was evaluated, including any findings.
|
|
69
|
-
*
|
|
70
|
-
* Shared metadata fields for baselines. Used in both standalone baseline documents and
|
|
71
|
-
* evaluated baseline results.
|
|
72
69
|
*/
|
|
73
70
|
export interface EvaluatedBaseline {
|
|
74
71
|
/**
|
|
@@ -172,8 +169,7 @@ export interface EvaluatedBaseline {
|
|
|
172
169
|
}
|
|
173
170
|
|
|
174
171
|
/**
|
|
175
|
-
* A dependency for a baseline. Can include relative paths or URLs for where to find the
|
|
176
|
-
* dependency.
|
|
172
|
+
* A dependency for a baseline. Can include relative paths or URLs for where to find the dependency.
|
|
177
173
|
*/
|
|
178
174
|
export interface Dependency {
|
|
179
175
|
/**
|
|
@@ -237,9 +233,9 @@ export interface RequirementGroup {
|
|
|
237
233
|
}
|
|
238
234
|
|
|
239
235
|
/**
|
|
240
|
-
* A typed input parameter that bridges governance requirements and scanner automation.
|
|
241
|
-
*
|
|
242
|
-
*
|
|
236
|
+
* A typed input parameter that bridges governance requirements and scanner automation. Inputs carry
|
|
237
|
+
* expected configuration values with type information, comparison operators, and validation
|
|
238
|
+
* constraints, enabling traceability from policy through to scan results.
|
|
243
239
|
*/
|
|
244
240
|
export interface Input {
|
|
245
241
|
/**
|
|
@@ -280,8 +276,6 @@ export interface Input {
|
|
|
280
276
|
}
|
|
281
277
|
|
|
282
278
|
/**
|
|
283
|
-
* Validation constraints for the input value.
|
|
284
|
-
*
|
|
285
279
|
* Validation constraints for an input value.
|
|
286
280
|
*/
|
|
287
281
|
export interface InputConstraints {
|
|
@@ -305,8 +299,6 @@ export interface InputConstraints {
|
|
|
305
299
|
}
|
|
306
300
|
|
|
307
301
|
/**
|
|
308
|
-
* The comparison operator used when evaluating this input against observed values.
|
|
309
|
-
*
|
|
310
302
|
* Comparison operator for evaluating the input value against observed values. Numeric:
|
|
311
303
|
* eq/ne/lt/le/gt/ge. String: eq/ne/contains/matches. Collection: in/notIn.
|
|
312
304
|
*/
|
|
@@ -324,8 +316,6 @@ export enum ComparisonOperator {
|
|
|
324
316
|
}
|
|
325
317
|
|
|
326
318
|
/**
|
|
327
|
-
* The data type of this input.
|
|
328
|
-
*
|
|
329
319
|
* The data type of the input value. Aligns with InSpec input types.
|
|
330
320
|
*/
|
|
331
321
|
export enum InputType {
|
|
@@ -338,27 +328,8 @@ export enum InputType {
|
|
|
338
328
|
}
|
|
339
329
|
|
|
340
330
|
/**
|
|
341
|
-
* Cryptographic integrity information for verifying
|
|
342
|
-
*
|
|
343
|
-
*
|
|
344
|
-
* Cryptographic integrity information for verifying the HDF file has not been tampered
|
|
345
|
-
* with. If algorithm is provided, checksum must also be provided, and vice versa.
|
|
346
|
-
*
|
|
347
|
-
* Cryptographic integrity information for verifying this file.
|
|
348
|
-
*
|
|
349
|
-
* Cryptographic integrity information for verifying this comparison document.
|
|
350
|
-
*
|
|
351
|
-
* Cryptographic integrity information for verifying this system document has not been
|
|
352
|
-
* tampered with.
|
|
353
|
-
*
|
|
354
|
-
* Cryptographic integrity information for verifying this plan document has not been
|
|
355
|
-
* tampered with.
|
|
356
|
-
*
|
|
357
|
-
* Cryptographic integrity information for verifying this amendments document has not been
|
|
358
|
-
* tampered with.
|
|
359
|
-
*
|
|
360
|
-
* Cryptographic integrity information for verifying this evidence package has not been
|
|
361
|
-
* tampered with.
|
|
331
|
+
* Cryptographic integrity information for verifying the HDF file has not been tampered with. If
|
|
332
|
+
* algorithm is provided, checksum must also be provided, and vice versa.
|
|
362
333
|
*/
|
|
363
334
|
export interface Integrity {
|
|
364
335
|
/**
|
|
@@ -381,10 +352,8 @@ export interface Integrity {
|
|
|
381
352
|
}
|
|
382
353
|
|
|
383
354
|
/**
|
|
384
|
-
*
|
|
385
|
-
*
|
|
386
|
-
* Supported cryptographic hash algorithms for checksums and integrity verification. blake3
|
|
387
|
-
* covers container-image and other artifact digests that use it.
|
|
355
|
+
* Supported cryptographic hash algorithms for checksums and integrity verification. blake3 covers
|
|
356
|
+
* container-image and other artifact digests that use it.
|
|
388
357
|
*/
|
|
389
358
|
export enum HashAlgorithm {
|
|
390
359
|
Blake3 = "blake3",
|
|
@@ -394,32 +363,7 @@ export enum HashAlgorithm {
|
|
|
394
363
|
}
|
|
395
364
|
|
|
396
365
|
/**
|
|
397
|
-
* SHA-256 checksum of the original baseline definition file (before execution). This is an
|
|
398
|
-
* immutable reference to the baseline as defined, used to detect tampering with baseline
|
|
399
|
-
* requirements or metadata.
|
|
400
|
-
*
|
|
401
366
|
* Cryptographic checksum for baseline integrity verification.
|
|
402
|
-
*
|
|
403
|
-
* SHA-256 checksum of the previous amendment in chronological order. Creates a
|
|
404
|
-
* tamper-evident chain of amendments (similar to blockchain). Null for the first amendment
|
|
405
|
-
* on a requirement.
|
|
406
|
-
*
|
|
407
|
-
* SHA-256 checksum of the raw results before any amendments (statusOverrides or POAMs).
|
|
408
|
-
* Used to detect tampering with test results. Compare with currentChecksum to verify
|
|
409
|
-
* amendment integrity.
|
|
410
|
-
*
|
|
411
|
-
* Optional cryptographic checksum for verifying the integrity of remediation resources
|
|
412
|
-
* fetched from the URI. Recommended for security when referencing external automation
|
|
413
|
-
* scripts.
|
|
414
|
-
*
|
|
415
|
-
* Cryptographic checksum of the source document for integrity verification.
|
|
416
|
-
*
|
|
417
|
-
* Checksum of the prior amendment in the chain. Creates a tamper-evident linked list. Null
|
|
418
|
-
* for the first amendment.
|
|
419
|
-
*
|
|
420
|
-
* Cryptographic checksum for verifying the referenced document's integrity.
|
|
421
|
-
*
|
|
422
|
-
* Cryptographic checksum of the referenced artifact for integrity verification.
|
|
423
367
|
*/
|
|
424
368
|
export interface Checksum {
|
|
425
369
|
/**
|
|
@@ -435,9 +379,6 @@ export interface Checksum {
|
|
|
435
379
|
|
|
436
380
|
/**
|
|
437
381
|
* A requirement that has been evaluated, including any findings.
|
|
438
|
-
*
|
|
439
|
-
* Core requirement fields shared between baseline requirements and evaluated requirements.
|
|
440
|
-
* Contains the fundamental requirement definition without assessment results.
|
|
441
382
|
*/
|
|
442
383
|
export interface EvaluatedRequirement {
|
|
443
384
|
/**
|
|
@@ -585,14 +526,13 @@ export interface EvaluatedRequirement {
|
|
|
585
526
|
|
|
586
527
|
/**
|
|
587
528
|
* Represents a package referenced by a vulnerability finding or by an amendment's scope. On
|
|
588
|
-
* Evaluated_Requirement.affectedPackages it says 'this CVE affects these package versions'.
|
|
589
|
-
*
|
|
590
|
-
*
|
|
591
|
-
*
|
|
592
|
-
*
|
|
593
|
-
*
|
|
594
|
-
*
|
|
595
|
-
* sources without formal identifiers.
|
|
529
|
+
* Evaluated_Requirement.affectedPackages it says 'this CVE affects these package versions'. On
|
|
530
|
+
* Standalone_Override.affectedPackages it says 'this amendment is scoped to these packages' (used
|
|
531
|
+
* by VEX, OSCAL POA&M, FedRAMP component-aware amendments). NOT a system-level component identifier
|
|
532
|
+
* — see `components[]` on hdf-system for those. Validity requires at least one of: (name + version
|
|
533
|
+
* + ecosystem), purl alone, or cpe alone. purl and cpe are self-describing identifiers that encode
|
|
534
|
+
* name/version implicitly, so either may stand on its own; the name+version+ecosystem combination
|
|
535
|
+
* is the explicit form for sources without formal identifiers.
|
|
596
536
|
*/
|
|
597
537
|
export interface AffectedPackage {
|
|
598
538
|
/**
|
|
@@ -683,16 +623,12 @@ export enum ControlType {
|
|
|
683
623
|
}
|
|
684
624
|
|
|
685
625
|
/**
|
|
686
|
-
*
|
|
687
|
-
*
|
|
688
|
-
*
|
|
689
|
-
*
|
|
690
|
-
*
|
|
691
|
-
*
|
|
692
|
-
* Environmental, and Supplemental metric groups. Supports all four CVSS major versions
|
|
693
|
-
* (2.0, 3.0, 3.1, 4.0). Vector strings are validated against a permissive umbrella grammar;
|
|
694
|
-
* semantic validation (correct metrics per version, correct values per metric) is performed
|
|
695
|
-
* by the hdf-utilities `validateCvssVector` helper rather than at the schema layer.
|
|
626
|
+
* A CVSS (Common Vulnerability Scoring System) score record for a vulnerability finding. Captures
|
|
627
|
+
* the vendor-supplied Base metric group and optional consumer-supplied Threat, Environmental, and
|
|
628
|
+
* Supplemental metric groups. Supports all four CVSS major versions (2.0, 3.0, 3.1, 4.0). Vector
|
|
629
|
+
* strings are validated against a permissive umbrella grammar; semantic validation (correct metrics
|
|
630
|
+
* per version, correct values per metric) is performed by the hdf-utilities `validateCvssVector`
|
|
631
|
+
* helper rather than at the schema layer.
|
|
696
632
|
*/
|
|
697
633
|
export interface Cvss {
|
|
698
634
|
/**
|
|
@@ -765,15 +701,9 @@ export interface Cvss {
|
|
|
765
701
|
}
|
|
766
702
|
|
|
767
703
|
/**
|
|
768
|
-
* Qualitative severity band corresponding to baseScore. CVSS 2.0 does not natively use
|
|
769
|
-
* 'none' or 'critical' bands; map accordingly when populating.
|
|
770
|
-
*
|
|
771
704
|
* Qualitative CVSS severity band. Aligns with FIRST/NVD bands: none=0.0, low=0.1-3.9,
|
|
772
|
-
* medium=4.0-6.9, high=7.0-8.9, critical=9.0-10.0. Distinct from the broader Severity enum
|
|
773
|
-
*
|
|
774
|
-
*
|
|
775
|
-
* Qualitative severity band corresponding to computedScore. Same band convention as
|
|
776
|
-
* baseSeverity.
|
|
705
|
+
* medium=4.0-6.9, high=7.0-8.9, critical=9.0-10.0. Distinct from the broader Severity enum used on
|
|
706
|
+
* Requirement_Core (which includes 'informational').
|
|
777
707
|
*/
|
|
778
708
|
export enum CVSSSeverity {
|
|
779
709
|
Critical = "critical",
|
|
@@ -808,29 +738,19 @@ export interface Description {
|
|
|
808
738
|
}
|
|
809
739
|
|
|
810
740
|
/**
|
|
811
|
-
* The type of
|
|
812
|
-
*
|
|
813
|
-
*
|
|
814
|
-
*
|
|
815
|
-
*
|
|
816
|
-
*
|
|
817
|
-
*
|
|
818
|
-
*
|
|
819
|
-
*
|
|
820
|
-
*
|
|
821
|
-
*
|
|
822
|
-
*
|
|
823
|
-
*
|
|
824
|
-
* 'riskAdjustment': impact score adjusted based on environmental context (FedRAMP Risk
|
|
825
|
-
* Adjustment); does not change pass/fail status, only impact via the impact field.
|
|
826
|
-
* 'operationalRequirement': deviation required by operational constraints (FedRAMP
|
|
827
|
-
* Operational Requirement); the finding cannot be remediated because the system requires
|
|
828
|
-
* the affected functionality. Remains an open risk. Migration note: 'exception' was removed
|
|
829
|
-
* in v3.1.0 — use 'waiver' with status 'notApplicable' instead.
|
|
830
|
-
*
|
|
831
|
-
* The type of override applied to this requirement.
|
|
832
|
-
*
|
|
833
|
-
* The type of amendment.
|
|
741
|
+
* The type of amendment, aligned with FedRAMP deviation request categories. 'waiver': risk accepted
|
|
742
|
+
* by Authorizing Official. 'attestation': manually verified by assessor. 'poam': remediation
|
|
743
|
+
* tracked (no status change). 'inherited': control provided by another component or system.
|
|
744
|
+
* 'falsePositive': scanner incorrectly identified a finding — for compliance scans (STIG, CIS), the
|
|
745
|
+
* check actually passes, so status is typically set to 'passed'; for vulnerability scans (CVE,
|
|
746
|
+
* SCA), the flagged vulnerability does not apply to this system, so status is typically set to
|
|
747
|
+
* 'notApplicable'. The disposition field on the requirement distinguishes false positives from
|
|
748
|
+
* genuinely not-applicable findings. 'riskAdjustment': impact score adjusted based on environmental
|
|
749
|
+
* context (FedRAMP Risk Adjustment); does not change pass/fail status, only impact via the impact
|
|
750
|
+
* field. 'operationalRequirement': deviation required by operational constraints (FedRAMP
|
|
751
|
+
* Operational Requirement); the finding cannot be remediated because the system requires the
|
|
752
|
+
* affected functionality. Remains an open risk. Migration note: 'exception' was removed in v3.1.0 —
|
|
753
|
+
* use 'waiver' with status 'notApplicable' instead.
|
|
834
754
|
*/
|
|
835
755
|
export enum OverrideType {
|
|
836
756
|
Attestation = "attestation",
|
|
@@ -843,20 +763,9 @@ export enum OverrideType {
|
|
|
843
763
|
}
|
|
844
764
|
|
|
845
765
|
/**
|
|
846
|
-
* The
|
|
847
|
-
*
|
|
848
|
-
*
|
|
849
|
-
*
|
|
850
|
-
* The status of an individual test result. 'notApplicable' indicates the requirement does
|
|
851
|
-
* not apply to the target. 'notReviewed' indicates the requirement was not assessed (e.g.,
|
|
852
|
-
* requires manual verification).
|
|
853
|
-
*
|
|
854
|
-
* The status of this test within the requirement. Example: 'failed'.
|
|
855
|
-
*
|
|
856
|
-
* The new status this override sets for the requirement. Optional when only impact is being
|
|
857
|
-
* overridden.
|
|
858
|
-
*
|
|
859
|
-
* The new status this amendment sets. Optional when only impact is being overridden.
|
|
766
|
+
* The status of an individual test result. 'notApplicable' indicates the requirement does not apply
|
|
767
|
+
* to the target. 'notReviewed' indicates the requirement was not assessed (e.g., requires manual
|
|
768
|
+
* verification).
|
|
860
769
|
*/
|
|
861
770
|
export enum ResultStatus {
|
|
862
771
|
Error = "error",
|
|
@@ -867,13 +776,9 @@ export enum ResultStatus {
|
|
|
867
776
|
}
|
|
868
777
|
|
|
869
778
|
/**
|
|
870
|
-
* FIRST.org
|
|
871
|
-
*
|
|
872
|
-
*
|
|
873
|
-
*
|
|
874
|
-
* FIRST.org Exploit Prediction Scoring System (EPSS) data for a single vulnerability. All
|
|
875
|
-
* three fields are required when an Epss object is present; the date disambiguates which
|
|
876
|
-
* day's score this is, since EPSS recomputes daily.
|
|
779
|
+
* FIRST.org Exploit Prediction Scoring System (EPSS) data for a single vulnerability. All three
|
|
780
|
+
* fields are required when an Epss object is present; the date disambiguates which day's score this
|
|
781
|
+
* is, since EPSS recomputes daily.
|
|
877
782
|
*/
|
|
878
783
|
export interface Epss {
|
|
879
784
|
/**
|
|
@@ -896,8 +801,8 @@ export interface Epss {
|
|
|
896
801
|
}
|
|
897
802
|
|
|
898
803
|
/**
|
|
899
|
-
* Supporting evidence for a finding or override, such as screenshots, code samples, log
|
|
900
|
-
*
|
|
804
|
+
* Supporting evidence for a finding or override, such as screenshots, code samples, log excerpts,
|
|
805
|
+
* or URLs.
|
|
901
806
|
*/
|
|
902
807
|
export interface Evidence {
|
|
903
808
|
/**
|
|
@@ -937,41 +842,8 @@ export interface Evidence {
|
|
|
937
842
|
}
|
|
938
843
|
|
|
939
844
|
/**
|
|
940
|
-
*
|
|
941
|
-
*
|
|
942
|
-
* Represents an identity that performed an action, such as capturing evidence or applying
|
|
943
|
-
* an override.
|
|
944
|
-
*
|
|
945
|
-
* Identity of who created this POA&M. For simple cases, use type 'simple' with just an
|
|
946
|
-
* identifier.
|
|
947
|
-
*
|
|
948
|
-
* Identity of who completed this milestone.
|
|
949
|
-
*
|
|
950
|
-
* The identity that created this signature.
|
|
951
|
-
*
|
|
952
|
-
* Identity of who applied this override. For simple cases, use type 'simple' with just an
|
|
953
|
-
* identifier.
|
|
954
|
-
*
|
|
955
|
-
* Identity of the person or system that approved this override.
|
|
956
|
-
*
|
|
957
|
-
* Team or individual responsible for this component. Enables per-component ownership when
|
|
958
|
-
* different teams manage different parts of a system.
|
|
959
|
-
*
|
|
960
|
-
* The identity of the person or system responsible for executing the test. This could be a
|
|
961
|
-
* human auditor manually completing a checklist, an automated CI/CD system, or a security
|
|
962
|
-
* tool. Optional field to support both automated and manual HDF generation.
|
|
963
|
-
*
|
|
964
|
-
* Team or individual responsible for this system's authorization and compliance. Maps to
|
|
965
|
-
* OSCAL responsible-party with role 'system-owner'.
|
|
966
|
-
*
|
|
967
|
-
* Default identity of who created this amendments document. Individual overrides may
|
|
968
|
-
* specify their own appliedBy.
|
|
969
|
-
*
|
|
970
|
-
* Identity of the authorizing official who approved these amendments.
|
|
971
|
-
*
|
|
972
|
-
* Identity of who applied this amendment.
|
|
973
|
-
*
|
|
974
|
-
* Identity of who prepared this evidence package.
|
|
845
|
+
* Represents an identity that performed an action, such as capturing evidence or applying an
|
|
846
|
+
* override.
|
|
975
847
|
*/
|
|
976
848
|
export interface Identity {
|
|
977
849
|
/**
|
|
@@ -1055,9 +927,9 @@ export interface Kev {
|
|
|
1055
927
|
}
|
|
1056
928
|
|
|
1057
929
|
/**
|
|
1058
|
-
* Plan of Action and Milestones for tracking remediation, mitigation, or risk acceptance.
|
|
1059
|
-
*
|
|
1060
|
-
*
|
|
930
|
+
* Plan of Action and Milestones for tracking remediation, mitigation, or risk acceptance. POAMs do
|
|
931
|
+
* NOT change the effectiveStatus - the requirement remains in its current state while the POA&M
|
|
932
|
+
* tracks remediation efforts.
|
|
1061
933
|
*/
|
|
1062
934
|
export interface Poam {
|
|
1063
935
|
/**
|
|
@@ -1142,21 +1014,9 @@ export enum MilestoneStatus {
|
|
|
1142
1014
|
}
|
|
1143
1015
|
|
|
1144
1016
|
/**
|
|
1145
|
-
*
|
|
1146
|
-
*
|
|
1147
|
-
*
|
|
1148
|
-
* security tokens (PKCS#11/PKCS#12), Yubikeys, GPG keys, passkeys, and other cryptographic
|
|
1149
|
-
* signing methods via JWK, PEM, or Base58 key formats.
|
|
1150
|
-
*
|
|
1151
|
-
* Optional digital signature for enhanced trust and non-repudiation. Supports hardware
|
|
1152
|
-
* security tokens (PKCS#11/PKCS#12), Yubikeys, GPG keys, passkeys, and other signing
|
|
1153
|
-
* methods.
|
|
1154
|
-
*
|
|
1155
|
-
* Digital signature for non-repudiation.
|
|
1156
|
-
*
|
|
1157
|
-
* Document-level digital signature covering all amendments.
|
|
1158
|
-
*
|
|
1159
|
-
* Digital signature covering the entire evidence package.
|
|
1017
|
+
* A digital signature following W3C Data Integrity Proofs pattern. Supports hardware security
|
|
1018
|
+
* tokens (PKCS#11/PKCS#12), Yubikeys, GPG keys, passkeys, and other cryptographic signing methods
|
|
1019
|
+
* via JWK, PEM, or Base58 key formats.
|
|
1160
1020
|
*/
|
|
1161
1021
|
export interface Signature {
|
|
1162
1022
|
/**
|
|
@@ -1201,10 +1061,8 @@ export interface Signature {
|
|
|
1201
1061
|
}
|
|
1202
1062
|
|
|
1203
1063
|
/**
|
|
1204
|
-
*
|
|
1205
|
-
*
|
|
1206
|
-
* Verification method containing the public key needed to verify a digital signature.
|
|
1207
|
-
* Supports multiple key formats including JWK (for RSA, EC), PEM, and Base58.
|
|
1064
|
+
* Verification method containing the public key needed to verify a digital signature. Supports
|
|
1065
|
+
* multiple key formats including JWK (for RSA, EC), PEM, and Base58.
|
|
1208
1066
|
*/
|
|
1209
1067
|
export interface VerificationMethod {
|
|
1210
1068
|
/**
|
|
@@ -1246,12 +1104,6 @@ export enum POAMType {
|
|
|
1246
1104
|
|
|
1247
1105
|
/**
|
|
1248
1106
|
* A reference to an external document.
|
|
1249
|
-
*
|
|
1250
|
-
* A reference using the 'ref' field.
|
|
1251
|
-
*
|
|
1252
|
-
* A URL pointing at the reference.
|
|
1253
|
-
*
|
|
1254
|
-
* A URI pointing at the reference.
|
|
1255
1107
|
*/
|
|
1256
1108
|
export interface Reference {
|
|
1257
1109
|
ref?: { [key: string]: any }[] | string;
|
|
@@ -1306,9 +1158,6 @@ export interface RequirementResult {
|
|
|
1306
1158
|
}
|
|
1307
1159
|
|
|
1308
1160
|
/**
|
|
1309
|
-
* Explicit severity rating. Typically derived from impact score but provided explicitly for
|
|
1310
|
-
* clarity.
|
|
1311
|
-
*
|
|
1312
1161
|
* Severity rating for a requirement. Typically derived from the numeric impact score.
|
|
1313
1162
|
*/
|
|
1314
1163
|
export enum Severity {
|
|
@@ -1320,8 +1169,6 @@ export enum Severity {
|
|
|
1320
1169
|
}
|
|
1321
1170
|
|
|
1322
1171
|
/**
|
|
1323
|
-
* The explicit location of the requirement within the source code.
|
|
1324
|
-
*
|
|
1325
1172
|
* The explicit location of a requirement within source code.
|
|
1326
1173
|
*/
|
|
1327
1174
|
export interface SourceLocation {
|
|
@@ -1337,9 +1184,9 @@ export interface SourceLocation {
|
|
|
1337
1184
|
}
|
|
1338
1185
|
|
|
1339
1186
|
/**
|
|
1340
|
-
* An intentional change to a requirement's compliance status and/or impact score. At least
|
|
1341
|
-
*
|
|
1342
|
-
*
|
|
1187
|
+
* An intentional change to a requirement's compliance status and/or impact score. At least one of
|
|
1188
|
+
* status or impact must be set. Overrides change the effectiveStatus or impact of the requirement.
|
|
1189
|
+
* All overrides must have an expiration date to enforce periodic review.
|
|
1343
1190
|
*/
|
|
1344
1191
|
export interface StatusOverride {
|
|
1345
1192
|
/**
|
|
@@ -1408,11 +1255,8 @@ export interface StatusOverride {
|
|
|
1408
1255
|
}
|
|
1409
1256
|
|
|
1410
1257
|
/**
|
|
1411
|
-
*
|
|
1412
|
-
*
|
|
1413
|
-
*
|
|
1414
|
-
* An override to the requirement's impact score. The prior impact is the original result
|
|
1415
|
-
* value or the preceding override in the chain.
|
|
1258
|
+
* An override to the requirement's impact score. The prior impact is the original result value or
|
|
1259
|
+
* the preceding override in the chain.
|
|
1416
1260
|
*/
|
|
1417
1261
|
export interface ImpactOverride {
|
|
1418
1262
|
/**
|
|
@@ -1423,28 +1267,21 @@ export interface ImpactOverride {
|
|
|
1423
1267
|
}
|
|
1424
1268
|
|
|
1425
1269
|
/**
|
|
1426
|
-
* Structured controlled-vocabulary
|
|
1427
|
-
*
|
|
1428
|
-
*
|
|
1429
|
-
*
|
|
1430
|
-
*
|
|
1431
|
-
*
|
|
1432
|
-
*
|
|
1433
|
-
*
|
|
1434
|
-
*
|
|
1435
|
-
*
|
|
1436
|
-
*
|
|
1437
|
-
*
|
|
1438
|
-
*
|
|
1439
|
-
*
|
|
1440
|
-
*
|
|
1441
|
-
* requires_dependency / requires_environment / protected_by_compiler / protected_at_runtime
|
|
1442
|
-
* / protected_at_perimeter) are CycloneDX-specific and describe why the vulnerable code
|
|
1443
|
-
* path is unreachable in the deployed configuration. The enum is extended additively across
|
|
1444
|
-
* schema versions as other ecosystems' controlled vocabularies are integrated; documents
|
|
1445
|
-
* using values added in a newer schema version will fail validation against an older
|
|
1446
|
-
* schema. Consumers SHOULD validate against the schema version declared by the document
|
|
1447
|
-
* ($schema) rather than assume a fixed vocabulary.
|
|
1270
|
+
* Structured controlled-vocabulary reason for an override, complementing the free-text 'reason'
|
|
1271
|
+
* field. 'reason' carries the human-readable rationale an auditor reads; 'justification' carries
|
|
1272
|
+
* the machine-readable category enabling filtering, aggregation, and lossless round-trip with
|
|
1273
|
+
* structured ecosystems (VEX, OSCAL, FedRAMP DR). Both fields may be present simultaneously and are
|
|
1274
|
+
* NOT redundant: 'reason' explains the specific circumstance; 'justification' classifies it.
|
|
1275
|
+
* Authors SHOULD populate both when a controlled-vocabulary value applies — the enum value alone is
|
|
1276
|
+
* not self-explanatory to an auditor. The vocabulary is drawn from the VEX ecosystem: the first
|
|
1277
|
+
* five values are common across OpenVEX, CSAF VEX, and CycloneDX VEX; the remaining six
|
|
1278
|
+
* (requires_configuration / requires_dependency / requires_environment / protected_by_compiler /
|
|
1279
|
+
* protected_at_runtime / protected_at_perimeter) are CycloneDX-specific and describe why the
|
|
1280
|
+
* vulnerable code path is unreachable in the deployed configuration. The enum is extended
|
|
1281
|
+
* additively across schema versions as other ecosystems' controlled vocabularies are integrated;
|
|
1282
|
+
* documents using values added in a newer schema version will fail validation against an older
|
|
1283
|
+
* schema. Consumers SHOULD validate against the schema version declared by the document ($schema)
|
|
1284
|
+
* rather than assume a fixed vocabulary.
|
|
1448
1285
|
*/
|
|
1449
1286
|
export enum Justification {
|
|
1450
1287
|
ComponentNotPresent = "component_not_present",
|
|
@@ -1461,19 +1298,12 @@ export enum Justification {
|
|
|
1461
1298
|
}
|
|
1462
1299
|
|
|
1463
1300
|
/**
|
|
1464
|
-
* How
|
|
1465
|
-
*
|
|
1466
|
-
*
|
|
1467
|
-
*
|
|
1468
|
-
*
|
|
1469
|
-
*
|
|
1470
|
-
*
|
|
1471
|
-
* How a requirement is intended to be verified. Disambiguates the two cases that null
|
|
1472
|
-
* 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable
|
|
1473
|
-
* to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could
|
|
1474
|
-
* exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and
|
|
1475
|
-
* runs without operator action; 'hybrid' = part automated, part manual. Named '_Enum' to
|
|
1476
|
-
* disambiguate from the unrelated Verification_Method DID-context struct.
|
|
1301
|
+
* How a requirement is intended to be verified. Disambiguates the two cases that null 'code'
|
|
1302
|
+
* overloads: 'manual-by-design' (the requirement is statement-form and not amenable to automation,
|
|
1303
|
+
* e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could exist but does not yet,
|
|
1304
|
+
* e.g. a STIG rule lacking a fix). 'automated' = a check exists and runs without operator action;
|
|
1305
|
+
* 'hybrid' = part automated, part manual. Named '_Enum' to disambiguate from the unrelated
|
|
1306
|
+
* Verification_Method DID-context struct.
|
|
1477
1307
|
*/
|
|
1478
1308
|
export enum VerificationMethodEnum {
|
|
1479
1309
|
Automated = "automated",
|
|
@@ -1506,44 +1336,8 @@ export interface SupportedPlatform {
|
|
|
1506
1336
|
}
|
|
1507
1337
|
|
|
1508
1338
|
/**
|
|
1509
|
-
* A system component. Uses discriminated union pattern with 'type' field as discriminator.
|
|
1510
|
-
*
|
|
1511
|
-
*
|
|
1512
|
-
* A physical or virtual server, workstation, or network device.
|
|
1513
|
-
*
|
|
1514
|
-
* Base properties shared by all component types. Extends the Target concept with stable
|
|
1515
|
-
* identity, external references, generalized BOM attachment (boms[]), and unified artifact
|
|
1516
|
-
* integrity (integrity[]).
|
|
1517
|
-
*
|
|
1518
|
-
* A static container image (not running). Image integrity — formerly the 'digest' field —
|
|
1519
|
-
* is expressed via the shared Base_Component.integrity array.
|
|
1520
|
-
*
|
|
1521
|
-
* A running container instance.
|
|
1522
|
-
*
|
|
1523
|
-
* A container orchestration platform (Kubernetes, OpenShift, ECS, etc.).
|
|
1524
|
-
*
|
|
1525
|
-
* A cloud provider account (AWS account, Azure subscription, GCP project).
|
|
1526
|
-
*
|
|
1527
|
-
* A specific cloud resource (EC2 instance, S3 bucket, Azure VM, etc.).
|
|
1528
|
-
*
|
|
1529
|
-
* A code repository (for SAST tools).
|
|
1530
|
-
*
|
|
1531
|
-
* A running application or API (for DAST tools).
|
|
1532
|
-
*
|
|
1533
|
-
* A software artifact or dependency (for SCA tools). Package integrity — formerly the
|
|
1534
|
-
* 'checksum' field — is expressed via the shared Base_Component.integrity array.
|
|
1535
|
-
*
|
|
1536
|
-
* A network segment or network device.
|
|
1537
|
-
*
|
|
1538
|
-
* A database instance.
|
|
1539
|
-
*
|
|
1540
|
-
* A thin AI-model component: identity and correlation only (parallel to Host_Component's
|
|
1541
|
-
* fqdn/ip). All model detail — architecture, parameter count, serialization format, lineage
|
|
1542
|
-
* — lives in an attached ai-model BOM (boms[]), never on the component itself.
|
|
1543
|
-
*
|
|
1544
|
-
* A thin dataset component: identity and correlation only, symmetric with
|
|
1545
|
-
* AI_Model_Component. All dataset detail — record count, format, classification, lineage —
|
|
1546
|
-
* lives in an attached dataset BOM (boms[]), never on the component itself.
|
|
1339
|
+
* A system component. Uses discriminated union pattern with 'type' field as discriminator. Superset
|
|
1340
|
+
* of Target with identity, external IDs, and SBOM support.
|
|
1547
1341
|
*/
|
|
1548
1342
|
export interface Component {
|
|
1549
1343
|
/**
|
|
@@ -1846,12 +1640,10 @@ export interface BillOfMaterials {
|
|
|
1846
1640
|
}
|
|
1847
1641
|
|
|
1848
1642
|
/**
|
|
1849
|
-
* Normalized dataset
|
|
1850
|
-
*
|
|
1851
|
-
*
|
|
1852
|
-
*
|
|
1853
|
-
* AI_Model_Extension: carries the dataset's own lineage (baseDatasetRefs/derivation) just
|
|
1854
|
-
* as the model extension carries baseModelRef/adaptationType.
|
|
1643
|
+
* Normalized dataset fields (SPDX 3.0 Dataset profile / MLCommons Croissant aligned). All optional;
|
|
1644
|
+
* open for partial-fidelity passthrough of unmapped native fields. Symmetric with
|
|
1645
|
+
* AI_Model_Extension: carries the dataset's own lineage (baseDatasetRefs/derivation) just as the
|
|
1646
|
+
* model extension carries baseModelRef/adaptationType.
|
|
1855
1647
|
*/
|
|
1856
1648
|
export interface DatasetBOMExtension {
|
|
1857
1649
|
/**
|
|
@@ -1918,13 +1710,11 @@ export enum DatasetDerivationType {
|
|
|
1918
1710
|
}
|
|
1919
1711
|
|
|
1920
1712
|
/**
|
|
1921
|
-
* Normalized
|
|
1922
|
-
*
|
|
1923
|
-
*
|
|
1924
|
-
*
|
|
1925
|
-
*
|
|
1926
|
-
* native fields opaquely (partial-fidelity pattern). Subject name/version are inherited
|
|
1927
|
-
* from the host aiModel component, not repeated here.
|
|
1713
|
+
* Normalized AI-model fields, aligned to the CISA/G7 'SBOM for AI' minimum elements. All fields
|
|
1714
|
+
* optional (standards-correct; only the EU AI Act makes a subset binding for high-risk/GPAI). Left
|
|
1715
|
+
* open (additionalProperties: true) so a converter can carry unmapped native fields opaquely
|
|
1716
|
+
* (partial-fidelity pattern). Subject name/version are inherited from the host aiModel component,
|
|
1717
|
+
* not repeated here.
|
|
1928
1718
|
*/
|
|
1929
1719
|
export interface AIModelBOMExtension {
|
|
1930
1720
|
/**
|
|
@@ -2064,9 +1854,8 @@ export interface PerformanceMetric {
|
|
|
2064
1854
|
}
|
|
2065
1855
|
|
|
2066
1856
|
/**
|
|
2067
|
-
* A single normalized software package entry within an sbom BOM. Minimal identity + version
|
|
2068
|
-
*
|
|
2069
|
-
* (document/ref).
|
|
1857
|
+
* A single normalized software package entry within an sbom BOM. Minimal identity + version for
|
|
1858
|
+
* querying/diffing; the full native record remains available via passthrough (document/ref).
|
|
2070
1859
|
*/
|
|
2071
1860
|
export interface SBOMPackage {
|
|
2072
1861
|
/**
|
|
@@ -2089,8 +1878,8 @@ export interface SBOMPackage {
|
|
|
2089
1878
|
}
|
|
2090
1879
|
|
|
2091
1880
|
/**
|
|
2092
|
-
* An override of a baseline input value for a specific component. Enables system-specific
|
|
2093
|
-
*
|
|
1881
|
+
* An override of a baseline input value for a specific component. Enables system-specific tailoring
|
|
1882
|
+
* of baseline parameters.
|
|
2094
1883
|
*/
|
|
2095
1884
|
export interface InputOverride {
|
|
2096
1885
|
/**
|
|
@@ -2146,19 +1935,7 @@ export enum TargetType {
|
|
|
2146
1935
|
}
|
|
2147
1936
|
|
|
2148
1937
|
/**
|
|
2149
|
-
* Information about the tool that generated this file.
|
|
2150
|
-
*
|
|
2151
1938
|
* Information about the tool that generated this HDF file.
|
|
2152
|
-
*
|
|
2153
|
-
* The tool that generated this file.
|
|
2154
|
-
*
|
|
2155
|
-
* Information about the tool that generated this comparison.
|
|
2156
|
-
*
|
|
2157
|
-
* Information about the tool that generated this system document.
|
|
2158
|
-
*
|
|
2159
|
-
* Information about the tool that generated this plan.
|
|
2160
|
-
*
|
|
2161
|
-
* Information about the tool that generated this document.
|
|
2162
1939
|
*/
|
|
2163
1940
|
export interface Generator {
|
|
2164
1941
|
/**
|
|
@@ -2173,15 +1950,9 @@ export interface Generator {
|
|
|
2173
1950
|
}
|
|
2174
1951
|
|
|
2175
1952
|
/**
|
|
2176
|
-
*
|
|
2177
|
-
*
|
|
2178
|
-
*
|
|
2179
|
-
* Reference to automated remediation resources for implementing security controls. Points
|
|
2180
|
-
* to external automation content like Ansible playbooks, Terraform scripts, or
|
|
2181
|
-
* vendor-provided remediation tools.
|
|
2182
|
-
*
|
|
2183
|
-
* Optional reference to automated remediation resources (Ansible playbooks, Terraform
|
|
2184
|
-
* scripts, etc.) for implementing the security controls defined in this baseline.
|
|
1953
|
+
* Reference to automated remediation resources for implementing security controls. Points to
|
|
1954
|
+
* external automation content like Ansible playbooks, Terraform scripts, or vendor-provided
|
|
1955
|
+
* remediation tools.
|
|
2185
1956
|
*/
|
|
2186
1957
|
export interface Remediation {
|
|
2187
1958
|
/**
|
|
@@ -2200,12 +1971,8 @@ export interface Remediation {
|
|
|
2200
1971
|
}
|
|
2201
1972
|
|
|
2202
1973
|
/**
|
|
2203
|
-
* Information about the test execution environment
|
|
2204
|
-
*
|
|
2205
|
-
*
|
|
2206
|
-
* Information about the test execution environment. This is distinct from the target being
|
|
2207
|
-
* scanned - the runner is where the security tool executes, while targets are what is being
|
|
2208
|
-
* assessed.
|
|
1974
|
+
* Information about the test execution environment. This is distinct from the target being scanned
|
|
1975
|
+
* - the runner is where the security tool executes, while targets are what is being assessed.
|
|
2209
1976
|
*/
|
|
2210
1977
|
export interface Runner {
|
|
2211
1978
|
/**
|
|
@@ -2257,8 +2024,6 @@ export interface Runner {
|
|
|
2257
2024
|
}
|
|
2258
2025
|
|
|
2259
2026
|
/**
|
|
2260
|
-
* Statistics for the assessment run, including duration and result counts.
|
|
2261
|
-
*
|
|
2262
2027
|
* Statistics for the assessment run(s) such as duration and result counts.
|
|
2263
2028
|
*/
|
|
2264
2029
|
export interface Statistics {
|
|
@@ -2274,8 +2039,6 @@ export interface Statistics {
|
|
|
2274
2039
|
}
|
|
2275
2040
|
|
|
2276
2041
|
/**
|
|
2277
|
-
* Breakdowns of requirement statistics by result status.
|
|
2278
|
-
*
|
|
2279
2042
|
* Statistics for requirement results, grouped by status.
|
|
2280
2043
|
*/
|
|
2281
2044
|
export interface StatisticHash {
|
|
@@ -2303,17 +2066,7 @@ export interface StatisticHash {
|
|
|
2303
2066
|
}
|
|
2304
2067
|
|
|
2305
2068
|
/**
|
|
2306
|
-
* Statistics for requirements that encountered an error during assessment.
|
|
2307
|
-
*
|
|
2308
2069
|
* Statistics for a given item, such as the total count.
|
|
2309
|
-
*
|
|
2310
|
-
* Statistics for requirements that failed.
|
|
2311
|
-
*
|
|
2312
|
-
* Statistics for requirements that are not applicable to the target.
|
|
2313
|
-
*
|
|
2314
|
-
* Statistics for requirements that were not reviewed (manual check required).
|
|
2315
|
-
*
|
|
2316
|
-
* Statistics for requirements that passed.
|
|
2317
2070
|
*/
|
|
2318
2071
|
export interface StatisticBlock {
|
|
2319
2072
|
/**
|
|
@@ -2324,12 +2077,8 @@ export interface StatisticBlock {
|
|
|
2324
2077
|
}
|
|
2325
2078
|
|
|
2326
2079
|
/**
|
|
2327
|
-
* The security tool that produced the assessment data in this file.
|
|
2328
|
-
*
|
|
2329
|
-
* The security tool that produced the assessment data represented in this HDF file. Aligns
|
|
2330
|
-
* with SARIF, OSCAL, and CycloneDX terminology.
|
|
2331
|
-
*
|
|
2332
|
-
* The security tool that produced the assessment data in this source.
|
|
2080
|
+
* The security tool that produced the assessment data represented in this HDF file. Aligns with
|
|
2081
|
+
* SARIF, OSCAL, and CycloneDX terminology.
|
|
2333
2082
|
*/
|
|
2334
2083
|
export interface Tool {
|
|
2335
2084
|
/**
|
|
@@ -2351,11 +2100,8 @@ export interface Tool {
|
|
|
2351
2100
|
}
|
|
2352
2101
|
|
|
2353
2102
|
/**
|
|
2354
|
-
* Information on the set of requirements that can be assessed, including baseline metadata
|
|
2355
|
-
*
|
|
2356
|
-
*
|
|
2357
|
-
* Shared metadata fields for baselines. Used in both standalone baseline documents and
|
|
2358
|
-
* evaluated baseline results.
|
|
2103
|
+
* Information on the set of requirements that can be assessed, including baseline metadata and
|
|
2104
|
+
* requirement definitions.
|
|
2359
2105
|
*/
|
|
2360
2106
|
export interface HDFBaseline {
|
|
2361
2107
|
/**
|
|
@@ -2438,9 +2184,6 @@ export interface HDFBaseline {
|
|
|
2438
2184
|
|
|
2439
2185
|
/**
|
|
2440
2186
|
* A requirement definition without assessment results.
|
|
2441
|
-
*
|
|
2442
|
-
* Core requirement fields shared between baseline requirements and evaluated requirements.
|
|
2443
|
-
* Contains the fundamental requirement definition without assessment results.
|
|
2444
2187
|
*/
|
|
2445
2188
|
export interface BaselineRequirement {
|
|
2446
2189
|
/**
|
|
@@ -2516,8 +2259,8 @@ export interface BaselineRequirement {
|
|
|
2516
2259
|
}
|
|
2517
2260
|
|
|
2518
2261
|
/**
|
|
2519
|
-
* Structured comparison between two or more HDF security assessment documents. Supports
|
|
2520
|
-
*
|
|
2262
|
+
* Structured comparison between two or more HDF security assessment documents. Supports temporal,
|
|
2263
|
+
* baseline, fleet, and multi-source comparison modes.
|
|
2521
2264
|
*/
|
|
2522
2265
|
export interface HDFComparison {
|
|
2523
2266
|
/**
|
|
@@ -2617,8 +2360,6 @@ export interface Annotation {
|
|
|
2617
2360
|
}
|
|
2618
2361
|
|
|
2619
2362
|
/**
|
|
2620
|
-
* The category of this annotation.
|
|
2621
|
-
*
|
|
2622
2363
|
* The category of an annotation attached to a comparison.
|
|
2623
2364
|
*/
|
|
2624
2365
|
export enum AnnotationCategory {
|
|
@@ -2669,13 +2410,11 @@ export enum BaselineDiffState {
|
|
|
2669
2410
|
}
|
|
2670
2411
|
|
|
2671
2412
|
/**
|
|
2672
|
-
* The mode of comparison
|
|
2673
|
-
*
|
|
2674
|
-
*
|
|
2675
|
-
*
|
|
2676
|
-
*
|
|
2677
|
-
* baseline documents to detect requirement changes between versions. 'systemDrift' compares
|
|
2678
|
-
* two system documents to detect component-level changes.
|
|
2413
|
+
* The mode of comparison. 'temporal' compares the same target over time. 'baseline' compares
|
|
2414
|
+
* against a golden reference. 'fleet' compares across multiple systems. 'multiSource' compares
|
|
2415
|
+
* outputs from different scanners. 'baselineEvolution' compares two baseline documents to detect
|
|
2416
|
+
* requirement changes between versions. 'systemDrift' compares two system documents to detect
|
|
2417
|
+
* component-level changes.
|
|
2679
2418
|
*/
|
|
2680
2419
|
export enum ComparisonMode {
|
|
2681
2420
|
Baseline = "baseline",
|
|
@@ -2880,8 +2619,6 @@ export interface ScannerConflict {
|
|
|
2880
2619
|
}
|
|
2881
2620
|
|
|
2882
2621
|
/**
|
|
2883
|
-
* How the conflict was resolved.
|
|
2884
|
-
*
|
|
2885
2622
|
* How a conflict between multiple scanner results was resolved.
|
|
2886
2623
|
*/
|
|
2887
2624
|
export enum ConflictResolution {
|
|
@@ -2908,13 +2645,9 @@ export interface Value {
|
|
|
2908
2645
|
}
|
|
2909
2646
|
|
|
2910
2647
|
/**
|
|
2911
|
-
* The strategy
|
|
2912
|
-
*
|
|
2913
|
-
*
|
|
2914
|
-
* IDs. 'mappedId' uses an ID mapping table. 'cciMatch'/'nistMatch' match by framework
|
|
2915
|
-
* identifiers. 'fuzzyTitle'/'fuzzyContent' use text similarity.
|
|
2916
|
-
*
|
|
2917
|
-
* The primary strategy used to match requirements across sources.
|
|
2648
|
+
* The strategy used to match requirements across sources. 'exactId' matches by identical IDs.
|
|
2649
|
+
* 'mappedId' uses an ID mapping table. 'cciMatch'/'nistMatch' match by framework identifiers.
|
|
2650
|
+
* 'fuzzyTitle'/'fuzzyContent' use text similarity.
|
|
2918
2651
|
*/
|
|
2919
2652
|
export enum MatchStrategy {
|
|
2920
2653
|
CciMatch = "cciMatch",
|
|
@@ -2926,12 +2659,10 @@ export enum MatchStrategy {
|
|
|
2926
2659
|
}
|
|
2927
2660
|
|
|
2928
2661
|
/**
|
|
2929
|
-
*
|
|
2930
|
-
*
|
|
2931
|
-
*
|
|
2932
|
-
*
|
|
2933
|
-
* changed (generic), 'fixed' = was failing now passing, 'regressed' = was passing now
|
|
2934
|
-
* failing, 'moved' = reorganized same content, 'split'/'merged' = reserved for v1.1.
|
|
2662
|
+
* SARIF-compatible vocabulary extended for security. 'new' = present only in new source, 'absent' =
|
|
2663
|
+
* present only in old, 'unchanged' = same effective status, 'updated' = status changed (generic),
|
|
2664
|
+
* 'fixed' = was failing now passing, 'regressed' = was passing now failing, 'moved' = reorganized
|
|
2665
|
+
* same content, 'split'/'merged' = reserved for v1.1.
|
|
2935
2666
|
*/
|
|
2936
2667
|
export enum RequirementState {
|
|
2937
2668
|
Absent = "absent",
|
|
@@ -2950,8 +2681,6 @@ export enum FormatVersion {
|
|
|
2950
2681
|
}
|
|
2951
2682
|
|
|
2952
2683
|
/**
|
|
2953
|
-
* Configuration for how requirements were matched across sources.
|
|
2954
|
-
*
|
|
2955
2684
|
* Configuration for how requirements are matched across sources.
|
|
2956
2685
|
*/
|
|
2957
2686
|
export interface MatchingConfig {
|
|
@@ -3100,8 +2829,6 @@ export enum OriginalFormat {
|
|
|
3100
2829
|
}
|
|
3101
2830
|
|
|
3102
2831
|
/**
|
|
3103
|
-
* The role of this source in the comparison.
|
|
3104
|
-
*
|
|
3105
2832
|
* The role of a source document in the comparison.
|
|
3106
2833
|
*/
|
|
3107
2834
|
export enum SourceRole {
|
|
@@ -3188,8 +2915,6 @@ export interface ComparisonSummary {
|
|
|
3188
2915
|
}
|
|
3189
2916
|
|
|
3190
2917
|
/**
|
|
3191
|
-
* State counts broken down by severity level.
|
|
3192
|
-
*
|
|
3193
2918
|
* Breakdown of state counts by severity level.
|
|
3194
2919
|
*/
|
|
3195
2920
|
export interface SeverityBreakdown {
|
|
@@ -3213,15 +2938,7 @@ export interface SeverityBreakdown {
|
|
|
3213
2938
|
}
|
|
3214
2939
|
|
|
3215
2940
|
/**
|
|
3216
|
-
* State counts for critical severity requirements.
|
|
3217
|
-
*
|
|
3218
2941
|
* Counts of requirements in each state.
|
|
3219
|
-
*
|
|
3220
|
-
* State counts for high severity requirements.
|
|
3221
|
-
*
|
|
3222
|
-
* State counts for low severity requirements.
|
|
3223
|
-
*
|
|
3224
|
-
* State counts for medium severity requirements.
|
|
3225
2942
|
*/
|
|
3226
2943
|
export interface StateCounts {
|
|
3227
2944
|
/**
|
|
@@ -3299,8 +3016,8 @@ export interface PerSourceSummary {
|
|
|
3299
3016
|
}
|
|
3300
3017
|
|
|
3301
3018
|
/**
|
|
3302
|
-
* Describes a system's authorization boundary, components, and interconnections. Maps to
|
|
3303
|
-
*
|
|
3019
|
+
* Describes a system's authorization boundary, components, and interconnections. Maps to OSCAL SSP
|
|
3020
|
+
* system-characteristics and FedRAMP system inventory.
|
|
3304
3021
|
*/
|
|
3305
3022
|
export interface HDFSystem {
|
|
3306
3023
|
/**
|
|
@@ -3393,8 +3110,6 @@ export interface HDFSystem {
|
|
|
3393
3110
|
}
|
|
3394
3111
|
|
|
3395
3112
|
/**
|
|
3396
|
-
* Current Authorization to Operate (ATO) status.
|
|
3397
|
-
*
|
|
3398
3113
|
* Authorization to Operate (ATO) status for the system.
|
|
3399
3114
|
*/
|
|
3400
3115
|
export enum AuthorizationStatus {
|
|
@@ -3407,8 +3122,6 @@ export enum AuthorizationStatus {
|
|
|
3407
3122
|
}
|
|
3408
3123
|
|
|
3409
3124
|
/**
|
|
3410
|
-
* FIPS 199 security categorization (impact level).
|
|
3411
|
-
*
|
|
3412
3125
|
* FIPS 199 security categorization level (impact level).
|
|
3413
3126
|
*/
|
|
3414
3127
|
export enum CategorizationLevel {
|
|
@@ -3418,10 +3131,10 @@ export enum CategorizationLevel {
|
|
|
3418
3131
|
}
|
|
3419
3132
|
|
|
3420
3133
|
/**
|
|
3421
|
-
* Declares a control's designation within a system — whether it is common (provided by
|
|
3422
|
-
*
|
|
3423
|
-
*
|
|
3424
|
-
*
|
|
3134
|
+
* Declares a control's designation within a system — whether it is common (provided by another
|
|
3135
|
+
* component or system), system-specific (implemented locally), or hybrid (shared responsibility).
|
|
3136
|
+
* Maps to NIST SP 800-53 Appendix C control designations and OSCAL SSP by-component
|
|
3137
|
+
* provided/inherited semantics.
|
|
3425
3138
|
*/
|
|
3426
3139
|
export interface ControlDesignation {
|
|
3427
3140
|
/**
|
|
@@ -3470,9 +3183,9 @@ export enum Designation {
|
|
|
3470
3183
|
}
|
|
3471
3184
|
|
|
3472
3185
|
/**
|
|
3473
|
-
* A data flow between two endpoints. The 'from' endpoint is always a local component; the
|
|
3474
|
-
*
|
|
3475
|
-
*
|
|
3186
|
+
* A data flow between two endpoints. The 'from' endpoint is always a local component; the 'to'
|
|
3187
|
+
* endpoint can be local, cross-system, or external. Use 'direction' to indicate whether data flows
|
|
3188
|
+
* one-way or both ways.
|
|
3476
3189
|
*/
|
|
3477
3190
|
export interface DataFlow {
|
|
3478
3191
|
/**
|
|
@@ -3521,8 +3234,8 @@ export enum Direction {
|
|
|
3521
3234
|
}
|
|
3522
3235
|
|
|
3523
3236
|
/**
|
|
3524
|
-
* Defines an assessment plan — what baselines to run against which targets, with resolved
|
|
3525
|
-
*
|
|
3237
|
+
* Defines an assessment plan — what baselines to run against which targets, with resolved inputs
|
|
3238
|
+
* and scheduling. Maps to OSCAL Assessment Plan.
|
|
3526
3239
|
*/
|
|
3527
3240
|
export interface HDFPlan {
|
|
3528
3241
|
/**
|
|
@@ -3576,8 +3289,8 @@ export interface HDFPlan {
|
|
|
3576
3289
|
}
|
|
3577
3290
|
|
|
3578
3291
|
/**
|
|
3579
|
-
* A single assessment within a plan — defines which baseline to run against which targets
|
|
3580
|
-
*
|
|
3292
|
+
* A single assessment within a plan — defines which baseline to run against which targets with what
|
|
3293
|
+
* configuration.
|
|
3581
3294
|
*/
|
|
3582
3295
|
export interface Assessment {
|
|
3583
3296
|
/**
|
|
@@ -3613,8 +3326,6 @@ export interface Assessment {
|
|
|
3613
3326
|
}
|
|
3614
3327
|
|
|
3615
3328
|
/**
|
|
3616
|
-
* Runner/scanner configuration for this assessment.
|
|
3617
|
-
*
|
|
3618
3329
|
* Configuration for the assessment runner/scanner.
|
|
3619
3330
|
*/
|
|
3620
3331
|
export interface RunnerConfig {
|
|
@@ -3630,8 +3341,6 @@ export interface RunnerConfig {
|
|
|
3630
3341
|
}
|
|
3631
3342
|
|
|
3632
3343
|
/**
|
|
3633
|
-
* Optional scheduling configuration for recurring assessments.
|
|
3634
|
-
*
|
|
3635
3344
|
* Scheduling configuration for recurring assessments.
|
|
3636
3345
|
*/
|
|
3637
3346
|
export interface Schedule {
|
|
@@ -3660,10 +3369,8 @@ export interface Schedule {
|
|
|
3660
3369
|
}
|
|
3661
3370
|
|
|
3662
3371
|
/**
|
|
3663
|
-
* The type of assessment
|
|
3664
|
-
*
|
|
3665
|
-
* The type of assessment. 'automated' for scanner-driven, 'manual' for human-performed,
|
|
3666
|
-
* 'hybrid' for both.
|
|
3372
|
+
* The type of assessment. 'automated' for scanner-driven, 'manual' for human-performed, 'hybrid'
|
|
3373
|
+
* for both.
|
|
3667
3374
|
*/
|
|
3668
3375
|
export enum PlanType {
|
|
3669
3376
|
Automated = "automated",
|
|
@@ -3672,8 +3379,8 @@ export enum PlanType {
|
|
|
3672
3379
|
}
|
|
3673
3380
|
|
|
3674
3381
|
/**
|
|
3675
|
-
* Waivers, attestations, and POA&Ms that modify requirement compliance status or impact.
|
|
3676
|
-
*
|
|
3382
|
+
* Waivers, attestations, and POA&Ms that modify requirement compliance status or impact. Amendments
|
|
3383
|
+
* are standalone documents that can be applied to results via merge operations.
|
|
3677
3384
|
*/
|
|
3678
3385
|
export interface HDFAmendments {
|
|
3679
3386
|
/**
|
|
@@ -3731,18 +3438,18 @@ export interface HDFAmendments {
|
|
|
3731
3438
|
}
|
|
3732
3439
|
|
|
3733
3440
|
/**
|
|
3734
|
-
* A standalone override to a requirement's compliance status or risk impact. Validation has
|
|
3735
|
-
*
|
|
3736
|
-
*
|
|
3737
|
-
* (documentation-only). For all other types, at least one of 'status' or 'impact' must be
|
|
3738
|
-
*
|
|
3441
|
+
* A standalone override to a requirement's compliance status or risk impact. Validation has two
|
|
3442
|
+
* branches gated on 'type': when type is 'operationalRequirement', neither 'status' nor 'impact'
|
|
3443
|
+
* may be set — the override records accepted risk without changing the finding
|
|
3444
|
+
* (documentation-only). For all other types, at least one of 'status' or 'impact' must be set. This
|
|
3445
|
+
* rule aligns with: (1) OSCAL Assessment Results — finding.target.status and
|
|
3739
3446
|
* finding.associated-risk[].facet[] are separate axes
|
|
3740
|
-
* (https://pages.nist.gov/OSCAL/learn/concepts/layer/assessment/assessment-results/); (2)
|
|
3741
|
-
*
|
|
3742
|
-
*
|
|
3743
|
-
* (https://www.ignyteplatform.com/blog/fedramp/fedramp-deviation-requests-submit/); (3)
|
|
3744
|
-
*
|
|
3745
|
-
*
|
|
3447
|
+
* (https://pages.nist.gov/OSCAL/learn/concepts/layer/assessment/assessment-results/); (2) FedRAMP
|
|
3448
|
+
* deviation request types — Risk Adjustment changes impact only, Operational Requirement documents
|
|
3449
|
+
* acceptance only, False Positive changes status
|
|
3450
|
+
* (https://www.ignyteplatform.com/blog/fedramp/fedramp-deviation-requests-submit/); (3) NIST SP
|
|
3451
|
+
* 800-37 RMF — risk response (accept/mitigate/transfer) is a separate step from control assessment
|
|
3452
|
+
* status (https://csrc.nist.gov/pubs/sp/800/37/r2/final).
|
|
3746
3453
|
*/
|
|
3747
3454
|
export interface StandaloneOverride {
|
|
3748
3455
|
/**
|
|
@@ -3840,9 +3547,8 @@ export interface StandaloneOverride {
|
|
|
3840
3547
|
}
|
|
3841
3548
|
|
|
3842
3549
|
/**
|
|
3843
|
-
* Bundles references to all HDF documents for audit, authorization, and compliance review.
|
|
3844
|
-
*
|
|
3845
|
-
* verification.
|
|
3550
|
+
* Bundles references to all HDF documents for audit, authorization, and compliance review. Each
|
|
3551
|
+
* content entry references a document by type, URI, and checksum for integrity verification.
|
|
3846
3552
|
*/
|
|
3847
3553
|
export interface HDFEvidencePackage {
|
|
3848
3554
|
/**
|
|
@@ -3917,10 +3623,8 @@ export interface HDFEvidencePackage {
|
|
|
3917
3623
|
}
|
|
3918
3624
|
|
|
3919
3625
|
/**
|
|
3920
|
-
*
|
|
3921
|
-
*
|
|
3922
|
-
* Informational summary of assessment completeness. Not authoritative — tools should
|
|
3923
|
-
* compute these from the referenced documents.
|
|
3626
|
+
* Informational summary of assessment completeness. Not authoritative — tools should compute these
|
|
3627
|
+
* from the referenced documents.
|
|
3924
3628
|
*/
|
|
3925
3629
|
export interface CompletenessCheck {
|
|
3926
3630
|
/**
|
|
@@ -3951,8 +3655,6 @@ export interface CompletenessCheck {
|
|
|
3951
3655
|
}
|
|
3952
3656
|
|
|
3953
3657
|
/**
|
|
3954
|
-
* SBOM coverage across system components.
|
|
3955
|
-
*
|
|
3956
3658
|
* SBOM coverage statistics for the system.
|
|
3957
3659
|
*/
|
|
3958
3660
|
export interface SBOMCoverage {
|
|
@@ -3996,12 +3698,10 @@ export interface ContentReference {
|
|
|
3996
3698
|
}
|
|
3997
3699
|
|
|
3998
3700
|
/**
|
|
3999
|
-
* The type of HDF document being referenced.
|
|
4000
|
-
*
|
|
4001
3701
|
* The type of document referenced in the evidence package. 'bom' covers any
|
|
4002
|
-
* Bill-of-Materials/manifest document (SBOM, AI model/dataset, and reserved future kinds) —
|
|
4003
|
-
*
|
|
4004
|
-
*
|
|
3702
|
+
* Bill-of-Materials/manifest document (SBOM, AI model/dataset, and reserved future kinds) — its
|
|
3703
|
+
* specific kind is carried by the referenced document's bomType, not by a per-kind Content_Type
|
|
3704
|
+
* value.
|
|
4005
3705
|
*/
|
|
4006
3706
|
export enum ContentType {
|
|
4007
3707
|
BOM = "bom",
|
|
@@ -4014,10 +3714,10 @@ export enum ContentType {
|
|
|
4014
3714
|
}
|
|
4015
3715
|
|
|
4016
3716
|
/**
|
|
4017
|
-
* A reference to external native-format evidence (log/telemetry corpus or other artifact)
|
|
4018
|
-
*
|
|
4019
|
-
*
|
|
4020
|
-
*
|
|
3717
|
+
* A reference to external native-format evidence (log/telemetry corpus or other artifact) carried
|
|
3718
|
+
* by URI + integrity hash + format discriminator. Reference-only: the artifact is never embedded
|
|
3719
|
+
* (corpora can be huge) or transcoded (that would be lossy) — it stays canonical in its native
|
|
3720
|
+
* format and HDF acts as the structured index.
|
|
4021
3721
|
*/
|
|
4022
3722
|
export interface ExternalEvidenceReference {
|
|
4023
3723
|
/**
|
|
@@ -4057,10 +3757,7 @@ export interface ExternalEvidenceReference {
|
|
|
4057
3757
|
}
|
|
4058
3758
|
|
|
4059
3759
|
/**
|
|
4060
|
-
*
|
|
4061
|
-
*
|
|
4062
|
-
* Descriptive metadata about a referenced external evidence corpus. Does not affect
|
|
4063
|
-
* integrity.
|
|
3760
|
+
* Descriptive metadata about a referenced external evidence corpus. Does not affect integrity.
|
|
4064
3761
|
*/
|
|
4065
3762
|
export interface ExternalEvidenceMetadata {
|
|
4066
3763
|
/**
|
|
@@ -4080,8 +3777,6 @@ export interface ExternalEvidenceMetadata {
|
|
|
4080
3777
|
}
|
|
4081
3778
|
|
|
4082
3779
|
/**
|
|
4083
|
-
* The time window the referenced evidence covers.
|
|
4084
|
-
*
|
|
4085
3780
|
* The time window a referenced external evidence corpus covers.
|
|
4086
3781
|
*/
|
|
4087
3782
|
export interface ExternalEvidenceTimeRange {
|