api

package
v0.0.0-...-7559ec8 Latest Latest
Warning

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

Go to latest
Published: Mar 22, 2023 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type TenableACRDrivers

type TenableACRDrivers struct {
	Name  string   `json:"driver_name"`
	Value []string `json:"driver_value"`
}

type TenableAPI

type TenableAPI struct {
	HTTPClient *http.Client
}

func (*TenableAPI) Configure

func (t *TenableAPI) Configure(access_key string, secret_key string)

func (*TenableAPI) ExportAllAssets

func (t *TenableAPI) ExportAllAssets(updated_after *int64) (TenableAssetsList, error)

Export all assets. Monitors export state and returns once all export chunks are ready and parsed.

https://developer.tenable.com/reference/exports-assets-export-status

func (*TenableAPI) ExportAllVulns

func (t *TenableAPI) ExportAllVulns() (TenableVulnList, error)

Export all assets. Monitors export state and returns once all export chunks are ready and parsed.

https://developer.tenable.com/reference/exports-assets-export-status

Note: Per the Tenable API docs: By default, vulnerability exports will only include vulnerabilities found or fixed within the last 30 days if no time-based filters (indexed_at, last_fixed, last_found, or first_found) are submitted with the request.

func (*TenableAPI) Get

func (t *TenableAPI) Get(url string) ([]byte, error)

func (*TenableAPI) GetConnectorsList

func (t *TenableAPI) GetConnectorsList(limit int32, offset int32, sort_type string) (*TenableConnectorList, error)

func (*TenableAPI) ListAllAssets

func (t *TenableAPI) ListAllAssets() (TenableAssetsList, error)

List all assets. Limited to 5000 assets, per Tenable API limitations.

https://developer.tenable.com/reference/io-v3-uw-assets-search

func (*TenableAPI) Post

func (t *TenableAPI) Post(url string, payload io.Reader) ([]byte, error)

func (*TenableAPI) SearchAllAssets

func (t *TenableAPI) SearchAllAssets(filter string, limit int32) (TenableAssetsList, error)

Search assets in inventory based on the properties listed in the properties argument, by the conditions in the filter argument. Results are limited to the value of the limit argument. For syntax to use when specifying properties and filters, refer to the official Tenable API documentation.

Example: api.SearchAllAssets(`{"and":[{"value":"*test*","operator":"wc","property":"search.alias.host"}]}`, 100)

https://developer.tenable.com/reference/io-v3-uw-assets-search

type TenableAsset

type TenableAsset interface {
	GetID() string
	GetName() string
	GetSources() []string
	GetFirstSeen() time.Time
	GetLastSeen() time.Time
	GetCreated() time.Time
	GetUpdated() time.Time
	GetIPV4Addresses() []string
	GetIPV6Addresses() []string
	GetDefaultIPV4() string
	GetOS() string
	GetSystemType() string
}

type TenableAssetExport

