OS-pakket CVE matching (OSV.dev)
monsys neemt de pakket-inventaris die de agent al rapporteert — apt,
dpkg, dnf, yum, rpm, apk, zypper — en vraagt
OSV.dev naar bekende CVE’s tegen de exact
geïnstalleerde versies. Er draait geen extra scanner; geen wijziging
op de host. De matching gebeurt in de hub tegen een open publieke
dataset.
Waarom dit bestaat
De hub draait al drie CVE-pipelines:
- Applicatie-dependencies — OSV.dev tegen
package.json,requirements.txt,composer.lock,go.sum. Geshipt in schema 035. - Container-images — Trivy tegen image manifests. Schema 035.
- Kernel — Distro-trackers (USN, Debian Security Tracker, RHEL CSAF, Gentoo GLSA) tegen de draaiende kernel-release. Schema 093.
Het gat was OS-pakketten op de host zelf: een niet-gepatchte
libssl3, apache2, nginx, glibc. Schema 100 sluit dat gat door
dezelfde backend te hergebruiken die we al vertrouwen voor app-deps.
Dekking
OSV.dev dekt deze OS-ecosystemen, continu bijgewerkt:
| Distro-familie | OSV ecosysteem |
|---|---|
| Ubuntu | Ubuntu:24.04, Ubuntu:22.04, Ubuntu:20.04, Ubuntu:18.04 |
| Debian | Debian:12, Debian:11, Debian:10 |
| Alpine | Alpine:v3.19, Alpine:v3.18, … |
| Rocky Linux | Rocky Linux:9, Rocky Linux:8 |
| AlmaLinux | AlmaLinux:9, AlmaLinux:8 |
| openSUSE Tumbleweed | openSUSE:Tumbleweed |
| Wolfi | Wolfi |
| Chainguard | Chainguard |
| SUSE SLES 15 | SUSE:SLES15 |
Distros zonder OSV-ecosysteem (Arch, Gentoo, FreeBSD, custom builds) worden stil overgeslagen — de Trust Score sub-component wordt blanked in plaats van straffen.
Hoe het werkt
- Elke 2 uur leest
OSPackageCveWorkerde laatste inventory-snapshot per agent, leidt een OSV-ecosysteem af uitos_name+os_version, en stuurt(ecosystem, package_name, version)in chunks van 1000 naarPOST https://api.osv.dev/v1/querybatch. - Elk uniek vuln-ID wordt eenmalig opgehaald via
GET https://api.osv.dev/v1/vulns/{id}, gecached binnen de cyclus. - Elke
(agent, package, version, vuln_id)match wordt geüpsert inos_package_cvesmet severity, fixed-versie, samenvatting, aliases. - De
/recommendations-pagina pikt ze automatisch op, en het per-agent CVE-tabblad UNIONt ze met de bestaande app-dep en Trivy bevindingen.
Impact op Trust Score
De patch_hygiene-component (gewicht 30%) wordt een 3-weg composite
zodra alle drie sub-componenten data hebben:
application_cves— 50%kernel_currency— 25%os_packages— 25%
Wanneer een host nog te nieuw is om OS-pakket-data te hebben, wordt de sub-component blanked (gewicht 0) — de score blijft stabiel in plaats van stilletjes te straffen.
Privacy
We sturen alleen (ecosystem, name, version)-triples naar OSV.dev.
Geen hostnames, geen tenant-ID’s, geen agent-ID’s. De exposure is
dezelfde als iemand die apt list --installed draait op de host met
shell-toegang. OSV.dev wordt beheerd door Google’s Open Source Security
Team onder Apache 2.0 licentie; de lookup zelf is ongeauthenticeerd
en gratis.
Actie ondernemen op een bevinding
Elke bevinding is observe-only — volgens het monsys human-in-the-loop
principe draait de hub nooit automatisch apt upgrade of een andere
mutatie. De /recommendations-pagina toont per host een preview-commando:
| Distro | Preview |
|---|---|
| Ubuntu / Debian | sudo apt-get update && sudo apt-get upgrade -y |
| RHEL / Rocky / Alma | sudo dnf upgrade --security -y |
| Alpine | sudo apk update && sudo apk upgrade |
| openSUSE / SLES | sudo zypper patch |
Voor gecontroleerde uitvoering bestaat de bestaande package_update
EAT-flow op de agent — operator keurt de upgrade goed via TOTP, de EAT
autoriseert een single-shot apt upgrade <pkg>=<version> met een
signed audit-log-entry. Dat deel is niet veranderd.
MCP tool
Voor Claude Connector-gebruikers exposeert de nieuwe tool
monsys_list_os_cves dezelfde data met filters voor min_severity,
only_with_fix, en agent_id. Zoals alle detection-tools is hij
read-only.