feat(detector): add known exploited vulnerabilities (#1331)
* feat(kevuln): add known exploited vulnerabilities * chore: transfer repository owner * feat: show CISA on top of CERT * chore: rename var * chore: rename var * chore: fix review * chore: fix message
This commit is contained in:
		@@ -41,6 +41,7 @@ type Config struct {
 | 
			
		||||
	Gost       GostConf       `json:"gost,omitempty"`
 | 
			
		||||
	Exploit    ExploitConf    `json:"exploit,omitempty"`
 | 
			
		||||
	Metasploit MetasploitConf `json:"metasploit,omitempty"`
 | 
			
		||||
	KEVuln     KEVulnConf     `json:"kevuln,omitempty"`
 | 
			
		||||
 | 
			
		||||
	Slack      SlackConf      `json:"-"`
 | 
			
		||||
	EMail      SMTPConf       `json:"-"`
 | 
			
		||||
@@ -176,6 +177,7 @@ func (c *Config) ValidateOnReport() bool {
 | 
			
		||||
		&Conf.Gost,
 | 
			
		||||
		&Conf.Exploit,
 | 
			
		||||
		&Conf.Metasploit,
 | 
			
		||||
		&Conf.KEVuln,
 | 
			
		||||
	} {
 | 
			
		||||
		if err := cnf.Validate(); err != nil {
 | 
			
		||||
			errs = append(errs, xerrors.Errorf("Failed to validate %s: %+v", cnf.GetName(), err))
 | 
			
		||||
 
 | 
			
		||||
@@ -27,6 +27,7 @@ func (c TOMLLoader) Load(pathToToml, _ string) error {
 | 
			
		||||
		&Conf.Gost,
 | 
			
		||||
		&Conf.Exploit,
 | 
			
		||||
		&Conf.Metasploit,
 | 
			
		||||
		&Conf.KEVuln,
 | 
			
		||||
	} {
 | 
			
		||||
		cnf.Init()
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -248,7 +248,7 @@ func (cnf *GostConf) Init() {
 | 
			
		||||
	cnf.DebugSQL = Conf.DebugSQL
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// MetasploitConf is gost go-metasploitdb
 | 
			
		||||
// MetasploitConf is go-msfdb config
 | 
			
		||||
type MetasploitConf struct {
 | 
			
		||||
	VulnDict
 | 
			
		||||
}
 | 
			
		||||
@@ -274,3 +274,30 @@ func (cnf *MetasploitConf) Init() {
 | 
			
		||||
	cnf.setDefault("go-msfdb.sqlite3")
 | 
			
		||||
	cnf.DebugSQL = Conf.DebugSQL
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// KEVulnConf is go-kev config
 | 
			
		||||
type KEVulnConf struct {
 | 
			
		||||
	VulnDict
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const kevulnDBType = "KEVULN_TYPE"
 | 
			
		||||
const kevulnDBURL = "KEVULN_URL"
 | 
			
		||||
const kevulnDBPATH = "KEVULN_SQLITE3_PATH"
 | 
			
		||||
 | 
			
		||||
// Init set options with the following priority.
 | 
			
		||||
// 1. Environment variable
 | 
			
		||||
// 2. config.toml
 | 
			
		||||
func (cnf *KEVulnConf) Init() {
 | 
			
		||||
	cnf.Name = "kevuln"
 | 
			
		||||
	if os.Getenv(kevulnDBType) != "" {
 | 
			
		||||
		cnf.Type = os.Getenv(kevulnDBType)
 | 
			
		||||
	}
 | 
			
		||||
	if os.Getenv(kevulnDBURL) != "" {
 | 
			
		||||
		cnf.URL = os.Getenv(kevulnDBURL)
 | 
			
		||||
	}
 | 
			
		||||
	if os.Getenv(kevulnDBPATH) != "" {
 | 
			
		||||
		cnf.SQLite3Path = os.Getenv(kevulnDBPATH)
 | 
			
		||||
	}
 | 
			
		||||
	cnf.setDefault("go-kev.sqlite3")
 | 
			
		||||
	cnf.DebugSQL = Conf.DebugSQL
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user