

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Recopilación de dependencias de lenguajes de programación
<a name="sbom-generator-dependency-collection"></a>

 El generador de SBOM de Amazon Inspector es compatible con diferentes marcos y lenguajes de programación, lo que constituye una recopilación sólida y detallada de dependencias. La generación de una SBOM lo ayuda a comprender la composición del software, de modo que puede identificar las vulnerabilidades y mantener el cumplimiento de las normas de seguridad. El generador de SBOM de Amazon Inspector admite los siguientes lenguajes de programación y formatos de archivo. 

## Ir a análisis de dependencias
<a name="w2aac37c25b5"></a>


| Lenguaje de programación | Administrador de paquetes | Artefactos compatibles | Compatibilidad con la cadena de herramientas | Dependencias de desarrollo | Dependencias transitivas | Indicador privado | De forma recursiva | 
| --- | --- | --- | --- | --- | --- | --- | --- | 
| Go | Go | `go.mod`<br />`go.sum`<br />`Go Binaries`<br />`GOMODCACHE` | N/A<br />N/A<br />Sí<br />N/A | N/A<br />N/A<br />N/A<br />N/A | N/A<br />N/A<br />N/A<br />N/A | N/A<br />N/A<br />N/A<br />N/A | Sí<br />Sí<br />Sí<br />No | 

### go.mod/go.sum
<a name="w2aac37c25b5b5"></a>

 Use archivos `go.mod` y `go.sum` para definir y bloquear las dependencias en los proyectos de Go. El generador de SBOM de Amazon Inspector administra estos archivos de forma diferente en función de la versión de la cadena de herramientas de Go. 

**Características principales de**
+  Recopila las dependencias de `go.mod` (si la versión de la cadena de herramientas de Go es la 1.17 o posterior) 
+  Recopila las dependencias de `go.sum` (si la versión de la cadena de herramientas de Go es la 1.17 o anterior) 
+  Realiza un análisis de `go.mod` para identificar todas las dependencias declaradas y las versiones de dependencias 

**Archivo `go.mod` de ejemplo**  
 A continuación, se presenta un ejemplo de un archivo de `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
)
```

**Archivo `go.sum` de ejemplo**  
 A continuación, se presenta un ejemplo de un archivo de `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 uno de estos archivos produce una salida que contiene la URL de un paquete. Esta URL se puede utilizar para especificar información sobre los paquetes de software al generar una lista de materiales de software y se puede incluir en la [ScanSbom](https://docs.aws.amazon.com/inspector/v2/APIReference/API_inspector-scan_ScanSbom.html)API. Para obtener más información, consulte la [URL del paquete en el GitHub sitio web](https://github.com/package-url/purl-spec). 

### Binarios de Go
<a name="w2aac37c25b5b7"></a>

 El generador de SBOM de Amazon Inspector extrae las dependencias de los binarios de Go compilados para garantizar el código en uso. 

**nota**  
 El generador de SBOM de Amazon Inspector permite capturar y evaluar versiones de cadenas de herramientas a partir de binarios de Go creados con el compilador oficial de Go. Para obtener más información, consulte [Descarga e instalación](https://go.dev/doc/install) en el sitio web de Go. Si utiliza la cadena de herramientas de Go de otro proveedor, por ejemplo, Red Hat, la evaluación podría no ser precisa debido a posibles diferencias en la distribución y la disponibilidad de los metadatos. 

**Características principales de**
+  Extrae la información de dependencia directamente de los binarios de Go 
+  Recopila las dependencias incrustadas en el binario 
+  Detecta y extrae la versión de la cadena de herramientas de Go utilizada para compilar el binario. 

### GOMODCACHE
<a name="w2aac37c25b5b9"></a>

 El generador de SBOM de Amazon Inspector analiza la memoria caché del módulo de Go para recopilar información sobre las dependencias instaladas. Esta memoria caché almacena los módulos descargados para garantizar que se utilicen las mismas versiones en diferentes compilaciones. 

**Características principales de**
+  Analiza el directorio de `GOMODCACHE` para identificar los módulos en caché 
+  Extrae metadatos detallados, incluidos los nombres de los módulos, las versiones y la fuente URLs 

**Estructura de ejemplo**  
 A continuación se muestra un ejemplo de la estructura de `GOMODCACHE`. 

```
~/go/pkg/mod/
├── github.com/gin-gonic/gin@v1.7.2
├── golang.org/x/crypto@v0.0.0-20210616213533-5cf6c0f8e123
```

**nota**  
 Esta estructura produce una salida que contiene la URL de un paquete. Esta URL se puede usar para especificar información sobre los paquetes de software al generar una lista de materiales de software y se puede incluir en la [ScanSbom](https://docs.aws.amazon.com/inspector/v2/APIReference/API_inspector-scan_ScanSbom.html)API. Para obtener más información, consulte la [URL del paquete en el GitHub sitio web](https://github.com/package-url/purl-spec). 

## Análisis de dependencias de Java
<a name="w2aac37c25b7"></a>


| Lenguaje de programación | Administrador de paquetes | Artefactos compatibles | Compatibilidad con la cadena de herramientas | Dependencias de desarrollo | Dependencias transitivas | Indicador privado | De forma recursiva | 
| --- | --- | --- | --- | --- | --- | --- | --- | 
| Java | Maven | Aplicaciones de Java compiladas (.jar/.war/.ear)<br />`pom.xml` | N/A<br />N/A | N/A<br />N/A | Sí<br />Sí | N/A<br />N/A | Sí<br />Sí | 

**nota**  
 Nuestra característica de evaluación de vulnerabilidades solo es compatible con el repositorio central de Maven. Los repositorios de terceros, por ejemplo, JBoss Enterprise Maven Repository, no son compatibles actualmente. 

 El generador de SBOM de Amazon Inspector realiza un análisis de dependencias de Java analizando las aplicaciones de Java y los archivos `pom.xml` compilados. Al analizar aplicaciones compiladas, el analizador genera hashes SHA-1 para verificar la integridad, extrae los archivos `pom.properties` incrustados y analiza los archivos anidados `pom.xml`. 

### Recopilación de hash SHA-1 (para archivos .jar, .war, .ear compilados)
<a name="w2aac37c25b7b9"></a>

 El generador de SBOM de Amazon Inspector intenta recopilar los hashes SHA-1 para todos los archivos `.ear`, `.jar` y `.war` de un proyecto a fin de garantizar la integridad y la trazabilidad de los artefactos de Java compilados. 

**Características principales de**
+  Genera hashes SHA-1 para todos los artefactos de Java compilados 

**Artefacto de ejemplo**  
 A continuación, se muestra un ejemplo de artefacto 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**  
 Este artefacto produce una salida que contiene la URL de un paquete. Esta URL se puede utilizar para especificar información sobre los paquetes de software al generar una lista de materiales de software y se puede incluir en la [ScanSbom](https://docs.aws.amazon.com/inspector/v2/APIReference/API_inspector-scan_ScanSbom.html)API. Para obtener más información, consulte la [URL del paquete en el GitHub sitio web](https://github.com/package-url/purl-spec). 

### pom.properties
<a name="w2aac37c25b7c11"></a>

 El archivo `pom.properties` se utiliza en los proyectos de Maven para almacenar los metadatos del proyecto, incluidos los nombres y las versiones de los paquetes. El generador de SBOM de Amazon Inspector analiza este archivo para recopilar información del proyecto. 

**Características principales de**
+  Analiza y extrae los artefactos de los paquetes, los grupos de paquetes y las versiones de los paquetes 

**Archivo `pom.properties` de ejemplo**  
 A continuación se presenta un ejemplo de un archivo `pom.properties`. 

```
#Generated by Maven
#Tue Mar 16 15:44:02 UTC 2021

