Documentation ¶
Index ¶
- Constants
- Variables
- func Load(path, keyPass string) error
- type AWS
- type Azure
- type ChatWorkConf
- type Config
- type Container
- type ContainerSetting
- type Distro
- type GoCveDictConf
- type GostConf
- type GovalDictConf
- type HTTPConf
- type HipChatConf
- type JSONLoader
- type Loader
- type SMTPConf
- type SaasConf
- type ScanMode
- type ServerInfo
- type SlackConf
- type StrideConf
- type SyslogConf
- type TOMLLoader
Constants ¶
const ( // RedHat is RedHat = "redhat" // Debian is Debian = "debian" // Ubuntu is Ubuntu = "ubuntu" // CentOS is CentOS = "centos" // Fedora is Fedora = "fedora" // Amazon is Amazon = "amazon" // Oracle is Oracle = "oracle" // FreeBSD is FreeBSD = "freebsd" // Raspbian is Raspbian = "raspbian" // Windows is Windows = "windows" // OpenSUSE is OpenSUSE = "opensuse" // OpenSUSELeap is OpenSUSELeap = "opensuse.leap" // SUSEEnterpriseServer is SUSEEnterpriseServer = "suse.linux.enterprise.server" // SUSEEnterpriseDesktop is SUSEEnterpriseDesktop = "suse.linux.enterprise.desktop" // SUSEOpenstackCloud is SUSEOpenstackCloud = "suse.openstack.cloud" // Alpine is Alpine = "alpine" )
const ( // Fast is fast scan mode Fast = byte(1 << iota) // FastRoot is fast-root scan mode FastRoot // Deep is deep scan mode Deep // Offline is offline scan mode Offline )
const (
// ServerTypePseudo is used for ServerInfo.Type
ServerTypePseudo = "pseudo"
)
Variables ¶
var ( // Colors has ansi color list Colors = []string{ "\033[32m", "\033[33m", "\033[36m", "\033[35m", "\033[31m", "\033[34m", } // ResetColor is reset color ResetColor = "\033[0m" )
var Revision string
Revision of Git
var Version = "0.5.0"
Version of Vuls
Functions ¶
Types ¶
type AWS ¶ added in v0.5.0
type AWS struct { // AWS profile to use Profile string `json:"profile"` // AWS region to use Region string `json:"region"` // S3 bucket name S3Bucket string `json:"s3Bucket"` // /bucket/path/to/results S3ResultsDir string `json:"s3ResultsDir"` // The Server-side encryption algorithm used when storing the reports in S3 (e.g., AES256, aws:kms). S3ServerSideEncryption string `json:"s3ServerSideEncryption"` }
AWS is aws config
type Azure ¶ added in v0.5.0
type Azure struct { // Azure account name to use. AZURE_STORAGE_ACCOUNT environment variable is used if not specified AccountName string `json:"accountName"` // Azure account key to use. AZURE_STORAGE_ACCESS_KEY environment variable is used if not specified AccountKey string `json:"-"` // Azure storage container name ContainerName string `json:"containerName"` }
Azure is azure config
type ChatWorkConf ¶ added in v0.5.0
ChatWorkConf is ChatWork config
func (*ChatWorkConf) Validate ¶ added in v0.5.0
func (c *ChatWorkConf) Validate() (errs []error)
Validate validates configuration
type Config ¶
type Config struct { Debug bool `json:"debug"` DebugSQL bool `json:"debugSQL"` Lang string `json:"lang"` HTTPProxy string `valid:"url" json:"httpProxy"` LogDir string `json:"logDir"` ResultsDir string `json:"resultsDir"` Pipe bool `json:"pipe"` Default ServerInfo `json:"default"` Servers map[string]ServerInfo `json:"servers"` CvssScoreOver float64 `json:"cvssScoreOver"` IgnoreUnscoredCves bool `json:"ignoreUnscoredCves"` IgnoreUnfixed bool `json:"ignoreUnfixed"` SSHNative bool `json:"sshNative"` SSHConfig bool `json:"sshConfig"` ContainersOnly bool `json:"containersOnly"` SkipBroken bool `json:"skipBroken"` CacheDBPath string `json:"cacheDBPath"` Vvv bool `json:"vvv"` UUID bool `json:"uuid"` CveDict GoCveDictConf `json:"cveDict"` OvalDict GovalDictConf `json:"ovalDict"` Gost GostConf `json:"gost"` Slack SlackConf `json:"-"` EMail SMTPConf `json:"-"` HTTP HTTPConf `json:"-"` Syslog SyslogConf `json:"-"` AWS AWS `json:"-"` Azure Azure `json:"-"` Stride StrideConf `json:"-"` HipChat HipChatConf `json:"-"` ChatWork ChatWorkConf `json:"-"` Saas SaasConf `json:"-"` RefreshCve bool `json:"refreshCve"` ToSlack bool `json:"toSlack"` ToStride bool `json:"toStride"` ToHipChat bool `json:"toHipChat"` ToChatWork bool `json:"toChatWork"` ToEmail bool `json:"toEmail"` ToSyslog bool `json:"toSyslog"` ToLocalFile bool `json:"toLocalFile"` ToS3 bool `json:"toS3"` ToAzureBlob bool `json:"toAzureBlob"` ToSaas bool `json:"toSaas"` ToHTTP bool `json:"toHTTP"` FormatXML bool `json:"formatXML"` FormatJSON bool `json:"formatJSON"` FormatOneEMail bool `json:"formatOneEMail"` FormatOneLineText bool `json:"formatOneLineText"` FormatList bool `json:"formatList"` FormatFullText bool `json:"formatFullText"` GZIP bool `json:"gzip"` Diff bool `json:"diff"` }
Config is struct of Configuration
var Conf Config
Conf has Configuration
func (Config) ValidateOnConfigtest ¶ added in v0.2.0
ValidateOnConfigtest validates
func (Config) ValidateOnReport ¶ added in v0.2.0
ValidateOnReport validates configuration
func (Config) ValidateOnReportDB ¶ added in v0.5.0
ValidateOnReportDB validates configuration
func (Config) ValidateOnScan ¶ added in v0.2.0
ValidateOnScan validates configuration
func (Config) ValidateOnTui ¶ added in v0.2.0
ValidateOnTui validates configuration
type ContainerSetting ¶ added in v0.5.0
type ContainerSetting struct { Cpes []string `json:"cpes,omitempty"` OwaspDCXMLPath string `json:"owaspDCXMLPath"` IgnorePkgsRegexp []string `json:"ignorePkgsRegexp,omitempty"` IgnoreCves []string `json:"ignoreCves,omitempty"` }
ContainerSetting is used for loading container setting in config.toml
type Distro ¶ added in v0.1.6
Distro has distribution info
func (Distro) MajorVersion ¶ added in v0.3.0
MajorVersion returns Major version
type GoCveDictConf ¶ added in v0.5.0
type GoCveDictConf struct { // DB type of CVE dictionary (sqlite3, mysql, postgres or redis) Type string // http://cve-dictionary.com:1323 or DB connection string URL string `valid:"url" json:"-"` // /path/to/cve.sqlite3 SQLite3Path string `json:"-"` }
GoCveDictConf is go-cve-dictionary config
func (*GoCveDictConf) Overwrite ¶ added in v0.5.0
func (cnf *GoCveDictConf) Overwrite(cmdOpt GoCveDictConf)
Overwrite set options with the following priority. 1. Command line option 2. Environment variable 3. config.toml
type GostConf ¶ added in v0.5.0
type GostConf struct { // DB type for gost dictionary (sqlite3, mysql, postgres or redis) Type string // http://gost-dictionary.com:1324 or DB connection string URL string `valid:"url" json:"-"` // /path/to/gost.sqlite3 SQLite3Path string `json:"-"` }
GostConf is gost config
type GovalDictConf ¶ added in v0.5.0
type GovalDictConf struct { // DB type of OVAL dictionary (sqlite3, mysql, postgres or redis) Type string // http://goval-dictionary.com:1324 or DB connection string URL string `valid:"url" json:"-"` // /path/to/oval.sqlite3 SQLite3Path string `json:"-"` }
GovalDictConf is goval-dictionary config
func (*GovalDictConf) Overwrite ¶ added in v0.5.0
func (cnf *GovalDictConf) Overwrite(cmdOpt GovalDictConf)
Overwrite set options with the following priority. 1. Command line option 2. Environment variable 3. config.toml
type HTTPConf ¶ added in v0.5.0
type HTTPConf struct {
URL string `valid:"url" json:"-"`
}
HTTPConf is HTTP config
type HipChatConf ¶ added in v0.5.0
HipChatConf is HipChat config
func (*HipChatConf) Validate ¶ added in v0.5.0
func (c *HipChatConf) Validate() (errs []error)
Validate validates configuration
type JSONLoader ¶
type JSONLoader struct { }
JSONLoader loads configuration
func (JSONLoader) Load ¶
func (c JSONLoader) Load(path, sudoPass, keyPass string) (err error)
Load load the configuration JSON file specified by path arg.
type SMTPConf ¶ added in v0.3.0
type SMTPConf struct { SMTPAddr string `toml:"smtpAddr,omitempty" json:"-"` SMTPPort string `toml:"smtpPort,omitempty" valid:"port" json:"-"` User string `toml:"user,omitempty" json:"-"` Password string `toml:"password,omitempty" json:"-"` From string `toml:"from,omitempty" json:"-"` To []string `toml:"to,omitempty" json:"-"` Cc []string `toml:"cc,omitempty" json:"-"` SubjectPrefix string `toml:"subjectPrefix,omitempty" json:"-"` }
SMTPConf is smtp config
type ScanMode ¶ added in v0.5.0
type ScanMode struct {
// contains filtered or unexported fields
}
ScanMode has a type of scan mode. fast, fast-root, deep and offline
func (ScanMode) IsFastRoot ¶ added in v0.5.0
IsFastRoot return whether scan mode is fastroot
type ServerInfo ¶
type ServerInfo struct { ServerName string `toml:"-" json:"serverName"` User string `toml:"user,omitempty" json:"user"` Host string `toml:"host,omitempty" json:"host"` Port string `toml:"port,omitempty" json:"port"` KeyPath string `toml:"keyPath,omitempty" json:"keyPath"` KeyPassword string `json:"-" toml:"-"` CpeNames []string `toml:"cpeNames,omitempty" json:"cpeNames,omitempty"` ScanMode []string `toml:"scanMode,omitempty" json:"scanMode,omitempty"` DependencyCheckXMLPath string `toml:"dependencyCheckXMLPath,omitempty" json:"-"` // TODO Deprecated remove in near future OwaspDCXMLPath string `toml:"owaspDCXMLPath,omitempty" json:"owaspDCXMLPath"` ContainersIncluded []string `toml:"containersIncluded,omitempty" json:"containersIncluded,omitempty"` ContainersExcluded []string `toml:"containersExcluded,omitempty" json:"containersExcluded,omitempty"` ContainerType string `toml:"containerType,omitempty" json:"containerType,omitempty"` Containers map[string]ContainerSetting `toml:"containers" json:"containers,omitempty"` IgnoreCves []string `toml:"ignoreCves,omitempty" json:"ignoreCves,omitempty"` IgnorePkgsRegexp []string `toml:"ignorePkgsRegexp,omitempty" json:"ignorePkgsRegexp,omitempty"` UUIDs map[string]string `toml:"uuids,omitempty" json:"uuids,omitempty"` Memo string `toml:"memo,omitempty" json:"memo"` Enablerepo []string `toml:"enablerepo,omitempty" json:"enablerepo,omitempty"` // For CentOS, RHEL, Amazon Optional map[string]interface{} `toml:"optional,omitempty" json:"optional,omitempty"` // Optional key-value set that will be outputted to JSON Type string `toml:"type,omitempty" json:"type"` // "pseudo" or "" IPv4Addrs []string `toml:"-" json:"ipv4Addrs,omitempty"` IPv6Addrs []string `toml:"-" json:"ipv6Addrs,omitempty"` // used internal LogMsgAnsiColor string `toml:"-" json:"-"` // DebugLog Color Container Container `toml:"-" json:"-"` Distro Distro `toml:"-" json:"-"` Mode ScanMode `toml:"-" json:"-"` }
ServerInfo has SSH Info, additional CPE packages to scan.
func (ServerInfo) GetServerName ¶ added in v0.1.7
func (s ServerInfo) GetServerName() string
GetServerName returns ServerName if this serverInfo is about host. If this serverInfo is abount a container, returns containerID@ServerName
func (ServerInfo) IsContainer ¶ added in v0.1.4
func (s ServerInfo) IsContainer() bool
IsContainer returns whether this ServerInfo is about container
func (*ServerInfo) SetContainer ¶ added in v0.1.4
func (s *ServerInfo) SetContainer(d Container)
SetContainer set container
type SlackConf ¶
type SlackConf struct { HookURL string `valid:"url" json:"-" toml:"hookURL,omitempty"` LegacyToken string `json:"-" toml:"legacyToken,omitempty"` Channel string `json:"-" toml:"channel,omitempty"` IconEmoji string `json:"-" toml:"iconEmoji,omitempty"` AuthUser string `json:"-" toml:"authUser,omitempty"` NotifyUsers []string `toml:"notifyUsers,omitempty" json:"-"` Text string `json:"-"` }
SlackConf is slack config
type StrideConf ¶ added in v0.5.0
StrideConf is stride config
func (*StrideConf) Validate ¶ added in v0.5.0
func (c *StrideConf) Validate() (errs []error)
Validate validates configuration
type SyslogConf ¶ added in v0.5.0
type SyslogConf struct { Protocol string `json:"-"` Host string `valid:"host" json:"-"` Port string `valid:"port" json:"-"` Severity string `json:"-"` Facility string `json:"-"` Tag string `json:"-"` Verbose bool `json:"-"` }
SyslogConf is syslog config
func (*SyslogConf) GetFacility ¶ added in v0.5.0
func (c *SyslogConf) GetFacility() (syslog.Priority, error)
GetFacility gets facility
func (*SyslogConf) GetSeverity ¶ added in v0.5.0
func (c *SyslogConf) GetSeverity() (syslog.Priority, error)
GetSeverity gets severity
func (*SyslogConf) Validate ¶ added in v0.5.0
func (c *SyslogConf) Validate() (errs []error)
Validate validates configuration
type TOMLLoader ¶
type TOMLLoader struct { }
TOMLLoader loads config
func (TOMLLoader) Load ¶
func (c TOMLLoader) Load(pathToToml, keyPass string) error
Load load the configuration TOML file specified by path arg.