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á.
Coleção de dependências da linguagem de programação
O Amazon Inspector SBOM Generator é compatível com diferentes linguagens e frameworks de programação, que compõem uma coleção robusta e detalhada de dependências. Gerar um SBOM ajuda você a entender a composição do software, para que você possa identificar vulnerabilidades e manter a conformidade com os padrões de segurança. O Amazon Inspector SBOM Generator é compatível com as linguagens de programação e formatos de arquivo a seguir.
Verificação de dependências do Go
| Linguagem de programação | Gerenciador de pacote | Artefatos compatíveis | Suporte do conjunto de ferramentas | Dependências de desenvolvimento | Dependências transitivas | Sinalizador privado | Recursivamente |
|---|---|---|---|---|---|---|---|
Go |
Go |
|
N/D N/D Sim 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 |
Sim Sim Sim Não |
go.mod/go.sum
Use arquivos go.mod e go.sum para definir e bloquear dependências em projetos do Go. O Amazon Inspector SBOM Generator gerencia esses arquivos de forma diferente com base na versão do conjunto de ferramentas do Go.
Recursos principais do
-
Coleta dependências de
go.mod(se a versão do conjunto de ferramentas do Go é 1.17 ou posterior) -
Coleta dependências de
go.sum(se a versão do conjunto de ferramentas do Go é 1.17 ou anterior) -
Analisa
go.modpara identificar todas as dependências declaradas e versões de dependências
Exemplo de arquivo go.mod
Este é um exemplo do arquivo 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 )
Exemplo de arquivo go.sum
Este é um exemplo do arquivo go.sum.
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
Cada um desses arquivos gera uma saída que contém um URL do pacote. Esse URL pode ser usado para especificar informações sobre pacotes de software ao gerar uma lista de materiais de software e pode ser incluído na ScanSbomAPI. Para obter mais informações, consulte package-url no GitHub site
Binários do Go
O Amazon Inspector SBOM Generator extrai dependências de binários do Go compilados para fornecer garantia sobre o código em uso.
nota
O Amazon Inspector SBOM Generator é compatível com a captura e avaliação de versões do conjunto de ferramentas a partir de binários do Go criados usando o compilador do Go oficial. Consulte mais informações em Download and install
Recursos principais do
-
Extrai informações de dependência diretamente dos binários do Go
-
Coleta dependências incorporadas no binário
-
Detecta e extrai a versão do conjunto de ferramentas do Go usada para compilar o binário.
GOMODCACHE
O Amazon Inspector SBOM Generator verifica o cache do módulo do Go para coletar informações sobre dependências instaladas. Esse cache armazena os módulos baixados para garantir que as mesmas versões sejam usadas em diferentes compilações.
Recursos principais do
-
Verifica o diretório
GOMODCACHEpara identificar módulos em cache -
Extrai metadados detalhados, incluindo nomes de módulos, versões e fonte URLs
Exemplo de estrutura
Veja a seguir um exemplo da estrutura GOMODCACHE.
~/go/pkg/mod/ ├── github.com/gin-gonic/gin@v1.7.2 ├── golang.org/x/crypto@v0.0.0-20210616213533-5cf6c0f8e123
nota
Essa estrutura gera uma saída que contém um URL de pacote. Esse URL pode ser usado para especificar informações sobre pacotes de software ao gerar uma lista de materiais de software e pode ser incluído na ScanSbomAPI. Para obter mais informações, consulte package-url no GitHub site
Verificação de dependências do Java
| Linguagem de programação | Gerenciador de pacote | Artefatos compatíveis | Suporte do conjunto de ferramentas | Dependências de desenvolvimento | Dependências transitivas | Sinalizador privado | Recursivamente |
|---|---|---|---|---|---|---|---|
Java |
Maven |
Aplicações do Java compiladas (.jar/.war/.ear)
|
N/D N/D |
N/D N/D |
Sim Sim |
N/D N/D |
Sim Sim |
nota
Nosso recurso de avaliação de vulnerabilidade só é compatível com o repositório Maven Central. Atualmente, não há suporte para repositórios de terceiros, como JBoss Enterprise Maven Repository.
O Amazon Inspector SBOM Generator faz a verificação de dependências do Java analisando arquivos pom.xml e aplicações do Java compiladas. Ao verificar aplicações compiladas, o verificador gera hashes SHA–1 para verificação de integridade, extrai arquivos pom.properties incorporados e analisa arquivos pom.xml aninhados.
Coleção de hash SHA–1 (para arquivos compilados .jar, .war, .ear)
O Amazon Inspector SBOM Generator tenta coletar hashes SHA–1 para todos os arquivos .ear, .jar e .war em um projeto para garantir a integridade e a rastreabilidade dos artefatos compilados do Java.
Recursos principais do
-
Gera hashes SHA–1 para todos os artefatos compilados do Java
Artefato de exemplo
Veja a seguir um exemplo de um artefato 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
Esse artefato gera uma saída que contém um URL de pacote. Esse URL pode ser usado para especificar informações sobre pacotes de software ao gerar uma lista de materiais de software e pode ser incluído na ScanSbomAPI. Para obter mais informações, consulte package-url no GitHub site
pom.properties
O arquivo pom.properties é usado em projetos do Maven para armazenar metadados do projeto, incluindo nomes e versões de pacotes. O Amazon Inspector SBOM Generator analisa esse arquivo para coletar informações do projeto.
Recursos principais do
-
Analisa e extrai artefatos, grupos e versões de pacotes
Exemplo de arquivo pom.properties
Este é um exemplo de um arquivo pom.properties.
#Generated by Maven #Tue Mar 16 15:44:02 UTC 2021 version=1.6.0 groupId=net.datafaker artifactId=datafaker
nota
Esse arquivo gera uma saída que contém um URL de pacote. Esse URL pode ser usado para especificar informações sobre pacotes de software ao gerar uma lista de materiais de software e pode ser incluído na ScanSbomAPI. Para obter mais informações, consulte package-url no GitHub site
Excluir a análise de pom.xml aninhados
Se você quiser excluir a análise do pom.xml ao verificar aplicações compiladas do Java, use o argumento --skip-nested-pomxml.
pom.xml
O arquivo pom.xml é o de configuração principal para projetos do Maven. Ele contém informações sobre projetos e as respectivas dependências. O Amazon Inspector SBOM Generator analisa arquivos pom.xml para coletar dependências, verificando arquivos autônomos em repositórios e arquivos dentro de arquivos .jar compilados.
Recursos principais do
-
Analisa e extrai artefatos, grupos e versões de pacotes de arquivos
pom.xml.
Escopos e tags do Maven compatíveis
As dependências são coletadas com os seguintes escopos do Maven:
-
compile
-
fornecido
-
runtime
-
teste
-
operacional
-
Importar
As dependências são coletadas com a seguinte tag do Maven: <optional>true</optional>.
Exemplo de arquivo pom.xml com escopo
Veja a seguir um exemplo de um arquivo pom.xml com escopo.
<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>
Exemplo de arquivo pom.xml sem escopo
Veja a seguir um exemplo de um arquivo pom.xml sem escopo.
<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
Cada um desses arquivos gera uma saída que contém um URL do pacote. Esse URL pode ser usado para especificar informações sobre pacotes de software ao gerar uma lista de materiais de software e pode ser incluído na ScanSbomAPI. Para obter mais informações, consulte package-url no GitHub site
JavaScript verificação de dependências
| Linguagem de programação | Gerenciador de pacote | Artefatos compatíveis | Suporte do conjunto de ferramentas | Dependências de desenvolvimento | Dependências transitivas | Sinalizador privado | Recursivamente |
|---|---|---|---|---|---|---|---|
Javascript |
|
|
N/D N/D N/D N/D |
N/D Sim Sim Sim |
Sim N/D N/D N/D |
Sim N/D N/D N/D |
Sim Não Não Não |
package.json
O arquivo package.json é um componente essencial dos projetos do Node.js. Ele contém metadados sobre os pacotes instalados. O Amazon Inspector SBOM Generator verifica esse arquivo para identificar nomes e versões de pacotes.
Recursos principais do
-
Analisa a estrutura de arquivos JSON para extrair nomes e versões de pacotes
-
Identifica pacotes privados com valores privados
Exemplo de arquivo package.json
Este é um exemplo de um arquivo package.json.
{ "name": "arrify", "private": true, "version": "2.0.1", "description": "Convert a value to an array", "license": "MIT", "repository": "sindresorhus/arrify" }
nota
Esse arquivo gera uma saída que contém um URL de pacote. Esse URL pode ser usado para especificar informações sobre pacotes de software ao gerar uma lista de materiais de software e pode ser incluído na ScanSbomAPI. Para obter mais informações, consulte package-url no GitHub site
package-lock.json
O arquivo package-lock.json é gerado automaticamente pelo npm para bloquear as versões exatas das dependências instaladas para um projeto. Ele garante a consistência nos ambientes armazenando versões exatas de todas as dependências e suas subdependências. Esse arquivo pode distinguir entre dependências regulares e de desenvolvimento.
Recursos principais do
-
Analisa a estrutura de arquivos JSON para extrair nomes e versões de pacotes
-
Viabiliza a detecção de dependências de desenvolvedor
Exemplo de arquivo package-lock.json
Este é um exemplo de um arquivo 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
Esse arquivo gera uma saída que contém um URL de pacote. Esse URL pode ser usado para especificar informações sobre pacotes de software ao gerar uma lista de materiais de software e pode ser incluído na ScanSbomAPI. Para obter mais informações, consulte package-url no GitHub site
npm-shrinkwrap.json
O npm gera automaticamente os arquivos package-lock.json e npm-shrinkwrap.json para bloquear as versões exatas das dependências instaladas para um projeto. Isso garante a consistência nos ambientes armazenando versões exatas de todas as dependências e suas subdependências. Os arquivos distinguem entre dependências regulares e de desenvolvimento.
Recursos principais do
-
Analise o
package-lockversões 1, 2 e 3 da estrutura do arquivo JSON para extrair o nome e a versão do pacote -
A detecção de dependências de desenvolvedor é viabilizada (
package-lock.jsoncaptura dependências de produção e desenvolvimento, permitindo que as ferramentas identifiquem quais pacotes são usados em ambientes de desenvolvimento) -
O arquivo
npm-shrinkwrap.jsontem prioridade sobre opackage-lock.json
Exemplo
Este é um exemplo de um arquivo 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
O arquivo pnpm-lock.yaml é gerado pelo pnpm para manter um registro das versões de dependências instaladas. Ele também rastreia as dependências de desenvolvimento separadamente.
Recursos principais do
-
Analisa a estrutura de arquivos YAML para extrair nomes e versões de pacotes
-
Viabiliza a detecção de dependências de desenvolvedor
Exemplo
Este é um exemplo de um arquivo 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
Esse arquivo gera uma saída que contém um URL de pacote. Esse URL pode ser usado para especificar informações sobre pacotes de software ao gerar uma lista de materiais de software e pode ser incluído na ScanSbomAPI. Para obter mais informações, consulte package-url no GitHub site
yarn.lock
O Amazon Inspector SBOM Generator tenta coletar hashes SHA–1 para os arquivos .ear, .jar e .war em um projeto para garantir a integridade e a rastreabilidade dos artefatos compilados do Java.
Recursos principais do
-
Gera hashes SHA–1 para todos os artefatos compilados do Java
Exemplo de artefato SHA–1
Veja a seguir um exemplo de um artefato 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
Esse artefato gera uma saída que contém um URL de pacote. Esse URL pode ser usado para especificar informações sobre pacotes de software ao gerar uma lista de materiais de software e pode ser incluído na ScanSbomAPI. Para obter mais informações, consulte package-url no GitHub site
Verificação de dependências do .NET
| Linguagem de programação | Gerenciador de pacote | Artefatos compatíveis | Suporte do conjunto de ferramentas | Dependências de desenvolvimento | Dependências transitivas | Sinalizador privado | Recursivamente |
|---|---|---|---|---|---|---|---|
.NET |
|
|
N/D N/D N/D N/D |
N/D N/D N/D N/D |
N/D N/D Sim N/D |
N/D N/D N/D N/D |
Sim Sim Sim Sim |
Packages.config
O arquivo Packages.config é um arquivo XML usado por uma versão mais antiga do Nuget para gerenciar dependências do projeto. Ele lista todos os pacotes referenciados pelo projeto, incluindo versões específicas.
Recursos principais do
-
Analisa a estrutura XML para extrair pacotes IDs e versões
Exemplo
Este é um exemplo de um arquivo 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
Esse arquivo gera uma saída que contém um URL de pacote. Esse URL pode ser usado para especificar informações sobre pacotes de software ao gerar uma lista de materiais de software e pode ser incluído na ScanSbomAPI. Para obter mais informações, consulte package-url no GitHub site
*.deps.json
O arquivo *.deps.json é gerado por projetos do .NET Core e contém informações detalhadas sobre todas as dependências, incluindo caminhos, versões e dependências de runtime. Esse arquivo garante que o runtime tenha as informações necessárias para carregar as versões corretas das dependências.
Recursos principais do
-
Analisa a estrutura JSON para obter detalhes abrangentes da dependência
-
Extrai nomes e versões de pacotes em uma lista de
libraries.
Exemplo de arquivo .deps.json
Este é um exemplo de um arquivo .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
Esse arquivo gera uma saída que contém um URL de pacote. Esse URL pode ser usado para especificar informações sobre pacotes de software ao gerar uma lista de materiais de software e pode ser incluído na ScanSbomAPI. Para obter mais informações, consulte package-url no GitHub site
packages.lock.json
O arquivo packages.lock.json é usado pelas versões mais recentes do Nuget para bloquear as versões exatas das dependências para um projeto do .NET para garantir que as mesmas versões sejam usadas de forma consistente em diferentes ambientes.
Recursos principais do
-
Analisa a estrutura JSON para listar dependências bloqueadas
-
Permite dependências diretas e transitivas
-
Extrai o nome do pacote e as versões resolvidas
Exemplo de arquivo packages.lock.json
Este é um exemplo de um arquivo 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
Esse arquivo gera uma saída que contém um URL de pacote. Esse URL pode ser usado para especificar informações sobre pacotes de software ao gerar uma lista de materiais de software e pode ser incluído na ScanSbomAPI. Para obter mais informações, consulte package-url no GitHub site
.csproj
O arquivo .csproj é escrito em XML e o arquivo de projeto para projetos do .NET. Ele inclui referências a pacotes do Nuget, propriedades do projeto e configurações de compilação.
Recursos principais do
-
Analisa a estrutura XML para extrair referências de pacotes
Exemplo de arquivo .csproj
Este é um exemplo de um arquivo .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>
Exemplo de arquivo .csproj
Este é um exemplo de um arquivo .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
Cada um desses arquivos gera uma saída que contém um URL do pacote. Esse URL pode ser usado para especificar informações sobre pacotes de software ao gerar uma lista de materiais de software e pode ser incluído na ScanSbomAPI. Para obter mais informações, consulte package-url no GitHub site
Verificação de dependências do PHP
| Linguagem de programação | Gerenciador de pacote | Artefatos compatíveis | Suporte do conjunto de ferramentas | Dependências de desenvolvimento | Dependências transitivas | Sinalizador privado | Recursivamente |
|---|---|---|---|---|---|---|---|
PHP |
Composer |
|
N/D N/D |
N/D N/D |
Sim Sim |
N/D N/D |
Sim Sim |
composer.lock
O arquivo composer.lock é gerado automaticamente ao executar os comandos composer install ou composer update. Esse arquivo garante que as mesmas versões das dependências sejam instaladas em todos os ambientes. Isso fornece um processo de compilação consistente e confiável.
Recursos principais do
-
Analisa o formato JSON para dados estruturados
-
Extrai nomes e versões de dependências
Exemplo de arquivo composer.lock
Este é um exemplo de um arquivo 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
Isso gera uma saída que contém um URL de pacote. Esse URL pode ser usado para especificar informações sobre pacotes de software ao gerar uma lista de materiais de software e pode ser incluído na ScanSbomAPI. Para obter mais informações, consulte package-url no GitHub site
/vendor/composer/installed.json
O arquivo /vendor/composer/installed.json está localizado no diretório vendor/composer e fornece uma lista abrangente de todos os pacotes e versões de pacotes instalados.
Recursos principais do
-
Analisa o formato JSON para dados estruturados
-
Extrai nomes e versões de dependências
Exemplo de arquivo /vendor/composer/installed.json
Este é um exemplo de um arquivo /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
Esse arquivo gera uma saída que contém um URL de pacote. Esse URL pode ser usado para especificar informações sobre pacotes de software ao gerar uma lista de materiais de software e pode ser incluído na ScanSbomAPI. Para obter mais informações, consulte package-url no GitHub site
Verificação de dependências do Python
| Linguagem de programação | Gerenciador de pacote | Artefatos compatíveis | Suporte do conjunto de ferramentas | Dependências de desenvolvimento | Dependências transitivas | Sinalizador privado | Recursivamente |
|---|---|---|---|---|---|---|---|
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 |
Sim Sim Sim Sim Sim |
requirements.txt
O arquivo requirements.txt é um formato amplamente usado em projetos do Python para especificar as dependências do projeto. Cada linha nesse arquivo inclui um pacote com suas restrições de versão. O Amazon Inspector SBOM Generator analisa esse arquivo para identificar e catalogar dependências com precisão.
Recursos principais do
-
Permite especificadores de versão (== e ˜=)
-
Permite comentários e linhas de dependência complexas
nota
Os especificadores de versão <= e => não são compatíveis.
Exemplo de arquivo requirements.txt
Este é um exemplo de um arquivo 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
Esse arquivo gera uma saída que contém um URL de pacote. Esse URL pode ser usado para especificar informações sobre pacotes de software ao gerar uma lista de materiais de software e pode ser incluído na ScanSbomAPI. Para obter mais informações, consulte package-url no GitHub site
Pipfile.lock
Pipenv é uma ferramenta que reúne o melhor de todos os mundos do empacotamento (empacotados, fixados e não fixados). O Pipfile.lock bloqueia versões exatas das dependências para facilitar compilações determinísticas. O Amazon Inspector SBOM Generator lê esse arquivo para listar dependências e suas versões resolvidas.
Recursos principais do
-
Analisa o formato JSON para resolução de dependências
-
Permite dependências padrão e de desenvolvimento
Exemplo de arquivo Pipfile.lock
Este é um exemplo de um arquivo 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
Esse arquivo gera uma saída que contém um URL de pacote. Esse URL pode ser usado para especificar informações sobre pacotes de software ao gerar uma lista de materiais de software e pode ser incluído na ScanSbomAPI. Para obter mais informações, consulte package-url no GitHub site
Poetry.lock
Poetry é uma ferramenta para gerenciamento de dependências e empacotamento para Python. O arquivo Poetry.lock bloqueia versões exatas das dependências para facilitar ambientes consistentes. O Amazon Inspector SBOM Generator extrai informações detalhadas sobre dependências desse arquivo.
Recursos principais do
-
Analisa o formato TOML para dados estruturados
-
Extrai nomes e versões de dependências
Exemplo de arquivo Poetry.lock
Este é um exemplo de um arquivo 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
Esse arquivo gera uma saída que contém um URL de pacote. Esse URL pode ser usado para especificar informações sobre pacotes de software ao gerar uma lista de materiais de software e pode ser incluído na ScanSbomAPI. Para obter mais informações, consulte package-url no GitHub site
Egg/wheel
Para pacotes Python instalados globalmente, o Amazon Inspector SBOM Generator permite a análise de arquivos de metadados encontrados nos diretórios .egg-info/PKG-INFO e .dist-info/METADATA. Esses arquivos fornecem metadados detalhados sobre os pacotes instalados.
Recursos principais do
-
Extrai o nome e a versão do pacote
-
Suporta os formatos egg e wheel
Exemplo de arquivo PKG-INFO/METADATA
Este é um exemplo de um arquivo 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
Esse arquivo gera uma saída que contém um URL de pacote. Esse URL pode ser usado para especificar informações sobre pacotes de software ao gerar uma lista de materiais de software e pode ser incluído na ScanSbomAPI. Para obter mais informações, consulte package-url no GitHub site
Verificação de dependências do Ruby
| Linguagem de programação | Gerenciador de pacote | Artefatos compatíveis | Suporte ao conjunto de ferramentas | Dependências de desenvolvimento | Dependências transitivas | Sinalizador privado | Recursivamente |
|---|---|---|---|---|---|---|---|
Ruby |
Bundler |
|
N/D N/D N/D |
N/D N/D N/D |
Sim N/D N/D |
N/D N/D N/D |
Sim Sim Sim |
Gemfile.lock
O arquivo Gemfile.lock bloqueia as versões exatas de todas as dependências para garantir que as mesmas versões sejam usadas em todos os ambientes.
Recursos principais do
-
Analisa o arquivo
Gemfile.lockpara identificar dependências e versões de dependências -
Extrai nomes e versões de pacotes detalhados
Exemplo de arquivo Gemfile.lock
Este é um exemplo de um arquivo 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
Esse arquivo gera uma saída que contém um URL de pacote. Esse URL pode ser usado para especificar informações sobre pacotes de software ao gerar uma lista de materiais de software e pode ser incluído na ScanSbomAPI. Para obter mais informações, consulte package-url no GitHub site
.gemspec
O arquivo .gemspec é um arquivo RubyGem contendo metadados sobre uma gem. O Amazon Inspector SBOM Generator analisa esse arquivo para coletar informações detalhadas sobre uma gem.
Recursos principais do
-
Analisa e extrai o nome e a versão da gem
nota
A especificação de referência não é compatível.
Exemplo de arquivo .gemspec
Este é um exemplo de um arquivo .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
Esse arquivo gera uma saída que contém um URL de pacote. Esse URL pode ser usado para especificar informações sobre pacotes de software ao gerar uma lista de materiais de software e pode ser incluído na ScanSbomAPI. Para obter mais informações, consulte package-url no GitHub site
Gems instaladas globalmente
O Amazon Inspector SBOM Generator permite a verificação de gems instaladas globalmente, localizadas em diretórios padrão, como /usr/local/lib/ruby/gems/<ruby_version>/gems/ no Amazon EC2/Amazon ECR e ruby/gems/<ruby_version>/gems/ no Lambda. Isso garante que todas as dependências instaladas globalmente sejam identificadas e catalogadas.
Recursos principais do
-
Identifica e verifica todas as gems instaladas globalmente em diretórios padrão
-
Extrai metadados e informações de versão para cada gem instalada globalmente
Exemplo de estrutura de diretório
Veja a seguir um exemplo de uma estrutura de diretório.
. └── /usr/local/lib/ruby/3.5.0/gems/ ├── actrivesupport-6.1.4 ├── concurrent-ruby-1.1.9 └── i18n-1.8.10
nota
Essa estrutura gera uma saída que contém um URL de pacote. Esse URL pode ser usado para especificar informações sobre pacotes de software ao gerar uma lista de materiais de software e pode ser incluído na ScanSbomAPI. Para obter mais informações, consulte package-url no GitHub site
Verificação de dependências do Rust
| Linguagem de programação | Gerenciador de pacote | Artefatos compatíveis | Suporte do conjunto de ferramentas | Dependências de desenvolvimento | Dependências transitivas | Sinalizador privado | Recursivamente |
|---|---|---|---|---|---|---|---|
Rust |
Cargo.toml |
|
N/D N/D Sim |
N/D N/D N/D |
N/D Sim N/D |
N/D N/D N/D |
Sim Sim Sim |
Cargo.toml
O arquivo Cargo.toml é o arquivo de manifesto dos projetos do Rust.
Recursos principais do
-
Analisa e extrai o arquivo
Cargo.tomlpara identificar o nome e a versão do pacote do projeto.
Exemplo de arquivo Cargo.toml
Este é um exemplo de um arquivo 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
Esse arquivo gera uma saída que contém um URL de pacote. Esse URL pode ser usado para especificar informações sobre pacotes de software ao gerar uma lista de materiais de software e pode ser incluído na ScanSbomAPI. Para obter mais informações, consulte package-url no GitHub site
Cargo.lock
O arquivo Cargo.lock bloqueia as versões de dependência para garantir que as mesmas versões sejam usadas sempre que um projeto é criado.
Recursos principais do
-
Analisa o arquivo
Cargo.lockpara identificar todas as dependências e versões de dependências.
Exemplo de arquivo Cargo.lock
Este é um exemplo de um arquivo 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
Esse arquivo gera uma saída que contém um URL de pacote. Esse URL pode ser usado para especificar informações sobre pacotes de software ao gerar uma lista de materiais de software e pode ser incluído na ScanSbomAPI. Para obter mais informações, consulte package-url no GitHub site
Binários Rust com cargo-auditable
O Amazon Inspector SBOM Generator coleta dependências de binários do Rust criados com a biblioteca cargo-auditable. Isso fornece informações adicionais sobre dependências ao permitir a extração de dependências de binários compilados.
Recursos principais do
-
Extrai informações de dependência diretamente dos binários do Rust criados com a biblioteca
cargo-auditable -
Recupera metadados e informações de versão das dependências incluídas nos binários
nota
Esse arquivo gera uma saída que contém um URL de pacote. Esse URL pode ser usado para especificar informações sobre pacotes de software ao gerar uma lista de materiais de software e pode ser incluído na ScanSbomAPI. Para obter mais informações, consulte package-url no GitHub site
Artefatos incompatíveis
Esta seção descreve os artefatos incompatíveis.
Java
O gerador Amazon Inspector SBOM Generator só permite a detecção de vulnerabilidades para dependências provenientes do repositório principal do Maven
JavaScript
Pacotes de esbuild
Para pacotes minificados pelo esbuild, o Amazon Inspector SBOM Generator não permite a verificação de dependências para projetos que usam esbuild. Os mapas de origem gerados por esbuild não incluem metadados suficientes (nomes e versões de dependências) necessários para uma geração precisa de Sbomgen. Para obter resultados confiáveis, verifique os arquivos originais do projeto, como node_modules/directory e package-lock.json, antes do processo de empacotamento.
package.json
O Amazon Inspector SBOM Generator não permite a verificação do arquivo package.json no nível raiz para obter informações sobre dependências. Esse arquivo especifica apenas nomes de pacotes e intervalos de versões, mas não inclui versões de pacotes totalmente resolvidas. Para obter resultados de verificação precisos, use package.json ou outros arquivos de bloqueio, como yarn.lock e pnpm.lock, que incluam versões resolvidas.
Dotnet
Ao usar versões flutuantes ou intervalos de versões em PackageReference, fica mais difícil determinar a versão exata do pacote usada em um projeto sem fazer a resolução do pacote. Versões flutuantes e intervalos de versões permitem que os desenvolvedores especifiquem um intervalo de versões de pacotes aceitáveis em vez de uma versão fixa.
Binários do Go
O Amazon Inspector SBOM Generator não verifica binários do Go que são criados com sinalizadores de compilação configurados para excluir o ID de compilação. Esses sinalizadores de construção impedem que o Amazon Inspector SBOM Generator mapeie com precisão o binário até sua fonte original. Não há suporte para binários do Go pouco claros devido à incapacidade de extrair informações do pacote. Para uma verificação precisa de dependências, certifique-se de que os binários do Go sejam criados com as configurações padrão, incluindo o ID da compilação.
Binários do Rust
O Amazon Inspector SBOM Generator só verifica binários do Rust se eles forem criados usando a biblioteca cargo-auditable
nota
A detecção de vulnerabilidade para o conjunto de ferramentas do Rust em si não é compatível, mesmo que a versão do conjunto de ferramentas seja extraída.