models

package
v0.11.0 Latest Latest
Warning

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

Go to latest
Published: Oct 1, 2024 License: Apache-2.0 Imports: 2 Imported by: 2

Documentation

Index

Constants

View Source
const (
	// NvdType :
	NvdType = "NVD"
	// JvnType :
	JvnType = "JVN"
	// FortinetType :
	FortinetType = "Fortinet"
	// MitreType :
	MitreType = "Mitre"

	// NvdExactVersionMatch :
	NvdExactVersionMatch = "NvdExactVersionMatch"
	// NvdRoughVersionMatch :
	NvdRoughVersionMatch = "NvdRoughVersionMatch"
	// NvdVendorProductMatch :
	NvdVendorProductMatch = "NvdVendorProductMatch"
	// JvnVendorProductMatch :
	JvnVendorProductMatch = "JvnVendorProductMatch"
	// FortinetExactVersionMatch :
	FortinetExactVersionMatch = "FortinetExactVersionMatch"
	// FortinetRoughVersionMatch :
	FortinetRoughVersionMatch = "FortinetRoughVersionMatch"
	// FortinetVendorProductMatch :
	FortinetVendorProductMatch = "FortinetVendorProductMatch"
)
View Source
const LatestSchemaVersion = 3

LatestSchemaVersion manages the Schema version used in the latest go-cve-dictionary.

Variables

This section is empty.

Functions

This section is empty.

Types

type Cert added in v0.8.1

type Cert struct {
	Title string `gorm:"type:text"`
	Link  string `gorm:"type:text"`
}

Cert holds CERT alerts.

type CpeBase added in v0.2.0

type CpeBase struct {
	URI                   string `gorm:"index;type:varchar(255)"`
	FormattedString       string `gorm:"index;type:varchar(255)"`
	WellFormedName        string `gorm:"type:text"`
	CpeWFN                `gorm:"embedded"`
	VersionStartExcluding string `gorm:"type:varchar(255)"`
	VersionStartIncluding string `gorm:"type:varchar(255)"`
	VersionEndExcluding   string `gorm:"type:varchar(255)"`
	VersionEndIncluding   string `gorm:"type:varchar(255)"`
}

CpeBase has common args of Cpe and EnvCpe

type CpeDetail added in v0.8.1

type CpeDetail struct {
	Nvds     []NvdCpe
	Jvns     []JvnCpe
	Fortinet []FortinetCpe
}

CpeDetail :

type CpeWFN added in v0.2.0

type CpeWFN struct {
	Part            string `gorm:"index;type:varchar(255)"`
	Vendor          string `gorm:"index;type:varchar(255)"`
	Product         string `gorm:"index;type:varchar(255)"`
	Version         string `gorm:"type:varchar(255)"`
	Update          string `gorm:"type:varchar(255)"`
	Edition         string `gorm:"type:varchar(255)"`
	Language        string `gorm:"type:varchar(255)"`
	SoftwareEdition string `gorm:"type:varchar(255)"`
	TargetSW        string `gorm:"type:varchar(255)"`
	TargetHW        string `gorm:"type:varchar(255)"`
	Other           string `gorm:"type:varchar(255)"`
}

CpeWFN has CPE Well Formed name information

type CveDetail

type CveDetail struct {
	CveID     string
	Nvds      []Nvd
	Jvns      []Jvn
	Fortinets []Fortinet
	Mitres    []Mitre
}

CveDetail :

func (CveDetail) HasFortinet added in v0.10.0

func (c CveDetail) HasFortinet() bool

HasFortinet returns true if Fortinet contents

func (CveDetail) HasJvn added in v0.8.1

func (c CveDetail) HasJvn() bool

HasJvn returns true if JVN contents

func (CveDetail) HasMitre added in v0.11.0

func (c CveDetail) HasMitre() bool

HasMitre returns true if Mitre contents

func (CveDetail) HasNvd added in v0.8.1

func (c CveDetail) HasNvd() bool

HasNvd returns true if NVD contents

type Cvss2 added in v0.2.0

type Cvss2 struct {
	VectorString          string `gorm:"type:varchar(255)"`
	AccessVector          string `gorm:"type:varchar(255)"`
	AccessComplexity      string `gorm:"type:varchar(255)"`
	Authentication        string `gorm:"type:varchar(255)"`
	ConfidentialityImpact string `gorm:"type:varchar(255)"`
	IntegrityImpact       string `gorm:"type:varchar(255)"`
	AvailabilityImpact    string `gorm:"type:varchar(255)"`
	BaseScore             float64
	Severity              string `gorm:"type:varchar(255)"`
}

