models

package
v0.0.5 Latest Latest
Warning

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

Go to latest
Published: May 11, 2025 License: MIT Imports: 2 Imported by: 0

Documentation

Overview

File: host.go

File: vulnerability.go

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Agent

type Agent struct {
	gorm.Model
	Name string
}

type BaseMetricV2

type BaseMetricV2 struct {
	ID                      uint          `gorm:"primaryKey"`
	CVSSV2                  sirius.CVSSV2 `json:"cvssV2" gorm:"embedded"`
	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

type BaseMetricV3 struct {
	ID                  uint          `gorm:"primaryKey"`
	CVSSV3              sirius.CVSSV3 `json:"cvssV3" gorm:"embedded"`
	ExploitabilityScore float64       `json:"exploitabilityScore"`
	ImpactScore         float64       `json:"impactScore"`
}

type CPE

type CPE struct {
	gorm.Model
	Name   string
	HostID uint
}

type CVEData

type CVEData struct {
	gorm.Model
	CVEDataType         string
	CVEDataFormat       string
	CVEDataVersion      string
	CVEDataNumberOfCVEs string
	CVEDataTimestamp    string
	CVEItems            []*CVEItem `gorm:"foreignKey:CVEDataID"`
}

type CVEDataMeta

type CVEDataMeta struct {
	gorm.Model
	ID        string `gorm:"uniqueIndex"`
	Assigner  string
	CVEItemID uint // Foreign key to link back to CVEItem
}

type CVEItem

type CVEItem struct {
	gorm.Model
	CVEDataType      string
	CVEDataFormat    string
	DataVersion      string
	DataMeta         CVEDataMeta
	ProblemType      ProblemType
	References       []*Reference   `gorm:"foreignKey:CVEItemID"`
	Descriptions     []*Description `gorm:"foreignKey:CVEItemID"`
	Configurations   Configurations
	Impact           Impact
	PublishedDate    string
	LastModifiedDate string
	CVEDataID        uint
}

type CVSSV2

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

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

type Configurations struct {
	gorm.Model
	Nodes     []*Node `gorm:"foreignKey:ConfigurationID"`
	CVEItemID uint
}

type CpeMatch

type CpeMatch struct {
	gorm.Model
	Vulnerable bool
	Cpe23Uri   string
	NodeID     uint
}

type Description

type Description struct {
	gorm.Model
	Lang              string
	Value             string
	ProblemTypeDataID uint
	CVEItemID         uint
	VulnerabilityID   uint
}

type Host

type Host struct {
	gorm.Model
	HID             string
	OS              string
	OSVersion       string
	IP              string `gorm:"uniqueIndex"`
	Hostname        string
	Ports           []Port `gorm:"many2many:host_ports"`
	Services        []Service
	Vulnerabilities []Vulnerability `gorm:"many2many:host_vulnerabilities"`
	CPEs            []CPE
	Users           []User
	Notes           []Note
	AgentID         uint
}

type HostPort added in v0.0.4

type HostPort struct {
	gorm.Model
	HostID uint
	PortID uint
}

type HostVulnerability

type HostVulnerability struct {
	gorm.Model
	HostID uint
	// Foreign Key to Vulnerability from models/vulnerability
	VulnerabilityID uint
}

type Impact

type Impact struct {
	gorm.Model
	BaseMetricV2 BaseMetricV2 `gorm:"embedded"`
	CVEItemID    uint
}

type Node

type Node struct {
	gorm.Model
	Operator        string
	CpeMatch        []*CpeMatch `gorm:"foreignKey:NodeID"`
	ConfigurationID uint
}

type Note

type Note struct {
	gorm.Model
	Content string
	HostID  uint
}

type Port

type Port struct {
	gorm.Model
	ID       int
	Protocol string
	State    string
	Hosts    []Host `gorm:"many2many:host_ports"`
}

type ProblemType

type ProblemType struct {
	gorm.Model
	ProblemTypeData []*ProblemTypeData `gorm:"foreignKey:ProblemTypeID"`
	CVEItemID       uint
}

type ProblemTypeData

type ProblemTypeData struct {
	gorm.Model
	ProblemTypeID uint
	Descriptions  []*Description `gorm:"foreignKey:ProblemTypeDataID"`
}

type Reference

type Reference struct {
	gorm.Model
	URL       string
	Name      string
	RefSource string
	CVEItemID uint
}

type RiskScore

type RiskScore struct {
	CVSSV3ID uint
	CVSSV3   BaseMetricV3 `gorm:"embedded;embeddedPrefix:cvssv3_"`
	CVSSV2ID uint
	CVSSV2   BaseMetricV2 `gorm:"embedded;embeddedPrefix:cvssv2_"`
}

type Service

type Service struct {
	gorm.Model
	Name   string
	HostID uint
}

type User

type User struct {
	gorm.Model
	Name   string
	HostID uint
}

type Vulnerability

type Vulnerability struct {
	gorm.Model
	VID string `gorm:"column:v_id"`
	// Description []Description `gorm:"foreignKey:VulnerabilityID"`
	Description string
	Title       string
	Hosts       []Host `gorm:"many2many:host_vulnerabilities"`
	RiskScore   float64
}

Jump to

Keyboard shortcuts

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