type TenableAssetExport struct {
	// system identification
	ID               string               `json:"id"`
	HasAgent         bool                 `json:"has_agent"`
	HasPluginResults bool                 `json:"has_plugin_results"`
	Name             string               `json:"name"`
	FQDNs            []string             `json:"fqdns"`
	Sources          []TenableAssetSource `json:"sources"`
	AgentUUID        string               `json:"agent_uauid"`
	BIOSUUID         string               `json:"bios_uuid"`
	// Scoring
	ACRScore      string `json:"acr_score"`
	ExposureScore string `json:"exposure_score"`
	// timing
	FirstSeen        time.Time `json:"first_seen"`
	LastSeen         time.Time `json:"last_seen"`
	FirstScan        time.Time `json:"first_scan_time"`
	LastScan         time.Time `json:"last_scan_time"`
	LastAuthScan     time.Time `json:"last_authenticated_scan_date"`
	LastLicensedScan time.Time `json:"last_licensed_scan_date"`
	Deleted          time.Time `json:"deleted_at"`
	Created          time.Time `json:"created_at"`
	Updated          time.Time `json:"updated_at"`
	// lifecycle
	DeletedBy      string `json:"delted_by"`
	LastScanID     string `json:"last_scan_id"`
	LastScheduleID string `json:"last_schedule_id"`
	// networks
	IPv4Addresses []string              `json:"ipv4s"`
	IPv6Addresses []string              `json:"ipv6s"`
	MACAddresses  []string              `json:"mac_addresses"`
	NetInterfaces []TenableAssetNetwork `json:"network_interfaces"`
	NetworkName   string                `json:"network_name"`
	NetworkID     string                `json:"network_id"`
	// OS things
	Hostnames       []string `json:"hostnames"`
	OSes            []string `json:"operating_systems"`
	NetBIOS         []string `json:"netbios_names"`
	SystemTypes     []string `json:"system_types"`
	SSHFingerprints []string `json:"ssh_fingerprints"`
	Software        []string `json:"installed_software"`
	// AWS things
	AWSInstanceName  string    `json:"aws_ec2_name"`
	AWSTerminatedAt  time.Time `json:"terminated_at"`
	AWSTerminatedBy  string    `json:"terminated_by"`
	AWSInstanceID    string    `json:"aws_ec2_instance_id"`
	AWSInstanceType  string    `json:"aws_ec2_instance_type"`
	AWSVPCID         string    `json:"aws_vpc_id"`
	AWSImageID       string    `json:"aws_ec2_instance_ami_id"`
	AWSOwnerID       string    `json:"aws_owner_id"`
	AWSAZ            string    `json:"aws_availability_zone"`
	AWSRegion        string    `json:"aws_region"`
	AWSGroupName     string    `json:"aws_ec2_instance_group_name"`
	AWSInstanceState string    `json:"aws_ec2_instance_state_name"`
	// Azure things
	AzureVMID       string `json:"azure_vm_id"`
	AzureResourceID string `json:"azure_resource_id"`
	// GCP things
	GCPProjectID  string `json:"gcp_project_id"`
	GCPInstanceID string `json:"gcp_instance_id"`
	GCPZone       string `json:"gcp_zone"`
}

asset export items

func (TenableAssetExport) GetCreated

func (t TenableAssetExport) GetCreated() time.Time

func (TenableAssetExport) GetDefaultIPV4

func (t TenableAssetExport) GetDefaultIPV4() string

func (TenableAssetExport) GetFirstSeen

func (t TenableAssetExport) GetFirstSeen() time.Time

func (TenableAssetExport) GetID

func (t TenableAssetExport) GetID() string

func (TenableAssetExport) GetIPV4Addresses

func (t TenableAssetExport) GetIPV4Addresses() []string

func (TenableAssetExport) GetIPV6Addresses

func (t TenableAssetExport) GetIPV6Addresses() []string

func (TenableAssetExport) GetLastSeen

func (t TenableAssetExport) GetLastSeen() time.Time

func (TenableAssetExport) GetName

func (t TenableAssetExport) GetName() string

func (TenableAssetExport) GetOS

func (t TenableAssetExport) GetOS() string

func (TenableAssetExport) GetSources

func (t TenableAssetExport) GetSources() []string

func (TenableAssetExport) GetSystemType

func (t TenableAssetExport) GetSystemType() string

func (TenableAssetExport) GetUpdated

func (t TenableAssetExport) GetUpdated() time.Time

type TenableAssetList

type TenableAssetList struct {
	// system identification
	ID       string               `json:"id"`
	HasAgent bool                 `json:"has_agent"`
	Agents   []string             `json:"agent_name"`
	Name     string               `json:"name"`
	FQDNs    []string             `json:"fqdn"`
	Sources  []TenableAssetSource `json:"sources,omitempty"`
	// Scoring
	ACRScore      int32               `json:"acr_score"`
	ACRDrivers    []TenableACRDrivers `json:"acr_drivers"`
	ExposureScore int32               `json:"exposure_score"`
	// timing
	FirstSeen     time.Time         `json:"first_observed"`
	LastSeen      time.Time         `json:"last_observed"`
	Created       time.Time         `json:"created"`
	Updated       time.Time         `json:"updated"`
	ScanFrequency []TenableScanFreq `json:"scan_frequency"`
	// networks
	IPv4Addresses []string `json:"ipv4"`
	IPv6Addresses []string `json:"ipv6"`
	MACAddresses  []string `json:"mac_address"`
	// OS things
	OSes       []string `json:"operating_system"`
	NetBIOS    []string `json:"netbios_name"`
	SystemType string   `json:"system_type"`
	// AWS things
	AWSNames []string `json:"aws_ec2_name"`
}

