Documentation
¶
Index ¶
- Variables
- func IsValidConfidence(c Confidence) bool
- func IsValidExploitability(e Exploitability) bool
- func IsValidFixPriority(p FixPriority) bool
- func IsValidSeverity(s Severity) bool
- func IsValidStatus(s Status) bool
- func SeverityWeight(s Severity) int
- type CVSS
- type Confidence
- type Evidence
- type Exploitability
- type FilterOptions
- type Finding
- type FindingList
- type FindingNote
- type FindingStats
- type FixPriority
- type FlowTrace
- type Location
- type Severity
- type Status
- type Store
- func (s *Store) Create(f *Finding) error
- func (s *Store) Delete(id string) error
- func (s *Store) GetExportsPath() string
- func (s *Store) Import(path string) (*Finding, error)
- func (s *Store) List(opts *FilterOptions) (*FindingList, error)
- func (s *Store) Read(id string) (*Finding, error)
- func (s *Store) Stats() (*FindingStats, error)
- func (s *Store) Update(f *Finding) error
- type TagCount
Constants ¶
This section is empty.
Variables ¶
var ValidConfidences = []Confidence{ ConfidenceHigh, ConfidenceMedium, ConfidenceLow, }
ValidConfidences contains all valid confidence levels
var ValidExploitabilities = []Exploitability{ ExploitabilityProven, ExploitabilityLikely, ExploitabilityPossible, ExploitabilityUnlikely, ExploitabilityUnknown, }
ValidExploitabilities contains all valid exploitability levels
var ValidFixPriorities = []FixPriority{ FixPriorityImmediate, FixPriorityHigh, FixPriorityMedium, FixPriorityLow, FixPriorityDefer, }
ValidFixPriorities contains all valid fix priority levels
var ValidSeverities = []Severity{ SeverityCritical, SeverityHigh, SeverityMedium, SeverityLow, SeverityInfo, }
ValidSeverities contains all valid severity levels
var ValidStatuses = []Status{ StatusOpen, StatusConfirmed, StatusFalsePositive, StatusFixed, StatusDuplicate, }
ValidStatuses contains all valid statuses
Functions ¶
func IsValidConfidence ¶ added in v0.6.0
func IsValidConfidence(c Confidence) bool
IsValidConfidence checks if a confidence is valid
func IsValidExploitability ¶
func IsValidExploitability(e Exploitability) bool
IsValidExploitability checks if an exploitability is valid
func IsValidFixPriority ¶
func IsValidFixPriority(p FixPriority) bool
IsValidFixPriority checks if a fix priority is valid
func IsValidSeverity ¶
IsValidSeverity checks if a severity is valid
func SeverityWeight ¶
SeverityWeight returns a numeric weight for sorting by severity
Types ¶
type CVSS ¶
type CVSS struct {
Score float64 `yaml:"score" json:"score"`
Vector string `yaml:"vector" json:"vector"`
}
CVSS represents CVSS scoring information
type Confidence ¶
type Confidence string
Confidence represents the confidence level of a finding
const ( ConfidenceHigh Confidence = "high" ConfidenceMedium Confidence = "medium" ConfidenceLow Confidence = "low" )
type Evidence ¶
type Evidence struct {
Type string `yaml:"type" json:"type"`
Description string `yaml:"description" json:"description"`
Trace []string `yaml:"trace,omitempty" json:"trace,omitempty"`
}
Evidence represents supporting evidence for a finding
type Exploitability ¶
type Exploitability string
Exploitability represents how easily a vulnerability can be exploited
const ( ExploitabilityProven Exploitability = "proven" // Exploitation confirmed/demonstrated ExploitabilityLikely Exploitability = "likely" // Exploitation highly probable ExploitabilityPossible Exploitability = "possible" // Exploitation theoretically possible ExploitabilityUnlikely Exploitability = "unlikely" // Exploitation unlikely due to mitigations ExploitabilityUnknown Exploitability = "unknown" // Not yet assessed )
type FilterOptions ¶
type FilterOptions struct {
Severity Severity
Status Status
Confidence Confidence
Exploitability Exploitability
FixPriority FixPriority
CWE string
Tag string
File string
Limit int
Offset int
}
FilterOptions represents options for filtering findings
type Finding ¶
type Finding struct {
ID string `yaml:"id" json:"id"`
Title string `yaml:"title" json:"title"`
Severity Severity `yaml:"severity" json:"severity"`
Confidence Confidence `yaml:"confidence" json:"confidence"`
Exploitability Exploitability `yaml:"exploitability,omitempty" json:"exploitability,omitempty"`
FixPriority FixPriority `yaml:"fix_priority,omitempty" json:"fix_priority,omitempty"`
Status Status `yaml:"status" json:"status"`
CWE string `yaml:"cwe,omitempty" json:"cwe,omitempty"`
CVSS *CVSS `yaml:"cvss,omitempty" json:"cvss,omitempty"`
Location Location `yaml:"location" json:"location"`
Description string `yaml:"description" json:"description"`
Impact string `yaml:"impact,omitempty" json:"impact,omitempty"`
Remediation string `yaml:"remediation,omitempty" json:"remediation,omitempty"`
Evidence []Evidence `yaml:"evidence,omitempty" json:"evidence,omitempty"`
FlowTrace *FlowTrace `yaml:"flow_trace,omitempty" json:"flow_trace,omitempty"`
References []string `yaml:"references,omitempty" json:"references,omitempty"`
Tags []string `yaml:"tags,omitempty" json:"tags,omitempty"`
ReviewedBy []string `yaml:"reviewed_by,omitempty" json:"reviewed_by,omitempty"`
Notes []FindingNote `yaml:"notes,omitempty" json:"notes,omitempty"`
CreatedAt time.Time `yaml:"created_at" json:"created_at"`
UpdatedAt time.Time `yaml:"updated_at" json:"updated_at"`
CreatedBy string `yaml:"created_by,omitempty" json:"created_by,omitempty"`
DuplicateOf string `yaml:"duplicate_of,omitempty" json:"duplicate_of,omitempty"`
}
Finding represents a security vulnerability finding
type FindingList ¶
FindingList represents a list of findings with metadata
type FindingNote ¶ added in v0.6.0
type FindingNote struct {
Timestamp time.Time `yaml:"timestamp" json:"timestamp"`
Author string `yaml:"author,omitempty" json:"author,omitempty"`
Text string `yaml:"text" json:"text"`
}
FindingNote represents a timestamped note appended to a finding.
type FindingStats ¶
type FindingStats struct {
Total int `json:"total"`
BySeverity map[string]int `json:"by_severity"`
ByStatus map[string]int `json:"by_status"`
ByConfidence map[string]int `json:"by_confidence"`
ByExploitability map[string]int `json:"by_exploitability"`
ByFixPriority map[string]int `json:"by_fix_priority"`
ByCWE map[string]int `json:"by_cwe"`
ByCreatedBy map[string]int `json:"by_created_by"`
TopTags []TagCount `json:"top_tags"`
}
FindingStats represents statistics about findings
type FixPriority ¶
type FixPriority string
FixPriority represents the recommended priority for fixing a vulnerability
const ( FixPriorityImmediate FixPriority = "immediate" // Fix ASAP, actively exploitable FixPriorityHigh FixPriority = "high" // Fix within days FixPriorityMedium FixPriority = "medium" // Fix within weeks FixPriorityLow FixPriority = "low" // Fix when convenient FixPriorityDefer FixPriority = "defer" // Technical debt, low risk )
type FlowTrace ¶
type FlowTrace struct {
Source string `yaml:"source" json:"source"`
Sink string `yaml:"sink" json:"sink"`
Path []string `yaml:"path" json:"path"`
Guards []string `yaml:"guards,omitempty" json:"guards,omitempty"`
Unguarded bool `yaml:"unguarded" json:"unguarded"`
}
FlowTrace represents a data flow trace from source to sink
type Location ¶
type Location struct {
File string `yaml:"file" json:"file"`
LineStart int `yaml:"line_start" json:"line_start"`
LineEnd int `yaml:"line_end,omitempty" json:"line_end,omitempty"`
Function string `yaml:"function,omitempty" json:"function,omitempty"`
Snippet string `yaml:"snippet,omitempty" json:"snippet,omitempty"`
}
Location represents where a vulnerability was found
type Store ¶
type Store struct {
// contains filtered or unexported fields
}
Store handles finding CRUD operations
func (*Store) GetExportsPath ¶
GetExportsPath returns the exports directory path
func (*Store) List ¶
func (s *Store) List(opts *FilterOptions) (*FindingList, error)
List lists all findings, optionally filtered
func (*Store) Stats ¶
func (s *Store) Stats() (*FindingStats, error)
Stats calculates statistics about findings