Cara membuat SBOM menggunakan alat sumber terbuka Microsoft

shutterstock.com/song_about_summer

Daftar Bahan Perangkat Lunak (SBOM) membantu Anda memahami rantai pasokan perangkat lunak Anda dengan mencantumkan paket dan vendor tempat kode Anda bergantung. SBOM dengan cepat mendapatkan popularitas untuk meningkatkan keamanan setelah serangan rantai pasokan dunia nyata yang diketahui.

Pendukung utama SBOM adalah Microsoft, yang menerbitkan pendekatannya terhadap pembuatannya pada Oktober 2021. Awal tahun ini, perusahaan merilis alatnya untuk membuat SBOM di Windows, macOS, dan Linux sebagai open source.

Artikel ini akan menunjukkan cara memulai proyek untuk mengindeks dependensi kode Anda. Membuat dokumen yang sesuai dengan SPDX yang mencantumkan file, paket, dan hubungan dalam proyek Anda. SPDX (Pertukaran Data Paket Perangkat Lunak) adalah standar yang diakui ISO untuk SBOM, memungkinkan Anda untuk mendorong laporan yang dihasilkan langsung ke alat lain dalam ekosistem.

Microsoft awalnya mengumumkan proyek tersebut sebagai Salus. Istilah tersebut telah dihapus karena bertentangan dengan proyek keamanan Salus Code yang ada, yang berasal dari Coinbase. Konstruktor SBOM sekarang hanya disebut sbom-tool.

saya mulai

Anda dapat mengunduh alat SBOM dari repositori Microsoft GitHub. Binari yang telah dikompilasi sebelumnya tersedia di halaman Versi. Pilih unduhan yang benar untuk sistem Anda, lalu buat biner dapat dieksekusi dan pindahkan ke lokasi di jalur Anda.

Berikut adalah contoh untuk Linux:

$ wget https://github.com/microsoft/sbom-tool/releases/download/v<VERSION>/sbom-tool-linux-x64
$ chmod +x sbom-tool-linux-x64
$ mv sbom-tool-linux-x64 /usr/local/bin/sbom-tool

Kamu harus bisa berjalan sbom-tool Untuk menampilkan informasi bantuan di jendela perangkat Anda:

$ sbom-tool
No action was specified

The Sbom tool generates a SBOM for any build artifact.

Usage - Microsoft.Sbom.Tool <action> -options

SBOM .generasi

SBOM baru dibuat dengan menjalankan alat generate sub kepemimpinan. Beberapa argumen harus dibuat:

  • -b (BuildDropPath) – folder tempat daftar SPDX SBOM yang dihasilkan akan disimpan.
  • -bc (BuildComponentPath) – folder tempat dependensi dalam proyek Anda dicari.
  • -nsb (NamespaceUriBase) – jalur dasar yang digunakan sebagai namespace untuk manifes SBOM. Misalnya, URL ini harus dimiliki oleh organisasi Anda https://example.com/sbom.

Alat SBOM juga perlu mengetahui nama dan versi proyek Anda. Ini sering dapat disimpulkan dari file yang sudah ada di repositori Anda, seperti package.json name Dan version bidang, tetapi Anda mungkin perlu memasukkan informasi secara manual atau mengganti pengaturan default dalam beberapa kasus. Tambahkan pn Dan pv Bendera untuk ini:

  • -pn (PackageName) – Nama proyek atau paket Anda.
  • -pv (PackageVersion) – Salinan proyek yang Anda pindai. Ini harus cocok dengan versi yang disertakan dengan SBOM Anda sehingga pengguna dapat mengaitkan daftar dependensi dengan build tertentu.

Berikut adalah contoh membuat SBOM untuk file di direktori kerja Anda. SBOM ditempatkan dalam file sbom-output subfolder. Ini harus ada sebelum menjalankan alat.

$ mkdir sbom-output
$ sbom-tool generate -b sbom-output -bc . -pn example -pv 1.0 -nsb https://example.com/sbom