func (TenableAssetList) GetCreated

func (t TenableAssetList) GetCreated() time.Time

func (TenableAssetList) GetDefaultIPV4

func (t TenableAssetList) GetDefaultIPV4() string

func (TenableAssetList) GetFirstSeen

func (t TenableAssetList) GetFirstSeen() time.Time

func (TenableAssetList) GetID

func (t TenableAssetList) GetID() string

func (TenableAssetList) GetIPV4Addresses

func (t TenableAssetList) GetIPV4Addresses() []string

func (TenableAssetList) GetIPV6Addresses

func (t TenableAssetList) GetIPV6Addresses() []string

func (TenableAssetList) GetLastSeen

func (t TenableAssetList) GetLastSeen() time.Time

func (TenableAssetList) GetName

func (t TenableAssetList) GetName() string

func (TenableAssetList) GetOS

func (t TenableAssetList) GetOS() string

func (TenableAssetList) GetSources

func (t TenableAssetList) GetSources() []string

func (TenableAssetList) GetSystemType

func (t TenableAssetList) GetSystemType() string

func (TenableAssetList) GetUpdated

func (t TenableAssetList) GetUpdated() time.Time

type TenableAssetNetwork

type TenableAssetNetwork struct {
	Name       string `json:"name"`
	MACAddress string `json:"name"`
	IPv4       string `json:"ipv4"`
	IPv6       string `json:"ipv6"`
	FQDN       string `json:"fqdn"`
}

type TenableAssetSearch

type TenableAssetSearch struct {
	// system identification
	ID       string   `json:"id"`
	Name     string   `json:"name"`
	HostName string   `json:"host_name"`
	Sources  []string `json:"sources,omitempty"`
	// timing
	FirstSeen time.Time `json:"first_observed"`
	LastSeen  time.Time `json:"last_observed"`
	Created   time.Time `json:"created"`
	Updated   time.Time `json:"updated"`
	// networks
	IPv4Addresses []string       `json:"ipv4_addresses"`
	IPv6Addresses []string       `json:"ipv6_addresses"`
	IPv4          string         `json:"display_ipv4_address"`
	Network       TenableNetwork `json:"network"`
	// OS things
	OperatingSystems []string `json:"operating_systems"`
	OS               string   `json:"display_operating_system"`
	SystemType       string   `json:"system_type"`
	// GCP things
	GCPZone string `json:"gcp_zone,omitempty"`
}

func (TenableAssetSearch) GetCreated

func (t TenableAssetSearch) GetCreated() time.Time

func (TenableAssetSearch) GetDefaultIPV4

func (t TenableAssetSearch) GetDefaultIPV4() string

func (TenableAssetSearch) GetFirstSeen

func (t TenableAssetSearch) GetFirstSeen() time.Time

func (TenableAssetSearch) GetID

func (t TenableAssetSearch) GetID() string

func (TenableAssetSearch) GetIPV4Addresses

func (t TenableAssetSearch) GetIPV4Addresses() []string

func (TenableAssetSearch) GetIPV6Addresses

func (t TenableAssetSearch) GetIPV6Addresses() []string

func (TenableAssetSearch) GetLastSeen

func (t TenableAssetSearch) GetLastSeen() time.Time

func (TenableAssetSearch) GetName

func (t TenableAssetSearch) GetName() string

func (TenableAssetSearch) GetOS

func (t TenableAssetSearch) GetOS() string

func (TenableAssetSearch) GetSources

func (t TenableAssetSearch) GetSources() []string

func (TenableAssetSearch) GetSystemType

func (t TenableAssetSearch) GetSystemType() string

func (TenableAssetSearch) GetUpdated

func (t TenableAssetSearch) GetUpdated() time.Time

type TenableAssetSource

type TenableAssetSource struct {
	Name      string    `json:"name"`
	FirstSeen time.Time `json:"first_seen"`
	LastSeen  time.Time `json:"last_seen"`
}

type TenableAssetVulnExport

