fleet/server/vulnerabilities/sync_test.go

74 lines
1.8 KiB
Go
Raw Normal View History

2022-06-01 16:06:57 +00:00
package vulnerabilities
import (
"context"
"path/filepath"
"strings"
"testing"
"github.com/fleetdm/fleet/v4/pkg/fleethttp"
"github.com/fleetdm/fleet/v4/pkg/nettest"
"github.com/fleetdm/fleet/v4/server/fleet"
"github.com/fleetdm/fleet/v4/server/mock"
2022-06-08 19:15:44 +00:00
"github.com/go-kit/kit/log"
2022-06-01 16:06:57 +00:00
"github.com/stretchr/testify/require"
"github.com/tj/assert"
)
func TestDownloadEPSSFeed(t *testing.T) {
nettest.Run(t)
client := fleethttp.NewClient()
tempDir := t.TempDir()
err := DownloadEPSSFeed(tempDir, client)
require.NoError(t, err)
assert.FileExists(t, filepath.Join(tempDir, strings.TrimSuffix(epssFilename, ".gz")))
}
func TestDownloadCISAKnownExploitsFeed(t *testing.T) {
nettest.Run(t)
client := fleethttp.NewClient()
tempDir := t.TempDir()
err := DownloadCISAKnownExploitsFeed(tempDir, client)
require.NoError(t, err)
assert.FileExists(t, filepath.Join(tempDir, cisaKnownExploitsFilename))
}
func TestLoadCVEMeta(t *testing.T) {
ds := new(mock.Store)
2022-06-03 17:37:47 +00:00
var cveMeta []fleet.CVEMeta
ds.InsertCVEMetaFunc = func(ctx context.Context, x []fleet.CVEMeta) error {
cveMeta = x
2022-06-01 16:06:57 +00:00
return nil
}
2022-06-08 19:15:44 +00:00
logger := log.NewNopLogger()
err := LoadCVEMeta(logger, "testdata", ds)
2022-06-01 16:06:57 +00:00
require.NoError(t, err)
require.True(t, ds.InsertCVEMetaFuncInvoked)
2022-06-03 17:37:47 +00:00
// check some cves to make sure they got loaded correctly
metaMap := make(map[string]fleet.CVEMeta)
for _, meta := range cveMeta {
metaMap[meta.CVE] = meta
}
meta := metaMap["CVE-2022-29676"]
require.Equal(t, float64(7.2), *meta.CVSSScore)
require.Equal(t, float64(0.00885), *meta.EPSSProbability)
require.Equal(t, false, *meta.CISAKnownExploit)
meta = metaMap["CVE-2022-22587"]
require.Equal(t, (*float64)(nil), meta.CVSSScore)
require.Equal(t, float64(0.01843), *meta.EPSSProbability)
require.Equal(t, true, *meta.CISAKnownExploit)
2022-06-01 16:06:57 +00:00
}