Cvss2 has CVSS Version 2 info

type Cvss3 added in v0.2.0

type Cvss3 struct {
	VectorString          string `gorm:"type:varchar(255)"`
	AttackVector          string `gorm:"type:varchar(255)"`
	AttackComplexity      string `gorm:"type:varchar(255)"`
	PrivilegesRequired    string `gorm:"type:varchar(255)"`
	UserInteraction       string `gorm:"type:varchar(255)"`
	Scope                 string `gorm:"type:varchar(255)"`
	ConfidentialityImpact string `gorm:"type:varchar(255)"`
	IntegrityImpact       string `gorm:"type:varchar(255)"`
	AvailabilityImpact    string `gorm:"type:varchar(255)"`
	BaseScore             float64
	BaseSeverity          string `gorm:"type:varchar(255)"`
	ExploitabilityScore   float64
	ImpactScore           float64
}

Cvss3 has CVSS Version 3 info

type Cvss40 added in v0.11.0

type Cvss40 struct {
	VectorString          string  `gorm:"type:varchar(255)"`
	BaseScore             float64 `json:"baseScore"`
	BaseSeverity          string  `gorm:"type:varchar(255)"`
	ThreatScore           *float64
	ThreatSeverity        *string `gorm:"type:varchar(255)"`
	EnvironmentalScore    *float64
	EnvironmentalSeverity *string `gorm:"type:varchar(255)"`
}

Cvss40 has CVSS Version 4.0 info

type FetchMeta added in v0.8.1

type FetchMeta struct {
	gorm.Model        `json:"-"`
	GoCVEDictRevision string
	SchemaVersion     uint
	LastFetchedAt     time.Time
}

FetchMeta has meta information about fetched CVE data

func (FetchMeta) OutDated added in v0.8.1

func (f FetchMeta) OutDated() bool

OutDated checks whether last fetched feed is out dated

type Fortinet added in v0.10.0

type Fortinet struct {
	ID               int64  `json:"-"`
	AdvisoryID       string `gorm:"type:varchar(255)"`
	CveID            string `gorm:"index:idx_fortinets_cveid;type:varchar(255)"`
	Title            string `gorm:"type:varchar(255)"`
	Summary          string `gorm:"type:text"`
	Descriptions     string `gorm:"type:text"`
	Cvss3            FortinetCvss3
	Cwes             []FortinetCwe
	Cpes             []FortinetCpe
	References       []FortinetReference
	PublishedDate    time.Time
	LastModifiedDate time.Time
	AdvisoryURL      string `gorm:"type:text"`

	DetectionMethod string `gorm:"-"`
}

Fortinet is a model of Fortinet

type FortinetCpe added in v0.10.0

type FortinetCpe struct {
	ID         int64 `json:"-"`
	FortinetID uint  `json:"-" gorm:"index:idx_fortinet_cpes_fortinet_id"`
	CpeBase    `gorm:"embedded"`
}

FortinetCpe is Child model of Fortinet.

type FortinetCvss3 added in v0.10.0

type FortinetCvss3 struct {
	ID         int64 `json:"-"`
	FortinetID uint  `json:"-" gorm:"index:idx_fortinet_cvss3_fortinet_id"`
	Cvss3      `gorm:"embedded"`
}

FortinetCvss3 has Fortinet CVSS3 info

type FortinetCwe added in v0.10.0

type FortinetCwe struct {
	ID         int64  `json:"-"`
	FortinetID uint   `json:"-" gorm:"index:idx_fortinet_cwes_fortinet_id"`
	CweID      string `gorm:"type:varchar(255)"`
}

FortinetCwe has CweID

type FortinetReference added in v0.10.0

type FortinetReference struct {
	ID         int64 `json:"-"`
	FortinetID uint  `json:"-" gorm:"index:idx_fortinet_references_fortinet_id"`
	Reference  `gorm:"embedded"`
}

FortinetReference holds reference information about the CVE.

type Jvn

