Cara Menghasilkan SBOM Dengan Alat Sumber Terbuka Microsoft

  • Post author:
  • Post category:Tutorial

SBOM (Software Bill of Materials) membantu Anda memahami rantai pasokan perangkat lunak Anda dengan mendaftar paket dan vendor yang diandalkan oleh kode Anda. SBOM dengan cepat mendapatkan momentum sebagai cara untuk membantu meningkatkan keamanan setelah serangan rantai pasokan terkemuka di dunia nyata.

Salah satu pendukung utama SBOM adalah Microsoft yang menerbitkan pendekatannya ke generasi mereka pada Oktober 2021. Awal tahun ini perusahaan membuka- sumber alatnya untuk memproduksi SBOM di Windows, macOS, dan Linux.

Dalam artikel ini, Anda akan mempelajari cara mulai menggunakan proyek untuk mengindeks dependensi kode Anda. Ini menghasilkan dokumen yang kompatibel dengan SPDX yang mencantumkan file, paket, dan hubungan dalam proyek Anda. SPDX (Pertukaran Data Paket Perangkat Lunak) adalah standar yang diterima ISO untuk SBOM sehingga Anda dapat meneruskan laporan yang dihasilkan secara langsung ke alat ekosistem lainnya.

Microsoft awalnya mengumumkan proyek dengan nama Salus. Sejak itu mundur dari istilah ini karena bertentangan dengan proyek keamanan kode Salus yang ada yang berasal dari Coinbase. Generator SBOM sekarang disebut hanya sebagai sbom-tool.

Pendahuluan

Anda dapat mengunduh SBOM Tool dari repositori GitHub Microsoft. Binari yang telah dikompilasi tersedia di halaman rilis. Pilih unduhan yang tepat untuk sistem Anda, lalu buat biner tersebut dapat dieksekusi dan pindahkan ke lokasi di jalur Anda.

Berikut ini contoh untuk Linux:

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

Anda harus dapat menjalankan sbom-tool untuk menampilkan informasi bantuan di jendela terminal Anda:

$ sbom-tool Tidak ada tindakan yang ditentukan Alat Sbom menghasilkan SBOM untuk artefak bangunan apa pun. Penggunaan - Microsoft.Sbom.Tool -options

Menghasilkan SBOM

SBOM baru dibuat dengan menjalankan sub-perintah generate alat. Beberapa argumen perlu diberikan:

-b (BuildDropPath) – Folder untuk menyimpan manifes SPDX SBOM yang dihasilkan ke.-bc (BuildComponentPath) – Folder yang akan dipindai untuk menemukan dependensi dalam proyek Anda.-nsb (NamespaceUriBase ) – Jalur dasar yang akan digunakan sebagai namespace manifes SBOM. Ini harus berupa URL yang dimiliki oleh organisasi Anda, seperti https://example.com/sbom.

SBOM Alat juga perlu mengetahui nama dan versi proyek Anda. Ini sering dapat menyimpulkan ini dari file yang sudah ada di repositori Anda, seperti bidang package.jsonname dan versi, tetapi Anda mungkin perlu memberikan informasi secara manual atau mengganti default dalam beberapa kasus. Tambahkan flag pn dan pv untuk melakukan ini:

-pn (PackageName) – Nama proyek atau package.-pv Anda (PackageVersion) – Versi proyek yang Anda pindai. Ini harus cocok dengan versi rilis yang disertakan dengan SBOM Anda sehingga pengguna dapat menghubungkan daftar ketergantungan dengan build tertentu.

Berikut adalah contoh pembuatan SBOM untuk file di direktori kerja Anda. SBOM akan ditempatkan ke dalam subdirektori sbom-output. Ini harus ada sebelum Anda menjalankan tool.

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

Ikhtisar hasil pemindaian akan ditampilkan di terminal Anda:

[INFO] Enumerasi 3728 file dan 607 direktori di 00:00:00.5938034 [INFO] |Komponen Id Detektor |Waktu Deteksi |# Komponen Ditemukan |# Direferensikan Secara Eksplisit | … [INFO] |Npm |0,63 detik |241 |0 | … [INFO] |Total |0,64 detik |241 |0 | [INFO] Waktu deteksi: 0,6374678 detik.

Proyek ini menggunakan npm untuk mengelola dependensinya. Alat ini mendeteksi 241 paket di dalam direktori kerja package.json file.

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

