Analyse SBOM et vulnérabilités pour le CRA
Déposez vos lockfiles. Vous obtenez une SBOM CycloneDX (exigée par l'annexe I partie II), les vulnérabilités connues référencées par OSV.dev pour vos composants open source, et celles dont l'exploitation active est confirmée (KEV CISA). Ce dernier point est un signal fort pour l'obligation de notification du CRA, qui démarre quand votre produit est exposé et que vous le savez. Rien n'est téléversé. Seuls les noms et versions des paquets partent vers OSV.dev.
Pris en charge :
…ou collez un manifeste
Automatisez : la même analyse dans votre CI
L'analyseur est un outil en ligne de commande open source. Lancez-le à chaque version et conservez la SBOM avec les artefacts. C'est ce que demande l'annexe VII.
# dans le dossier du projet npx crakit # écrit sbom.cdx.json et affiche les vulnérabilités connues + activement exploitées npx crakit --fail-on-kev # code de sortie 2 si une vulnérabilité KEV est trouvée (barrière CI) # GitHub Actions - uses: actions/setup-node@v4 - run: npx crakit --fail-on-kev
Comment ça marche
Qu'est-ce qui est vérifié ?
Votre lockfile est lu localement et converti en identifiants de paquets (purl). Ils sont envoyés à l'API batch d'OSV.dev, qui agrège GitHub Advisories, PyPA, RustSec, Go, npm et d'autres bases. Chaque avis est ensuite rapproché du catalogue KEV de la CISA par identifiant CVE. Les plages de versions des manifestes sans lockfile sont approximées par leur borne basse et signalées.
Pourquoi le KEV est-il le signal CRA ?
L'article 14 impose de notifier les vulnérabilités « activement exploitées ». Le KEV liste les vulnérabilités dont l'exploitation est confirmée. Quand une de vos dépendances y figure, vérifiez le jour même si votre produit expose ce chemin de code. Si c'est le cas et que le produit est déjà livré, l'horloge de 24 heures court à partir du moment où vous le savez.
Limites
OSV couvre les écosystèmes open source, pas votre propre code ni les SDK propriétaires. Les dépendances transitives sont couvertes quand un lockfile est fourni. Les propriétés Maven et Gradle ne sont pas résolues : utilisez les plugins CycloneDX Maven/Gradle et déposez le bom.json obtenu.