type Jvn struct {
	ID               int64  `json:"-"`
	CveID            string `gorm:"index:idx_jvns_cveid;type:varchar(255)"`
	Title            string `gorm:"type:varchar(255)"`
	Summary          string `gorm:"type:text"`
	JvnLink          string `gorm:"type:varchar(255)"`
	JvnID            string `gorm:"type:varchar(255)"`
	Cvss2            JvnCvss2
	Cvss3            JvnCvss3
	Cpes             []JvnCpe
	References       []JvnReference
	Certs            []JvnCert
	PublishedDate    time.Time
	LastModifiedDate time.Time

	DetectionMethod string `gorm:"-"`
}

Jvn is a model of JVN

type JvnCert added in v0.8.1

type JvnCert struct {
	ID    int64 `json:"-"`
	JvnID uint  `json:"-" gorm:"index:idx_jvn_certs_jvn_id"`
	Cert  `gorm:"embedded"`
}

JvnCert is Child model of Jvn.

type JvnCpe added in v0.8.1

type JvnCpe struct {
	ID      int64 `json:"-"`
	JvnID   uint  `json:"-" gorm:"index:idx_jvn_cpes_jvn_id"`
	CpeBase `gorm:"embedded"`
}

JvnCpe is Child model of Jvn. see https://www.ipa.go.jp/security/vuln/CPE.html

type JvnCvss2 added in v0.8.1

type JvnCvss2 struct {
	ID    int64 `json:"-"`
	JvnID uint  `json:"-" gorm:"index:idx_jvn_cvss2_jvn_id"`
	Cvss2 `gorm:"embedded"`
}

JvnCvss2 has Jvn CVSS Version 2 info

type JvnCvss3 added in v0.8.1

type JvnCvss3 struct {
	ID    int64 `json:"-"`
	JVNID uint  `json:"-" gorm:"index:idx_jvn_cvss3_jvn_id"`
	Cvss3 `gorm:"embedded"`
}

JvnCvss3 has JVN CVSS3 info

type JvnReference added in v0.8.1

type JvnReference struct {
	ID        int64 `json:"-"`
	JvnID     uint  `json:"-" gorm:"index:idx_jvn_references_jvn_id"`
	Reference `gorm:"embedded"`
}

JvnReference is Child model of Jvn.

type Mitre added in v0.11.0

type Mitre struct {
	ID          int64  `json:"-"`
	DataType    string `gorm:"type:varchar(255)"`
	DataVersion string `gorm:"type:varchar(255)"`
	CVEMetadata MitreCVEMetadata
	Containers  []MitreContainer
}

Mitre : https://cveproject.github.io/cve-schema/schema/CVE_Record_Format.json

type MitreCVEMetadata added in v0.11.0

type MitreCVEMetadata struct {
	ID                int64   `json:"-"`
	MitreID           uint    `json:"-" gorm:"index:idx_mitre_cve_metadata"`
	CVEID             string  `gorm:"index:idx_mitre_cve_metadata_cveid;type:varchar(255)"`
	AssignerOrgID     string  `gorm:"type:varchar(255)"`
	AssignerShortName *string `gorm:"type:varchar(32)"`
	RequesterUserID   *string `gorm:"type:varchar(255)"`
	Serial            *int
	State             string `gorm:"type:varchar(255)"`
	DatePublished     *time.Time
	DateUpdated       *time.Time
	DateReserved      *time.Time
	DateRejected      *time.Time
}

MitreCVEMetadata : #/definitions/cveMetadataPublished

type MitreConfiguration added in v0.11.0

type MitreConfiguration struct {
	ID               int64  `json:"-"`
	MitreContainerID uint   `json:"-" gorm:"index:idx_mitre_configuration"`
	Lang             string `gorm:"type:varchar(255)"`
	Value            string `gorm:"type:text"`
	SupportingMedia  []MitreConfigurationSupportingMedia
}

MitreConfiguration : #/definitions/configurations

type MitreConfigurationSupportingMedia added in v0.11.0

type MitreConfigurationSupportingMedia struct {
	ID                   int64  `json:"-"`
	MitreConfigurationID uint   `json:"-" gorm:"index:idx_mitre_configuration_supporting_media"`
	Type                 string `gorm:"type:varchar(256)"`
	Base64               *bool
	Value                string `gorm:"type:text"`
}

MitreConfigurationSupportingMedia : #/definitions/description

type MitreContainer added in v0.11.0

