Cara Menggunakan “docker sbom” untuk Mengindeks Paket Gambar Docker Anda

  • Post author:
  • Post category:Tutorial

Keamanan rantai pasokan perangkat lunak telah menjadi topik hangat setelah serangan berbasis ketergantungan profil tinggi. Memproduksi SBOM untuk artefak perangkat lunak Anda dapat membantu Anda mengidentifikasi kelemahan dan memangkas jumlah paket yang Anda andalkan.

Fitur Docker baru mengintegrasikan dukungan untuk pembuatan SBOM ke dalam CLI buruh pelabuhan. Ini memungkinkan Anda menghasilkan SBOM bersama build Anda, lalu mendistribusikannya ke konsumen gambar Anda.

Perintah “docker sbom”

Perintah sbom docker baru dibundel dengan Docker Desktop versi 4.7.0 dan yang lebih baru. Anda dapat menambahkan perintah ke instalasi Docker Engine di Linux dengan menginstal plugin docker-sbom dari GitHub:

$ curl -sSfL https://raw.githubusercontent.com/docker/sbom-cli-plugin/main/install.sh | sh -s --

Periksa instalasi berhasil dengan menjalankan perintah:

$ docker sbom

Usage:  docker sbom [OPTIONS] COMMAND

View the packaged-based Software Bill Of Materials (SBOM) for an image.
...

 

Sekarang Anda dapat menghasilkan SBOM untuk gambar Docker dengan meneruskan tagnya ke perintah:

$ docker sbom nginx:latest
Syft v0.43.0
 ✔ Pulled image            
 ✔ Loaded image            
 ✔ Parsed image            
 ✔ Cataloged packages      [143 packages]
NAME                       VERSION                         TYPE         
adduser                    3.118                           deb           
apt                        2.2.4                           deb           
base-files                 11.1+deb11u3                    deb           
base-passwd                3.5.51                          deb           
bash                       5.1-2+b3                        deb           
bsdutils                   1:2.36.1-8+deb11u1              deb   
...

 

CLI akan menarik yang ditentukan image jika belum ada di sistem Anda. Konten gambar kemudian diindeks dan daftar paket ditampilkan di terminal Anda.

Di bawah tenda, Docker menggunakan generator Syft SBOM yang populer untuk memindai dan mengindeks gambar. Versi Syft aktif ditampilkan setiap kali Anda menggunakan perintah. Outputnya cocok dengan apa yang akan dihasilkan oleh instalasi Syft mandiri.

Syft mampu mengidentifikasi paket sistem operasi dan dependensi bahasa pemrograman. Jenis setiap paket yang terdeteksi ditampilkan di output perintah, di sebelah nama dan versi persisnya. Anda dapat menggunakan informasi ini untuk mengaudit gambar penampung Anda secara akurat dan menemukan perangkat lunak yang mereka andalkan. Saat kerentanan utama dilaporkan, Anda dapat berkonsultasi dengan SBOM gambar untuk memeriksa dengan cepat apakah Anda terpengaruh.

Menyesuaikan Output

Output ditampilkan sebagai tabel yang dapat dibaca manusia secara default. Ini ideal untuk distribusi bersama gambar Anda atau sebagai bagian dari dokumentasi Anda.

Anda dapat menghapus baris yang berisi versi Syft dan laporan kemajuan dengan menambahkan tanda –quiet. Gunakan –output untuk menulis laporan ke dalam file, alih-alih jendela terminal Anda. Menggabungkan dua opsi ini memungkinkan Anda dengan mudah menyimpan daftar paket data.

$ docker sbom --output sbom.txt --quiet nginx:latest

Beberapa format output alternatif tersedia melalui flag –format. Varian teks adalah opsi lain yang dapat dibaca manusia menggunakan tata letak berbasis baris:

$ docker sbom --format text --quiet nginx:latest
[Image]
 Layer:      0
 Digest:     sha256:9c1b6dd6c1e6be9fdd2b1987783824670d3b0dd7ae8ad6f57dc3cea5739ac71e
 Size:       80400891
 MediaType:  application/vnd.docker.image.rootfs.diff.tar.gzip

...

[adduser]
 Version:    3.118
 Type:       deb
 Found by:   dpkgdb-cataloger

[apt]
 Version:    2.2.4
 Type:       deb
 Found by:   dpkgdb-cataloger

 

Bagian [Gambar] menghitung rincian semua lapisan dalam gambar yang dipindai. Bagian berikut mencantumkan paket yang terdeteksi, menyediakan jenis dan versinya sebagai properti bersarang.

