GNU/Linux >> Belajar Linux >  >> Panels >> Docker

Cara Menggunakan Pemindaian Docker untuk Menemukan Kerentanan di Gambar Anda

Docker sekarang dikirimkan dengan dukungan pemindaian keamanan bawaan. Anda dapat memindai gambar container secara lokal untuk mengidentifikasi kemungkinan kerentanan. Ini mempercepat siklus pengembangan dengan memberikan umpan balik yang lebih cepat dibandingkan dengan pipeline CI dan layanan cloud.

scan perintah tersedia secara default di Docker versi 20.10. Docker bermitra dengan Snyk untuk menghadirkan pemindaian keamanan ke CLI-nya. Prompt persetujuan satu kali akan muncul saat pertama kali Anda menjalankan perintah. Ketik “y” dan tekan enter untuk mengonfirmasi integrasi Snyk.

Selain menyetujui Snyk, pemindaian kontainer juga memerlukan login Docker Hub. Jalankan docker login untuk memberikan nama pengguna dan kata sandi Anda sebelum Anda mulai memindai.

Coba jalankan docker scan --version untuk memeriksa instalasi Anda. Anda akan melihat nomor versi scan pengaya. Keluaran juga memberi nama penyedia pemindaian keamanan yang scan akan menggunakan (saat ini Snyk). Penyedia tambahan dapat ditambahkan di masa mendatang.

Cara Kerja Pemindaian

docker scan menerima nama gambar sebagai parameter. Ini akan memindai gambar terhadap database kerentanan kontainer Snyk. Berbagai masalah tercakup, mulai dari gambar dasar yang usang hingga eksploitasi terhadap pustaka perangkat lunak sumber terbuka yang Anda gunakan.

Snyk dapat menunjukkan kepada Anda Dockerfile garis yang memperkenalkan kerentanan. Ini memberi Anda titik awal langsung saat Anda menyelesaikan setiap masalah. Hasilnya akan langsung muncul di terminal Anda setelah pemindaian selesai.

Basis data Snyk terus diperbarui dengan kerentanan baru. Jangan berasumsi bahwa gambar yang melewati pemindaian sekali akan selalu mendapatkan hasil yang sama di masa mendatang. Ini adalah praktik yang baik untuk memindai gambar secara teratur agar beban kerja Anda tetap aman.

Memindai Gambar

Cara paling sederhana untuk memindai gambar adalah dengan meneruskan tag ke docker scan :

docker scan hello-world:latest

Pemindaian mungkin membutuhkan waktu beberapa detik untuk diselesaikan. Gambar yang lebih besar akan membutuhkan lebih banyak waktu. Hasilnya akan ditampilkan di terminal Anda setelah tersedia. Contoh keluaran dari pemindaian yang berhasil ditunjukkan di atas.

Meskipun mendapatkan semuanya dengan jelas mungkin menyenangkan, docker scan output jauh lebih menarik ketika kerentanan terdeteksi. Berikut pemindaian yang menemukan beberapa masalah.

Setiap masalah memiliki deskripsi singkat, indikasi tingkat keparahannya, dan tautan untuk mendapatkan informasi lebih lanjut di situs web Snyk.

Pemindaian Lebih Lanjut

docker scan memiliki lebih banyak fungsi daripada contoh dasar di atas. Anda dapat menyesuaikan perilaku pemindaian menggunakan beberapa tanda.

Bisa dibilang, flag yang paling berguna adalah --file . Ini mengambil jalur ke Dockerfile gambar . Saat Anda memberikan Dockerfile kepada Snyk, Snyk dapat melakukan analisis yang lebih detail berdasarkan kontennya. Beberapa fitur pemindaian, seperti deteksi gambar dasar yang ketinggalan zaman, hanya tersedia bila Anda menyediakan Dockerfile gambar Anda .

docker scan hello-world:latest --file Dockerfile

Ini akan menghasilkan output seperti berikut:

Tested 100 dependencies for known issues, found 50 issues.

According to our scan, you are currently using the most secure version of the selected base image.

Baris terakhir akan menunjukkan apakah gambar dasar Anda—FROM instruksi di Dockerfile . Anda —aman. Saran tag alternatif akan ditampilkan jika gambar sudah usang atau mengandung kerentanan yang telah diatasi.

