Un outil CLI et une bibliothèque Go pour générer une nomenclature logicielle (SBOM) à partir d'images de conteneurs et de systèmes de fichiers. Exceptionnel pour la détection de vulnérabilités lorsqu'il est utilisé avec un scanner comme Grype.
Syft est un outil open source puissant et facile à utiliser permettant de générer des nomenclatures logicielles (SBOM) pour les images de conteneurs et les systèmes de fichiers. Il offre une visibilité détaillée sur les packages et les dépendances de votre logiciel, vous aidant ainsi à gérer les vulnérabilités, la conformité des licences et la sécurité de la chaîne d'approvisionnement logicielle.
Le développement de Syft est sponsorisé par Anchore et est publié sous la licence Apache-2.0. Pour les options de support commercial avec Syft ou Grype, veuillez contacter Anchore.
Génère des SBOM pour les images de conteneurs, les systèmes de fichiers, les archives et bien plus encore pour découvrir des packages et des bibliothèques
Prend en charge les formats d'image OCI, Docker et Singularity
Identification de la distribution Linux
Fonctionne parfaitement avec Grype (un scanner de vulnérabilités rapide et moderne)
Capable de créer des attestations SBOM signées en utilisant la spécification in-toto
Convertissez entre les formats SBOM, tels que CycloneDX, SPDX et le format propre à Syft.
Les binaires Syft sont fournis pour Linux, macOS et Windows.
curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin
Options du script d'installation :
-b
: Spécifiez un répertoire d'installation personnalisé (par défaut ./bin
)
-d
: niveaux de journalisation plus détaillés ( -d
pour le débogage, -dd
pour la trace)
-v
: Vérifiez la signature de l'artefact téléchargé avant l'installation (nécessite l'installation cosign
)
Brew installer Syft
scoop installer Syft
La distribution chocolatée de Syft est maintenue par la communauté et n'est pas distribuée par l'équipe Anchore
choco installer syft -y
Remarque : le packaging Nix de Syft est maintenu par la communauté. Syft est disponible dans le canal stable depuis NixOS 22.05
.
nix-env -i syft
... ou essayez-le simplement dans un shell nix éphémère :
nix-shell -p syft
Pour générer un SBOM pour une image de conteneur :
Syft
La sortie ci-dessus inclut uniquement les logiciels visibles dans le conteneur (c'est-à-dire la représentation écrasée de l'image). Pour inclure les logiciels de toutes les couches d'image dans le SBOM, quelle que soit leur présence dans l'image finale, fournissez --scope all-layers
:
syft--scope toutes les couches
Le format de sortie pour Syft est également configurable à l'aide de l'option -o
(ou --output
) :
syft-o
Où les formats
disponibles sont:
syft-json
: utilisez-le pour obtenir autant d'informations que possible sur Syft !
syft-text
: une sortie orientée lignes, conviviale pour l'homme et la machine.
cyclonedx-xml
: Un rapport XML conforme à la spécification CycloneDX 1.6.
[email protected]
: Un rapport XML conforme à la spécification CycloneDX 1.5.
cyclonedx-json
: Un rapport JSON conforme à la spécification CycloneDX 1.6.
[email protected]
: Un rapport JSON conforme à la spécification CycloneDX 1.5.
spdx-tag-value
: un rapport formaté en valeur de balise conforme à la spécification SPDX 2.3.
[email protected]
: un rapport formaté en valeur de balise conforme à la spécification SPDX 2.2.
spdx-json
: Un rapport JSON conforme au schéma JSON SPDX 2.3.
[email protected]
: Un rapport JSON conforme au schéma JSON SPDX 2.2.
github-json
: Un rapport JSON conforme au format d'instantané de dépendance de GitHub.
syft-table
: Un résumé en colonnes (par défaut).
template
: Permet à l'utilisateur de spécifier le format de sortie. Voir « Utilisation de modèles » ci-dessous.
Notez que les indicateurs utilisant le @ peuvent également être utilisés pour les versions antérieures de chaque spécification.
Alpin (apk)
C (conan)
C++ (conan)
Fléchettes (pubs)
Debian (dpkg)
Dotnet (deps.json)
Objective-C (cocoapodes)
Élixir (mélange)
Erlang (barre d'armature3)
Go (go.mod, binaires Go)
Haskell (cabale, pile)
Java (jar, ear, war, par, sar, nar, native-image)
JavaScript (npm, fil)
Plugins Jenkins (jpi, hpi)
Archives du noyau Linux (vmlinz)
Modules du noyau Linux (ko)
Nix (sorties dans /nix/store)
PHP (compositeur)
Python (roue, œuf, poésie, exigences.txt)
Chapeau rouge (tr/min)
Rubis (gemme)
Rouille (cargo.lock)
Swift (cocoapodes, Swift-Package-Manager)
Plugins Wordpress
Notre wiki contient plus de détails sur les sujets suivants :
Sources prises en charge
Sélection de fichiers
Exclure les chemins de fichiers
Formats de sortie
Sélection du catalogueur de packages
Concepts
Exemples
Utiliser des modèles
Sorties multiples
Authentification du registre privé
Informations d'identification Docker locales
Informations d’identification Docker dans Kubernetes
Attestation (expérimentale)
Assistance sans clé
Prise en charge de la clé privée locale
Ajout d'un SBOM à une image comme attestation à l'aide de Syft
Configuration
Consultez notre guide de contribution et nos documents pour les développeurs.
L'équipe Syft organise régulièrement des réunions communautaires en ligne. Tous sont invités à se joindre à nous pour proposer des sujets de discussion.
Consultez le calendrier pour connaître la date de la prochaine réunion.
Ajouter des éléments à l'ordre du jour (rejoignez ce groupe pour accéder en écriture à l'ordre du jour)
Rendez-vous là-bas!