Uma ferramenta CLI e biblioteca Go para gerar uma lista de materiais de software (SBOM) a partir de imagens de contêiner e sistemas de arquivos. Excepcional para detecção de vulnerabilidades quando usado com um scanner como o Grype.
Syft é uma ferramenta de código aberto poderosa e fácil de usar para gerar Lista de Materiais de Software (SBOMs) para imagens de contêiner e sistemas de arquivos. Ele fornece visibilidade detalhada dos pacotes e dependências do seu software, ajudando você a gerenciar vulnerabilidades, conformidade de licenças e segurança da cadeia de suprimentos de software.
O desenvolvimento do Syft é patrocinado pela Anchore e lançado sob a licença Apache-2.0. Para opções de suporte comercial com Syft ou Grype, entre em contato com Anchore.
Gera SBOMs para imagens de contêiner, sistemas de arquivos, arquivos e muito mais para descobrir pacotes e bibliotecas
Suporta formatos de imagem OCI, Docker e Singularity
Identificação da distribuição Linux
Funciona perfeitamente com o Grype (um scanner de vulnerabilidades rápido e moderno)
Capaz de criar atestados SBOM assinados usando a especificação in-toto
Converta entre formatos SBOM, como CycloneDX, SPDX e o próprio formato do Syft.
Binários Syft são fornecidos para Linux, macOS e Windows.
curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin
Instalar opções de script:
-b
: Especifique um diretório de instalação personalizado (o padrão é ./bin
)
-d
: níveis de registro mais detalhados ( -d
para depuração, -dd
para rastreamento)
-v
: Verifique a assinatura do artefato baixado antes da instalação (requer que cosign
seja instalado)
preparar instalar syft
colher instalar syft
A distribuição achocolatada do Syft é mantida pela comunidade e não distribuída pela equipe Anchore
choco instalar syft -y
Nota : A embalagem Nix do Syft é mantida pela comunidade. Syft está disponível no canal estável desde NixOS 22.05
.
nix-env -i syft
... ou apenas experimente em um shell nix efêmero:
nix-shell -p syft
Para gerar um SBOM para uma imagem de contêiner:
Syft
A saída acima inclui apenas software visível no contêiner (ou seja, a representação compactada da imagem). Para incluir software de todas as camadas da imagem no SBOM, independentemente de sua presença na imagem final, forneça --scope all-layers
:
syft--scope todas as camadas
O formato de saída do Syft também pode ser configurado usando a opção -o
(ou --output
):
syft-o
Onde os formats
disponíveis são:
syft-json
: Use isto para obter o máximo de informações possível do Syft!
syft-text
: Uma saída orientada a linhas e amigável para humanos e máquinas.
cyclonedx-xml
: Um relatório XML em conformidade com a especificação CycloneDX 1.6.
[email protected]
: Um relatório XML em conformidade com a especificação CycloneDX 1.5.
cyclonedx-json
: Um relatório JSON em conformidade com a especificação CycloneDX 1.6.
[email protected]
: Um relatório JSON em conformidade com a especificação CycloneDX 1.5.
spdx-tag-value
: um relatório formatado com valor de tag em conformidade com a especificação SPDX 2.3.
[email protected]
: Um relatório formatado com valor de tag em conformidade com a especificação SPDX 2.2.
spdx-json
: um relatório JSON em conformidade com o esquema JSON SPDX 2.3.
[email protected]
: Um relatório JSON em conformidade com o esquema JSON SPDX 2.2.
github-json
: um relatório JSON em conformidade com o formato de instantâneo de dependência do GitHub.
syft-table
: Um resumo colunar (padrão).
template
: permite que o usuário especifique o formato de saída. Consulte "Usando modelos" abaixo.
Observe que os sinalizadores que usam @ também podem ser usados para versões anteriores de cada especificação.
Alpino (apk)
C (conan)
C++ (conan)
Dardo (pubs)
Debian (dpkg)
Dotnet (deps.json)
Objective-C (cocoápodes)
Elixir (mistura)
Erlang (vergalhão3)
Go (go.mod, binários Go)
Haskell (cabala, pilha)
Java (jar, ear, war, par, sar, nar, imagem nativa)
JavaScript (npm, fio)
Plug-ins Jenkins (jpi, hpi)
Arquivos do kernel Linux (vmlinz)
Módulos do kernel Linux (ko)
Nix (saídas em /nix/store)
PHP (compositor)
Python (roda, ovo, poesia, requisitos.txt)
Chapéu Vermelho (rpm)
Rubi (gema)
Ferrugem (cargo.lock)
Swift (cocoapods, gerenciador de pacotes swift)
Plug-ins Wordpress
Nosso wiki contém mais detalhes sobre os seguintes tópicos:
Fontes Suportadas
Seleção de arquivo
Excluindo caminhos de arquivo
Formatos de saída
Seleção do Catalogador de Pacotes
Conceitos
Exemplos
Usando modelos
Múltiplas saídas
Autenticação de Registro Privado
Credenciais locais do Docker
Credenciais Docker no Kubernetes
Atestado (experimental)
Suporte sem chave
Suporte de chave privada local
Adicionando um SBOM a uma imagem como um atestado usando Syft
Configuração
Confira nosso guia de contribuição e documentos para desenvolvedores.
A equipe Syft realiza reuniões comunitárias regulares online. Todos estão convidados a participar para trazer tópicos para discussão.
Verifique o calendário para a próxima data da reunião.
Adicione itens à agenda (junte-se a este grupo para ter acesso de escrita à agenda)
Vejo você lá!