mirror of
https://github.com/fleetdm/fleet
synced 2026-05-06 06:48:54 +00:00
#20934 This is tied to https://github.com/fleetdm/vulnerabilities/pull/14; for supported OS versions (currently Amazon Linux 1/2/2022/2023) we'll pull XZ'd sqlite files from the vulnerabilities repo and query them to determine what's vulnerable. See the associated issue for how I self-QA'd this. This replaced OVAL parsing for Amazon Linux 2, as we were using the wrong data source there (Amazon has backported a bunch of fixes to their own-named releases, so any RHEL fixes don't match). Some checklist items are missing here; getting this set up in draft to get code feedback now, and I'll push updates with e.g. docs changes, as well ass an addition to the changes file. # Checklist for submitter If some of the following don't apply, delete the relevant line. <!-- Note that API documentation changes are now addressed by the product design team. --> - [x] Changes file added for user-visible changes in `changes/`, `orbit/changes/` or `ee/fleetd-chrome/changes`. See [Changes files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/Committing-Changes.md#changes-files) for more information. - [x] Input data is properly validated, `SELECT *` is avoided, SQL injection is prevented (using placeholders for values in statements) - [x] Added/updated tests - [x] Add tests to oval_platform - [x] Add sync_test - [x] Add database_test - [x] Manual QA for all new/changed functionality - [x] Update vulnerability management docs
34 lines
808 B
Go
34 lines
808 B
Go
package goval_dictionary
|
|
|
|
import (
|
|
"github.com/fleetdm/fleet/v4/server/fleet"
|
|
"github.com/fleetdm/fleet/v4/server/vulnerabilities/oval"
|
|
"github.com/stretchr/testify/require"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestSync(t *testing.T) {
|
|
t.Run("#whatToDownload", func(t *testing.T) {
|
|
osVersions := fleet.OSVersions{
|
|
CountsUpdatedAt: time.Now(),
|
|
OSVersions: []fleet.OSVersion{
|
|
{
|
|
HostsCount: 1,
|
|
Platform: "ubuntu",
|
|
Name: "Ubuntu 20.4.0",
|
|
},
|
|
{
|
|
HostsCount: 1,
|
|
Platform: "amzn",
|
|
Name: "Amazon Linux 2.0.0",
|
|
},
|
|
},
|
|
}
|
|
|
|
result := whatToDownload(&osVersions)
|
|
require.Len(t, result, 1)
|
|
require.Contains(t, result, oval.NewPlatform("amzn", "Amazon Linux 2.0.0"))
|
|
require.NotContains(t, result, oval.NewPlatform("ubuntu", "Ubuntu 20.4.0"))
|
|
})
|
|
}
|