Aller au contenu

Ledger CVD — consommer + publier

Le schéma 108 (2026-05-25) livre deux faces d’une même pièce : nous consommons le ledger CVD public d’Anthropic pour donner aux opérateurs une alerte précoce sur des paquets avec des vulnérabilités scellées, et nous permettons aux tenants software-vendor de publier leur propre ledger dans le même format — preuve utile pour CRA Annexe I §11-12.

Voie A — Consommer le ledger d’Anthropic (alerte précoce)

Le programme de divulgation coordonnée d’Anthropic publie des commitments hash SHA-3-512 de rapports scellés avant la fermeture de la fenêtre de divulgation. Les détails effectifs ne deviennent publics que plus tard, mais le nom de projet + bug class + commitment hash sont visibles dès le premier jour. monsys consomme ce flux quotidiennement et le matche contre votre inventaire.

ComposantQuoi
CVDLedgerWorkerSonde red.anthropic.com/2026/cvd/ledger/payload.json toutes les 24 h
cvd_ledger_entriesCache local de chaque entrée ledger jamais vue
cvd_predisclosure_findingsMatch par (tenant, agent, entry) contre inventory_packages + inventory_dependencies
Catégorie /recommendations cvd.predisclosureAffiche les findings matchés — severity = medium pour pre-disclosure, high une fois divulgué, info une fois fixé

Confidentialité : le worker fait un GET one-shot ; pas de query-string par tenant, pas de métadonnée agent ne quitte le hub. Anthropic n’apprend rien sur votre inventaire.

Playbook opérateur pour un hit CVD pré-divulgation :

  1. Notez le nom du projet + bug class.
  2. Épinglez votre version actuelle qui fonctionne (ex : npm pin, pip-compile --upgrade-package, apt-mark hold).
  3. Abonnez-vous au flux de release upstream du projet.
  4. Planifiez une fenêtre de patch autour de disclosure_eta. Quand les détails atterrissent, vous pouvez bouger en heures, pas en jours.
  5. Acquittez le finding une fois que vous avez pris une action préventive.

Voie B — Publier votre propre ledger tenant

Si votre tenant est un software vendor sous CRA Annexe I §11-12 (“le fabricant doit gérer les vulnérabilités efficacement”), vous pouvez publier vos propres vulns découvertes selon le même pattern qu’utilise Anthropic :

  1. Phase commit (POST /api/v1/vuln-ledger) :
    • Body : { project, bug_class, payload, disclose_at }
    • Nous calculons SHA-512 du payload canonical-sérialisé, le chiffrons avec CLOUD_ENCRYPTION_KEY, stockons les deux, et ancrons le hash dans notre transparency log existant (mig 092) pour qu’il fasse partie de la hash-chain monotone.
  2. Vue publique (GET /v/{public_slug}/ledger) : pas d’auth, pas de fuite tenant_id. Les entrées pré-divulgation montrent seulement project + bug class + hash + committed_at. Après disclose_at et une fois que vous PATCHez status à disclosed/fixed, le public_summary + advisory_id + fix_commit_url deviennent visibles.
  3. Tamper-evidence : chaque transparency_entry_id référence la hash-chain publique. Un auditeur peut vérifier “votre commitment était dans la chain à la position N avant le temps T”.

Endpoints :

MéthodePathAuthQuoi
GET/api/v1/vuln-ledgercookieListe côté opérateur (tous les états)
POST/api/v1/vuln-ledgercookieCommit une entrée scellée
PATCH/api/v1/vuln-ledger/:idcookieMet à jour status / public summary / advisory_id / fix_commit_url
GET/v/:slug/ledgeraucuneVue publique du ledger (rate-limited 60/min)

Slug tenant : auto-seedé à lower(12 premiers chars du tenant_id) à l’application de mig 108. Override via UI plus tard.

Conformité : nouveau contrôle CRA-AnnexI-11-vuln-handling auto-évalué en comptant les entrées tenant_vuln_ledger committées dans les 90 derniers jours.

Pourquoi deux faces d’une pièce

Le pattern est identique dans les deux sens :

Découverte → Commitment cryptographique MAINTENANT
Détails scellés
Fenêtre de divulgation
Révélation publique

Quand Anthropic découvre, vous consommez. Quand votre tenant découvre, vous publiez dans le même format. L’ancrage transparency-log rend les deux faces vérifiables par n’importe quel tiers avec un script.

Ce que ceci NE remplace PAS

  • Assignation CVE publique : vous remplissez toujours une CVE auprès de MITRE / le CNA du paquet. Nous n’émettons pas d’IDs CVE.
  • Divulgation coordonnée avec le maintainer : travail humain, hors plateforme.
  • Pen-test ou découverte de vuln elle-même : nous enregistrons ce que vous trouvez ; trouver est le travail de votre équipe (ou d’une firme de recherche).

Vérifier votre ledger en CLI

Fenêtre de terminal
# Pull du payload public
curl -s https://api.monsys.ai/v/<slug>/ledger | jq
# Cross-verify d'un hash contre le transparency log
curl -s https://api.monsys.ai/api/v1/transparency/log/<entry_id> | jq
# Source Anthropic (pour contexte)
curl -s https://red.anthropic.com/2026/cvd/ledger/payload.json | jq