SBOM Contents

SBOM yang dihasilkan akan ditulis ke _manifest/spdx_2.2/manifest.spdx.json di dalam direktori keluaran build yang Anda tentukan. SBOM adalah file JSON yang cukup bertele-tele yang dimaksudkan untuk digunakan oleh perangkat lunak lain.

{ “file”: [], “packages”: [ { “name”: “color-convert”, “SPDXID”: “SPDXRef-Package -A72B0922E46D9828746F346D7FD11B7F81EDEB15B92BEEDAE087F5F7407FECDC”, … }

Ada empat jenis informasi utama dalam laporan:

Bagian file – Ini mencantumkan semua file yang berisi kode sumber yang telah Anda tulis dalam proyek Anda. Alat SBOM hanya akan mengisi bagian ini ketika jenis proyek tertentu dipindai, seperti solusi C#. Bagian paket – Katalog lengkap dari semua dependensi pihak ketiga yang ada dalam proyek Anda, dengan referensi ke manajer paket sumbernya, versi yang digunakan, dan jenis lisensi yang berlaku. Bagian hubungan – Bagian ini merinci semua hubungan antara komponen yang tercantum dalam SBOM. Hubungan paling umum yang akan Anda lihat adalah DEPENDS_ON, yang mendeklarasikan item di bagian paket sebagai salah satu dependensi proyek Anda. Beberapa jenis hubungan lain juga ada, seperti CREATED_BY, DEPENDENCY_OF, dan PATCH_FOR. Detail metadata laporan – Bidang seperti name, documentNamespace, spdxVersion, dan CreationInfo mengidentifikasi SBOM, alat yang digunakan untuk membuatnya, dan revisi manifes SPDX yang berlaku .

Sekarang Anda memiliki SBOM, Anda dapat mulai menggunakannya dengan alat lain untuk melakukan pemindaian kerentanan dan mengelola kepatuhan lisensi. Anda dapat mempertimbangkan untuk mendistribusikan SBOM dengan rilis perangkat lunak Anda sehingga konsumen dapat memeriksa konten setiap versi baru. SBOM paling baik dihasilkan sebagai bagian dari pipeline build Anda sehingga tetap up to date.

Memiliki akses ke SBOM sangat berharga ketika masalah rantai pasokan baru yang besar muncul. Organisasi yang menggunakan SBOM lebih baik ditempatkan untuk menanggapi Log4j, misalnya. Mereka dapat memeriksa laporan mereka untuk menemukan proyek dengan cepat bergantung pada pustaka yang rentan, alih-alih mengaudit daftar paket dengan tangan.

Memindai Gambar Docker

SBOM Alat mampu memindai gambar Docker yang ada sebagai bagian dari pembuatan laporan. Untuk menggunakan kemampuan ini, Anda perlu menambahkan flag -di dan menentukan tag gambar atau intisari yang ingin Anda pindai. Argumen lainnya tetap sama.

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

Image Docker akan dianalisis untuk mengidentifikasi paket yang disertakan. Mereka akan ditambahkan ke laporan SBOM bersama dependensi yang ditemukan di folder sumber Anda. Anda dapat memindai beberapa gambar Docker dalam satu operasi dengan memisahkan tag atau mencerna hash dengan koma.

SBOM Tool adalah utilitas generasi SBOM open-source muda yang dikembangkan di Microsoft. Ini mendukung beberapa format paket terkemuka dan menghasilkan output yang kompatibel dengan SPDX. Ini berarti Anda dapat memasukkan SBOM yang dihasilkan langsung ke alat lain seperti Grype untuk secara otomatis menemukan kerentanan keamanan dan dependensi yang sudah ketinggalan zaman.

SBOM adalah cara yang efektif untuk meningkatkan kesadaran akan rantai pasokan perangkat lunak dan mengungkap masalah yang tersembunyi. Memproduksi dan mendistribusikan SBOM membantu pengguna memahami apa yang secara diam-diam disertakan dalam proyek mereka. Alat SBOM adalah salah satu cara untuk menghasilkan laporan standar industri dengan satu perintah, sehingga lebih mudah untuk menawarkan SBOM dengan setiap rilis Anda.

Itulah berita seputar Cara Menghasilkan SBOM Dengan Alat Sumber Terbuka Microsoft, semoga bermanfaat. Disadur dari HowToGeek.com.