Bu ay XDA yazısı, çoğu homelabın zor yoldan öğrendiği bir şeyi ortaya çıkardı: çalışan bir Docker Compose dosyası güvenli bir Docker Compose dosyası değildir. Portlar 0.0.0.0‘a bağlı olduğunda 127.0.0.1‘de kalması gerekir, veritabanı hizmetleri ters proxy ile aynı herkese açık köprüde biter ve yönetim panelleri hiç kimsenin döndürmeyi hatırlamadığı varsayılan kimlik bilgileriyle gelir. Çözüm, compose dosyasını, görüntüyü ve konteyner yapılandırmasını birlikte okuyan ve neyin açığa çıktığını işaret eden bir tarayıcıdır. Windows, macOS ve Linux’ta gerçek bir homelab yığınına karşı yedi Docker Compose güvenlik aracını test ettik, gerçek yanlış yapılandırmaları yakalayan denetimlere odaklandık.
Docker Compose güvenlik tarayıcısında nelere bakılması gerekir
Compose farkındaki ayrıştırma ilk denetimdir. Yalnızca Dockerfile okuyan bir tarayıcı, docker-compose.yml içinde yaşayan bağlantı noktası bağlamaları, ağ topolojisi ve ortam bloklarını kaçıracaktır. Doğru seçim her ikisini de okur ve expose - ports, ana bilgisayar modu ağı ve /etc veya /var/run/docker.sock‘a ulaşan bağlama montajlarını anlar.
Güvenlik açığı verileri güncel olmalıdır. Bu, günlük güncelleyen bir CVE akışı, dağıtım paketleri ve dil düzeyindeki bağımlılıkların kapsamı ve çalışan konteyner içinde hangi bulguların gerçekten açıklanabilir olduğunu bilmenin bir yolu anlamına gelir. Bağlamdan bağımsız olarak her CVE’yi yüzeye çıkaran bir araç, bir homelabı uyarılarla doldurur ve bir haftada göz ardı edilir.
CI dostu çıktı, tek seferlik bir taramayı dayanıklı bir denetim haline dönüştüren şeydir. JSON veya SARIF çıktısı, seçilen önem derecesinin üzerindeki bulgularda sıfırdan farklı çıkış kodları ve compose dosyasındaki satır içi bastırma yorumları, aynı aracın git ön taahhüt kancası, GitHub Actions işi veya gece kronunda yaşamasına izin verir. Ana bilgisayar-ilk işletim homelabı için önemlidir, telemetri yok, zorunlu bulut hesabı yok.
Hızlı karşılaştırma
| Uygulama | Şu iş için en iyisi | Platformlar | Ücretsiz plan | Başlangıç fiyatı | Değerlendirme |
|---|---|---|---|---|---|
| Trivy | Hepsi bir arada görüntü ve compose tarayıcısı | Windows, macOS, Linux | Evet | Ücretsiz | 4.8 |
| Docker Bench for Security | CIS ana bilgisayar ve daemon denetimi | Linux, macOS | Evet | Ücretsiz | 4.6 |
| Grype | Hızlı görüntü güvenlik açığı taraması | Windows, macOS, Linux | Evet | Ücretsiz | 4.6 |
| Dockle | Görüntü en iyi uygulama linter | Windows, macOS, Linux | Evet | Ücretsiz | 4.5 |
| Hadolint | Güvenlik kuralları ile Dockerfile linter | Windows, macOS, Linux | Evet | Ücretsiz | 4.6 |
| Checkov | IaC ve compose politikası tarayıcısı | Windows, macOS, Linux | Evet | Ücretsiz | 4.6 |
| Sysdig CLI Scanner | Çalışma zamanı farkındaki derin görüntü taraması | Windows, macOS, Linux | Deneme | Ticari kullanım için mütevazı | 4.5 |
1. Trivy, herhangi bir compose yığını için varsayılan ilk geçiş
Trivy, çoğu homelabın ilk olarak iniş yaptığı araçtır ve bu yeri hak eder. İşletim sistemi ve dil güvenlik açıkları için konteyner görüntülerini tarar, yanlış yapılandırma için Dockerfile ve compose dosyalarını okur ve artık bir env dosyasına işlenen API anahtarını yakalayan gizli taramayı içerir. Gerçek bir homelab yığınına karşı tek bir trivy config docker-compose.yml çalıştırması bir dakikadan kısa sürede okunabilir bir rapor üretir.
Veritabanı tazeleme varsayılan olarak her tarama üzerinde çalışır ve bu da cron işi olmadan bulguları güncel tutar. Çıktı modları okunabilir bir tablo, JSON, SARIF ve CycloneDX SBOMs’u kapsar ve çıkış kodları bir CI boru hattında çalışır. Açık kaynağı ücretsiz, tek bir ikili olarak çalışır ve ilk taramadan sonra uzun süre faydalı kalır.
- Platform: Windows, macOS, Linux
- Vurgular: görüntü ve IaC taraması, gizli algılama, SBOM çıktısı, tek ikili yükleme
- Fiyatlandırma: açık kaynağı ücretsiz
- İdeal: taze bir homelaba yüklenen ilk tarayıcı
- İndir: trivy.dev
2. Docker Bench for Security, ana bilgisayar ve daemon için CIS denetimi
Docker Bench for Security, çalışan bir ana bilgisayarı karşı CIS Docker Kıyaslaması’ndan geçen bir kabuk komut dosyasıdır. Daemon yapılandırması, şu anda çalışan konteynerler ve disk üzerinde bulunan görüntüleri yaklaşık yüz belgelenen kontrol aleyhine kontrol eder ve pass, uyarı, bilgi ve not durumları ile bir rapor yazdırır.
Bir compose ayrıştırıcı değildir, ancak bir compose tarayıcının göremediği ana bilgisayar düzeyindeki yanlış yapılandırmaları yakalamak için en hızlı yoldur: TLS olmadan TCP üzerinde dinleyen Docker daemon, --privileged konteynerler, eksik no-new-privileges, günlük sürücü varsayılanları ve /etc/docker dosya izinleri. Genel bir hizmet çalıştıran herhangi bir ana bilgisayarında ayda bir kez çalıştırın ve sonuçları wikiye sabitleyin.
- Platform: Linux, macOS (bash)
- Vurgular: CIS uyumlu denetimler, ana bilgisayar ve daemon kapsamı, düz metin ve JSON çıktısı
- Fiyatlandırma: açık kaynağı ücretsiz
- İdeal: Docker ana bilgisayarının kendisinin üç aylık denetimi
- İndir: github.com/docker/docker-bench-security
3. Grype, Syft ile eşleştirilmiş hızlı görüntü güvenlik açığı taraması
Grype Anchore’nin açık kaynaklı güvenlik açığı tarayıcısıdır. Doğrudan bir görüntü veya Syft tarafından üretilen bir SBOM okur ve yüklü paketler ve dil düzeyindeki bağımlılıklarla ilgili bilinen CVE’lerin bir listesini döndürür. Grype güvenlik açığı veritabanını yerel olarak göndereceği ve bir zamanlamaya göre güncelleceği için taramalar saniye içinde çalışır.
Bunu Trivy ile eşleştirme nedeni kapsamdır. Trivy daha geniştir; Grype, özellikle Python ve Node görüntülerinde Trivy’nin kaçırdığı dil düzeyindeki paketleri sıklıkla yakalar. Uygulamada her ikisini de aynı boru hattında çalıştırırız ve her iki taraftan da yüksek ciddiyet bulgusu yapamayız. Grype zorunlu telemetri eklemez ve hesap yoktur ve her masaüstü işletim sisteminde aynı şekilde çalışır.
- Platform: Windows, macOS, Linux
- Vurgular: SBOM odaklı tarama, yerel güvenlik açığı DB, JSON ve SARIF çıktısı, hızlı taramalar
- Fiyatlandırma: açık kaynağı ücretsiz
- İdeal: görüntü CVE’ler üzerinde Trivy yanında ikinci görüş
- İndir: github.com/anchore/grype
4. Dockle, CI adımı için görüntü en iyi uygulama linter
Dockle, CIS en iyi uygulamalarla uyumlu bir konteyner görüntü linter’ıdır. Trivy CVE’lere odaklanır ve Grype paket güvenlik açıklarına odaklanırken, Dockle görüntü nasıl yapıldığını kontrol eder: USER kök olmayan bir hesaba ayarlandı mı, gereksiz bir sudo ikili içine gönderildi mi, sırlar katmanlara pişirildi mi, görüntü ihtiyacı olmayan bir kabuğu ortaya çıkarır mı. Bulgular CIS kontrol numaralarını eşleştirir.
Bu, bir CI işine görüntü başına tek bir komut olarak uyan küçük bir ikilidir. Çıktı okunacak kadar kısadır ve çıkış kodu kapıyı kolaylaştırır. Bir compose tarayıcıyla birlikte aynı sorunun iki tarafını kapsar: compose dosyası ne kablolar ve görüntü içinde ne olduğu kablolar.
- Platform: Windows, macOS, Linux
- Vurgular: görüntü linting, CIS haritalama, kısa raporlar, kolay CI entegrasyonu
- Fiyatlandırma: açık kaynağı ücretsiz
- İdeal: gönderilmeden önce görüntü yapı alışkanlıklarını yakalamak
- İndir: github.com/goodwithtech/dockle
5. Hadolint, compose-bitişik hataları yakalayan Dockerfile linter
Hadolint bir Dockerfile okur ve compose sorunları haline gelen kalıpları işaretler: sert kodlanmış kimlik bilgileri, eksik etiketler, temizlik olmadan apt-get install -y, yerinde kalan kök kullanıcılar ve ADD, COPY‘nin ait olduğu yerde kullanılır. Haskell kabuk ayrıştırıcı ile Dockerfile’ı ayrıştırır, bu nedenle bir regex tabanlı aracın kaçırdığı sorunları yakalar.
Hadolint compose’un yukarı akışında. Dockerfile’ı bir kez düzeltin ve compose tarayıcısının şikayetçi olacak daha az şeyi vardır. Tek bir ikili olarak çalışır, ön taahhüt veya CI ile temiz bir şekilde entegre olur ve homelabı projelerinde ölçtüğümüz kod satırı başına en yüksek sinyal denetimlerinden birini ekler.
- Platform: Windows, macOS, Linux
- Vurgular: gerçek kabuk ayrıştırıcı, yüzlerce kural, JSON ve SARIF çıktısı, ön taahhüt hazırlanmış
- Fiyatlandırma: açık kaynağı ücretsiz
- İdeal: kendi Dockerfile’larını yazanlar yerine upstream görüntüleri çeken takımlar için
- İndir: github.com/hadolint/hadolint
6. Checkov, compose, Kubernetes ve Terraform arasında politika-kod
Checkov, docker-compose, Kubernetes manifesto, Terraform, Helm ve IaC’nin diğer düzinelerini konuşan bir politika-kod tarayıcısıdır. Bir compose dosyasında, açılan daemon soketlerini, kök konteynerlerini, ana bilgisayar ağ modunu, eksik kaynak limitlerini ve genel bağlantı noktası bağlamalarını işaretler. Politikalar mantıklı varsayılanlarla gönderilir ve depo başına bir yapılandırma dosyası ile ayarlanabilir.
Bunu tek biçimli bir araç yerine seçme nedeni karışımdır. Bugün Docker Compose çalıştıran ancak yarın küçük bir k3s veya Nomad kümesine geçmeyi planlayan bir homelabı, ikisine karşı aynı denetimler alır ve aynı bastırma yorumları aktarılır. Python nerede çalışırsa çalışır, bu tüm masaüstü işletim sistemlerini kapsar.
- Platform: Windows, macOS, Linux
- Vurgular: çok formatlı IaC kapsamı, özel politikalar, bastırma yorumları, SARIF çıktısı
- Fiyatlandırma: açık kaynağı ücretsiz
- İdeal: bir politika motoru istediği karışık IaC homelabları için
- İndir: github.com/bridgecrewio/checkov
7. Sysdig CLI Scanner, çalışma zamanı bağlamı önemli olduğunda daha derin seçenek
Sysdig CLI Scanner, güvenlik açığı taramasını çalışma zamanı farkındalığı ile birleştirir. Görüntüyü okur, CVE’leri bir güvenlik açığı akışına karşı ilişkilendirir ve bir Sysdig dağıtımıyla eşleştirildiğinde, çalışma zamanında gerçekten yüklenen paketleri filtreler. Bu tek filtre, genellikle yüzlerce bulgulardan oluşan bir raporu düzinesi kısa bir listeye dönüştürür.
Tarayıcı her masaüstü işletim sisteminde tek bir ikili olarak çalışır. Ücretsiz katman değerlendirmeyi ve küçük dağıtımları kapsar; ticari kullanım ücretli bir plan kapsamına girer. Ciddi bir homelabı veya LAN dışında hizmetler barındıran küçük bir takım için, çalışma zamanı filtresi kurulum değerdir. Tamamen özel bir yığın için, Trivy artı Grype çoğunlukla aynı zemin ücretsiz kapsar.
- Platform: Windows, macOS, Linux
- Vurgular: çalışma zamanı farkındaki filtreleme, IaC ve görüntü taraması, politika kütüphanesi, JSON çıktısı
- Fiyatlandırma: değerlendirme ve küçük kullanım için ücretsiz katman, ticari dağıtımlar için ücretli
- İdeal: zaten Sysdig çalışma zamanı güvenliği için çalıştıran takımlar
- İndir: docs.sysdig.com/en/sysdig-secure/vulnerability-management/cli-scanner
Doğru olanı nasıl seçeceğiz
Bir homelabın varsayılan cevabı Trivy’dir. Kurun, compose dosyasında çalıştırın ve göründüğünü düzeltin. Görüntü CVE’leri, yapılandırma yanlışlıklarını ve tek bir ikili dosyada gizli algılamayı kapsar. Bir homelabı genel hizmetler çalıştırırsa, Docker Bench for Security’yi ana bilgisayarıya karşı aylık bir denetim olarak ekleyin, çünkü bir compose tarayıcı daemon düzeyindeki sorunları göremez.
Kendi görüntülerini oluşturan takımlar için Hadolint Dockerfile aşamasındaki hataları yakalar ve Dockle yapılandırılmış görüntüde kalmayanları yakalar. Grype, iş yükü Python veya Node ağır olduğunda Trivy yanında bir yeri kazanır, çünkü diğerlerinin kaçırdığı dil düzeyindeki CVE’leri bulma eğilimindedir. Checkov, karışık IaC deposu için doğru seçimdir. Sysdig CLI Scanner, çalışma zamanı bağlamı istediği ve bunu Sysdig arka ucuyla eşleştirmeye hazır olan takımlar için daha derin seçenektir. Yedi katı istifleme aşırı; ikisini veya üçünü seçin ve her taahhütte çalıştırın.
FAQ
docker-compose.yml’i güvenlik sorunları için nasıl tarayabilirim?
Trivy’i kurun ve trivy config docker-compose.yml çalıştırın. Bağlantı noktası maruziyeti, kök konteynerler, takılı Docker soketleri ve gizli kalıpları düz metin raporunda raporlar. Ciddi bulgular üzerinde bir CI boru hattında başarısız olmak için --exit-code 1 --severity HIGH,CRITICAL ekleyin.
Trivy Docker güvenliği için Grype’dan daha iyi mi? Onlar rakip yerine tamamlayıcıdır. Trivy daha geniş bir yüzey, compose dosyaları, görüntüler ve IaC kapsar, Grype ise genellikle Python, Node ve Ruby görüntülerinde daha fazla dil düzeyindeki CVE’leri yakalar. Her ikisini de aynı boru hattında çalıştırmak, yalnız birinden daha fazla yakalar.
Dockle ve Hadolint arasındaki fark nedir? Hadolint görüntü yapılmadan önce Dockerfile’ı kontrol eder. Dockle yapılandırılmış görüntüyü kontrol eder. Birlikte aynı sorunu her iki taraftan kaplarlar: kötü yapı kalıpları ve kötü görüntü durumu.
Bu araçları İnternet bağlantısı olmadan çalıştırabilir miyim? Trivy, Grype ve Sysdig CLI Scanner’ın tümü bir aynadan güvenlik açığı veritabanını içe aktararak hava boşluğu işlemini destekler. Dockle, Hadolint ve Docker Bench for Security kuralları pişirildikleri için varsayılan olarak çevrimdışı çalışır.
Bu tarayıcılar Windows ve macOS’ta çalışır mı? Evet. Trivy, Grype, Dockle, Hadolint, Checkov ve Sysdig CLI Scanner, Windows, macOS ve Linux için yerel ikili dosyalar veya konteynerlar gönderir. Docker Bench for Security bir bash komut dosyasıdır ve macOS ve Linux’ta çalışır; Windows’ta WSL içinde çalışır.
Bu araçlar kişisel kullanım için ücretsiz mi? Yedi tanesinin kişisel ve homelab kullanımı için ücretsiz katmanı vardır. Trivy, Grype, Dockle, Hadolint, Checkov ve Docker Bench for Security tamamen açık kaynaktır. Sysdig CLI Scanner değerlendirme ve küçük kullanım için ücretsizdir, ticari dağıtımlar için ücretli plan vardır.