sirius

package
v0.0.18 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 23, 2026 License: MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Affects added in v0.0.3

type Affects struct {
	Vendor Vendor `json:"vendor"`
}

type BaseMetricV2 added in v0.0.3

type BaseMetricV2 struct {
	CVSSV2                  CVSSV2  `json:"cvssV2"`
	Severity                string  `json:"severity"`
	ExploitabilityScore     float64 `json:"exploitabilityScore"`
	ImpactScore             float64 `json:"impactScore"`
	AcInsufInfo             bool    `json:"acInsufInfo"`
	ObtainAllPrivilege      bool    `json:"obtainAllPrivilege"`
	ObtainUserPrivilege     bool    `json:"obtainUserPrivilege"`
	ObtainOtherPrivilege    bool    `json:"obtainOtherPrivilege"`
	UserInteractionRequired bool    `json:"userInteractionRequired"`
}

type BaseMetricV3 added in v0.0.3

type BaseMetricV3 struct {
	CVSSV3              CVSSV3  `json:"cvssV3"`
	ExploitabilityScore float64 `json:"exploitabilityScore"`
	ImpactScore         float64 `json:"impactScore"`
}

type CPEMatch added in v0.0.3

type CPEMatch struct {
	Vulnerable            bool         `json:"vulnerable"`
	CPE22URI              string       `json:"cpe22Uri,omitempty"`
	CPE23URI              string       `json:"cpe23Uri"`
	VersionStartExcluding string       `json:"versionStartExcluding,omitempty"`
	VersionStartIncluding string       `json:"versionStartIncluding,omitempty"`
	VersionEndExcluding   string       `json:"versionEndExcluding,omitempty"`
	VersionEndIncluding   string       `json:"versionEndIncluding,omitempty"`
	CPEName               []CVECPEName `json:"cpe_name,omitempty"`
}

CPEMatch is the CPE Match string or range as defined in the NIST API schema.

type CPEName added in v0.0.3

type CPEName struct {
	CPE23URI         string         `json:"cpe23Uri"`
	LastModifiedDate string         `json:"lastModifiedDate"`
	Deprecated       bool           `json:"deprecated,omitempty"`
	DeprecatedBy     []string       `json:"deprecatedBy,omitempty"`
	Titles           []Title        `json:"titles,omitempty"`
	Refs             []CPEReference `json:"refs,omitempty"`
	Vulnerabilities  []string       `json:"vulnerabilities,omitempty"`
}

CPE name

type CPEReference added in v0.0.3

type CPEReference struct {
	Ref  string           `json:"ref"`
	Type CPEReferenceType `json:"type,omitempty"`
}

Internet resource for CPE

type CPEReferenceType added in v0.0.3

type CPEReferenceType string
var (
	ADVISORY   CPEReferenceType = "Advisory"
	CHANGE_LOG CPEReferenceType = "Change Log"
	PRODUCT    CPEReferenceType = "Product"
	PROJECT    CPEReferenceType = "Project"
	VENDOR     CPEReferenceType = "Vendor"
	VERSION    CPEReferenceType = "Version"
)

type CPEResponse added in v0.0.3

type CPEResponse struct {
	ResultsPerPage int       `json:"resultsPerPage"`
	StartIndex     int       `json:"startIndex"`
	TotalResults   int       `json:"totalResults"`
	Result         CPEResult `json:"result"`
}

type CPEResult added in v0.0.3

type CPEResult struct {
	DataType    string `json:"dataType"`
	FeedVersion string `json:"feedVersion"`
	// Number of CPE in this feed
	CPECount int `json:"cpeCount"`
	// Timestamp indicates when feed was generated
	FeedTimestamp *string   `json:"feedTimestamp,omitempty"`
	CPEs          []CPEName `json:"cpes"`
}

type CVE added in v0.0.3

type CVE struct {
	DataType    string        `json:"data_type"`
	DataFormat  string        `json:"data_format"`
	DataVersion string        `json:"data_version"`
	CVEDataMeta CVEDataMeta   `json:"cve_data_meta"`
	Affects     *Affects      `json:"affects,omitempty"`
	ProblemType ProblemType   `json:"problemtype"`
	References  CVEReferences `json:"references"`
	Description Description   `json:"description"`
}

CVE as defined in the NIST API schema.

type CVECPEName added in v0.0.3

type CVECPEName struct {
	CPE22URI         string `json:"cpe22Uri,omitempty"`
	CPE23URI         string `json:"cpe23Uri"`
	LastModifiedDate string `json:"lastModifiedDate,omitempty"`
}