Terkadang, Anda mungkin ingin menjalankan pemindaian yang mengabaikan kerentanan pada gambar dasar Anda. Lewati --exclude-base bendera untuk mencapai ini. Ini berguna jika gambar dasar berisi banyak masalah dengan tingkat keparahan rendah dan tidak ada jalur pemutakhiran yang tersedia. Mengecualikan noise membantu Anda fokus pada masalah yang dapat diselesaikan dalam lapisan gambar Anda.

Menyesuaikan Hasil Pemindaian

docker scan menerima beberapa opsi pemformatan berbeda. Sejauh ini, kita telah melihat output default. Ini menyajikan masalah sebagai daftar yang dapat dibaca manusia di dalam terminal Anda.

Melewati --json flag menginstruksikan perintah untuk memancarkan JSON mentah yang diterimanya. Ini sangat ideal saat Anda menggunakan docker scan secara terprogram dalam skrip CI atau alat pihak ketiga. Anda dapat memproses JSON sendiri untuk mengekstrak informasi yang Anda butuhkan saja.

Pilihan lainnya adalah --dependency-tree . Ini akan memancarkan tampilan hierarki dari dependensi gambar Anda di atas daftar kerentanan. Ini dapat membantu Anda memvisualisasikan bagaimana paket yang berbeda ditarik, memungkinkan Anda menunjukkan dengan tepat di mana masalah muncul.

Terakhir, Anda dapat menggunakan --severity bendera untuk menyaring kerentanan yang tidak diinginkan. Gunakan low , medium , atau high untuk menunjukkan tingkat keparahan yang Anda minati. Perintah hanya akan melaporkan kerentanan yang dinilai pada atau di atas level yang diberikan.

Batasan

docker scan saat ini tidak memiliki dukungan untuk distribusi Alpine Linux. Selain itu, plugin versi 0.7 memiliki bug serius yang menyebabkan pemindaian lokal gagal dengan kesalahan "gambar tidak ditemukan". v0.7 hanya dapat memindai gambar yang ada di Docker Hub dan registri publik lainnya. Masalah telah diperbaiki di v0.8, tetapi v0.7 tetap menjadi versi yang didistribusikan secara luas dengan rilis Docker di Linux.

Di luar masalah teknis, layanan Snyk memberlakukan batasan tarif yang ketat pada penggunaan docker scan Anda . Anda dapat melakukan 10 pemindaian gratis setiap bulan. Jika Anda masuk dengan Snyk, itu meningkat menjadi 200 pemindaian per bulan.

Jalankan docker scan --login untuk mendapatkan URL login unik Anda. Salin ke browser Anda dan ikuti petunjuk untuk mengautentikasi diri Anda. Anda dapat masuk menggunakan Docker Hub atau beberapa penyedia pihak ketiga. Setelah Anda masuk, tombol "Otentikasi" akan muncul. Klik ini untuk kembali ke terminal Anda. Anda akan melihat pesan “Snyk sekarang siap digunakan”.

Ringkasan

Pemindaian gambar bawaan Docker membuat kerentanan container lebih mudah ditemukan dan diselesaikan. Pengembang mana pun yang memiliki akses ke Docker CLI dan image container sekarang dapat memindai kerentanan tanpa harus mendorong ke registri.

Pemindaian rutin membantu Anda menjaga wadah Anda dari potensi ancaman. Gambar dasar yang usang dan kerentanan dalam dependensi secara signifikan memengaruhi postur keamanan Anda tetapi dapat dengan mudah luput dari perhatian. docker scan memberi Anda kepercayaan diri yang lebih besar pada penampung Anda dengan mengungkapkan masalah yang sebelumnya Anda abaikan.


Docker
  1. Cara menggunakan FIND di Linux

  2. Cara Menggunakan Tulis Docker

  3. Cara Menggunakan Dockerfile untuk Membangun Gambar Docker

  1. Cara Menggunakan Server Khusus Anda

  2. Cara Menggunakan Gambar Docker, Wadah, dan File Docker Secara Mendalam

  3. Cara Menggunakan Perintah Inspeksi Docker

  1. Cara Memodifikasi Gambar Docker

  2. Cara mengkonfigurasi buruh pelabuhan untuk menggunakan proxy

  3. Bagaimana cara menggunakan gambar buruh pelabuhan lokal dengan Minikube?