As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Amazon Inspector SBOM Generator
Uma lista de materiais de software (SBOM) é uma lista formalmente estruturada de componentes, bibliotecas e módulos necessários para criar um software. O gerador Amazon Inspector SBOM (Sbomgen) é uma ferramenta que produz um SBOM para arquivos, imagens de contêineres, diretórios, sistemas locais e compilados Go and Rust binários. Sbomgen verifica arquivos que contêm informações sobre pacotes instalados. Quando Sbomgen encontra um arquivo relevante, ele extrai nomes de pacotes, versões e outros metadados. Sbomgen em seguida, transforma os metadados do pacote em um CycloneDX ESTRONDO. Você pode usar: Sbomgen para gerar o CycloneDX SBOM como um arquivo ou em STDOUT e envie para o Amazon SBOMs Inspector para detecção de vulnerabilidades. Você também pode usar Sbomgen como parte da integração de CI/CD, que digitaliza imagens de contêineres automaticamente como parte do seu pipeline de implantação.
Tipos de pacotes compatíveis
Sbomgen coleta inventário para os seguintes tipos de pacotes:
-
Alpine APK
-
Debian/Ubuntu DPKG
-
Red Hat RPM
-
C#
-
Go
-
Java
-
Node.js
-
PHP
-
Python
-
Ruby
-
Rust
Verificações de configuração de imagens de contêiner compatíveis
Sbomgen pode escanear Dockerfiles autônomos e criar histórico a partir de imagens existentes em busca de problemas de segurança. Para ter mais informações, consulte Amazon Inspector Dockerfile checks.
Instalar Sbomgen
Sbomgen está disponível somente para sistemas operacionais Linux.
Você deve ter... Docker instalado se você quiser Sbomgen para analisar imagens em cache localmente. Docker não é necessário analisar imagens exportadas como .tar
arquivos ou imagens hospedadas em registros de contêineres remotos.
O Amazon Inspector recomenda que você execute Sbomgen de um sistema com pelo menos as seguintes especificações de hardware:
-
CPU de 4 núcleos
-
RAM de 8 GB
Para instalar Sbomgen
-
Baixe o mais recente Sbomgen arquivo zip do URL correto para sua arquitetura:
Linux AMD64: https://amazon-inspector-sbomgen.s3.amazonaws.com/latest/linux/amd64/inspector-sbomgen.zip
Linux ARM64: https://amazon-inspector-sbomgen.s3.amazonaws.com/latest/linux/arm64/inspector-sbomgen.zip
Como alternativa, você pode baixar versões anteriores do arquivo zip do Amazon Inspector SBOM Generator.
-
Descompacte o download usando o seguinte comando:
unzip inspector-sbomgen.zip
-
Verifique os seguintes arquivos no diretório extraído:
-
inspector-sbomgen
— Esta é a ferramenta que você executará para gerar SBOMs. -
README.txt
— Esta é a documentação para usar Sbomgen. -
LICENSE.txt
— Este arquivo contém a licença de software para Sbomgen. -
licenses
— Esta pasta contém informações de licença para pacotes de terceiros usados pelo Sbomgen. -
checksums.txt
— Este arquivo fornece hashes do Sbomgen ferramenta. -
sbom.json
— Este é um CycloneDX SBOM para o Sbomgen ferramenta. -
WhatsNew.txt
— Esse arquivo contém um registro de alterações resumido, para que você possa visualizar as principais alterações e melhorias entre Sbomgen versões rápidas.
-
-
(Opcional) Verifique a autenticidade e integridade da ferramenta usando o seguinte comando:
sha256sum < inspector-sbomgen
-
Compare os resultados com o conteúdo do arquivo
checksums.txt
.
-
-
Conceda permissões executáveis à ferramenta usando o seguinte comando:
chmod +x inspector-sbomgen
-
Verifique isso Sbomgen é instalado com sucesso usando o seguinte comando:
./inspector-sbomgen --version
Você deverá ver um resultado semelhante a este:
Version: 1.X.X
O uso do Sbomgen
Esta seção descreve diferentes maneiras de usar Sbomgen. Você pode aprender mais sobre como usar Sbomgen por meio de exemplos integrados. Para visualizar esses exemplos, execute o comando list-examples
:
./inspector-sbomgen list-examples
Gerar uma SBOM para uma imagem de contêiner e enviar o resultado
Você pode usar: Sbomgen SBOMs para gerar imagens de contêiner e enviar o resultado para um arquivo. Esse recurso pode ser habilitado usando o subcomando container
.
Exemplo de comando
No trecho a seguir, você pode substituir
pelo ID da sua imagem e image:tag
pelo caminho para a saída que você deseja salvar. output_path.json
# generate SBOM for container image ./inspector-sbomgen container
--image image:tag
-ooutput_path.json
nota
O tempo e o desempenho da verificação dependem do tamanho da imagem e de quão pequeno é o número de camadas. Imagens menores não só melhoram Sbomgen desempenho, mas também reduz a superfície de ataque potencial. Imagens menores também melhoram os tempos de criação, download e upload da imagem.
Ao usar Sbomgen com ScanSbom
, a API do Amazon Inspector Scan não processará arquivos SBOMs que contenham mais de 2.000 pacotes. Nesse cenário, a API do Amazon Inspector Scan retorna uma resposta HTTP 400.
Se uma imagem incluir arquivos ou diretórios de mídia em massa, considere excluí-los do Sbomgen usando o --skip-files
argumento.
Gerar uma SBOM a partir de diretórios e arquivos
Você pode usar: Sbomgen para gerar a SBOMs partir de diretórios e arquivos. Esse recurso pode ser habilitado usando os subcomandos directory
ou archive
. O Amazon Inspector recomenda usar esse recurso quando quiser gerar uma SBOM a partir de uma pasta do projeto, como um repositório git baixado.
Exemplo de comando 1
O trecho a seguir mostra um subcomando que gera uma SBOM a partir de um diretório.
# generate SBOM from directory ./inspector-sbomgen directory --path /path/to/dir -o /tmp/sbom.json
Exemplo de comando 2
O trecho a seguir mostra um subcomando que gera uma SBOM a partir de um arquivo. Apenas os formatos .zip
, .tar
e .tar.gz
são compatíveis.
# generate SBOM from archive file (tar, tar.gz, and zip formats only) ./inspector-sbomgen archive --path testData.zip -o /tmp/sbom.json
Gere um SBOM a partir de Go or Rust binários compilados
Você pode usar: Sbomgen para gerar a SBOMs partir do compilado Go and Rust binários. Você pode habilitar esse recurso com o subcomando binary
:
./inspector-sbomgen binary --path /path/to/your/binary
Enviar uma SBOM ao Amazon Inspector para identificação de vulnerabilidades
Além de gerar uma SBOM, você pode enviar uma SBOM para verificação com um único comando da API Amazon Inspector Scan. O Amazon Inspector avalia o conteúdo do SBOM em busca de vulnerabilidades antes de retornar as descobertas para Sbomgen. Dependendo da sua entrada, as descobertas podem ser exibidas ou gravadas em um arquivo.
nota
Você deve ter um ativo Conta da AWS com permissões de leitura InspectorScan-ScanSbom
para usar esse recurso.
Para habilitar esse recurso, você passa o --scan-sbom
argumento para o Sbomgen CLI. Você também pode passar o --scan-sbom
argumento para qualquer um dos seguintes Sbomgen subcomandos:archive
,,binary
, container
directory
,localhost
.
nota
A API Amazon Inspector Scan não processa SBOMs com mais de 2.000 pacotes. Nesse cenário, a API do Amazon Inspector Scan retorna uma resposta HTTP 400.
Você pode se autenticar no Amazon Inspector por meio de AWS um perfil ou de uma função do IAM com os AWS CLI seguintes argumentos:
--aws-profile
profile
--aws-regionregion
--aws-iam-role-arnrole_arn
Você também pode se autenticar no Amazon Inspector fornecendo as seguintes variáveis de ambiente para Sbomgen.
AWS_ACCESS_KEY_ID=$access_key \ AWS_SECRET_ACCESS_KEY=$secret_key \ AWS_DEFAULT_REGION=$region \ ./inspector-sbomgen
arguments
Para especificar o formato da resposta, use o argumento --scan-sbom-output-format cyclonedx
ou o --scan-sbom-output-format inspector
.
Exemplo de comando 1
Esse comando cria um SBOM para o mais recente Alpine Linux libera, verifica o SBOM e grava os resultados da vulnerabilidade em um arquivo JSON.
./inspector-sbomgen container --image alpine:latest \ --scan-sbom \ --aws-profile
your_profile
\ --aws-regionyour_region
\ --scan-sbom-output-format cyclonedx \ --outfile /tmp/inspector_scan.json
Exemplo de comando 2
Esse comando autentica o Amazon Inspector AWS usando credenciais como variáveis de ambiente.
AWS_ACCESS_KEY_ID=$your_access_key \ AWS_SECRET_ACCESS_KEY=$your_secret_key \ AWS_DEFAULT_REGION=$your_region \ ./inspector-sbomgen container --image alpine:latest \ -o /tmp/sbom.json \ --scan-sbom \ --scan-sbom-output-format inspector
Exemplo de comando 3
Este comando se autentica no Amazon Inspector usando o ARN de um perfil do IAM.
./inspector-sbomgen container --image alpine:latest \ --scan-sbom \ --aws-profile your_profile \ --aws-region your_region \ --outfile /tmp/inspector_scan.json --aws-iam-role-arn arn:aws:iam::123456789012:role/
your_role
Personalizar verificações para excluir arquivos específicos
Ao analisar e processar uma imagem de contêiner, Sbomgen digitaliza o tamanho de todos os arquivos na imagem do contêiner. Você pode personalizar as verificações para excluir arquivos específicos ou pacotes de destino específicos.
Para reduzir o consumo de disco, o consumo de RAM, o runtime decorrido e ignorar arquivos que excedam o limite fornecido, use o argumento --max-file-size
com o subcomando container
:
./inspector-sbomgen container --image alpine:latest \ --outfile /tmp/sbom.json \ --max-file-size 300000000
Desabilitar o indicador de progresso
Sbomgen exibe um indicador de progresso de rotação que pode resultar em caracteres de barra excessivos em ambientes de CI/CD.
INFO[2024-02-01 14:58:46]coreV1.go:53: analyzing artifact | \ / | \ / INFO[2024-02-01 14:58:46]coreV1.go:62: executing post-processors
Você pode desabilitar o indicador de progresso usando o argumento --disable-progress-bar
:
./inspector-sbomgen container --image alpine:latest \ --outfile /tmp/sbom.json \ --disable-progress-bar
Autenticação em registros privados com Sbomgen
Ao fornecer suas credenciais de autenticação de registro privado, você pode gerar SBOMs a partir de contêineres hospedados em registros privados. Você pode fornecer essas credenciais por meio dos seguintes métodos:
Autenticar usando credenciais armazenadas em cache (recomendado)
Para esse método, faça autenticação no registro do contêiner. Por exemplo, se estiver usando Docker, você pode se autenticar no seu registro de contêiner usando o Docker comando de registro:docker login
.
-
Faça a autenticação em seu registro de contêiner. Por exemplo, se estiver usando Docker, você pode se autenticar em seu registro usando o Docker Comando da
login
: -
Depois de se autenticar no seu registro de contêiner, use Sbomgen em uma imagem de contêiner que está no registro. Para usar o exemplo a seguir, substitua
pelo nome da imagem a ser digitalizada:image:tag
./inspector-sbomgen container --image
image:tag
Autenticar usando o método interativo
Para esse método, forneça seu nome de usuário como parâmetro e Sbomgen solicitará que você insira uma senha segura quando necessário.
Para usar o exemplo a seguir, substitua
pelo nome da imagem que deseja verificar e image:tag
por um nome de usuário que tenha acesso a essa imagem: your_username
./inspector-sbomgen container --image
image:tag
--usernameyour_username
Autenticar usando o método não interativo
Para esse método, armazene sua senha ou token de registro em um arquivo .txt
.
nota
O usuário atual só deve conseguir ler esse arquivo. O arquivo também deve conter a senha ou token em uma única linha.
Para usar o exemplo a seguir, substitua
pelo nome de usuário, your_username
pelo arquivo password.txt
.txt
que contém a senha ou token e
pelo nome da imagem a ser verificada: image:tag
INSPECTOR_SBOMGEN_USERNAME=
your_username
\ INSPECTOR_SBOMGEN_PASSWORD=`catpassword.txt
` \ ./inspector-sbomgen container --imageimage:tag
Exemplos de saídas de Sbomgen
A seguir está um exemplo de um SBOM para uma imagem de contêiner inventariada usando Sbomgen.
{ "bomFormat": "CycloneDX", "specVersion": "1.5", "serialNumber": "urn:uuid:828875ef-8c32-4777-b688-0af96f3cf619", "version": 1, "metadata": { "timestamp": "2023-11-17T21:36:38Z", "tools": [ { "vendor": "Amazon Web Services, Inc. (AWS)", "name": "Amazon Inspector SBOM Generator", "version": "1.0.0", "hashes": [ { "alg": "SHA-256", "content": "10ab669cfc99774786301a745165b5957c92ed9562d19972fbf344d4393b5eb1" } ] } ], "component": { "bom-ref": "comp-1", "type": "container", "name": "fedora:latest", "properties": [ { "name": "amazon:inspector:sbom_generator:image_id", "value": "sha256:c81c8ae4dda7dedc0711daefe4076d33a88a69a28c398688090c1141eff17e50" }, { "name": "amazon:inspector:sbom_generator:layer_diff_id", "value": "sha256:eddd0d48c295dc168d0710f70364581bd84b1dda6bb386c4a4de0b61de2f2119" } ] } }, "components": [ { "bom-ref": "comp-2", "type": "library", "name": "dnf", "version": "4.18.0", "purl": "pkg:pypi/dnf@4.18.0", "properties": [ { "name": "amazon:inspector:sbom_generator:source_file_scanner", "value": "python-pkg" }, { "name": "amazon:inspector:sbom_generator:source_package_collector", "value": "python-pkg" }, { "name": "amazon:inspector:sbom_generator:source_path", "value": "/usr/lib/python3.12/site-packages/dnf-4.18.0.dist-info/METADATA" }, { "name": "amazon:inspector:sbom_generator:is_duplicate_package", "value": "true" }, { "name": "amazon:inspector:sbom_generator:duplicate_purl", "value": "pkg:rpm/fedora/python3-dnf@4.18.0-2.fc39?arch=noarch&distro=39&epoch=0" } ] }, { "bom-ref": "comp-3", "type": "library", "name": "libcomps", "version": "0.1.20", "purl": "pkg:pypi/libcomps@0.1.20", "properties": [ { "name": "amazon:inspector:sbom_generator:source_file_scanner", "value": "python-pkg" }, { "name": "amazon:inspector:sbom_generator:source_package_collector", "value": "python-pkg" }, { "name": "amazon:inspector:sbom_generator:source_path", "value": "/usr/lib64/python3.12/site-packages/libcomps-0.1.20-py3.12.egg-info/PKG-INFO" }, { "name": "amazon:inspector:sbom_generator:is_duplicate_package", "value": "true" }, { "name": "amazon:inspector:sbom_generator:duplicate_purl", "value": "pkg:rpm/fedora/python3-libcomps@0.1.20-1.fc39?arch=x86_64&distro=39&epoch=0" } ] } ] }