type TenableAssetVulnExport struct {
	AgentUUID         string   `json:"agent_uuid"`
	BIOSUUID          string   `json:"bios_uuid"`
	DeviceType        string   `json:"device_type"`
	FQDN              string   `json:"fqdn"`
	Hostname          string   `json:"hostname"`
	UUID              string   `json:"uuid"`
	IPv6              string   `json:"ipv6"`
	IPv4              string   `json:"ipv4,omitempty"`
	LastAuthResults   string   `json:"last_authenticated_results"`
	LastUnauthResults string   `json:"last_unauthenticated_results"`
	MACAddress        string   `json:"mac_address"`
	NetBIOSName       string   `json:"netbios_name"`
	NetBIOSWorkgroup  string   `json:"netbios_workgroup"`
	OS                []string `json:"operating_system"`
	NetworkID         string   `json:"network_id"`
	Tracked           bool     `json:"tracked"`
}

func (TenableAssetVulnExport) GetCreated

func (t TenableAssetVulnExport) GetCreated() time.Time

func (TenableAssetVulnExport) GetDefaultIPV4

func (t TenableAssetVulnExport) GetDefaultIPV4() string

func (TenableAssetVulnExport) GetFirstSeen

func (t TenableAssetVulnExport) GetFirstSeen() time.Time

func (TenableAssetVulnExport) GetID

func (t TenableAssetVulnExport) GetID() string

func (TenableAssetVulnExport) GetIPV4Addresses

func (t TenableAssetVulnExport) GetIPV4Addresses() []string

func (TenableAssetVulnExport) GetIPV6Addresses

func (t TenableAssetVulnExport) GetIPV6Addresses() []string

func (TenableAssetVulnExport) GetLastSeen

func (t TenableAssetVulnExport) GetLastSeen() time.Time

func (TenableAssetVulnExport) GetName

func (t TenableAssetVulnExport) GetName() string

func (TenableAssetVulnExport) GetOS

func (t TenableAssetVulnExport) GetOS() string

func (TenableAssetVulnExport) GetSources

func (t TenableAssetVulnExport) GetSources() []string

func (TenableAssetVulnExport) GetSystemType

func (t TenableAssetVulnExport) GetSystemType() string

func (TenableAssetVulnExport) GetUpdated

func (t TenableAssetVulnExport) GetUpdated() time.Time

type TenableAssetsExportTop

type TenableAssetsExportTop struct {
	Assets []TenableAssetExport `json:"assets"`
	Total  int32                `json:"total"`
}

func (*TenableAssetsExportTop) AppendAsset

func (t *TenableAssetsExportTop) AppendAsset(asset TenableAsset)

func (TenableAssetsExportTop) GetAssets

func (t TenableAssetsExportTop) GetAssets() []TenableAsset

type TenableAssetsList

type TenableAssetsList interface {
	GetAssets() []TenableAsset
	AppendAsset(TenableAsset)
}

asset listings

type TenableAssetsListTop

type TenableAssetsListTop struct {
	Assets []TenableAssetList `json:"assets"`
	Total  int32              `json:"total"`
}

func (*TenableAssetsListTop) AppendAsset

func (t *TenableAssetsListTop) AppendAsset(asset TenableAsset)

func (TenableAssetsListTop) GetAssets

func (t TenableAssetsListTop) GetAssets() []TenableAsset

type TenableAssetsSearchTop

type TenableAssetsSearchTop struct {
	Assets     []TenableAssetSearch `json:"assets"`
	Pagination TenablePagination    `json:"pagination"`
}

asset search top listing

func (*TenableAssetsSearchTop) AppendAsset

func (t *TenableAssetsSearchTop) AppendAsset(asset TenableAsset)

func (TenableAssetsSearchTop) GetAssets

func (t TenableAssetsSearchTop) GetAssets() []TenableAsset

type TenableConnector

