Koleksi ketergantungan bahasa pemrograman - Amazon Inspector

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Koleksi ketergantungan bahasa pemrograman

Amazon Inspector SBOM Generator mendukung berbagai bahasa dan kerangka kerja pemrograman, yang membentuk kumpulan dependensi yang kuat dan terperinci. Membuat SBOM membantu Anda memahami komposisi perangkat lunak Anda, sehingga Anda dapat mengidentifikasi kerentanan dan menjaga kepatuhan terhadap standar keamanan. Amazon Inspector SBOM Generator mendukung bahasa pemrograman berikut dan format file.

Pergi pemindaian ketergantungan

Bahasa pemrograman Manajer Package Artefak yang didukung Dukungan Toolchain Ketergantungan pengembangan Ketergantungan transitif Bendera pribadi Secara rekursif
Go Go

go.mod

go.sum

Go Binaries

GOMODCACHE

N/A

N/A

Ya

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

Ya

Ya

Ya

Tidak

go.mod/go.sum

Gunakan go.mod dan go.sum file untuk menentukan dan mengunci dependensi dalam Go proyek. Amazon Inspector SBOM Generator mengelola file-file ini secara berbeda berdasarkan versi toolchain. Go

Fitur utama
  • Mengumpulkan dependensi dari go.mod (jika versi Go toolchain adalah 1.17 atau lebih tinggi)

  • Mengumpulkan dependensi dari go.sum (jika versi Go toolchain 1.17 atau lebih rendah)

  • Parses go.mod untuk mengidentifikasi semua dependensi dan versi dependensi yang dideklarasikan

Contoh file go.mod

Berikut ini adalah contoh go.mod file.

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 )
Contoh file go.sum

Berikut ini adalah contoh go.sum file.

github.com/gin-gonic/gin v1.7.2 h1:VZ7DdRl0sghbA6lVGSkX+UXO2+J0aH7RbsNugG+FA8Q= github.com/gin-gonic/gin v1.7.2/go.mod h1:ILZ1Ngh2f1pL1ASUj7gGk8lGFeNC8cRTaN2ZhsBNbXU= golang.org/x/crypto v0.0.0-20210616213533-5cf6c0f8e123 h1:b6rCu+qHze+BUsmC3CZzH8aNu8LzPZTVsNTo64OypSc= golang.org/x/crypto v0.0.0-20210616213533-5cf6c0f8e123/go.mod h1:K5Dkpb0Q4ewZW/EzWlQphgJcUMBCzoWrLfDOVzpTGVQ=
catatan

Masing-masing file ini menghasilkan output yang berisi URL paket. URL ini dapat digunakan untuk menentukan informasi tentang paket perangkat lunak saat membuat tagihan materi perangkat lunak dan dapat dimasukkan dalam ScanSbomAPI. Untuk informasi selengkapnya, lihat url paket di Situs Web. GitHub

Go Binari

Amazon Inspector SBOM Generator mengekstrak dependensi dari Go binari yang dikompilasi untuk memberikan jaminan tentang kode yang digunakan.

catatan

Amazon Inspector SBOM Generator mendukung pengambilan dan evaluasi versi toolchain dari Go binari yang dibuat menggunakan kompiler resmi. Go Untuk informasi selengkapnya, lihat Unduh dan instal di Go situs web. Jika Anda menggunakan Go rantai alat dari vendor lain, sepertiRed Hat, evaluasi mungkin tidak akurat karena potensi perbedaan dalam distribusi dan ketersediaan metadata.

Fitur utama
  • Mengekstrak informasi ketergantungan langsung dari binari Go

  • Mengumpulkan dependensi yang tertanam dalam biner

  • Mendeteksi dan mengekstrak versi Go toolchain yang digunakan untuk mengkompilasi biner.

GOMODCACHE

Amazon Inspector SBOM Generator memindai cache Go modul untuk mengumpulkan informasi tentang dependensi yang diinstal. Cache ini menyimpan modul yang diunduh untuk memastikan versi yang sama digunakan di berbagai build.

