Documentation
¶
Index ¶
- type Finding
- type FindingEvent
- type FindingExpanded
- type FindingExposure
- type Issue
- type IssueSummary
- type OpenFinding
- type PatchFindingPayload
- type ResourceGroup
- type Resources
- type Source
- type StatsAssetsSeverity
- type StatsExposure
- type StatsIssueSeverity
- type StatsMTTRSeverity
- type StatsSize
- type Target
- type TargetSummary
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Finding ¶
type Finding struct {
ID string `json:"id" db:"id"`
IssueID string `json:"-" db:"issue_id"`
TargetID string `json:"-" db:"target_id"`
AffectedResource string `json:"affected_resource" db:"affected_resource"`
AffectedResourceString string `json:"-" db:"affected_resource_string"`
Details string `json:"details" db:"details"`
ImpactDetails string `json:"impact_details" db:"impact_details"`
Status string `json:"status" db:"status"`
Score float32 `json:"score" db:"score"`
// TotalExposure contains the time, in hours, a finding was open during its
// entire lifetime. For instance: if the finding was open for one day, then
// it was fixed, open again for onther day and finally fixed, the
// TotalExposure would be 48. If the finding is OPEN the TotalExposure also
// includes the period between the last time it was found and now.
TotalExposure int64 `json:"total_exposure"`
// Resources stores the resources of the finding, if any, in as a non typed json.
Resources Resources `json:"resources"`
//OpenFinding defines the fields that only open findings have defined.
*OpenFinding
}
Finding represents the relationship between an Issue and a Target.
type FindingEvent ¶
type FindingEvent struct {
ID string `json:"id" db:"id"`
FindingID string `json:"finding_id" db:"finding_id"`
SourceID string `json:"source_id" db:"source_id"`
Score float32 `json:"score" db:"score"`
Details *string `json:"details" db:"details"`
Resources *Resources `json:"resources"`
Fingerprint string `json:"-"`
AffectedResourceString *string `json:"-" db:"affected_resource_string"`
Time time.Time `json:"time" db:"time"`
}
FindingEvent represents the event of discovering a Finding.
type FindingExpanded ¶
type FindingExpanded struct {
Finding
Issue Issue `json:"issue"`
Target Target `json:"target"`
Source Source `json:"source"`
}
FindingExpanded represents a finding including the expanded inner child's. for the related issue and target.
type FindingExposure ¶
type FindingExposure struct {
FindingID string `json:"finding_id" db:"finding_id"`
FoundAt time.Time `json:"found_at" db:"found_at"`
FixedAt time.Time `json:"fixed_at" db:"fixed_at"`
TTR float32 `json:"ttr" db:"ttr"`
}
FindingExposure represents the exposure time of a Finding.
type Issue ¶
type Issue struct {
ID string `json:"id" db:"id"`
Summary string `json:"summary" db:"summary"`
CWEID int `json:"cwe_id" db:"cwe_id"`
Description string `json:"description" db:"description"`
Recommendations pq.StringArray `json:"recommendations" db:"recommendations"`
ReferenceLinks pq.StringArray `json:"reference_links" db:"reference_links"`
Labels []string `json:"labels"`
// The following fields represent extra data that can be aggregated.
Open *int `json:"open,omitempty" db:"open"`
Fixed *int `json:"fixed,omitempty" db:"fixed"`
}
Issue represents a vulnerability.
type IssueSummary ¶
type IssueSummary struct {
IssueID string `json:"issue_id" db:"issue_id"`
Summary string `json:"summary" db:"summary"`
TargetsCount int `json:"targets_count" db:"targets_count"`
ResourcesCount int `json:"resources_count" db:"resources_count"`
MaxScore float32 `json:"max_score" db:"max_score"`
}
IssueSummary represents a summary for an issue and its affected targets.
type OpenFinding ¶
type OpenFinding struct {
// CurrentExposure contains the total hours that passed from the last time
// it was found until now.
CurrentExposure int64 `json:"current_exposure,omitempty"`
}
OpenFinding contains the specific information for an open finding.
type PatchFindingPayload ¶
type PatchFindingPayload struct {
Status string `json:"status"`
}
PatchFindingPayload represents the payload submitted to perform a patch operation on findings.
type ResourceGroup ¶
type ResourceGroup struct {
Name string `json:"name"`
Attributes []string `json:"attributes"`
Resources []map[string]string `json:"resources"`
}
ResourceGroup reprents a resource in a finding.
type Resources ¶
type Resources []ResourceGroup
Resources defines the structure of a the resources of a finding.
type Source ¶
type Source struct {
ID string `json:"id" db:"id"`
Name string `json:"name" db:"name"`
Component string `json:"component" db:"component"`
Instance string `json:"instance" db:"instance"`
Options string `json:"options" db:"options"`
Time string `json:"time" db:"time"`
TargetID string `json:"target_id,omitempty" db:"target_id"`
}
Source represents a producer of vulnerabilities.
type StatsAssetsSeverity ¶
type StatsAssetsSeverity struct {
Total float32 `json:"total" db:"total"`
Critical float32 `json:"critical" db:"critical"`
High float32 `json:"high" db:"high"`
Medium float32 `json:"medium" db:"medium"`
Low float32 `json:"low" db:"low"`
Informational float32 `json:"informational" db:"informational"`
}
StatsAssetsSeverity represents the number of assets by severity.
type StatsExposure ¶
type StatsExposure struct {
Percentile10 float32 `json:"percentile_10" db:"percentile_10"`
Percentile25 float32 `json:"percentile_25" db:"percentile_25"`
Percentile50 float32 `json:"percentile_50" db:"percentile_50"`
Percentile75 float32 `json:"percentile_75" db:"percentile_75"`
Percentile90 float32 `json:"percentile_90" db:"percentile_90"`
Mean float32 `json:"mean" db:"mean"`
}
StatsExposure represents the exposure time stats by different averages.
type StatsIssueSeverity ¶
type StatsIssueSeverity struct {
Critical int `json:"critical"`
High int `json:"high"`
Medium int `json:"medium"`
Low int `json:"low"`
Informational int `json:"informational"`
}
StatsIssueSeverity represents the number of occurences for each issue severity.
type StatsMTTRSeverity ¶
type StatsMTTRSeverity struct {
Total float32 `json:"total" db:"total"`
Critical float32 `json:"critical" db:"critical"`
High float32 `json:"high" db:"high"`
Medium float32 `json:"medium" db:"medium"`
Low float32 `json:"low" db:"low"`
Informational float32 `json:"informational" db:"informational"`
}
StatsMTTRSeverity represents the mean time to remediation stats by issue severity.
type StatsSize ¶
type StatsSize struct {
Sources int `json:"sources" db:"sources"`
Targets int `json:"targets" db:"targets"`
Issues int `json:"issues" db:"issues"`
Findings int `json:"findings" db:"findings"`
FindingEvents int `json:"finding_events" db:"finding_events"`
}
StatsSize represents the size of each data set.
type Target ¶
type Target struct {
ID string `json:"id" db:"id"`
Identifier string `json:"identifier" db:"identifier"`
Teams []string `json:"teams"`
}
Target represents an object affected by vulnerabilities.
type TargetSummary ¶
type TargetSummary struct {
TargetID string `json:"target_id" db:"target_id"`
Identifier string `json:"identifier" db:"identifier"`
FindingsCount int `json:"findings_count" db:"findings_count"`
IssuesCount int `json:"issues_count" db:"issues_count"`
MaxScore float32 `json:"max_score" db:"max_score"`
}
TargetSummary represents a target summary and its associated findings.