sirius

package
v0.0.6 Latest Latest
Warning

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

Go to latest
Published: Oct 1, 2025 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"`
}

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 {
	ID       int    `json:"id"`
	Protocol string `json:"protocol"`
	State    string `json:"state"`
}

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 =========================

Directories

Path Synopsis
File: connection.go
File: connection.go
models
File: host.go
File: host.go

Jump to

Keyboard shortcuts

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