Fitur utama
  • Memindai GOMODCACHE direktori untuk mengidentifikasi modul yang di-cache

  • Mengekstrak metadata terperinci, termasuk nama modul, versi, dan sumber URLs

Contoh struktur

Berikut ini adalah contoh GOMODCACHE strukturnya.

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

Struktur ini menghasilkan output yang berisi URL paket. URL ini dapat digunakan untuk menentukan informasi tentang paket perangkat lunak saat membuat tagihan materi perangkat lunak dan dapat dimasukkan dalam ScanSbomAPI. Untuk informasi selengkapnya, lihat url paket di Situs Web. GitHub

Pemindaian ketergantungan Java

Bahasa pemrograman Manajer Package Artefak yang didukung Dukungan Toolchain Ketergantungan pengembangan Ketergantungan transitif Bendera pribadi Secara rekursif
Java Maven

JavaAplikasi yang dikompilasi (.jar/.war/.ear)

pom.xml

N/A

N/A

N/A

N/A

Ya

Ya

N/A

N/A

Ya

Ya

catatan

Fitur evaluasi kerentanan kami hanya mendukung repositori Maven Central. Repositori pihak ketiga, sepertiJBoss Enterprise Maven Repository, saat ini tidak didukung.

Amazon Inspector SBOM Generator melakukan pemindaian Java ketergantungan dengan menganalisis aplikasi dan file yang dikompilasiJava. pom.xml Saat memindai aplikasi yang dikompilasi, pemindai menghasilkan hash SHA-1 untuk verifikasi integritas, mengekstrak file yang disematkan, dan mem-parsing pom.properties file bersarang. pom.xml

Koleksi hash SHA—1 (untuk file.jar, .war, .ear yang dikompilasi)

Amazon Inspector SBOM Generator mencoba mengumpulkan hash SHA—1 untuk semua .ear.jar, dan .war file dalam proyek untuk menjamin integritas dan keterlacakan artefak yang dikompilasi. Java

Fitur utama
  • Menghasilkan hash SHA—1 untuk semua artefak yang dikompilasi Java

Contoh artefak

Berikut ini adalah contoh artefak 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" } ] }
catatan

Artefak ini menghasilkan output yang berisi URL paket. URL ini dapat digunakan untuk menentukan informasi tentang paket perangkat lunak saat membuat tagihan materi perangkat lunak dan dapat dimasukkan dalam ScanSbomAPI. Untuk informasi selengkapnya, lihat url paket di Situs Web. GitHub

pom.properti

pom.propertiesFile ini digunakan dalam Maven proyek untuk menyimpan metadata proyek, termasuk nama paket dan versi paket. Amazon Inspector SBOM Generator mem-parsing file ini untuk mengumpulkan informasi proyek.

Fitur utama
  • Mem-parsing dan mengekstrak artefak paket, grup paket, dan versi paket

Contoh file pom.properties

Berikut ini adalah contoh pom.properties file.

#Generated by Maven #Tue Mar 16 15:44:02 UTC 2021 version=1.6.0 groupId=net.datafaker artifactId=datafaker
catatan

File ini menghasilkan output yang berisi URL paket. URL ini dapat digunakan untuk menentukan informasi tentang paket perangkat lunak saat membuat tagihan materi perangkat lunak dan dapat dimasukkan dalam ScanSbomAPI. Untuk informasi selengkapnya, lihat url paket di Situs Web. GitHub

Tidak termasuk parsing bersarang pom.xml

Jika Anda ingin mengecualikan pom.xml parsing saat memindai Java aplikasi yang dikompilasi, gunakan --skip-nested-pomxml argumen.

pom.xml

pom.xmlFile tersebut adalah file konfigurasi inti untuk Maven proyek. Ini berisi informasi tentang proyek dan dependensi proyek. Amazon Inspector SBOM Generator mem-parsing pom.xml file untuk mengumpulkan dependensi, memindai file mandiri di repositori dan file di dalam file yang dikompilasi. .jar

Fitur utama
  • Mem-parsing dan mengekstrak artefak paket, grup paket, dan versi paket dari pom.xml file.

MavenLingkup dan tag yang didukung

