Commit graph

67 commits

Author SHA1 Message Date
Chapman Pendery
d5b825e40b
feat: extract use cpes in matching logic to be configurable (#911) 2022-09-06 09:55:35 -04:00
Christopher Angelo Phillips
991d16879a
update grype to use syft v0.52.0 (#838) 2022-07-22 16:12:18 +00:00
Zac Medico
30943e032b
add Gentoo matching support (#813)
Co-authored-by: Christopher Phillips <christopher.phillips@anchore.com>
2022-07-19 09:37:21 -04:00
Christopher Angelo Phillips
addbd07b4f
Add new matcher files for golang => remove main module FP matches (#829) 2022-07-18 13:14:03 -04:00
artsv79
2233736e98
add DBCloser. Clients can aviod db connection leak if vulnerability db is loaded many times (#825) 2022-07-12 09:54:42 -04:00
Christopher Angelo Phillips
cb6bddfeeb
bump syft version to v0.51.0 (#822) 2022-07-11 15:15:12 -04:00
cpendery
e2fff6c22f
feat: implement grype db diff command (#812)
Co-authored-by: Alex Goodman <alex.goodman@anchore.com>
Co-authored-by: Weston Steimel <weston.steimel@anchore.com>
Co-authored-by: Christopher Angelo Phillips <32073428+spiffcs@users.noreply.github.com>
2022-07-11 09:46:59 -04:00
Christopher Angelo Phillips
0e0a9d9e7a
update syft to v0.50.0 (#818) 2022-07-06 14:48:21 +00:00
Weston Steimel
44032c514c
Finalize v4 Grype schema (#803)
* initial v4 schema setup

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* update v3 => v4 for unit tests

-- did NOT update
    - grype/db/v3/*

Signed-off-by: Christopher Phillips <christopher.phillips@anchore.com>

* use nullable string in sqlite so null values get represented correctly

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* add missing unit test case for dotnet

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* Add db writer function for calling sqlite vacuum

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* adding normalization of package names at database adapter layer

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* refactor namespaces for v4

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* update v4 stuff to use sqlite fork

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* Namespace should satisfy Stringer interface

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* normalize CPEs before comparison

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* vulnerability exclusion => vulnerability match exclusion

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* updates to vulnerability match exclusion models

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* add initial vulnerability match exclusion store unit tests

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* make vuln match exclusion constraints nullable

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* move vuln match namespace into constraints object and refactor

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* check db match constraints to ensure there aren't any unknown fields and add json hints

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* ensure we only keep compatible match exclusion constraints

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* use omitempty on all match exclusion structs

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* remove db v4 schema resolver and namespace types

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* rename Vacuum to Close

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* lint fixes + remove panic on vuln provider creation

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* WIP match exclusions

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* build list of ignore rules from v4 db records

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* quick attempt at a new uber object

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* just pass around the full object for now to quickly get to a usable state

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* fix panic when no vuln db loaded

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* use interfaces for db.store function signatures

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* Flatten the match exclusion constraint model to simplify logic

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* updating some tests

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* fix panic when no db update possible

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* more tests

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* WIP fixing match exclusion constraint usability and json mapping logic

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* add v4 db diff logic (excluding vulnerability_match_exclusion data for now)

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* lint fix

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* update integration tests

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* nvd -> nvd:cpe namespace updates

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* ensure test store uses v4 normalized names

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* set the grype db update url to staging for v4

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* prevent more segfaults on database open

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* add continue when unable to load ignore rules

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* remove db.Status from the Store object

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* fix compare_sbom_input_vs_lib_test.go

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

* remove staging endpoint now that v4 is published

Signed-off-by: Weston Steimel <weston.steimel@anchore.com>

Co-authored-by: Christopher Phillips <christopher.phillips@anchore.com>
Co-authored-by: Alex Goodman <alex.goodman@anchore.com>
2022-07-05 19:03:16 +01:00
cpendery
90df6815e6
feat: add diffing 2 databases to v3 store functionality (#789) 2022-06-28 14:22:37 -04:00
Christopher Angelo Phillips
0703bae977
update grype to latest syft patch v0.48.1 (#790) 2022-06-17 15:45:33 +00:00
Jonas Xavier
2a587d0890
ignore gemfile rich version for semVer comparison (#776)
* ignore gemfile rich version during comparision

Signed-off-by: Jonas Xavier <jonasx@anchore.com>

* update search and version tests

Signed-off-by: Jonas Xavier <jonasx@anchore.com>

* fix int tests and lint error

Signed-off-by: Jonas Xavier <jonasx@anchore.com>

* nit on error message

Signed-off-by: Jonas Xavier <jonasx@anchore.com>

* split based on arch in gem version

Signed-off-by: Jonas Xavier <jonasx@anchore.com>

* reuse semVer constraint

Signed-off-by: Jonas Xavier <jonasx@anchore.com>

* more constraint tests cases

Signed-off-by: Jonas Xavier <jonasx@anchore.com>

* feedback changes

Signed-off-by: Jonas Xavier <jonasx@anchore.com>

* more comments and tests

Signed-off-by: Jonas Xavier <jonasx@anchore.com>

* add lower case version check

Signed-off-by: Jonas Xavier <jonasx@anchore.com>

* feedback changes

Signed-off-by: Jonas Xavier <jonasx@anchore.com>

* validate that ruby version work with semver and gem version

Signed-off-by: Jonas Xavier <jonasx@anchore.com>

* more comments and tests

Signed-off-by: Jonas Xavier <jonasx@anchore.com>

* rename gem version format const

Signed-off-by: Jonas Xavier <jonasx@anchore.com>
2022-06-10 14:09:58 -04:00
Christian Kotzbauer
731abaab72
Add syft v0.46.0 Dotnet support (#747) 2022-05-13 12:46:31 -04:00
Christopher Angelo Phillips
95f68b4c33
Add java.Matcher configuration to includes maven upstream sha1 query (#714) 2022-04-13 13:01:22 -04:00
Jonas Xavier
182c86d11d
Migrate LocationSet and add Dart support (#703) 2022-04-01 08:21:37 -07:00
Keith Zantow
cbdec2ae5e
Update to Syft v0.41.4 (#664) 2022-03-14 17:15:09 -04:00
Keith Zantow
fc8e13f5b8
Support for SBOMs with incomplete linux distribution or CPE information (#606) 2022-03-03 16:31:46 -05:00
Alex Goodman
ad9918a681
Add gosimports linter (#647) 2022-03-03 14:50:24 -05:00
Alex Goodman
c9f2716389
Abstract upstream package before matching (#607)
* add metadata extraction from pURLs

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* extract upstream packages before matching

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* put pkg.UpstreamPackages under test

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* remove pURL related processing

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* pull in syft spdx decoding

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* allow for more flexible GHSA namespace and source extraction

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* add matching parity integration tests for all supported formats

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* bump syft to get spdx tv fix

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
2022-02-10 21:43:12 +00:00
Alex Goodman
2f8682b3db
Add ability to merge matches (#602)
* enable merging of matches

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* add ability for matches constructor to take initial matches

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* update tests to include IDs on package objects

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* rename common matcher helper package to search package

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* rename search functions and add SearchByCriteria

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* cleanup imports

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
2022-01-25 10:29:16 -05:00
Alex Goodman
6e3aa6a8d7
Add strong distro type (#585)
* add strong distro type

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* nit changes

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* update grype/db package to use distro pointer

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* source distro type from release name

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* bump syft to pull in distro type updates

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* bump lint timeout

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
2022-01-12 13:47:27 -05:00
Alex Goodman
2647cd0d9e
Port grype-db to grype (#587)
* port grype-db to grype

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* migrate vulnerability provider implementation to db package

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* upgrade path import validations

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* fix linting issues

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
2022-01-12 10:03:22 -05:00
Alex Goodman
c88ee0e8f5
add expose minimal search configuration (#579)
Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
2022-01-09 06:14:57 -05:00
Christopher Angelo Phillips
64d4dbb993
update syft version for new release (#578)
* update syft

Signed-off-by: Christopher Phillips <christopher.phillips@anchore.com>

* update CatalogPackages to use new cataloger config struct

Signed-off-by: Christopher Phillips <christopher.phillips@anchore.com>

* add new valid CPE to matcher tests
Signed-off-by: Christopher Phillips <christopher.phillips@anchore.com>

* update integration tests

Signed-off-by: Christopher Phillips <christopher.phillips@anchore.com>
2022-01-07 17:57:44 -05:00
Keith Zantow
647d6fb770
Add --exclude flag (#551) 2021-12-21 12:52:07 -05:00
Eng Zer Jun
0781fb028b
refactor: move from io/ioutil to io and os packages (#543)
The io/ioutil package has been deprecated as of Go 1.16, see
https://golang.org/doc/go1.16#ioutil. This commit replaces the existing
io/ioutil functions with their new definitions in io and os packages.

Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2021-12-15 09:35:04 -05:00
Alex Goodman
51e1b6307b
Update syft, jotframe, and validations pipeline (#512)
* update syft and jotframe

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* update validations and release pipeline

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* moved terminal package to golang.org/x/term

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* update integration tests to account for package relationships

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* add license exception for xz

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* update Location and Coordinate references

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* remove benchmark tests

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* remove mac acceptance tests

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>

* add syft-grype relationship notes in DEVELOPING.md

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
2021-11-30 18:10:07 +00:00
Christopher Angelo Phillips
a2762bbbf0
Bump syft version => v0.30.1 (#498)
* update syft version with correct arguments

Signed-off-by: Christopher Angelo Phillips <christopher.phillips@anchore.com>

* bump integration tests with new presenter format

Signed-off-by: Christopher Angelo Phillips <christopher.phillips@anchore.com>

* update integration tests to remove php-composer failure

Signed-off-by: Christopher Angelo Phillips <christopher.phillips@anchore.com>
2021-11-15 17:11:56 -05:00
Christopher Angelo Phillips
9cd917d29c
Add windows support (#464)
* update grype to compile windows

Signed-off-by: spiffcs <christopher.phillips@anchore.com>
Signed-off-by: Christopher Angelo Phillips <christopher.phillips@anchore.com>

* update go mod with new stereoscope

Signed-off-by: Christopher Angelo Phillips <christopher.phillips@anchore.com>

* update build comments

Signed-off-by: Christopher Angelo Phillips <christopher.phillips@anchore.com>

* small build tags

Signed-off-by: Christopher Angelo Phillips <christopher.phillips@anchore.com>

* add goreleaser windows

Signed-off-by: Christopher Angelo Phillips <christopher.phillips@anchore.com>

* bump syft version

Signed-off-by: Christopher Angelo Phillips <christopher.phillips@anchore.com>

* update tests

Signed-off-by: Christopher Angelo Phillips <christopher.phillips@anchore.com>

* update test images to use newest pinned golang

Signed-off-by: Christopher Angelo Phillips <christopher.phillips@anchore.com>
2021-10-22 13:46:56 -04:00
Alex Goodman
6fe9fc2c8c
update linter + fix whitespace (#443)
Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
2021-10-06 09:49:42 -04:00
Alex Goodman
1db64eff72
add stock matcher (language + cpe matching) (#432)
Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
2021-09-28 15:28:48 -04:00
Vijay Pillai
1a7c9d1779
Bugfixes + Integration test for sbom input vs grype library comparison (#424)
This change both adds a test to identify and fixes differences between loading sboms from json and loading sboms from Syft as a library.
* adds integration test that compares SBOM input vs image input
* fix integration test cache path
* Add handler for ApkMetadataType in partialSyftPackage.UnmarshalJSON
* Fix Epoch missing from Package.New RpmdbMetadataType handler and update RpmDbMetadata test in TestNew_MetadataExtraction
* bump syft to version 0.24.0
* update license check for packageurl-go

Co-authored-by: Alex Goodman <alex.goodman@anchore.com>
Co-authored-by: Vijay Pillai <vijay.pillai@anchore.com>

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
Signed-off-by: Vijay Pillai <vijay.pillai@anchore.com>
2021-09-22 21:53:32 -04:00
Dan Palmer
83c6ee23a9
Update grype-db dependency, add some SLES tests (#413)
* Update grype-db dependency, add some SLES tests

Signed-off-by: Dan Palmer <dan.palmer@anchore.com>
2021-09-14 15:08:32 -04:00
Christopher Angelo Phillips
f3e3e832a8
bump syft to the newest 0.23.0 version - tidy mod (#414)
* bump syft to the newest 0.23.0 version - tidy mod
Signed-off-by: Christopher Angelo Phillips <christopher.phillips@anchore.com>

* update integration test to use new pointer
syft source.New() was changed to return a pointer
rather than value for 0.23.0 this commit updates our 
integration tests to reflect that change
Signed-off-by: Christopher Angelo Phillips <christopher.phillips@anchore.com>
2021-09-13 16:46:41 -04:00
Alex Goodman
423a7c6d2f
add integration test for MSRC matching (#403)
Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
2021-09-02 09:30:22 -04:00
Alex Goodman
c7f33a8e4f
bump grype-db version to use main branch
Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
2021-07-20 12:18:29 -04:00
Alex Goodman
13e647d670
rename matchDetails.matchedOn to matchDetails.found
Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
2021-06-01 15:19:47 -04:00
Alex Goodman
ed054f2038
incorporate multiple match details to accomodate more accurate reported CPE matching info
Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
2021-05-30 11:51:14 -04:00
Alex Goodman
6db86bfea8
rename SearchKey variable to SearchedBy
Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
2021-05-27 16:05:12 -04:00
Alex Goodman
ce0bc73ede
adjust alpine matching to be able to independenly rely on nvd
Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
2021-05-07 13:57:34 -04:00
Alfredo Deza
878e312de1 remove msrc fromo defined matchers - can't use a container to catalog
Signed-off-by: Alfredo Deza <adeza@anchore.com>
2021-05-03 14:56:00 -04:00
Alex Goodman
55576feeb7
update integration tests with registry options
Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
2021-04-13 16:11:22 -04:00
Alex Goodman
976e3d68eb
pull in syft v0.14.0 and further decouple presenters from syft
Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
2021-04-01 10:01:07 -04:00
Alfredo Deza
95acf0e0c9 refactor v1-based imports to db
Signed-off-by: Alfredo Deza <adeza@anchore.com>
2021-03-05 09:32:13 -05:00
Alex Goodman
137be60f28
add grype pkg.Package adapter for syft pkg.Package and remove pkg.Catalog
Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
2020-12-14 07:55:54 -05:00
Alex Goodman
25d6ec6c79
add SBOM JSON document input from syft
Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
2020-11-17 17:55:24 -05:00
Alex Goodman
4ed516e784
bump syft to v0.7.1 (with related fixes)
Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
2020-11-12 10:02:40 -05:00
Alex Goodman
2dcb017295
update python and javascript catalogers
Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
2020-10-23 11:34:18 -04:00
Alex Goodman
da614aa4ac
bump syft version (add package.json, rename bundler to ruby)
Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
2020-10-19 08:02:13 -04:00
Alex Goodman
9d06b57a0e
incorporate gemspec cataloger (#177)
Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
2020-10-09 11:09:42 -04:00