Skip to content

Commit d122499

Browse files
authored
feat(models/nvd): group by source (#1805)
1 parent 7e12e9a commit d122499

File tree

3 files changed

+30
-26
lines changed

3 files changed

+30
-26
lines changed

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ require (
4444
github.com/sirupsen/logrus v1.9.3
4545
github.com/spf13/cobra v1.8.0
4646
github.com/vulsio/go-cti v0.0.5-0.20231017103759-59e022ddcd0e
47-
github.com/vulsio/go-cve-dictionary v0.10.0
47+
github.com/vulsio/go-cve-dictionary v0.10.1-0.20231208101928-9dd0d2707ae5
4848
github.com/vulsio/go-exploitdb v0.4.7-0.20231017104626-201191637c48
4949
github.com/vulsio/go-kev v0.1.4-0.20231017105707-8a9a218d280a
5050
github.com/vulsio/go-msfdb v0.2.4-0.20231017104449-b705e6975831

go.sum

+2-2
Original file line numberDiff line numberDiff line change
@@ -776,8 +776,8 @@ github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/X
776776
github.com/vbatts/tar-split v0.11.2 h1:Via6XqJr0hceW4wff3QRzD5gAk/tatMw/4ZA7cTlIME=
777777
github.com/vulsio/go-cti v0.0.5-0.20231017103759-59e022ddcd0e h1:UicE8zdH+TSTFeULX4jwYJgspK9ptMQX5zqdBsYsaPI=
778778
github.com/vulsio/go-cti v0.0.5-0.20231017103759-59e022ddcd0e/go.mod h1:A7G6SEdN1vChE56Auq8bw/XilEcumqxx2lb3cH8lCdQ=
779-
github.com/vulsio/go-cve-dictionary v0.10.0 h1:1lE1qoVy7UmFInftMfLWL/hQoWIcs9rnx+zILN5AvR4=
780-
github.com/vulsio/go-cve-dictionary v0.10.0/go.mod h1:ZY5Q+7ADz1RU0Wu7Q491+70+ZBuc4VN64xkvZFNPYuc=
779+
github.com/vulsio/go-cve-dictionary v0.10.1-0.20231208101928-9dd0d2707ae5 h1:8iIJwVDVUTzkXW+7cVTjeLmtgQETYYIA4w4qsKS8WTs=
780+
github.com/vulsio/go-cve-dictionary v0.10.1-0.20231208101928-9dd0d2707ae5/go.mod h1:ZY5Q+7ADz1RU0Wu7Q491+70+ZBuc4VN64xkvZFNPYuc=
781781
github.com/vulsio/go-exploitdb v0.4.7-0.20231017104626-201191637c48 h1:iT6/EfbOF0lEkCxKZEV9b0yAz1XIELTY1Y50gXyLVJ4=
782782
github.com/vulsio/go-exploitdb v0.4.7-0.20231017104626-201191637c48/go.mod h1:a8XVcfjrkHcbVCGxL6fo1KsgpShXNA5fxxjfpv+zGt8=
783783
github.com/vulsio/go-kev v0.1.4-0.20231017105707-8a9a218d280a h1:pdV8P4krLPt2xxbeDoUBDYjhA2OrPceNY1WVmc9Yz0E=

models/utils.go

+27-23
Original file line numberDiff line numberDiff line change
@@ -93,46 +93,50 @@ func ConvertNvdToModel(cveID string, nvds []cvedict.Nvd) ([]CveContent, []Exploi
9393
}
9494
}
9595

96-
cweIDs := []string{}
97-
for _, cid := range nvd.Cwes {
98-
cweIDs = append(cweIDs, cid.CweID)
99-
}
100-
10196
desc := []string{}
10297
for _, d := range nvd.Descriptions {
10398
desc = append(desc, d.Value)
10499
}
105100

101+
m := map[string]CveContent{}
102+
for _, cwe := range nvd.Cwes {
103+
c := m[cwe.Source]
104+
c.CweIDs = append(c.CweIDs, cwe.CweID)
105+
m[cwe.Source] = c
106+
}
106107
for _, cvss2 := range nvd.Cvss2 {
107-
cves = append(cves, CveContent{
108-
Type: Nvd,
109-
CveID: cveID,
110-
Summary: strings.Join(desc, "\n"),
111-
Cvss2Score: cvss2.BaseScore,
112-
Cvss2Vector: cvss2.VectorString,
113-
Cvss2Severity: cvss2.Severity,
114-
SourceLink: fmt.Sprintf("https://nvd.nist.gov/vuln/detail/%s", cveID),
115-
// Cpes: cpes,
116-
CweIDs: cweIDs,
117-
References: refs,
118-
Published: nvd.PublishedDate,
119-
LastModified: nvd.LastModifiedDate,
120-
})
108+
c := m[cvss2.Source]
109+
c.Cvss2Score = cvss2.BaseScore
110+
c.Cvss2Vector = cvss2.VectorString
111+
c.Cvss2Severity = cvss2.Severity
112+
m[cvss2.Source] = c
121113
}
122114
for _, cvss3 := range nvd.Cvss3 {
115+
c := m[cvss3.Source]
116+
c.Cvss3Score = cvss3.BaseScore
117+
c.Cvss3Vector = cvss3.VectorString
118+
c.Cvss3Severity = cvss3.BaseSeverity
119+
m[cvss3.Source] = c
120+
}
121+
122+
for source, cont := range m {
123123
cves = append(cves, CveContent{
124124
Type: Nvd,
125125
CveID: cveID,
126126
Summary: strings.Join(desc, "\n"),
127-
Cvss3Score: cvss3.BaseScore,
128-
Cvss3Vector: cvss3.VectorString,
129-
Cvss3Severity: cvss3.BaseSeverity,
127+
Cvss2Score: cont.Cvss2Score,
128+
Cvss2Vector: cont.Cvss2Vector,
129+
Cvss2Severity: cont.Cvss2Severity,
130+
Cvss3Score: cont.Cvss3Score,
131+
Cvss3Vector: cont.Cvss3Vector,
132+
Cvss3Severity: cont.Cvss3Severity,
130133
SourceLink: fmt.Sprintf("https://nvd.nist.gov/vuln/detail/%s", cveID),
131134
// Cpes: cpes,
132-
CweIDs: cweIDs,
135+
CweIDs: cont.CweIDs,
133136
References: refs,
134137
Published: nvd.PublishedDate,
135138
LastModified: nvd.LastModifiedDate,
139+
Optional: map[string]string{"source": source},
136140
})
137141
}
138142
}

0 commit comments

Comments
 (0)