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à.
Raccolta delle dipendenze del linguaggio di programmazione
Amazon Inspector SBOM Generator supporta diversi linguaggi e framework di programmazione, che costituiscono una raccolta solida e dettagliata di dipendenze. La generazione di un SBOM ti aiuta a comprendere la composizione del tuo software, in modo da poter identificare le vulnerabilità e mantenere la conformità agli standard di sicurezza. Amazon Inspector SBOM Generator supporta i seguenti linguaggi di programmazione e formati di file.
Vai alla scansione delle dipendenze
Linguaggio di programmazione | Programma di gestione dei pacchetti | Artefatti supportati | Supporto Toolchain | Dipendenze di sviluppo | Dipendenze transitive | Bandiera privata | Ricorsivamente |
---|---|---|---|---|---|---|---|
Go |
Go |
|
N/D N/D Sì N/D |
N/D N/D N/D N/D |
N/D N/D N/D N/D |
N/D N/D N/D N/D |
Sì Sì Sì No |
go.mod/go.sum
Usa go.sum
i file per definire go.mod
e bloccare le dipendenze nei progetti. Go Amazon Inspector SBOM Generator gestisce questi file in modo diverso in base alla versione della toolchain. Go
Funzionalità principali
-
Raccoglie le dipendenze da
go.mod
(se la versione della Go toolchain è 1.17 o successiva) -
Raccoglie le dipendenze da
go.sum
(se la versione della Go toolchain è 1.17 o precedente) -
Analizza
go.mod
per identificare tutte le dipendenze e le versioni delle dipendenze dichiarate
Esempio di file go.mod
Di seguito è riportato un esempio di file. go.mod
module example.com/project go 1.17 require ( github.com/gin-gonic/gin v1.7.2 golang.org/x/crypto v0.0.0-20210616213533-5cf6c0f8e123 )
Esempio di file go.sum
Quello che segue è un esempio di go.sum
file.
github.com/gin-gonic/gin v1.7.2 h1:VZ7DdRl0sghbA6lVGSkX+UXO2+J0aH7RbsNugG+FA8Q= github.com/gin-gonic/gin v1.7.2/go.mod h1:ILZ1Ngh2f1pL1ASUj7gGk8lGFeNC8cRTaN2ZhsBNbXU= golang.org/x/crypto v0.0.0-20210616213533-5cf6c0f8e123 h1:b6rCu+qHze+BUsmC3CZzH8aNu8LzPZTVsNTo64OypSc= golang.org/x/crypto v0.0.0-20210616213533-5cf6c0f8e123/go.mod h1:K5Dkpb0Q4ewZW/EzWlQphgJcUMBCzoWrLfDOVzpTGVQ=
Nota
Ciascuno di questi file produce un output che contiene l'URL di un pacchetto. Questo URL può essere utilizzato per specificare informazioni sui pacchetti software durante la generazione di una distinta base del software e può essere incluso nell'ScanSbomAPI. Per ulteriori informazioni, vedere package-url sul sito Web
Go Binaries
Amazon Inspector SBOM Generator estrae le dipendenze dai Go file binari compilati per garantire il codice in uso.
Nota
Amazon Inspector SBOM Generator supporta l'acquisizione e la valutazione delle versioni della toolchain da file binari creati utilizzando il compilatore ufficiale. Go Go Per ulteriori informazioni, consulta Download e installazione sul sito Web.
Funzionalità principali
-
Estrae le informazioni sulle dipendenze direttamente dai file binari Go
-
Raccoglie le dipendenze incorporate nel file binario
-
Rileva ed estrae la versione della Go toolchain utilizzata per compilare il file binario.
GOMODCACHE
Amazon Inspector SBOM Generator analizza la cache del Go modulo per raccogliere informazioni sulle dipendenze installate. Questa cache memorizza i moduli scaricati per garantire che le stesse versioni vengano utilizzate in build diverse.
Funzionalità principali
-
Esegue la scansione della
GOMODCACHE
directory per identificare i moduli memorizzati nella cache -
Estrae i metadati dettagliati, inclusi i nomi dei moduli, le versioni e l'origine URLs
Struttura di esempio
Di seguito è riportato un esempio di GOMODCACHE
struttura.
~/go/pkg/mod/ ├── github.com/gin-gonic/gin@v1.7.2 ├── golang.org/x/crypto@v0.0.0-20210616213533-5cf6c0f8e123
Nota
Questa struttura produce un output che contiene l'URL di un pacchetto. Questo URL può essere utilizzato per specificare informazioni sui pacchetti software durante la generazione di una distinta base del software e può essere incluso nell'ScanSbomAPI. Per ulteriori informazioni, vedere package-url sul sito Web
Scansione delle dipendenze in Java
Linguaggio di programmazione | Programma di gestione dei pacchetti | Artefatti supportati | Supporto Toolchain | Dipendenze di sviluppo | Dipendenze transitive | Bandiera privata | Ricorsivamente |
---|---|---|---|---|---|---|---|
Java |
Maven |
JavaApplicazioni compilate (.jar/.war/.ear)
|
N/D N/D |
N/D N/D |
Sì Sì |
N/D N/D |
Sì Sì |
Nota
La nostra funzione di valutazione delle vulnerabilità supporta solo il repository Maven Central. I repository di terze parti, ad esempio, non sono attualmente JBoss Enterprise Maven Repository supportati.
Amazon Inspector SBOM Generator esegue la scansione delle Java dipendenze analizzando applicazioni e file compilati. Java pom.xml
Durante la scansione di applicazioni compilate, lo scanner genera hash SHA—1 per la verifica dell'integrità, estrae i file incorporati e analizza i file annidati. pom.properties
pom.xml
Raccolta di hash SHA—1 (per file compilati in formato.jar, .war, .ear)
Amazon Inspector SBOM Generator cerca di raccogliere hash SHA—1 per tutti e .war
file in un progetto per garantire l'.ear
integrità .jar
e la tracciabilità degli artefatti compilati. Java
Funzionalità principali
-
Genera hash SHA—1 per tutti gli artefatti compilati Java
Esempio di artefatto
Di seguito è riportato un esempio di artefatto SHA—1.
{ "bom-ref": "comp-52", "type": "library", "name": "jul-to-slf4j", "version": "2.0.6", "hashes": [ { "alg": "SHA-1", "content": "" } ], "purl": "pkg:maven/jul-to-slf4j@2.0.6", "properties": [ { "name": "amazon:inspector:sbom_generator:source_path", "value": "test-0.0.1-SNAPSHOT.jar/BOOT-INF/lib/jul-to-slf4j-2.0.6.jar" } ] }
Nota
Questo artefatto produce un output che contiene l'URL di un pacchetto. Questo URL può essere utilizzato per specificare informazioni sui pacchetti software durante la generazione di una distinta base del software e può essere incluso nell'ScanSbomAPI. Per ulteriori informazioni, vedere package-url sul sito Web
pom.properties
Il pom.properties
file viene utilizzato nei Maven progetti per archiviare i metadati del progetto, inclusi i nomi e le versioni dei pacchetti. Amazon Inspector SBOM Generator analizza questo file per raccogliere informazioni sul progetto.
Funzionalità principali
-
Analizza ed estrae gli elementi, i gruppi di pacchetti e le versioni dei pacchetti
Esempio di file pom.properties
Di seguito è riportato un esempio di un file pom.properties
.
#Generated by Maven #Tue Mar 16 15:44:02 UTC 2021 version=1.6.0 groupId=net.datafaker artifactId=datafaker
Nota
Questo file produce un output che contiene l'URL del pacchetto. Questo URL può essere utilizzato per specificare informazioni sui pacchetti software durante la generazione di una distinta base del software e può essere incluso nell'ScanSbomAPI. Per ulteriori informazioni, vedere package-url sul sito Web
Esclusa l'analisi annidata pom.xml
Se si desidera escludere l'pom.xml
analisi durante la scansione di Java applicazioni compilate, utilizzare l'argomento. --skip-nested-pomxml
pom.xml
Il pom.xml
file è il file di configurazione principale per i Maven progetti. Contiene informazioni sui progetti e sulle dipendenze dei progetti. Amazon Inspector SBOM Generator analizza pom.xml i file per raccogliere le dipendenze, scansiona i file autonomi nei repository e i file all'interno di file compilati. .jar
Funzionalità principali
-
Analizza ed estrae gli elementi dei pacchetti, i gruppi di pacchetti e le versioni dei pacchetti dai file.
pom.xml
Ambiti e tag supportati Maven
Le dipendenze vengono raccolte con i seguenti ambiti: Maven
-
compile
-
fornito
-
runtime
-
test
-
sistema
-
importare
Le dipendenze vengono raccolte con il seguente Maven tag:<optional>true</optional>
.
pom.xml
File di esempio con un ambito
Di seguito è riportato un esempio di pom.xml
file con un ambito.
<dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> </version>6.0.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.28</version> <scope>runtime</scope> </dependency>
pom.xml
File di esempio senza ambito
Di seguito è riportato un esempio di pom.xml
file senza ambito.
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.17.1</version> </dependency> <dependency> <groupId>org.jenkins-ci.plugins</groupId> <artifactId>plain-credentials</artifactId> <version>183.va_de8f1dd5a_2b_</version> </dependency> <dependency> <groupId>org.jenkins-ci.plugins</groupId> <artifactId>jackson2-api</artifactId> <version>2.15.2-350.v0c2f3f8fc595</version> </dependency>
Nota
Ciascuno di questi file produce un output che contiene l'URL di un pacchetto. Questo URL può essere utilizzato per specificare informazioni sui pacchetti software durante la generazione di una distinta base del software e può essere incluso nell'ScanSbomAPI. Per ulteriori informazioni, vedere package-url sul sito Web
JavaScript scansione delle dipendenze
Linguaggio di programmazione | Programma di gestione dei pacchetti | Artefatti supportati | Supporto Toolchain | Dipendenze di sviluppo | Dipendenze transitive | Bandiera privata | Ricorsivamente |
---|---|---|---|---|---|---|---|
Javascript |
|
|
N/D N/D N/D N/D |
N/D Sì Sì Sì |
Sì N/D N/D N/D |
Sì N/D N/D N/D |
Sì No No No |
pacchetto.json
Il package.json
file è un componente fondamentale dei progetti. Node.js Contiene metadati sui pacchetti installati. Amazon Inspector SBOM Generator analizza questo file per identificare i nomi e le versioni dei pacchetti.
Funzionalità principali
-
Analizza la struttura dei file JSON per estrarre i nomi e le versioni dei pacchetti
-
Identifica i pacchetti privati con valori privati
Esempio di file package.json
Di seguito è riportato un esempio di un file package.json
.
{ "name": "arrify", "private": true, "version": "2.0.1", "description": "Convert a value to an array", "license": "MIT", "repository": "sindresorhus/arrify" }
Nota
Questo file produce un output che contiene l'URL di un pacchetto. Questo URL può essere utilizzato per specificare informazioni sui pacchetti software durante la generazione di una distinta base del software e può essere incluso nell'ScanSbomAPI. Per ulteriori informazioni, vedere package-url sul sito Web
package-lock.json
Il package-lock.json
file viene generato automaticamente da npm per bloccare le versioni esatte delle dipendenze installate per un progetto. Garantisce la coerenza negli ambienti memorizzando le versioni esatte di tutte le dipendenze e le relative sottodipendenze. Questo file può distinguere tra dipendenze regolari e dipendenze di sviluppo.
Funzionalità principali
-
Analizza la struttura dei file JSON per estrarre i nomi e le versioni dei pacchetti
-
Supporta il rilevamento delle dipendenze degli sviluppatori
Esempio di file package-lock.json
Di seguito è riportato un esempio di un file package-lock.json
.
"verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" } }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "yallist": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" }
Nota
Questo file produce un output che contiene l'URL di un pacchetto. Questo URL può essere utilizzato per specificare informazioni sui pacchetti software durante la generazione di una distinta base del software e può essere incluso nell'ScanSbomAPI. Per ulteriori informazioni, vedere package-url sul sito Web
npm-shrinkwrap.json
npmgenera automaticamente npm-shrinkwrap.json
file package-lock.json
e file per bloccare le versioni esatte delle dipendenze installate per un progetto. Ciò garantisce la coerenza negli ambienti memorizzando le versioni esatte di tutte le dipendenze e sottodipendenze. I file distinguono tra dipendenze regolari e dipendenze di sviluppo.
Funzionalità principali
-
Analizza
package-lock
le versioni 1, 2 e 3 della struttura del JSON file per estrarre il nome e la versione del pacchetto -
È supportato il rilevamento delle dipendenze degli sviluppatori (
package-lock.json
acquisisce le dipendenze di produzione e sviluppo, consentendo agli strumenti di identificare quali pacchetti vengono utilizzati negli ambienti di sviluppo) -
Al
npm-shrinkwrap.json
file viene data la priorità rispetto al filepackage-lock.json
Esempio
Di seguito è riportato un esempio di un file package-lock.json
.
"verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" } }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "yallist": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=" }
pnpm-yaml.lock
Il pnpm-lock.yaml
file viene generato da pnpm per mantenere un registro delle versioni di dipendenza installate. Inoltre, tiene traccia delle dipendenze di sviluppo separatamente.
Funzionalità principali
-
Analizza la struttura dei file YAML per estrarre i nomi e le versioni dei pacchetti
-
Supporta il rilevamento delle dipendenze degli sviluppatori
Esempio
Di seguito è riportato un esempio di un file pnpm-lock.yaml
.
lockfileVersion: 5.3 importers: my-project: dependencies: lodash: 4.17.21 devDependencies: jest: 26.6.3 specifiers: lodash: ^4.17.21 jest: ^26.6.3 packages: /lodash/4.17.21: resolution: integrity: sha512-xyz engines: node: '>=6' dev: false /jest/26.6.3: resolution: integrity: sha512-xyz dev: true
Nota
Questo file produce un output che contiene l'URL di un pacchetto. Questo URL può essere utilizzato per specificare informazioni sui pacchetti software durante la generazione di una distinta base del software e può essere incluso nell'ScanSbomAPI. Per ulteriori informazioni, vedere package-url sul sito Web
yarn.lock
Amazon Inspector SBOM Generator cerca di raccogliere hash SHA—1 e .war
file in un progetto per garantire l'.ear
integrità .jar
e la tracciabilità degli artefatti compilati. Java
Funzionalità principali
-
Genera hash SHA—1 per tutti gli artefatti compilati Java
Esempio di artefatto SHA—1
Di seguito è riportato un esempio di artefatto SHA—1.
"@ampproject/remapping@npm:^2.2.0": version: 2.2.0 resolution: "@ampproject/remapping@npm:2.2.0" dependencies: "@jridgewell/gen-mapping": ^0.1.0 "@jridgewell/trace-mapping": ^0.3.9 checksum: d74d170d06468913921d72430259424b7e4c826b5a7d39ff839a29d547efb97dc577caa8ba3fb5cf023624e9af9d09651afc3d4112a45e2050328abc9b3a2292 languageName: node linkType: hard "@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.18.6, @babel/code-frame@npm:^7.21.4": version: 7.21.4 resolution: "@babel/code-frame@npm:7.21.4" dependencies: "@babel/highlight": ^7.18.6 checksum: e5390e6ec1ac58dcef01d4f18eaf1fd2f1325528661ff6d4a5de8979588b9f5a8e852a54a91b923846f7a5c681b217f0a45c2524eb9560553160cd963b7d592c languageName: node linkType: hard
Nota
Questo artefatto produce un output che contiene l'URL di un pacchetto. Questo URL può essere utilizzato per specificare informazioni sui pacchetti software durante la generazione di una distinta base del software e può essere incluso nell'ScanSbomAPI. Per ulteriori informazioni, vedere package-url sul sito Web
Scansione delle dipendenze.NET
Linguaggio di programmazione | Programma di gestione dei pacchetti | Artefatti supportati | Supporto Toolchain | Dipendenze di sviluppo | Dipendenze transitive | Bandiera privata | Ricorsivamente |
---|---|---|---|---|---|---|---|
.NET |
|
|
N/D N/D N/D N/D |
N/D N/D N/D N/D |
N/D N/D Sì N/D |
N/D N/D N/D N/D |
Sì Sì Sì Sì |
Packages.config
Il Packages.config
file è un file XML utilizzato da una versione precedente di per gestire le dipendenze del progettoNuget. Elenca tutti i pacchetti a cui fa riferimento il progetto, incluse versioni specifiche.
Funzionalità principali
-
Analizza la struttura XML per estrarre pacchetti IDs e versioni
Esempio
Di seguito è riportato un esempio di un file Packages.config
.
<?xml version="1.0" encoding="utf-8"? > <packages> <package id="FluentAssertions" version="5.4.1" targetFramework="net461" /> <package id="Newtonsoft.Json" version="11.0.2" targetFramework="net461" /> <package id="SpecFlow" version="2.4.0" targetFramework="net461" /> <package id="SpecRun.Runner" version="1.8.0" targetFramework="net461" /> <package id="SpecRun.SpecFlow" version="1.8.0" targetFramework="net461" /> <package id="SpecRun.SpecFlow.2-4-0" version="1.8.0" targetFramework="net461" /> <package id="System.ValueTuple" version="4.5.0" targetFramework="net461" /> </packages>
Nota
Questo file produce un output che contiene l'URL del pacchetto. Questo URL può essere utilizzato per specificare informazioni sui pacchetti software durante la generazione di una distinta base del software e può essere incluso nell'ScanSbomAPI. Per ulteriori informazioni, vedere package-url sul sito Web
*.deps.json
Il *.deps.json
file viene generato dai .NET Core progetti e contiene informazioni dettagliate su tutte le dipendenze, inclusi percorsi, versioni e dipendenze di runtime. Questo file assicura che il runtime disponga delle informazioni necessarie per caricare le versioni corrette delle dipendenze.
Funzionalità principali
-
Analizza la struttura JSON per dettagli completi sulle dipendenze
-
Estrae i nomi e le versioni dei pacchetti in un elenco.
libraries
Esempio di file .deps.json
Di seguito è riportato un esempio di un file .deps.json
.
{ "runtimeTarget": { "name": ".NETCoreApp,Version=v7.0", "signature": "" }, "libraries": { "sample-Nuget/1.0.0": { "type": "project", "serviceable": false, "sha512": "" }, "Microsoft.EntityFrameworkCore/7.0.5": { "type": "package", "serviceable": true, "sha512": "sha512-RXbRLHHWP2Z3pq8qcL5nQ6LPeoOyp8hasM5bd0Te8PiQi3RjWQR4tcbdY5XMqQ+oTO9wA8/RLhZRn/hnxlTDnQ==", "path": "microsoft.entityframeworkcore/7.0.5", "hashPath": "microsoft.entityframeworkcore.7.0.5.nupkg.sha512" }, }
Nota
Questo file produce un output che contiene l'URL di un pacchetto. Questo URL può essere utilizzato per specificare informazioni sui pacchetti software durante la generazione di una distinta base del software e può essere incluso nell'ScanSbomAPI. Per ulteriori informazioni, vedere package-url sul sito Web
packages.lock.json
Il packages.lock.json
file viene utilizzato dalle versioni più recenti di Nuget per bloccare le versioni esatte delle dipendenze di un .NET progetto per garantire che le stesse versioni vengano utilizzate in modo coerente in ambienti diversi.
Funzionalità principali
-
Analizza la struttura JSON per elencare le dipendenze bloccate
-
Supporta dipendenze dirette e transitive
-
Estrae il nome del pacchetto e le versioni risolte
Esempio di file packages.lock.json
Di seguito è riportato un esempio di un file packages.lock.json
.
{ "version": 1, "dependencies": { "net7.0": { "Microsoft.EntityFrameworkCore": { "type": "Direct", "requested": "[7.0.5, )", "resolved": "7.0.5", "contentHash": "RXbRLHHWP2Z3pq8qcL5nQ6LPeoOyp8hasM5bd0Te8PiQi3RjWQR4tcbdY5XMqQ+oTO9wA8/RLhZRn/hnxlTDnQ==", "dependencies": { "Microsoft.EntityFrameworkCore.Abstractions": "7.0.5", "Microsoft.EntityFrameworkCore.Analyzers": "7.0.5", "Microsoft.Extensions.Caching.Memory": "7.0.0", "Microsoft.Extensions.DependencyInjection": "7.0.0", "Microsoft.Extensions.Logging": "7.0.0" } }, "Newtonsoft.Json": { "type": "Direct", "requested": "[13.0.3, )", "resolved": "13.0.3", "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" }, "Microsoft.Extensions.Primitives": { "type": "Transitive", "resolved": "7.0.0", "contentHash": "um1KU5kxcRp3CNuI8o/GrZtD4AIOXDk+RLsytjZ9QPok3ttLUelLKpilVPuaFT3TFjOhSibUAso0odbOaCDj3Q==" } } } }
Nota
Questo file produce un output che contiene l'URL del pacchetto. Questo URL può essere utilizzato per specificare informazioni sui pacchetti software durante la generazione di una distinta base del software e può essere incluso nell'ScanSbomAPI. Per ulteriori informazioni, vedere package-url sul sito Web
.csproj
Il .csproj
file è scritto in XML e il file di progetto è per i progetti. .NET Include riferimenti a Nuget pacchetti, proprietà del progetto e configurazioni di build.
Funzionalità principali
-
Analizza la struttura XML per estrarre i riferimenti ai pacchetti
Esempio di file .csproj
Di seguito è riportato un esempio di un file .csproj
.
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net7.0</TargetFramework> <RootNamespace>sample_Nuget</RootNamespace> <ImplicitUsings>enable</ImplicitUsings> <Nullable>enable</Nullable> <RestorePackagesWithLockFile>true</RestorePackagesWithLockFile> </PropertyGroup> <ItemGroup> </ItemGroup> <ItemGroup> <PackageReference Include="Newtonsoft.Json" Version="13.0.3" /> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.5" /> </ItemGroup> </Project>
Esempio di file .csproj
Di seguito è riportato un esempio di un file .csproj
.
<PackageReference Include="ExamplePackage" Version="6.*" /> <PackageReferencePackageReference Include="ExamplePackage" Version="(4.1.3,)" /> <PackageReference Include="ExamplePackage" Version="(,5.0)" /> <PackageReference Include="ExamplePackage" Version="[1,3)" /> <PackageReference Include="ExamplePackage" Version="[1.3.2,1.5)" />
Nota
Ciascuno di questi file produce un output che contiene l'URL di un pacchetto. Questo URL può essere utilizzato per specificare informazioni sui pacchetti software durante la generazione di una distinta base del software e può essere incluso nell'ScanSbomAPI. Per ulteriori informazioni, vedere package-url sul sito Web
Scansione delle dipendenze PHP
Linguaggio di programmazione | Programma di gestione dei pacchetti | Artefatti supportati | Supporto Toolchain | Dipendenze di sviluppo | Dipendenze transitive | Bandiera privata | Ricorsivamente |
---|---|---|---|---|---|---|---|
PHP |
Composer |
|
N/D N/D |
N/D N/D |
Sì Sì |
N/D N/D |
Sì Sì |
composer.lock
Il composer.lock
file viene generato automaticamente quando si eseguono i comandi composer install o composer update. Questo file garantisce che le stesse versioni delle dipendenze siano installate in ogni ambiente. Ciò fornisce un processo di compilazione coerente e affidabile.
Funzionalità principali
-
Analizza il formato JSON per i dati strutturati
-
Estrae i nomi e le versioni delle dipendenze
Esempio di file composer.lock
Di seguito è riportato un esempio di un file composer.lock
.
{ "packages": [ { "name": "nesbot/carbon", "version": "2.53.1", // TRUNCATED }, { "name": "symfony/deprecation-contracts", "version": "v3.2.1", // TRUNCATED }, { "name": "symfony/polyfill-mbstring", "version": "v1.27.0", // TRUNCATED } ] // TRUNCATED }
Nota
Questo produce un output che contiene l'URL del pacchetto. Questo URL può essere utilizzato per specificare informazioni sui pacchetti software durante la generazione di una distinta base del software e può essere incluso nell'ScanSbomAPI. Per ulteriori informazioni, vedere package-url sul sito Web
/.json vendor/composer/installed
Il /vendor/composer/installed.json
file si trova nella vendor/composer
directory e fornisce un elenco completo di tutti i pacchetti installati e delle versioni dei pacchetti.
Funzionalità principali
-
Analizza il formato JSON per i dati strutturati
-
Estrae i nomi e la versione delle dipendenze
Esempio di file /vendor/composer/installed.json
Di seguito è riportato un esempio di un file /vendor/composer/installed.json
.
{ "packages": [ { "name": "nesbot/carbon", "version": "2.53.1", // TRUNCATED }, { "name": "symfony/deprecation-contracts", "version": "v3.2.1", // TRUNCATED }, { "name": "symfony/polyfill-mbstring", "version": "v1.27.0", // TRUNCATED } ] // TRUNCATED }
Nota
Questo file produce un output che contiene l'URL di un pacchetto. Questo URL può essere utilizzato per specificare informazioni sui pacchetti software durante la generazione di una distinta base del software e può essere incluso nell'ScanSbomAPI. Per ulteriori informazioni, vedere package-url sul sito Web
Scansione delle dipendenze in Python
Linguaggio di programmazione | Programma di gestione dei pacchetti | Artefatti supportati | Supporto Toolchain | Dipendenze di sviluppo | Dipendenze transitive | Bandiera privata | Ricorsivamente |
---|---|---|---|---|---|---|---|
Python |
|
|
N/D N/D N/D N/D N/D |
N/D N/D N/D N/D N/D |
N/D N/D N/D N/D N/D |
N/D N/D N/D N/D N/D |
Sì Sì Sì Sì Sì |
requirements.txt
Il requirements.txt
file è un formato ampiamente utilizzato nei Python progetti per specificare le dipendenze del progetto. Ogni riga di questo file include un pacchetto con i relativi vincoli di versione. Amazon Inspector SBOM Generator analizza questo file per identificare e catalogare accuratamente le dipendenze.
Funzionalità principali
-
Supporta gli specificatori di versione (== e =)
-
Supporta commenti e linee di dipendenza complesse
Nota
Gli specificatori di versione <= e => non sono supportati.
Esempio di file requirements.txt
Di seguito è riportato un esempio di un file requirements.txt
.
flask==1.1.2 requests==2.24.0 numpy==1.18.5 foo~=1.2.0 # Comment about a dependency scipy. # invalid
Nota
Questo file produce un output che contiene l'URL del pacchetto. Questo URL può essere utilizzato per specificare informazioni sui pacchetti software durante la generazione di una distinta base del software e può essere incluso nell'ScanSbomAPI. Per ulteriori informazioni, vedere package-url sul sito Web
pipfile.lock
Pipenvè uno strumento che offre il meglio di tutti i mondi del packaging (impacchettato, bloccato e sbloccato). Pipfile.lock
Blocca le versioni esatte delle dipendenze per facilitare le build deterministiche. Amazon Inspector SBOM Generator legge questo file per elencare le dipendenze e le relative versioni risolte.
Funzionalità principali
-
Analizza il formato JSON per la risoluzione delle dipendenze
-
Supporta le dipendenze predefinite e di sviluppo
Esempio di file Pipfile.lock
Di seguito è riportato un esempio di un file Pipfile.lock
.
{ "default": { "requests": { "version": "==2.24.0", "hashes": [ "sha256:cc718bb187e53b8d" ] } }, "develop": { "blinker": { "hashes": [ "sha256:1779309f71bf239144b9399d06ae925637cf6634cf6bd131104184531bf67c01", "sha256:8f77b09d3bf7c795e969e9486f39c2c5e9c39d4ee07424be2bc594ece9642d83" ], "markers": "python_version >= '3.8'", "version": "==1.8.2" } } }
Nota
Questo file produce un output che contiene l'URL di un pacchetto. Questo URL può essere utilizzato per specificare informazioni sui pacchetti software durante la generazione di una distinta base del software e può essere incluso nell'ScanSbomAPI. Per ulteriori informazioni, vedere package-url sul sito Web
Poetry.lock
Poetryè uno strumento di gestione e pacchettizzazione delle dipendenze per Python. Il Poetry.lock
file blocca le versioni esatte delle dipendenze per facilitare ambienti coerenti. Amazon Inspector SBOM Generator estrae informazioni dettagliate sulle dipendenze da questo file.
Funzionalità principali
-
Analizza il formato TOML per i dati strutturati
-
Estrae i nomi e le versioni delle dipendenze
Esempio di file Poetry.lock
Di seguito è riportato un esempio di un file Poetry.lock
.
[[package]] name = "flask" version = "1.1.2" description = "A simple framework for building complex web applications." category = "main" optional = false python-versions = ">=3.5" [[package]] name = "requests" version = "2.24.0" description = "Python HTTP for Humans." category = "main" optional = false python-versions = ">=3.5"
Nota
Questo file produce un output che contiene l'URL di un pacchetto. Questo URL può essere utilizzato per specificare informazioni sui pacchetti software durante la generazione di una distinta base del software e può essere incluso nell'ScanSbomAPI. Per ulteriori informazioni, vedere package-url sul sito Web
Uovo/Ruota
Per i pacchetti Python installati a livello globale, Amazon Inspector SBOM Generator supporta l'analisi dei file di metadati presenti nelle directory and. .egg-info/PKG-INFO
.dist-info/METADATA
Questi file forniscono metadati dettagliati sui pacchetti installati.
Funzionalità principali
-
Estrae il nome e la versione del pacchetto
-
Supporta sia i formati a uovo che a forma di ruota
Esempio di file PKG-INFO/METADATA
Di seguito è riportato un esempio di un file PKG-INFO/METADATA
.
Metadata-Version: 1.2 Name: Flask Version: 1.1.2 Summary: A simple framework for building complex web applications. Home-page: https://palletsprojects.com/p/flask/
Nota
Questo file produce un output che contiene l'URL di un pacchetto. Questo URL può essere utilizzato per specificare informazioni sui pacchetti software durante la generazione di una distinta base del software e può essere incluso nell'ScanSbomAPI. Per ulteriori informazioni, vedere package-url sul sito Web
Scansione delle dipendenze con Ruby
Linguaggio di programmazione | Programma di gestione dei pacchetti | Artefatti supportati | Supporto per il toolchain | Dipendenze di sviluppo | Dipendenze transitive | Bandiera privata | Ricorsivamente |
---|---|---|---|---|---|---|---|
Ruby |
Bundler |
|
N/D N/D N/D |
N/D N/D N/D |
Sì N/D N/D |
N/D N/D N/D |
Sì Sì Sì |
GemFile.lock
Il Gemfile.lock
file blocca le versioni esatte di tutte le dipendenze per garantire che le stesse versioni vengano utilizzate in ogni ambiente.
Funzionalità principali
-
Analizza il
Gemfile.lock
file in base alle dipendenze e alle versioni delle dipendenze -
Estrae i nomi dettagliati dei pacchetti e le versioni dei pacchetti
Esempio di file Gemfile.lock
Di seguito è riportato un esempio di un file Gemfile.lock
.
GEM remote: https://rubygems.org/ specs: ast (2.4.2) awesome_print (1.9.2) diff-lcs (1.5.0) json (2.6.3) parallel (1.22.1) parser (3.2.2.0) nokogiri (1.16.6-aarch64-linux)
Nota
Questo file produce un output che contiene l'URL del pacchetto. Questo URL può essere utilizzato per specificare informazioni sui pacchetti software durante la generazione di una distinta base del software e può essere incluso nell'ScanSbomAPI. Per ulteriori informazioni, vedere package-url sul sito Web
.gemspec
Il .gemspec
file è un RubyGem file contenente metadati su una gemma. Amazon Inspector SBOM Generator analizza questo file per raccogliere informazioni dettagliate su una gemma.
Funzionalità principali
-
Analizza ed estrae il nome e la versione della gemma
Nota
La specifica di riferimento non è supportata.
Esempio di file .gemspec
Di seguito è riportato un esempio di un file .gemspec
.
Gem::Specification.new do |s| s.name = "generategem" s.version = "2.0.0" s.date = "2020-06-12" s.summary = "generategem" s.description = "A Gemspec Builder" s.email = "edersondeveloper@gmail.com" s.files = ["lib/generategem.rb"] s.homepage = "https://github.com/edersonferreira/generategem" s.license = "MIT" s.executables = ["generategem"] s.add_dependency('colorize', '~> 0.8.1') end
# Not supported Gem::Specification.new do |s| s.name = &class1 s.version = &foo.bar.version
Nota
Questo file produce un output che contiene l'URL del pacchetto. Questo URL può essere utilizzato per specificare informazioni sui pacchetti software durante la generazione di una distinta base del software e può essere incluso nell'ScanSbomAPI. Per ulteriori informazioni, vedere package-url sul sito Web
Gemme installate a livello globale
Amazon Inspector SBOM Generator supporta la scansione di gem installate a livello globale, che si trovano in directory standard, ad esempio in /usr/local/lib/ruby/gems/<ruby_version>/gems/
EC2 Amazon/Amazon ECR e in Lambda. ruby/gems/<ruby_version>/gems/
Questo assicura che tutte le dipendenze installate a livello globale siano identificate e catalogate.
Funzionalità principali
-
Identifica e analizza tutte le gem installate a livello globale in directory standard
-
Estrae i metadati e le informazioni sulla versione per ogni gem installata a livello globale
Esempio di struttura di directory
Di seguito è riportato un esempio di struttura di directory.
. └── /usr/local/lib/ruby/3.5.0/gems/ ├── actrivesupport-6.1.4 ├── concurrent-ruby-1.1.9 └── i18n-1.8.10
Nota
Questa struttura produce un output che contiene l'URL di un pacchetto. Questo URL può essere utilizzato per specificare informazioni sui pacchetti software durante la generazione di una distinta base del software e può essere incluso nell'ScanSbomAPI. Per ulteriori informazioni, vedere package-url sul sito Web
Scansione delle dipendenze da Rust
Linguaggio di programmazione | Programma di gestione dei pacchetti | Artefatti supportati | Supporto Toolchain | Dipendenze di sviluppo | Dipendenze transitive | Bandiera privata | Ricorsivamente |
---|---|---|---|---|---|---|---|
Rust |
Cargo.toml |
|
N/D N/D Sì |
N/D N/D N/D |
N/D Sì N/D |
N/D N/D N/D |
Sì Sì Sì |
Cargo.toml
Il Cargo.toml
file è il file manifesto dei progetti. Rust
Funzionalità principali
-
Analizza ed estrae il
Cargo.toml
file per identificare il nome e la versione del pacchetto del progetto.
Esempio di file Cargo.toml
Di seguito è riportato un esempio di un file Cargo.toml
.
[package] name = "wait-timeout" version = "0.2.0" description = "A crate to wait on a child process with a timeout specified across Unix and\nWindows platforms.\n" homepage = "https://github.com/alexcrichton/wait-timeout" documentation = "https://docs.rs/wait-timeout" readme = "README.md" categories = ["os"] license = "MIT/Apache-2.0" repository = "https://github.com/alexcrichton/wait-timeout" [target."cfg(unix)".dependencies.libc] version = "0.2" [badges.appveyor] repository = "alexcrichton/wait-timeout"
Nota
Questo file produce un output che contiene l'URL del pacchetto. Questo URL può essere utilizzato per specificare informazioni sui pacchetti software durante la generazione di una distinta base del software e può essere incluso nell'ScanSbomAPI. Per ulteriori informazioni, vedere package-url sul sito Web
Cargo.lock
Il Cargo.lock
file blocca le versioni dipendenti per garantire che vengano utilizzate le stesse versioni ogni volta che viene creato un progetto.
Funzionalità principali
-
Analizza il
Cargo.lock
file per identificare tutte le dipendenze e le versioni delle dipendenze.
Esempio di file Cargo.lock
Di seguito è riportato un esempio di un file Cargo.lock
.
# This file is automatically @generated by Cargo. # It is not intended for manual editing. [[package]] name = "adler32" version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "aho-corasick" version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index"
Nota
Questo file produce un output che contiene l'URL del pacchetto. Questo URL può essere utilizzato per specificare informazioni sui pacchetti software durante la generazione di una distinta base del software e può essere incluso nell'ScanSbomAPI. Per ulteriori informazioni, vedere package-url sul sito Web
File binari Rust con cargo-auditable
Amazon Inspector SBOM Generator raccoglie le dipendenze dai Rust file binari creati con la libreria. cargo-auditable
Ciò fornisce informazioni aggiuntive sulle dipendenze abilitando l'estrazione delle dipendenze dai binari compilati.
Funzionalità principali
-
Estrae le informazioni sulle dipendenze direttamente dai Rust file binari creati con la libreria
cargo-auditable
-
Recupera i metadati e le informazioni sulla versione per le dipendenze incluse nei file binari
Nota
Questo file produce un output che contiene l'URL di un pacchetto. Questo URL può essere utilizzato per specificare informazioni sui pacchetti software durante la generazione di una distinta base del software e può essere incluso nell'ScanSbomAPI. Per ulteriori informazioni, vedere package-url sul sito Web
Artefatti non supportati
Questa sezione descrive gli artefatti non supportati.
Java
Il generatore Amazon Inspector SBOM Generator supporta solo il rilevamento delle vulnerabilità per le dipendenze provenienti dal repository principale. Maven
JavaScript
pacchetti esbuild
Per i esbuild pacchetti ridotti, Amazon Inspector SBOM Generator non supporta la scansione delle dipendenze per i progetti che li utilizzano. esbuild Le mappe di origine generate da esbuild non includono metadati sufficienti (nomi e versioni delle dipendenze) necessari per una generazione accurata. Sbomgen Per risultati affidabili, scansiona i file di progetto originali, come node_modules/directory
epackage-lock.json
, prima del processo di raggruppamento.
pacchetto.json
Amazon Inspector SBOM Generator non supporta la scansione del file package.json a livello di root per informazioni sulle dipendenze. Questo file specifica solo i nomi dei pacchetti e gli intervalli di versioni, ma non include le versioni dei pacchetti completamente risolte. Per risultati di scansione accurati, utilizzate package.json
o altri file di blocco, come yarn.lock
epnpm.lock
, che includono versioni risolte.
Dotnet
Quando si utilizzano versioni mobili o intervalli di versioniPackageReference
, diventa più difficile determinare l'esatta versione del pacchetto utilizzata in un progetto senza eseguire la risoluzione del pacchetto. Le versioni e gli intervalli di versioni fluttuanti consentono agli sviluppatori di specificare un intervallo di versioni del pacchetto accettabili anziché una versione fissa.
Binari Go
Amazon Inspector SBOM Generator non esegue la scansione di Go file binari creati con flag di build configurati per escludere l'ID di build. Questi flag di build Bomerman impediscono di mappare accuratamente il file binario alla sua fonte originale. GoI file binari non chiari non sono supportati a causa dell'impossibilità di estrarre le informazioni sui pacchetti. Per una scansione accurata delle dipendenze, assicurati che i Go file binari siano compilati con le impostazioni predefinite, incluso l'ID di build.
Binari Rust
Amazon Inspector SBOM Generator analizza i Rust file binari solo se questi sono stati creati utilizzando la libreria cargo-auditable.
Nota
Il rilevamento delle vulnerabilità per la Rust toolchain stessa non è supportato, anche se la versione della toolchain viene estratta.