Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Sammlung von Abhängigkeiten zu Programmiersprachen
Der Amazon Inspector SBOM Generator unterstützt verschiedene Programmiersprachen und Frameworks, die eine robuste und detaillierte Sammlung von Abhängigkeiten bilden. Die Generierung einer SBOM hilft Ihnen dabei, die Zusammensetzung Ihrer Software zu verstehen, sodass Sie Schwachstellen identifizieren und die Einhaltung der Sicherheitsstandards sicherstellen können. Der Amazon Inspector SBOM Generator unterstützt die folgenden Programmiersprachen und Dateiformate.
Gehen Sie zum Scannen von Abhängigkeiten
Programmiersprache | Paketmanager | Unterstützte Artefakte | Toolketten-Unterstützung | Abhängigkeiten bei der Entwicklung | Transitive Abhängigkeiten | Private Flagge | Rekursiv |
---|---|---|---|---|---|---|---|
Go |
Go |
|
N/A N/A Ja – |
– – – – |
– – – – |
– – – N/A |
Ja Ja Ja Nein |
go.mod/go.sum
Verwenden Sie go.sum
Dateien, um Abhängigkeiten in Projekten zu definieren go.mod
und zu sperren. Go Der Amazon Inspector SBOM Generator verwaltet diese Dateien je nach Version der Go Toolchain unterschiedlich.
Schlüsselfeatures
-
Sammelt Abhängigkeiten von
go.mod
(wenn die Go Toolketten-Version 1.17 oder höher ist) -
Sammelt Abhängigkeiten von
go.sum
(wenn die Go Toolketten-Version 1.17 oder niedriger ist) -
Analysiert
go.mod
, um alle deklarierten Abhängigkeiten und Abhängigkeitsversionen zu identifizieren
go.mod
-Beispieldatei
Das Folgende ist ein Beispiel für eine go.mod
Datei.
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 )
go.sum
-Beispieldatei
Das Folgende ist ein Beispiel für eine go.sum
Datei.
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=
Anmerkung
Jede dieser Dateien erzeugt eine Ausgabe, die eine Paket-URL enthält. Diese URL kann verwendet werden, um Informationen zu Softwarepaketen bei der Generierung einer Softwareliste anzugeben, und sie kann in die ScanSbomAPI aufgenommen werden. Weitere Informationen finden Sie unter package-url
Gehe zu Binärdateien
Der Amazon Inspector SBOM Generator extrahiert Abhängigkeiten aus kompilierten Go Binärdateien, um sicherzustellen, dass der verwendete Code verwendet wird.
Anmerkung
Der Amazon Inspector SBOM Generator unterstützt das Erfassen und Auswerten von Toolchainversionen aus Go Binärdateien, die mit dem offiziellen Compiler erstellt wurden. Go Weitere Informationen finden Sie auf der Website unter Herunterladen und Installieren
Schlüsselfeatures
-
Extrahiert Abhängigkeitsinformationen direkt aus Binärdateien Go
-
Sammelt in der Binärdatei eingebettete Abhängigkeiten
-
Erkennt und extrahiert die Version der Go Toolchain, die zum Kompilieren der Binärdatei verwendet wurde.
GOMODCACHE
Der Amazon Inspector SBOM Generator scannt den Go Modul-Cache, um Informationen über installierte Abhängigkeiten zu sammeln. In diesem Cache werden heruntergeladene Module gespeichert, um sicherzustellen, dass dieselben Versionen in verschiedenen Builds verwendet werden.
Schlüsselfeatures
-
Durchsucht das
GOMODCACHE
Verzeichnis, um zwischengespeicherte Module zu identifizieren -
Extrahiert detaillierte Metadaten, einschließlich Modulnamen, Versionen und Quelle URLs
Beispiel für eine Struktur
Das Folgende ist ein Beispiel für die GOMODCACHE
Struktur.
~/go/pkg/mod/ ├── github.com/gin-gonic/gin@v1.7.2 ├── golang.org/x/crypto@v0.0.0-20210616213533-5cf6c0f8e123
Anmerkung
Diese Struktur erzeugt eine Ausgabe, die eine Paket-URL enthält. Diese URL kann verwendet werden, um Informationen zu Softwarepaketen bei der Generierung einer Softwareliste anzugeben, und sie kann in die ScanSbomAPI aufgenommen werden. Weitere Informationen finden Sie unter package-url
Scannen von Java-Abhängigkeiten
Programmiersprache | Paketmanager | Unterstützte Artefakte | Toolketten-Unterstützung | Abhängigkeiten bei der Entwicklung | Transitive Abhängigkeiten | Private Flagge | Rekursiv |
---|---|---|---|---|---|---|---|
Java |
Maven |
Kompilierte Java Anwendungen (.jar/.war/.ear)
|
N/A – |
– N/A |
Ja Ja |
– N/A |
Ja Ja |
Anmerkung
Unsere Funktion zur Bewertung von Sicherheitslücken unterstützt nur das Maven Central-Repository. Repositorys von Drittanbietern, wie z. B.JBoss Enterprise Maven Repository, werden derzeit nicht unterstützt.
Der Amazon Inspector SBOM Generator führt Java Abhängigkeitsscans durch, indem er kompilierte Java Anwendungen und pom.xml
Dateien analysiert. Beim Scannen kompilierter Anwendungen generiert der Scanner SHA-1-Hashes zur Integritätsprüfung, extrahiert eingebettete pom.properties
Dateien und analysiert verschachtelte Dateien. pom.xml
SHA-1-Hash-Sammlung (für kompilierte JAR-, .WAR-, .EAR-Dateien)
Der Amazon Inspector SBOM Generator versucht, SHA-1-Hashes für alle.ear
,, und .war
Dateien in einem Projekt zu sammeln.jar
, um die Integrität und Rückverfolgbarkeit der kompilierten Artefakte zu gewährleisten. Java
Schlüsselfeatures
-
Generiert SHA—1-Hashes für alle kompilierten Artefakte Java
Beispiel für ein Artefakt
Das Folgende ist ein Beispiel für ein SHA-1-Artefakt.
{ "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" } ] }
Anmerkung
Dieses Artefakt erzeugt eine Ausgabe, die eine Paket-URL enthält. Diese URL kann verwendet werden, um Informationen zu Softwarepaketen bei der Generierung einer Softwareliste anzugeben, und sie kann in die ScanSbomAPI aufgenommen werden. Weitere Informationen finden Sie unter package-url
pom.properties
Die pom.properties
Datei wird in Maven Projekten verwendet, um Projektmetadaten, einschließlich Paketnamen und Paketversionen, zu speichern. Der Amazon Inspector SBOM Generator analysiert diese Datei, um Projektinformationen zu sammeln.
Schlüsselfeatures
-
Analysiert und extrahiert Paketartefakte, Paketgruppen und Paketversionen
pom.properties
-Beispieldatei
Im Folgenden wird ein Beispiel für eine pom.properties
-Datei dargestellt.
#Generated by Maven #Tue Mar 16 15:44:02 UTC 2021 version=1.6.0 groupId=net.datafaker artifactId=datafaker
Anmerkung
Diese Datei erzeugt eine Ausgabe, die eine Paket-URL enthält. Diese URL kann verwendet werden, um Informationen zu Softwarepaketen bei der Generierung einer Softwareliste anzugeben. Sie kann in die ScanSbomAPI aufgenommen werden. Weitere Informationen finden Sie unter package-url
Ohne verschachteltes Parsing pom.xml
Wenn Sie das pom.xml
Parsen beim Scannen kompilierter Java Anwendungen ausschließen möchten, verwenden Sie das Argument. --skip-nested-pomxml
pom.xml
Die pom.xml
Datei ist die zentrale Konfigurationsdatei für Maven Projekte. Sie enthält Informationen über Projekte und Projektabhängigkeiten. Der Amazon Inspector SBOM Generator analysiert pom.xml Dateien, um Abhängigkeiten zu erfassen. Dabei werden eigenständige Dateien in Repositorys und Dateien in kompilierten Dateien gescannt. .jar
Schlüsselfeatures
-
Analysiert und extrahiert Paketartefakte, Paketgruppen und Paketversionen aus Dateien.
pom.xml
Unterstützte Maven Bereiche und Tags
Abhängigkeiten werden in den folgenden Maven Bereichen erfasst:
-
compile
-
bereitgestellt
-
runtime
-
Test
-
system
-
einführen
Abhängigkeiten werden mit dem folgenden Maven Tag gesammelt:<optional>true</optional>
.
pom.xml
Beispieldatei mit einem Bereich
Das Folgende ist ein Beispiel für eine pom.xml
Datei mit einem Bereich.
<dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> </version>6.0.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.28</version> <scope>runtime</scope> </dependency>
pom.xml
Beispieldatei ohne Gültigkeitsbereich
Im Folgenden finden Sie ein Beispiel für eine pom.xml
Datei ohne Bereich.
<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>
Anmerkung
Jede dieser Dateien erzeugt eine Ausgabe, die eine Paket-URL enthält. Diese URL kann verwendet werden, um Informationen zu Softwarepaketen bei der Generierung einer Softwareliste anzugeben, und sie kann in die ScanSbomAPI aufgenommen werden. Weitere Informationen finden Sie unter package-url
JavaScript Scannen von Abhängigkeiten
Programmiersprache | Paketmanager | Unterstützte Artefakte | Toolketten-Unterstützung | Abhängigkeiten bei der Entwicklung | Transitive Abhängigkeiten | Private Flagge | Rekursiv |
---|---|---|---|---|---|---|---|
Javascript |
|
|
N/A – – – |
N/A Ja Ja Ja |
Ja – – N/A |
Ja – – N/A |
Ja Nein Nein Nein |
package.json
Die package.json
Datei ist eine Kernkomponente von Projekten. Node.js Sie enthält Metadaten zu installierten Paketen. Der Amazon Inspector SBOM Generator scannt diese Datei, um Paketnamen und Paketversionen zu identifizieren.
Schlüsselfeatures
-
Analysiert die JSON-Dateistruktur, um Paketnamen und Versionen zu extrahieren
-
Identifiziert private Pakete mit privaten Werten
package.json
-Beispieldatei
Im Folgenden wird ein Beispiel für eine package.json
-Datei dargestellt.
{ "name": "arrify", "private": true, "version": "2.0.1", "description": "Convert a value to an array", "license": "MIT", "repository": "sindresorhus/arrify" }
Anmerkung
Diese Datei erzeugt eine Ausgabe, die eine Paket-URL enthält. Diese URL kann verwendet werden, um Informationen zu Softwarepaketen bei der Generierung einer Softwareliste anzugeben. Sie kann in die ScanSbomAPI aufgenommen werden. Weitere Informationen finden Sie unter package-url
package-lock.json
Die package-lock.json
Datei wird automatisch von npm generiert, um genaue Versionen der für ein Projekt installierten Abhängigkeiten zu sperren. Es gewährleistet die Konsistenz in Umgebungen, indem exakte Versionen aller Abhängigkeiten und ihrer Unterabhängigkeiten gespeichert werden. Diese Datei kann zwischen regulären Abhängigkeiten und Entwicklungsabhängigkeiten unterscheiden.
Schlüsselfeatures
-
Analysiert die JSON-Dateistruktur, um Paketnamen und Paketversionen zu extrahieren
-
Unterstützt die Erkennung von Abhängigkeiten von Entwicklern
package-lock.json
-Beispieldatei
Im Folgenden wird ein Beispiel für eine package-lock.json
-Datei dargestellt.
"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=" }
Anmerkung
Diese Datei erzeugt eine Ausgabe, die eine Paket-URL enthält. Diese URL kann verwendet werden, um Informationen zu Softwarepaketen bei der Generierung einer Softwareliste anzugeben. Sie kann in die ScanSbomAPI aufgenommen werden. Weitere Informationen finden Sie unter package-url
npm-shrinkwrap.json
npmgeneriert package-lock.json
automatisch npm-shrinkwrap.json
Dateien, um exakte Versionen der für ein Projekt installierten Abhängigkeiten zu sperren. Dies garantiert Konsistenz in Umgebungen, indem exakte Versionen aller Abhängigkeiten und Unterabhängigkeiten gespeichert werden. Die Dateien unterscheiden zwischen regulären Abhängigkeiten und Entwicklungsabhängigkeiten.
Schlüsselfeatures
-
Analysieren Sie die
package-lock
Versionen 1, 2 und 3 der JSON Dateistruktur, um den Paketnamen und die Version zu extrahieren -
Die Erkennung von Abhängigkeiten zwischen Entwicklern wird unterstützt (
package-lock.json
erfasst Produktions- und Entwicklungsabhängigkeiten, sodass Tools erkennen können, welche Pakete in Entwicklungsumgebungen verwendet werden) -
Die
npm-shrinkwrap.json
Datei hat Vorrang vor derpackage-lock.json
Datei
Beispiel
Im Folgenden wird ein Beispiel für eine package-lock.json
-Datei dargestellt.
"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
Die pnpm-lock.yaml
Datei wird von pnpm generiert, um die installierten Abhängigkeitsversionen aufzuzeichnen. Außerdem werden Entwicklungsabhängigkeiten separat verfolgt.
Schlüsselfeatures
-
Analysiert die YAML-Dateistruktur, um Paketnamen und Versionen zu extrahieren
-
Unterstützt die Erkennung von Abhängigkeiten von Entwicklern
Beispiel
Im Folgenden wird ein Beispiel für eine pnpm-lock.yaml
-Datei dargestellt.
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
Anmerkung
Diese Datei erzeugt eine Ausgabe, die eine Paket-URL enthält. Diese URL kann verwendet werden, um Informationen zu Softwarepaketen bei der Generierung einer Softwareliste anzugeben. Sie kann in die ScanSbomAPI aufgenommen werden. Weitere Informationen finden Sie unter package-url
yarn.lock
Der Amazon Inspector SBOM Generator versucht, SHA-1-Hashes für.ear
, und .war
Dateien in einem Projekt zu sammeln.jar
, um die Integrität und Rückverfolgbarkeit kompilierter Artefakte zu gewährleisten. Java
Schlüsselfeatures
-
Generiert SHA—1-Hashes für alle kompilierten Artefakte Java
Beispiel für ein SHA-1-Artefakt
Im Folgenden finden Sie ein Beispiel für ein SHA-1-Artefakt.
"@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
Anmerkung
Dieses Artefakt erzeugt eine Ausgabe, die eine Paket-URL enthält. Diese URL kann verwendet werden, um Informationen zu Softwarepaketen bei der Generierung einer Softwareliste anzugeben, und sie kann in die ScanSbomAPI aufgenommen werden. Weitere Informationen finden Sie unter package-url
.NET-Abhängigkeiten scannen
Programmiersprache | Paketmanager | Unterstützte Artefakte | Toolketten-Unterstützung | Abhängigkeiten bei der Entwicklung | Transitive Abhängigkeiten | Private Flagge | Rekursiv |
---|---|---|---|---|---|---|---|
.NET |
|
|
N/A – – – |
– – – – |
– N/A Ja – |
– – – N/A |
Ja Ja Ja Ja |
Packages.config
Die Packages.config
Datei ist eine XML-Datei, die von einer älteren Version von Nuget zur Verwaltung von Projektabhängigkeiten verwendet wird. Sie listet alle Pakete auf, auf die das Projekt verweist, einschließlich bestimmter Versionen.
Schlüsselfeatures
-
Analysiert die XML-Struktur, um das Paket IDs und die Versionen zu extrahieren
Beispiel
Im Folgenden wird ein Beispiel für eine Packages.config
-Datei dargestellt.
<?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>
Anmerkung
Diese Datei erzeugt eine Ausgabe, die eine Paket-URL enthält. Diese URL kann verwendet werden, um Informationen zu Softwarepaketen bei der Generierung einer Softwareliste anzugeben. Sie kann in die ScanSbomAPI aufgenommen werden. Weitere Informationen finden Sie unter package-url
*.deps.json
Die *.deps.json
Datei wird von .NET Core Projekten generiert und enthält detaillierte Informationen zu allen Abhängigkeiten, einschließlich Pfaden, Versionen und Laufzeitabhängigkeiten. Diese Datei stellt sicher, dass die Runtime über die notwendigen Informationen verfügt, um die richtigen Versionen von Abhängigkeiten zu laden.
Schlüsselfeatures
-
Analysiert die JSON-Struktur nach umfassenden Abhängigkeitsdetails
-
Extrahiert Paketnamen und Versionen in eine
libraries
Liste.
.deps.json
-Beispieldatei
Im Folgenden wird ein Beispiel für eine .deps.json
-Datei dargestellt.
{ "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" }, }
Anmerkung
Diese Datei erzeugt eine Ausgabe, die eine Paket-URL enthält. Diese URL kann verwendet werden, um Informationen zu Softwarepaketen bei der Generierung einer Softwareliste anzugeben. Sie kann in die ScanSbomAPI aufgenommen werden. Weitere Informationen finden Sie unter package-url
packages.lock.json
Die packages.lock.json
Datei wird von neueren Versionen von verwendetNuget, um genaue Versionen von Abhängigkeiten für ein .NET Projekt zu sperren, um sicherzustellen, dass dieselben Versionen in verschiedenen Umgebungen konsistent verwendet werden.
Schlüsselfeatures
-
Analysiert die JSON-Struktur, um gesperrte Abhängigkeiten aufzulisten
-
Unterstützt sowohl direkte als auch transitive Abhängigkeiten
-
Extrahiert den Paketnamen und die aufgelösten Versionen
packages.lock.json
-Beispieldatei
Im Folgenden wird ein Beispiel für eine packages.lock.json
-Datei dargestellt.
{ "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==" } } } }
Anmerkung
Diese Datei erzeugt eine Ausgabe, die eine Paket-URL enthält. Diese URL kann verwendet werden, um Informationen zu Softwarepaketen bei der Generierung einer Softwareliste anzugeben. Sie kann in die ScanSbomAPI aufgenommen werden. Weitere Informationen finden Sie unter package-url
.csproj
Die .csproj
Datei ist in XML geschrieben und die Projektdatei für Projekte. .NET Sie enthält Verweise auf Nuget Pakete, Projekteigenschaften und Build-Konfigurationen.
Schlüsselfeatures
-
Analysiert die XML-Struktur, um Paketverweise zu extrahieren
.csproj
-Beispieldatei
Im Folgenden wird ein Beispiel für eine .csproj
-Datei dargestellt.
<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>
.csproj
-Beispieldatei
Im Folgenden wird ein Beispiel für eine .csproj
-Datei dargestellt.
<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)" />
Anmerkung
Jede dieser Dateien erzeugt eine Ausgabe, die eine Paket-URL enthält. Diese URL kann verwendet werden, um Informationen zu Softwarepaketen bei der Generierung einer Softwareliste anzugeben, und sie kann in die ScanSbomAPI aufgenommen werden. Weitere Informationen finden Sie unter package-url
Scannen von PHP-Abhängigkeiten
Programmiersprache | Paketmanager | Unterstützte Artefakte | Toolketten-Unterstützung | Abhängigkeiten bei der Entwicklung | Transitive Abhängigkeiten | Private Flagge | Rekursiv |
---|---|---|---|---|---|---|---|
PHP |
Composer |
|
N/A – |
– N/A |
Ja Ja |
– N/A |
Ja Ja |
composer.lock
Die composer.lock
Datei wird automatisch generiert, wenn die Befehle composer install oder composer update ausgeführt werden. Diese Datei garantiert, dass in jeder Umgebung dieselben Versionen von Abhängigkeiten installiert sind. Dies sorgt für einen konsistenten und zuverlässigen Erstellungsprozess.
Schlüsselfeatures
-
Analysiert das JSON-Format für strukturierte Daten
-
Extrahiert Namen und Versionen von Abhängigkeiten
composer.lock
-Beispieldatei
Im Folgenden wird ein Beispiel für eine composer.lock
-Datei dargestellt.
{ "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 }
Anmerkung
Dadurch wird eine Ausgabe erzeugt, die eine Paket-URL enthält. Diese URL kann verwendet werden, um Informationen zu Softwarepaketen bei der Generierung einer Softwareliste anzugeben, und sie kann in die ScanSbomAPI aufgenommen werden. Weitere Informationen finden Sie unter package-url
/.json vendor/composer/installed
Die /vendor/composer/installed.json
Datei befindet sich im vendor/composer
Verzeichnis und bietet eine umfassende Liste aller installierten Pakete und Paketversionen.
Schlüsselfeatures
-
Analysiert das JSON-Format für strukturierte Daten
-
Extrahiert die Namen und die Version der Abhängigkeiten
/vendor/composer/installed.json
-Beispieldatei
Im Folgenden wird ein Beispiel für eine /vendor/composer/installed.json
-Datei dargestellt.
{ "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 }
Anmerkung
Diese Datei erzeugt eine Ausgabe, die eine Paket-URL enthält. Diese URL kann verwendet werden, um Informationen zu Softwarepaketen bei der Generierung einer Softwareliste anzugeben. Sie kann in die ScanSbomAPI aufgenommen werden. Weitere Informationen finden Sie unter package-url
Scannen von Python-Abhängigkeiten
Programmiersprache | Paketmanager | Unterstützte Artefakte | Toolketten-Unterstützung | Abhängigkeiten bei der Entwicklung | Transitive Abhängigkeiten | Private Flagge | Rekursiv |
---|---|---|---|---|---|---|---|
Python |
|
|
N/A – – – – |
– – – – – |
– – – – – |
– – – – N/A |
Ja Ja Ja Ja Ja |
requirements.txt
Die requirements.txt
Datei ist ein in Python Projekten weit verbreitetes Format, um Projektabhängigkeiten zu spezifizieren. Jede Zeile in dieser Datei enthält ein Paket mit seinen Versionseinschränkungen. Der Amazon Inspector SBOM Generator analysiert diese Datei, um Abhängigkeiten genau zu identifizieren und zu katalogisieren.
Schlüsselfeatures
-
Unterstützt Versionsbezeichner (== und =)
-
Unterstützt Kommentare und komplexe Abhängigkeitszeilen
Anmerkung
Die Versionsbezeichner <= und => werden nicht unterstützt.
requirements.txt
-Beispieldatei
Im Folgenden wird ein Beispiel für eine requirements.txt
-Datei dargestellt.
flask==1.1.2 requests==2.24.0 numpy==1.18.5 foo~=1.2.0 # Comment about a dependency scipy. # invalid
Anmerkung
Diese Datei erzeugt eine Ausgabe, die eine Paket-URL enthält. Diese URL kann verwendet werden, um Informationen zu Softwarepaketen bei der Generierung einer Softwareliste anzugeben. Sie kann in die ScanSbomAPI aufgenommen werden. Weitere Informationen finden Sie unter package-url
Pipfile.lock
Pipenvist ein Tool, das das Beste aus allen Verpackungswelten bietet (gebündelt, gepinnt und unverheftet). Es Pipfile.lock
sperrt genaue Versionen von Abhängigkeiten, um deterministische Builds zu ermöglichen. Der Amazon Inspector SBOM Generator liest diese Datei, um Abhängigkeiten und ihre aufgelösten Versionen aufzulisten.
Schlüsselfeatures
-
Analysiert das JSON-Format auf die Auflösung von Abhängigkeiten
-
Unterstützt Standard- und Entwicklungsabhängigkeiten
Pipfile.lock
-Beispieldatei
Im Folgenden wird ein Beispiel für eine Pipfile.lock
-Datei dargestellt.
{ "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" } } }
Anmerkung
Diese Datei erzeugt eine Ausgabe, die eine Paket-URL enthält. Diese URL kann verwendet werden, um Informationen zu Softwarepaketen bei der Generierung einer Softwareliste anzugeben. Sie kann in die ScanSbomAPI aufgenommen werden. Weitere Informationen finden Sie unter package-url
Poetry.lock
Poetryist ein Tool zur Verwaltung und Paketierung von Abhängigkeiten für Python. Die Poetry.lock
Datei sperrt genaue Versionen von Abhängigkeiten, um konsistente Umgebungen zu ermöglichen. Der Amazon Inspector SBOM Generator extrahiert detaillierte Abhängigkeitsinformationen aus dieser Datei.
Schlüsselfeatures
-
Analysiert das TOML-Format für strukturierte Daten
-
Extrahiert Namen und Versionen von Abhängigkeiten
Poetry.lock
-Beispieldatei
Im Folgenden wird ein Beispiel für eine Poetry.lock
-Datei dargestellt.
[[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"
Anmerkung
Diese Datei erzeugt eine Ausgabe, die eine Paket-URL enthält. Diese URL kann verwendet werden, um Informationen zu Softwarepaketen bei der Generierung einer Softwareliste anzugeben. Sie kann in die ScanSbomAPI aufgenommen werden. Weitere Informationen finden Sie unter package-url
Eier/Rad
Für global installierte Python-Pakete unterstützt der Amazon Inspector SBOM Generator das Parsen von Metadatendateien in den .egg-info/PKG-INFO
Verzeichnissen und. .dist-info/METADATA
Diese Dateien enthalten detaillierte Metadaten zu installierten Paketen.
Schlüsselfeatures
-
Extrahiert den Paketnamen und die Version
-
Unterstützt sowohl Eier- als auch Radformate
PKG-INFO/METADATA
-Beispieldatei
Im Folgenden wird ein Beispiel für eine PKG-INFO/METADATA
-Datei dargestellt.
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/
Anmerkung
Diese Datei erzeugt eine Ausgabe, die eine Paket-URL enthält. Diese URL kann verwendet werden, um Informationen zu Softwarepaketen bei der Generierung einer Softwareliste anzugeben. Sie kann in die ScanSbomAPI aufgenommen werden. Weitere Informationen finden Sie unter package-url
Scannen von Abhängigkeiten in Ruby
Programmiersprache | Paketmanager | Unterstützte Artefakte | Toolchaining-Unterstützung | Abhängigkeiten bei der Entwicklung | Transitive Abhängigkeiten | Private Flagge | Rekursiv |
---|---|---|---|---|---|---|---|
Ruby |
Bundler |
|
N/A – – |
– – N/A |
Ja – – |
– – N/A |
Ja Ja Ja |
GemFile.lock
Die Gemfile.lock
Datei sperrt genaue Versionen aller Abhängigkeiten, um sicherzustellen, dass in jeder Umgebung dieselben Versionen verwendet werden.
Schlüsselfeatures
-
Analysiert die
Gemfile.lock
Datei, um Abhängigkeiten und Abhängigkeitsversionen zu identifizieren -
Extrahiert detaillierte Paketnamen und Paketversionen
Gemfile.lock
-Beispieldatei
Im Folgenden wird ein Beispiel für eine Gemfile.lock
-Datei dargestellt.
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)
Anmerkung
Diese Datei erzeugt eine Ausgabe, die eine Paket-URL enthält. Diese URL kann verwendet werden, um Informationen zu Softwarepaketen bei der Generierung einer Softwareliste anzugeben. Sie kann in die ScanSbomAPI aufgenommen werden. Weitere Informationen finden Sie unter package-url
.gemspec
Die .gemspec
Datei ist eine RubyGem Datei, die Metadaten zu einem Edelstein enthält. Der Amazon Inspector SBOM Generator analysiert diese Datei, um detaillierte Informationen über einen Edelstein zu sammeln.
Schlüsselfeatures
-
Analysiert und extrahiert den Edelsteinnamen und die Edelsteinversion
Anmerkung
Die Referenzspezifikation wird nicht unterstützt.
.gemspec
-Beispieldatei
Im Folgenden wird ein Beispiel für eine .gemspec
-Datei dargestellt.
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
Anmerkung
Diese Datei erzeugt eine Ausgabe, die eine Paket-URL enthält. Diese URL kann verwendet werden, um Informationen zu Softwarepaketen bei der Generierung einer Softwareliste anzugeben. Sie kann in die ScanSbomAPI aufgenommen werden. Weitere Informationen finden Sie unter package-url
Weltweit installierte Edelsteine
Der Amazon Inspector SBOM Generator unterstützt das Scannen global installierter Gems, die sich in Standardverzeichnissen wie /usr/local/lib/ruby/gems/<ruby_version>/gems/
Amazon EC2 /Amazon ECR und Lambda befinden. ruby/gems/<ruby_version>/gems/
Dadurch wird sichergestellt, dass alle global installierten Abhängigkeiten identifiziert und katalogisiert werden.
Schlüsselfeatures
-
Identifiziert und scannt alle global installierten Gems in Standardverzeichnissen
-
Extrahiert Metadaten und Versionsinformationen für jedes global installierte Gem
Beispiel für eine Verzeichnisstruktur
Das Folgende ist ein Beispiel für eine Verzeichnisstruktur.
. └── /usr/local/lib/ruby/3.5.0/gems/ ├── actrivesupport-6.1.4 ├── concurrent-ruby-1.1.9 └── i18n-1.8.10
Anmerkung
Diese Struktur erzeugt eine Ausgabe, die eine Paket-URL enthält. Diese URL kann verwendet werden, um Informationen zu Softwarepaketen bei der Generierung einer Softwareliste anzugeben, und sie kann in die ScanSbomAPI aufgenommen werden. Weitere Informationen finden Sie unter package-url
Scannen von Abhängigkeiten auf Rost
Programmiersprache | Paketmanager | Unterstützte Artefakte | Toolketten-Unterstützung | Abhängigkeiten bei der Entwicklung | Transitive Abhängigkeiten | Private Flagge | Rekursiv |
---|---|---|---|---|---|---|---|
Rust |
Cargo.toml |
|
N/A N/A Ja |
– – – |
N/A Ja – |
– – N/A |
Ja Ja Ja |
Fracht.toml
Die Cargo.toml
Datei ist die Manifestdatei für Projekte. Rust
Schlüsselfeatures
-
Analysiert und extrahiert die
Cargo.toml
Datei, um den Namen und die Version des Projektpakets zu identifizieren.
Cargo.toml
-Beispieldatei
Im Folgenden wird ein Beispiel für eine Cargo.toml
-Datei dargestellt.
[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"
Anmerkung
Diese Datei erzeugt eine Ausgabe, die eine Paket-URL enthält. Diese URL kann verwendet werden, um Informationen zu Softwarepaketen bei der Generierung einer Softwareliste anzugeben. Sie kann in die ScanSbomAPI aufgenommen werden. Weitere Informationen finden Sie unter package-url
Cargo.lock
Die Cargo.lock
Datei sperrt Abhängigkeitsversionen, um sicherzustellen, dass bei der Erstellung eines Projekts dieselben Versionen verwendet werden.
Schlüsselfeatures
-
Analysiert die
Cargo.lock
Datei, um alle Abhängigkeiten und Abhängigkeitsversionen zu identifizieren.
Cargo.lock
-Beispieldatei
Im Folgenden wird ein Beispiel für eine Cargo.lock
-Datei dargestellt.
# 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"
Anmerkung
Diese Datei erzeugt eine Ausgabe, die eine Paket-URL enthält. Diese URL kann verwendet werden, um Informationen zu Softwarepaketen bei der Generierung einer Softwareliste anzugeben. Sie kann in die ScanSbomAPI aufgenommen werden. Weitere Informationen finden Sie unter package-url
Rust-Binärdateien mit überprüfbarer Ladung
Der Amazon Inspector SBOM Generator sammelt Abhängigkeiten von Rust Binärdateien, die mit der Bibliothek erstellt wurden. cargo-auditable
Dadurch werden zusätzliche Abhängigkeitsinformationen bereitgestellt, indem die Extraktion von Abhängigkeiten aus kompilierten Binärdateien aktiviert wird.
Schlüsselfeatures
-
Extrahiert Abhängigkeitsinformationen direkt aus Rust Binärdateien, die mit der Bibliothek erstellt wurden
cargo-auditable
-
Ruft Metadaten und Versionsinformationen für Abhängigkeiten ab, die in den Binärdateien enthalten sind
Anmerkung
Diese Datei erzeugt eine Ausgabe, die eine Paket-URL enthält. Diese URL kann verwendet werden, um Informationen zu Softwarepaketen bei der Generierung einer Softwareliste anzugeben. Sie kann in die ScanSbomAPI aufgenommen werden. Weitere Informationen finden Sie unter package-url
Nicht unterstützte Artefakte
In diesem Abschnitt werden nicht unterstützte Artefakte beschrieben.
Java
Der Amazon Inspector SBOM Generator Generator unterstützt nur die Erkennung von Sicherheitslücken für Abhängigkeiten, die aus dem Maven Mainstream-Repository
JavaScript
Esbuild-Pakete
Bei esbuild minimierten Paketen unterstützt der Amazon Inspector SBOM Generator keinen Abhängigkeitsscan für Projekte mit. esbuild Quellzuordnungen, die von generiert wurdenesbuild, enthalten nicht genügend Metadaten (Namen und Versionen von Abhängigkeiten), die für eine genaue Generierung erforderlich sind. Sbomgen Um zuverlässige Ergebnisse zu erzielen, scannen Sie vor dem Bündelungsprozess die ursprünglichen Projektdateienpackage-lock.json
, z. B. die Dateien node_modules/directory
und.
package.json
Der Amazon Inspector SBOM Generator unterstützt das Scannen der package.json-Datei auf Stammebene nicht nach Abhängigkeitsinformationen. Diese Datei spezifiziert nur Paketnamen und Versionsbereiche, enthält jedoch keine vollständig aufgelösten Paketversionen. Verwenden Sie package.json
oder andere Sperrdateien, wie z. B. yarn.lock
und, die aufgelöste Versionen enthaltenpnpm.lock
, um genaue Scanergebnisse zu erzielen.
Punktnetz
Wenn Sie schwebende Versionen oder Versionsbereiche in verwendenPackageReference
, wird es schwieriger, die genaue Paketversion zu ermitteln, die in einem Projekt verwendet wird, ohne die Paketauflösung durchzuführen. Schwebende Versionen und Versionsbereiche ermöglichen es Entwicklern, anstelle einer festen Version eine Reihe akzeptabler Paketversionen anzugeben.
Gehen Sie zu Binärdateien
Der Amazon Inspector SBOM Generator scannt keine Go Binärdateien, die mit Build-Flags erstellt wurden, die so konfiguriert sind, dass sie die Build-ID ausschließen. Diese Build-Flags Bomerman verhindern, dass die Binärdatei ihrer ursprünglichen Quelle genau zugeordnet wird. Unklare Go Binärdateien werden nicht unterstützt, da Paketinformationen nicht extrahiert werden können. Stellen Sie sicher, dass Go Binärdateien mit Standardeinstellungen, einschließlich der Build-ID, erstellt wurden, um genaue Abhängigkeiten zu überprüfen.
Rust-Binärdateien
Der Amazon Inspector SBOM Generator scannt nur Binärdateien, wenn die Rust Binärdateien mit der Cargo-Auditable Library erstellt wurden.
Anmerkung
Die Erkennung von Sicherheitslücken für die Rust Toolchain selbst wird nicht unterstützt, selbst wenn die Version der Toolchain extrahiert wurde.