Beberapa format lain juga didukung, yang masing-masing dapat diaktifkan menggunakan flag –format. Ini adalah pilihan yang lebih baik ketika Anda ingin menggunakan data SBOM secara terprogram menggunakan alat pihak ketiga.

  • syft-json – Keluarkan laporan dalam format JSON asli Syft.
  • cyclonedx-xml/cyclonedx-json – Menghasilkan laporan yang kompatibel dengan standar CycloneDX sebagai XML atau JSON . Standar SBOM ini dipimpin oleh OWASP.
  • github-0-json – Format laporan yang kompatibel dengan GitHub.
  • spdx-tag-value/spdx-json – Kompatibel dengan standar SPDX untuk mengekspresikan SBOM, yang ditentukan oleh Linux Foundation.

Scan biasanya lihat semua yang ada di sistem file gambar. Terkadang Anda mungkin ingin mengecualikan direktori tertentu untuk menghentikan beberapa paket yang ditampilkan di output. Berikan ekspresi glob ke flag –exclude untuk memfilter jalur tertentu. Anda dapat menggunakan ini untuk hanya mengindeks paket yang terkait dengan aplikasi Anda, alih-alih milik lapisan sistem operasi gambar.

$ docker sbom --exclude /var nginx:latest

Kadang-kadang Anda mungkin perlu memindai gambar yang dibuat untuk arsitektur yang berbeda dari platform Anda saat ini. Gunakan flag –platform untuk memilih varian multi-lengkungan yang berbeda, seperti linux atau arm64:

$ docker sbom --platform arm64 nginx:latest

Ini memungkinkan Anda mengindeks gambar yang telah Anda buat untuk platform lain tanpa beralih di antara perangkat keras fisik.

Penggunaan

Lebih banyak pengembang mulai mengenali manfaat SBOM. Mereka menyoroti daftar ketergantungan yang terlalu panjang, memberikan peluang pemangkasan yang mengurangi paparan ancaman Anda. Untuk konsumen perangkat lunak, SBOM adalah alat yang semakin penting ketika mengukur risiko yang disajikan oleh proyek baru. Mereka kemungkinan akan menjadi kiriman yang diperlukan untuk perangkat lunak yang ditugaskan oleh organisasi besar dan lembaga pemerintah.

Setelah Anda memiliki SBOM, data dapat digunakan dengan alat otomatis untuk menunjukkan masalah keamanan lebih lanjut. Sebagai contoh, Anda dapat meneruskan output docker sbom langsung ke Grype untuk mengidentifikasi CVE yang terkait dengan paket di image:

$ docker sbom --format syft-json nginx:latest | generasi grype

SBOM sebelumnya mengandalkan adopsi alat baru seperti Syft. Hal ini mengurangi kemampuan untuk ditemukan dan menjadikan SBOM sebagai tambahan baut, bukan sesuatu yang intrinsik pada artefak Anda. Dengan mengintegrasikan SBOM ke dalam Docker CLI, lebih banyak pengembang akan dapat menghasilkan laporan di seluruh siklus hidup perangkat lunak.

Implementasi sbom buruh pelabuhan saat ini dianggap eksperimental dan cakupannya terbatas. Di masa mendatang, data SBOM dapat diambil sebagai bagian dari proses pembuatan citra. docker sbom kemudian akan memunculkan informasi ini, alih-alih melakukan pemindaian aktif sesuai permintaan.

Mengintegrasikan SBOM ke dalam build docker akan menjadikannya komponen kelas satu dalam rantai alat kontainer, menjamin setiap gambar disertai dengan SBOM sepanjang masa pakainya. Menyimpan gambar dalam registri akan menyertakan SBOM yang sesuai, bahkan jika host registri memiliki celah udara dan tidak dapat melakukan pemindaian aktif. Fungsionalitas ini masih jauh. Versi docker sbom saat ini tetap menjadi alat yang ampuh yang membuat SBOM gambar kontainer lebih mudah untuk diproduksi.

Kesimpulan

Perintah docker sbom memungkinkan Anda menghasilkan SBOM untuk gambar Docker tanpa menginstal alat mandiri. CLI Docker terintegrasi dengan Syft untuk menyediakan pemindaian sesuai permintaan yang menghasilkan indeks paket yang ada di sistem file gambar.

Anda dapat mulai menggunakan docker sbom hari ini dengan memperbarui ke Docker Desktop v4.7.0 atau menginstal plugin SBOM untuk Docker Engine di Linux. Menghasilkan SBOM setiap kali Anda membangun gambar Anda akan membantu Anda mengidentifikasi dan mengatasi ketergantungan yang membengkak sebelum menjadi masalah. Anda sering dapat mengurangi jumlah paket dalam gambar Anda dengan beralih ke gambar dasar minimal seperti alpine dan menghapus dependensi bahasa pemrograman yang tidak digunakan.

Itulah berita seputar Cara Menggunakan “docker sbom” untuk Mengindeks Paket Gambar Docker Anda, semoga bermanfaat. Disadur dari HowToGeek.com.