Aller au contenu

Syft

À quoi il sert

Syft analyse une image de conteneur (depuis un registre, une archive docker save ou le démon local), un système de fichiers ou une archive, et produit la liste des composants qu'il reconnaît : paquets Debian, Alpine ou RPM, bibliothèques Python, Node, Java, Go (y compris celles embarquées dans un binaire Go), avec leurs versions et leurs identifiants purl. Il écrit le résultat en SPDX, CycloneDX ou dans son propre format. C'est aussi l'analyseur qu'utilise BuildKit pour --sbom=true.

Quand le choisir

  • Pour produire le SBOM d'une image que l'on ne construit pas soi-même (image tierce, image de base).
  • Pour produire plusieurs formats d'un coup (-o cyclonedx-json=... -o spdx-json=...).
  • Pour alimenter un outil d'inventaire comme Dependency-Track.

Alternatives

Trivy (--format cyclonedx ou spdx-json), le SBOM intégré de BuildKit, cdxgen (orienté code source), les générateurs propres aux registres.

Points d'attention

  • Un SBOM n'est utile que si l'outil qui le lit l'interprète comme prévu : la même image analysée par Trivy via un SBOM Syft a donné 20 vulnérabilités, contre 184 via l'image elle-même. Validez la chaîne producteur et consommateur.
  • Il ne voit que ce qui a des métadonnées ou une signature reconnaissable.

Par où commencer

La leçon SBOM et attestations de provenance.