type MitreContainer struct {
	ID               int64  `json:"-"`
	MitreID          uint   `json:"-" gorm:"index:idx_mitre_containers"`
	ContainerType    string `gorm:"type:varchar(255)"`
	ProviderMetadata MitreProviderMetadata
	Title            *string `gorm:"type:varchar(256)"`
	Descriptions     []MitreDescription
	Affected         []MitreProduct
	ProblemTypes     []MitreProblemType
	Impacts          []MitreImpact
	Metrics          []MitreMetric
	Workarounds      []MitreWorkaround
	Solutions        []MitreSolution
	Exploits         []MitreExploit
	Configurations   []MitreConfiguration
	References       []MitreReference
	Timeline         []MitreTimeline
	Credits          []MitreCredit
	Source           string `gorm:"type:text"`
	Tags             []MitreTag
	TaxonomyMappings []MitreTaxonomyMapping
	DateAssigned     *time.Time
	DatePublic       *time.Time
}

MitreContainer : #/definitions/cnaPublishedContainer, #/definitions/adpContainer

type MitreCredit added in v0.11.0

type MitreCredit struct {
	ID               int64   `json:"-"`
	MitreContainerID uint    `json:"-" gorm:"index:idx_mitre_credit"`
	Type             *string `gorm:"type:varchar(255)"`
	Lang             string  `gorm:"type:varchar(255)"`
	User             *string `gorm:"type:varchar(255)"`
	Value            string  `gorm:"type:text"`
}

MitreCredit : #/definitions/credits

type MitreDescription added in v0.11.0

type MitreDescription struct {
	ID               int64  `json:"-"`
	MitreContainerID uint   `json:"-" gorm:"index:idx_mitre_description"`
	Lang             string `gorm:"type:varchar(255)"`
	Value            string `gorm:"type:text"`
	SupportingMedia  []MitreDescriptionSupportingMedia
}

MitreDescription : #/definitions/description

type MitreDescriptionSupportingMedia added in v0.11.0

type MitreDescriptionSupportingMedia struct {
	ID                 int64  `json:"-"`
	MitreDescriptionID uint   `json:"-" gorm:"index:idx_mitre_description_supporting_media"`
	Type               string `gorm:"type:varchar(256)"`
	Base64             *bool
	Value              string `gorm:"type:text"`
}

MitreDescriptionSupportingMedia : #/definitions/description

type MitreExploit added in v0.11.0

type MitreExploit struct {
	ID               int64  `json:"-"`
	MitreContainerID uint   `json:"-" gorm:"index:idx_mitre_exploit"`
	Lang             string `gorm:"type:varchar(255)"`
	Value            string `gorm:"type:text"`
	SupportingMedia  []MitreExploitSupportingMedia
}

MitreExploit : #/definitions/exploits

type MitreExploitSupportingMedia added in v0.11.0

type MitreExploitSupportingMedia struct {
	ID             int64  `json:"-"`
	MitreExploitID uint   `json:"-" gorm:"index:idx_mitre_exploit_supporting_media"`
	Type           string `gorm:"type:varchar(256)"`
	Base64         *bool
	Value          string `gorm:"type:text"`
}

MitreExploitSupportingMedia : #/definitions/description

type MitreImpact added in v0.11.0

type MitreImpact struct {
	ID               int64 `json:"-"`
	MitreContainerID uint  `json:"-" gorm:"index:idx_mitre_impact"`
	Descriptions     []MitreImpactDescription
	CapecID          *string `gorm:"type:varchar(11)"`
}

MitreImpact : #/definitions/impacts

type MitreImpactDescription added in v0.11.0

type MitreImpactDescription struct {
	ID              int64  `json:"-"`
	MitreImpactID   uint   `json:"-" gorm:"index:idx_mitre_impact_description"`
	Lang            string `gorm:"type:varchar(255)"`
	Value           string `gorm:"type:text"`
	SupportingMedia []MitreImpactDescriptionSupportingMedia
}

MitreImpactDescription : #/definitions/description

type MitreImpactDescriptionSupportingMedia added in v0.11.0

type MitreImpactDescriptionSupportingMedia struct {
	ID                       int64  `json:"-"`
	MitreImpactDescriptionID uint   `json:"-" gorm:"index:idx_mitre_impact_description_supporting_media"`
	Type                     string `gorm:"type:varchar(256)"`
	Base64                   *bool
	Value                    string `gorm:"type:text"`
}

MitreImpactDescriptionSupportingMedia : #/definitions/description

type MitreMetric added in v0.11.0

