Ga naar inhoud

CVE matching

Monsys correlates de geïnstalleerde packages op iedere host met meerdere CVE-feeds en geeft elke match een gewogen risicoscore.

Bronnen

  • NVD v2 — National Vulnerability Database, met CVSS 3.1 scores en CPE-string match (incl. version-range constraints).
  • OSV.dev — package-specifieke kwetsbaarheden voor apt, rpm, pip, npm, cargo, gem.
  • EPSS — Exploit Prediction Scoring System (FIRST.org). Geeft een waarschijnlijkheid (0–1) dat een CVE binnen 30 dagen geëxploiteerd zal worden.

Matching-algoritme

  1. Voor elke geïnstalleerde package (name, version) wordt CPE-naam matching en OSV ecosystem-query parallel uitgevoerd.
  2. Voor NVD-hits worden version-range constraints (versionStartIncluding, versionEndExcluding …) toegepast — installed must fall in the vulnerable range.
  3. OSV-hits die al door NVD gevonden zijn, worden gededupeerd op CVE-id.

Risk score formule

risk = cvss * (epss > 0 ? epss : 0.05)
* 1.5 if published > 30 dagen geleden
* 2.0 if known public exploit (ExploitDB / Metasploit)
* 1.5 if affected service luistert op publiek interface
gecapped op 10.0

Limitaties

  • Debian/Ubuntu backporting: Canonical patcht security holes vaak in een oudere versie. Onze matcher kan niet onderscheiden tussen “1.18.0” upstream en “1.18.0-6ubuntu0.4” (waar de fix in zit). Dit veroorzaakt false positives voor LTS-distros.
  • Windows: WMIC/winget tonen alleen geïnstalleerde MSI’s, niet portable apps.
  • Beta/RC-versies: NVD CPE strings dekken release-versies; pre-releases matchen mogelijk niet correct.