type TenableConnector struct {
	Type            string                      `json:"type"`
	HumanType       string                      `json:"human_type"`
	DataType        string                      `json:"data_type"`
	Name            string                      `json:"name"`
	IsFA            bool                        `json:"is_fa,omitempty"`
	Status          string                      `json:"status"`
	StatusMessage   string                      `json:"status_message"`
	Schedule        TenableConnectorSchedule    `json:"schedule"`
	DateCreated     time.Time                   `json:"date_created"`
	DateModified    time.Time                   `json:"date_modified"`
	Id              string                      `json:"id"`
	ContainerUUID   string                      `json:"container_uuid"`
	Expired         bool                        `json:"expired"`
	IncrementalMode bool                        `json:"incremental_mode"`
	LastSyncTime    time.Time                   `json:"last_sync_time"`
	LastRun         time.Time                   `json:"last_run"`
	Params          TenableConnectorParam       `json:"params"`
	NetworkUUID     string                      `json:"network_uuid"`
	LastSeenUpdated string                      `json:"last_seen_updated"`
	SubAccounts     TenableConnectorSubAccounts `json:"sub_accounts"`
}

type TenableConnectorList

type TenableConnectorList struct {
	Connectors []TenableConnector `sjson:"connectors"`
}

type TenableConnectorParam

type TenableConnectorParam struct {
	Status        map[string]TenableConnectorParamStatus `json:"status"`
	Service       string                                 `json:"service"`
	ImportConfig  bool                                   `json:"import_config,omitempty"`
	AutoDiscovery bool                                   `json:"auto_discovery,omitempty"`
}

type TenableConnectorParamStatus

type TenableConnectorParamStatus struct {
	LastEventSeen    time.Time `json:"last_event_seen,omitempty"`
	ReleaseTimeStamp time.Time `json:"release_timestamp"`
	Message          string    `json:"message"`
	State            string    `json:"state"`
}

type TenableConnectorSchedule

type TenableConnectorSchedule struct {
	Units string `json:"units"`
	Value int    `json:"value"`
	Empty bool   `json:"empty"`
}

type TenableConnectorSubAccounts

type TenableConnectorSubAccounts struct {
	AccountID       string   `json:"account_id"`
	Trails          []string `json:"trails"` //Not sure what this struct looks like, but its being deprecated
	ExternalIP      string   `json:"external_id"`
	IncrementalMode bool     `json:"incremental_mode"`
	RoleARN         string   `json:"role_arn"`
}

type TenableExportJob

type TenableExportJob struct {
	UUID string `json:"export_uuid"`
}

type TenableExportList

type TenableExportList struct {
	Exports []TenableExportListItem `json:"exports"`
}

type TenableExportListItem

type TenableExportListItem struct {
	UUID           string `json:"uuid"`
	Status         string `json:"status"`
	TotalChunks    int32  `json:"total_chunks"`
	FinishedChunks int32  `json:"finished_chunks"`
	ItemsPerChunk  int32  `json:"num_assets_per_chunk"`
	Created        int32  `json:"created"`
}

type TenableExportStatus

type TenableExportStatus struct {
	Status    string  `json:"status"`
	Available []int32 `json:"chunks_available"`
}

type TenableNetwork

type TenableNetwork struct {
	ID   string `json:"id"`
	Name string `json:"name"`
}

type TenablePagination

type TenablePagination struct {
	Limit int32  `json:"limit"`
	Total int32  `json:"total"`
	Next  string `json:"next"`
}

type TenableScanFreq

type TenableScanFreq struct {
	IntervalDays int32 `json:"interval"`
	Frequency    int32 `json:"frequency"`
	Licensed     bool  `json:"licensed"`
}

type TenableSeverityCount

type TenableSeverityCount struct {
	Count json.Number `json:"count"`
	Level json.Number `json:"level"`
	Name  string      `json:"name"`
}

type TenableTransport

type TenableTransport struct {
	AccessKey string
	SecretKey string
	// contains filtered or unexported fields
}

func (TenableTransport) RoundTrip

func (tt TenableTransport) RoundTrip(req *http.Request) (*http.Response, error)

type TenableVuln

type TenableVuln interface {
	GetName() string
	GetDescription() string
	GetSeverity() string
	GetHost() string
	GetPort() int32
	GetStatus() string
	GetOutput() string
	GetLastSeen() time.Time
	GetFirstSeen() time.Time
	GetLastFixed() time.Time
}

type TenableVulnExport

