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 completa e formalmente estruturada de componentes, bibliotecas e módulos necessários para criar um software.
O Amazon Inspector SBOM Generator (Sbomgen) é uma ferramenta que produz uma lista de materiais de software (SBOM) para arquivos, imagens de contêineres, diretórios, sistemas locais e compilados e binários. Go Rust
Sbomgenverifica 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. Sbomgenem seguida, transforma os metadados do pacote em um CycloneDX SBOM.
Você pode usar Sbomgen como uma ferramenta autônoma para gerar o CycloneDX SBOM como um arquivo ou para STDOUT, bem como enviar SBOMs ao Amazon 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
Sbomgencoleta 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 imagem de contêiner suportadas
Sbomgenpode escanear Dockerfiles autônomos e criar histórico a partir de imagens existentes em busca de problemas de segurança. Para obter mais informações, consulte Verificações do Dockerfile do Amazon Inspector.
Instalação do Sbomgen
O Sbomgen está disponível apenas para sistemas operacionais Linux.
Você deve ter Docker instalado se quiser Sbomgen analisar imagens em cache localmente. Dockernã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 a Sbomgen partir de um sistema com pelo menos as seguintes especificações de hardware:
-
CPU de 4 núcleos
-
RAM de 8 GB
Para instalar o Sbomgen
-
Baixe o arquivo Sbomgen zip mais recente do URL correto para sua arquitetura:
Linux AMD64: https://.s3.amazonaws.com/latest/linux/amd64/inspector-sbomgen.zip amazon-inspector-sbomgen
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 destinada ao uso do Sbomgen. -
LICENSE.txt
: este arquivo contém a licença do software do Sbomgen. -
licenses
: esta pasta contém informações de licença dos pacotes de terceiros usados pelo Sbomgen. -
checksums.txt
— Esse arquivo fornece hashes da Sbomgen ferramenta. -
sbom.json
— Este é um CycloneDX SBOM para a Sbomgen ferramenta. -
WhatsNew.txt
— Esse arquivo contém um registro de alterações resumido, para que você possa visualizar rapidamente as principais alterações e melhorias entre Sbomgen as versões.
-
-
(Opcional) Verifique a autenticidade e a 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 se o Sbomgen foi instalado com sucesso usando o seguinte comando:
./inspector-sbomgen --version
Você deverá ver um resultado semelhante a este:
Version: 1.X.X
Utilizar o Sbomgen
Esta seção descreve diferentes maneiras de usarSbomgen. Você pode aprender mais sobre como usar Sbomgen por meio de exemplos integrados. Para ver esses exemplos, execute o list-examples
comando:
./inspector-sbomgen list-examples
Gere um SBOM para uma imagem de contêiner e produza o resultado
Você pode usar Sbomgen para gerar SBOMs para imagens de contêiner e enviar o resultado para um arquivo. Esse recurso pode ser ativado usando o container
subcomando.
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 digitalização dependem do tamanho da imagem e do tamanho do número de camadas. Imagens menores não apenas melhoram Sbomgen o desempenho, mas também reduzem a potencial superfície de ataque. Imagens menores também melhoram os tempos de criação, download e upload da imagem.
Ao usar Sbomgen com ScanSbom
, a API Amazon Inspector Scan não processará 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 uso do --skip-files
argumento.
Gere um SBOM a partir de diretórios e arquivos
Você pode usar Sbomgen para gerar SBOMs a partir de diretórios e arquivos. Esse recurso pode ser ativado usando os archive
subcomandos directory
ou. O Amazon Inspector recomenda usar esse recurso quando você deseja gerar um 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 um SBOM a partir de um arquivo de 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 um SBOM a partir de um arquivo. Os únicos formatos de arquivo suportados são .zip
.tar
, .tar.gz
e.
# 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 ou binários Rust compilados
Você pode usar Sbomgen para gerar SBOMs a partir de compilados Go e Rust binários. Você pode habilitar essa capacidade por meio do binary
subcomando:
./inspector-sbomgen binary --path /path/to/your/binary
Envie um SBOM para o Amazon Inspector para identificação de vulnerabilidades
Além de gerar um SBOM, você pode enviar um SBOM para digitalização com um único comando da API de digitalização do Amazon Inspector. 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 a 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 --scan-sbom-output-format cyclonedx
argumento ou --scan-sbom-output-format inspector
argumento.
Exemplo de comando 1
Esse comando cria um SBOM para a Alpine Linux versão mais recente, 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
Este 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 autentica o Amazon Inspector usando o ARN para uma função 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
Personalize escaneamentos para excluir arquivos específicos
Ao analisar e processar uma imagem de contêiner, Sbomgen digitaliza o tamanho de todos os arquivos nessa imagem de contêiner. Você pode personalizar escaneamentos para excluir arquivos específicos ou direcionar pacotes específicos.
Para reduzir o consumo de disco, o consumo de RAM, o tempo de execução decorrido e ignorar arquivos que excedam o limite fornecido, use o --max-file-size
argumento com o subcomando: container
./inspector-sbomgen container --image alpine:latest \ --outfile /tmp/sbom.json \ --max-file-size 300000000
Desativar indicador de progresso
Sbomgenexibe 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 desativar o indicador de progresso usando o --disable-progress-bar
argumento:
./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 em cache (recomendado)
Para esse método, você se autentica no seu registro de contêiner. Por exemplo, se estiver usandoDocker, você pode se autenticar no seu registro de contêiner usando o comando Docker loging:. docker login
-
Autentique-se no seu registro de contêineres. Por exemplo, se estiver usandoDocker, você pode se autenticar no seu registro usando o Docker
login
comando: -
Depois de se autenticar no seu registro de contêiner, use Sbomgen em uma imagem de contêiner que esteja 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á a entrada segura da senha quando necessário.
Para usar o exemplo a seguir,
substitua pelo nome da imagem que você deseja digitalizar e image:tag
por um nome de usuário que tenha acesso à 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 .txt
arquivo.
nota
O usuário atual só deve ser capaz de ler esse arquivo. O arquivo também deve conter sua senha ou token em uma única linha.
Para usar o exemplo a seguir,
substitua pelo seu nome de usuário, your_username
pelo password.txt
.txt
arquivo que inclui sua senha ou token em uma única linha e
pelo nome da imagem a ser digitalizada: image:tag
INSPECTOR_SBOMGEN_USERNAME=
your_username
\ INSPECTOR_SBOMGEN_PASSWORD=`catpassword.txt
` \ ./inspector-sbomgen container --imageimage:tag
Exemplos de saídas de Sbomgen
Veja a seguir um exemplo de SBOM para uma imagem de contêiner relacionada usando o 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" } ] } ] }