Dependensi dikumpulkan dengan cakupan berikut: Maven

  • mengompilasikan

  • provided

  • runtime

  • pengujian

  • sistem

  • impor

Dependensi dikumpulkan dengan Maven tag berikut:. <optional>true</optional>

Contoh pom.xml file dengan cakupan

Berikut ini adalah contoh pom.xml file dengan cakupan.

<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>
Contoh pom.xml file tanpa ruang lingkup

Berikut ini adalah contoh pom.xml file tanpa ruang lingkup.

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

Masing-masing file ini menghasilkan output yang berisi URL paket. URL ini dapat digunakan untuk menentukan informasi tentang paket perangkat lunak saat membuat tagihan materi perangkat lunak dan dapat dimasukkan dalam ScanSbomAPI. Untuk informasi selengkapnya, lihat url paket di Situs Web. GitHub

JavaScript pemindaian ketergantungan

Bahasa pemrograman Manajer Package Artefak yang didukung Dukungan Toolchain Ketergantungan pengembangan Ketergantungan transitif Bendera pribadi Secara rekursif
Javascript

Node Modules

NPM

PNPM

YARN

node_modules/*/package.json

package-lock.json (v1, v2, and v3) / npm-shrinkwrap.json

pnpm-lock.yaml

yarn.lock

N/A

N/A

N/A

N/A

N/A

Ya

Ya

Ya

Ya

N/A

N/A

N/A

Ya

N/A

N/A

N/A

Ya

Tidak

Tidak

Tidak

package.json

package.jsonFile adalah komponen inti dari Node.js proyek. Ini berisi metadata tentang paket yang diinstal. Amazon Inspector SBOM Generator memindai file ini untuk mengidentifikasi nama paket dan versi paket.

Fitur utama
  • Mem-parsing struktur file JSON untuk mengekstrak nama dan versi paket

  • Mengidentifikasi paket pribadi dengan nilai pribadi

Contoh file package.json

Berikut ini adalah contoh package.json file.

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

File ini menghasilkan output yang berisi URL paket. URL ini dapat digunakan untuk menentukan informasi tentang paket perangkat lunak saat membuat tagihan materi perangkat lunak dan dapat dimasukkan dalam ScanSbomAPI. Untuk informasi selengkapnya, lihat url paket di Situs Web. GitHub

package-lock.json

package-lock.jsonFile secara otomatis dihasilkan oleh npm untuk mengunci versi dependensi yang tepat yang diinstal untuk sebuah proyek. Ini memastikan konsistensi dalam lingkungan dengan menyimpan versi yang tepat dari semua dependensi dan sub-dependensinya. File ini dapat membedakan antara dependensi reguler dan dependensi pengembangan.

Fitur utama
  • Mem-parsing struktur file JSON untuk mengekstrak nama paket dan versi paket

  • Mendukung deteksi ketergantungan dev

Contoh file package-lock.json

Berikut ini adalah contoh package-lock.json file.

"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=" }
catatan

File ini menghasilkan output yang berisi URL paket. URL ini dapat digunakan untuk menentukan informasi tentang paket perangkat lunak saat membuat tagihan materi perangkat lunak dan dapat dimasukkan dalam ScanSbomAPI. Untuk informasi selengkapnya, lihat url paket di Situs Web. GitHub

npm-shrinkwrap.json

npmsecara otomatis menghasilkan package-lock.json dan npm-shrinkwrap.json file untuk mengunci versi dependensi yang tepat yang diinstal untuk sebuah proyek. Ini menjamin konsistensi dalam lingkungan dengan menyimpan versi yang tepat dari semua dependensi dan sub-dependensi. File membedakan antara dependensi reguler dan dependensi pengembangan.

Fitur utama
  • Parse package-lock versi 1 ,2, dan 3 dari struktur JSON file untuk mengekstrak nama paket dan versi

  • Deteksi ketergantungan pengembang didukung (package-lock.jsonmenangkap dependensi produksi dan pengembangan, memungkinkan alat untuk mengidentifikasi paket mana yang digunakan dalam lingkungan pengembangan)

  • npm-shrinkwrap.jsonFile diprioritaskan di atas file package-lock.json

Contoh

Berikut ini adalah contoh package-lock.json file.

"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

pnpm-lock.yamlFile dihasilkan oleh pnpm untuk mempertahankan catatan versi ketergantungan yang diinstal. Ini juga melacak dependensi pengembangan secara terpisah.

Fitur utama
  • Mem-parsing struktur file YAMM untuk mengekstrak nama dan versi paket

  • Mendukung deteksi ketergantungan dev

Contoh

Berikut ini adalah contoh pnpm-lock.yaml file.

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
catatan

File ini menghasilkan output yang berisi URL paket. URL ini dapat digunakan untuk menentukan informasi tentang paket perangkat lunak saat membuat tagihan materi perangkat lunak dan dapat dimasukkan dalam ScanSbomAPI. Untuk informasi selengkapnya, lihat url paket di Situs Web. GitHub

yarn.lock

Amazon Inspector SBOM Generator mencoba mengumpulkan hash SHA—1 untuk.ear,.jar, dan .war file dalam proyek untuk menjamin integritas dan keterlacakan artefak yang dikompilasi. Java

Fitur utama
  • Menghasilkan hash SHA—1 untuk semua artefak yang dikompilasi Java

Contoh artefak SHA—1

Berikut ini adalah contoh artefak 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
catatan

Artefak ini menghasilkan output yang berisi URL paket. URL ini dapat digunakan untuk menentukan informasi tentang paket perangkat lunak saat membuat tagihan materi perangkat lunak dan dapat dimasukkan dalam ScanSbomAPI. Untuk informasi selengkapnya, lihat url paket di Situs Web. GitHub

Pemindaian ketergantungan.NET

Bahasa pemrograman Manajer Package Artefak yang didukung Dukungan Toolchain Ketergantungan pengembangan Ketergantungan transitif Bendera pribadi Secara rekursif
.NET

.NET Core

Nuget

Nuget

.NET

*.deps.json

Packages.config

packages.lock.json

.csproj

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

Ya

N/A

N/A

N/A

N/A

N/A

Ya

Ya

Ya

Ya

Packages.config

Packages.configFile ini adalah file XMLyang digunakan oleh versi lama Nuget untuk mengelola dependensi proyek. Ini mencantumkan semua paket yang direferensikan oleh proyek, termasuk versi tertentu.

Fitur utama
  • Mem-parsing struktur XMLuntuk mengekstrak paket IDs dan versi

Contoh

Berikut ini adalah contoh Packages.config file.

<?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>
catatan

File ini menghasilkan output yang berisi URL paket. URL ini dapat digunakan untuk menentukan informasi tentang paket perangkat lunak saat membuat tagihan materi perangkat lunak dan dapat dimasukkan dalam ScanSbomAPI. Untuk informasi selengkapnya, lihat url paket di Situs Web. GitHub

*.deps.json

*.deps.jsonFile dihasilkan oleh .NET Core proyek dan berisi informasi terperinci tentang semua dependensi, termasuk jalur, versi, dan dependensi runtime. File ini memastikan runtime memiliki informasi yang diperlukan untuk memuat versi dependensi yang benar.

Fitur utama
  • Mem-parsing struktur JSON untuk detail ketergantungan yang komprehensif

  • Mengekstrak nama dan versi paket dalam libraries daftar.

Contoh file .deps.json

Berikut ini adalah contoh .deps.json file.

{ "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" }, }
catatan

File ini menghasilkan output yang berisi URL paket. URL ini dapat digunakan untuk menentukan informasi tentang paket perangkat lunak saat membuat tagihan materi perangkat lunak dan dapat dimasukkan dalam ScanSbomAPI. Untuk informasi selengkapnya, lihat url paket di Situs Web. GitHub

packages.lock.json

packages.lock.jsonFile ini digunakan oleh versi yang lebih baru Nuget untuk mengunci versi dependensi yang tepat untuk .NET proyek guna menjamin versi yang sama digunakan secara konsisten di lingkungan yang berbeda.

Fitur utama
  • Mem-parsing struktur JSON untuk membuat daftar dependensi terkunci

  • Mendukung dependensi langsung dan transitif

  • Ekstrak nama paket dan versi yang diselesaikan

Contoh file packages.lock.json

Berikut ini adalah contoh packages.lock.json file.

{ "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==" } } } }
catatan

File ini menghasilkan output yang berisi URL paket. URL ini dapat digunakan untuk menentukan informasi tentang paket perangkat lunak saat membuat tagihan materi perangkat lunak dan dapat dimasukkan dalam ScanSbomAPI. Untuk informasi selengkapnya, lihat url paket di Situs Web. GitHub

.csproj

.csprojFile ini ditulis dalam XHTML dan file proyek untuk .NET proyek. Ini termasuk referensi ke Nuget paket, properti proyek, dan konfigurasi build.

Fitur utama
  • Mem-parsing XMLstruktur untuk mengekstrak referensi paket

Contoh file .csproj

Berikut ini adalah contoh .csproj file.

<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>
Contoh file .csproj

Berikut ini adalah contoh .csproj file.

<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)" />
catatan

Masing-masing file ini menghasilkan output yang berisi URL paket. URL ini dapat digunakan untuk menentukan informasi tentang paket perangkat lunak saat membuat tagihan materi perangkat lunak dan dapat dimasukkan dalam ScanSbomAPI. Untuk informasi selengkapnya, lihat url paket di Situs Web. GitHub

Pemindaian ketergantungan PHP

Bahasa pemrograman Manajer Package Artefak yang didukung Dukungan Toolchain Ketergantungan pengembangan Ketergantungan transitif Bendera pribadi Secara rekursif
PHP Composer

composer.lock

/vendor/composer/installed.json

N/A

N/A

N/A

N/A

Ya

Ya

N/A

N/A

Ya

Ya

composer.lock

composer.lockFile secara otomatis dihasilkan saat menjalankan perintah composer install atau composer update. File ini menjamin versi dependensi yang sama diinstal di setiap lingkungan. Ini memberikan proses pembuatan yang konsisten dan andal.

Fitur utama
  • Mem-parsing format JSON untuk data terstruktur

  • Mengekstrak nama dan versi ketergantungan

Contoh file composer.lock

Berikut ini adalah contoh composer.lock file.

{ "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 }
catatan

Ini menghasilkan output yang berisi URL paket. URL ini dapat digunakan untuk menentukan informasi tentang paket perangkat lunak saat membuat tagihan materi perangkat lunak dan dapat dimasukkan dalam ScanSbomAPI. Untuk informasi selengkapnya, lihat url paket di Situs Web. GitHub

/vendor/composer/installed.json

/vendor/composer/installed.jsonFile ini terletak di vendor/composer direktori dan menyediakan daftar lengkap semua paket yang diinstal dan versi paket.

Fitur utama
  • Mem-parsing format JSON untuk data terstruktur

  • Mengekstrak nama dan versi ketergantungan

Contoh file /vendor/composer/installed.json

Berikut ini adalah contoh /vendor/composer/installed.json file.

{ "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 }
catatan

File ini menghasilkan output yang berisi URL paket. URL ini dapat digunakan untuk menentukan informasi tentang paket perangkat lunak saat membuat tagihan materi perangkat lunak dan dapat dimasukkan dalam ScanSbomAPI. Untuk informasi selengkapnya, lihat url paket di Situs Web. GitHub

Pemindaian ketergantungan Python

Bahasa pemrograman Manajer Package Artefak yang didukung Dukungan Toolchain Ketergantungan pengembangan Ketergantungan transitif Bendera pribadi Secara rekursif
Python

pip

Poetry

Pipenv

Egg/Wheel

requirements.txt

Poetry.lock

Pipfile.lock

.egg-info/PKG-INFO

.dist-info/METADATA

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

N/A

Ya

Ya

Ya

Ya

Ya

requirements.txt

requirements.txtFile ini adalah format yang banyak digunakan dalam Python proyek untuk menentukan dependensi proyek. Setiap baris dalam file ini menyertakan paket dengan batasan versinya. Amazon Inspector SBOM Generator mem-parsing file ini untuk mengidentifikasi dan katalog dependensi secara akurat.

Fitur utama
  • Mendukung penentu versi (== dan ~=)

  • Mendukung komentar dan garis ketergantungan yang kompleks

catatan

Penentu versi <= dan => tidak didukung.

Contoh file requirements.txt

Berikut ini adalah contoh requirements.txt file.

flask==1.1.2 requests==2.24.0 numpy==1.18.5 foo~=1.2.0 # Comment about a dependency scipy. # invalid
catatan

File ini menghasilkan output yang berisi URL paket. URL ini dapat digunakan untuk menentukan informasi tentang paket perangkat lunak saat membuat tagihan materi perangkat lunak dan dapat dimasukkan dalam ScanSbomAPI. Untuk informasi selengkapnya, lihat url paket di Situs Web. GitHub

Pipfile.lock

Pipenvadalah alat yang menghadirkan yang terbaik dari semua dunia pengemasan (dibundel, disematkan, dan tidak disematkan). Pipfile.lockMengunci versi dependensi yang tepat untuk memfasilitasi build deterministik. Amazon Inspector SBOM Generator membaca file ini untuk mencantumkan dependensi dan versi yang diselesaikan.

Fitur utama
  • Mem-parsing format JSON untuk resolusi ketergantungan

  • Mendukung dependensi default dan pengembangan

Contoh file Pipfile.lock

Berikut ini adalah contoh Pipfile.lock file.

{ "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" } } }
catatan

File ini menghasilkan output yang berisi URL paket. URL ini dapat digunakan untuk menentukan informasi tentang paket perangkat lunak saat membuat tagihan materi perangkat lunak dan dapat dimasukkan dalam ScanSbomAPI. Untuk informasi selengkapnya, lihat url paket di Situs Web. GitHub

Puisi.lock

Poetryadalah manajemen ketergantungan dan alat pengemasan untuk Python. Poetry.lockFile mengunci versi dependensi yang tepat untuk memfasilitasi lingkungan yang konsisten. Amazon Inspector SBOM Generator mengekstrak informasi ketergantungan terperinci dari file ini.

Fitur utama
  • Mem-parsing format TOMM untuk data terstruktur

  • Mengekstrak nama ketergantungan, dan versi

Contoh file Poetry.lock

Berikut ini adalah contoh Poetry.lock file.

[[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"
catatan

File ini menghasilkan output yang berisi URL paket. URL ini dapat digunakan untuk menentukan informasi tentang paket perangkat lunak saat membuat tagihan materi perangkat lunak dan dapat dimasukkan dalam ScanSbomAPI. Untuk informasi selengkapnya, lihat url paket di Situs Web. GitHub

Telur/Roda

Untuk paket Python yang diinstal secara global, Amazon Inspector SBOM Generator mendukung penguraian file metadata yang ditemukan di direktori dan. .egg-info/PKG-INFO .dist-info/METADATA File-file ini menyediakan metadata terperinci tentang paket yang diinstal.

Fitur utama
  • Ekstrak nama paket, dan versi

  • Mendukung format telur dan roda

Contoh file PKG-INFO/METADATA

Berikut ini adalah contoh PKG-INFO/METADATA file.

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/
catatan

File ini menghasilkan output yang berisi URL paket. URL ini dapat digunakan untuk menentukan informasi tentang paket perangkat lunak saat membuat tagihan materi perangkat lunak dan dapat dimasukkan dalam ScanSbomAPI. Untuk informasi selengkapnya, lihat url paket di Situs Web. GitHub

Pemindaian ketergantungan Ruby

Bahasa pemrograman Manajer Package Artefak yang didukung Dukungan Toolchaing Ketergantungan pengembangan Ketergantungan transitif Bendera pribadi Secara rekursif
Ruby Bundler

Gemfile.lock

.gemspec

globall installed Gems

N/A

N/A

N/A

N/A

N/A

N/A

Ya

N/A

N/A

N/A

N/A

N/A

Ya

Ya

Ya

Gemfile.lock

Gemfile.lockFile mengunci versi yang tepat dari semua dependensi untuk memastikan versi yang sama digunakan di setiap lingkungan.

Fitur utama
  • Mem-parsing Gemfile.lock file ke dependensi identitas dan versi dependensi

  • Mengekstrak nama paket rinci dan versi paket

Contoh file Gemfile.lock

Berikut ini adalah contoh Gemfile.lock file.

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)
catatan

File ini menghasilkan output yang berisi URL paket. URL ini dapat digunakan untuk menentukan informasi tentang paket perangkat lunak saat membuat tagihan materi perangkat lunak dan dapat dimasukkan dalam ScanSbomAPI. Untuk informasi selengkapnya, lihat url paket di Situs Web. GitHub

.gemspec

.gemspecFile tersebut adalah RubyGem file yang berisi metadata tentang permata. Amazon Inspector SBOM Generator mem-parsing file ini untuk mengumpulkan informasi rinci tentang permata.

Fitur utama
  • Mem-parsing dan mengekstrak nama permata dan versi permata

catatan

Spesifikasi referensi tidak didukung.

Contoh file .gemspec

Berikut ini adalah contoh .gemspec file.

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
catatan

File ini menghasilkan output yang berisi URL paket. URL ini dapat digunakan untuk menentukan informasi tentang paket perangkat lunak saat membuat tagihan materi perangkat lunak dan dapat dimasukkan dalam ScanSbomAPI. Untuk informasi selengkapnya, lihat url paket di Situs Web. GitHub

Permata yang dipasang secara global

Amazon Inspector SBOM Generator mendukung pemindaian permata yang diinstal secara global, yang terletak di direktori standar, seperti di /usr/local/lib/ruby/gems/<ruby_version>/gems/ EC2 Amazon/Amazon ECR dan di Lambda. ruby/gems/<ruby_version>/gems/ Ini memastikan semua dependensi yang diinstal secara global diidentifikasi dan dikatalogkan.

Fitur utama
  • Mengidentifikasi dan memindai semua permata yang diinstal secara global di direktori standar

  • Mengekstrak metadata dan informasi versi untuk setiap permata yang diinstal secara global

Contoh struktur direktori

Berikut ini adalah contoh struktur direktori.

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

Struktur ini menghasilkan output yang berisi URL paket. URL ini dapat digunakan untuk menentukan informasi tentang paket perangkat lunak saat membuat tagihan materi perangkat lunak dan dapat dimasukkan dalam ScanSbomAPI. Untuk informasi selengkapnya, lihat url paket di Situs Web. GitHub

Pemindaian ketergantungan karat

Bahasa pemrograman Manajer Package Artefak yang didukung Dukungan Toolchain Ketergantungan pengembangan Ketergantungan transitif Bendera pribadi Secara rekursif
Rust Cargo.toml

Cargo.toml

Cargo.lock

Rust binary (built with cargo-auditable)

N/A

N/A

Ya

N/A

N/A

N/A

N/A

Ya

N/A

N/A

N/A

N/A

Ya

Ya

Ya

Cargo.toml

Cargo.tomlFile adalah file manifes untuk Rust proyek.

Fitur utama
  • Mem-parsing dan mengekstrak Cargo.toml file untuk mengidentifikasi nama paket proyek dan versi.

Contoh file Cargo.toml

Berikut ini adalah contoh Cargo.toml file.

[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"
catatan

File ini menghasilkan output yang berisi URL paket. URL ini dapat digunakan untuk menentukan informasi tentang paket perangkat lunak saat membuat tagihan materi perangkat lunak dan dapat dimasukkan dalam ScanSbomAPI. Untuk informasi selengkapnya, lihat url paket di Situs Web. GitHub

Cargo.lock

Cargo.lockFile mengunci versi dependensi untuk memastikan versi yang sama digunakan setiap kali proyek dibangun.

Fitur utama
  • Mem-parsing Cargo.lock file untuk mengidentifikasi semua dependensi dan versi dependensi.

Contoh file Cargo.lock

Berikut ini adalah contoh Cargo.lock file.

# 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"
catatan

File ini menghasilkan output yang berisi URL paket. URL ini dapat digunakan untuk menentukan informasi tentang paket perangkat lunak saat membuat tagihan materi perangkat lunak dan dapat dimasukkan dalam ScanSbomAPI. Untuk informasi selengkapnya, lihat url paket di Situs Web. GitHub

Biner karat dengan cargo-auditable

Amazon Inspector SBOM Generator mengumpulkan dependensi dari Rust binari yang dibangun dengan perpustakaan. cargo-auditable Ini memberikan informasi ketergantungan tambahan dengan mengaktifkan ekstraksi ketergantungan dari binari yang dikompilasi.

Fitur utama
  • Mengekstrak informasi ketergantungan langsung dari Rust binari yang dibangun dengan perpustakaan cargo-auditable

  • Mengambil metadata dan informasi versi untuk dependensi yang disertakan dalam binari

catatan

File ini menghasilkan output yang berisi URL paket. URL ini dapat digunakan untuk menentukan informasi tentang paket perangkat lunak saat membuat tagihan materi perangkat lunak dan dapat dimasukkan dalam ScanSbomAPI. Untuk informasi selengkapnya, lihat url paket di Situs Web. GitHub

Artefak yang tidak didukung

Bagian ini menjelaskan artefak yang tidak didukung.

Java

Generator Amazon Inspector SBOM Generator hanya mendukung deteksi kerentanan untuk dependensi yang bersumber dari repositori arus utama. Maven MavenRepositori pribadi atau kustom, seperti Red Hat Maven danJenkins, tidak didukung. Untuk deteksi kerentanan yang akurat, pastikan Java dependensi ditarik dari repositori arus utama. Maven Dependensi dari repositori lain tidak akan tercakup dalam pemindaian kerentanan.

JavaScript

bundel esbuild

Untuk bundel esbuild yang diperkecil, Amazon Inspector SBOM Generator tidak mendukung pemindaian dependensi untuk proyek yang digunakan. esbuild Peta sumber yang dihasilkan oleh esbuild tidak menyertakan metadata yang memadai (nama dan versi ketergantungan) yang diperlukan untuk pembuatan yang akurat. Sbomgen Untuk hasil yang andal, pindai file proyek asli, seperti node_modules/directory danpackage-lock.json, sebelum proses bundling.

package.json

Amazon Inspector SBOM Generator tidak mendukung pemindaian file package.json tingkat root untuk informasi ketergantungan. File ini hanya menentukan nama paket dan rentang versi, tetapi tidak menyertakan versi paket yang sepenuhnya diselesaikan. Untuk hasil pemindaian yang akurat, gunakan package.json atau file kunci lainnya, seperti yarn.lock danpnpm.lock, yang menyertakan versi yang diselesaikan.

Dotnet

Saat menggunakan versi mengambang atau rentang versiPackageReference, menjadi lebih menantang untuk menentukan versi paket yang tepat yang digunakan dalam proyek tanpa melakukan resolusi paket. Versi mengambang dan rentang versi memungkinkan pengembang untuk menentukan rentang versi paket yang dapat diterima daripada versi tetap.

Pergi binari

Amazon Inspector SBOM Generator tidak memindai Go binari yang dibuat dengan flag build yang dikonfigurasi untuk mengecualikan ID build. Bendera build ini Bomerman mencegah pemetaan biner secara akurat ke sumber aslinya. GoBinari yang tidak jelas tidak didukung karena ketidakmampuan untuk mengekstrak informasi paket. Untuk pemindaian dependensi yang akurat, pastikan Go binari dibuat dengan setelan default, termasuk ID build.

Biner karat

Amazon Inspector SBOM Generator hanya memindai Rust binari jika binari dibuat menggunakan pustaka yang dapat diaudit kargo. Rustbinari yang tidak menggunakan perpustakaan ini tidak memiliki metadata yang diperlukan untuk ekstraksi ketergantungan yang akurat. Amazon Inspector SBOM Generator mengekstrak versi Rust toolchain yang dikompilasi mulai dari Rust 1.7.3, tetapi hanya untuk binari di lingkungan. Linux Untuk pemindaian komprehensif, buat Rust binari Linux menggunakan cargo-auditable.

catatan

Deteksi kerentanan untuk Rust rantai alat itu sendiri tidak didukung, bahkan jika versi toolchain diekstraksi.