Artikel XDA bulan ini mengungkapkan sesuatu yang paling homelabs pelajari dengan cara yang sulit: file Docker Compose yang berfungsi bukanlah file Docker Compose yang aman. Port terikat ke 0.0.0.0 ketika seharusnya tetap di 127.0.0.1, layanan basis data berakhir di jembatan publik yang sama dengan proxy terbalik, dan dasbor admin dikirim dengan kredensial default yang tidak ada yang diingat untuk diputar. Solusinya adalah pemindai yang membaca file compose, gambar, dan konfigurasi kontainer bersama-sama, dan menandai apa yang terbuka. Kami menguji tujuh alat keamanan Docker Compose di Windows, macOS, dan Linux terhadap tumpukan homelab nyata, fokus pada pemeriksaan yang menangkap salah konfigurasi aktual daripada kebisingan.
Apa yang harus dicari dalam pemindai keamanan Docker Compose
Penguraian yang menyadari Compose adalah cek pertama. Pemindai yang hanya membaca Dockerfile akan melewatkan pengikatan port, topologi jaringan, dan blok lingkungan yang tinggal di docker-compose.yml. Pilihan yang tepat membaca keduanya, dan memahami expose versus ports, jaringan mode host, dan mount bind yang mencapai /etc atau /var/run/docker.sock.
Data kerentanan harus terkini. Itu berarti umpan CVE yang diperbarui setiap hari, cakupan paket distro dan dependensi tingkat bahasa, dan cara untuk mengetahui temuan mana yang benar-benar dapat dieksploitasi dalam wadah yang berjalan alih-alih hanya hadir dalam gambar. Alat yang menampilkan setiap CVE terlepas dari konteks membanjiri homelab dengan peringatan dan diabaikan dalam seminggu.
Output yang ramah CI adalah apa yang mengubah pemindaian sekali saja menjadi pemeriksaan yang tahan lama. Keluaran JSON atau SARIF, kode keluar bukan nol pada temuan di atas tingkat keparahan yang dipilih, dan komentar penekan inline dalam file compose memungkinkan alat yang sama untuk hidup dalam kait pra-komit git, pekerjaan GitHub Actions, atau cron malam. Operasi yang memprioritaskan lokal penting untuk homelab, tidak ada telemetri, tidak ada akun cloud yang dipaksa.
Perbandingan cepat
| Aplikasi | Terbaik untuk | Platform | Rencana gratis | Harga mulai | Rating |
|---|---|---|---|---|---|
| Trivy | Pemindai gambar dan compose all-in-one | Windows, macOS, Linux | Ya | Gratis | 4.8 |
| Docker Bench for Security | Audit host dan daemon CIS | Linux, macOS | Ya | Gratis | 4.6 |
| Grype | Pemindaian kerentanan gambar cepat | Windows, macOS, Linux | Ya | Gratis | 4.6 |
| Dockle | Linter praktik terbaik gambar | Windows, macOS, Linux | Ya | Gratis | 4.5 |
| Hadolint | Linter Dockerfile dengan aturan keamanan | Windows, macOS, Linux | Ya | Gratis | 4.6 |
| Checkov | Pemindai kebijakan IaC dan compose | Windows, macOS, Linux | Ya | Gratis | 4.6 |
| Sysdig CLI Scanner | Pemindaian gambar yang menyadari waktu berjalan | Windows, macOS, Linux | Uji coba | Sedang untuk penggunaan komersial | 4.5 |
1. Trivy, lintasan pertama default untuk tumpukan compose apa pun
Trivy adalah alat yang paling sering digunakan di homelab, dan itu pantas mendapat tempatnya. Ini memindai gambar kontainer untuk kerentanan OS dan bahasa, membaca Dockerfile dan file compose untuk salah konfigurasi, dan sekarang mencakup pemindaian rahasia yang menangkap kunci API yang berkomitmen ke file env. Satu kali menjalankan trivy config docker-compose.yml terhadap tumpukan homelab nyata menghasilkan laporan yang mudah dibaca dalam waktu kurang dari satu menit.
Penyegaran database berjalan pada setiap pemindaian secara default, yang membuat temuan tetap terkini tanpa pekerjaan cron. Mode output mencakup tabel yang dapat dibaca manusia, JSON, SARIF, dan SBOM CycloneDX, dan kode keluar bekerja dalam saluran CI. Ini gratis dan open source, berjalan sebagai binari tunggal, dan tetap berguna lama setelah pemindaian awal.
- Platform: Windows, macOS, Linux
- Sorotan: pemindaian gambar dan IaC, deteksi rahasia, keluaran SBOM, instalasi binari tunggal
- Harga: gratis dan open source
- Ideal untuk: pemindai pertama yang dipasang di homelab segar
- Unduh: trivy.dev
2. Docker Bench for Security, audit CIS untuk host dan daemon
Docker Bench for Security adalah skrip shell yang berjalan melalui Tolok Ukur Docker CIS terhadap host yang berjalan. Ini memeriksa konfigurasi daemon, kontainer yang saat ini berjalan, dan gambar yang sudah ada di disk terhadap seratus kontrol yang terdokumentasi, dan mencetak laporan dengan status pass, warn, info, dan note.
Ini bukan pengurai compose, tetapi ini adalah cara tercepat untuk menangkap salah konfigurasi tingkat host yang tidak dapat dilihat oleh pemindai compose: daemon Docker mendengarkan TCP tanpa TLS, kontainer --privileged, kehilangan no-new-privileges, nilai standar driver log, dan izin file pada /etc/docker. Jalankan sekali sebulan di host apa pun yang menjalankan layanan publik, dan sematkan hasil ke wiki.
- Platform: Linux, macOS (bash)
- Sorotan: pemeriksaan yang selaras dengan CIS, cakupan host dan daemon, teks biasa dan keluaran JSON
- Harga: gratis dan open source
- Ideal untuk: audit triwulanan dari host Docker itu sendiri
- Unduh: github.com/docker/docker-bench-security
3. Grype, pemindaian kerentanan gambar cepat yang berpasangan dengan Syft
Grype adalah pemindai kerentanan open source dari Anchore. Ini membaca gambar secara langsung atau SBOM yang dihasilkan oleh Syft dan mengembalikan daftar CVE yang diketahui terhadap paket yang terpasang dan dependensi tingkat bahasa. Pemindaian berjalan dalam hitungan detik karena Grype mengirimkan basis data kerentanannya secara lokal dan diperbarui sesuai jadwal.
Alasan untuk memasangkannya dengan Trivy adalah cakupannya. Trivy lebih luas; Grype sering menangkap paket tingkat bahasa yang terlewatkan Trivy, terutama dalam gambar Python dan Node. Dalam praktik kami menjalankan keduanya dalam saluran yang sama dan gagal pada temuan tingkat tinggi apa pun dari salah satu. Grype tidak menambahkan telemetri yang dipaksa dan tidak ada akun, dan itu berjalan dengan cara yang sama di setiap OS desktop.
- Platform: Windows, macOS, Linux
- Sorotan: pemindaian berbasis SBOM, DB kerentanan lokal, keluaran JSON dan SARIF, pemindaian cepat
- Harga: gratis dan open source
- Ideal untuk: pendapat kedua di samping Trivy pada CVE gambar
- Unduh: github.com/anchore/grype
4. Dockle, linter praktik terbaik gambar untuk langkah CI
Dockle adalah linter gambar kontainer yang selaras dengan praktik terbaik CIS. Di mana Trivy berfokus pada CVE dan Grype pada kerentanan paket, Dockle memeriksa bagaimana gambar dibangun: apakah USER ditetapkan ke akun non-root, apakah binari sudo yang tidak perlu dikirim ke dalam, apakah rahasia dipanggang ke lapisan, apakah gambar mengekspos shell yang tidak perlu. Temuan memetakan ke nomor kontrol CIS.
Ini adalah binari kecil yang sesuai dengan pekerjaan CI sebagai satu perintah per gambar. Keluarannya cukup pendek untuk dibaca, dan kode keluar membuatnya mudah untuk gerbang. Bersama-sama dengan pemindai compose itu mencakup dua sisi masalah yang sama: apa yang kabel file compose, dan apa yang berisi gambar sebelum bahkan dikabelkan.
- Platform: Windows, macOS, Linux
- Sorotan: linting gambar, pemetaan CIS, laporan pendek, integrasi CI yang mudah
- Harga: gratis dan open source
- Ideal untuk: menangkap kebiasaan pembangunan gambar sebelum mereka dikirim
- Unduh: github.com/goodwithtech/dockle
5. Hadolint, linter Dockerfile yang menangkap kesalahan yang berdekatan dengan compose
Hadolint membaca Dockerfile dan menandai pola yang berakhir sebagai masalah compose: kredensial yang dikodekan, tag yang hilang, apt-get install -y tanpa pembersihan, pengguna root yang ditinggalkan di tempat, dan ADD digunakan di mana COPY milik. Ini menguraikan Dockerfile dengan pengurai shell Haskell nyata, itulah mengapa ia menangkap masalah yang alat berbasis regex tidak bisa.
Hadolint adalah hulu dari compose. Perbaiki Dockerfile sekali dan pemindai compose memiliki lebih sedikit untuk mengeluh tentangnya. Ini berjalan sebagai binari tunggal, terintegrasi bersih dengan pre-commit atau CI, dan menambahkan salah satu pemeriksaan sinyal tertinggi per baris kode yang telah kami ukur pada proyek homelab.
- Platform: Windows, macOS, Linux
- Sorotan: pengurai shell nyata, ratusan aturan, keluaran JSON dan SARIF, siap pre-commit
- Harga: gratis dan open source
- Ideal untuk: tim yang menulis Dockerfile mereka sendiri alih-alih menarik gambar hulu
- Unduh: github.com/hadolint/hadolint
6. Checkov, kebijakan sebagai kode di seluruh compose, Kubernetes, dan Terraform
Checkov adalah pemindai kebijakan-sebagai-kode yang berbicara docker-compose, manifes Kubernetes, Terraform, Helm, dan selusin format IaC lainnya. Pada file compose itu menandai soket daemon yang terbuka, wadah root, mode jaringan host, batas sumber daya yang hilang, dan pengikatan port publik. Kebijakan dikirim dengan default yang masuk akal dan dapat disesuaikan per repo dengan file konfigurasi.
Alasan untuk memilihnya di atas alat format tunggal adalah campurannya. Homelab yang menjalankan Docker Compose hari ini tetapi merencanakan untuk pindah ke kluster k3s atau Nomad kecil besok mendapatkan pemeriksaan yang sama terhadap keduanya, dan komentar penekan yang sama dibawa. Ini berjalan di mana pun Python berjalan, yang mencakup setiap OS desktop.
- Platform: Windows, macOS, Linux
- Sorotan: cakupan IaC multi-format, kebijakan kustom, komentar penekan, keluaran SARIF
- Harga: gratis dan open source
- Ideal untuk: homelab IaC campuran yang menginginkan satu mesin kebijakan
- Unduh: github.com/bridgecrewio/checkov
7. Sysdig CLI Scanner, opsi yang lebih dalam ketika konteks waktu berjalan penting
Sysdig CLI Scanner menggabungkan pemindaian kerentanan dengan kesadaran waktu berjalan. Ini membaca gambar, menghubungkan CVE terhadap umpan kerentanan, dan, ketika dipasangkan dengan penerapan Sysdig, menyaring paket yang benar-benar dimuat saat runtime. Filter tunggal itu sering mengubah laporan ratusan temuan menjadi daftar singkat selusin.
Pemindai berjalan sebagai binari tunggal di setiap OS desktop. Tingkat gratis mencakup evaluasi dan penerapan kecil; penggunaan komersial jatuh di bawah rencana berbayar. Untuk homelab serius atau tim kecil yang menyelenggarakan layanan di luar LAN, filter waktu berjalan layak pengaturannya. Untuk tumpukan murni pribadi, Trivy plus Grype mencakup sebagian besar tanah yang sama secara gratis.
- Platform: Windows, macOS, Linux
- Sorotan: penyaringan yang sadar waktu berjalan, pemindaian IaC dan gambar, perpustakaan kebijakan, keluaran JSON
- Harga: tingkat gratis untuk evaluasi dan penggunaan kecil, berbayar untuk penerapan komersial
- Ideal untuk: tim yang sudah menjalankan Sysdig untuk keamanan waktu berjalan
- Unduh: docs.sysdig.com/en/sysdig-secure/vulnerability-management/cli-scanner
Bagaimana memilih yang tepat
Jawaban default untuk homelab adalah Trivy. Pasang, jalankan terhadap file compose, dan perbaiki apa yang muncul. Ini mencakup CVE gambar, salah konfigurasi compose, dan deteksi rahasia dalam satu binari. Jika homelab menjalankan layanan publik, tambahkan Docker Bench for Security sebagai audit bulanan terhadap host itu sendiri, karena pemindai compose tidak dapat melihat masalah tingkat daemon.
Untuk tim yang membangun gambar mereka sendiri, Hadolint menangkap kesalahan pada tahap Dockerfile, dan Dockle menangkap yang selamat dari gambar yang dibangun. Grype mendapatkan tempat di samping Trivy ketika beban kerja adalah Python atau Node berat, karena cenderung menemukan CVE tingkat bahasa yang orang lain terlewatkan. Checkov adalah pilihan yang tepat untuk repo IaC campuran. Sysdig CLI Scanner adalah opsi yang lebih dalam untuk tim yang menginginkan konteks waktu berjalan dan siap memasangkannya dengan backend Sysdig. Menumpuk ketujuh adalah berlebihan; pilih dua atau tiga, dan jalankan pada setiap komit.
FAQ
Bagaimana cara memindai docker-compose.yml untuk masalah keamanan?
Pasang Trivy dan jalankan trivy config docker-compose.yml. Ini melaporkan paparan port, kontainer root, soket Docker yang dipasang, dan pola rahasia dalam laporan teks biasa. Tambahkan --exit-code 1 --severity HIGH,CRITICAL untuk gagal dalam saluran CI pada temuan serius.
Apakah Trivy lebih baik daripada Grype untuk keamanan Docker? Mereka saling melengkapi daripada bersaing. Trivy mencakup permukaan yang lebih luas, file compose, gambar, dan IaC, sementara Grype sering menangkap lebih banyak CVE tingkat bahasa dalam gambar Python, Node, dan Ruby. Menjalankan keduanya dalam saluran yang sama menangkap lebih banyak daripada salah satu saja.
Apa perbedaan antara Dockle dan Hadolint? Hadolint memeriksa Dockerfile sebelum gambar dibangun. Dockle memeriksa gambar yang dibangun itu sendiri. Bersama-sama mereka mencakup masalah yang sama dari kedua sisi: pola pembangunan yang buruk dan keadaan gambar yang buruk.
Bisakah saya menjalankan alat-alat ini tanpa koneksi Internet? Trivy, Grype, dan Sysdig CLI Scanner semuanya mendukung operasi offline dengan mengimpor database kerentanan dari mirror. Dockle, Hadolint, dan Docker Bench for Security berjalan offline secara default karena aturan mereka bersifat intrinsik.
Apakah pemindai ini bekerja di Windows dan macOS? Ya. Trivy, Grype, Dockle, Hadolint, Checkov, dan Sysdig CLI Scanner mengirimkan binari native atau kontainer untuk Windows, macOS, dan Linux. Docker Bench for Security adalah skrip bash dan berjalan di macOS dan Linux; di Windows itu berjalan di dalam WSL.
Apakah alat-alat ini gratis untuk penggunaan pribadi? Semua tujuh memiliki tingkat gratis untuk penggunaan pribadi dan homelab. Trivy, Grype, Dockle, Hadolint, Checkov, dan Docker Bench for Security sepenuhnya open source. Sysdig CLI Scanner gratis untuk evaluasi dan penggunaan kecil, dengan rencana berbayar untuk penerapan komersial.