version=1.6.0
groupId=net.datafaker
artifactId=datafaker
```

**nota**  
 Este archivo produce una salida que contiene la URL de un paquete. Esta URL se puede utilizar para especificar información sobre los paquetes de software al generar una lista de materiales de software y se puede incluir en la [ScanSbom](https://docs.aws.amazon.com/inspector/v2/APIReference/API_inspector-scan_ScanSbom.html)API. Para obtener más información, consulte la [URL del paquete en el GitHub sitio web](https://github.com/package-url/purl-spec). 

**Excluido el análisis anidado de `pom.xml`**  
 Si desea excluir el análisis de `pom.xml` al analizar aplicaciones de Java compiladas, utilice el argumento `--skip-nested-pomxml`. 

### pom.xml
<a name="w2aac37c25b7c13"></a>

 El archivo `pom.xml` es el archivo de configuración principal de los proyectos de Maven. Contiene información sobre los proyectos y sus dependencias. El generador de SBOM de Amazon Inspector analiza los archivos pom.xml para recopilar las dependencias y analiza los archivos independientes de los repositorios y los archivos dentro de los archivos .jar compilados. 

**Características principales de**
+  Analiza y extrae los artefactos de los paquetes, los grupos de paquetes y las versiones de los paquetes de los archivos `pom.xml`. 

**Ámbitos y etiquetas compatibles con Maven**  
 Las dependencias se recopilan con los siguientes ámbitos de Maven: 
+  compile 
+  proporsionado 
+  tiempo de ejecución 
+  prueba 
+  sistema 
+  importar 

 Las dependencias se recopilan con la etiqueta de Maven siguiente: `<optional>true</optional>`. 

**Archivo `pom.xml` de ejemplo con un ámbito**  
 A continuación, se presenta un ejemplo de un archivo `pom.xml` con un ámbito. 

```
<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>
```

**Archivo `pom.xml` de ejemplo sin un ámbito**  
 A continuación, se presenta un ejemplo de un archivo `pom.xml` sin un ámbito. 

```
<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 uno de estos archivos produce una salida que contiene la URL de un paquete. Esta URL se puede utilizar para especificar información sobre los paquetes de software al generar una lista de materiales de software y se puede incluir en la [ScanSbom](https://docs.aws.amazon.com/inspector/v2/APIReference/API_inspector-scan_ScanSbom.html)API. Para obtener más información, consulte la [URL del paquete en el GitHub sitio web](https://github.com/package-url/purl-spec). 

## JavaScript escaneo de dependencias
<a name="w2aac37c25b9"></a>


| Lenguaje de programación | Administrador de paquetes | Artefactos compatibles | Compatibilidad con la cadena de herramientas | Dependencias de desarrollo | Dependencias transitivas | Indicador privado | De forma recursiva | 
| --- | --- | --- | --- | --- | --- | --- | --- | 
| Javascript | `Node Modules`<br />`NPM`<br />`PNPM`<br />`YARN` | `node_modules/*/package.json`<br />`package-lock.json (v1, v2, and v3) / npm-shrinkwrap.json`<br />`pnpm-lock.yaml`<br />`yarn.lock` | N/A<br />N/A<br />N/A<br />N/A | N/A<br />Sí<br />Sí<br />Sí | Sí<br />N/A<br />N/A<br />N/A | Sí<br />N/A<br />N/A<br />N/A | Sí<br />No<br />No<br />No | 

### package.json
<a name="w2aac37c25b9b5"></a>

 El archivo `package.json` es un componente central de los proyectos de Node.js. Contiene metadatos acerca de los paquetes instalados. El generador de SBOM de Amazon Inspector analiza este archivo para identificar los nombres y las versiones de los paquetes. 

**Características principales de**
+  Analiza la estructura de archivos JSON para extraer los nombres y las versiones de los paquetes 
+  Identifica los paquetes privados con valores privados 

**Archivo `package.json` de ejemplo**  
 A continuación se presenta un ejemplo de un archivo `package.json`. 

```
{
"name": "arrify",
"private": true,
"version": "2.0.1",
"description": "Convert a value to an array",
"license": "MIT",
"repository": "sindresorhus/arrify"
}
```

**nota**  
 Este archivo produce una salida que contiene la URL de un paquete. Esta URL se puede utilizar para especificar información sobre los paquetes de software al generar una lista de materiales de software y se puede incluir en la [ScanSbom](https://docs.aws.amazon.com/inspector/v2/APIReference/API_inspector-scan_ScanSbom.html)API. Para obtener más información, consulte la [URL del paquete en el GitHub sitio web](https://github.com/package-url/purl-spec). 

### package-lock.json
<a name="w2aac37c25b9b7"></a>

 El archivo `package-lock.json` está generado automáticamente por npm para bloquear las versiones exactas de las dependencias instaladas para un proyecto. Garantiza la coherencia en los entornos al almacenar las versiones exactas de todas las dependencias y sus subdependencias. Este archivo puede distinguir entre las dependencias normales y las dependencias de desarrollo. 

**Características principales de**
+  Analiza la estructura de archivos JSON para extraer los nombres y las versiones de los paquetes 
+  Admite la detección de dependencias de desarrolladores 

**Archivo `package-lock.json` de ejemplo**  
 A continuación se presenta un ejemplo de un archivo `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**  
 Este archivo produce una salida que contiene la URL de un paquete. Esta URL se puede utilizar para especificar información sobre los paquetes de software al generar una lista de materiales de software y se puede incluir en la [ScanSbom](https://docs.aws.amazon.com/inspector/v2/APIReference/API_inspector-scan_ScanSbom.html)API. Para obtener más información, consulte la [URL del paquete en el GitHub sitio web](https://github.com/package-url/purl-spec). 

### npm-shrinkwrap.json
<a name="w2aac37c25b9b9"></a>

 npm genera automáticamente los archivos `package-lock.json` y `npm-shrinkwrap.json` para bloquear las versiones exactas de las dependencias instaladas para un proyecto. Esto garantiza la coherencia en los entornos al almacenar las versiones exactas de todas las dependencias y subdependencias. Los archivos distinguen entre las dependencias normales y las dependencias de desarrollo. 

**Características principales de**
+  Analice las versiones 1, 2 y 3 de `package-lock` de la estructura del archivo JSON para extraer el nombre y la versión del paquete 
+  Se admite la detección de dependencias de los desarrolladores (`package-lock.json` captura las dependencias de producción y desarrollo, lo que permite a las herramientas identificar qué paquetes se utilizan en los entornos de desarrollo) 
+  El archivo `npm-shrinkwrap.json` tiene prioridad sobre el archivo `package-lock.json` 

**Ejemplo**  
 A continuación se presenta un ejemplo de un archivo `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
<a name="w2aac37c25b9c11"></a>

 pnpm genera el archivo `pnpm-lock.yaml` para mantener un registro de las versiones de dependencia instaladas. También realiza un seguimiento de las dependencias de desarrollo de forma independiente. 

**Características principales de**
+  Analiza la estructura de archivos YAML para extraer los nombres y las versiones de los paquetes 
+  Admite la detección de dependencias de desarrolladores 

**Ejemplo**  
 A continuación se presenta un ejemplo de un archivo `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**  
 Este archivo produce una salida que contiene la URL de un paquete. Esta URL se puede utilizar para especificar información sobre los paquetes de software al generar una lista de materiales de software y se puede incluir en la [ScanSbom](https://docs.aws.amazon.com/inspector/v2/APIReference/API_inspector-scan_ScanSbom.html)API. Para obtener más información, consulte la [URL del paquete en el GitHub sitio web](https://github.com/package-url/purl-spec). 

### yarn.lock
<a name="w2aac37c25b9c13"></a>

 El generador de SBOM de Amazon Inspector intenta recopilar los hashes SHA-1 para los archivos `.ear`, `.jar` y `.war` de un proyecto a fin de garantizar la integridad y la trazabilidad de los artefactos de Java compilados. 

**Características principales de**
+  Genera hashes SHA-1 para todos los artefactos de Java compilados 

**Ejemplo de artefacto SHA-1**  
 A continuación, se muestra un ejemplo de artefacto 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**  
 Este artefacto produce una salida que contiene la URL de un paquete. Esta URL se puede utilizar para especificar información sobre los paquetes de software al generar una lista de materiales de software y se puede incluir en la [ScanSbom](https://docs.aws.amazon.com/inspector/v2/APIReference/API_inspector-scan_ScanSbom.html)API. Para obtener más información, consulte la [URL del paquete en el GitHub sitio web](https://github.com/package-url/purl-spec). 

## Análisis de dependencias de .NET
<a name="w2aac37c25c11"></a>


| Lenguaje de programación | Administrador de paquetes | Artefactos compatibles | Compatibilidad con la cadena de herramientas | Dependencias de desarrollo | Dependencias transitivas | Indicador privado | De forma recursiva | 
| --- | --- | --- | --- | --- | --- | --- | --- | 
| .NET | `.NET Core`<br />`Nuget`<br />`Nuget`<br />`.NET` | `*.deps.json`<br />`Packages.config`<br />`packages.lock.json`<br />`.csproj` | N/A<br />N/A<br />N/A<br />N/A | N/A<br />N/A<br />N/A<br />N/A | N/A<br />N/A<br />Sí<br />N/A | N/A<br />N/A<br />N/A<br />N/A | Sí<br />Sí<br />Sí<br />Sí | 

### Packages.config
<a name="w2aac37c25c11b5"></a>

 El archivo `Packages.config` es un archivo XML utilizado por una versión anterior de Nuget para administrar las dependencias del proyecto. Muestra todos los paquetes a los que hace referencia el proyecto, incluidas las versiones específicas. 

**Características principales de**
+  Analiza la estructura XML para extraer el paquete y las versiones IDs 

**Ejemplo**  
 A continuación se presenta un ejemplo de un archivo `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**  
 Este archivo produce una salida que contiene la URL de un paquete. Esta URL se puede utilizar para especificar información sobre los paquetes de software al generar una lista de materiales de software y se puede incluir en la [ScanSbom](https://docs.aws.amazon.com/inspector/v2/APIReference/API_inspector-scan_ScanSbom.html)API. Para obtener más información, consulte la [URL del paquete en el GitHub sitio web](https://github.com/package-url/purl-spec). 

### \*.deps.json
<a name="w2aac37c25c11b7"></a>

 El archivo `*.deps.json` lo generan los proyectos de .NET Core y contiene información detallada sobre todas las dependencias, incluidas las rutas, las versiones y las dependencias del tiempo de ejecución. Este archivo garantiza que el tiempo de ejecución tenga la información necesaria para cargar las versiones correctas de las dependencias. 

**Características principales de**
+ Analiza la estructura JSON para obtener detalles completos de las dependencias
+  Extrae los nombres y las versiones de los paquetes en una lista de `libraries`. 

**Archivo `.deps.json` de ejemplo**  
 A continuación se presenta un ejemplo de un archivo `.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**  
 Este archivo produce una salida que contiene la URL de un paquete. Esta URL se puede utilizar para especificar información sobre los paquetes de software al generar una lista de materiales de software y se puede incluir en la [ScanSbom](https://docs.aws.amazon.com/inspector/v2/APIReference/API_inspector-scan_ScanSbom.html)API. Para obtener más información, consulte la [URL del paquete en el GitHub sitio web](https://github.com/package-url/purl-spec). 

### packages.lock.json
<a name="w2aac37c25c11b9"></a>

 Las versiones más recientes de Nuget utilizan el archivo `packages.lock.json` para bloquear las versiones exactas de las dependencias de un proyecto de .NET para garantizar que las mismas versiones se utilicen de forma coherente en diferentes entornos. 

**Características principales de**
+ Analiza la estructura JSON para mostrar las dependencias bloqueadas
+ Admite dependencias directas y transitivas
+ Extrae el nombre del paquete y las versiones resueltas

**Archivo `packages.lock.json` de ejemplo**  
 A continuación se presenta un ejemplo de un archivo `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**  
 Este archivo produce una salida que contiene la URL de un paquete. Esta URL se puede utilizar para especificar información sobre los paquetes de software al generar una lista de materiales de software y se puede incluir en la [ScanSbom](https://docs.aws.amazon.com/inspector/v2/APIReference/API_inspector-scan_ScanSbom.html)API. Para obtener más información, consulte la [URL del paquete en el GitHub sitio web](https://github.com/package-url/purl-spec). 

### .csproj
<a name="w2aac37c25c11c11"></a>

 El archivo `.csproj` está escrito en XML y el archivo de proyecto para proyectos de .NET. Incluye referencias a paquetes de Nuget, propiedades del proyecto y configuraciones de compilación. 

**Características principales de**
+  Analiza XML (la estructura) para extraer las referencias de los paquetes 

**Archivo `.csproj` de ejemplo**  
 A continuación se presenta un ejemplo de un archivo `.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>
```

**Archivo `.csproj` de ejemplo**  
 A continuación se presenta un ejemplo de un archivo `.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 uno de estos archivos produce una salida que contiene la URL de un paquete. Esta URL se puede utilizar para especificar información sobre los paquetes de software al generar una lista de materiales de software y se puede incluir en la [ScanSbom](https://docs.aws.amazon.com/inspector/v2/APIReference/API_inspector-scan_ScanSbom.html)API. Para obtener más información, consulte la [URL del paquete en el GitHub sitio web](https://github.com/package-url/purl-spec). 

## Análisis de dependencias de PHP
<a name="w2aac37c25c13"></a>


| Lenguaje de programación | Administrador de paquetes | Artefactos compatibles | Compatibilidad con la cadena de herramientas | Dependencias de desarrollo | Dependencias transitivas | Indicador privado | De forma recursiva | 
| --- | --- | --- | --- | --- | --- | --- | --- | 
| PHP | Composer | `composer.lock`<br />`/vendor/composer/installed.json` | N/A<br />N/A | N/A<br />N/A | Sí<br />Sí | N/A<br />N/A | Sí<br />Sí | 

### composer.lock
<a name="w2aac37c25c13b5"></a>

 El archivo `composer.lock` se genera automáticamente al ejecutar los comandos composer install o composer update. Este archivo garantiza que se instalen las mismas versiones de las dependencias en todos los entornos. Esto proporciona un proceso de creación coherente y fiable. 

**Características principales de**
+  Analiza el formato JSON para datos estructurados 
+  Extrae los nombres y las versiones de las dependencias 

**Archivo `composer.lock` de ejemplo**  
 A continuación se presenta un ejemplo de un archivo `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**  
 Esto produce una salida que contiene la URL de un paquete. Esta URL se puede utilizar para especificar información sobre los paquetes de software al generar una lista de materiales de software y se puede incluir en la [ScanSbom](https://docs.aws.amazon.com/inspector/v2/APIReference/API_inspector-scan_ScanSbom.html)API. Para obtener más información, consulte la [URL del paquete en el GitHub sitio web](https://github.com/package-url/purl-spec). 

### /.json vendor/composer/installed
<a name="w2aac37c25c13b7"></a>

 El archivo `/vendor/composer/installed.json` se encuentra en el directorio `vendor/composer` y proporciona una lista completa de todos los paquetes instalados y sus versiones. 

**Características principales de**
+  Analiza el formato JSON para datos estructurados 
+  Extrae los nombres y la versión de las dependencias 

**Archivo `/vendor/composer/installed.json` de ejemplo**  
 A continuación se presenta un ejemplo de un archivo `/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**  
 Este archivo produce una salida que contiene la URL de un paquete. Esta URL se puede utilizar para especificar información sobre los paquetes de software al generar una lista de materiales de software y se puede incluir en la [ScanSbom](https://docs.aws.amazon.com/inspector/v2/APIReference/API_inspector-scan_ScanSbom.html)API. Para obtener más información, consulte la [URL del paquete en el GitHub sitio web](https://github.com/package-url/purl-spec). 

## Análisis de dependencias de Python
<a name="w2aac37c25c15"></a>


| Lenguaje de programación | Administrador de paquetes | Artefactos compatibles | Compatibilidad con la cadena de herramientas | Dependencias de desarrollo | Dependencias transitivas | Indicador privado | De forma recursiva | 
| --- | --- | --- | --- | --- | --- | --- | --- | 
| Python | `pip`<br />`Poetry`<br />`Pipenv`<br />`uv`<br />`Egg/Wheel` | `requirements.txt`<br />`Poetry.lock`<br />`Pipfile.lock`<br />`uv.lock`<br />`.egg-info/PKG-INFO`<br />`.dist-info/METADATA` | N/A<br />N/A<br />N/A<br />N/A<br />N/A<br />N/A | N/A<br />N/A<br />N/A<br />Sí<br />N/A<br />N/A | N/A<br />N/A<br />N/A<br />N/A<br />N/A<br />N/A | N/A<br />N/A<br />N/A<br />N/A<br />N/A<br />N/A | Sí<br />Sí<br />Sí<br />Sí<br />Sí<br />Sí | 

### requirements.txt
<a name="w2aac37c25c15b5"></a>

 El archivo `requirements.txt` es un formato muy utilizado en los proyectos Python para especificar las dependencias de los proyectos. Cada línea de este archivo incluye un paquete con sus restricciones de versión. El generador de SBOM de Amazon Inspector analiza este archivo para identificar y catalogar las dependencias con precisión. 

**Características principales de**
+  Admite los especificadores de versión (== y ˜=) 
+  Admite comentarios y líneas de dependencia complejas 

**nota**  
 Los especificadores de versión <= y => no son compatibles. 

**Archivo `requirements.txt` de ejemplo**  
 A continuación se presenta un ejemplo de un archivo `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**  
 Este archivo produce una salida que contiene la URL de un paquete. Esta URL se puede utilizar para especificar información sobre los paquetes de software al generar una lista de materiales de software y se puede incluir en la [ScanSbom](https://docs.aws.amazon.com/inspector/v2/APIReference/API_inspector-scan_ScanSbom.html)API. Para obtener más información, consulte la [URL del paquete en el GitHub sitio web](https://github.com/package-url/purl-spec). 

### Pipfile.lock
<a name="w2aac37c25c15b9"></a>

 Pipenv es una herramienta que ofrece lo mejor del mundo del embalaje (empaquetado, anclaje y desanclaje). `Pipfile.lock` bloquea las versiones exactas de las dependencias para facilitar las compilaciones deterministas. El generador de SBOM de Amazon Inspector lee este archivo para mostrar las dependencias y sus versiones resueltas. 

**Características principales de**
+  Analiza el formato JSON para la resolución de dependencias 
+  Admite las dependencias predeterminadas y de desarrollo 

**Archivo `Pipfile.lock` de ejemplo**  
 A continuación se presenta un ejemplo de un archivo `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**  
 Este archivo produce una salida que contiene la URL de un paquete. Esta URL se puede utilizar para especificar información sobre los paquetes de software al generar una lista de materiales de software y se puede incluir en la [ScanSbom](https://docs.aws.amazon.com/inspector/v2/APIReference/API_inspector-scan_ScanSbom.html)API. Para obtener más información, consulte la [URL del paquete en el GitHub sitio web](https://github.com/package-url/purl-spec). 

### Poetry.lock
<a name="w2aac37c25c15c11"></a>

 Poetry es una herramienta de empaquetado y administración de dependencias para Python. El archivo `Poetry.lock` bloquea las versiones exactas de las dependencias para facilitar entornos coherentes. El generador de SBOM de Amazon Inspector extrae información detallada sobre las dependencias de este archivo. 

**Características principales de**
+  Analiza el formato TOML para datos estructurados 
+  Extrae los nombres y las versiones de las dependencias 

**Archivo `Poetry.lock` de ejemplo**  
 A continuación se presenta un ejemplo de un archivo `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**  
 Este archivo produce una salida que contiene la URL de un paquete. Esta URL se puede utilizar para especificar información sobre los paquetes de software al generar una lista de materiales de software y se puede incluir en la [ScanSbom](https://docs.aws.amazon.com/inspector/v2/APIReference/API_inspector-scan_ScanSbom.html)API. Para obtener más información, consulte la [URL del paquete en el GitHub sitio web](https://github.com/package-url/purl-spec). 

### uv.lock
<a name="w2aac37c25c15c13"></a>

 uves un administrador de Python paquetes rápido escrito en él. Rust El archivo `uv.lock` bloquea las versiones exactas de las dependencias para facilitar entornos coherentes. El generador de SBOM de Amazon Inspector extrae información detallada sobre las dependencias de este archivo. 

**Características principales de**
+  Analiza el TOML formateado en busca de datos estructurados `uv.lock` 
+  Extrae los nombres y las versiones de las dependencias 
+  Soporta las dependencias de desarrollo 
+  Recopila solo paquetes cuya fuente es un registro 

**Archivo `uv.lock` de ejemplo**  
 A continuación se presenta un ejemplo de un archivo `uv.lock`. 

```
version = 1
requires-python = ">=3.12"

[[package]]
name = "flask"
version = "3.1.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
    { name = "blinker" },
    { name = "click" },
    { name = "itsdangerous" },
    { name = "jinja2" },
    { name = "markupsafe" },
    { name = "werkzeug" },
]

[[package]]
name = "pytest"
version = "8.3.4"
source = { registry = "https://pypi.org/simple" }
dependencies = [
    { name = "iniconfig" },
    { name = "packaging" },
    { name = "pluggy" },
]

[package.dev-dependencies]
dev = [
    { name = "pytest" },
]
```

**nota**  
 Este archivo produce una salida que contiene la URL de un paquete. Esta URL se puede utilizar para especificar información sobre los paquetes de software al generar una lista de materiales de software y se puede incluir en la [ScanSbom](https://docs.aws.amazon.com/inspector/v2/APIReference/API_inspector-scan_ScanSbom.html)API. Para obtener más información, consulte la [URL del paquete en el GitHub sitio web](https://github.com/package-url/purl-spec). 

### Egg/Wheel
<a name="w2aac37c25c15c15"></a>

 Para los paquetes de Python instalados en todo el mundo, el generador de SBOM de Amazon Inspector admite el análisis de los archivos de metadatos que se encuentran en los directorios `.egg-info/PKG-INFO` y `.dist-info/METADATA`. Estos archivos proporcionan metadatos detallados acerca de los paquetes instalados. 

**Características principales de**
+  Extrae el nombre del paquete y la versión 
+  Admite los formatos egg y wheel 

**Se ampliaron las rutas de escaneo predeterminadas (Sbomgen 1.13.0 y versiones posteriores)**  
 En Amazon Inspector SBOM Generator versión 1.13.0 y versiones posteriores, las rutas de escaneo predeterminadas del localhost del escáner se ampliaron para incluir las instalaciones a nivel de usuario (`pip install --user`) y las `pip` instalaciones producidas por el comando. `uv tool install` Esto permite la detección de paquetes de Python que se instalan fuera de todo el sistema`site-packages`, incluidos marcos como CrewAI, cuyo método de instalación recomendado es. `uv tool install crewai`   
 Se agregaron rutas de escaneo predeterminadas:   
 Linux—`/home/*/.local/lib/python*/site-packages/`, `/home/*/.local/share/uv/tools/*/lib/python*/site-packages/` (con `/root/` equivalentes para los contenedores que se ejecutan como root). 
 Windows – `%APPDATA%\Python\Python*\Lib\site-packages\`, `%LOCALAPPDATA%\uv\tools\*\Lib\site-packages\`. 
 Para prefijos de Python instalación no predeterminados en cualquier plataforma, utilice el `--path` argumento para apuntar el escáner a la ubicación de instalación. 

**Archivo `PKG-INFO/METADATA` de ejemplo**  
 A continuación se presenta un ejemplo de un archivo `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**  
 Este archivo produce una salida que contiene la URL de un paquete. Esta URL se puede utilizar para especificar información sobre los paquetes de software al generar una lista de materiales de software y se puede incluir en la [ScanSbom](https://docs.aws.amazon.com/inspector/v2/APIReference/API_inspector-scan_ScanSbom.html)API. Para obtener más información, consulte la [URL del paquete en el GitHub sitio web](https://github.com/package-url/purl-spec). 

## Análisis de dependencias de Ruby
<a name="w2aac37c25c17"></a>


| Lenguaje de programación | Administrador de paquetes | Artefactos compatibles | Compatibilidad de la cadena de herramientas | Dependencias de desarrollo | Dependencias transitivas | Indicador privado | De forma recursiva | 
| --- | --- | --- | --- | --- | --- | --- | --- | 
| Ruby | Bundler | `Gemfile.lock`<br />`.gemspec`<br />`globall installed Gems` | N/A<br />N/A<br />N/A | N/A<br />N/A<br />N/A | Sí<br />N/A<br />N/A | N/A<br />N/A<br />N/A | Sí<br />Sí<br />Sí | 

### Gemfile.lock
<a name="w2aac37c25c17b5"></a>

 El archivo `Gemfile.lock` bloquea las versiones exactas de todas las dependencias para garantizar que se utilicen las mismas versiones en todos los entornos. 

**Características principales de**
+  Analiza el archivo `Gemfile.lock` para identificar las dependencias y las versiones de las dependencias 
+  Extrae los nombres de los paquetes detallados y las versiones de los paquetes 

**Archivo `Gemfile.lock` de ejemplo**  
 A continuación se presenta un ejemplo de un archivo `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**  
 Este archivo produce una salida que contiene la URL de un paquete. Esta URL se puede utilizar para especificar información sobre los paquetes de software al generar una lista de materiales de software y se puede incluir en la [ScanSbom](https://docs.aws.amazon.com/inspector/v2/APIReference/API_inspector-scan_ScanSbom.html)API. Para obtener más información, consulte la [URL del paquete en el GitHub sitio web](https://github.com/package-url/purl-spec). 

### .gemspec
<a name="w2aac37c25c17b7"></a>

 El archivo `.gemspec` es un archivo RubyGem que contiene metadatos sobre una gema. El generador de SBOM de Amazon Inspector analiza este archivo para recopilar información detallada sobre una gema. 

**Características principales de**
+  Analiza y extrae el nombre y la versión de la gema 

**nota**  
 No se admite la especificación de referencia. 

**Archivo `.gemspec` de ejemplo**  
 A continuación se presenta un ejemplo de un archivo `.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**  
 Este archivo produce una salida que contiene la URL de un paquete. Esta URL se puede utilizar para especificar información sobre los paquetes de software al generar una lista de materiales de software y se puede incluir en la [ScanSbom](https://docs.aws.amazon.com/inspector/v2/APIReference/API_inspector-scan_ScanSbom.html)API. Para obtener más información, consulte la [URL del paquete en el GitHub sitio web](https://github.com/package-url/purl-spec). 

### Gemas instaladas globalmente
<a name="w2aac37c25c17b9"></a>

 El generador de SBOM de Amazon Inspector permite analizar gemas instaladas globalmente, que se encuentran en directorios estándar, como `/usr/local/lib/ruby/gems/<ruby_version>/gems/` en Amazon EC2/Amazon ECR y `ruby/gems/<ruby_version>/gems/` en Lambda. Esto garantiza que todas las dependencias instaladas globalmente estén identificadas y catalogadas. 

**Características principales de**
+  Identifica y analiza todas las gemas instaladas globalmente en directorios estándar 
+  Extrae los metadatos y la información de la versión de cada gema instalada globalmente 

**Estructura de directorio de ejemplo**  
 A continuación, se muestra un ejemplo de una estructura de directorio. 

```
. 
└── /usr/local/lib/ruby/3.5.0/gems/ 
├── actrivesupport-6.1.4 
├── concurrent-ruby-1.1.9 
└── i18n-1.8.10
```

**nota**  
 Esta estructura produce una salida que contiene la URL de un paquete. Esta URL se puede utilizar para especificar información sobre los paquetes de software al generar una lista de materiales de software y se puede incluir en la [ScanSbom](https://docs.aws.amazon.com/inspector/v2/APIReference/API_inspector-scan_ScanSbom.html)API. Para obtener más información, consulte la [URL del paquete en el GitHub sitio web](https://github.com/package-url/purl-spec). 

## Análisis de dependencias de Rust
<a name="w2aac37c25c19"></a>


| Lenguaje de programación | Administrador de paquetes | Artefactos compatibles | Compatibilidad con la cadena de herramientas | Dependencias de desarrollo | Dependencias transitivas | Indicador privado | De forma recursiva | 
| --- | --- | --- | --- | --- | --- | --- | --- | 
| Rust | Cargo.toml | `Cargo.toml`<br />`Cargo.lock`<br /> `Rust binary (built with cargo-auditable)` | N/A<br />N/A<br />Sí | N/A<br />N/A<br />N/A | N/A<br />Sí<br />N/A | N/A<br />N/A<br />N/A | Sí<br />Sí<br />Sí | 

### Cargo.toml
<a name="w2aac37c25c19b5"></a>

 El archivo `Cargo.toml` es el archivo de manifiesto de los proyectos de Rust. 

**Características principales de**
+  Analiza y extrae el archivo `Cargo.toml` para identificar el nombre y la versión del paquete del proyecto. 

**Archivo `Cargo.toml` de ejemplo**  
 A continuación se presenta un ejemplo de un archivo `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**  
 Este archivo produce una salida que contiene la URL de un paquete. Esta URL se puede utilizar para especificar información sobre los paquetes de software al generar una lista de materiales de software y se puede incluir en la [ScanSbom](https://docs.aws.amazon.com/inspector/v2/APIReference/API_inspector-scan_ScanSbom.html)API. Para obtener más información, consulte la [URL del paquete en el GitHub sitio web](https://github.com/package-url/purl-spec). 

### Cargo.lock
<a name="w2aac37c25c19b7"></a>

 El archivo `Cargo.lock` bloquea las versiones dependientes para garantizar que se usen las mismas versiones siempre que se cree un proyecto. 

**Características principales de**
+  Analiza el archivo `Cargo.lock` para identificar todas las dependencias y las versiones de las dependencias. 

**Archivo `Cargo.lock` de ejemplo**  
 A continuación se presenta un ejemplo de un archivo `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**  
 Este archivo produce una salida que contiene la URL de un paquete. Esta URL se puede utilizar para especificar información sobre los paquetes de software al generar una lista de materiales de software y se puede incluir en la [ScanSbom](https://docs.aws.amazon.com/inspector/v2/APIReference/API_inspector-scan_ScanSbom.html)API. Para obtener más información, consulte la [URL del paquete en el GitHub sitio web](https://github.com/package-url/purl-spec). 

### Binarios de Rust con carga auditable
<a name="w2aac37c25c19b9"></a>

 El generador de SBOM de Amazon Inspector recopila las dependencias de los binarios de Rust creados con la biblioteca de `cargo-auditable`. Esto proporciona información de dependencia adicional al permitir la extracción de dependencias de los binarios compilados. 

**Características principales de**
+  Extrae la información de dependencia directamente de los binarios de Rust creados con la biblioteca de `cargo-auditable` 
+  Recupera los metadatos y la información de versión de las dependencias incluidas en los binarios 

**nota**  
 Este archivo produce una salida que contiene la URL de un paquete. Esta URL se puede utilizar para especificar información sobre los paquetes de software al generar una lista de materiales de software y se puede incluir en la [ScanSbom](https://docs.aws.amazon.com/inspector/v2/APIReference/API_inspector-scan_ScanSbom.html)API. Para obtener más información, consulte la [URL del paquete en el GitHub sitio web](https://github.com/package-url/purl-spec). 

## Escaneo rápido de dependencias
<a name="w2aac37c25c21"></a>


| Lenguaje de programación | Administrador de paquetes | Artefactos compatibles | Compatibilidad con la cadena de herramientas | Dependencias de desarrollo | Dependencias transitivas | Indicador privado | De forma recursiva | 
| --- | --- | --- | --- | --- | --- | --- | --- | 
| Swift | Swift Package Manager | `Package.resolved (v1, v2, and v3)` | N/A | N/A | N/A | N/A | Sí | 

### Paquete. Resuelto
<a name="w2aac37c25c21b5"></a>

 SwiftPackage Manager genera el `Package.resolved` archivo para bloquear las versiones exactas de las dependencias de un Swift proyecto. El generador SBOM de Amazon Inspector analiza este archivo para recopilar los nombres de las dependencias, las versiones y la información del repositorio fuente. Se admiten las versiones de esquema 1, 2 y 3 del `Package.resolved` formato. 

**nota**  
 El generador SBOM de Amazon Inspector no genera el `Package.resolved` archivo. Si su proyecto aún no contiene un `Package.resolved` archivo, debe generarlo antes de escanearlo ejecutándolo `swift package resolve` en el directorio del proyecto. 

**Artefactos compatibles**
+  `Package.resolved`(versión 1 del esquema) 
+  `Package.resolved`(esquema versión 2) 
+  `Package.resolved`(esquema versión 3) 

**Características principales de**
+  Extrae los nombres de las dependencias y las versiones bloqueadas de los paquetes anclados 
+  Deriva el espacio de nombres del paquete de la URL del repositorio de origen (por ejemplo,) `github.com/Alamofire` 
+  Omite los pines exclusivos de las sucursales que no tienen una versión resuelta 
+  Filtra el control de código fuente local y las dependencias del sistema de archivos 
+  Excluye `Package.resolved` los archivos dentro de `.build/` los directorios para evitar recopilar dependencias de la caché de compilación de Swift Package Manager 

**nota**  
 El `Package.resolved` archivo es independiente de la plataforma. El generador SBOM de Amazon Inspector descubre este archivo de forma recursiva enLinux, ymacOS. Windows 

**`Package.resolved`Archivo de ejemplo (v2)**  
 El siguiente es un ejemplo de un `Package.resolved` archivo de la versión 2. 

```
{
  "pins" : [
    {
      "identity" : "alamofire",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/Alamofire/Alamofire.git",
      "state" : {
        "revision" : "a1b2c3...",
        "version" : "5.8.1"
      }
    },
    {
      "identity" : "swift-argument-parser",
      "kind" : "remoteSourceControl",
      "location" : "https://github.com/apple/swift-argument-parser.git",
      "state" : {
        "revision" : "d4e5f6...",
        "version" : "1.3.0"
      }
    }
  ],
  "version" : 2
}
```

**`Package.resolved`Archivo de ejemplo (v1)**  
 El siguiente es un ejemplo de un `Package.resolved` archivo de la versión 1. 

```
{
  "object": {
    "pins": [
      {
        "package": "Alamofire",
        "repositoryURL": "https://github.com/Alamofire/Alamofire.git",
        "state": {
          "branch": null,
          "revision": "a1b2c3...",
          "version": "5.8.1"
        }
      }
    ]
  },
  "version": 1
}
```

**PURL de ejemplo**  
 A continuación se muestra un ejemplo de URL de paquete para una dependencia de Swift Package Manager. 

```
pkg:swift/github.com/Alamofire/Alamofire@5.8.1
```

**nota**  
 Cada uno de estos archivos produce una salida que contiene la URL de un paquete. Esta URL se puede usar para especificar información sobre los paquetes de software al generar una lista de materiales de software y se puede incluir en la [ScanSbom](https://docs.aws.amazon.com/inspector/v2/APIReference/API_inspector-scan_ScanSbom.html)API. Para obtener más información, consulte la [URL del paquete en el GitHub sitio web](https://github.com/package-url/purl-spec). 

## Artefactos no compatibles
<a name="w2aac37c25c23"></a>

 En esta sección se describen los artefactos no compatibles. 

### Java
<a name="w2aac37c25c23b5"></a>

 El generador de SBOM de Amazon Inspector solo admite la detección de vulnerabilidades para las dependencias procedentes del [repositorio de Maven principal](https://repo1.maven.org/maven2). Los repositorios privados o personalizados de Maven, como Red Hat Maven y Jenkins, no son compatibles. Para una detección de vulnerabilidades precisa, asegúrate de que las dependencias de Java se extraigan del repositorio de Maven principal. Las dependencias de otros repositorios no estarán cubiertas en los análisis de vulnerabilidades. 

### JavaScript
<a name="w2aac37c25c23b7"></a>

**Paquetes de esbuild**  
 Para los paquetes de esbuild minificados, el generador de SBOM de Amazon Inspector no admite el análisis de dependencias para los proyectos con esbuild. Los mapas de origen generados por esbuild no incluyen los metadatos suficientes (nombres y versiones de las dependencias) necesarios para una generación de Sbomgen precisa. Para obtener resultados fiables, analice los archivos originales del proyecto, como `node_modules/directory` y `package-lock.json`, antes del proceso de agrupación. 

**package.json**  
 El generador de SBOM de Amazon Inspector no admite el análisis del archivo package.json por raíz para obtener información sobre dependencias. Este archivo solo especifica los nombres de los paquetes y los rangos de versiones, pero no incluye las versiones de los paquetes completamente resueltas. Para obtener resultados de análisis precisos, utilice `package.json` u otros archivos bloqueados, como `yarn.lock` y `pnpm.lock`, que incluyan versiones resueltas. 

### DotNet
<a name="w2aac37c25c23b9"></a>

 Cuando se utilizan versiones flotantes o rangos de versiones en `PackageReference`, resulta más difícil determinar la versión exacta del paquete utilizada en un proyecto sin realizar la resolución del paquete. Las versiones flotantes y los rangos de versiones permiten a los desarrolladores especificar un rango de versiones de paquetes aceptables en lugar de una versión fija. 

### Binarios de Go
<a name="w2aac37c25c23c11"></a>

 El generador de SBOM de Amazon Inspector no analiza los binarios de Go creados con indicadores de compilación configurados para excluir el ID de compilación. Estos indicadores de compilación impiden que Amazon Inspector SBOM Generator asigne con precisión el binario a su fuente original. No se admiten binarios de Go poco claros debido a la incapacidad de extraer la información del paquete. Para analizar las dependencias de forma precisa, asegúrese de que los binarios de Go estén creados con la configuración predeterminada, incluido el ID de compilación. 

### Binarios de Rust
<a name="w2aac37c25c23c13"></a>

 El generador de SBOM de Amazon Inspector solo analiza binarios de Rust si los binarios se crean con [la biblioteca de carga auditable](https://github.com/rust-secure-code/cargo-auditable). Los binarios de Rust que no utilizan esta biblioteca carecen de los metadatos necesarios para una extracción precisa de las dependencias. El generador de SBOM de Amazon Inspector extrae la versión compilada de la cadena de herramientas de Rust a partir de Rust 1.7.3, pero solo para los binarios de un entorno de Linux. Para un análisis completo, cree binarios de Rust en Linux con carga auditable. 

**nota**  
 No se admite la detección de vulnerabilidades en la propia cadena de herramientas de Rust, incluso si se ha extraído la versión de la cadena de herramientas. 