type MitreMetric struct {
	ID               int64  `json:"-"`
	MitreContainerID uint   `json:"-" gorm:"index:idx_mitre_metric"`
	Format           string `gorm:"type:varchar(64)"`
	Scenarios        []MitreMetricScenario
	CVSSv2           *MitreMetricCVSS2
	CVSSv30          *MitreMetricCVSS30
	CVSSv31          *MitreMetricCVSS31
	CVSSv40          *MitreMetricCVSS40
	SSVC             *MitreMetricSSVC
	KEV              *MitreMetricKEV
	Other            *MitreMetricOther
}

MitreMetric : #/definitions/metrics

type MitreMetricCVSS2 added in v0.11.0

type MitreMetricCVSS2 struct {
	ID            int64 `json:"-"`
	MitreMetricID uint  `json:"-" gorm:"index:idx_mitre_metric_cvss2"`
	Cvss2         `gorm:"embedded"`
}

MitreMetricCVSS2 : https://www.first.org/cvss/cvss-v2.0.json?20170531

type MitreMetricCVSS30 added in v0.11.0

type MitreMetricCVSS30 struct {
	ID            int64 `json:"-"`
	MitreMetricID uint  `json:"-" gorm:"index:idx_mitre_metric_cvss30"`
	Cvss3         `gorm:"embedded"`
}

MitreMetricCVSS30 : https://www.first.org/cvss/cvss-v3.0.json?20170531

type MitreMetricCVSS31 added in v0.11.0

type MitreMetricCVSS31 struct {
	ID            int64 `json:"-"`
	MitreMetricID uint  `json:"-" gorm:"index:idx_mitre_metric_cvss31"`
	Cvss3         `gorm:"embedded"`
}

MitreMetricCVSS31 : https://www.first.org/cvss/cvss-v3.1.json?20210501

type MitreMetricCVSS40 added in v0.11.0

type MitreMetricCVSS40 struct {
	ID            int64 `json:"-"`
	MitreMetricID uint  `json:"-" gorm:"index:idx_mitre_metric_cvss40"`
	Cvss40        `gorm:"embedded"`
}

MitreMetricCVSS40 : https://www.first.org/cvss/cvss-v4.0.json?20231011

type MitreMetricKEV added in v0.11.0

type MitreMetricKEV struct {
	ID            int64 `json:"-"`
	MitreMetricID uint  `json:"-" gorm:"index:idx_mitre_metric_kev"`
	DateAdded     time.Time
	Reference     string `gorm:"type:varchar(255)"`
}

MitreMetricKEV : https://github.com/cisagov/vulnrichment/blob/3f9d69632037fae3b7abdf47fc848c287702ffaa/assets/kev_metrics_schema-1.0.json

type MitreMetricOther added in v0.11.0

type MitreMetricOther struct {
	ID            int64  `json:"-"`
	MitreMetricID uint   `json:"-" gorm:"index:idx_mitre_metric_other"`
	Type          string `gorm:"type:varchar(128)"`
	Content       string `gorm:"type:text"`
}

MitreMetricOther : https://github.com/CVEProject/cve-schema/blob/30f59c7de92fbc77bddade302601cb500c66f718/schema/CVE_Record_Format.json#L901-L923

type MitreMetricSSVC added in v0.11.0

type MitreMetricSSVC struct {
	ID              int64  `json:"-"`
	MitreMetricID   uint   `json:"-" gorm:"index:idx_mitre_metric_ssvc"`
	Role            string `gorm:"type:varchar(255)"`
	Version         string `gorm:"type:varchar(255)"`
	Timestamp       time.Time
	Exploitation    *string `gorm:"type:varchar(255)"`
	Automatable     *string `gorm:"type:varchar(255)"`
	TechnicalImpact *string `gorm:"type:varchar(255)"`
}

MitreMetricSSVC :

type MitreMetricScenario added in v0.11.0

type MitreMetricScenario struct {
	ID            int64  `json:"-"`
	MitreMetricID uint   `json:"-" gorm:"index:idx_mitre_metric_scenario"`
	Lang          string `gorm:"type:varchar(255)"`
	Value         string `gorm:"type:text"`
}

MitreMetricScenario : #/definitions/metrics

type MitreProblemType added in v0.11.0

type MitreProblemType struct {
	ID               int64 `json:"-"`
	MitreContainerID uint  `json:"-" gorm:"index:idx_mitre_problem_type"`
	Descriptions     []MitreProblemTypeDescription
}

MitreProblemType : #/definitions/problemTypes

type MitreProblemTypeDescription added in v0.11.0