type TenableVulnExport struct {
	Asset                    TenableAssetVulnExport `json:"asset"`
	Output                   string                 `json:"output"`
	Plugin                   TenableVulnPlugin      `json:"plugin"`
	Port                     TenableVulnPort        `json:"port"`
	RecastReason             string                 `json:"recast_reason"`
	RecastRuleUUID           string                 `json:"recast_rule_uuid"`
	Scan                     TenableVulnScanEntry   `json:"scan"`
	Severity                 string                 `json:"severity"`
	SeverityID               int32                  `json:"severity_id"`
	SeverityDefaultID        int32                  `json:"severity_default_id"`
	SeverityModificationType string                 `json:"severity_modification_type"`
	FirstFound               time.Time              `json:"first_found"`
	LastFixed                time.Time              `json:"last_fixed"`
	LastFound                time.Time              `json:"last_found"`
	IndexedAt                time.Time              `json:"indexed_at"`
	State                    string                 `json:"state"`
}

vuln export items

func (TenableVulnExport) GetDescription

func (t TenableVulnExport) GetDescription() string

func (TenableVulnExport) GetFirstSeen

func (t TenableVulnExport) GetFirstSeen() time.Time

func (TenableVulnExport) GetHost

func (t TenableVulnExport) GetHost() string

func (TenableVulnExport) GetLastFixed

func (t TenableVulnExport) GetLastFixed() time.Time

func (TenableVulnExport) GetLastSeen

func (t TenableVulnExport) GetLastSeen() time.Time

func (TenableVulnExport) GetName

func (t TenableVulnExport) GetName() string

func (TenableVulnExport) GetOutput

func (t TenableVulnExport) GetOutput() string

func (TenableVulnExport) GetPort

func (t TenableVulnExport) GetPort() int32

func (TenableVulnExport) GetSeverity

func (t TenableVulnExport) GetSeverity() string

func (TenableVulnExport) GetStatus

func (t TenableVulnExport) GetStatus() string

type TenableVulnList

type TenableVulnList interface {
	GetVulns() []TenableVuln
	AppendVuln(TenableVuln)
}

vuln listings

type TenableVulnPlugin

type TenableVulnPlugin struct {
	BugtraqID                  []int32                   `json:"bid"`
	CANVASPackage              string                    `json:"canvas_package"`
	ChecksDefaultAccount       bool                      `json:"checks_for_default_account"`
	ChecksMalware              bool                      `json:"checks_for_malware"`
	CPE                        []string                  `json:"cpe"`
	CVE                        []string                  `json:"cve,omitempty"`
	CVSS3BaseScore             float32                   `json:"cvss3_base_score,omitempty"`
	CVSS3TemporalScore         float32                   `json:"cvss3_temporal_score"`
	CVSS3TemporalVector        TenableVulnTemporalVector `json:"cvss3_temporal_vector"`
	CVSS3Vector                TenableVulnVector         `json:"cvss3_vector"`
	CVSSBaseScore              float32                   `json:"cvss_base_score"`
	CVSSTemporalScore          float32                   `json:"cvss_temporal_score"`
	CVSSTemporalVector         TenableVulnTemporalVector `json:"cvss_temporal_vector"`
	CVSSVector                 TenableVulnVector         `json:"cvss_vector"`
	D3ElliotName               string                    `json:"d2_elliot_name"`
	Description                string                    `json:"description"`
	ExploitAvailable           bool                      `json:"exploit_available"`
	ExploitFrameworkCANVAS     bool                      `json:"exploit_framework_canvas"`
	ExploitFrameworkCore       bool                      `json:"exploit_framework_core"`
	ExploitFrameworkD2Ellior   bool                      `json:"exploit_framework_d2_elliot"`
	ExploitFrameworkExploitHub bool                      `json:"exploit_framework_exploithub"`
	ExploitFrameworkMetasploit bool                      `json:"exploit_framework_metasploit"`
	ExploitabilityEase         string                    `json:"exploitability_ease"`
	ExploitedByMalware         bool                      `json:"exploited_by_malware"`
	ExploitedByNessus          bool                      `json:"exploited_by_nessus"`
	ExploitHubSKU              string                    `json:"exploithub_sku"`
	Family                     string                    `json:"family"`
	FamilyID                   int32                     `json:"family_id"`
	HasPatch                   bool                      `json:"has_patch"`
	ID                         int32                     `json:"id"`
	InTheNews                  bool                      `json:"in_the_news"`
	MetasploitName             string                    `json:"metasploit_name"`
	MSBulletine                string                    `json:"ms_bulletin"`
	Name                       string                    `json:"name"`
	PatchPublicationDate       time.Time                 `json:patch_publication_date"`
	ModificationDate           time.Time                 `json:modification_date"`
	PublicationDate            time.Time                 `json:publication_date"`
	RiskFactor                 string                    `json:"risk_factor"`
	SeeAlso                    []string                  `json:"see_also"`
	Solution                   string                    `json:"solution"`
	StigSeverity               string                    `json:"stig_severity"`
	Synopsis                   string                    `json:"synopsis"`
	UnsupportedByVendor        bool                      `json:"unsupported_by_vendor"`
	USN                        string                    `json:"usn"`
	Version                    string                    `json:"version"`
	VulnPublicationDate        time.Time                 `json:"vuln_publication_date"`
	VPR                        TenableVulnVPR            `json:"vpr,omitempty"`
}