CPEName is the CPE name as defined in the NIST API schema.

type CVEDataMeta added in v0.0.3

type CVEDataMeta struct {
	ID       string  `json:"ID"`
	ASSIGNER string  `json:"ASSIGNER"`
	STATE    *string `json:"STATE,omitempty"`
}

type CVEFinding added in v0.0.3

type CVEFinding struct {
	CVEDataType         string  `json:"cvedatatype"`
	CVEDataFormat       string  `json:"cvedataformat"`
	CVEDataVersion      string  `json:"cvedataversion"`
	CVEDataNumberOfCVEs *string `json:"cvedatanumberofcves,omitempty"`
	CVEDataTimestamp    string  `json:"cvedatatimestamp"`
	CVEDataMeta         CVEDataMeta
	Description         Description `json:"description"`
}

type CVEItem added in v0.0.3

type CVEItem struct {
	CVE              CVE            `json:"cve"`
	Configurations   Configurations `json:"configurations,omitempty"`
	Impact           *Impact        `json:"impact,omitempty"`
	PublishedDate    *string        `json:"publishedDate,omitempty"`
	LastModifiedDate *string        `json:"lastModifiedDate,omitempty"`
}

CVEITEM defines a vulnerability in the NVD data feed as defined in the NIST API schema.

type CVEReference added in v0.0.3

type CVEReference struct {
	// URL has a maximum length of 500 characters according to the
	// NIST API schema.
	URL       string    `json:"url"`
	Name      *string   `json:"name,omitempty"`
	Refsource *string   `json:"refsource,omitempty"`
	Tags      *[]string `json:"tags,omitempty"`
}

type CVEReferences added in v0.0.3

type CVEReferences struct {
	// ReferenceData has a minimum of 0 and a maximum of 500
	// items according to the NIST API schema.
	ReferenceData []CVEReference `json:"reference_data"`
}

type CVEResponse added in v0.0.3

type CVEResponse struct {
	ResultsPerPage int       `json:"resultsPerPage"`
	StartIndex     int       `json:"startIndex"`
	TotalResults   int       `json:"totalResults"`
	Result         CVEResult `json:"result"`
}

type CVEResult added in v0.0.3

type CVEResult struct {
	CVEDataType         string     `json:"CVE_data_type"`
	CVEDataFormat       string     `json:"CVE_data_format"`
	CVEDataVersion      string     `json:"CVE_data_version"`
	CVEDataNumberOfCVEs *string    `json:"CVE_data_numberOfCVEs,omitempty"`
	CVEDataTimestamp    string     `json:"CVE_data_timestamp"`
	CVEItems            *[]CVEItem `json:"CVE_Items,omitempty"`
}

type CVSSV2 added in v0.0.3

type CVSSV2 struct {
	Version                    string  `json:"version"`
	VectorString               string  `json:"vectorString"`
	AccessVector               string  `json:"accessVector"`
	AccessComplexity           string  `json:"accessComplexity"`
	Authentication             string  `json:"authentication"`
	ConfidentialityImpact      string  `json:"confidentialityImpact"`
	IntegrityImpact            string  `json:"integrityImpact"`
	AvailabilityImpact         string  `json:"availabilityImpact"`
	BaseScore                  float64 `json:"baseScore"`
	Exploitability             string  `json:"exploitability"`
	RemediationLevel           string  `json:"remediationLevel"`
	ReportConfidence           string  `json:"reportConfidence"`
	TemporalScore              float64 `json:"temporalScore"`
	CollateralDamagePotential  string  `json:"collateralDamagePotential"`
	TargetDistribution         string  `json:"targetDistribution"`
	ConfidentialityRequirement string  `json:"confidentialityRequirement"`
	IntegrityRequirement       string  `json:"integrityRequirement"`
	AvailabilityRequirement    string  `json:"availabilityRequirement"`
	EnvironmentalScore         float64 `json:"environmentalScore"`
}

type CVSSV3 added in v0.0.3

