Documentation
¶
Index ¶
- type AsffRecommendation
- type AwsAccountInfo
- type AwsSecurityFinding
- type CSVReport
- type CodeClimateReport
- type Compliance
- type Component
- type Components
- type CycloneDxReport
- type GitlabSASTReport
- type Hash
- type Issue
- type JUnitReport
- type Location
- type Metadata
- type Range
- type Rating
- type Recommendation
- type Remediation
- type Resource
- type SarifReport
- type SarifRun
- type Severity
- type SonarQubeReport
- type SonarQubeReportBuilder
- type Source
- type Tool
- type Vulnerability
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AsffRecommendation ¶
type AsffRecommendation struct {
Text string
}
AsffRecommendation includes the recommendation to avoid the finding
type AwsAccountInfo ¶
AwsAccountInfo contains all the relevant information of the user AWS account
type AwsSecurityFinding ¶
type AwsSecurityFinding struct {
AwsAccountID string `json:"AwsAccountId"`
Compliance Compliance
CreatedAt string
Description string
GeneratorID string `json:"GeneratorId"`
ID string `json:"Id"`
ProductArn string
Remediation Remediation
Resources []Resource
SchemaVersion string
Severity Severity
Title string
Types []string
UpdatedAt string
CWE string
RiskScore string
}
AwsSecurityFinding contains all the relevant information to build a finding
func BuildASFF ¶
func BuildASFF(summary *model.Summary) []AwsSecurityFinding
BuildASFF builds the ASFF report
type CSVReport ¶
type CSVReport struct {
QueryName string `csv:"query_name"`
QueryID string `csv:"query_id"`
QueryURI string `csv:"query_uri"`
Severity string `csv:"severity"`
Platform string `csv:"platform"`
CWE string `csv:"cwe,omitempty"`
RiskScore string `csv:"risk_score"`
CloudProvider string `csv:"cloud_provider"`
Category string `csv:"category"`
DescriptionID string `csv:"description_id"`
Description string `csv:"description"`
CISDescriptionIDFormatted string `csv:"cis_description_id"`
CISDescriptionTitle string `csv:"cis_description_title"`
CISDescriptionTextFormatted string `csv:"cis_description_text"`
FileName string `csv:"file_name"`
SimilarityID string `csv:"similarity_id"`
Line int `csv:"line"`
IssueType string `csv:"issue_type"`
SearchKey string `csv:"search_key"`
SearchLine int `csv:"search_line"`
SearchValue string `csv:"search_value"`
ExpectedValue string `csv:"expected_value"`
ActualValue string `csv:"actual_value"`
}
CSVReport struct contains all the info to create the csv report
func BuildCSVReport ¶
BuildCSVReport builds the CSV report
type CodeClimateReport ¶
type CodeClimateReport struct {
Type string `json:"type"`
CheckName string `json:"check_name"`
CWE string `json:"cwe,omitempty"`
RiskScore string `json:"risk_score"`
Description string `json:"description"`
Categories []string `json:"categories"`
Location location `json:"location"`
Severity string `json:"severity"`
Fingerprint string `json:"fingerprint"`
}
CodeClimateReport struct contains all the info to create the code climate report
func BuildCodeClimateReport ¶
func BuildCodeClimateReport(summary *model.Summary) []CodeClimateReport
BuildCodeClimateReport builds the code climate report
type Compliance ¶
type Compliance struct {
Status string
}
Compliance contains the status of the finding
type Component ¶
type Component struct {
// component tag information
Type string `xml:"type,attr"`
BomRef string `xml:"bom-ref,attr"`
// component body information
Name string `xml:"name"`
Version string `xml:"version"`
Hashes []Hash `xml:"hashes>hash"`
Purl string `xml:"purl"`
Vulnerabilities []Vulnerability `xml:"v:vulnerabilities>v:vulnerability"`
}
Component includes the CycloneDX component structure properties considered relevant
type Components ¶
type Components struct {
Components []Component `xml:"component"`
}
Components is a list of components
type CycloneDxReport ¶
type CycloneDxReport struct {
XMLName xml.Name `xml:"bom"`
// bom tag information
XMLNS string `xml:"xmlns,attr"`
SerialNumber string `xml:"serialNumber,attr"`
XMLNSV string `xml:"xmlns:v,attr"`
Version int `xml:"version,attr"`
// bom body information
Metadata *Metadata `xml:"metadata"`
Components Components `xml:"components"`
}
CycloneDxReport includes all the properties considered relevant for the CycloneDX Report
func BuildCycloneDxReport ¶
func BuildCycloneDxReport(summary *model.Summary, filePaths map[string]string) *CycloneDxReport
BuildCycloneDxReport builds the CycloneDX report
func InitCycloneDxReport ¶
func InitCycloneDxReport() *CycloneDxReport
InitCycloneDxReport inits the CycloneDx report with no components (consequently, no vulnerabilities)
type GitlabSASTReport ¶
type GitlabSASTReport interface {
BuildGitlabSASTVulnerability(issue *model.QueryResult, file *model.VulnerableFile)
}
GitlabSASTReport represents a usable gitlab sast report reference
func NewGitlabSASTReport ¶
func NewGitlabSASTReport(start, end time.Time) GitlabSASTReport
NewGitlabSASTReport initializes a new instance of GitlabSASTReport to be used
type Issue ¶
type Issue struct {
EngineID string `json:"engineId"`
RuleID string `json:"ruleId"`
Severity string `json:"severity"`
CWE string `json:"cwe,omitempty"`
RiskScore string `json:"riskScore,omitempty"`
Type string `json:"type"`
PrimaryLocation *Location `json:"primaryLocation"`
SecondaryLocations []*Location `json:"secondaryLocations,omitempty"`
}
Issue is a single issue for SonarQube Report
type JUnitReport ¶
type JUnitReport interface {
GenerateTestEntry(query *model.QueryResult)
FinishReport()
}
JUnitReport is a JUnit report representation
func NewJUnitReport ¶
func NewJUnitReport(time string) JUnitReport
NewJUnitReport creates a new JUnit report instance
type Location ¶
type Location struct {
Message string `json:"message"`
FilePath string `json:"filePath"`
TextRange *Range `json:"textRange"`
}
Location is the location for the vulnerability in the SonarQube Report
type Metadata ¶
type Metadata struct {
Timestamp string `xml:"timestamp"` // the timestamp when the CycloneDX report is created
Tools *[]Tool `xml:"tools>tool"` // array of tools used to create the CycloneDX report
}
Metadata includes the relevant additional information about the CycloneDX report
type Range ¶
type Range struct {
StartLine int `json:"startLine"`
}
Range is the range for the vulnerability in the SonarQube Report
type Recommendation ¶
type Recommendation struct {
Recommendation string `xml:""`
}
Recommendation describes how the vulnerability should be avoided
type Remediation ¶
type Remediation struct {
Recommendation AsffRecommendation
}
Remediation contains the recommendation
type SarifReport ¶
type SarifReport interface {
BuildSarifIssue(issue *model.QueryResult) string
RebuildTaxonomies(cwes []string, guids map[string]string)
GetGUIDFromRelationships(idx int, cweID string) string
}
SarifReport represents a usable sarif report reference
func NewSarifReport ¶
func NewSarifReport() SarifReport
NewSarifReport creates and start a new sarif report with default values respecting SARIF schema 2.1.0
type SarifRun ¶
type SarifRun struct {
Tool sarifTool `json:"tool"`
Results []sarifResult `json:"results"`
Taxonomies []sarifTaxonomy `json:"taxonomies"`
}
SarifRun - sarifRun is a component of the SARIF report
type Severity ¶
Severity contains the original severity (KICS severity) and the label severity (ASFF severity)
type SonarQubeReport ¶
type SonarQubeReport struct {
Issues []Issue `json:"issues"`
}
SonarQubeReport is a list of issues for SonarQube Report
type SonarQubeReportBuilder ¶
type SonarQubeReportBuilder struct {
// contains filtered or unexported fields
}
SonarQubeReportBuilder is the builder for the SonarQubeReport struct
func NewSonarQubeRepory ¶
func NewSonarQubeRepory() *SonarQubeReportBuilder
NewSonarQubeRepory creates a new SonarQubeReportBuilder instance
func (*SonarQubeReportBuilder) BuildReport ¶
func (s *SonarQubeReportBuilder) BuildReport(summary *model.Summary) *SonarQubeReport
BuildReport builds the SonarQubeReport from the given QueryResults
type Tool ¶
type Tool struct {
Vendor string `xml:"vendor"`
Name string `xml:"name"`
Version string `xml:"version"`
}
Tool includes the information about the tool used to create the CycloneDX report
type Vulnerability ¶
type Vulnerability struct {
// vulnerability tag information
Ref string `xml:"ref,attr"`
// vulnerability body information
ID string `xml:"v:id"`
CWE string `xml:"v:cwe"`
RiskScore string `xml:"v:riskScore"`
Source Source `xml:"v:source"`
Ratings []Rating `xml:"v:ratings>v:rating"`
Description string `xml:"v:description"`
Recommendations []Recommendation `xml:"v:recommendations>v:recommendation"`
}
Vulnerability includes all the relevant information about the vulnerability