vuln plugin

type TenableVulnPort

type TenableVulnPort struct {
	Port     int32  `json:"port"`
	Protocol string `json:"protocol"`
	Service  string `json:"service"`
}

tenable vuln port record

type TenableVulnScanEntry

type TenableVulnScanEntry struct {
	CompletedAt  string `json:"completed_at"`
	ScheduleUUID string `json:"schedule_uuid"`
	StartedAt    string `json:"started_at"`
	UUID         string `json:"uuid"`
}

single scan entry for a vuln

type TenableVulnTemporalVector

type TenableVulnTemporalVector struct {
	Exploitability   string `json:"exploitability"`
	RemediationLevel string `json:"remediation_level"`
	ReportConfidence string `json:"report_confidence"`
	Raw              string `json:"raw"`
}

cvss3 temporal vectors

type TenableVulnVPR

type TenableVulnVPR struct {
	Score   float32               `json:"score"`
	Drivers TenableVulnVPRDrivers `json:"drivers"`
	Updated string                `json:"updated"`
}

VPR

type TenableVulnVPRDrivers

type TenableVulnVPRDrivers struct {
	AgeOfVuln                TenableVulnVPRDriversAge `json:"age_of_vuln"`
	ExploitMaturity          string                   `json:"exploit_code_maturity"`
	CVSSImpactScorePredicted bool                     `json:"cvss_impact_score_predicted"`
	CVSS3ImpactScore         float32                  `json:"cvss3_impact_score"`
	ThreatIntensityLast28    string                   `json:"threat_intensity_last28"`
	ThreatSourcesLast28      []string                 `json:"threat_sources_last28"`
	ProductCoverage          string                   `json:"product_coverage"`
}

VPR Drivers

type TenableVulnVPRDriversAge

type TenableVulnVPRDriversAge struct {
	LowerBound int32 `json:"lower_bound"`
	UpperBound int32 `json:"upper_bound"`
}

VPR Drivers age

type TenableVulnVector

type TenableVulnVector struct {
	AccessVector          string `json:"access_vector"`
	AccessComplexity      string `json:"access_complexity"`
	Authentication        string `json:"authentication"`
	ConfidentialityImpact string `json:"confidentiality_impact"`
	IntegrityImpact       string `json:"integrity_impact"`
	AvailabilityImpact    string `json:"availability_impact"`
	Raw                   string `json:"raw"`
}

cvss3 vectors

type TenableVulnerabilitiesCount

type TenableVulnerabilitiesCount struct {
	Total      int32                  `json:"total"`
	Severities []TenableSeverityCount `json:"severities"`
}

type TenableVulnsExportTop

type TenableVulnsExportTop struct {
	Vulns []TenableVulnExport `json:"vulns"`
	Total int32               `json:"total"`
}

func (*TenableVulnsExportTop) AppendVuln

func (t *TenableVulnsExportTop) AppendVuln(vuln TenableVuln)

func (TenableVulnsExportTop) GetVulns

func (t TenableVulnsExportTop) GetVulns() []TenableVuln

type TenableVulnsList

type TenableVulnsList interface {
	GetVulns() []TenableVuln
	AppendVuln(TenableVuln)
}

vuln listings

Jump to

Keyboard shortcuts

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