type MitreProblemTypeDescription struct {
	ID                 int64   `json:"-"`
	MitreProblemTypeID uint    `json:"-" gorm:"index:idx_mitre_problem_type_description"`
	Type               *string `gorm:"type:varchar(255)"`
	Lang               string  `gorm:"type:varchar(128)"`
	Description        string  `gorm:"type:text"`
	CweID              *string `gorm:"type:varchar(9)"`
	References         []MitreProblemTypeDescriptionReference
}

MitreProblemTypeDescription : #/definitions/problemTypes

type MitreProblemTypeDescriptionReference added in v0.11.0

type MitreProblemTypeDescriptionReference struct {
	ID                            int64 `json:"-"`
	MitreProblemTypeDescriptionID uint  `json:"-" gorm:"index:idx_mitre_problem_type_description_reference"`
	Reference                     `gorm:"embedded"`
}

MitreProblemTypeDescriptionReference : #/definitions/references

type MitreProduct added in v0.11.0

type MitreProduct struct {
	ID               int64   `json:"-"`
	MitreContainerID uint    `json:"-" gorm:"index:idx_mitre_product"`
	Vendor           *string `gorm:"type:text"`
	Product          *string `gorm:"type:text"`
	CollectionURL    *string `gorm:"type:text"`
	PackageName      *string `gorm:"type:text"`
	Cpes             []MitreProductCPE
	Modules          []MitreProductModule
	ProgramFiles     []MitreProductProgramFile
	ProgramRoutines  []MitreProductProgramRoutine
	Platforms        []MitreProductPlatform
	Repo             *string `gorm:"type:text"`
	DefaultStatus    *string
	Versions         []MitreProductVersion
}

MitreProduct : #/definitions/product

type MitreProductCPE added in v0.11.0

type MitreProductCPE struct {
	ID             int64  `json:"-"`
	MitreProductID uint   `json:"-" gorm:"index:idx_mitre_product_cpe"`
	CPE            string `gorm:"type:text"`
}

MitreProductCPE : #/definitions/product

type MitreProductModule added in v0.11.0

type MitreProductModule struct {
	ID             int64  `json:"-"`
	MitreProductID uint   `json:"-" gorm:"index:idx_mitre_product_module"`
	Module         string `gorm:"type:text"`
}

MitreProductModule : #/definitions/product

type MitreProductPlatform added in v0.11.0

type MitreProductPlatform struct {
	ID             int64  `json:"-"`
	MitreProductID uint   `json:"-" gorm:"index:idx_mitre_product_platform"`
	Platform       string `gorm:"type:text"`
}

MitreProductPlatform : #/definitions/product

type MitreProductProgramFile added in v0.11.0

type MitreProductProgramFile struct {
	ID             int64  `json:"-"`
	MitreProductID uint   `json:"-" gorm:"index:idx_mitre_product_program_file"`
	ProgramFile    string `gorm:"type:text"`
}

MitreProductProgramFile : #/definitions/product

type MitreProductProgramRoutine added in v0.11.0

type MitreProductProgramRoutine struct {
	ID             int64  `json:"-"`
	MitreProductID uint   `json:"-" gorm:"index:idx_mitre_product_program_routine"`
	Name           string `gorm:"type:text"`
}

MitreProductProgramRoutine : #/definitions/product

type MitreProductVersion added in v0.11.0

type MitreProductVersion struct {
	ID              int64   `json:"-"`
	MitreProductID  uint    `json:"-" gorm:"index:idx_mitre_product_version"`
	Status          string  `gorm:"type:varchar(255)"`
	VersionType     *string `gorm:"type:varchar(128)"`
	Version         string  `gorm:"type:text"`
	LessThan        *string `gorm:"type:text"`
	LessThanOrEqual *string `gorm:"type:text"`
	Changes         []MitreProductVersionChange
}

MitreProductVersion : #/definitions/product

type MitreProductVersionChange added in v0.11.0

type MitreProductVersionChange struct {
	ID                    int64  `json:"-"`
	MitreProductVersionID uint   `json:"-" gorm:"index:idx_mitre_product_version_change"`
	At                    string `gorm:"type:text"`
	Status                string `gorm:"type:varchar(255)"`
}

MitreProductVersionChange : #/definitions/product

type MitreProviderMetadata added in v0.11.0

