Docker Scout: Cara Memindai Citra Container untuk Kerentanan
Docker Scout menganalisis citra container untuk kerentanan dan membuat Software Bill of Materials. Ini memberi visibilitas keamanan bawaan untuk alur kerja pengembangan berbasis Docker - tanpa perlu alat terpisah atau penyiapan rumit.
Ceritanya kurang lebih begini: Anda telah membangun citra Docker, memberi tag, dan men-deploy-nya. Semuanya terlihat baik sampai tim keamanan menandai kerentanan pada paket yang bahkan tidak Anda sadari ada. Atau yang lebih buruk, tim kepatuhan meminta Software Bill of Materials (SBOM) dan Anda bertanya-tanya bagaimana cara mengetahui dependensi apa saja yang ikut dikirim bersama citra Anda. Citra container bisa menjadi seperti kotak hitam, dan itu jadi masalah saat Anda bertanggung jawab atas apa yang berjalan di produksi.
Docker Scout memberi visibilitas terhadap citra container Anda dengan memindainya untuk kerentanan dan secara otomatis membuat SBOM. Fitur ini terintegrasi di Docker, jadi tidak ada alat terpisah yang perlu diinstal atau dipelajari.
Dalam panduan ini, saya akan menunjukkan cara memindai citra dengan Docker Scout dan memahami laporan kerentanan yang dihasilkannya, sehingga Anda tahu kapan masuk akal untuk menggunakannya.
Jika Anda baru menggunakan Docker, lihat artikel kami tentang 18 Perintah Docker Teratas. Ini akan menempatkan Anda di jalur yang tepat untuk membangun, menjalankan, dan mengelola container.
Apa Itu Docker Scout?
Docker Scout adalah alat analisis citra bawaan Docker yang memindai citra container Anda untuk kerentanan dan menghasilkan Software Bill of Materials (SBOM).
Ia menganalisis segala sesuatu di dalam citra Anda, mulai dari paket OS dasar, dependensi spesifik bahasa, hingga pustaka aplikasi. Kemudian mencocokkannya dengan basis data kerentanan yang sudah dikenal. Anda mendapatkan laporan yang menunjukkan paket mana yang bermasalah, seberapa parahnya, dan versi mana yang memperbaikinya.
Jadi alih-alih menggunakan pemindai pihak ketiga atau menunggu tim keamanan menandai masalah setelah deployment, Anda bisa memindai citra langsung di tempat Anda membangunnya. Scout berjalan di Docker Desktop, melalui CLI, dan terintegrasi dengan Docker Hub.
Begini posisinya dalam ekosistem Docker: Docker membangun dan menjalankan container Anda, Docker Hub menyimpannya, dan Docker Scout memberi tahu apa yang ada di dalamnya. Penting diingat bahwa ini kini menjadi bagian dari platform, bukan add-on terpisah.
Docker Scout menggantikan perintah docker scan yang lebih lama, yang bergantung pada mesin pemindaian Snyk. Scout menggunakan basis data kerentanan milik Docker dan memberi Anda kontrol lebih atas proses pemindaian. Jika Anda masih menggunakan docker scan, itu sudah tidak direkomendasikan lagi - Scout adalah penggantinya secara resmi dan sudah tersedia di versi Docker Desktop terbaru.
Menginstal dan Mengaktifkan Docker Scout
Docker Scout sudah terpasang di Docker Desktop 4.17 dan yang lebih baru, jadi jika Anda menjalankan versi terbaru, Anda sudah memilikinya.
Ini bekerja melalui Docker CLI dan muncul di antarmuka GUI Docker Desktop. Jika Anda menggunakan Docker Desktop, Scout aktif secara default - Anda bisa langsung mulai memindai citra.
Untuk memeriksa apakah Scout tersedia di sistem Anda, jalankan perintah ini:
Anda akan melihat output yang menampilkan versi CLI Scout dan status plugin.
Versi Docker Scout
Jika perintahnya berjalan, Anda siap memindai citra.
Jika Anda mendapatkan galat "command not found", versi Docker Anda terlalu lama. Perbarui Docker Desktop ke versi terbaru untuk mendapatkan akses ke Docker Scout.
Memindai Citra dengan Docker Scout
Menjalankan pemindaian hanya butuh satu perintah, dan itu bagian mudahnya. Yang kadang menantang adalah memahami temuan Scout.
Menganalisis citra
Anda dapat menjalankan perintah ini untuk memindai citra lokal dengan memberi nama atau ID-nya ke Docker Scout:
Scout menganalisis layer citra, mengekstrak informasi paket, dan memeriksa kerentanan yang diketahui. Pemindaian selesai dalam 30 detik untuk sebagian besar citra.
Hasil pemindaian untuk citra Python 3.14
Anda juga dapat memindai citra yang belum ada di mesin Anda:
Scout menarik metadata dari registry tanpa mengunduh citra penuh. Ini memungkinkan Anda memeriksa citra sebelum menariknya secara lokal.
Hasil pemindaian untuk citra Postgres 18.1
Selama analisis, Scout membongkar setiap layer, mengidentifikasi paket dan dependensi yang terpasang, lalu mencocokkan semuanya dengan basis data kerentanan. Ia melacak paket dari OS dasar (seperti paket apt pada citra berbasis Ubuntu) dan dependensi spesifik bahasa (seperti paket Python atau modul Node).
Memahami output
Scout mengelompokkan kerentanan berdasarkan tingkat keparahan: Kritis, Tinggi, Sedang, dan Rendah.
Kerentanan Kritis dan Tinggi perlu mendapat perhatian terlebih dahulu. Ini adalah isu yang aktif dieksploitasi atau bug parah yang dapat mengompromikan sistem Anda. Isu tingkat Sedang penting namun jarang butuh perbaikan segera. Kerentanan tingkat Rendah patut dipantau tetapi biasanya tidak menghambat deployment.
Setiap kerentanan menunjukkan paket mana yang mengandung masalah. Anda akan melihat output seperti ini saat menggulir laporan:
Laporan kerentanan
Ini memberi tahu Anda secara tepat apa yang rentan (openssl), versi berapa yang Anda jalankan, dan versi mana yang memperbaikinya. Scout juga menautkan ke detail CVE sehingga Anda dapat membaca sendiri tentang kerentanannya.
Atribusi paket menunjukkan dari mana asal kerentanan - paket citra dasar, dependensi aplikasi, atau pustaka sistem. Ini membantu Anda memutuskan apakah harus memperbarui citra dasar, meningkatkan versi dependensi dalam kode, atau menunggu perbaikan dari hulu (upstream).
Menggunakan Docker Scout untuk Membuat dan Melihat SBOM
Software Bill of Materials (SBOM) adalah inventaris lengkap dari semua yang ada dalam citra container Anda - setiap paket, pustaka, dan dependensi.
Ini memberi tahu Anda secara persis apa yang masuk ke citra Anda, hingga nomor versi spesifik. Tim keamanan menggunakan SBOM untuk melacak apa yang berjalan di produksi, dan kerangka kerja kepatuhan sering kali mewajibkannya.
Docker Scout membuat SBOM secara otomatis saat Anda memindai citra menggunakan perintah yang saya tunjukkan di bagian sebelumnya. Sekadar menegaskan kembali:
Perintah ini menampilkan daftar paket lengkap ke terminal Anda. Scout menganalisis layer citra dan mengekstrak metadata paket, lalu memformatnya sebagai SBOM yang dapat Anda simpan atau bagikan.
Anda dapat mengekspor SBOM ke berkas alih-alih menampilkannya di layar:
docker scout sbom postgres:18.1 --format spdx > postgres-sbom.jsonDidukung oleh
Laporan SBOM SPDX
Scout mendukung dua format SBOM standar: SPDX (Software Package Data Exchange) dan CycloneDX. Keduanya merupakan standar yang luas digunakan di industri. SPDX cocok untuk kepatuhan dan tinjauan legal, sementara CycloneDX berfokus pada kasus keamanan dan pelacakan kerentanan.
Anda dapat beralih antar format dengan flag --format:
docker scout sbom postgres:18.1 --format cyclonedx > postgres-sbom.jsonDidukung oleh
Laporan SBOX CycloneDX
Setelah memiliki berkas SBOM, Anda dapat membagikannya dengan tim keamanan, memasukkannya ke alat pemindaian lain, atau mengarsipkannya untuk audit kepatuhan.
Menemukan dan Memahami CVE dengan Docker Scout
Docker Scout menemukan kerentanan dengan mencocokkan paket dalam citra Anda terhadap basis data isu keamanan yang diketahui.
Saat Anda menjalankan docker scout cves, Scout mengekstrak setiap paket dari citra Anda - paket OS, pustaka bahasa, dependensi aplikasi - lalu memeriksa masing-masing terhadap catatan Common Vulnerabilities and Exposures (CVE). CVE adalah cacat keamanan yang diungkap publik dengan ID unik seperti CVE-2024-1234.
Scout menarik data CVE dari berbagai sumber:
National Vulnerability Database (NVD)
Pemberitahuan keamanan dari distribusi Linux
Basis data keamanan spesifik bahasa untuk Python, Node.js, Go, dan ekosistem lainnya
Artinya Scout dapat menangkap kerentanan baik pada paket OS citra dasar maupun dependensi aplikasi Anda.
Namun demikian, penting untuk Anda ingat analisis bekerja berbeda tergantung di mana citra Anda berada.
Untuk citra lokal (yang telah Anda bangun atau tarik ke mesin Anda), Scout membaca layer citra langsung dari daemon Docker Anda. Ia membongkar setiap layer, mengidentifikasi paket, dan menjalankan pemeriksaan kerentanan secara lokal. Ini cepat dan tidak memerlukan akses jaringan ke citranya.
Untuk citra jarak jauh di Docker Hub atau registry lain, Scout mengambil manifest citra dan metadata layer tanpa mengunduh citra penuh. Ini memungkinkan Anda memindai citra sebelum menariknya. Data kerentanan tetap berasal dari basis data Scout, namun analisis citra dilakukan terhadap metadata registry.
Kedua metode memberikan informasi kerentanan yang sama. Perbedaannya hanya pada dari mana Scout membaca data citra.
Panduan Remediasi dan Rekomendasi Citra Dasar
Saat Scout menemukan kerentanan yang tersedia patch-nya, ia menampilkan versi tepat yang memperbaiki masalah tersebut. Anda akan melihat output seperti "Fixed in: 1.2.3" di samping setiap CVE. Ini memberi tahu Anda apakah perlu memperbarui paket, membangun ulang citra dengan basis yang lebih baru, atau menunggu perbaikan dari upstream.
Scout juga merekomendasikan peningkatan citra dasar ketika beralih ke basis yang lebih baru dapat menghilangkan kerentanan. Jika Anda menggunakan python:3.13 dan Scout menemukan masalah pada paket OS dasar, ia mungkin menyarankan peningkatan ke python:3.14 atau bahkan versi patch yang lebih spesifik.
Rekomendasi ini muncul ketika Scout mendeteksi bahwa tag citra dasar lain memiliki lebih sedikit kerentanan daripada yang Anda gunakan saat ini. Saran ini dapat langsung ditindaklanjuti - Anda bisa menyalin tag baru ke Dockerfile dan membangun ulang.
Lalu, mengapa ini penting?
Citra dasar Anda berisi paket OS, pustaka sistem, dan runtime bahasa yang menjadi sandaran semua komponen lainnya. Citra dasar yang rentan berarti setiap container yang Anda bangun darinya akan mewarisi kerentanan tersebut. Saat Anda memilih citra dasar yang minimal dan aktif dipelihara, Anda mengurangi permukaan serangan.
Citra resmi dari Docker Hub menerima pembaruan keamanan secara berkala, tetapi Anda tetap perlu membangun ulang citra Anda untuk mendapatkan perbaikan itu. Misalnya, menarik python:3.13 hari ini akan memberi Anda paket yang berbeda dibanding menariknya enam bulan lalu.
Menggunakan Docker Scout di CI/CD
Tim mengintegrasikan Docker Scout ke pipeline CI untuk menangkap kerentanan sebelum citra masuk ke produksi.
Idenya sederhana: pindai setiap citra sebagai bagian dari proses build, lalu gagalkan build jika muncul kerentanan tingkat kritis. Anda menemukan masalah saat pengembangan alih-alih setelah deployment. Kebanyakan tim menyiapkan Scout untuk berjalan otomatis setiap kali seseorang mendorong Dockerfile baru atau memperbarui citra dasar.
Pipeline biasanya memeriksa dua hal:
Regresi kerentanan - Ini membandingkan citra baru Anda dengan versi sebelumnya. Jika build baru memperkenalkan lebih banyak kerentanan Kritis atau Tinggi daripada yang terakhir, pipeline gagal. Ini mencegah Anda tanpa sengaja merilis keamanan yang lebih buruk daripada yang sudah berjalan
Penyelewengan kebijakan - Ini memverifikasi bahwa citra Anda memenuhi standar keamanan. Anda mungkin memiliki kebijakan seperti "tidak boleh ada CVE Kritis" atau "citra dasar harus berusia kurang dari 30 hari." Scout dapat menegakkan aturan ini secara otomatis dalam alur kerja CI Anda
Integrasi dengan GitHub Actions, GitLab CI, atau Jenkins secara konsep sama. Anda membangun citra, menjalankan docker scout cves padanya, mengurai hasilnya, dan memutuskan apakah akan meloloskan atau menggagalkan pipeline berdasarkan kriteria Anda. Beberapa tim mengintegrasikan Scout ke alur kerja registry container mereka untuk memindai citra tepat setelah didorong.
Docker Scout vs. Pemindai Citra Lain
Docker Scout bukan satu-satunya alat yang tersedia. Ia bersaing dengan alat seperti Trivy dan Snyk, tetapi masing-masing menargetkan alur kerja yang berbeda.
Trivy adalah pemindai open-source yang dapat berjalan di mana saja, dari mesin lokal, pipeline CI, hingga kluster Kubernetes. Ia memindai citra container, filesystem, dan repositori Git. Trivy memberi Anda fleksibilitas lebih dalam tempat dan cara memindai, dan Anda tidak memerlukan akun Docker untuk menggunakannya. Anggap saja sebagai pemindai mandiri yang bekerja terlepas dari ekosistem Docker.
Snyk berfokus pada alur kerja pengembang dan terintegrasi mendalam dengan IDE, GitHub, dan alat pengembangan lainnya. Selain container, ia memindai dependensi aplikasi, infrastructure as code, dan kode sumber. Snyk juga memberi panduan remediasi terperinci dan dapat membuka pull request untuk memperbaiki kerentanan. Jika Anda memerlukan cakupan keamanan di seluruh tumpukan, bukan hanya container, Snyk adalah pilihan yang masuk akal.
Docker Scout bekerja paling baik saat Anda sudah menggunakan Docker Desktop dan Docker Hub. Integrasinya native, tidak ada penyiapan tambahan, tidak ada kunci API untuk dikelola, dan tidak ada alat terpisah untuk dipelajari. Scout memindai citra yang didorong ke Docker Hub, dan CLI menjadi bagian dari instalasi Docker Anda.
Pilih Docker Scout jika tim Anda membangun dan menjalankan container dengan alat Docker dan Anda menginginkan visibilitas keamanan tanpa menambah kompleksitas. Pilih Trivy jika Anda memerlukan opsi open-source yang fleksibel dan bekerja di mana saja. Pilih Snyk jika Anda menginginkan keamanan menyeluruh di container, kode, dan infrastruktur dengan perbaikan otomatis.
Keterbatasan Umum dan Hal yang Perlu Diketahui
Docker Scout memindai citra container, tetapi tidak memantau apa yang terjadi setelah Anda men-deploy-nya.
Ia menganalisis citra statis - paket dan berkas yang dibangun ke dalam container Anda. Ia tidak dapat mendeteksi isu runtime seperti serangan eskalasi hak istimewa, penyusupan jaringan, atau proses berbahaya yang berjalan setelah deployment. Jika Anda memerlukan pemantauan keamanan runtime, Anda memerlukan alat seperti Falco atau Sysdig yang mengamati perilaku container di produksi.
Scout juga bukan pengganti untuk SAST (Static Application Security Testing) atau DAST (Dynamic Application Security Testing) penuh. Alat SAST menganalisis kode sumber Anda untuk cacat keamanan sebelum apa pun dibangun. Alat DAST menguji aplikasi yang berjalan dengan mensimulasikan serangan. Scout hanya melihat paket di dalam citra yang sudah dibangun - ia tidak akan menangkap kerentanan dalam logika aplikasi Anda atau kesalahan konfigurasi dalam kode.
Yang dilakukan Scout dengan baik adalah memberi visibilitas terhadap isi citra Anda dan membimbing Anda menuju perbaikan. Ia memberi tahu paket mana yang rentan, versi mana yang memperbaikinya, dan citra dasar mana yang mengurangi kemungkinan serangan. Ini membuat Scout berguna untuk pemeriksaan keamanan saat build dan pelacakan kepatuhan, namun Anda memerlukan alat lain untuk mencakup aspek keamanan secara menyeluruh.
Praktik Terbaik Menggunakan Docker Scout
Berikut daftar periksa yang dapat Anda gunakan untuk memaksimalkan Docker Scout.
Pindai sejak awal siklus pengembangan. Jalankan Scout pada citra selama pengembangan lokal, bukan hanya di CI atau sebelum deployment. Menemukan kerentanan lebih awal berarti Anda memperbaikinya saat konteks masih segar dan perubahan masih murah. Menunggu hingga produksi berarti terburu-buru menambal masalah di bawah tekanan.
Bandingkan citra dari waktu ke waktu untuk melacak tren keamanan. Scout dapat menunjukkan apakah keamanan Anda membaik atau memburuk. Jalankan pemindaian pada setiap build dan bandingkan hasilnya. Jika build baru memperkenalkan lebih banyak kerentanan kritis dibanding yang sebelumnya, ada sesuatu yang berubah - mungkin pembaruan dependensi atau pergeseran citra dasar. Anda perlu menyelidikinya.
Perlakukan temuan Scout sebagai sinyal prioritas, bukan penghalang mutlak. Tidak setiap kerentanan perlu tindakan segera. CVE tingkat rendah pada dependensi pengembangan yang tidak Anda gunakan di produksi bisa menunggu. CVE kritis pada layanan yang terekspos publik perlu perhatian segera. Gunakan penilaian keparahan Scout dan konteks paket untuk memutuskan apa yang penting bagi deployment spesifik Anda.
Padukan Scout dengan kebersihan citra dasar. Pilih citra dasar yang minimal dan aktif dipelihara serta perbarui secara rutin. Menggunakan python:3.14-slim alih-alih python:3.14 mengurangi paket yang tidak Anda butuhkan. Membangun ulang citra Anda setiap bulan akan mengambil patch keamanan di layer dasar. Scout dapat memberi tahu apa yang rentan, tetapi memilih basis yang baik mencegah banyak kerentanan muncul sejak awal.
Kesimpulan
Docker Scout memberi Anda cara praktis untuk mulai memahami apa yang ada di dalam citra container Anda.
Ini cocok dengan pengembangan berbasis Docker - tidak ada alat terpisah untuk diinstal, tidak ada akun yang perlu disiapkan selain yang sudah Anda gunakan. Anda menjalankan perintah, mendapatkan laporan kerentanan, dan melihat paket mana yang perlu diperbarui.
Scout bekerja paling baik sebagai bagian dari pendekatan keamanan yang lebih luas, bukan satu-satunya pilihan Anda. Padukan dengan pemantauan runtime, analisis kode sumber, dan pembaruan rutin citra dasar. Gunakan untuk menangkap kerentanan saat build, lalu tambahkan alat lain untuk mencakup apa yang terjadi setelah deployment.
Jika Anda ingin tahu bagaimana Docker cocok dalam pipeline CI/CD untuk machine learning, daftarkan diri Anda di kursus CI/CD for Machine Learning. Anda akan mendapatkan semua jawabannya dalam satu sore.
Senior Data Scientist yang berbasis di Kroasia. Penulis Tekno Teratas dengan lebih dari 700 artikel yang telah diterbitkan, menghasilkan lebih dari 10 juta tayangan. Penulis buku Machine Learning Automation with TPOT.
FAQ Docker Scout
Bagaimana Docker Scout membantu mengotomatisasi pemindaian kerentanan dalam pipeline CI/CD?⌄
Docker Scout terintegrasi ke dalam pipeline CI/CD dengan menjalankan pemindaian secara otomatis setiap kali Anda membangun citra baru. Anda dapat mengonfigurasi pipeline untuk menggagalkan build yang memperkenalkan kerentanan Kritis atau Tinggi, sehingga mencegah citra tidak aman mencapai produksi. Scout memeriksa regresi kerentanan dan pelanggaran kebijakan, sehingga tim Anda menangkap isu keamanan selama proses build alih-alih setelah deployment.
Apa perbedaan utama antara Docker Scout dan alat pemindaian container lain seperti Trivy atau Snyk?⌄
Docker Scout terpasang di Docker dan tidak memerlukan instalasi terpisah, menjadikannya paling mudah untuk tim yang sudah menggunakan Docker Desktop dan Docker Hub. Trivy adalah pemindai open-source yang berjalan secara mandiri dan bekerja di mana saja tanpa memerlukan akun atau integrasi Docker. Snyk menyediakan cakupan lebih luas di container, kode sumber, dan infrastruktur dengan saran perbaikan otomatis, tetapi memerlukan langganan dan penyiapan terpisah.
Bagaimana Docker Scout berintegrasi dengan sistem pihak ketiga seperti GitHub atau JFrog Artifactory?⌄
Docker Scout dapat dipanggil dari GitHub Actions, GitLab CI, atau alat pipeline lainnya menggunakan perintah Docker CLI. Anda menjalankan docker scout cves sebagai bagian dari alur build, lalu mengurai hasilnya untuk memutuskan apakah pipeline diloloskan atau digagalkan. Untuk registry seperti JFrog Artifactory, Anda dapat memindai citra setelah didorong dengan mereferensikannya secara jarak jauh, meskipun integrasi bergantung pada pengaturan registry spesifik dan autentikasi Anda.
Apakah Docker Scout dapat digunakan untuk memantau keamanan container secara real-time?⌄
Tidak, Docker Scout hanya memindai citra container statis, bukan container yang sedang berjalan. Ia menganalisis apa yang ada di dalam citra yang sudah dibangun sebelum atau sesudah deployment, tetapi tidak memantau perilaku runtime seperti eksekusi proses, aktivitas jaringan, atau serangan eskalasi hak istimewa. Untuk pemantauan keamanan runtime, Anda memerlukan alat khusus seperti Falco atau Sysdig yang memantau perilaku container di lingkungan produksi.
Apa manfaat menggunakan Docker Scout untuk mengelola keamanan rantai pasok perangkat lunak?⌄
Docker Scout menghasilkan Software Bills of Materials (SBOM) yang mendokumentasikan setiap paket dan dependensi dalam citra Anda, memberi visibilitas lengkap atas rantai pasok perangkat lunak Anda. Ini membantu persyaratan kepatuhan, respons insiden, dan pelacakan sistem mana yang terdampak saat kerentanan baru diungkapkan. Scout juga menunjukkan asal kerentanan - citra dasar, dependensi aplikasi, atau pustaka sistem - sehingga Anda dapat menelusuri isu keamanan ke sumbernya dan memperbaiki pada level yang tepat.
Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Pelajari kekuatan Docker dan Kubernetes, jalur interaktif ini akan memungkinkan Anda untuk membangun dan mengimplementasikan aplikasi di lingkungan modern.
Ceritanya kurang lebih begini: Anda telah membangun citra Docker, memberi tag, dan men-deploy-nya. Semuanya terlihat baik sampai tim keamanan menandai kerentanan pada paket yang bahkan tidak Anda sadari ada. Atau yang lebih buruk, tim kepatuhan meminta Software Bill of Materials (SBOM) dan Anda bertanya-tanya bagaimana cara mengetahui dependensi apa saja yang ikut dikirim bersama citra Anda. Citra container bisa menjadi seperti kotak hitam, dan itu jadi masalah saat Anda bertanggung jawab atas apa yang berjalan di produksi.
Docker Scout memberi visibilitas terhadap citra container Anda dengan memindainya untuk kerentanan dan secara otomatis membuat SBOM. Fitur ini terintegrasi di Docker, jadi tidak ada alat terpisah yang perlu diinstal atau dipelajari.
Dalam panduan ini, saya akan menunjukkan cara memindai citra dengan Docker Scout dan memahami laporan kerentanan yang dihasilkannya, sehingga Anda tahu kapan masuk akal untuk menggunakannya.
Jika Anda baru menggunakan Docker, lihat artikel kami tentang 18 Perintah Docker Teratas. Ini akan menempatkan Anda di jalur yang tepat untuk membangun, menjalankan, dan mengelola container.
Apa Itu Docker Scout?
Docker Scout adalah alat analisis citra bawaan Docker yang memindai citra container Anda untuk kerentanan dan menghasilkan Software Bill of Materials (SBOM).
Ia menganalisis segala sesuatu di dalam citra Anda, mulai dari paket OS dasar, dependensi spesifik bahasa, hingga pustaka aplikasi. Kemudian mencocokkannya dengan basis data kerentanan yang sudah dikenal. Anda mendapatkan laporan yang menunjukkan paket mana yang bermasalah, seberapa parahnya, dan versi mana yang memperbaikinya.
Jadi alih-alih menggunakan pemindai pihak ketiga atau menunggu tim keamanan menandai masalah setelah deployment, Anda bisa memindai citra langsung di tempat Anda membangunnya. Scout berjalan di Docker Desktop, melalui CLI, dan terintegrasi dengan Docker Hub.
Begini posisinya dalam ekosistem Docker: Docker membangun dan menjalankan container Anda, Docker Hub menyimpannya, dan Docker Scout memberi tahu apa yang ada di dalamnya. Penting diingat bahwa ini kini menjadi bagian dari platform, bukan add-on terpisah.
Docker Scout menggantikan perintah
docker scanyang lebih lama, yang bergantung pada mesin pemindaian Snyk. Scout menggunakan basis data kerentanan milik Docker dan memberi Anda kontrol lebih atas proses pemindaian. Jika Anda masih menggunakandocker scan, itu sudah tidak direkomendasikan lagi - Scout adalah penggantinya secara resmi dan sudah tersedia di versi Docker Desktop terbaru.Menginstal dan Mengaktifkan Docker Scout
Docker Scout sudah terpasang di Docker Desktop 4.17 dan yang lebih baru, jadi jika Anda menjalankan versi terbaru, Anda sudah memilikinya.
Ini bekerja melalui Docker CLI dan muncul di antarmuka GUI Docker Desktop. Jika Anda menggunakan Docker Desktop, Scout aktif secara default - Anda bisa langsung mulai memindai citra.
Untuk memeriksa apakah Scout tersedia di sistem Anda, jalankan perintah ini:
Anda akan melihat output yang menampilkan versi CLI Scout dan status plugin.
Versi Docker Scout
Jika perintahnya berjalan, Anda siap memindai citra.
Jika Anda mendapatkan galat "command not found", versi Docker Anda terlalu lama. Perbarui Docker Desktop ke versi terbaru untuk mendapatkan akses ke Docker Scout.
Memindai Citra dengan Docker Scout
Menjalankan pemindaian hanya butuh satu perintah, dan itu bagian mudahnya. Yang kadang menantang adalah memahami temuan Scout.
Menganalisis citra
Anda dapat menjalankan perintah ini untuk memindai citra lokal dengan memberi nama atau ID-nya ke Docker Scout:
Scout menganalisis layer citra, mengekstrak informasi paket, dan memeriksa kerentanan yang diketahui. Pemindaian selesai dalam 30 detik untuk sebagian besar citra.
Hasil pemindaian untuk citra Python 3.14
Anda juga dapat memindai citra yang belum ada di mesin Anda:
Scout menarik metadata dari registry tanpa mengunduh citra penuh. Ini memungkinkan Anda memeriksa citra sebelum menariknya secara lokal.
Hasil pemindaian untuk citra Postgres 18.1
Selama analisis, Scout membongkar setiap layer, mengidentifikasi paket dan dependensi yang terpasang, lalu mencocokkan semuanya dengan basis data kerentanan. Ia melacak paket dari OS dasar (seperti paket
aptpada citra berbasis Ubuntu) dan dependensi spesifik bahasa (seperti paket Python atau modul Node).Memahami output
Scout mengelompokkan kerentanan berdasarkan tingkat keparahan: Kritis, Tinggi, Sedang, dan Rendah.
Kerentanan Kritis dan Tinggi perlu mendapat perhatian terlebih dahulu. Ini adalah isu yang aktif dieksploitasi atau bug parah yang dapat mengompromikan sistem Anda. Isu tingkat Sedang penting namun jarang butuh perbaikan segera. Kerentanan tingkat Rendah patut dipantau tetapi biasanya tidak menghambat deployment.
Setiap kerentanan menunjukkan paket mana yang mengandung masalah. Anda akan melihat output seperti ini saat menggulir laporan:
Laporan kerentanan
Ini memberi tahu Anda secara tepat apa yang rentan (
openssl), versi berapa yang Anda jalankan, dan versi mana yang memperbaikinya. Scout juga menautkan ke detail CVE sehingga Anda dapat membaca sendiri tentang kerentanannya.Atribusi paket menunjukkan dari mana asal kerentanan - paket citra dasar, dependensi aplikasi, atau pustaka sistem. Ini membantu Anda memutuskan apakah harus memperbarui citra dasar, meningkatkan versi dependensi dalam kode, atau menunggu perbaikan dari hulu (upstream).
Menggunakan Docker Scout untuk Membuat dan Melihat SBOM
Software Bill of Materials (SBOM) adalah inventaris lengkap dari semua yang ada dalam citra container Anda - setiap paket, pustaka, dan dependensi.
Ini memberi tahu Anda secara persis apa yang masuk ke citra Anda, hingga nomor versi spesifik. Tim keamanan menggunakan SBOM untuk melacak apa yang berjalan di produksi, dan kerangka kerja kepatuhan sering kali mewajibkannya.
Docker Scout membuat SBOM secara otomatis saat Anda memindai citra menggunakan perintah yang saya tunjukkan di bagian sebelumnya. Sekadar menegaskan kembali:
Perintah ini menampilkan daftar paket lengkap ke terminal Anda. Scout menganalisis layer citra dan mengekstrak metadata paket, lalu memformatnya sebagai SBOM yang dapat Anda simpan atau bagikan.
Anda dapat mengekspor SBOM ke berkas alih-alih menampilkannya di layar:
Laporan SBOM SPDX
Scout mendukung dua format SBOM standar: SPDX (Software Package Data Exchange) dan CycloneDX. Keduanya merupakan standar yang luas digunakan di industri. SPDX cocok untuk kepatuhan dan tinjauan legal, sementara CycloneDX berfokus pada kasus keamanan dan pelacakan kerentanan.
Anda dapat beralih antar format dengan flag
--format:Laporan SBOX CycloneDX
Setelah memiliki berkas SBOM, Anda dapat membagikannya dengan tim keamanan, memasukkannya ke alat pemindaian lain, atau mengarsipkannya untuk audit kepatuhan.
Menemukan dan Memahami CVE dengan Docker Scout
Docker Scout menemukan kerentanan dengan mencocokkan paket dalam citra Anda terhadap basis data isu keamanan yang diketahui.
Saat Anda menjalankan
docker scout cves, Scout mengekstrak setiap paket dari citra Anda - paket OS, pustaka bahasa, dependensi aplikasi - lalu memeriksa masing-masing terhadap catatan Common Vulnerabilities and Exposures (CVE). CVE adalah cacat keamanan yang diungkap publik dengan ID unik seperti CVE-2024-1234.Scout menarik data CVE dari berbagai sumber:
Artinya Scout dapat menangkap kerentanan baik pada paket OS citra dasar maupun dependensi aplikasi Anda.
Namun demikian, penting untuk Anda ingat analisis bekerja berbeda tergantung di mana citra Anda berada.
Kedua metode memberikan informasi kerentanan yang sama. Perbedaannya hanya pada dari mana Scout membaca data citra.
Panduan Remediasi dan Rekomendasi Citra Dasar
Saat Scout menemukan kerentanan yang tersedia patch-nya, ia menampilkan versi tepat yang memperbaiki masalah tersebut. Anda akan melihat output seperti "Fixed in: 1.2.3" di samping setiap CVE. Ini memberi tahu Anda apakah perlu memperbarui paket, membangun ulang citra dengan basis yang lebih baru, atau menunggu perbaikan dari upstream.
Scout juga merekomendasikan peningkatan citra dasar ketika beralih ke basis yang lebih baru dapat menghilangkan kerentanan. Jika Anda menggunakan
python:3.13dan Scout menemukan masalah pada paket OS dasar, ia mungkin menyarankan peningkatan kepython:3.14atau bahkan versi patch yang lebih spesifik.Rekomendasi ini muncul ketika Scout mendeteksi bahwa tag citra dasar lain memiliki lebih sedikit kerentanan daripada yang Anda gunakan saat ini. Saran ini dapat langsung ditindaklanjuti - Anda bisa menyalin tag baru ke Dockerfile dan membangun ulang.
Lalu, mengapa ini penting?
Citra dasar Anda berisi paket OS, pustaka sistem, dan runtime bahasa yang menjadi sandaran semua komponen lainnya. Citra dasar yang rentan berarti setiap container yang Anda bangun darinya akan mewarisi kerentanan tersebut. Saat Anda memilih citra dasar yang minimal dan aktif dipelihara, Anda mengurangi permukaan serangan.
Citra resmi dari Docker Hub menerima pembaruan keamanan secara berkala, tetapi Anda tetap perlu membangun ulang citra Anda untuk mendapatkan perbaikan itu. Misalnya, menarik
python:3.13hari ini akan memberi Anda paket yang berbeda dibanding menariknya enam bulan lalu.Menggunakan Docker Scout di CI/CD
Tim mengintegrasikan Docker Scout ke pipeline CI untuk menangkap kerentanan sebelum citra masuk ke produksi.
Idenya sederhana: pindai setiap citra sebagai bagian dari proses build, lalu gagalkan build jika muncul kerentanan tingkat kritis. Anda menemukan masalah saat pengembangan alih-alih setelah deployment. Kebanyakan tim menyiapkan Scout untuk berjalan otomatis setiap kali seseorang mendorong Dockerfile baru atau memperbarui citra dasar.
Pipeline biasanya memeriksa dua hal:
Integrasi dengan GitHub Actions, GitLab CI, atau Jenkins secara konsep sama. Anda membangun citra, menjalankan
docker scout cvespadanya, mengurai hasilnya, dan memutuskan apakah akan meloloskan atau menggagalkan pipeline berdasarkan kriteria Anda. Beberapa tim mengintegrasikan Scout ke alur kerja registry container mereka untuk memindai citra tepat setelah didorong.Docker Scout vs. Pemindai Citra Lain
Docker Scout bukan satu-satunya alat yang tersedia. Ia bersaing dengan alat seperti Trivy dan Snyk, tetapi masing-masing menargetkan alur kerja yang berbeda.
Pilih Docker Scout jika tim Anda membangun dan menjalankan container dengan alat Docker dan Anda menginginkan visibilitas keamanan tanpa menambah kompleksitas. Pilih Trivy jika Anda memerlukan opsi open-source yang fleksibel dan bekerja di mana saja. Pilih Snyk jika Anda menginginkan keamanan menyeluruh di container, kode, dan infrastruktur dengan perbaikan otomatis.
Keterbatasan Umum dan Hal yang Perlu Diketahui
Docker Scout memindai citra container, tetapi tidak memantau apa yang terjadi setelah Anda men-deploy-nya.
Ia menganalisis citra statis - paket dan berkas yang dibangun ke dalam container Anda. Ia tidak dapat mendeteksi isu runtime seperti serangan eskalasi hak istimewa, penyusupan jaringan, atau proses berbahaya yang berjalan setelah deployment. Jika Anda memerlukan pemantauan keamanan runtime, Anda memerlukan alat seperti Falco atau Sysdig yang mengamati perilaku container di produksi.
Scout juga bukan pengganti untuk SAST (Static Application Security Testing) atau DAST (Dynamic Application Security Testing) penuh. Alat SAST menganalisis kode sumber Anda untuk cacat keamanan sebelum apa pun dibangun. Alat DAST menguji aplikasi yang berjalan dengan mensimulasikan serangan. Scout hanya melihat paket di dalam citra yang sudah dibangun - ia tidak akan menangkap kerentanan dalam logika aplikasi Anda atau kesalahan konfigurasi dalam kode.
Yang dilakukan Scout dengan baik adalah memberi visibilitas terhadap isi citra Anda dan membimbing Anda menuju perbaikan. Ia memberi tahu paket mana yang rentan, versi mana yang memperbaikinya, dan citra dasar mana yang mengurangi kemungkinan serangan. Ini membuat Scout berguna untuk pemeriksaan keamanan saat build dan pelacakan kepatuhan, namun Anda memerlukan alat lain untuk mencakup aspek keamanan secara menyeluruh.
Praktik Terbaik Menggunakan Docker Scout
Berikut daftar periksa yang dapat Anda gunakan untuk memaksimalkan Docker Scout.
Pindai sejak awal siklus pengembangan. Jalankan Scout pada citra selama pengembangan lokal, bukan hanya di CI atau sebelum deployment. Menemukan kerentanan lebih awal berarti Anda memperbaikinya saat konteks masih segar dan perubahan masih murah. Menunggu hingga produksi berarti terburu-buru menambal masalah di bawah tekanan.
Bandingkan citra dari waktu ke waktu untuk melacak tren keamanan. Scout dapat menunjukkan apakah keamanan Anda membaik atau memburuk. Jalankan pemindaian pada setiap build dan bandingkan hasilnya. Jika build baru memperkenalkan lebih banyak kerentanan kritis dibanding yang sebelumnya, ada sesuatu yang berubah - mungkin pembaruan dependensi atau pergeseran citra dasar. Anda perlu menyelidikinya.
Perlakukan temuan Scout sebagai sinyal prioritas, bukan penghalang mutlak. Tidak setiap kerentanan perlu tindakan segera. CVE tingkat rendah pada dependensi pengembangan yang tidak Anda gunakan di produksi bisa menunggu. CVE kritis pada layanan yang terekspos publik perlu perhatian segera. Gunakan penilaian keparahan Scout dan konteks paket untuk memutuskan apa yang penting bagi deployment spesifik Anda.
Padukan Scout dengan kebersihan citra dasar. Pilih citra dasar yang minimal dan aktif dipelihara serta perbarui secara rutin. Menggunakan
python:3.14-slimalih-alihpython:3.14mengurangi paket yang tidak Anda butuhkan. Membangun ulang citra Anda setiap bulan akan mengambil patch keamanan di layer dasar. Scout dapat memberi tahu apa yang rentan, tetapi memilih basis yang baik mencegah banyak kerentanan muncul sejak awal.Kesimpulan
Docker Scout memberi Anda cara praktis untuk mulai memahami apa yang ada di dalam citra container Anda.
Ini cocok dengan pengembangan berbasis Docker - tidak ada alat terpisah untuk diinstal, tidak ada akun yang perlu disiapkan selain yang sudah Anda gunakan. Anda menjalankan perintah, mendapatkan laporan kerentanan, dan melihat paket mana yang perlu diperbarui.
Scout bekerja paling baik sebagai bagian dari pendekatan keamanan yang lebih luas, bukan satu-satunya pilihan Anda. Padukan dengan pemantauan runtime, analisis kode sumber, dan pembaruan rutin citra dasar. Gunakan untuk menangkap kerentanan saat build, lalu tambahkan alat lain untuk mencakup apa yang terjadi setelah deployment.
Jika Anda ingin tahu bagaimana Docker cocok dalam pipeline CI/CD untuk machine learning, daftarkan diri Anda di kursus CI/CD for Machine Learning. Anda akan mendapatkan semua jawabannya dalam satu sore.