diff --git a/config/config.go b/config/config.go
index c46508fe..53a0a8b7 100644
--- a/config/config.go
+++ b/config/config.go
@@ -126,16 +126,12 @@ type Config struct {
Syslog SyslogConf `json:"-"`
AWS AWS `json:"-"`
Azure Azure `json:"-"`
- Stride StrideConf `json:"-"`
- HipChat HipChatConf `json:"-"`
ChatWork ChatWorkConf `json:"-"`
Telegram TelegramConf `json:"-"`
Saas SaasConf `json:"-"`
RefreshCve bool `json:"refreshCve,omitempty"`
ToSlack bool `json:"toSlack,omitempty"`
- ToStride bool `json:"toStride,omitempty"`
- ToHipChat bool `json:"toHipChat,omitempty"`
ToChatWork bool `json:"toChatWork,omitempty"`
ToTelegram bool `json:"ToTelegram,omitempty"`
ToEmail bool `json:"toEmail,omitempty"`
@@ -282,18 +278,10 @@ func (c Config) ValidateOnReport() bool {
errs = append(errs, slackerrs...)
}
- if hipchaterrs := c.HipChat.Validate(); 0 < len(hipchaterrs) {
- errs = append(errs, hipchaterrs...)
- }
-
if chatworkerrs := c.ChatWork.Validate(); 0 < len(chatworkerrs) {
errs = append(errs, chatworkerrs...)
}
- if strideerrs := c.Stride.Validate(); 0 < len(strideerrs) {
- errs = append(errs, strideerrs...)
- }
-
if telegramerrs := c.Telegram.Validate(); 0 < len(telegramerrs) {
errs = append(errs, telegramerrs...)
}
@@ -441,33 +429,6 @@ func (c *SMTPConf) Validate() (errs []error) {
return
}
-// StrideConf is stride config
-type StrideConf struct {
- HookURL string `json:"-"`
- AuthToken string `json:"-"`
-}
-
-// Validate validates configuration
-func (c *StrideConf) Validate() (errs []error) {
- if !Conf.ToStride {
- return
- }
-
- if len(c.HookURL) == 0 {
- errs = append(errs, xerrors.New("stride.HookURL must not be empty"))
- }
-
- if len(c.AuthToken) == 0 {
- errs = append(errs, xerrors.New("stride.AuthToken must not be empty"))
- }
-
- _, err := valid.ValidateStruct(c)
- if err != nil {
- errs = append(errs, err)
- }
- return
-}
-
// SlackConf is slack config
type SlackConf struct {
HookURL string `valid:"url" json:"-" toml:"hookURL,omitempty"`
@@ -511,32 +472,6 @@ func (c *SlackConf) Validate() (errs []error) {
return
}
-// HipChatConf is HipChat config
-type HipChatConf struct {
- AuthToken string `json:"-"`
- Room string `json:"-"`
-}
-
-// Validate validates configuration
-func (c *HipChatConf) Validate() (errs []error) {
- if !Conf.ToHipChat {
- return
- }
- if len(c.Room) == 0 {
- errs = append(errs, xerrors.New("hipchat.room must not be empty"))
- }
-
- if len(c.AuthToken) == 0 {
- errs = append(errs, xerrors.New("hipchat.AuthToken must not be empty"))
- }
-
- _, err := valid.ValidateStruct(c)
- if err != nil {
- errs = append(errs, err)
- }
- return
-}
-
// ChatWorkConf is ChatWork config
type ChatWorkConf struct {
APIToken string `json:"-"`
@@ -589,7 +524,7 @@ func (c *TelegramConf) Validate() (errs []error) {
return
}
-// SaasConf is stride config
+// SaasConf is FutureVuls config
type SaasConf struct {
GroupID int64 `json:"-"`
Token string `json:"-"`
diff --git a/config/tomlloader.go b/config/tomlloader.go
index d760be2b..2b4b4e2f 100644
--- a/config/tomlloader.go
+++ b/config/tomlloader.go
@@ -21,8 +21,6 @@ func (c TOMLLoader) Load(pathToToml, keyPass string) error {
}
Conf.EMail = conf.EMail
Conf.Slack = conf.Slack
- Conf.Stride = conf.Stride
- Conf.HipChat = conf.HipChat
Conf.ChatWork = conf.ChatWork
Conf.Telegram = conf.Telegram
Conf.Saas = conf.Saas
diff --git a/models/cvecontents.go b/models/cvecontents.go
index 4e59c69e..191ae0ba 100644
--- a/models/cvecontents.go
+++ b/models/cvecontents.go
@@ -83,7 +83,7 @@ func (v CveContents) PrimarySrcURLs(lang, myFamily, cveID string) (values []CveC
return values
}
-// PrimarySrcURLs returns link of source
+// PatchURLs returns link of patch
func (v CveContents) PatchURLs() (urls []string) {
cont, found := v[Nvd]
if !found {
diff --git a/report/hipchat.go b/report/hipchat.go
deleted file mode 100644
index 19aa06ad..00000000
--- a/report/hipchat.go
+++ /dev/null
@@ -1,74 +0,0 @@
-package report
-
-import (
- "fmt"
- "net/http"
- "net/url"
- "strconv"
- "strings"
-
- "github.com/future-architect/vuls/config"
- "github.com/future-architect/vuls/models"
-)
-
-// HipChatWriter send report to HipChat
-type HipChatWriter struct{}
-
-func (w HipChatWriter) Write(rs ...models.ScanResult) (err error) {
- conf := config.Conf.HipChat
-
- for _, r := range rs {
- serverInfo := fmt.Sprintf("%s", r.ServerInfo())
- if err = postMessage(conf.Room, conf.AuthToken, serverInfo); err != nil {
- return err
- }
-
- for _, vinfo := range r.ScannedCves {
- maxCvss := vinfo.MaxCvssScore()
- severity := strings.ToUpper(maxCvss.Value.Severity)
- if severity == "" {
- severity = "?"
- }
-
- message := fmt.Sprintf(` %s
%s (%s)
%s`,
- vinfo.CveID,
- vinfo.CveID,
- strconv.FormatFloat(maxCvss.Value.Score, 'f', 1, 64),
- severity,
- vinfo.Summaries(config.Conf.Lang, r.Family)[0].Value,
- )
-
- if err = postMessage(conf.Room, conf.AuthToken, message); err != nil {
- return err
- }
- }
-
- }
- return nil
-}
-
-func postMessage(room, token, message string) error {
- uri := fmt.Sprintf("https://api.hipchat.com/v2/room/%s/notification?auth_token=%s", room, token)
-
- payload := url.Values{
- "color": {"purple"},
- "message_format": {"html"},
- "message": {message},
- }
- reqs, err := http.NewRequest("POST", uri, strings.NewReader(payload.Encode()))
- if err != nil {
- return err
- }
-
- reqs.Header.Add("Content-Type", "application/x-www-form-urlencoded")
-
- client := &http.Client{}
-
- resp, err := client.Do(reqs)
- if err != nil {
- return err
- }
- defer resp.Body.Close()
-
- return nil
-}
diff --git a/report/report.go b/report/report.go
index e608f330..c0feb416 100644
--- a/report/report.go
+++ b/report/report.go
@@ -153,7 +153,7 @@ func FillCveInfos(dbclient DBClient, rs []models.ScanResult, dir string) ([]mode
return rs, nil
}
-// DetectPkgCVEs detects OS pkg cves
+// DetectPkgCves detects OS pkg cves
func DetectPkgCves(dbclient DBClient, r *models.ScanResult) error {
// Pkg Scan
if r.Release != "" {
diff --git a/report/stride.go b/report/stride.go
deleted file mode 100644
index 11e62b14..00000000
--- a/report/stride.go
+++ /dev/null
@@ -1,81 +0,0 @@
-package report
-
-import (
- "bytes"
- "fmt"
- "net/http"
-
- "strconv"
- "strings"
-
- "github.com/future-architect/vuls/config"
- "github.com/future-architect/vuls/models"
-)
-
-// StrideWriter send report to Stride
-type StrideWriter struct{}
-type strideSender struct{}
-
-func (w StrideWriter) Write(rs ...models.ScanResult) (err error) {
- conf := config.Conf.Stride
-
- for _, r := range rs {
- w := strideSender{}
-
- serverInfo := fmt.Sprintf("%s", r.ServerInfo())
- message := fmt.Sprintf(`{"body":{"version":1,"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":" %s "}]}]}}`,
- serverInfo,
- )
- if err = w.sendMessage(conf.HookURL, conf.AuthToken, message); err != nil {
- return err
- }
-
- for _, vinfo := range r.ScannedCves {
- maxCvss := vinfo.MaxCvssScore()
- severity := strings.ToUpper(maxCvss.Value.Severity)
- if severity == "" {
- severity = "?"
- }
-
- message = fmt.Sprintf(`{"body":{"version":1,"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":" %s ","marks": [ { "type": "link", "attrs": { "href": "https://nvd.nist.gov/vuln/detail/%s", "title": "cve" } } ]}]}]}}`,
- vinfo.CveID,
- vinfo.CveID,
- )
- if err = w.sendMessage(conf.HookURL, conf.AuthToken, message); err != nil {
- return err
- }
-
- message = fmt.Sprintf(`{"body":{"version":1,"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":" %s (%s) "}]}]}}`,
- strconv.FormatFloat(maxCvss.Value.Score, 'f', 1, 64),
- severity,
- )
- if err = w.sendMessage(conf.HookURL, conf.AuthToken, message); err != nil {
- return err
- }
-
- message = fmt.Sprintf(`{"body":{"version":1,"type":"doc","content":[{"type":"paragraph","content":[{"type":"text","text":" %s "}]}]}}`,
- vinfo.Summaries(config.Conf.Lang, r.Family)[0].Value,
- )
- if err = w.sendMessage(conf.HookURL, conf.AuthToken, message); err != nil {
- return err
- }
- }
- }
- return nil
-}
-
-func (w strideSender) sendMessage(uri, token, jsonStr string) error {
- reqs, err := http.NewRequest("POST", uri, bytes.NewBuffer([]byte(jsonStr)))
- if err != nil {
- return err
- }
- reqs.Header.Add("Content-Type", "application/json")
- reqs.Header.Add("Authorization", "Bearer "+token)
- client := &http.Client{}
- resp, err := client.Do(reqs)
- if err != nil {
- return err
- }
- defer resp.Body.Close()
- return nil
-}
diff --git a/saas/uuid.go b/saas/uuid.go
index 6bf67d36..4935e91a 100644
--- a/saas/uuid.go
+++ b/saas/uuid.go
@@ -152,16 +152,6 @@ func EnsureUUIDs(configPath string, results models.ScanResults) (err error) {
azure = nil
}
- stride := &c.Conf.Stride
- if stride.HookURL == "" {
- stride = nil
- }
-
- hipChat := &c.Conf.HipChat
- if hipChat.AuthToken == "" {
- hipChat = nil
- }
-
chatWork := &c.Conf.ChatWork
if chatWork.APIToken == "" {
chatWork = nil
@@ -184,8 +174,6 @@ func EnsureUUIDs(configPath string, results models.ScanResults) (err error) {
Syslog *c.SyslogConf `toml:"syslog"`
AWS *c.AWS `toml:"aws"`
Azure *c.Azure `toml:"azure"`
- Stride *c.StrideConf `toml:"stride"`
- HipChat *c.HipChatConf `toml:"hipChat"`
ChatWork *c.ChatWorkConf `toml:"chatWork"`
Saas *c.SaasConf `toml:"saas"`
@@ -203,8 +191,6 @@ func EnsureUUIDs(configPath string, results models.ScanResults) (err error) {
Syslog: syslog,
AWS: aws,
Azure: azure,
- Stride: stride,
- HipChat: hipChat,
ChatWork: chatWork,
Saas: saas,
diff --git a/subcmds/discover.go b/subcmds/discover.go
index 2c73b84a..4c15dceb 100644
--- a/subcmds/discover.go
+++ b/subcmds/discover.go
@@ -149,16 +149,6 @@ sqlite3Path = "/path/to/go-msfdb.sqlite3"
#accountKey = "xxxxxxxxxxxxxx"
#containerName = "vuls"
-# https://vuls.io/docs/en/usage-settings.html#stride-section
-#[stride]
-#hookURL = "xxxxxxxxxxxxxxx"
-#authToken = "xxxxxxxxxxxxxx"
-
-# https://vuls.io/docs/en/usage-settings.html#hipchat-section
-#[hipchat]
-#room = "vuls"
-#authToken = "xxxxxxxxxxxxxx"
-
# https://vuls.io/docs/en/usage-settings.html#chatwork-section
#[chatwork]
#room = "xxxxxxxxxxx"
diff --git a/subcmds/report.go b/subcmds/report.go
index 793bfd0b..687aba6d 100644
--- a/subcmds/report.go
+++ b/subcmds/report.go
@@ -51,8 +51,6 @@ func (*ReportCmd) Usage() string {
[-to-email]
[-to-http]
[-to-slack]
- [-to-stride]
- [-to-hipchat]
[-to-chatwork]
[-to-telegram]
[-to-localfile]
@@ -134,8 +132,6 @@ func (p *ReportCmd) SetFlags(f *flag.FlagSet) {
"Detail report in plain text")
f.BoolVar(&c.Conf.ToSlack, "to-slack", false, "Send report via Slack")
- f.BoolVar(&c.Conf.ToStride, "to-stride", false, "Send report via Stride")
- f.BoolVar(&c.Conf.ToHipChat, "to-hipchat", false, "Send report via hipchat")
f.BoolVar(&c.Conf.ToChatWork, "to-chatwork", false, "Send report via chatwork")
f.BoolVar(&c.Conf.ToTelegram, "to-telegram", false, "Send report via Telegram")
f.BoolVar(&c.Conf.ToEmail, "to-email", false, "Send report via Email")
@@ -297,14 +293,6 @@ func (p *ReportCmd) Execute(_ context.Context, f *flag.FlagSet, _ ...interface{}
reports = append(reports, report.SlackWriter{})
}
- if c.Conf.ToStride {
- reports = append(reports, report.StrideWriter{})
- }
-
- if c.Conf.ToHipChat {
- reports = append(reports, report.HipChatWriter{})
- }
-
if c.Conf.ToChatWork {
reports = append(reports, report.ChatWorkWriter{})
}