type MitreProviderMetadata struct {
	ID               int64   `json:"-"`
	MitreContainerID uint    `json:"-" gorm:"index:idx_mitre_provider_metadata"`
	OrgID            string  `gorm:"type:varchar(255)"`
	ShortName        *string `gorm:"type:varchar(32)"`
	DateUpdated      *time.Time
}

MitreProviderMetadata : #/definitions/providerMetadata

type MitreReference added in v0.11.0

type MitreReference struct {
	ID               int64 `json:"-"`
	MitreContainerID uint  `json:"-" gorm:"index:idx_mitre_reference"`
	Reference        `gorm:"embedded"`
}

MitreReference : #/definitions/references

type MitreSolution added in v0.11.0

type MitreSolution struct {
	ID               int64  `json:"-"`
	MitreContainerID uint   `json:"-" gorm:"index:idx_mitre_solution"`
	Lang             string `gorm:"type:varchar(255)"`
	Value            string `gorm:"type:text"`
	SupportingMedia  []MitreSolutionSupportingMedia
}

MitreSolution : #/definitions/solutions

type MitreSolutionSupportingMedia added in v0.11.0

type MitreSolutionSupportingMedia struct {
	ID              int64  `json:"-"`
	MitreSolutionID uint   `json:"-" gorm:"index:idx_mitre_solution_supporting_media"`
	Type            string `gorm:"type:varchar(256)"`
	Base64          *bool
	Value           string `gorm:"type:text"`
}

MitreSolutionSupportingMedia : #/definitions/description

type MitreTag added in v0.11.0

type MitreTag struct {
	ID               int64  `json:"-"`
	MitreContainerID uint   `json:"-" gorm:"index:idx_mitre_tag"`
	Tag              string `gorm:"type:varchar(255)"`
}

MitreTag : #/definitions/cnaTags, #/definitions/adpTags

type MitreTaxonomyMapping added in v0.11.0

type MitreTaxonomyMapping struct {
	ID                int64   `json:"-"`
	MitreContainerID  uint    `json:"-" gorm:"index:idx_mitre_taxonomy_mapping"`
	TaxonomyVersion   *string `gorm:"type:varchar(128)"`
	TaxonomyName      string  `gorm:"type:varchar(128)"`
	TaxonomyRelations []MitreTaxonomyRelation
}

MitreTaxonomyMapping : #/definitions/taxonomyMappings

type MitreTaxonomyRelation added in v0.11.0

type MitreTaxonomyRelation struct {
	ID                     int64  `json:"-"`
	MitreTaxonomyMappingID uint   `json:"-" gorm:"index:idx_mitre_taxonomy_relation"`
	TaxonomyID             string `gorm:"type:text"`
	RelationshipName       string `gorm:"type:varchar(128)"`
	RelationshipValue      string `gorm:"type:text"`
}

MitreTaxonomyRelation : #/definitions/taxonomyMappings

type MitreTimeline added in v0.11.0

type MitreTimeline struct {
	ID               int64 `json:"-"`
	MitreContainerID uint  `json:"-" gorm:"index:idx_mitre_timeline"`
	Time             time.Time
	Lang             string `gorm:"type:varchar(255)"`
	Value            string `gorm:"type:text"`
}

MitreTimeline : #/definitions/timeline

type MitreWorkaround added in v0.11.0

type MitreWorkaround struct {
	ID               int64  `json:"-"`
	MitreContainerID uint   `json:"-" gorm:"index:idx_mitre_workaround"`
	Lang             string `gorm:"type:varchar(255)"`
	Value            string `gorm:"type:text"`
	SupportingMedia  []MitreWorkaroundSupportingMedia
}

MitreWorkaround : #/definitions/workarounds

type MitreWorkaroundSupportingMedia added in v0.11.0

type MitreWorkaroundSupportingMedia struct {
	ID                int64  `json:"-"`
	MitreWorkaroundID uint   `json:"-" gorm:"index:idx_mitre_workaround_supporting_media"`
	Type              string `gorm:"type:varchar(256)"`
	Base64            *bool
	Value             string `gorm:"type:text"`
}

MitreWorkaroundSupportingMedia : #/definitions/description

type Nvd

type Nvd struct {
	ID               int64  `json:"-"`
	CveID            string `gorm:"index:idx_nvds_cveid;type:varchar(255)"`
	Descriptions     []NvdDescription
	Cvss2            []NvdCvss2Extra
	Cvss3            []NvdCvss3
	Cvss40           []NvdCvss40
	Cwes             []NvdCwe
	Cpes             []NvdCpe
	References       []NvdReference
	Certs            []NvdCert
	PublishedDate    time.Time
	LastModifiedDate time.Time

	DetectionMethod string `gorm:"-"`
}