type CVSSV3 struct {
	Version                       string  `json:"version"`
	VectorString                  string  `json:"vectorString"`
	AttackVector                  string  `json:"attackVector"`
	AttackComplexity              string  `json:"attackComplexity"`
	PrivilegesRequired            string  `json:"privilegesRequired"`
	UserInteraction               string  `json:"userInteraction"`
	Scope                         string  `json:"scope"`
	ConfidentialityImpact         string  `json:"confidentialityImpact"`
	IntegrityImpact               string  `json:"integrityImpact"`
	AvailabilityImpact            string  `json:"availabilityImpact"`
	BaseScore                     float64 `json:"baseScore"`
	BaseSeverity                  string  `json:"baseSeverity"`
	ExploitCodeMaturity           string  `json:"exploitCodeMaturity"`
	RemediationLevel              string  `json:"remediationLevel"`
	ReportConfidence              string  `json:"reportConfidence"`
	TemporalScore                 float64 `json:"temporalScore"`
	TemporalSeverity              string  `json:"temporalSeverity"`
	ConfidentialityRequirement    string  `json:"confidentialityRequirement"`
	IntegrityRequirement          string  `json:"integrityRequirement"`
	AvailabilityRequirement       string  `json:"availabilityRequirement"`
	ModifiedAttackVector          string  `json:"modifiedAttackVector"`
	ModifiedAttackComplexity      string  `json:"modifiedAttackComplexity"`
	ModifiedPrivilegesRequired    string  `json:"modifiedPrivilegesRequired"`
	ModifiedUserInteraction       string  `json:"modifiedUserInteraction"`
	ModifiedScope                 string  `json:"modifiedScope"`
	ModifiedConfidentialityImpact string  `json:"modifiedConfidentialityImpact"`
	ModifiedIntegrityImpact       string  `json:"modifiedIntegrityImpact"`
	ModifiedAvailabilityImpact    string  `json:"modifiedAvailabilityImpact"`
	EnvironmentalScore            float64 `json:"environmentalScore"`
	EnvironmentalSeverity         string  `json:"environmentalSeverity"`
}

type Configurations added in v0.0.3

type Configurations struct {
	CVEDataVersion string `json:"CVE_data_version"`
	Nodes          []Node `json:"nodes,omitempty"`
}

Configurations defines the set of product configurations for a NVD applicability statement as defined in the NIST API schema.

type Description added in v0.0.3

type Description struct {
	// DescriptionData has a minimum of 0 items according to
	// the NIST API schema.
	Value string `json:"value"`
}

type Entry added in v0.0.3

type Entry struct {
	EntryId             string
	CVE                 string
	CVEDataFormat       string
	CVEDataType         string
	CVEDataVersion      string
	CVEDataNumberOfCVEs string
	CVEDataTimestamp    string
	CVEItems            []CVEItem
	CVEDataMeta         CVEDataMeta
	Description         Description
	CPE                 Node
	CVSSV3              CVSSV3
	References          []string
	Tags                []string
}

type Finding added in v0.0.3

type Finding struct {
	CVE    CVE
	SVDBID string
}

type FindingRequest added in v0.0.3

type FindingRequest struct {
	CVE    []string
	SVDBID string
}

type Host added in v0.0.3

type Host struct {
	HID             string          `gorm:"primaryKey" json:"hid"`
	OS              string          `json:"os"`
	OSVersion       string          `json:"osversion"`
	IP              string          `json:"ip"`
	Hostname        string          `json:"hostname"`
	Ports           []Port          `json:"ports"`
	Services        []Service       `json:"services,omitempty"`
	Vulnerabilities []Vulnerability `json:"vulnerabilities,omitempty"`
	CPE             []string        `json:"cpe"`
	Users           []string        `json:"users"`
	Notes           []string        `json:"notes"`
	Agent           *SiriusAgent    `json:"agent,omitempty"`
}

func (*Host) String added in v0.0.12

func (h *Host) String() string

String returns a safe string representation preventing infinite recursion

type Impact added in v0.0.3

type Impact struct {
	BaseMetricV3 BaseMetricV3 `json:"baseMetricV3,omitempty"`
	BaseMetricV2 BaseMetricV2 `json:"baseMetricV2,omitempty"`
}

Impact scores for a vulnerability as found on NVD as defined in the NIST API schema.

type LangString added in v0.0.3

type LangString struct {
	Lang string `json:"lang"`
	// Value has a maximum length of 3999 characters according to the
	// NIST API schema.
	Value string `json:"value"`
}

type Node added in v0.0.3

type Node struct {
	Operator string     `json:"operator,omitempty"`
	Negate   bool       `json:"negate,omitempty"`
	Children []Node     `json:"children,omitempty"`
	CPEMatch []CPEMatch `json:"cpe_match,omitempty"`
}

Node is a node or sub-node in an NVD applicability statement as defined in the NIST API schema.

type Port added in v0.0.3

type Port struct {
	Number   int    `json:"number"` // Port number (22, 80, 443, etc.)
	Protocol string `json:"protocol"`
	State    string `json:"state"`
}

