Una herramienta CLI y una biblioteca Go para generar una lista de materiales de software (SBOM) a partir de imágenes de contenedores y sistemas de archivos. Excepcional para la detección de vulnerabilidades cuando se usa con un escáner como Grype.
Syft es una herramienta de código abierto potente y fácil de usar para generar listas de materiales de software (SBOM) para imágenes de contenedores y sistemas de archivos. Proporciona visibilidad detallada de los paquetes y dependencias de su software, lo que le ayuda a gestionar las vulnerabilidades, el cumplimiento de las licencias y la seguridad de la cadena de suministro de software.
El desarrollo de Syft está patrocinado por Anchore y se publica bajo la licencia Apache-2.0. Para opciones de soporte comercial con Syft o Grype, comuníquese con Anchore.
Genera SBOM para imágenes de contenedores, sistemas de archivos, archivos y más para descubrir paquetes y bibliotecas.
Admite formatos de imagen OCI, Docker y Singularity
Identificación de distribución de Linux
Funciona perfectamente con Grype (un escáner de vulnerabilidades moderno y rápido)
Capaz de crear certificaciones SBOM firmadas utilizando la especificación integral
Convierta entre formatos SBOM, como CycloneDX, SPDX y el formato propio de Syft.
Los binarios de Syft se proporcionan para Linux, macOS y Windows.
curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin
Instalar opciones de script:
-b
: especifica un directorio de instalación personalizado (el valor predeterminado es ./bin
)
-d
: niveles de registro más detallados ( -d
para depuración, -dd
para seguimiento)
-v
: Verifica la firma del artefacto descargado antes de la instalación (requiere la instalación de cosign
)
instalación de cerveza syft
instalación de primicia syft
La distribución de chocolate de Syft es mantenida por la comunidad y no distribuida por el equipo de Anchore.
choco instalar syft -y
Nota : El empaquetado Nix de Syft es mantenido por la comunidad. Syft está disponible en el canal estable desde NixOS 22.05
.
nix-env -i syft
... o simplemente pruébelo en un shell nix efímero:
nix-shell -p syft
Para generar un SBOM para una imagen de contenedor:
syft
El resultado anterior incluye sólo el software que es visible en el contenedor (es decir, la representación aplastada de la imagen). Para incluir software de todas las capas de imágenes en el SBOM, independientemente de su presencia en la imagen final, proporcione --scope all-layers
:
syft--alcance todas las capas
El formato de salida para Syft también se puede configurar usando la opción -o
(o --output
):
syft-o
Donde los formats
disponibles son:
syft-json
: ¡Utilice esto para obtener la mayor cantidad de información posible de Syft!
syft-text
: una salida orientada a filas y compatible con humanos y máquinas.
cyclonedx-xml
: un informe XML que cumple con la especificación CycloneDX 1.6.
[email protected]
: un informe XML que cumple con la especificación CycloneDX 1.5.
cyclonedx-json
: un informe JSON que cumple con la especificación CycloneDX 1.6.
[email protected]
: un informe JSON que cumple con la especificación CycloneDX 1.5.
spdx-tag-value
: informe formateado con valor de etiqueta que cumple con la especificación SPDX 2.3.
[email protected]
: Un informe formateado con valor de etiqueta que cumple con la especificación SPDX 2.2.
spdx-json
: un informe JSON conforme al esquema JSON SPDX 2.3.
[email protected]
: un informe JSON conforme al esquema JSON SPDX 2.2.
github-json
: un informe JSON que se ajusta al formato de instantánea de dependencia de GitHub.
syft-table
: un resumen en columnas (predeterminado).
template
: permite al usuario especificar el formato de salida. Consulte "Usar plantillas" a continuación.
Tenga en cuenta que las marcas que usan @ también se pueden usar para versiones anteriores de cada especificación.
Alpino (apk)
c (conan)
C++ (Conan)
Dardo (pubs)
Debian (dpkg)
Dotnet (deps.json)
Objective-C (cocoápodos)
Elixir (mezcla)
Erlang (barra de refuerzo3)
Ir (go.mod, Ir binarios)
Haskell (cábala, pila)
Java (jar, ear, war, par, sar, nar, imagen nativa)
JavaScript (npm, hilo)
Complementos de Jenkins (jpi, hpi)
Archivos del kernel de Linux (vmlinz)
Módulos del kernel de Linux (ko)
Nix (salidas en /nix/store)
PHP (compositor)
Python (rueda, huevo, poesía, requisitos.txt)
Sombrero rojo (rpm)
Rubí (gema)
Óxido (bloqueo de carga)
Swift (cocoapods, administrador de paquetes swift)
Complementos de WordPress
Nuestra wiki contiene más detalles sobre los siguientes temas:
Fuentes admitidas
Selección de archivos
Excluyendo rutas de archivos
Formatos de salida
Selección del catalogador de paquetes
Conceptos
Ejemplos
Usando plantillas
Múltiples salidas
Autenticación de registro privado
Credenciales locales de Docker
Credenciales Docker en Kubernetes
Atestación (experimental)
Soporte sin llave
Soporte de clave privada local
Agregar un SBOM a una imagen como certificación usando Syft
Configuración
Consulte nuestra guía de contribución y los documentos para desarrolladores.
El equipo de Syft celebra reuniones comunitarias periódicas en línea. Todos son bienvenidos a unirse para traer temas de discusión.
Consulta el calendario para la próxima fecha de reunión.
Agregue elementos a la agenda (únase a este grupo para obtener acceso de escritura a la agenda)
¡Nos vemos allí!