mirror of
https://github.com/anchore/syft.git
synced 2025-11-17 16:33:21 +01:00
feat: nginx binary classifier (#1988)
Signed-off-by: SemProvoost <27961543+SemProvoost@users.noreply.github.com>
This commit is contained in:
parent
e55277f26d
commit
433a7b8a42
@ -643,6 +643,30 @@ func Test_Cataloger_DefaultClassifiers_PositiveCases(t *testing.T) {
|
|||||||
Metadata: metadata("consul-binary"),
|
Metadata: metadata("consul-binary"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "positive-nginx-1.25.1",
|
||||||
|
fixtureDir: "test-fixtures/classifiers/positive/nginx-1.25.1",
|
||||||
|
expected: pkg.Package{
|
||||||
|
Name: "nginx",
|
||||||
|
Version: "1.25.1",
|
||||||
|
Type: "binary",
|
||||||
|
PURL: "pkg:generic/nginx@1.25.1",
|
||||||
|
Locations: locations("nginx"),
|
||||||
|
Metadata: metadata("nginx-binary"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "positive-nginx-openresty-1.21.4.2",
|
||||||
|
fixtureDir: "test-fixtures/classifiers/positive/nginx-openresty-1.21.4.2",
|
||||||
|
expected: pkg.Package{
|
||||||
|
Name: "nginx",
|
||||||
|
Version: "1.21.4",
|
||||||
|
Type: "binary",
|
||||||
|
PURL: "pkg:generic/nginx@1.21.4",
|
||||||
|
Locations: locations("nginx"),
|
||||||
|
Metadata: metadata("nginx-binary"),
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
|
|||||||
@ -254,6 +254,21 @@ var defaultClassifiers = []classifier{
|
|||||||
PURL: mustPURL("pkg:golang/github.com/hashicorp/consul@version"),
|
PURL: mustPURL("pkg:golang/github.com/hashicorp/consul@version"),
|
||||||
CPEs: singleCPE("cpe:2.3:a:hashicorp:consul:*:*:*:*:*:*:*:*"),
|
CPEs: singleCPE("cpe:2.3:a:hashicorp:consul:*:*:*:*:*:*:*:*"),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
Class: "nginx-binary",
|
||||||
|
FileGlob: "**/nginx",
|
||||||
|
EvidenceMatcher: fileContentsVersionMatcher(
|
||||||
|
// [NUL]nginx version: nginx/1.25.1 - fetches '1.25.1'
|
||||||
|
// [NUL]nginx version: openresty/1.21.4.1 - fetches '1.21.4' as this is the nginx version part
|
||||||
|
`(?m)(\x00|\?)nginx version: [^\/]+\/(?P<version>[0-9]+\.[0-9]+\.[0-9]+(?:\+\d+)?(?:-\d+)?)`,
|
||||||
|
),
|
||||||
|
Package: "nginx",
|
||||||
|
PURL: mustPURL("pkg:generic/nginx@version"),
|
||||||
|
CPEs: []cpe.CPE{
|
||||||
|
cpe.Must("cpe:2.3:a:f5:nginx:*:*:*:*:*:*:*:*"),
|
||||||
|
cpe.Must("cpe:2.3:a:nginx:nginx:*:*:*:*:*:*:*:*"),
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
// in both binaries and shared libraries, the version pattern is [NUL]3.11.2[NUL]
|
// in both binaries and shared libraries, the version pattern is [NUL]3.11.2[NUL]
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user