@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/go/hdf.go
CHANGED
|
@@ -138,9 +138,6 @@ type HDFResults struct {
|
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
// Information on a baseline that was evaluated, including any findings.
|
|
141
|
-
//
|
|
142
|
-
// Shared metadata fields for baselines. Used in both standalone baseline documents and
|
|
143
|
-
// evaluated baseline results.
|
|
144
141
|
type EvaluatedBaseline struct {
|
|
145
142
|
// The set of dependencies this baseline depends on.
|
|
146
143
|
Depends []Dependency `json:"depends,omitempty"`
|
|
@@ -197,8 +194,7 @@ type EvaluatedBaseline struct {
|
|
|
197
194
|
Version *string `json:"version,omitempty"`
|
|
198
195
|
}
|
|
199
196
|
|
|
200
|
-
// A dependency for a baseline. Can include relative paths or URLs for where to find the
|
|
201
|
-
// dependency.
|
|
197
|
+
// A dependency for a baseline. Can include relative paths or URLs for where to find the dependency.
|
|
202
198
|
type Dependency struct {
|
|
203
199
|
// The branch name for a git repo.
|
|
204
200
|
Branch *string `json:"branch,omitempty"`
|
|
@@ -232,9 +228,9 @@ type RequirementGroup struct {
|
|
|
232
228
|
Title *string `json:"title,omitempty"`
|
|
233
229
|
}
|
|
234
230
|
|
|
235
|
-
// A typed input parameter that bridges governance requirements and scanner automation.
|
|
236
|
-
//
|
|
237
|
-
//
|
|
231
|
+
// A typed input parameter that bridges governance requirements and scanner automation. Inputs carry
|
|
232
|
+
// expected configuration values with type information, comparison operators, and validation
|
|
233
|
+
// constraints, enabling traceability from policy through to scan results.
|
|
238
234
|
type Input struct {
|
|
239
235
|
// Validation constraints for the input value.
|
|
240
236
|
Constraints *InputConstraints `json:"constraints,omitempty"`
|
|
@@ -256,8 +252,6 @@ type Input struct {
|
|
|
256
252
|
Value interface{} `json:"value,omitempty"`
|
|
257
253
|
}
|
|
258
254
|
|
|
259
|
-
// Validation constraints for the input value.
|
|
260
|
-
//
|
|
261
255
|
// Validation constraints for an input value.
|
|
262
256
|
type InputConstraints struct {
|
|
263
257
|
// Enumeration of permitted values.
|
|
@@ -270,27 +264,8 @@ type InputConstraints struct {
|
|
|
270
264
|
Pattern *string `json:"pattern,omitempty"`
|
|
271
265
|
}
|
|
272
266
|
|
|
273
|
-
// Cryptographic integrity information for verifying
|
|
274
|
-
//
|
|
275
|
-
//
|
|
276
|
-
// Cryptographic integrity information for verifying the HDF file has not been tampered
|
|
277
|
-
// with. If algorithm is provided, checksum must also be provided, and vice versa.
|
|
278
|
-
//
|
|
279
|
-
// Cryptographic integrity information for verifying this file.
|
|
280
|
-
//
|
|
281
|
-
// Cryptographic integrity information for verifying this comparison document.
|
|
282
|
-
//
|
|
283
|
-
// Cryptographic integrity information for verifying this system document has not been
|
|
284
|
-
// tampered with.
|
|
285
|
-
//
|
|
286
|
-
// Cryptographic integrity information for verifying this plan document has not been
|
|
287
|
-
// tampered with.
|
|
288
|
-
//
|
|
289
|
-
// Cryptographic integrity information for verifying this amendments document has not been
|
|
290
|
-
// tampered with.
|
|
291
|
-
//
|
|
292
|
-
// Cryptographic integrity information for verifying this evidence package has not been
|
|
293
|
-
// tampered with.
|
|
267
|
+
// Cryptographic integrity information for verifying the HDF file has not been tampered with. If
|
|
268
|
+
// algorithm is provided, checksum must also be provided, and vice versa.
|
|
294
269
|
type Integrity struct {
|
|
295
270
|
// The hash algorithm used for the checksum.
|
|
296
271
|
Algorithm *HashAlgorithm `json:"algorithm,omitempty"`
|
|
@@ -302,32 +277,7 @@ type Integrity struct {
|
|
|
302
277
|
SignedBy *string `json:"signedBy,omitempty"`
|
|
303
278
|
}
|
|
304
279
|
|
|
305
|
-
// SHA-256 checksum of the original baseline definition file (before execution). This is an
|
|
306
|
-
// immutable reference to the baseline as defined, used to detect tampering with baseline
|
|
307
|
-
// requirements or metadata.
|
|
308
|
-
//
|
|
309
280
|
// Cryptographic checksum for baseline integrity verification.
|
|
310
|
-
//
|
|
311
|
-
// SHA-256 checksum of the previous amendment in chronological order. Creates a
|
|
312
|
-
// tamper-evident chain of amendments (similar to blockchain). Null for the first amendment
|
|
313
|
-
// on a requirement.
|
|
314
|
-
//
|
|
315
|
-
// SHA-256 checksum of the raw results before any amendments (statusOverrides or POAMs).
|
|
316
|
-
// Used to detect tampering with test results. Compare with currentChecksum to verify
|
|
317
|
-
// amendment integrity.
|
|
318
|
-
//
|
|
319
|
-
// Optional cryptographic checksum for verifying the integrity of remediation resources
|
|
320
|
-
// fetched from the URI. Recommended for security when referencing external automation
|
|
321
|
-
// scripts.
|
|
322
|
-
//
|
|
323
|
-
// Cryptographic checksum of the source document for integrity verification.
|
|
324
|
-
//
|
|
325
|
-
// Checksum of the prior amendment in the chain. Creates a tamper-evident linked list. Null
|
|
326
|
-
// for the first amendment.
|
|
327
|
-
//
|
|
328
|
-
// Cryptographic checksum for verifying the referenced document's integrity.
|
|
329
|
-
//
|
|
330
|
-
// Cryptographic checksum of the referenced artifact for integrity verification.
|
|
331
281
|
type Checksum struct {
|
|
332
282
|
// The hash algorithm used for the checksum.
|
|
333
283
|
Algorithm HashAlgorithm `json:"algorithm"`
|
|
@@ -336,9 +286,6 @@ type Checksum struct {
|
|
|
336
286
|
}
|
|
337
287
|
|
|
338
288
|
// A requirement that has been evaluated, including any findings.
|
|
339
|
-
//
|
|
340
|
-
// Core requirement fields shared between baseline requirements and evaluated requirements.
|
|
341
|
-
// Contains the fundamental requirement definition without assessment results.
|
|
342
289
|
type EvaluatedRequirement struct {
|
|
343
290
|
// Packages affected by this vulnerability finding. Vulnerability-finding-scoped — see
|
|
344
291
|
// components[] on hdf-system for component-level package inventories. One entry per matched
|
|
@@ -435,14 +382,13 @@ type EvaluatedRequirement struct {
|
|
|
435
382
|
}
|
|
436
383
|
|
|
437
384
|
// Represents a package referenced by a vulnerability finding or by an amendment's scope. On
|
|
438
|
-
// Evaluated_Requirement.affectedPackages it says 'this CVE affects these package versions'.
|
|
439
|
-
//
|
|
440
|
-
//
|
|
441
|
-
//
|
|
442
|
-
//
|
|
443
|
-
//
|
|
444
|
-
//
|
|
445
|
-
// sources without formal identifiers.
|
|
385
|
+
// Evaluated_Requirement.affectedPackages it says 'this CVE affects these package versions'. On
|
|
386
|
+
// Standalone_Override.affectedPackages it says 'this amendment is scoped to these packages' (used
|
|
387
|
+
// by VEX, OSCAL POA&M, FedRAMP component-aware amendments). NOT a system-level component identifier
|
|
388
|
+
// — see `components[]` on hdf-system for those. Validity requires at least one of: (name + version
|
|
389
|
+
// + ecosystem), purl alone, or cpe alone. purl and cpe are self-describing identifiers that encode
|
|
390
|
+
// name/version implicitly, so either may stand on its own; the name+version+ecosystem combination
|
|
391
|
+
// is the explicit form for sources without formal identifiers.
|
|
446
392
|
type AffectedPackage struct {
|
|
447
393
|
// Optional CPE 2.3 URI identifying the affected product. Validated leniently: only the
|
|
448
394
|
// 'cpe:2.3:' prefix and the part-type letter ('a' application, 'h' hardware, 'o' operating
|
|
@@ -471,16 +417,12 @@ type AffectedPackage struct {
|
|
|
471
417
|
Version *string `json:"version,omitempty"`
|
|
472
418
|
}
|
|
473
419
|
|
|
474
|
-
//
|
|
475
|
-
//
|
|
476
|
-
//
|
|
477
|
-
//
|
|
478
|
-
//
|
|
479
|
-
//
|
|
480
|
-
// Environmental, and Supplemental metric groups. Supports all four CVSS major versions
|
|
481
|
-
// (2.0, 3.0, 3.1, 4.0). Vector strings are validated against a permissive umbrella grammar;
|
|
482
|
-
// semantic validation (correct metrics per version, correct values per metric) is performed
|
|
483
|
-
// by the hdf-utilities `validateCvssVector` helper rather than at the schema layer.
|
|
420
|
+
// A CVSS (Common Vulnerability Scoring System) score record for a vulnerability finding. Captures
|
|
421
|
+
// the vendor-supplied Base metric group and optional consumer-supplied Threat, Environmental, and
|
|
422
|
+
// Supplemental metric groups. Supports all four CVSS major versions (2.0, 3.0, 3.1, 4.0). Vector
|
|
423
|
+
// strings are validated against a permissive umbrella grammar; semantic validation (correct metrics
|
|
424
|
+
// per version, correct values per metric) is performed by the hdf-utilities `validateCvssVector`
|
|
425
|
+
// helper rather than at the schema layer.
|
|
484
426
|
type Cvss struct {
|
|
485
427
|
// The Base score (0.0–10.0) computed from the base vector. Reflects the intrinsic,
|
|
486
428
|
// vendor-published severity before consumer enrichment.
|
|
@@ -534,13 +476,9 @@ type Description struct {
|
|
|
534
476
|
Label string `json:"label"`
|
|
535
477
|
}
|
|
536
478
|
|
|
537
|
-
// FIRST.org
|
|
538
|
-
//
|
|
539
|
-
//
|
|
540
|
-
//
|
|
541
|
-
// FIRST.org Exploit Prediction Scoring System (EPSS) data for a single vulnerability. All
|
|
542
|
-
// three fields are required when an Epss object is present; the date disambiguates which
|
|
543
|
-
// day's score this is, since EPSS recomputes daily.
|
|
479
|
+
// FIRST.org Exploit Prediction Scoring System (EPSS) data for a single vulnerability. All three
|
|
480
|
+
// fields are required when an Epss object is present; the date disambiguates which day's score this
|
|
481
|
+
// is, since EPSS recomputes daily.
|
|
544
482
|
type Epss struct {
|
|
545
483
|
// ISO 8601 date (YYYY-MM-DD) on which FIRST.org published this EPSS score.
|
|
546
484
|
Date string `json:"date"`
|
|
@@ -554,8 +492,8 @@ type Epss struct {
|
|
|
554
492
|
Score float64 `json:"score"`
|
|
555
493
|
}
|
|
556
494
|
|
|
557
|
-
// Supporting evidence for a finding or override, such as screenshots, code samples, log
|
|
558
|
-
//
|
|
495
|
+
// Supporting evidence for a finding or override, such as screenshots, code samples, log excerpts,
|
|
496
|
+
// or URLs.
|
|
559
497
|
type Evidence struct {
|
|
560
498
|
// Timestamp when this evidence was captured. ISO 8601 format.
|
|
561
499
|
CapturedAt *time.Time `json:"capturedAt,omitempty"`
|
|
@@ -576,41 +514,8 @@ type Evidence struct {
|
|
|
576
514
|
Type EvidenceType `json:"type"`
|
|
577
515
|
}
|
|
578
516
|
|
|
579
|
-
//
|
|
580
|
-
//
|
|
581
|
-
// Represents an identity that performed an action, such as capturing evidence or applying
|
|
582
|
-
// an override.
|
|
583
|
-
//
|
|
584
|
-
// Identity of who created this POA&M. For simple cases, use type 'simple' with just an
|
|
585
|
-
// identifier.
|
|
586
|
-
//
|
|
587
|
-
// Identity of who completed this milestone.
|
|
588
|
-
//
|
|
589
|
-
// The identity that created this signature.
|
|
590
|
-
//
|
|
591
|
-
// Identity of who applied this override. For simple cases, use type 'simple' with just an
|
|
592
|
-
// identifier.
|
|
593
|
-
//
|
|
594
|
-
// Identity of the person or system that approved this override.
|
|
595
|
-
//
|
|
596
|
-
// Team or individual responsible for this component. Enables per-component ownership when
|
|
597
|
-
// different teams manage different parts of a system.
|
|
598
|
-
//
|
|
599
|
-
// The identity of the person or system responsible for executing the test. This could be a
|
|
600
|
-
// human auditor manually completing a checklist, an automated CI/CD system, or a security
|
|
601
|
-
// tool. Optional field to support both automated and manual HDF generation.
|
|
602
|
-
//
|
|
603
|
-
// Team or individual responsible for this system's authorization and compliance. Maps to
|
|
604
|
-
// OSCAL responsible-party with role 'system-owner'.
|
|
605
|
-
//
|
|
606
|
-
// Default identity of who created this amendments document. Individual overrides may
|
|
607
|
-
// specify their own appliedBy.
|
|
608
|
-
//
|
|
609
|
-
// Identity of the authorizing official who approved these amendments.
|
|
610
|
-
//
|
|
611
|
-
// Identity of who applied this amendment.
|
|
612
|
-
//
|
|
613
|
-
// Identity of who prepared this evidence package.
|
|
517
|
+
// Represents an identity that performed an action, such as capturing evidence or applying an
|
|
518
|
+
// override.
|
|
614
519
|
type Identity struct {
|
|
615
520
|
// Optional description of the identity or identity system, particularly useful when type is
|
|
616
521
|
// 'other'.
|
|
@@ -688,21 +593,9 @@ type Milestone struct {
|
|
|
688
593
|
Status MilestoneStatus `json:"status"`
|
|
689
594
|
}
|
|
690
595
|
|
|
691
|
-
//
|
|
692
|
-
//
|
|
693
|
-
//
|
|
694
|
-
// security tokens (PKCS#11/PKCS#12), Yubikeys, GPG keys, passkeys, and other cryptographic
|
|
695
|
-
// signing methods via JWK, PEM, or Base58 key formats.
|
|
696
|
-
//
|
|
697
|
-
// Optional digital signature for enhanced trust and non-repudiation. Supports hardware
|
|
698
|
-
// security tokens (PKCS#11/PKCS#12), Yubikeys, GPG keys, passkeys, and other signing
|
|
699
|
-
// methods.
|
|
700
|
-
//
|
|
701
|
-
// Digital signature for non-repudiation.
|
|
702
|
-
//
|
|
703
|
-
// Document-level digital signature covering all amendments.
|
|
704
|
-
//
|
|
705
|
-
// Digital signature covering the entire evidence package.
|
|
596
|
+
// A digital signature following W3C Data Integrity Proofs pattern. Supports hardware security
|
|
597
|
+
// tokens (PKCS#11/PKCS#12), Yubikeys, GPG keys, passkeys, and other cryptographic signing methods
|
|
598
|
+
// via JWK, PEM, or Base58 key formats.
|
|
706
599
|
type Signature struct {
|
|
707
600
|
// Challenge value from the verifier, used in challenge-response authentication.
|
|
708
601
|
Challenge *string `json:"challenge,omitempty"`
|
|
@@ -726,10 +619,8 @@ type Signature struct {
|
|
|
726
619
|
VerificationMethod VerificationMethod `json:"verificationMethod"`
|
|
727
620
|
}
|
|
728
621
|
|
|
729
|
-
//
|
|
730
|
-
//
|
|
731
|
-
// Verification method containing the public key needed to verify a digital signature.
|
|
732
|
-
// Supports multiple key formats including JWK (for RSA, EC), PEM, and Base58.
|
|
622
|
+
// Verification method containing the public key needed to verify a digital signature. Supports
|
|
623
|
+
// multiple key formats including JWK (for RSA, EC), PEM, and Base58.
|
|
733
624
|
type VerificationMethod struct {
|
|
734
625
|
// The entity that controls this verification method. Can be a DID, URI, or other identifier.
|
|
735
626
|
Controller string `json:"controller"`
|
|
@@ -746,12 +637,6 @@ type VerificationMethod struct {
|
|
|
746
637
|
}
|
|
747
638
|
|
|
748
639
|
// A reference to an external document.
|
|
749
|
-
//
|
|
750
|
-
// A reference using the 'ref' field.
|
|
751
|
-
//
|
|
752
|
-
// A URL pointing at the reference.
|
|
753
|
-
//
|
|
754
|
-
// A URI pointing at the reference.
|
|
755
640
|
type Reference struct {
|
|
756
641
|
Ref *Ref `json:"ref,omitempty"`
|
|
757
642
|
URL *string `json:"url,omitempty"`
|
|
@@ -782,8 +667,6 @@ type RequirementResult struct {
|
|
|
782
667
|
Status ResultStatus `json:"status"`
|
|
783
668
|
}
|
|
784
669
|
|
|
785
|
-
// The explicit location of the requirement within the source code.
|
|
786
|
-
//
|
|
787
670
|
// The explicit location of a requirement within source code.
|
|
788
671
|
type SourceLocation struct {
|
|
789
672
|
// The line on which this requirement is located.
|
|
@@ -792,9 +675,9 @@ type SourceLocation struct {
|
|
|
792
675
|
Ref *string `json:"ref,omitempty"`
|
|
793
676
|
}
|
|
794
677
|
|
|
795
|
-
// An intentional change to a requirement's compliance status and/or impact score. At least
|
|
796
|
-
//
|
|
797
|
-
//
|
|
678
|
+
// An intentional change to a requirement's compliance status and/or impact score. At least one of
|
|
679
|
+
// status or impact must be set. Overrides change the effectiveStatus or impact of the requirement.
|
|
680
|
+
// All overrides must have an expiration date to enforce periodic review.
|
|
798
681
|
type StatusOverride struct {
|
|
799
682
|
// Timestamp when this override was applied. ISO 8601 format.
|
|
800
683
|
AppliedAt time.Time `json:"appliedAt"`
|
|
@@ -836,11 +719,8 @@ type StatusOverride struct {
|
|
|
836
719
|
Type OverrideType `json:"type"`
|
|
837
720
|
}
|
|
838
721
|
|
|
839
|
-
//
|
|
840
|
-
//
|
|
841
|
-
//
|
|
842
|
-
// An override to the requirement's impact score. The prior impact is the original result
|
|
843
|
-
// value or the preceding override in the chain.
|
|
722
|
+
// An override to the requirement's impact score. The prior impact is the original result value or
|
|
723
|
+
// the preceding override in the chain.
|
|
844
724
|
type ImpactOverride struct {
|
|
845
725
|
// The overridden impact score (0.0–1.0).
|
|
846
726
|
Value float64 `json:"value"`
|
|
@@ -858,44 +738,8 @@ type SupportedPlatform struct {
|
|
|
858
738
|
Release *string `json:"release,omitempty"`
|
|
859
739
|
}
|
|
860
740
|
|
|
861
|
-
// A system component. Uses discriminated union pattern with 'type' field as discriminator.
|
|
862
|
-
//
|
|
863
|
-
//
|
|
864
|
-
// A physical or virtual server, workstation, or network device.
|
|
865
|
-
//
|
|
866
|
-
// Base properties shared by all component types. Extends the Target concept with stable
|
|
867
|
-
// identity, external references, generalized BOM attachment (boms[]), and unified artifact
|
|
868
|
-
// integrity (integrity[]).
|
|
869
|
-
//
|
|
870
|
-
// A static container image (not running). Image integrity — formerly the 'digest' field —
|
|
871
|
-
// is expressed via the shared Base_Component.integrity array.
|
|
872
|
-
//
|
|
873
|
-
// A running container instance.
|
|
874
|
-
//
|
|
875
|
-
// A container orchestration platform (Kubernetes, OpenShift, ECS, etc.).
|
|
876
|
-
//
|
|
877
|
-
// A cloud provider account (AWS account, Azure subscription, GCP project).
|
|
878
|
-
//
|
|
879
|
-
// A specific cloud resource (EC2 instance, S3 bucket, Azure VM, etc.).
|
|
880
|
-
//
|
|
881
|
-
// A code repository (for SAST tools).
|
|
882
|
-
//
|
|
883
|
-
// A running application or API (for DAST tools).
|
|
884
|
-
//
|
|
885
|
-
// A software artifact or dependency (for SCA tools). Package integrity — formerly the
|
|
886
|
-
// 'checksum' field — is expressed via the shared Base_Component.integrity array.
|
|
887
|
-
//
|
|
888
|
-
// A network segment or network device.
|
|
889
|
-
//
|
|
890
|
-
// A database instance.
|
|
891
|
-
//
|
|
892
|
-
// A thin AI-model component: identity and correlation only (parallel to Host_Component's
|
|
893
|
-
// fqdn/ip). All model detail — architecture, parameter count, serialization format, lineage
|
|
894
|
-
// — lives in an attached ai-model BOM (boms[]), never on the component itself.
|
|
895
|
-
//
|
|
896
|
-
// A thin dataset component: identity and correlation only, symmetric with
|
|
897
|
-
// AI_Model_Component. All dataset detail — record count, format, classification, lineage —
|
|
898
|
-
// lives in an attached dataset BOM (boms[]), never on the component itself.
|
|
741
|
+
// A system component. Uses discriminated union pattern with 'type' field as discriminator. Superset
|
|
742
|
+
// of Target with identity, external IDs, and SBOM support.
|
|
899
743
|
type Component struct {
|
|
900
744
|
// Names of baselines that apply to this component.
|
|
901
745
|
BaselineRefs []string `json:"baselineRefs,omitempty"`
|
|
@@ -1077,12 +921,10 @@ type BillOfMaterials struct {
|
|
|
1077
921
|
UniqueID *string `json:"uniqueId,omitempty"`
|
|
1078
922
|
}
|
|
1079
923
|
|
|
1080
|
-
// Normalized dataset
|
|
1081
|
-
//
|
|
1082
|
-
//
|
|
1083
|
-
//
|
|
1084
|
-
// AI_Model_Extension: carries the dataset's own lineage (baseDatasetRefs/derivation) just
|
|
1085
|
-
// as the model extension carries baseModelRef/adaptationType.
|
|
924
|
+
// Normalized dataset fields (SPDX 3.0 Dataset profile / MLCommons Croissant aligned). All optional;
|
|
925
|
+
// open for partial-fidelity passthrough of unmapped native fields. Symmetric with
|
|
926
|
+
// AI_Model_Extension: carries the dataset's own lineage (baseDatasetRefs/derivation) just as the
|
|
927
|
+
// model extension carries baseModelRef/adaptationType.
|
|
1086
928
|
type DatasetBOMExtension struct {
|
|
1087
929
|
// References to the source dataset(s) this one was derived from — a dataset componentId, or
|
|
1088
930
|
// a dataset BOM uniqueId/URI when no component exists. The lineage edge parallel to
|
|
@@ -1116,13 +958,11 @@ type DatasetBOMExtension struct {
|
|
|
1116
958
|
StatisticalProperties *string `json:"statisticalProperties,omitempty"`
|
|
1117
959
|
}
|
|
1118
960
|
|
|
1119
|
-
// Normalized
|
|
1120
|
-
//
|
|
1121
|
-
//
|
|
1122
|
-
//
|
|
1123
|
-
//
|
|
1124
|
-
// native fields opaquely (partial-fidelity pattern). Subject name/version are inherited
|
|
1125
|
-
// from the host aiModel component, not repeated here.
|
|
961
|
+
// Normalized AI-model fields, aligned to the CISA/G7 'SBOM for AI' minimum elements. All fields
|
|
962
|
+
// optional (standards-correct; only the EU AI Act makes a subset binding for high-risk/GPAI). Left
|
|
963
|
+
// open (additionalProperties: true) so a converter can carry unmapped native fields opaquely
|
|
964
|
+
// (partial-fidelity pattern). Subject name/version are inherited from the host aiModel component,
|
|
965
|
+
// not repeated here.
|
|
1126
966
|
type AIModelBOMExtension struct {
|
|
1127
967
|
// Lineage relationship to baseModelRef, adopting Hugging Face's base_model_relation
|
|
1128
968
|
// vocabulary (the only typed lineage enum in the ecosystem).
|
|
@@ -1203,9 +1043,8 @@ type PerformanceMetric struct {
|
|
|
1203
1043
|
Value *string `json:"value,omitempty"`
|
|
1204
1044
|
}
|
|
1205
1045
|
|
|
1206
|
-
// A single normalized software package entry within an sbom BOM. Minimal identity + version
|
|
1207
|
-
//
|
|
1208
|
-
// (document/ref).
|
|
1046
|
+
// A single normalized software package entry within an sbom BOM. Minimal identity + version for
|
|
1047
|
+
// querying/diffing; the full native record remains available via passthrough (document/ref).
|
|
1209
1048
|
type SBOMPackage struct {
|
|
1210
1049
|
// SPDX license identifiers/expressions for this package.
|
|
1211
1050
|
Licenses []string `json:"licenses,omitempty"`
|
|
@@ -1217,8 +1056,8 @@ type SBOMPackage struct {
|
|
|
1217
1056
|
Version *string `json:"version,omitempty"`
|
|
1218
1057
|
}
|
|
1219
1058
|
|
|
1220
|
-
// An override of a baseline input value for a specific component. Enables system-specific
|
|
1221
|
-
//
|
|
1059
|
+
// An override of a baseline input value for a specific component. Enables system-specific tailoring
|
|
1060
|
+
// of baseline parameters.
|
|
1222
1061
|
type InputOverride struct {
|
|
1223
1062
|
// Identity of the person or system that approved this override.
|
|
1224
1063
|
ApprovedBy *Identity `json:"approvedBy,omitempty"`
|
|
@@ -1233,19 +1072,7 @@ type InputOverride struct {
|
|
|
1233
1072
|
Value interface{} `json:"value"`
|
|
1234
1073
|
}
|
|
1235
1074
|
|
|
1236
|
-
// Information about the tool that generated this file.
|
|
1237
|
-
//
|
|
1238
1075
|
// Information about the tool that generated this HDF file.
|
|
1239
|
-
//
|
|
1240
|
-
// The tool that generated this file.
|
|
1241
|
-
//
|
|
1242
|
-
// Information about the tool that generated this comparison.
|
|
1243
|
-
//
|
|
1244
|
-
// Information about the tool that generated this system document.
|
|
1245
|
-
//
|
|
1246
|
-
// Information about the tool that generated this plan.
|
|
1247
|
-
//
|
|
1248
|
-
// Information about the tool that generated this document.
|
|
1249
1076
|
type Generator struct {
|
|
1250
1077
|
// The name of the software that produced this HDF file. Example: 'gosec-to-hdf'.
|
|
1251
1078
|
Name string `json:"name"`
|
|
@@ -1253,15 +1080,9 @@ type Generator struct {
|
|
|
1253
1080
|
Version string `json:"version"`
|
|
1254
1081
|
}
|
|
1255
1082
|
|
|
1256
|
-
//
|
|
1257
|
-
//
|
|
1258
|
-
//
|
|
1259
|
-
// Reference to automated remediation resources for implementing security controls. Points
|
|
1260
|
-
// to external automation content like Ansible playbooks, Terraform scripts, or
|
|
1261
|
-
// vendor-provided remediation tools.
|
|
1262
|
-
//
|
|
1263
|
-
// Optional reference to automated remediation resources (Ansible playbooks, Terraform
|
|
1264
|
-
// scripts, etc.) for implementing the security controls defined in this baseline.
|
|
1083
|
+
// Reference to automated remediation resources for implementing security controls. Points to
|
|
1084
|
+
// external automation content like Ansible playbooks, Terraform scripts, or vendor-provided
|
|
1085
|
+
// remediation tools.
|
|
1265
1086
|
type Remediation struct {
|
|
1266
1087
|
// Optional cryptographic checksum for verifying the integrity of remediation resources
|
|
1267
1088
|
// fetched from the URI. Recommended for security when referencing external automation
|
|
@@ -1273,12 +1094,8 @@ type Remediation struct {
|
|
|
1273
1094
|
URI string `json:"uri"`
|
|
1274
1095
|
}
|
|
1275
1096
|
|
|
1276
|
-
// Information about the test execution environment
|
|
1277
|
-
//
|
|
1278
|
-
//
|
|
1279
|
-
// Information about the test execution environment. This is distinct from the target being
|
|
1280
|
-
// scanned - the runner is where the security tool executes, while targets are what is being
|
|
1281
|
-
// assessed.
|
|
1097
|
+
// Information about the test execution environment. This is distinct from the target being scanned
|
|
1098
|
+
// - the runner is where the security tool executes, while targets are what is being assessed.
|
|
1282
1099
|
type Runner struct {
|
|
1283
1100
|
// The CPU architecture of the runner system. Example: 'x86_64', 'arm64', 'aarch64'.
|
|
1284
1101
|
Architecture *string `json:"architecture,omitempty"`
|
|
@@ -1309,8 +1126,6 @@ type Runner struct {
|
|
|
1309
1126
|
Release *string `json:"release,omitempty"`
|
|
1310
1127
|
}
|
|
1311
1128
|
|
|
1312
|
-
// Statistics for the assessment run, including duration and result counts.
|
|
1313
|
-
//
|
|
1314
1129
|
// Statistics for the assessment run(s) such as duration and result counts.
|
|
1315
1130
|
type Statistics struct {
|
|
1316
1131
|
// How long (in seconds) this assessment run took.
|
|
@@ -1319,8 +1134,6 @@ type Statistics struct {
|
|
|
1319
1134
|
Requirements *StatisticHash `json:"requirements,omitempty"`
|
|
1320
1135
|
}
|
|
1321
1136
|
|
|
1322
|
-
// Breakdowns of requirement statistics by result status.
|
|
1323
|
-
//
|
|
1324
1137
|
// Statistics for requirement results, grouped by status.
|
|
1325
1138
|
type StatisticHash struct {
|
|
1326
1139
|
// Statistics for requirements that encountered an error during assessment.
|
|
@@ -1335,28 +1148,14 @@ type StatisticHash struct {
|
|
|
1335
1148
|
Passed *StatisticBlock `json:"passed,omitempty"`
|
|
1336
1149
|
}
|
|
1337
1150
|
|
|
1338
|
-
// Statistics for requirements that encountered an error during assessment.
|
|
1339
|
-
//
|
|
1340
1151
|
// Statistics for a given item, such as the total count.
|
|
1341
|
-
//
|
|
1342
|
-
// Statistics for requirements that failed.
|
|
1343
|
-
//
|
|
1344
|
-
// Statistics for requirements that are not applicable to the target.
|
|
1345
|
-
//
|
|
1346
|
-
// Statistics for requirements that were not reviewed (manual check required).
|
|
1347
|
-
//
|
|
1348
|
-
// Statistics for requirements that passed.
|
|
1349
1152
|
type StatisticBlock struct {
|
|
1350
1153
|
// The total count. Example: the total number of requirements in a given category for a run.
|
|
1351
1154
|
Total int64 `json:"total"`
|
|
1352
1155
|
}
|
|
1353
1156
|
|
|
1354
|
-
// The security tool that produced the assessment data in this file.
|
|
1355
|
-
//
|
|
1356
|
-
// The security tool that produced the assessment data represented in this HDF file. Aligns
|
|
1357
|
-
// with SARIF, OSCAL, and CycloneDX terminology.
|
|
1358
|
-
//
|
|
1359
|
-
// The security tool that produced the assessment data in this source.
|
|
1157
|
+
// The security tool that produced the assessment data represented in this HDF file. Aligns with
|
|
1158
|
+
// SARIF, OSCAL, and CycloneDX terminology.
|
|
1360
1159
|
type Tool struct {
|
|
1361
1160
|
// The file format, if it is a recognized named format shared by multiple tools. Examples:
|
|
1362
1161
|
// 'SARIF', 'XCCDF'. Omit for tool-specific formats where the tool name already implies the
|
|
@@ -1369,11 +1168,8 @@ type Tool struct {
|
|
|
1369
1168
|
Version *string `json:"version,omitempty"`
|
|
1370
1169
|
}
|
|
1371
1170
|
|
|
1372
|
-
// Information on the set of requirements that can be assessed, including baseline metadata
|
|
1373
|
-
//
|
|
1374
|
-
//
|
|
1375
|
-
// Shared metadata fields for baselines. Used in both standalone baseline documents and
|
|
1376
|
-
// evaluated baseline results.
|
|
1171
|
+
// Information on the set of requirements that can be assessed, including baseline metadata and
|
|
1172
|
+
// requirement definitions.
|
|
1377
1173
|
type HDFBaseline struct {
|
|
1378
1174
|
// The set of dependencies this baseline depends on.
|
|
1379
1175
|
Depends []Dependency `json:"depends,omitempty"`
|
|
@@ -1417,9 +1213,6 @@ type HDFBaseline struct {
|
|
|
1417
1213
|
}
|
|
1418
1214
|
|
|
1419
1215
|
// A requirement definition without assessment results.
|
|
1420
|
-
//
|
|
1421
|
-
// Core requirement fields shared between baseline requirements and evaluated requirements.
|
|
1422
|
-
// Contains the fundamental requirement definition without assessment results.
|
|
1423
1216
|
type BaselineRequirement struct {
|
|
1424
1217
|
// Array of labeled descriptions. At least one description with label 'default' must be
|
|
1425
1218
|
// present. Convention: place default description first. Common labels: 'default', 'check',
|
|
@@ -1468,8 +1261,8 @@ type BaselineRequirement struct {
|
|
|
1468
1261
|
VerificationMethod *VerificationMethodEnum `json:"verificationMethod,omitempty"`
|
|
1469
1262
|
}
|
|
1470
1263
|
|
|
1471
|
-
// Structured comparison between two or more HDF security assessment documents. Supports
|
|
1472
|
-
//
|
|
1264
|
+
// Structured comparison between two or more HDF security assessment documents. Supports temporal,
|
|
1265
|
+
// baseline, fleet, and multi-source comparison modes.
|
|
1473
1266
|
type HDFComparison struct {
|
|
1474
1267
|
// Map of annotation IDs to annotation objects, providing context or action items for
|
|
1475
1268
|
// requirement diffs.
|
|
@@ -1632,8 +1425,6 @@ type Value struct {
|
|
|
1632
1425
|
Value interface{} `json:"value"`
|
|
1633
1426
|
}
|
|
1634
1427
|
|
|
1635
|
-
// Configuration for how requirements were matched across sources.
|
|
1636
|
-
//
|
|
1637
1428
|
// Configuration for how requirements are matched across sources.
|
|
1638
1429
|
type MatchingConfig struct {
|
|
1639
1430
|
// Ordered list of fallback strategies tried when the primary strategy fails to find a match.
|
|
@@ -1740,8 +1531,6 @@ type ComparisonSummary struct {
|
|
|
1740
1531
|
Updated *int64 `json:"updated,omitempty"`
|
|
1741
1532
|
}
|
|
1742
1533
|
|
|
1743
|
-
// State counts broken down by severity level.
|
|
1744
|
-
//
|
|
1745
1534
|
// Breakdown of state counts by severity level.
|
|
1746
1535
|
type SeverityBreakdown struct {
|
|
1747
1536
|
// State counts for critical severity requirements.
|
|
@@ -1754,15 +1543,7 @@ type SeverityBreakdown struct {
|
|
|
1754
1543
|
Medium *StateCounts `json:"medium,omitempty"`
|
|
1755
1544
|
}
|
|
1756
1545
|
|
|
1757
|
-
// State counts for critical severity requirements.
|
|
1758
|
-
//
|
|
1759
1546
|
// Counts of requirements in each state.
|
|
1760
|
-
//
|
|
1761
|
-
// State counts for high severity requirements.
|
|
1762
|
-
//
|
|
1763
|
-
// State counts for low severity requirements.
|
|
1764
|
-
//
|
|
1765
|
-
// State counts for medium severity requirements.
|
|
1766
1547
|
type StateCounts struct {
|
|
1767
1548
|
// Number of requirements present only in the old source.
|
|
1768
1549
|
Absent *int64 `json:"absent,omitempty"`
|
|
@@ -1802,8 +1583,8 @@ type PerSourceSummary struct {
|
|
|
1802
1583
|
Updated *int64 `json:"updated,omitempty"`
|
|
1803
1584
|
}
|
|
1804
1585
|
|
|
1805
|
-
// Describes a system's authorization boundary, components, and interconnections. Maps to
|
|
1806
|
-
//
|
|
1586
|
+
// Describes a system's authorization boundary, components, and interconnections. Maps to OSCAL SSP
|
|
1587
|
+
// system-characteristics and FedRAMP system inventory.
|
|
1807
1588
|
type HDFSystem struct {
|
|
1808
1589
|
// Date the current authorization status was granted. ISO 8601 format.
|
|
1809
1590
|
AuthorizationDate *time.Time `json:"authorizationDate,omitempty"`
|
|
@@ -1857,10 +1638,10 @@ type HDFSystem struct {
|
|
|
1857
1638
|
Version *string `json:"version,omitempty"`
|
|
1858
1639
|
}
|
|
1859
1640
|
|
|
1860
|
-
// Declares a control's designation within a system — whether it is common (provided by
|
|
1861
|
-
//
|
|
1862
|
-
//
|
|
1863
|
-
//
|
|
1641
|
+
// Declares a control's designation within a system — whether it is common (provided by another
|
|
1642
|
+
// component or system), system-specific (implemented locally), or hybrid (shared responsibility).
|
|
1643
|
+
// Maps to NIST SP 800-53 Appendix C control designations and OSCAL SSP by-component
|
|
1644
|
+
// provided/inherited semantics.
|
|
1864
1645
|
type ControlDesignation struct {
|
|
1865
1646
|
// The control identifier (e.g., 'SC-7', 'AC-2 (1)'). Must match a NIST tag in a baseline
|
|
1866
1647
|
// requirement's tags.
|
|
@@ -1883,9 +1664,9 @@ type ControlDesignation struct {
|
|
|
1883
1664
|
SystemRef *string `json:"systemRef,omitempty"`
|
|
1884
1665
|
}
|
|
1885
1666
|
|
|
1886
|
-
// A data flow between two endpoints. The 'from' endpoint is always a local component; the
|
|
1887
|
-
//
|
|
1888
|
-
//
|
|
1667
|
+
// A data flow between two endpoints. The 'from' endpoint is always a local component; the 'to'
|
|
1668
|
+
// endpoint can be local, cross-system, or external. Use 'direction' to indicate whether data flows
|
|
1669
|
+
// one-way or both ways.
|
|
1889
1670
|
type DataFlow struct {
|
|
1890
1671
|
// Authentication mechanism used for this connection. Examples: 'mTLS', 'OAuth2', 'API key',
|
|
1891
1672
|
// 'SAML', 'Kerberos'.
|
|
@@ -1908,8 +1689,8 @@ type DataFlow struct {
|
|
|
1908
1689
|
To interface{} `json:"to"`
|
|
1909
1690
|
}
|
|
1910
1691
|
|
|
1911
|
-
// Defines an assessment plan — what baselines to run against which targets, with resolved
|
|
1912
|
-
//
|
|
1692
|
+
// Defines an assessment plan — what baselines to run against which targets, with resolved inputs
|
|
1693
|
+
// and scheduling. Maps to OSCAL Assessment Plan.
|
|
1913
1694
|
type HDFPlan struct {
|
|
1914
1695
|
// The assessments to perform. Each assessment pairs a baseline with targets and resolved
|
|
1915
1696
|
// inputs.
|
|
@@ -1938,8 +1719,8 @@ type HDFPlan struct {
|
|
|
1938
1719
|
Version *string `json:"version,omitempty"`
|
|
1939
1720
|
}
|
|
1940
1721
|
|
|
1941
|
-
// A single assessment within a plan — defines which baseline to run against which targets
|
|
1942
|
-
//
|
|
1722
|
+
// A single assessment within a plan — defines which baseline to run against which targets with what
|
|
1723
|
+
// configuration.
|
|
1943
1724
|
type Assessment struct {
|
|
1944
1725
|
// Reference to the baseline to evaluate. May be a baseline name (e.g. 'RHEL9-STIG'), a
|
|
1945
1726
|
// relative path to an HDF Baseline document (e.g. 'rhel9-stig.hdf-baseline.json'), or an
|
|
@@ -1960,8 +1741,6 @@ type Assessment struct {
|
|
|
1960
1741
|
TargetSelector map[string]string `json:"targetSelector,omitempty"`
|
|
1961
1742
|
}
|
|
1962
1743
|
|
|
1963
|
-
// Runner/scanner configuration for this assessment.
|
|
1964
|
-
//
|
|
1965
1744
|
// Configuration for the assessment runner/scanner.
|
|
1966
1745
|
type RunnerConfig struct {
|
|
1967
1746
|
// Name of the assessment runner. Example: 'cinc-auditor', 'inspec', 'openscap'.
|
|
@@ -1970,8 +1749,6 @@ type RunnerConfig struct {
|
|
|
1970
1749
|
Version *string `json:"version,omitempty"`
|
|
1971
1750
|
}
|
|
1972
1751
|
|
|
1973
|
-
// Optional scheduling configuration for recurring assessments.
|
|
1974
|
-
//
|
|
1975
1752
|
// Scheduling configuration for recurring assessments.
|
|
1976
1753
|
type Schedule struct {
|
|
1977
1754
|
// Cron expression for recurring assessments. Example: '0 2 1 * *' (2 AM on the 1st of each
|
|
@@ -1987,8 +1764,8 @@ type Schedule struct {
|
|
|
1987
1764
|
StartDate *time.Time `json:"startDate,omitempty"`
|
|
1988
1765
|
}
|
|
1989
1766
|
|
|
1990
|
-
// Waivers, attestations, and POA&Ms that modify requirement compliance status or impact.
|
|
1991
|
-
//
|
|
1767
|
+
// Waivers, attestations, and POA&Ms that modify requirement compliance status or impact. Amendments
|
|
1768
|
+
// are standalone documents that can be applied to results via merge operations.
|
|
1992
1769
|
type HDFAmendments struct {
|
|
1993
1770
|
// Unique identifier for this amendments document. Useful for cross-referencing when
|
|
1994
1771
|
// multiple amendment documents target the same results.
|
|
@@ -2019,18 +1796,18 @@ type HDFAmendments struct {
|
|
|
2019
1796
|
Version *string `json:"version,omitempty"`
|
|
2020
1797
|
}
|
|
2021
1798
|
|
|
2022
|
-
// A standalone override to a requirement's compliance status or risk impact. Validation has
|
|
2023
|
-
//
|
|
2024
|
-
//
|
|
2025
|
-
// (documentation-only). For all other types, at least one of 'status' or 'impact' must be
|
|
2026
|
-
//
|
|
1799
|
+
// A standalone override to a requirement's compliance status or risk impact. Validation has two
|
|
1800
|
+
// branches gated on 'type': when type is 'operationalRequirement', neither 'status' nor 'impact'
|
|
1801
|
+
// may be set — the override records accepted risk without changing the finding
|
|
1802
|
+
// (documentation-only). For all other types, at least one of 'status' or 'impact' must be set. This
|
|
1803
|
+
// rule aligns with: (1) OSCAL Assessment Results — finding.target.status and
|
|
2027
1804
|
// finding.associated-risk[].facet[] are separate axes
|
|
2028
|
-
// (https://pages.nist.gov/OSCAL/learn/concepts/layer/assessment/assessment-results/); (2)
|
|
2029
|
-
//
|
|
2030
|
-
//
|
|
2031
|
-
// (https://www.ignyteplatform.com/blog/fedramp/fedramp-deviation-requests-submit/); (3)
|
|
2032
|
-
//
|
|
2033
|
-
//
|
|
1805
|
+
// (https://pages.nist.gov/OSCAL/learn/concepts/layer/assessment/assessment-results/); (2) FedRAMP
|
|
1806
|
+
// deviation request types — Risk Adjustment changes impact only, Operational Requirement documents
|
|
1807
|
+
// acceptance only, False Positive changes status
|
|
1808
|
+
// (https://www.ignyteplatform.com/blog/fedramp/fedramp-deviation-requests-submit/); (3) NIST SP
|
|
1809
|
+
// 800-37 RMF — risk response (accept/mitigate/transfer) is a separate step from control assessment
|
|
1810
|
+
// status (https://csrc.nist.gov/pubs/sp/800/37/r2/final).
|
|
2034
1811
|
type StandaloneOverride struct {
|
|
2035
1812
|
// Software packages this amendment is scoped to, distinct from componentRef (which scopes
|
|
2036
1813
|
// to an HDF-internal Component by UUID). Use when the source amendment format references
|
|
@@ -2089,9 +1866,8 @@ type StandaloneOverride struct {
|
|
|
2089
1866
|
Type OverrideType `json:"type"`
|
|
2090
1867
|
}
|
|
2091
1868
|
|
|
2092
|
-
// Bundles references to all HDF documents for audit, authorization, and compliance review.
|
|
2093
|
-
//
|
|
2094
|
-
// verification.
|
|
1869
|
+
// Bundles references to all HDF documents for audit, authorization, and compliance review. Each
|
|
1870
|
+
// content entry references a document by type, URI, and checksum for integrity verification.
|
|
2095
1871
|
type HDFEvidencePackage struct {
|
|
2096
1872
|
// Summary of assessment completeness and compliance status.
|
|
2097
1873
|
CompletenessCheck *CompletenessCheck `json:"completenessCheck,omitempty"`
|
|
@@ -2133,10 +1909,8 @@ type HDFEvidencePackage struct {
|
|
|
2133
1909
|
Version *string `json:"version,omitempty"`
|
|
2134
1910
|
}
|
|
2135
1911
|
|
|
2136
|
-
//
|
|
2137
|
-
//
|
|
2138
|
-
// Informational summary of assessment completeness. Not authoritative — tools should
|
|
2139
|
-
// compute these from the referenced documents.
|
|
1912
|
+
// Informational summary of assessment completeness. Not authoritative — tools should compute these
|
|
1913
|
+
// from the referenced documents.
|
|
2140
1914
|
type CompletenessCheck struct {
|
|
2141
1915
|
// Whether all baselines referenced by system components have assessment results.
|
|
2142
1916
|
AllBaselinesAssessed *bool `json:"allBaselinesAssessed,omitempty"`
|
|
@@ -2152,8 +1926,6 @@ type CompletenessCheck struct {
|
|
|
2152
1926
|
UnresolvedPoams *int64 `json:"unresolvedPoams,omitempty"`
|
|
2153
1927
|
}
|
|
2154
1928
|
|
|
2155
|
-
// SBOM coverage across system components.
|
|
2156
|
-
//
|
|
2157
1929
|
// SBOM coverage statistics for the system.
|
|
2158
1930
|
type SBOMCoverage struct {
|
|
2159
1931
|
// Number of system components that have an associated SBOM.
|
|
@@ -2177,10 +1949,10 @@ type ContentReference struct {
|
|
|
2177
1949
|
URI string `json:"uri"`
|
|
2178
1950
|
}
|
|
2179
1951
|
|
|
2180
|
-
// A reference to external native-format evidence (log/telemetry corpus or other artifact)
|
|
2181
|
-
//
|
|
2182
|
-
//
|
|
2183
|
-
//
|
|
1952
|
+
// A reference to external native-format evidence (log/telemetry corpus or other artifact) carried
|
|
1953
|
+
// by URI + integrity hash + format discriminator. Reference-only: the artifact is never embedded
|
|
1954
|
+
// (corpora can be huge) or transcoded (that would be lossy) — it stays canonical in its native
|
|
1955
|
+
// format and HDF acts as the structured index.
|
|
2184
1956
|
type ExternalEvidenceReference struct {
|
|
2185
1957
|
// Cryptographic checksum of the referenced artifact for integrity verification.
|
|
2186
1958
|
Checksum *Checksum `json:"checksum,omitempty"`
|
|
@@ -2203,10 +1975,7 @@ type ExternalEvidenceReference struct {
|
|
|
2203
1975
|
URI string `json:"uri"`
|
|
2204
1976
|
}
|
|
2205
1977
|
|
|
2206
|
-
//
|
|
2207
|
-
//
|
|
2208
|
-
// Descriptive metadata about a referenced external evidence corpus. Does not affect
|
|
2209
|
-
// integrity.
|
|
1978
|
+
// Descriptive metadata about a referenced external evidence corpus. Does not affect integrity.
|
|
2210
1979
|
type ExternalEvidenceMetadata struct {
|
|
2211
1980
|
// The tool/pipeline that collected or produced the corpus. Example: 'aws-security-lake',
|
|
2212
1981
|
// 'elastic-agent'.
|
|
@@ -2217,8 +1986,6 @@ type ExternalEvidenceMetadata struct {
|
|
|
2217
1986
|
TimeRange *ExternalEvidenceTimeRange `json:"timeRange,omitempty"`
|
|
2218
1987
|
}
|
|
2219
1988
|
|
|
2220
|
-
// The time window the referenced evidence covers.
|
|
2221
|
-
//
|
|
2222
1989
|
// The time window a referenced external evidence corpus covers.
|
|
2223
1990
|
type ExternalEvidenceTimeRange struct {
|
|
2224
1991
|
// End of the time window the corpus covers (ISO 8601).
|
|
@@ -2227,8 +1994,6 @@ type ExternalEvidenceTimeRange struct {
|
|
|
2227
1994
|
Start *time.Time `json:"start,omitempty"`
|
|
2228
1995
|
}
|
|
2229
1996
|
|
|
2230
|
-
// The comparison operator used when evaluating this input against observed values.
|
|
2231
|
-
//
|
|
2232
1997
|
// Comparison operator for evaluating the input value against observed values. Numeric:
|
|
2233
1998
|
// eq/ne/lt/le/gt/ge. String: eq/ne/contains/matches. Collection: in/notIn.
|
|
2234
1999
|
type ComparisonOperator string
|
|
@@ -2246,8 +2011,6 @@ const (
|
|
|
2246
2011
|
NotIn ComparisonOperator = "notIn"
|
|
2247
2012
|
)
|
|
2248
2013
|
|
|
2249
|
-
// The data type of this input.
|
|
2250
|
-
//
|
|
2251
2014
|
// The data type of the input value. Aligns with InSpec input types.
|
|
2252
2015
|
type InputType string
|
|
2253
2016
|
|
|
@@ -2260,10 +2023,8 @@ const (
|
|
|
2260
2023
|
String InputType = "String"
|
|
2261
2024
|
)
|
|
2262
2025
|
|
|
2263
|
-
//
|
|
2264
|
-
//
|
|
2265
|
-
// Supported cryptographic hash algorithms for checksums and integrity verification. blake3
|
|
2266
|
-
// covers container-image and other artifact digests that use it.
|
|
2026
|
+
// Supported cryptographic hash algorithms for checksums and integrity verification. blake3 covers
|
|
2027
|
+
// container-image and other artifact digests that use it.
|
|
2267
2028
|
type HashAlgorithm string
|
|
2268
2029
|
|
|
2269
2030
|
const (
|
|
@@ -2320,15 +2081,9 @@ const (
|
|
|
2320
2081
|
Technical ControlType = "technical"
|
|
2321
2082
|
)
|
|
2322
2083
|
|
|
2323
|
-
// Qualitative severity band corresponding to baseScore. CVSS 2.0 does not natively use
|
|
2324
|
-
// 'none' or 'critical' bands; map accordingly when populating.
|
|
2325
|
-
//
|
|
2326
2084
|
// Qualitative CVSS severity band. Aligns with FIRST/NVD bands: none=0.0, low=0.1-3.9,
|
|
2327
|
-
// medium=4.0-6.9, high=7.0-8.9, critical=9.0-10.0. Distinct from the broader Severity enum
|
|
2328
|
-
//
|
|
2329
|
-
//
|
|
2330
|
-
// Qualitative severity band corresponding to computedScore. Same band convention as
|
|
2331
|
-
// baseSeverity.
|
|
2085
|
+
// medium=4.0-6.9, high=7.0-8.9, critical=9.0-10.0. Distinct from the broader Severity enum used on
|
|
2086
|
+
// Requirement_Core (which includes 'informational').
|
|
2332
2087
|
type CVSSSeverity string
|
|
2333
2088
|
|
|
2334
2089
|
const (
|
|
@@ -2350,29 +2105,19 @@ const (
|
|
|
2350
2105
|
The40 Version = "4.0"
|
|
2351
2106
|
)
|
|
2352
2107
|
|
|
2353
|
-
// The type of
|
|
2354
|
-
//
|
|
2355
|
-
//
|
|
2356
|
-
//
|
|
2357
|
-
//
|
|
2358
|
-
//
|
|
2359
|
-
//
|
|
2360
|
-
//
|
|
2361
|
-
//
|
|
2362
|
-
//
|
|
2363
|
-
//
|
|
2364
|
-
//
|
|
2365
|
-
//
|
|
2366
|
-
// 'riskAdjustment': impact score adjusted based on environmental context (FedRAMP Risk
|
|
2367
|
-
// Adjustment); does not change pass/fail status, only impact via the impact field.
|
|
2368
|
-
// 'operationalRequirement': deviation required by operational constraints (FedRAMP
|
|
2369
|
-
// Operational Requirement); the finding cannot be remediated because the system requires
|
|
2370
|
-
// the affected functionality. Remains an open risk. Migration note: 'exception' was removed
|
|
2371
|
-
// in v3.1.0 — use 'waiver' with status 'notApplicable' instead.
|
|
2372
|
-
//
|
|
2373
|
-
// The type of override applied to this requirement.
|
|
2374
|
-
//
|
|
2375
|
-
// The type of amendment.
|
|
2108
|
+
// The type of amendment, aligned with FedRAMP deviation request categories. 'waiver': risk accepted
|
|
2109
|
+
// by Authorizing Official. 'attestation': manually verified by assessor. 'poam': remediation
|
|
2110
|
+
// tracked (no status change). 'inherited': control provided by another component or system.
|
|
2111
|
+
// 'falsePositive': scanner incorrectly identified a finding — for compliance scans (STIG, CIS), the
|
|
2112
|
+
// check actually passes, so status is typically set to 'passed'; for vulnerability scans (CVE,
|
|
2113
|
+
// SCA), the flagged vulnerability does not apply to this system, so status is typically set to
|
|
2114
|
+
// 'notApplicable'. The disposition field on the requirement distinguishes false positives from
|
|
2115
|
+
// genuinely not-applicable findings. 'riskAdjustment': impact score adjusted based on environmental
|
|
2116
|
+
// context (FedRAMP Risk Adjustment); does not change pass/fail status, only impact via the impact
|
|
2117
|
+
// field. 'operationalRequirement': deviation required by operational constraints (FedRAMP
|
|
2118
|
+
// Operational Requirement); the finding cannot be remediated because the system requires the
|
|
2119
|
+
// affected functionality. Remains an open risk. Migration note: 'exception' was removed in v3.1.0 —
|
|
2120
|
+
// use 'waiver' with status 'notApplicable' instead.
|
|
2376
2121
|
type OverrideType string
|
|
2377
2122
|
|
|
2378
2123
|
const (
|
|
@@ -2385,20 +2130,9 @@ const (
|
|
|
2385
2130
|
RiskAdjustment OverrideType = "riskAdjustment"
|
|
2386
2131
|
)
|
|
2387
2132
|
|
|
2388
|
-
// The
|
|
2389
|
-
//
|
|
2390
|
-
//
|
|
2391
|
-
//
|
|
2392
|
-
// The status of an individual test result. 'notApplicable' indicates the requirement does
|
|
2393
|
-
// not apply to the target. 'notReviewed' indicates the requirement was not assessed (e.g.,
|
|
2394
|
-
// requires manual verification).
|
|
2395
|
-
//
|
|
2396
|
-
// The status of this test within the requirement. Example: 'failed'.
|
|
2397
|
-
//
|
|
2398
|
-
// The new status this override sets for the requirement. Optional when only impact is being
|
|
2399
|
-
// overridden.
|
|
2400
|
-
//
|
|
2401
|
-
// The new status this amendment sets. Optional when only impact is being overridden.
|
|
2133
|
+
// The status of an individual test result. 'notApplicable' indicates the requirement does not apply
|
|
2134
|
+
// to the target. 'notReviewed' indicates the requirement was not assessed (e.g., requires manual
|
|
2135
|
+
// verification).
|
|
2402
2136
|
type ResultStatus string
|
|
2403
2137
|
|
|
2404
2138
|
const (
|
|
@@ -2460,9 +2194,6 @@ const (
|
|
|
2460
2194
|
VendorDependency POAMType = "vendorDependency"
|
|
2461
2195
|
)
|
|
2462
2196
|
|
|
2463
|
-
// Explicit severity rating. Typically derived from impact score but provided explicitly for
|
|
2464
|
-
// clarity.
|
|
2465
|
-
//
|
|
2466
2197
|
// Severity rating for a requirement. Typically derived from the numeric impact score.
|
|
2467
2198
|
type Severity string
|
|
2468
2199
|
|
|
@@ -2474,28 +2205,21 @@ const (
|
|
|
2474
2205
|
SeverityMedium Severity = "medium"
|
|
2475
2206
|
)
|
|
2476
2207
|
|
|
2477
|
-
// Structured controlled-vocabulary
|
|
2478
|
-
//
|
|
2479
|
-
//
|
|
2480
|
-
//
|
|
2481
|
-
//
|
|
2482
|
-
//
|
|
2483
|
-
//
|
|
2484
|
-
//
|
|
2485
|
-
//
|
|
2486
|
-
//
|
|
2487
|
-
//
|
|
2488
|
-
//
|
|
2489
|
-
//
|
|
2490
|
-
//
|
|
2491
|
-
//
|
|
2492
|
-
// requires_dependency / requires_environment / protected_by_compiler / protected_at_runtime
|
|
2493
|
-
// / protected_at_perimeter) are CycloneDX-specific and describe why the vulnerable code
|
|
2494
|
-
// path is unreachable in the deployed configuration. The enum is extended additively across
|
|
2495
|
-
// schema versions as other ecosystems' controlled vocabularies are integrated; documents
|
|
2496
|
-
// using values added in a newer schema version will fail validation against an older
|
|
2497
|
-
// schema. Consumers SHOULD validate against the schema version declared by the document
|
|
2498
|
-
// ($schema) rather than assume a fixed vocabulary.
|
|
2208
|
+
// Structured controlled-vocabulary reason for an override, complementing the free-text 'reason'
|
|
2209
|
+
// field. 'reason' carries the human-readable rationale an auditor reads; 'justification' carries
|
|
2210
|
+
// the machine-readable category enabling filtering, aggregation, and lossless round-trip with
|
|
2211
|
+
// structured ecosystems (VEX, OSCAL, FedRAMP DR). Both fields may be present simultaneously and are
|
|
2212
|
+
// NOT redundant: 'reason' explains the specific circumstance; 'justification' classifies it.
|
|
2213
|
+
// Authors SHOULD populate both when a controlled-vocabulary value applies — the enum value alone is
|
|
2214
|
+
// not self-explanatory to an auditor. The vocabulary is drawn from the VEX ecosystem: the first
|
|
2215
|
+
// five values are common across OpenVEX, CSAF VEX, and CycloneDX VEX; the remaining six
|
|
2216
|
+
// (requires_configuration / requires_dependency / requires_environment / protected_by_compiler /
|
|
2217
|
+
// protected_at_runtime / protected_at_perimeter) are CycloneDX-specific and describe why the
|
|
2218
|
+
// vulnerable code path is unreachable in the deployed configuration. The enum is extended
|
|
2219
|
+
// additively across schema versions as other ecosystems' controlled vocabularies are integrated;
|
|
2220
|
+
// documents using values added in a newer schema version will fail validation against an older
|
|
2221
|
+
// schema. Consumers SHOULD validate against the schema version declared by the document ($schema)
|
|
2222
|
+
// rather than assume a fixed vocabulary.
|
|
2499
2223
|
type Justification string
|
|
2500
2224
|
|
|
2501
2225
|
const (
|
|
@@ -2512,19 +2236,12 @@ const (
|
|
|
2512
2236
|
VulnerableCodeNotPresent Justification = "vulnerable_code_not_present"
|
|
2513
2237
|
)
|
|
2514
2238
|
|
|
2515
|
-
// How
|
|
2516
|
-
//
|
|
2517
|
-
//
|
|
2518
|
-
//
|
|
2519
|
-
//
|
|
2520
|
-
//
|
|
2521
|
-
//
|
|
2522
|
-
// How a requirement is intended to be verified. Disambiguates the two cases that null
|
|
2523
|
-
// 'code' overloads: 'manual-by-design' (the requirement is statement-form and not amenable
|
|
2524
|
-
// to automation, e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could
|
|
2525
|
-
// exist but does not yet, e.g. a STIG rule lacking a fix). 'automated' = a check exists and
|
|
2526
|
-
// runs without operator action; 'hybrid' = part automated, part manual. Named '_Enum' to
|
|
2527
|
-
// disambiguate from the unrelated Verification_Method DID-context struct.
|
|
2239
|
+
// How a requirement is intended to be verified. Disambiguates the two cases that null 'code'
|
|
2240
|
+
// overloads: 'manual-by-design' (the requirement is statement-form and not amenable to automation,
|
|
2241
|
+
// e.g. FedRAMP 20x KSIs); 'manual-pending-automation' (automation could exist but does not yet,
|
|
2242
|
+
// e.g. a STIG rule lacking a fix). 'automated' = a check exists and runs without operator action;
|
|
2243
|
+
// 'hybrid' = part automated, part manual. Named '_Enum' to disambiguate from the unrelated
|
|
2244
|
+
// Verification_Method DID-context struct.
|
|
2528
2245
|
type VerificationMethodEnum string
|
|
2529
2246
|
|
|
2530
2247
|
const (
|
|
@@ -2587,8 +2304,6 @@ const (
|
|
|
2587
2304
|
Repository TargetType = "repository"
|
|
2588
2305
|
)
|
|
2589
2306
|
|
|
2590
|
-
// The category of this annotation.
|
|
2591
|
-
//
|
|
2592
2307
|
// The category of an annotation attached to a comparison.
|
|
2593
2308
|
type AnnotationCategory string
|
|
2594
2309
|
|
|
@@ -2612,13 +2327,11 @@ const (
|
|
|
2612
2327
|
BaselineDiffStateUpdated BaselineDiffState = "updated"
|
|
2613
2328
|
)
|
|
2614
2329
|
|
|
2615
|
-
// The mode of comparison
|
|
2616
|
-
//
|
|
2617
|
-
//
|
|
2618
|
-
//
|
|
2619
|
-
//
|
|
2620
|
-
// baseline documents to detect requirement changes between versions. 'systemDrift' compares
|
|
2621
|
-
// two system documents to detect component-level changes.
|
|
2330
|
+
// The mode of comparison. 'temporal' compares the same target over time. 'baseline' compares
|
|
2331
|
+
// against a golden reference. 'fleet' compares across multiple systems. 'multiSource' compares
|
|
2332
|
+
// outputs from different scanners. 'baselineEvolution' compares two baseline documents to detect
|
|
2333
|
+
// requirement changes between versions. 'systemDrift' compares two system documents to detect
|
|
2334
|
+
// component-level changes.
|
|
2622
2335
|
type ComparisonMode string
|
|
2623
2336
|
|
|
2624
2337
|
const (
|
|
@@ -2657,8 +2370,6 @@ const (
|
|
|
2657
2370
|
TargetChanged ChangeReason = "targetChanged"
|
|
2658
2371
|
)
|
|
2659
2372
|
|
|
2660
|
-
// How the conflict was resolved.
|
|
2661
|
-
//
|
|
2662
2373
|
// How a conflict between multiple scanner results was resolved.
|
|
2663
2374
|
type ConflictResolution string
|
|
2664
2375
|
|
|
@@ -2669,13 +2380,9 @@ const (
|
|
|
2669
2380
|
Unresolved ConflictResolution = "unresolved"
|
|
2670
2381
|
)
|
|
2671
2382
|
|
|
2672
|
-
// The strategy
|
|
2673
|
-
//
|
|
2674
|
-
//
|
|
2675
|
-
// IDs. 'mappedId' uses an ID mapping table. 'cciMatch'/'nistMatch' match by framework
|
|
2676
|
-
// identifiers. 'fuzzyTitle'/'fuzzyContent' use text similarity.
|
|
2677
|
-
//
|
|
2678
|
-
// The primary strategy used to match requirements across sources.
|
|
2383
|
+
// The strategy used to match requirements across sources. 'exactId' matches by identical IDs.
|
|
2384
|
+
// 'mappedId' uses an ID mapping table. 'cciMatch'/'nistMatch' match by framework identifiers.
|
|
2385
|
+
// 'fuzzyTitle'/'fuzzyContent' use text similarity.
|
|
2679
2386
|
type MatchStrategy string
|
|
2680
2387
|
|
|
2681
2388
|
const (
|
|
@@ -2687,12 +2394,10 @@ const (
|
|
|
2687
2394
|
NISTMatch MatchStrategy = "nistMatch"
|
|
2688
2395
|
)
|
|
2689
2396
|
|
|
2690
|
-
//
|
|
2691
|
-
//
|
|
2692
|
-
//
|
|
2693
|
-
//
|
|
2694
|
-
// changed (generic), 'fixed' = was failing now passing, 'regressed' = was passing now
|
|
2695
|
-
// failing, 'moved' = reorganized same content, 'split'/'merged' = reserved for v1.1.
|
|
2397
|
+
// SARIF-compatible vocabulary extended for security. 'new' = present only in new source, 'absent' =
|
|
2398
|
+
// present only in old, 'unchanged' = same effective status, 'updated' = status changed (generic),
|
|
2399
|
+
// 'fixed' = was failing now passing, 'regressed' = was passing now failing, 'moved' = reorganized
|
|
2400
|
+
// same content, 'split'/'merged' = reserved for v1.1.
|
|
2696
2401
|
type RequirementState string
|
|
2697
2402
|
|
|
2698
2403
|
const (
|
|
@@ -2735,8 +2440,6 @@ const (
|
|
|
2735
2440
|
Xccdf OriginalFormat = "xccdf"
|
|
2736
2441
|
)
|
|
2737
2442
|
|
|
2738
|
-
// The role of this source in the comparison.
|
|
2739
|
-
//
|
|
2740
2443
|
// The role of a source document in the comparison.
|
|
2741
2444
|
type SourceRole string
|
|
2742
2445
|
|
|
@@ -2748,8 +2451,6 @@ const (
|
|
|
2748
2451
|
SourceRoleSystem SourceRole = "system"
|
|
2749
2452
|
)
|
|
2750
2453
|
|
|
2751
|
-
// Current Authorization to Operate (ATO) status.
|
|
2752
|
-
//
|
|
2753
2454
|
// Authorization to Operate (ATO) status for the system.
|
|
2754
2455
|
type AuthorizationStatus string
|
|
2755
2456
|
|
|
@@ -2762,8 +2463,6 @@ const (
|
|
|
2762
2463
|
Revoked AuthorizationStatus = "revoked"
|
|
2763
2464
|
)
|
|
2764
2465
|
|
|
2765
|
-
// FIPS 199 security categorization (impact level).
|
|
2766
|
-
//
|
|
2767
2466
|
// FIPS 199 security categorization level (impact level).
|
|
2768
2467
|
type CategorizationLevel string
|
|
2769
2468
|
|
|
@@ -2793,10 +2492,8 @@ const (
|
|
|
2793
2492
|
Unidirectional Direction = "unidirectional"
|
|
2794
2493
|
)
|
|
2795
2494
|
|
|
2796
|
-
// The type of assessment
|
|
2797
|
-
//
|
|
2798
|
-
// The type of assessment. 'automated' for scanner-driven, 'manual' for human-performed,
|
|
2799
|
-
// 'hybrid' for both.
|
|
2495
|
+
// The type of assessment. 'automated' for scanner-driven, 'manual' for human-performed, 'hybrid'
|
|
2496
|
+
// for both.
|
|
2800
2497
|
type PlanType string
|
|
2801
2498
|
|
|
2802
2499
|
const (
|
|
@@ -2805,12 +2502,10 @@ const (
|
|
|
2805
2502
|
PlanTypeManual PlanType = "manual"
|
|
2806
2503
|
)
|
|
2807
2504
|
|
|
2808
|
-
// The type of HDF document being referenced.
|
|
2809
|
-
//
|
|
2810
2505
|
// The type of document referenced in the evidence package. 'bom' covers any
|
|
2811
|
-
// Bill-of-Materials/manifest document (SBOM, AI model/dataset, and reserved future kinds) —
|
|
2812
|
-
//
|
|
2813
|
-
//
|
|
2506
|
+
// Bill-of-Materials/manifest document (SBOM, AI model/dataset, and reserved future kinds) — its
|
|
2507
|
+
// specific kind is carried by the referenced document's bomType, not by a per-kind Content_Type
|
|
2508
|
+
// value.
|
|
2814
2509
|
type ContentType string
|
|
2815
2510
|
|
|
2816
2511
|
const (
|