Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Generatore Amazon Inspector SBOM
Una Software Bill of Materials (SBOM) è un elenco formalmente strutturato di componenti, librerie e moduli necessari per creare un software. Il generatore Amazon Inspector SBOM (Sbomgen) è uno strumento che produce e SBOM compila archivi, immagini di container, directory, sistemi locali Go e Rust binari. Sbomgen cerca i file che contengono informazioni sui pacchetti installati. Quando Sbomgen trova un file pertinente, estrae i nomi dei pacchetti, le versioni e altri metadati. Sbomgen quindi trasforma i metadati del pacchetto in un CycloneDX SBOM. È possibile utilizzare… Sbomgen per generare il CycloneDX SBOMcome file o inviato SBOMs ad Amazon Inspector per il rilevamento delle vulnerabilità. STDOUT Puoi anche usare Sbomgen come parte dell'integrazione CI/CD, che esegue automaticamente la scansione delle immagini dei container come parte della pipeline di distribuzione.
Tipi di pacchetti supportati
Sbomgen raccoglie l'inventario per i seguenti tipi di pacchi:
-
Alpine APK
-
Debian/Ubuntu DPKG
-
Red Hat RPM
-
C#
-
Go
-
Java
-
Node.js
-
PHP
-
Python
-
Ruby
-
Rust
Controlli di configurazione dell'immagine del contenitore supportati
Sbomgen può scansionare file Dockerfile autonomi e creare una cronologia da immagini esistenti per individuare problemi di sicurezza. Per ulteriori informazioni, consulta Amazon Inspector Dockerfile checks.
Installazione Sbomgen
Sbomgen è disponibile solo per i sistemi operativi Linux.
È necessario avere... Docker installato se lo desideri Sbomgen per analizzare le immagini memorizzate nella cache locale. Docker non è necessario analizzare le immagini esportate come .tar
file o le immagini ospitate in registri di container remoti.
Amazon Inspector consiglia di eseguire Sbomgen da un sistema con almeno le seguenti specifiche hardware:
-
core 4x CPU
-
8 GB RAM
Per installare Sbomgen
-
Scarica la versione più recente Sbomgen file zip dal file corretto URL per la tua architettura:
In alternativa, puoi scaricare le versioni precedenti del file zip di Amazon Inspector SBOM Generator.
-
Decomprimi il download utilizzando il seguente comando:
unzip inspector-sbomgen.zip
-
Verificate la presenza dei seguenti file nella directory estratta:
-
inspector-sbomgen
— Questo è lo strumento che eseguirete per generareSBOMs. -
README.txt
— Questa è la documentazione per l'utilizzo Sbomgen. -
LICENSE.txt
— Questo file contiene la licenza del software per Sbomgen. -
licenses
— Questa cartella contiene informazioni sulla licenza per i pacchetti di terze parti utilizzati da Sbomgen. -
checksums.txt
— Questo file fornisce gli hash di Sbomgen strumento. -
sbom.json
— Questo è un CycloneDX SBOMper Sbomgen strumento. -
WhatsNew.txt
— Questo file contiene un registro delle modifiche riepilogativo, in modo da poter visualizzare le principali modifiche e miglioramenti tra Sbomgen versioni in modo rapido.
-
-
(Facoltativo) Verificate l'autenticità e l'integrità dello strumento utilizzando il seguente comando:
sha256sum < inspector-sbomgen
-
Confrontate i risultati con il contenuto del
checksums.txt
file.
-
-
Concedi le autorizzazioni eseguibili allo strumento utilizzando il seguente comando:
chmod +x inspector-sbomgen
-
Verifica che Sbomgen è stato installato correttamente utilizzando il seguente comando:
./inspector-sbomgen --version
L'output dovrebbe essere simile al seguente:
Version: 1.X.X
Utilizzo Sbomgen
Questa sezione descrive diversi modi di utilizzo Sbomgen. Puoi saperne di più su come usare Sbomgen tramite esempi integrati. Per visualizzare questi esempi, esegui il list-examples
comando:
./inspector-sbomgen list-examples
Genera un'immagine SBOM per un contenitore e restituisci il risultato
È possibile utilizzare… Sbomgen per generare immagini SBOMs per il contenitore e inviare il risultato in un file. Questa funzionalità può essere abilitata utilizzando il container
sottocomando.
Comando della di esempio
Nel frammento seguente, è possibile sostituire
con l'ID della tua immagine e immagine: tag
con il percorso dell'output che vuoi salvare. output_path.json
# generate SBOM for container image ./inspector-sbomgen container
--image image:tag
-ooutput_path.json
Nota
Il tempo e le prestazioni di scansione dipendono dalle dimensioni dell'immagine e dal numero ridotto di livelli. Le immagini più piccole non solo migliorano Sbomgen prestazioni, ma riducono anche la potenziale superficie di attacco. Le immagini più piccole migliorano anche i tempi di creazione, download e caricamento delle immagini.
Quando si utilizza Sbomgen con ScanSbom
, Amazon Inspector Scan API non SBOMs elaborerà prodotti contenenti più di 2.000 pacchi. In questo scenario, Amazon Inspector Scan API restituisce una risposta HTTP 400.
Se un'immagine include file o directory multimediali in blocco, valuta la possibilità di escluderli da Sbomgen utilizzando l'argomento. --skip-files
Genera un SBOM da directory e archivi
È possibile utilizzare… Sbomgen da generare SBOMs da directory e archivi. Questa funzionalità può essere abilitata utilizzando i directory
archive
sottocomandi o. Amazon Inspector consiglia di utilizzare questa funzionalità quando desideri generare un file SBOM da una cartella di progetto, ad esempio un repository git scaricato.
Comando di esempio 1
Il frammento seguente mostra un sottocomando che genera un SBOM da un file di directory.
# generate SBOM from directory ./inspector-sbomgen directory --path /path/to/dir -o /tmp/sbom.json
Esempio di comando 2
Il frammento seguente mostra un sottocomando che genera un SBOM da un file di archivio. Gli unici formati di archivio supportati sono.zip
, e.tar
. .tar.gz
# generate SBOM from archive file (tar, tar.gz, and zip formats only) ./inspector-sbomgen archive --path testData.zip -o /tmp/sbom.json
Genera un file SBOM da Go oppure Rust binari compilati
È possibile utilizzare… Sbomgen da generare SBOMs da compilato Go e Rust binari. È possibile abilitare questa funzionalità tramite il sottocomando: binary
./inspector-sbomgen binary --path /path/to/your/binary
Invia un messaggio SBOM ad Amazon Inspector per l'identificazione delle vulnerabilità
Oltre a generare un fileSBOM, puoi inviarne uno SBOM per la scansione con un solo comando di Amazon Inspector Scan. API Amazon Inspector valuta il contenuto delle quattro vulnerabilità prima di SBOM restituire i risultati a Sbomgen. A seconda dell'input, i risultati possono essere visualizzati o scritti su un file.
Nota
È necessario disporre di un account attivo Account AWS con autorizzazioni di lettura InspectorScan-ScanSbom
per utilizzare questa funzionalità.
Per abilitare questa funzionalità, si passa l'--scan-sbom
argomento a Sbomgen CLI. È inoltre possibile passare l'--scan-sbom
argomento a uno dei seguenti Sbomgen sottocomandi:archive
,,binary
, container
directory
,localhost
.
Nota
Amazon Inspector Scan API non elabora SBOMs con più di 2.000 pacchi. In questo scenario, Amazon Inspector Scan API restituisce una risposta HTTP 400.
Puoi autenticarti su Amazon Inspector tramite AWS un profilo o IAM un ruolo con i AWS CLI seguenti argomenti:
--aws-profile
profile
--aws-regionregion
--aws-iam-role-arnrole_arn
Puoi anche autenticarti su Amazon Inspector fornendo le seguenti variabili di ambiente a Sbomgen.
AWS_ACCESS_KEY_ID=$access_key \ AWS_SECRET_ACCESS_KEY=$secret_key \ AWS_DEFAULT_REGION=$region \ ./inspector-sbomgen
arguments
Per specificare il formato della risposta, usa l'--scan-sbom-output-format cyclonedx
argomento o --scan-sbom-output-format inspector
l'argomento.
Esempio di comando 1
Questo comando crea un file SBOM per il più recente Alpine Linux release, analizza e scrive i SBOM risultati della vulnerabilità in un JSON file.
./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
Esempio di comando 2
Questo comando esegue l'autenticazione su Amazon Inspector AWS utilizzando credenziali come variabili di 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
Esempio di comando 3
Questo comando esegue l'autenticazione su Amazon Inspector utilizzando ARN il ruolo for an. 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
Personalizza le scansioni per escludere file specifici
Durante l'analisi e l'elaborazione dell'immagine di un contenitore, Sbomgen analizza le dimensioni di tutti i file contenuti nell'immagine del contenitore. È possibile personalizzare le scansioni per escludere file specifici o indirizzare pacchetti specifici.
Per ridurre il consumo del disco, RAM il consumo, il tempo di esecuzione trascorso e ignorare i file che superano la soglia fornita, utilizzate l'--max-file-size
argomento con il sottocomando: container
./inspector-sbomgen container --image alpine:latest \ --outfile /tmp/sbom.json \ --max-file-size 300000000
Disattiva l'indicatore di avanzamento
Sbomgen visualizza un indicatore di avanzamento rotante che può causare un numero eccessivo di caratteri barra negli ambienti 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
È possibile disabilitare l'indicatore di avanzamento utilizzando l'argomento: --disable-progress-bar
./inspector-sbomgen container --image alpine:latest \ --outfile /tmp/sbom.json \ --disable-progress-bar
Autenticazione in registri privati con Sbomgen
Fornendo le credenziali di autenticazione del registro privato, è possibile eseguire la generazione a SBOMs partire da contenitori ospitati in registri privati. È possibile fornire queste credenziali tramite i seguenti metodi:
Autenticazione tramite credenziali memorizzate nella cache (scelta consigliata)
Con questo metodo, ci si autentica nel registro dei contenitori. Ad esempio, se si utilizza Docker, è possibile autenticarsi nel registro dei contenitori utilizzando il Docker comando di registrazione:. docker login
-
Effettua l'autenticazione nel registro dei contenitori. Ad esempio, se si utilizza Docker, è possibile autenticarsi nel registro utilizzando il Docker
login
comando: -
Dopo l'autenticazione nel registro dei contenitori, usa Sbomgen su un'immagine del contenitore presente nel registro. Per utilizzare l'esempio seguente, sostituisci
con il nome dell'immagine da scansionare:immagine:tag
./inspector-sbomgen container --image
image:tag
Autenticazione con il metodo interattivo
Per questo metodo, fornite il vostro nome utente come parametro e Sbomgen ti chiederà di inserire una password sicura quando necessario.
Per utilizzare l'esempio seguente, sostituisci
con il nome dell'immagine che vuoi scansionare e immagine:tag
con un nome utente che ha accesso all'immagine: tuo_nome utente
./inspector-sbomgen container --image
image:tag
--usernameyour_username
Effettua l'autenticazione utilizzando il metodo non interattivo
Per questo metodo, memorizza la password o il token di registro in un .txt
file.
Nota
L'utente corrente dovrebbe essere in grado di leggere solo questo file. Il file deve contenere anche la password o il token su una sola riga.
Per utilizzare l'esempio seguente, sostituisci
con il tuo nome utente, your_username
con il password.txt
.txt
file che include la password o il token su un'unica riga e
con il nome dell'immagine da scansionare: immagine:tag
INSPECTOR_SBOMGEN_USERNAME=
your_username
\ INSPECTOR_SBOMGEN_PASSWORD=`catpassword.txt
` \ ./inspector-sbomgen container --imageimage:tag
Esempi di output da Sbomgen
Di seguito è riportato un esempio di immagine SBOM per un contenitore inventariata utilizzando 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" } ] } ] }