Pratinjau hasil pemindaian akan muncul di perangkat Anda:

[INFO] Enumerated 3728 files and 607 directories in 00:00:00.5938034 

[INFO] |Component Detector Id         |Detection Time                |# Components Found            |# Explicitly Referenced                 | 
...
[INFO] |Npm                           |0.63 seconds                  |241                           |0                                       | 
...
[INFO] |Total                         |0.64 seconds                  |241                           |0                                       | 

[INFO] Detection time: 0.6374678 seconds.

Proyek ini menggunakan npm untuk mengelola dependensinya. Alat ini menemukan 241 paket di direktori kerja package.json masalah.

SBOM saat ini mendukung 19 bahasa pemrograman dan format paket yang berbeda. Daftar tersebut mencakup npm, NuGet, PyPi, Maven, Rust Crates, dan Ruby Gems, serta paket Linux yang terdapat dalam gambar Docker. Referensi ke repositori GitHub jarak jauh juga didukung.

konten SBOM

SBOM yang dihasilkan dijelaskan _manifest/spdx_2.2/manifest.spdx.json di direktori keluaran build yang Anda tentukan. SBOM adalah file JSON yang cukup bertele-tele yang dimaksudkan untuk digunakan oleh program lain.

{"File": []Paket: [
    {
      "name": "color-convert",
      "SPDXID": "SPDXRef-Package-A72B0922E46D9828746F346D7FD11B7F81EDEB15B92BEEDAE087F5F7407FECDC",
      ...
    }

There are four main types of information within the report:

  • The files section – This lists all the files containing source code you’ve written in your project. SBOM Tool will only populate this section when certain project types are scanned, such as C# solutions.
  • The packages section – A complete catalog of all the third-party dependencies present in your project, with references to their source package manager, the version used, and the type of license that applies.
  • The relationships section – This details all the relationships between the components listed in the SBOM. The most common relationship you’ll see is DEPENDS_ON, which declares an item in the packages section as one of your project’s dependencies. Several other kinds of relationship also exist, such as CREATED_BY, DEPENDENCY_OF, and PATCH_FOR.
  • Report metadata details – Fields such as name, documentNamespace, spdxVersion, and creationInfo identify the SBOM, the tool used to create it, and the SPDX manifest revision that applies.

Now you’ve got an SBOM you can start using it with other tools to conduct vulnerability scans and manage license compliance. You can consider distributing the SBOM with your software releases so consumers are able to inspect the contents of each new version. SBOMs are best generated as part of your build pipeline so they stay up to date.

Having access to an SBOM is invaluable when major new supply chain problems appear. Organizations using SBOMs were better placed to respond to Log4j, for example. They could inspect their reports to quickly find projects depending on the vulnerable library, instead of auditing package lists by hand.

Scanning Docker Images

SBOM Tool is capable of scanning existing Docker images as part of a report generation. To use this capability, you need to add the -di flag and specify the image tag or digest that you want to scan. The rest of the arguments stay the same.

$ sbom-tool generate -di ubuntu:latest -b sbom-output -bc . -pn demo -pv 1.0 -nsb https://demo.com/demo

The Docker image will be analyzed to identify the packages it includes. They’ll be added to the SBOM report alongside the dependencies found in your source folder. You can scan multiple Docker images in a single operation by separating their tags or digest hashes with commas.

Summary

SBOM Tool is a young open-source SBOM generation utility developed at Microsoft. It supports several leading package formats and produces SPDX-compatible output. This means you can feed generated SBOMs straight into other tools like Grype to automatically find security vulnerabilities and outdated dependencies.

SBOMs are an effective way to increase awareness of software supply chains and uncover lurking issues. Producing and distributing an SBOM helps users understand what’s being silently included in their project. SBOM Tool is one way to generate industry-standard reports with a single command, making it easier to offer an SBOM with each of your releases.

Baca Juga!

Unduh Aplikasi EA 12.17.0 5274

Aplikasi EA adalah klien PC tercepat dan teringan kami hingga saat ini. Desain baru yang …