Nvd is a struct of NVD JSON https://scap.nist.gov/schema/nvd/feed/0.1/nvd_cve_feed_json_0.1_beta.schema

type NvdCert added in v0.8.1

type NvdCert struct {
	ID    int64 `json:"-"`
	NvdID uint  `json:"-" gorm:"index:idx_nvd_certs_nvd_id"`
	Cert  `gorm:"embedded"`
}

NvdCert is Child model of Nvd.

type NvdCpe added in v0.8.1

type NvdCpe struct {
	ID      int64 `json:"-"`
	NvdID   uint  `json:"-" gorm:"index:idx_nvd_cpes_nvd_id"`
	CpeBase `gorm:"embedded"`
	EnvCpes []NvdEnvCpe
}

NvdCpe is Child model of Nvd. see https://www.ipa.go.jp/security/vuln/CPE.html In NVD, configurations>nodes>cpe>vulnerable: true

type NvdCvss2Extra added in v0.8.1

type NvdCvss2Extra struct {
	ID                      int64  `json:"-"`
	NvdID                   uint   `json:"-" gorm:"index:idx_nvd_cvss2_extra_nvd_id"`
	Source                  string `gorm:"type:text"`
	Type                    string `gorm:"type:varchar(255)"`
	Cvss2                   `gorm:"embedded"`
	ExploitabilityScore     float64
	ImpactScore             float64
	ObtainAllPrivilege      bool
	ObtainUserPrivilege     bool
	ObtainOtherPrivilege    bool
	UserInteractionRequired bool
}

NvdCvss2Extra has Nvd extra CVSS V2 info

type NvdCvss3 added in v0.8.1

type NvdCvss3 struct {
	ID     int64  `json:"-"`
	NvdID  uint   `json:"-" gorm:"index:idx_nvd_cvss3_nvd_id"`
	Source string `gorm:"type:text"`
	Type   string `gorm:"type:varchar(255)"`
	Cvss3  `gorm:"embedded"`
}

NvdCvss3 has Nvd CVSS3 info

type NvdCvss40 added in v0.11.0

type NvdCvss40 struct {
	ID     int64  `json:"-"`
	NvdID  uint   `json:"-" gorm:"index:idx_nvd_cvss40_nvd_id"`
	Source string `gorm:"type:text"`
	Type   string `gorm:"type:varchar(255)"`
	Cvss40 `gorm:"embedded"`
}

NvdCvss40 has Nvd CVSS40 info

type NvdCwe added in v0.8.1

type NvdCwe struct {
	ID     int64  `json:"-"`
	NvdID  uint   `json:"-" gorm:"index:idx_nvd_cwes_nvd_id"`
	Source string `gorm:"type:text"`
	Type   string `gorm:"type:varchar(255)"`
	CweID  string `gorm:"type:varchar(255)"`
}

NvdCwe has CweID

type NvdDescription added in v0.8.1

type NvdDescription struct {
	ID    int64  `json:"-"`
	NvdID uint   `json:"-" gorm:"index:idx_nvd_descriptions_nvd_id"`
	Lang  string `gorm:"type:varchar(255)"`
	Value string `gorm:"type:text"`
}

NvdDescription has description of the CVE

type NvdEnvCpe added in v0.8.1

type NvdEnvCpe struct {
	ID       int64 `json:"-"`
	NvdCpeID uint  `json:"-" gorm:"index:idx_nvd_env_cpes_nvd_cpe_id"`
	CpeBase  `gorm:"embedded"`
}

NvdEnvCpe is a Environmental CPE Only NVD has this information. configurations>nodes>cpe>vulnerable: false

type NvdReference added in v0.8.1

type NvdReference struct {
	ID        int64 `json:"-"`
	NvdID     uint  `json:"-" gorm:"index:idx_nvd_references_nvd_id"`
	Reference `gorm:"embedded"`
}

NvdReference holds reference information about the CVE.

type Reference

type Reference struct {
	Link   string `gorm:"type:text"`
	Source string `gorm:"type:varchar(255)"`
	Tags   string `gorm:"type:varchar(255)"`
	Name   string `gorm:"type:text"`
}

Reference holds reference information about the CVE.

Jump to

Keyboard shortcuts

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