‫Baiklah.
‫Selanjutnya, pemindaian repo kode.
‫Ini bahkan bukan Docker spesifik, tetapi ada
‫alat di luar sana dan Sneak adalah salah
‫satunya. Menyelinap, akan
‫memindai dependensi kode Anda di dalam repo.
‫Jika Anda memiliki open source, jika Anda mengembangkan open
‫source, mereka akan melakukan banyak hal secara gratis.
‫Mereka akan memindai repo GitHub Anda, repo Bitbucket
‫Anda dan melihat dependensinya.
‫Saya mendapat laporan setiap minggu dari mereka tentang repositori open source saya
‫dan setiap kerentanan yang mereka temukan.
‫Saat ini, GitHub melakukan banyak hal sendiri secara
‫gratis. Menyelinap sudah
‫ada lebih lama dan melakukannya lebih lama, jadi
‫saya agak memiliki keduanya. Saya punya GitHub mengirimi saya email
‫dan saya memiliki Sneak. Anda dapat membayar Sneak untuk memindai barang-barang.
‫Mereka juga memiliki lebih banyak fitur sekarang di mana mereka melakukan gambar juga
‫dan hal-hal lain, bukan hanya repo kode.
‫Tapi, satu baris itu adalah memindai repo Anda
‫sejak awal dalam proses.
‫Jangan tunggu sampai Anda membuat gambar dan
‫memiliki hal-hal di CI, Anda tahu, dalam menguji di mana
‫Anda memindai. Memindai sedini mungkin.
‫Ini adalah salah satu prinsip inti dari sesuatu
‫yang disebut keamanan ShiftLeft.
‫Jika Anda membayangkan Papan Kanban di mana semua pekerjaan Anda di
‫sebelah kiri dan output Anda di
‫sebelah kanan, gerakan keamanan ShiftLeft, jika Anda hanya mencari-cari
‫keamanan ShiftLeft, adalah tentang mengalihkan tanggung jawab keamanan
‫sebelumnya dan sebelumnya di alur kerja
‫pengembangan Anda.
‫Jadi, salah satu cara untuk melakukannya adalah memiliki pemindai otomatis ini memindai
‫dependensi kode Anda di dalam repositori git Anda bahkan
‫sebelum Anda sampai pada tahap menjalankan hal-hal di
‫server, benar. Saya akan melakukannya.
‫Tidak secara khusus hal Docker, tapi saya akan melakukannya.
‫Langkah selanjutnya adalah pemindaian gambar itu sendiri, yang
‫sangat mirip dengan itu. Tapi, kami mendapat lebih banyak fitur di sini.
‫Kami tidak hanya memindai dependensi kode Anda.
‫Kita dapat memindai wadah itu sendiri.
‫Gambarnya, benar. Kami dapat
‫memindai semua dependensi di sana yang
‫tidak seperti paket npm Anda atau
‫paket Python Anda. Anda sekarang memindai
‫paket YUM, dan APK, atau apt, atau
‫manajer paket semacam ini untuk OS.
‫Itulah yang saya maksud dengan pemindai gambar, karena
‫dapat memindai mereka serta dependensi kode Anda.
‫Jadi, ada banyak alat di sini.
‫Seperangkat yang sangat populer sudah ada sejak lama, tetapi
‫beberapa yang baru muncul yang ingin saya
‫bicarakan dengan Anda.
‫Yang pertama di sini adalah Trivy, dan saya baru tahu tentang ini bulan
‫ini, sebenarnya di bulan Oktober.
‫Trivy dibangun oleh Aqua Security, yang merupakan perusahaan yang sama
‫yang membangun MicroScanner.
‫MicroScanner adalah salah satu alat, bersama
‫dengan banyak yang lainnya, Jangkar juga, yang populer lainnya.
‫Ini semua adalah alat open source yang memindai gambar
‫Anda untuk kerentanan CVE.
‫CVE adalah basis data dari semua kerentanan donor open
‫source yang kita semua dengar dalam berita.
‫Itu dari Mitre, sebuah perusahaan yang mengelola database itu.
‫Ini adalah masalah komunitas, benar.
‫Setiap kali seseorang menemukan kerentanan dalam perangkat lunak, mereka memasukkannya
‫dan mendapat nomor CVE.
‫Ini adalah kerentanan dan eksploitasi yang umum,
‫sesuatu seperti itu.
‫Saya tidak ingat apa kepanjangan dari CVE.
‫Saya yakin salah satu dari Anda akan memberi tahu saya dalam obrolan.
‫Tapi CVE mendapat nomor, benar.
‫Kami melihat nomor yang ditugaskan untuk bug
‫yang dikenal di komunitas. Pemindai CVE akan memindai gambar Anda
‫untuk kerentanan itu.
‫Setelah Anda masuk ke implementasi ini, ada
‫segala macam hal kecil, seperti apakah pemindai yang Anda butuhkan
‫untuk berjalan di gambar Docker selama waktu pembuatan?
‫Atau apakah itu memindai gambar yang sudah dibangun?
‫Apakah pemindai itu mendukung
‫distribusi basis Anda? Apakah itu mendukung Red Hat?
‫Apakah itu mendukung Alpine?
‫Apa pun jenis gambar distribusi lain yang Anda pilih
‫untuk digunakan, akankah itu mendukungnya?
‫Apakah itu juga mendukung manajer paket Anda untuk aplikasi Anda seperti
‫npm atau pip,
‫atau salah satu dari banyak manajer paket lain
‫di luar sana, kan. Apakah itu mendukung mereka juga?
‫MicroScanner tidak
‫melakukan semua itu. Itu memang berhasil, tetapi
‫seperti banyak alat lain di ekosistem ini, mereka tidak melakukan semuanya.
‫Saat ini, yang ini dari Aqua Security
‫bernama
‫Trivy, dapatkan semua yang terbaik.
‫Trivy mengklaim bahwa mereka adalah
‫pemindai open source gratis terlengkap di luar sana.
‫Di sini, Anda akan melihat apa yang mereka dukung.
‫Anda akan melihat bahwa mereka mendukung semua gambar berbasis ini.
‫Kemudian jika Anda benar-benar turun, ada perbandingan yang
‫menunjukkan mereka membandingkan dengan semua alat lain, atau
‫paling tidak versi open source populer dari
‫alat-alat ini. Pasti ada lebih banyak alat dari ini.
‫Ada banyak pilihan yang harus Anda buat di sini.
‫Satu pilihan adalah di mana saya ingin memindai?
‫Apakah saya ingin repositori gambar saya memindai mereka sendiri, seperti yang
‫dilakukan Docker Enterprise DTR?
‫Di mana Anda memiliki registri yang menyimpan gambar
‫Anda dan registri itu menjalankan pemindaian pada gambar dalam
‫registri itu sendiri semuanya sekaligus.
‫Quay melakukan ini juga. Quay adalah repositori
‫gambar hosting awan dan juga akan memindai, benar.
‫Masing-masing dari pemindai ini tidak selalu memindai semua jenis gambar
‫dan semua dependensi aplikasi.
‫Jadi, sangat keren di sini bahwa mereka menunjukkan ... pada dasarnya X
‫berarti mereka tidak melakukannya.
‫Tanda 0 atau O di sana, lingkaran, berarti
‫mereka melakukannya. Lalu,
‫saya pikir OO ganda di sini
‫berarti yang terbaik, dan segitiga berarti ada masalah,
‫ada kekhawatiran di sana.
‫Jadi, mereka agak mengklaim Trivy, yang mereka beli tahun ini, saya
‫percaya.
‫Trivy melakukan semuanya. Itu paket OS, dependensi aplikasi.
‫Mereka mengklaim itu mudah digunakan.
‫Mereka mengklaim itu lebih akurat. Jika Anda mulai
‫membaca ini, Anda menyadari bahwa salah satu masalah besar
‫yang terus saya bicarakan adalah bahwa gambar dasar Alpine tidak bekerja
‫dengan hampir semua pemindai ini.
‫Itu hanya tidak memiliki database kerentanan terhubung dengan benar
‫sehingga ketika Anda menjalankan scanner ini, ia
‫mendeteksi kerentanan di Alpine.
‫Trivy mengklaim bahwa mereka memperbaikinya dengan
‫metode baru yang mereka terapkan, dan kami akan melihat apakah
‫orang lain juga menerapkannya.
‫Mereka mengklaim sebagai yang paling lengkap.
‫Banyak teman Docker Captain saya semua mengatakan mereka menggunakannya dan
‫menggunakannya dengan baik.
‫Salah satu keputusan lain, selain pemindai mana, adalah di mana
‫Anda akan memindai?
‫Saya suka memindai selama pembuatan gambar.
‫Saya lebih suka memindai selama
‫CI membangun gambar otomatis daripada memindai nanti setelah gambar dibangun.
‫Itu hanya aku.
‫Anda bahkan mungkin memiliki sistem berbeda yang memindai
‫pada waktu yang berbeda, hanya untuk aman,
‫benar, hanya untuk memastikan. Anda mungkin memiliki sistem yang memindai
‫di server yang berjalan dalam produksi, tergantung pada
‫lingkungan Anda. Itu tidak terlalu umum.
‫Tetapi, jika Anda berada di lingkungan yang sangat aman
‫yang Anda inginkan untuk memindai berbagai hal yang hidup, Anda tentu dapat melakukannya
‫dengan beberapa alat ini.
‫Demo yang sering saya berikan adalah
‫tentang MicroScanner. Intinya, yang harus
‫Anda lakukan di MicroScanner, serta alat lain ini,
‫adalah di MicroScanner, Anda dapat menambahkannya ke Dockerfile Anda.
‫Saya percaya aplikasi Tivey, Anda memindai setelah
‫gambar dibuat.
‫Jika Anda sangat paranoid, Anda mungkin hanya menggunakan
‫MicroScanner di dalam gambar Docker Anda.
‫Maka Anda mungkin menjalankan sesuatu seperti Tivey setelah
‫fakta pada gambar sebelum dikirim ke
‫registri, Anda tahu. Anda selalu dapat mengunduhnya nanti,
‫tetapi saya ingin tahu bahwa gambar saya bebas kerentanan
‫sebelum saya kirim.
‫Jadi, itulah yang mungkin Anda lakukan di sana. Sekarang.
‫Saya hanya ingin memberi tahu Anda peringatan.
‫Anda mungkin tidak akan memiliki ... Anda mungkin
‫tidak akan memiliki gambar, atau mungkin hanya
‫beberapa gambar, yang memiliki nol kerentanan
‫di seluruh papan. Itu hanya
‫karena sifat open source. Biasanya, jika Anda memindai gambar apa pun,
‫biasanya, jika Anda memindai gambar apa pun di luar sana,
‫itu akan memiliki kerentanan.
‫Adalah tugas Anda untuk bekerja dengan tim keamanan Anda
‫tentang apa yang dapat diterima, bukan kita tidak akan pernah memiliki kerentanan.
‫Karena kerentanan tertentu bahkan mungkin tidak berlaku untuk Anda.
‫Hanya karena mereka ada di gambar Anda tidak berarti mereka secara
‫otomatis akan menjadi masalah, benar.
‫Anda harus melakukan
‫beberapa pekerjaan. Saya pikir apa yang saya sarankan
‫adalah menerapkan ini sekarang,
‫tetapi mematikan jenis kegagalan itu dan mengatakan melanjutkan
‫kegagalan di sini, yang berarti semua yang akan saya lakukan adalah
‫memperingatkan Anda bahwa ada kerentanan. Saya tidak akan menghentikan pembangunan
‫hanya karena ada kerentanan.
‫Ini kuncinya, karena jika Anda mulai menerapkan
‫semua alat ini secara otomatis, mereka akan gagal dalam prosesnya.
‫Mereka akan gagal CI Anda, atau mereka akan gagal membangun Anda,
‫jika Anda hanya menyalakannya. Anda ingin
‫memastikan bahwa Anda memilikinya dalam mode audit only di mana
‫mereka tidak gagal menemukan kerentanan.
‫Dengan begitu Anda setidaknya bisa mengetahui apa itu kerentanan
‫sebelum Anda mulai, Anda tahu, sebelum Anda menjadi
‫hardcore, bukan? Sebelum Anda menjadi hardcore.