Add service to match advisory affected ranges to SBOM component versions

Why are we doing this work

Because of the difficulties inherent in matching package versions against version ranges in advisories (see relevant links) it is initially best for MVC principles to do sbom_component_versions.version to vulnerability_advisories.affected_range matching in ruby code: #363073 (comment 1040916047)+

In order to facilitate this a new service is needed which can be used by callers to do matching between advisories and sbom components in their domains:

This issue captures the work needed to implement this service.

Relevant links

Non-functional requirements

  • Documentation:
  • Feature flag:
  • Performance:
  • Testing: unit tests using rspec

Implementation plan

See #371995 (comment 1339267322)

Verification steps

Edited by Fabien Catteau