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 SBOM Amazon Inspector
Una distinta base software (SBOM) è un elenco formalmente strutturato di componenti, librerie e moduli necessari per creare un software. Amazon Inspector SBOM Generator (Sbomgen) è uno strumento che produce un SBOM per archivi, immagini di contenitori, directory, sistemi locali, compilati e binari. Go Rust Sbomgenanalizza i file che contengono informazioni sui pacchetti installati. Quando Sbomgen trova un file pertinente, estrae i nomi dei pacchetti, le versioni e altri metadati. Sbomgenquindi trasforma i metadati del pacchetto in una SBOM. CycloneDX Puoi utilizzarlo Sbomgen per generare la CycloneDX SBOM come file o in STDOUT e inviare SBOM ad Amazon Inspector per il rilevamento delle vulnerabilità. Puoi anche utilizzarlo Sbomgen come parte dell' CI/CD integrazione, che scansiona automaticamente le immagini dei container come parte della tua pipeline di distribuzione.
Amazon Inspector utilizza diverse funzionalità di scansione Sbomgen gestite. Quando Amazon Inspector esegue la scansione delle immagini dei container Amazon ECR, la scansione della funzione AWS Lambda e la scansione senza agente delle istanze Amazon Elastic Compute Cloud tramite l'analisi dei volumi di Amazon EBS, richiama l'attenzione Sbomgen dietro le quinte per generare l'inventario software utilizzato per la valutazione delle vulnerabilità. SbomgenLo strumento autonomo descritto in questa pagina fornisce la stessa tecnologia di base, che consente di integrare la generazione SBOM direttamente nei flussi di lavoro.
Tipi di pacchetti supportati
Sbomgenraccoglie l'inventario per i seguenti tipi di pacchetti:
-
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
Sbomgenpuò scansionare file Dockerfile autonomi e creare una cronologia a partire da immagini esistenti per problemi di sicurezza. Per ulteriori informazioni, consulta Amazon Inspector Dockerfile checks.
Installazione Sbomgen
Sbomgenè disponibile solo per i sistemi operativi Linux.
È necessario averlo Docker installato se si desidera analizzare Sbomgen le immagini memorizzate nella cache locale. Dockernon è necessario per analizzare le immagini esportate come .tar file o immagini ospitate in registri di contenitori remoti.
Amazon Inspector consiglia di eseguire l'operazione Sbomgen da un sistema con almeno le seguenti specifiche hardware:
-
CPU 4x core
-
8 GB RAM
Per installare Sbomgen
-
Scarica il file Sbomgen zip più recente dall'URL corretto per la tua architettura:
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
In alternativa, puoi scaricare le versioni precedenti del file zip 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 eseguirai per generare SBOM. -
README.txt— Questa è la documentazione per l'utilizzoSbomgen. -
LICENSE.txt— Questo file contiene la licenza software perSbomgen. -
licenses— Questa cartella contiene informazioni sulla licenza per i pacchetti di terze parti utilizzati daSbomgen. -
checksums.txt— Questo file fornisce gli hash dello Sbomgen strumento. -
sbom.json— Questa è una distinta CycloneDX base per lo strumento. Sbomgen -
WhatsNew.txt— Questo file contiene un registro delle modifiche riepilogativo, in modo da poter visualizzare rapidamente le principali modifiche e miglioramenti tra le Sbomgen versioni.
-
-
(Facoltativo) Verifica l'autenticità e l'integrità dello strumento utilizzando il seguente comando:
sha256sum < inspector-sbomgen-
Confronta i risultati con il contenuto del
checksums.txtfile.
-
-
Concedi le autorizzazioni eseguibili allo strumento utilizzando il seguente comando:
chmod +x inspector-sbomgen -
Verificate che Sbomgen sia stato installato correttamente utilizzando il seguente comando:
./inspector-sbomgen --versionDovresti vedere l'output 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 attraverso esempi integrati. Per visualizzare questi esempi, esegui il list-examples comando:
./inspector-sbomgen list-examples
Genera una SBOM per un'immagine del contenitore e visualizza il risultato
È possibile utilizzarlo Sbomgen per generare SBOM per le immagini dei contenitori e inviare il risultato in un file. Questa funzionalità può essere abilitata utilizzando il container sottocomando.
Esempio di comando
Nel frammento seguente, puoi sostituirlo con l'ID della tua immagine e image:tag con il percorso dell'output che desideri 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 le prestazioni, ma riducono anche la potenziale superficie di attacco. Le immagini più piccole migliorano anche i tempi di creazione, download e caricamento delle immagini.
Se utilizzata Sbomgen con ScanSbom, l'API Amazon Inspector Scan non elaborerà gli SBOM che contengono più di 5.000 pacchetti. In questo scenario, l'API Amazon Inspector Scan restituisce una risposta HTTP 400.
Se un'immagine include file o directory multimediali di massa, valuta la possibilità di escluderli dall'Sbomgenuso dell'argomento. --skip-files
Esempio: casi di errore comuni
La scansione delle immagini del contenitore può fallire a causa dei seguenti errori:
-
InvalidImageFormat— Si verifica durante la scansione di immagini di contenitori non valide con intestazioni TAR, file manifest o file di configurazione danneggiati. -
ImageValidationFailure— Si verifica quando la convalida del checksum o della lunghezza del contenuto non riesce per i componenti dell'immagine del contenitore, ad esempio Content-Length intestazioni non corrispondenti, digest del manifest errati o verifica del checksum SHA256 non riuscita. -
ErrUnsupportedMediaType— Si verifica quando i componenti dell'immagine includono tipi di file multimediali non supportati. Per informazioni sui tipi di file multimediali supportati, vedere Sistemi operativi e tipi di supporti supportati.
Amazon Inspector non supporta il tipo di application/vnd.docker.distribution.manifest.list.v2+json supporto. Tuttavia, Amazon Inspector supporta gli elenchi di manifesti. Durante la scansione di immagini che utilizzano elenchi di manifesti, puoi specificare esplicitamente quale piattaforma utilizzare con l'--platformargomento. Se l'--platformargomento non è specificato, Amazon Inspector SBOM Generator seleziona automaticamente il manifest in base alla piattaforma su cui è in esecuzione.
Genera un SBOM da directory e archivi
È possibile utilizzarlo Sbomgen per generare SBOM da directory e archivi. Questa funzionalità può essere abilitata utilizzando i sottocomandi directory orarchive. Amazon Inspector consiglia di utilizzare questa funzionalità quando desideri generare un SBOM da una cartella di progetto, ad esempio un repository git scaricato.
Esempio di comando 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, e. .zip .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 una SBOM da Go or Rust binari compilati
È possibile utilizzarlo Sbomgen per generare SBOM da file Go compilati e binari. Rust È possibile abilitare questa funzionalità tramite il sottocomando: binary
./inspector-sbomgen binary --path /path/to/your/binary
Genera una SBOM dai volumi montati
Puoi utilizzare Amazon Inspector SBOM Generator per generare SBOM da volumi montati. Questa funzionalità può essere abilitata utilizzando il sottocomando. volume Ti consigliamo di utilizzare questa funzionalità quando desideri analizzare i volumi di storage, ad esempio i volumi Amazon EBS che sono stati montati sul tuo sistema. A differenza del sottocomando directory, la scansione dei volumi montati rileva i pacchetti del sistema operativo e le informazioni sul sistema operativo.
Puoi scansionare un volume Amazon EBS collegandolo a un'istanza Amazon EC2 in cui è installato Amazon Inspector SBOM Generator e montandolo su tale istanza. Per i volumi Amazon EBS attualmente utilizzati da altre istanze Amazon EC2, puoi creare un'istantanea Amazon EBS del volume e quindi creare un nuovo volume Amazon EBS da tale istantanea per scopi di scansione. Per ulteriori informazioni su Amazon EBS, consulta Cos'è Amazon EBS? https://docs.aws.amazon.com/ebs/latest/userguide/what-is-ebs.htmlnella Guida per l'utente di Amazon Elastic Block Store.
Esempio di comando
Lo snippet seguente mostra un sottocomando che genera una SBOM da un volume montato. L'--pathargomento deve specificare la directory principale in cui è montato il volume.
# generate SBOM from mounted volume ./inspector-sbomgen volume --path /mount/point/of/volume/root
Esempio di comando
Il frammento seguente mostra un sottocomando che genera una SBOM da un volume montato escludendo percorsi di file specifici con l'argomento. --exclude-suffix L'--exclude-suffixargomento è particolarmente utile quando un volume contiene file in blocco (come file di registro o file multimediali). I file e le directory i cui percorsi terminano con i suffissi specificati verranno esclusi dalla scansione, il che può ridurre i tempi di scansione e l'utilizzo della memoria.
# generate SBOM from mounted volume with exclusions ./inspector-sbomgen volume --path /mount/point/of/volume/root \ --exclude-suffix .log \ --exclude-suffix cache
Tutti i percorsi dei file nel volume di destinazione vengono normalizzati ai percorsi originali. Ad esempio, quando si esegue la scansione di un volume montato su /mnt/volume cui è contenuto un file/mnt/volume/var/lib/rpm/rpmdb.sqlite, il percorso verrà normalizzato /var/lib/rpm/rpmdb.sqlite nella SBOM generata.
Invia un SBOM ad Amazon Inspector per l'identificazione delle vulnerabilità
Oltre a generare un SBOM, puoi inviare un SBOM per la scansione con un solo comando dall'API Amazon Inspector Scan. Amazon Inspector valuta il contenuto dell'SBOM per individuare eventuali vulnerabilità prima di restituire i risultati a. Sbomgen A seconda dei dati inseriti, i risultati possono essere visualizzati o scritti in 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-sbomargomento alla Sbomgen CLI. Puoi anche passare l'--scan-sbomargomento a uno dei seguenti Sbomgen sottocomandi:archive,,binary, containerdirectory,localhost.
Nota
L'API Amazon Inspector Scan non elabora gli SBOM con più di 5.000 pacchetti. In questo scenario, l'API Amazon Inspector Scan restituisce una risposta HTTP 400.
Puoi autenticarti ad Amazon Inspector tramite un AWS profilo o un ruolo IAM con i seguenti argomenti: AWS CLI
--aws-profileprofile--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-sbomgenarguments
Per specificare il formato della risposta, utilizza l'--scan-sbom-output-format cyclonedxargomento o --scan-sbom-output-format inspector l'argomento.
Esempio di comando 1
Questo comando crea un SBOM per l'ultima Alpine Linux release, analizza l'SBOM e scrive i risultati della vulnerabilità in un file JSON.
./inspector-sbomgen container --image alpine:latest \ --scan-sbom \ --aws-profileyour_profile\ --aws-regionyour_region\ --scan-sbom-output-format cyclonedx \ --outfile /tmp/inspector_scan.json
Esempio di comando 2
Questo comando esegue l'autenticazione in Amazon Inspector utilizzando AWS le 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 l'ARN per un ruolo 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
Utilizza scanner aggiuntivi per migliorare le capacità di rilevamento
Amazon Inspector SBOM Generator applica scanner predefiniti in base al comando utilizzato.
Gruppi di scanner predefiniti
Ogni sottocomando Amazon Inspector SBOM Generator applica automaticamente i seguenti gruppi di scanner predefiniti.
-
Per il
directorysottocomando: binary, programming-language-packages, dockerfile scanner groups -
Per il sottocomando: os, programming-language-packages,
localhostextra-ecosystems scanner groups -
Per il
containersottocomando: os, programming-language-packages, extra-ecosystems, dockerfile, binary scanner groups
Scanner speciali
Per includere scanner oltre ai gruppi di scanner predefiniti, utilizzate l'--additional-scannersopzione seguita dal nome dello scanner da aggiungere. Di seguito è riportato un comando di esempio che mostra come eseguire questa operazione.
# Add WordPress installation scanner to directory scan ./inspector-sbomgen directory --path /path/to/directory/ --additional-scanners wordpress-installation -o output.json
Di seguito è riportato un comando di esempio che mostra come aggiungere più scanner con un elenco separato da virgole.
./inspector-sbomgen container --image image:tag --additional-scanners scanner1,scanner2 -o output.json
Ottimizza le scansioni dei contenitori regolando la dimensione massima del file da scansionare
Quando analizzi ed elabori un'immagine del contenitore, Sbomgen esegue la scansione di file di dimensioni pari o inferiori a 200 MB per impostazione predefinita. I file di dimensioni superiori a 200 MB raramente contengono i metadati dei pacchetti. È possibile che si verifichino errori nell'inventario di un file binario Go o di un Rust file binario che supera i 200 MB. Per modificare il limite di dimensione, usa l'argomento. --max-file-size Ciò consente di aumentare il limite per includere file di grandi dimensioni e diminuire il limite per ridurre l'utilizzo delle risorse escludendo i file di grandi dimensioni.
Esempio
L'esempio seguente mostra come utilizzare l'--max-file-sizeargomento per aumentare le dimensioni del file.
# Increase the file size limit to scan files up to 300 MB ./inspector-sbomgen container --image alpine:latest \ --outfile /tmp/sbom.json \ --max-file-size 300000000
La regolazione di questa impostazione consente di controllare l'utilizzo del disco, il consumo di memoria e la durata complessiva della scansione.
Limita la dimensione di estrazione dell'immagine del contenitore
Quando si esegue la scansione di un'immagine contenitore, è possibile rifiutare un'immagine sovradimensionata prima di Sbomgen scaricare qualsiasi livello. Sbomgenlegge le dimensioni compresse di ogni livello dal manifesto dell'immagine e le confronta con i limiti impostati, in modo che un'immagine che supera un limite viene rifiutata senza scaricarne i livelli. Utilizzate gli --layer-max-pull-size argomenti --image-max-pull-size e per impostare questi limiti in byte.
-
--image-max-pull-size— Rifiuta l'immagine quando le dimensioni compresse di tutti i suoi livelli superano il numero di byte specificato. -
--layer-max-pull-size— Rifiuta l'immagine quando la dimensione compressa di un singolo livello supera il numero di byte specificato.
Nota
Entrambi gli argomenti si applicano solo alle scansioni dei contenitori e sono indipendenti l'uno dall'altro. Ciascuno ha come impostazione predefinita0, il che disabilita il limite.
Esempio
L'esempio seguente rifiuta l'immagine se le dimensioni compresse dei relativi livelli ammontano a più di 50 GiB (53687091200byte) o se la dimensione compressa di un singolo livello supera i 10 GiB (byte). 10737418240
# Reject an oversized image before downloading any layer ./inspector-sbomgen container --image image:tag \ --outfile /tmp/sbom.json \ --image-max-pull-size 53687091200 \ --layer-max-pull-size 10737418240
Rileva le immagini scratch con l'euristica del file system
Quando non Sbomgen riesci a identificare il sistema operativo di un'immagine contenitore, puoi utilizzare l'--enable-scratch-heuristicsargomento per ispezionare il filesystem alla ricerca di segnali che indicano un'immagine. scratch Se sono presenti almeno due segnali, Sbomgen etichetta il componente del sistema operativo invece di. scratch unknown Un sistema operativo identificato non viene mai rietichettato.
Nota
Questo argomento è sperimentale, si applica solo alle scansioni dei container ed è disabilitato per impostazione predefinita.
Sbomgenvaluta i seguenti segnali e registra ciascuno di essi come amazon:inspector:sbom_generator:scratch:heuristic:* proprietà sul componente del sistema operativo:
-
missing_lib_dir— L'/libelenco è assente. -
missing_bin_dir— L'/binelenco è assente. -
missing_var_dir— L'/varelenco è assente. -
missing_shell— Non è presente alcuna shell interattiva (nessuna trash,bash,ash,dashzsh, obusyboxsi trova sotto/bino/usr/bin).
Esempio
L'esempio seguente mostra come utilizzare l'--enable-scratch-heuristicsargomento.
# enable scratch image detection heuristics ./inspector-sbomgen container --image image:tag \ --outfile /tmp/sbom.json \ --enable-scratch-heuristics
Nota
Questo comportamento è euristico e può produrre falsi positivi. Cambia solo il componente del sistema operativo.
Raccogli i metadati dei processi in esecuzione
Quando si esegue la scansione di un localhost, è possibile utilizzare l'--collect-processesargomento per etichettare i componenti con metadati sui processi in esecuzione raccolti dall'host. Sbomgen Ciò consente di correlare un componente inventariato con i processi in esecuzione da esso.
Nota
Questo argomento è opt-in, disabilitato per impostazione predefinita e si applica solo alle scansioni di localhost. Se lo fornisci per qualsiasi altro tipo di scansione, Sbomgen registra un avviso e lo ignora.
Quando un componente corrisponde a un processo in esecuzione, Sbomgen aggiunge le seguenti proprietà a quel componente, dove pid è l'ID del processo:
-
amazon:inspector:sbom_generator:host:process_id:— Il percorso eseguibile del processo in esecuzione corrispondente, ad esempiopid:path/usr/sbin/sshd. -
amazon:inspector:sbom_generator:host:process_id:— L'ora di inizio del processo, ad esempio nel formato RFC 3339 (UTC).pid:started_at2026-08-26T15:43:40Z
Esempio
L'esempio seguente mostra come utilizzare l'argomento. --collect-processes
# Tag components with running process metadata ./inspector-sbomgen localhost \ --outfile /tmp/sbom.json \ --collect-processes
Disattiva l'indicatore di avanzamento
Sbomgenvisualizza un indicatore di avanzamento rotante che può generare una barra eccessiva negli CI/CD ambienti.
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 disattivare l'indicatore di avanzamento utilizzando l'--disable-progress-barargomento:
./inspector-sbomgen container --image alpine:latest \ --outfile /tmp/sbom.json \ --disable-progress-bar
Autenticazione in registri privati con Sbomgen
Fornendo le credenziali di autenticazione private del registro, è possibile generare SBOM da contenitori ospitati in registri privati. È possibile fornire queste credenziali tramite i seguenti metodi:
Effettua l'autenticazione utilizzando le credenziali memorizzate nella cache (consigliato)
Per questo metodo, ti autentichi nel registro del contenitore. Ad esempio, se si utilizzaDocker, è possibile autenticarsi nel registro dei contenitori utilizzando il comando Docker loging:. docker login
-
Effettua l'autenticazione nel registro dei contenitori. Ad esempio, se lo usiDocker, puoi autenticarti nel tuo registro usando il Docker
logincomando: -
Dopo l'autenticazione nel registro del contenitore, utilizzalo Sbomgen su un'immagine del contenitore presente nel registro. Per utilizzare l'esempio seguente, sostituiscilo
con il nome dell'immagine da scansionare:image:tag
./inspector-sbomgen container --imageimage:tag
Effettua l'autenticazione utilizzando il metodo interattivo
Per questo metodo, fornisci il tuo nome utente come parametro e ti Sbomgen chiederà di inserire una password sicura quando necessario.
Per utilizzare l'esempio seguente, sostituiscilo con il nome dell'immagine da scansionare e image:tag con un nome utente che abbia accesso all'immagine: your_username
./inspector-sbomgen container --imageimage: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 inoltre contenere la password o il token su una sola riga.
Per utilizzare l'esempio seguente, sostituiscilo con il tuo nome utente, your_username con il password.txt.txt file che include la password o il token su una sola riga e con il nome dell'immagine da scansionare: image:tag
INSPECTOR_SBOMGEN_USERNAME=your_username\ INSPECTOR_SBOMGEN_PASSWORD=`catpassword.txt` \ ./inspector-sbomgen container --imageimage:tag
Esempi di output di Sbomgen
Di seguito è riportato un esempio di SBOM per un'immagine di 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" } ] } ] }