func (*Port) String added in v0.0.12

func (p *Port) String() string

String returns a safe string representation

type ProblemType added in v0.0.3

type ProblemType struct {
	// ProblemTypeData has a minimum of 0 items according to the
	// NIST API schema.
	ProblemTypeData []ProblemTypeData `json:"problemtype_data"`
}

type ProblemTypeData added in v0.0.3

type ProblemTypeData struct {
	// Description has a minimum of 0 items according to the
	// NIST API schema.
	Description []LangString `json:"description"`
}

type Product added in v0.0.3

type Product struct {
	ProductName string  `json:"product_name"`
	Version     Version `json:"version"`
}

type RiskScore added in v0.0.3

type RiskScore struct {
	CVSSV3 BaseMetricV3 `json:"CVSSV3,omitempty"`
	CVSSV2 BaseMetricV2 `json:"CVSSV2,omitempty"`
}

type Service added in v0.0.3

type Service struct {
	Port    int    `json:"port"`
	Product string `json:"product"`
	Version string `json:"version"`
	CPE     string `json:"cpe"`
}

type SiriusAgent added in v0.0.3

type SiriusAgent struct {
	AgentId string
	HostKey string
	IP      string
	OS      string
	Tasks   []Task
}

type Star

type Star struct {
	Name string
	Type string
	Mass float64
}

Star represents a celestial object.

func NewStar

func NewStar(name, starType string, mass float64) Star

NewStar creates a new Star.

func (Star) Info

func (s Star) Info()

Info prints information about the Star.

type Task added in v0.0.3

type Task struct {
	ID      string
	Type    string
	Command string
	Result  string
	Status  string
	Date    time.Time
}

type TaskResponse added in v0.0.3

type TaskResponse struct {
	AgentId string
	IP      string
	Task    Task
}

type TerminalHistory added in v0.0.3

type TerminalHistory struct {
	Id      string
	IP      string
	Command string
	Result  string
	Status  string
	Date    time.Time
}

type Title added in v0.0.3

type Title struct {
	Title string `json:"title"`
	Lang  string `json:"lang"`
}

Human readable title for CPE

type Vendor added in v0.0.3

type Vendor struct {
	// VendorData has a minimum of 0 items according to the
	// NIST API schema.
	VendorData []VendorData `json:""`
}

type VendorData added in v0.0.3

type VendorData struct {
	VendorName string        `json:"vendor_name"`
	Product    VendorProduct `json:"product"`
}

type VendorProduct added in v0.0.3

type VendorProduct struct {
	// ProductData has a minimum of 1 item according to the
	// NIST API schema.
	ProductData []Product `json:"product_data"`
}

type Version added in v0.0.3

type Version struct {
	// VersionData has a minimum of 1 item according to the
	// NIST API schema.
	VersionData []VersionData `json:"version_data"`
}

type VersionData added in v0.0.3

type VersionData struct {
	VersionValue    string  `json:"version_value"`
	VersionAffected *string `json:"version_affected,omitempty"`
}

type Vulnerability added in v0.0.3

type Vulnerability struct {
	VID         string  `json:"vid"`
	Description string  `json:"description"`
	Title       string  `json:"title"`
	RiskScore   float64 `json:"riskScore,omitempty"`
	// Enhanced metadata fields for script detection
	CVEID       string   `json:"cve_id,omitempty"`
	CVSSScore   float64  `json:"cvss_score,omitempty"`
	CVSSVector  string   `json:"cvss_vector,omitempty"`
	Severity    string   `json:"severity,omitempty"`
	Remediation string   `json:"remediation,omitempty"`
	Category    string   `json:"category,omitempty"`
	Tags        []string `json:"tags,omitempty"`
	Confidence  float64  `json:"confidence,omitempty"`
	// Additional metadata as JSON
	Metadata map[string]interface{} `json:"metadata,omitempty"`
}

========================= Vulnerability =========================

func (*Vulnerability) String added in v0.0.12

func (v *Vulnerability) String() string

String returns a safe string representation preventing infinite recursion

Directories

Path Synopsis
api
File: connection.go
File: connection.go
models
File: event.go
File: event.go
Package slogger provides a shared LOG_LEVEL-aware slog initialization helper.
Package slogger provides a shared LOG_LEVEL-aware slog initialization helper.
templates
Package templates is the single source of truth for the Valkey contracts that bind the scanner stack together.
Package templates is the single source of truth for the Valkey contracts that bind the scanner stack together.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL