Docker Scout: Güvenlik Açıkları İçin Kapsayıcı Görüntülerini Nasıl Taramalısınız
Docker Scout, kapsayıcı görüntülerini güvenlik açıkları için analiz eder ve Yazılım Malzeme Listeleri üretir. Docker tabanlı geliştirme iş akışları için yerleşik güvenlik görünürlüğü sağlar — ayrı araçlara veya karmaşık kuruluma gerek yoktur.
Hikâye genelde şöyle başlar: Docker görüntünüzü oluşturdunuz, etiketlediniz ve dağıttınız. Her şey yolunda giderken güvenlik ekibiniz, varlığından bile haberdar olmadığınız bir pakette güvenlik açıkları tespit eder. Daha da kötüsü, uyumluluk ekibi bir Yazılım Malzeme Listesi (SBOM) ister ve görüntülerinizle hangi bağımlılıkların geldiğini nasıl çıkaracağınızı düşünürsünüz. Kapsayıcı görüntüleri kara kutu olabilir; bu da üretimde çalışanlardan siz sorumluyken sorun yaratır.
Docker Scout, görüntülerinizi güvenlik açıkları için tarayıp otomatik olarak SBOM üreterek kapsayıcı görüntülerinize görünürlük kazandırır. Docker’a yerleşiktir; ayrı bir araç kurmanız veya öğrenmeniz gerekmez.
Bu kılavuzda, Docker Scout ile görüntüleri nasıl tarayacağınızı ve oluşturduğu güvenlik açığı raporlarını nasıl anlayacağınızı göstereceğim; böylece ne zaman kullanmanın mantıklı olduğunu bileceksiniz.
Docker’a yeniyseniz, en iyi 18 Docker Komutu makalemize göz atın. Bu komutlar, kapsayıcıları oluşturma, çalıştırma ve yönetme konusunda sizi doğru yola sokacaktır.
Docker Scout Nedir?
Docker Scout, kapsayıcı görüntülerinizi güvenlik açıkları için tarayan ve Yazılım Malzeme Listeleri (SBOM) oluşturan Docker’ın yerel görüntü analiz aracıdır.
Görüntünüzün içindeki her şeyi analiz eder: temel işletim sistemi paketlerinden, dile özgü bağımlılıklara ve uygulama kütüphanelerine kadar. Ardından bunları bilinen güvenlik açığı veritabanlarıyla karşılaştırır. Hangi paketlerde güvenlik sorunları olduğunu, şiddet seviyelerini ve hangi sürümlerin bunları düzelttiğini gösteren bir rapor elde edersiniz.
Böylece üçüncü taraf tarayıcılar kullanmak veya güvenlik ekiplerinin dağıtımdan sonra sorunları işaretlemesini beklemek yerine, görüntüleri tam da oluşturduğunuz yerde tarayabilirsiniz. Scout, Docker Desktop’ta, CLI üzerinden çalışır ve Docker Hub ile entegre olur.
Docker ekosistemine şu şekilde oturur: Docker kapsayıcılarınızı oluşturur ve çalıştırır, Docker Hub onları depolar, Docker Scout ise içlerinde ne olduğunu söyler. Artık platformun bir parçası olduğunu, ayrı bir eklenti olmadığını unutmamak önemlidir.
Docker Scout, eskiden Snyk’in tarama motoruna dayanan docker scan komutunun yerini alır. Scout, Docker’ın kendi güvenlik açığı veritabanını kullanır ve tarama süreci üzerinde daha fazla kontrol sağlar. Hâlâ docker scan kullanıyorsanız, bu komut kullanım dışıdır — Scout resmî ikamedir ve yeni Docker Desktop sürümlerinde zaten mevcuttur.
Docker Scout’un Kurulumu ve Etkinleştirilmesi
Docker Scout, Docker Desktop 4.17 ve sonrasında yerleşik gelir; yani yakın bir sürüm kullanıyorsanız zaten sahipsiniz.
Docker CLI üzerinden çalışır ve Docker Desktop’ın arayüzünde görünür. Docker Desktop kullanıyorsanız, Scout varsayılan olarak etkindir — görüntüleri anında taramaya başlayabilirsiniz.
Scout’un sisteminizde mevcut olup olmadığını kontrol etmek için şu komutu çalıştırın:
Scout, görüntü katmanlarını analiz eder, paket bilgilerini çıkarır ve bilinen güvenlik açıklarını kontrol eder. Çoğu görüntü için tarama 30 saniye içinde tamamlanır.
Python 3.14 görüntüsü için tarama sonuçları
Henüz makinenizde olmayan görüntüleri de tarayabilirsiniz:
Scout, tam görüntüyü indirmeden kayıt defterinden meta verileri çeker. Bu sayede görüntüleri yerel olarak çekmeden önce kontrol edebilirsiniz.
Postgres 18.1 görüntüsü için tarama sonuçları
Analiz sırasında Scout her katmanı açar, yüklü paketleri ve bağımlılıkları belirler ve ardından her şeyi güvenlik açığı veritabanıyla karşılaştırır. Temel işletim sistemi paketlerini (Ubuntu tabanlı görüntülerdeki apt paketleri gibi) ve dile özgü bağımlılıkları (Python paketleri veya Node modülleri gibi) takip eder.
Çıktıyı anlama
Scout güvenlik açıklarını şiddetine göre gruplar: Kritik, Yüksek, Orta ve Düşük.
Kritik ve Yüksek seviyedeki güvenlik açıkları önce ele alınmalıdır. Bunlar aktif olarak istismar edilen sorunlar veya sistemi tehlikeye atabilecek ciddi hatalardır. Orta şiddetteki sorunlar önemlidir ancak genelde acil düzeltme gerektirmez. Düşük şiddettekileri takip etmek gerekir ama genelde dağıtımları engellemezler.
Her güvenlik açığı, sorunun bulunduğu paketi gösterir. Raporu kaydırdığınızda aşağıdakine benzer bir çıktı görürsünüz:
Güvenlik açığı raporu
Bu çıktı size tam olarak neyin savunmasız olduğunu (openssl), hangi sürümü kullandığınızı ve hangi sürümün sorunu düzelttiğini söyler. Scout ayrıca CVE ayrıntılarına bağlantılar verir; böylece güvenlik açığı hakkında kendiniz de okuyabilirsiniz.
Paket atfı, güvenlik açıklarının nereden geldiğini gösterir — temel görüntü paketleri, uygulama bağımlılıkları veya sistem kütüphaneleri. Bu da temel görüntüyü güncelleyip güncellemeyeceğinize, kodunuzdaki bir bağımlılığı yükseltip yükseltmeyeceğinize ya da yukarı akış düzeltmesini bekleyip beklemeyeceğinize karar vermenize yardımcı olur.
Docker Scout ile SBOM Oluşturma ve Görüntüleme
Yazılım Malzeme Listesi (SBOM), kapsayıcı görüntünüzün içindeki her şeyin — her paket, kütüphane ve bağımlılığın — eksiksiz bir envanteridir.
Görüntünüze tam olarak nelerin girdiğini, sürüm numaralarına kadar gösterir. Güvenlik ekipleri, üretimde nelerin çalıştığını izlemek için SBOM’ları kullanır ve uyumluluk çerçeveleri genellikle bunları zorunlu kılar.
Docker Scout, önceki bölümde gösterdiğim komutlarla bir görüntüyü taradığınızda SBOM’ları otomatik olarak üretir. Tekrar etmek gerekirse:
Bu komut, eksiksiz paket listesini terminalinize yazar. Scout görüntü katmanlarını analiz eder, paket meta verilerini çıkarır ve ardından kaydedip paylaşabileceğiniz bir SBOM olarak biçimlendirir.
SBOM’u ekrana yazdırmak yerine bir dosyaya aktarabilirsiniz:
Scout iki standart SBOM formatını destekler: SPDX (Software Package Data Exchange) ve CycloneDX. Her ikisi de sektörde yaygın olarak kullanılır. SPDX, uyumluluk ve hukuk incelemeleri için uygundur; CycloneDX ise güvenlik kullanım durumları ve güvenlik açığı takibine odaklanır.
Formatlar arasında --format bayrağıyla geçiş yapabilirsiniz:
Bir SBOM dosyası edindiğinizde, onu güvenlik ekipleriyle paylaşabilir, diğer tarama araçlarına besleyebilir veya uyumluluk denetimleri için arşivleyebilirsiniz.
Docker Scout ile CVE Bulma ve Anlama
Docker Scout, görüntünüzdeki paketleri bilinen güvenlik sorunları veritabanıyla eşleştirerek güvenlik açıklarını bulur.
docker scout cves çalıştırdığınızda Scout görüntünüzdeki her paketi — işletim sistemi paketleri, dil kütüphaneleri, uygulama bağımlılıkları — çıkarır, ardından her birini Ortak Güvenlik Açıkları ve Etkilenmeler (CVE) kayıtlarına göre kontrol eder. CVE, CVE-2024-1234 gibi benzersiz bir kimliğe sahip, kamuya açıklanmış bir güvenlik açığıdır.
Scout, CVE verilerini birden çok kaynaktan çeker:
Ulusal Güvenlik Açığı Veritabanı (NVD)
Linux dağıtımlarının güvenlik duyuruları
Python, Node.js, Go ve diğer ekosistemlere ait dile özgü güvenlik veritabanları
Bu, Scout’un hem temel görüntünüzün işletim sistemi paketlerindeki hem de uygulamanızın bağımlılıklarındaki güvenlik açıklarını yakalayabileceği anlamına gelir.
Şunu da unutmamak önemlidir: Analiz, görüntünüzün nerede bulunduğuna bağlı olarak farklı çalışır.
Yerel görüntüler (makinenizde oluşturduğunuz veya çektiğiniz) için Scout, görüntü katmanlarını doğrudan Docker daemon’ınızdan okur. Her katmanı açar, paketleri belirler ve güvenlik açığı kontrolünü yerel olarak yapar. Bu hızlıdır ve görüntünün kendisine ağ erişimi gerektirmez.
Uzak görüntüler (Docker Hub veya diğer kayıt defterlerinde) için Scout, tam görüntüyü indirmeden görüntü manifestini ve katman meta verilerini alır. Bu, görüntüleri çekmeden önce taramanıza olanak tanır. Güvenlik açığı verileri yine Scout’un veritabanından gelir, ancak görüntü analizi kayıt defteri meta verilerine göre yapılır.
Her iki yöntem de size aynı güvenlik açığı bilgilerini verir. Yalnızca Scout’un görüntü verisini nereden okuduğu farklıdır.
Düzeltme Rehberi ve Temel Görüntü Önerileri
Scout, mevcut bir yama olan bir güvenlik açığı bulduğunda, sorunu düzelten tam sürümü gösterir. Her CVE’nin yanında "Düzeltildi: 1.2.3" gibi bir çıktı görürsünüz. Bu, bir paketi güncelleyip güncellemeyeceğinizi, görüntünüzü daha yeni bir temel ile yeniden oluşturup oluşturmayacağınızı veya yukarı akış düzeltmesini bekleyip beklemeyeceğinizi bilmenizi sağlar.
Scout ayrıca, daha yeni bir temele geçmenin güvenlik açıklarını ortadan kaldıracağı durumlarda temel görüntü yükseltmeleri önerir. python:3.13 kullanıyorsanız ve Scout temel işletim sistemi paketlerinde sorunlar bulursa, python:3.14 hatta daha spesifik bir yama sürümüne yükseltmeyi önerebilir.
Bu öneriler, Scout farklı bir temel görüntü etiketinin mevcut etiketinizden daha az güvenlik açığına sahip olduğunu tespit ettiğinde görünür. Öneriler eyleme dönüktür — yeni etiketi Dockerfile’ınıza kopyalayıp yeniden derleme yapabilirsiniz.
Peki, bu neden önemli?
Temel görüntünüz; işletim sistemi paketlerini, sistem kütüphanelerini ve dil çalıştırma ortamlarını barındırır; diğer her şey bunlara dayanır. Savunmasız bir temel görüntü, ondan oluşturduğunuz her kapsayıcının bu güvenlik açıklarını miras alması demektir. Minimal ve aktif olarak bakımı yapılan bir temel görüntü seçtiğinizde saldırı yüzeyini azaltırsınız.
Docker Hub’daki resmî görüntüler düzenli güvenlik güncellemeleri alır, ancak bu düzeltmeleri almak için görüntülerinizi yeniden oluşturmanız gerekir. Örneğin, bugün python:3.13 çekmek, altı ay önce çektiğinizden farklı paketler getirir.
CI/CD’de Docker Scout Kullanımı
Ekipler, görüntüler üretime ulaşmadan önce güvenlik açıklarını yakalamak için Docker Scout’u CI boru hatlarına entegre eder.
Fikir basittir: Her görüntüyü derleme sürecinizin bir parçası olarak tarayın ve kritik güvenlik açıkları ortaya çıkarsa derlemeyi başarısız kılın. Böylece sorunları dağıtımdan sonra değil, geliştirme sırasında bulursunuz. Çoğu ekip, biri yeni bir Dockerfile gönderdiğinde veya temel görüntü güncellendiğinde Scout’un otomatik çalışmasını sağlar.
Boru hatları genellikle iki şeyi kontrol eder:
Güvenlik açığı gerilemeleri - Yeni görüntünüzü önceki sürümle karşılaştırır. Yeni derleme, bir öncekinden daha fazla Kritik veya Yüksek güvenlik açığı getiriyorsa, boru hattı başarısız olur. Bu, halihazırda çalışan sürümden daha kötü güvenlikte bir şeyi yanlışlıkla yayımlamanızı engeller.
Politika sapması - Görüntünüzün güvenlik standartlarını karşıladığını doğrular. Örneğin “Kritik CVE yok” veya “temel görüntüler 30 günden eski olmamalı” gibi bir politikanız olabilir. Scout, bu kuralları CI iş akışınızda otomatik olarak uygulayabilir.
GitHub Actions, GitLab CI veya Jenkins ile entegrasyon kavramsal olarak aynıdır. Görüntünüzü oluşturur, üzerinde docker scout cves çalıştırır, sonuçları ayrıştırır ve ölçütlerinize göre boru hattını geçirip geçirmeyeceğinize karar verirsiniz. Bazı ekipler, görüntüler itildikten hemen sonra taramak için Scout’u kapsayıcı kayıt defteri iş akışlarına entegre eder.
Docker Scout ve Diğer Görüntü Tarayıcıları
Docker Scout tek seçeneğiniz değildir. Trivy ve Snyk gibi araçlarla rekabet eder, ancak her biri farklı iş akışlarını hedefler.
Trivy yerel makinelerden CI boru hatlarına, Kubernetes kümelerine kadar her yerde çalışabilen açık kaynaklı bir tarayıcıdır. Kapsayıcı görüntülerini, dosya sistemlerini ve Git depolarını tarar. Trivy, nerede ve nasıl tarama yapacağınız konusunda daha fazla esneklik sunar ve kullanmak için Docker hesabı gerekmez. Docker ekosisteminden bağımsız çalışan, bağımsız bir tarayıcı gibi düşünebilirsiniz.
Snyk geliştirici iş akışlarına odaklanır ve IDE’ler, GitHub ve diğer geliştirme araçlarıyla derinlemesine entegre olur. Kapsayıcıların yanı sıra uygulama bağımlılıklarını, kod olarak altyapıyı ve kaynak kodunu tarar. Snyk ayrıca ayrıntılı düzeltme rehberi sunar ve güvenlik açıklarını gidermek için çekme istekleri açabilir. Sadece kapsayıcıları değil, tüm yığınınızı kapsayan güvenlik istiyorsanız Snyk makul bir seçimdir.
Docker Scout en iyi, zaten Docker Desktop ve Docker Hub kullandığınızda çalışır. Entegrasyon yereldir; ekstra kurulum yoktur, yönetilecek API anahtarları yoktur ve öğrenilecek ayrı araçlar gerekmez. Scout, Docker Hub’a itilen görüntüleri tarar ve CLI, Docker kurulumunuzun bir parçasıdır.
Ekibiniz kapsayıcıları Docker araçlarıyla oluşturup çalıştırıyorsa ve karmaşıklık eklemeden güvenlik görünürlüğü istiyorsanız Docker Scout’u seçin. Her yerde çalışabilen esnek, açık kaynaklı bir seçenek gerekiyorsa Trivy’yi seçin. Kapsayıcılar, kod ve altyapı genelinde otomatik düzeltmelerle eksiksiz güvenlik istiyorsanız Snyk’i seçin.
Yaygın Sınırlamalar ve Bilinmesi Gerekenler
Docker Scout kapsayıcı görüntülerini tarar, ancak bunlar dağıtıldıktan sonra neler olduğunu izlememez.
Statik görüntüleri — kapsayıcınıza yerleşik paketleri ve dosyaları — analiz eder. Dağıtımdan sonra başlayan ayrıcalık yükseltme saldırıları, ağ ihlalleri veya kötü amaçlı süreçler gibi çalışma zamanı sorunlarını tespit edemez. Çalışma zamanı güvenlik izleme gerekiyorsa, üretimde kapsayıcı davranışını izleyen Falco veya Sysdig gibi araçlara ihtiyaç duyarsınız.
Scout, tam teşekküllü SAST (Statik Uygulama Güvenlik Testi) veya DAST (Dinamik Uygulama Güvenlik Testi) yerine de geçmez. SAST araçları, herhangi bir şey oluşturmadan önce kaynak kodunuzu güvenlik kusurları açısından analiz eder. DAST araçları ise çalışan uygulamaları saldırıları simüle ederek test eder. Scout yalnızca oluşturulmuş görüntünüzün içindeki paketlere bakar — uygulama mantığınızdaki güvenlik açıklarını veya kodunuzdaki yapılandırma hatalarını yakalamaz.
Scout’un iyi yaptığı şey, görüntülerinizin içinde ne olduğuna görünürlük sağlamak ve sizi düzeltmelere yönlendirmektir. Hangi paketlerin savunmasız olduğunu, hangilerinin hangi sürümlerle düzeltildiğini ve hangi temel görüntülerin saldırı olanaklarını azalttığını söyler. Bu, Scout’u derleme zamanı güvenlik kontrolleri ve uyumluluk takibi için yararlı kılar; ancak güvenliğin tamamını kapsamak için başka araçlara da ihtiyaç duyarsınız.
Docker Scout Kullanımı İçin En İyi Uygulamalar
Docker Scout’tan en iyi şekilde yararlanmak için kullanabileceğiniz bir kontrol listesi:
Geliştirme döngünüzün başlarında tarayın. Scout’u yalnızca CI’da veya dağıtımdan önce değil, yerel geliştirme sırasında da görüntüler üzerinde çalıştırın. Güvenlik açıklarını erken bulmak, bağlam tazeyken ve değişiklikler ucuzken düzeltmek demektir. Üretime kalırsa, baskı altında yamalamak için koşturursunuz.
Güvenlik eğilimlerini izlemek için zaman içinde görüntüleri karşılaştırın. Scout, güvenliğinizin iyileşip iyileşmediğini gösterebilir. Her derlemede tarama yapın ve sonuçları karşılaştırın. Yeni derleme, bir öncekinden daha fazla kritik güvenlik açığı getiriyorsa bir şeyler değişmiştir — belki bir bağımlılık güncellemesi veya temel görüntü değişikliği. İncelemeniz gerekir.
Scout bulgularını mutlak engeller değil, önceliklendirme sinyalleri olarak ele alın. Her güvenlik açığının hemen eylem gerektirmesi gerekmez. Üretimde kullanılmayan bir geliştirme bağımlılığındaki düşük şiddette bir CVE bekleyebilir. Herkese açık bir hizmetteki kritik bir CVE ise derhal ilgilenilmelidir. Kendi dağıtımınız için önemli olanı belirlemek üzere Scout’un şiddet derecelendirmelerini ve paket bağlamını kullanın.
Scout’u temel görüntü hijyeniyle eşleştirin. Minimal, aktif olarak bakımı yapılan temel görüntüleri seçin ve düzenli olarak güncelleyin. python:3.14-slim kullanmak, python:3.14 yerine ihtiyaç duymadığınız paketleri dışarıda bırakır. Görüntülerinizi aylık yeniden oluşturmak, temel katmandaki güvenlik yamalarını alır. Scout neyin savunmasız olduğunu söyleyebilir; ancak iyi temeller seçmek, birçok güvenlik açığının baştan oluşmasını engeller.
Sonuç
Docker Scout, kapsayıcı görüntülerinizin içinde ne olduğunu anlamaya başlamanız için pratik bir yol sunar.
Docker tabanlı geliştirmeye uyumludur — ayrıca kurulacak araçlar yok, hâlihazırda kullandıklarınız dışında hesaplar açılacak değil. Bir komut çalıştırırsınız; güvenlik açığı raporlarını alır ve hangi paketlerin güncellenmesi gerektiğini görürsünüz.
Scout, tek başına değil, daha geniş bir güvenlik yaklaşımının parçası olarak en iyi sonucu verir. Onu çalışma zamanı izleme, kaynak kodu analizi ve düzenli temel görüntü güncellemeleriyle eşleştirin. Derlemeler sırasında güvenlik açıklarını yakalamak için kullanın; dağıtımdan sonra olanları kapsamak için başka araçlar ekleyin.
Docker’ın makine öğrenimi için CI/CD boru hatlarına nasıl oturduğunu merak ediyorsanız, Makine Öğrenimi için CI/CD kursumuza kaydolun. Tüm yanıtları bir öğleden sonra içinde alacaksınız.
Hırvatistan merkezli Kıdemli Veri Bilimci. 700’ün üzerinde yayımlanmış makaleyle 10 M+ görüntüleme elde eden, önde gelen bir teknoloji yazarı. TPOT ile Makine Öğrenimi Otomasyonu kitabının yazarı.
Docker Scout SSS
Docker Scout, CI/CD boru hatlarında güvenlik açığı taramalarını otomatikleştirmeye nasıl yardımcı olur?⌄
Docker Scout, yeni bir görüntü her oluşturulduğunda otomatik taramalar çalıştırarak CI/CD boru hatlarına entegre olur. Boru hattınızı, Kritik veya Yüksek güvenlik açıkları getiren derlemeleri başarısız olacak şekilde yapılandırabilir, böylece güvensiz görüntülerin üretime ulaşmasını engelleyebilirsiniz. Scout, güvenlik açığı gerilemelerini ve politika ihlallerini kontrol eder; böylece ekibiniz dağıtımdan sonra değil, derleme sırasında güvenlik sorunlarını yakalar.
Docker Scout ile Trivy veya Snyk gibi diğer kapsayıcı tarama araçları arasındaki temel farklar nelerdir?⌄
Docker Scout, Docker’a yerleşik olup ayrı bir kurulum gerektirmez; bu da zaten Docker Desktop ve Docker Hub kullanan ekipler için onu en kolay seçenek yapar. Trivy, Docker hesapları veya entegrasyonu gerektirmeden bağımsız çalışan ve her yerde kullanılabilen açık kaynaklı bir tarayıcıdır. Snyk, kapsayıcıların yanı sıra kaynak kodu ve altyapı genelinde daha geniş kapsama ve otomatik düzeltme önerilerine sahiptir; ancak ayrı bir abonelik ve kurulum gerektirir.
Docker Scout, GitHub veya JFrog Artifactory gibi üçüncü taraf sistemlerle nasıl entegre olur?⌄
Docker Scout, Docker CLI komutları kullanılarak GitHub Actions, GitLab CI veya diğer boru hattı araçlarından çağrılabilir. Derleme iş akışınızın bir parçası olarak docker scout cves çalıştırır, ardından sonuçları ayrıştırarak boru hattını geçirip geçirmeyeceğinize karar verirsiniz. JFrog Artifactory gibi kayıt defterleri için, uzaktan referans vererek görüntüleri itildikten sonra tarayabilirsiniz; ancak entegrasyon, belirli kayıt defteri kurulumunuza ve kimlik doğrulamasına bağlıdır.
Docker Scout, kapsayıcı güvenliğini gerçek zamanlı izlemek için kullanılabilir mi?⌄
Hayır, Docker Scout yalnızca statik kapsayıcı görüntülerini tarar; çalışan kapsayıcıları gerçek zamanlı izlemez. Dağıtımdan önce veya sonra oluşturulmuş görüntülerinizin içinde ne olduğunu analiz eder; ancak süreç yürütme, ağ etkinliği veya ayrıcalık yükseltme saldırıları gibi çalışma zamanı davranışlarını izlemez. Çalışma zamanı güvenlik izleme için, üretim ortamlarında kapsayıcı davranışını izleyen Falco veya Sysdig gibi özel araçlara ihtiyaç vardır.
Yazılım tedarik zinciri güvenliğini yönetmek için Docker Scout kullanmanın faydaları nelerdir?⌄
Docker Scout, görüntülerinizdeki her paket ve bağımlılığı belgeleyen Yazılım Malzeme Listeleri (SBOM) üretir; bu da yazılım tedarik zincirinize tam görünürlük sağlar. Bu, uyumluluk gereksinimlerinde, olay müdahalesinde ve yeni güvenlik açıkları duyurulduğunda hangi sistemlerin etkilendiğini takip etmede yardımcı olur. Scout ayrıca güvenlik açıklarının nereden geldiğini — temel görüntüler, uygulama bağımlılıkları veya sistem kütüphaneleri — gösterir; böylece güvenlik sorunlarını kaynağına kadar izleyip doğru seviyede düzeltebilirsiniz.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Docker'a giriş yapın ve veri uzmanlarının araç setinde Docker'ın önemini keşfedin. Docker konteynerleri, görüntüler ve daha fazlası hakkında bilgi edinin.
Hikâye genelde şöyle başlar: Docker görüntünüzü oluşturdunuz, etiketlediniz ve dağıttınız. Her şey yolunda giderken güvenlik ekibiniz, varlığından bile haberdar olmadığınız bir pakette güvenlik açıkları tespit eder. Daha da kötüsü, uyumluluk ekibi bir Yazılım Malzeme Listesi (SBOM) ister ve görüntülerinizle hangi bağımlılıkların geldiğini nasıl çıkaracağınızı düşünürsünüz. Kapsayıcı görüntüleri kara kutu olabilir; bu da üretimde çalışanlardan siz sorumluyken sorun yaratır.
Docker Scout, görüntülerinizi güvenlik açıkları için tarayıp otomatik olarak SBOM üreterek kapsayıcı görüntülerinize görünürlük kazandırır. Docker’a yerleşiktir; ayrı bir araç kurmanız veya öğrenmeniz gerekmez.
Bu kılavuzda, Docker Scout ile görüntüleri nasıl tarayacağınızı ve oluşturduğu güvenlik açığı raporlarını nasıl anlayacağınızı göstereceğim; böylece ne zaman kullanmanın mantıklı olduğunu bileceksiniz.
Docker’a yeniyseniz, en iyi 18 Docker Komutu makalemize göz atın. Bu komutlar, kapsayıcıları oluşturma, çalıştırma ve yönetme konusunda sizi doğru yola sokacaktır.
Docker Scout Nedir?
Docker Scout, kapsayıcı görüntülerinizi güvenlik açıkları için tarayan ve Yazılım Malzeme Listeleri (SBOM) oluşturan Docker’ın yerel görüntü analiz aracıdır.
Görüntünüzün içindeki her şeyi analiz eder: temel işletim sistemi paketlerinden, dile özgü bağımlılıklara ve uygulama kütüphanelerine kadar. Ardından bunları bilinen güvenlik açığı veritabanlarıyla karşılaştırır. Hangi paketlerde güvenlik sorunları olduğunu, şiddet seviyelerini ve hangi sürümlerin bunları düzelttiğini gösteren bir rapor elde edersiniz.
Böylece üçüncü taraf tarayıcılar kullanmak veya güvenlik ekiplerinin dağıtımdan sonra sorunları işaretlemesini beklemek yerine, görüntüleri tam da oluşturduğunuz yerde tarayabilirsiniz. Scout, Docker Desktop’ta, CLI üzerinden çalışır ve Docker Hub ile entegre olur.
Docker ekosistemine şu şekilde oturur: Docker kapsayıcılarınızı oluşturur ve çalıştırır, Docker Hub onları depolar, Docker Scout ise içlerinde ne olduğunu söyler. Artık platformun bir parçası olduğunu, ayrı bir eklenti olmadığını unutmamak önemlidir.
Docker Scout, eskiden Snyk’in tarama motoruna dayanan
docker scankomutunun yerini alır. Scout, Docker’ın kendi güvenlik açığı veritabanını kullanır ve tarama süreci üzerinde daha fazla kontrol sağlar. Hâlâdocker scankullanıyorsanız, bu komut kullanım dışıdır — Scout resmî ikamedir ve yeni Docker Desktop sürümlerinde zaten mevcuttur.Docker Scout’un Kurulumu ve Etkinleştirilmesi
Docker Scout, Docker Desktop 4.17 ve sonrasında yerleşik gelir; yani yakın bir sürüm kullanıyorsanız zaten sahipsiniz.
Docker CLI üzerinden çalışır ve Docker Desktop’ın arayüzünde görünür. Docker Desktop kullanıyorsanız, Scout varsayılan olarak etkindir — görüntüleri anında taramaya başlayabilirsiniz.
Scout’un sisteminizde mevcut olup olmadığını kontrol etmek için şu komutu çalıştırın:
Scout CLI sürümünü ve eklenti durumunu gösteren bir çıktı görürsünüz.
Docker scout version
Komut çalışıyorsa, görüntüleri taramaya hazırsınız.
Eğer "command not found" hatası alırsanız Docker sürümünüz çok eskidir. Docker Scout’a erişmek için Docker Desktop’ı güncelleyin.
Bir Görüntüyü Docker Scout ile Tarama
Taramayı çalıştırmak tek bir komutla olur; kolay kısmı budur. Zorlayıcı olabilen, bazen Scout’un bulduklarını anlamaktır.
Bir görüntüyü analiz etme
Yerel bir görüntüyü, adını veya kimliğini Docker Scout’a vererek şu komutla tarayabilirsiniz:
Scout, görüntü katmanlarını analiz eder, paket bilgilerini çıkarır ve bilinen güvenlik açıklarını kontrol eder. Çoğu görüntü için tarama 30 saniye içinde tamamlanır.
Python 3.14 görüntüsü için tarama sonuçları
Henüz makinenizde olmayan görüntüleri de tarayabilirsiniz:
Scout, tam görüntüyü indirmeden kayıt defterinden meta verileri çeker. Bu sayede görüntüleri yerel olarak çekmeden önce kontrol edebilirsiniz.
Postgres 18.1 görüntüsü için tarama sonuçları
Analiz sırasında Scout her katmanı açar, yüklü paketleri ve bağımlılıkları belirler ve ardından her şeyi güvenlik açığı veritabanıyla karşılaştırır. Temel işletim sistemi paketlerini (Ubuntu tabanlı görüntülerdeki
aptpaketleri gibi) ve dile özgü bağımlılıkları (Python paketleri veya Node modülleri gibi) takip eder.Çıktıyı anlama
Scout güvenlik açıklarını şiddetine göre gruplar: Kritik, Yüksek, Orta ve Düşük.
Kritik ve Yüksek seviyedeki güvenlik açıkları önce ele alınmalıdır. Bunlar aktif olarak istismar edilen sorunlar veya sistemi tehlikeye atabilecek ciddi hatalardır. Orta şiddetteki sorunlar önemlidir ancak genelde acil düzeltme gerektirmez. Düşük şiddettekileri takip etmek gerekir ama genelde dağıtımları engellemezler.
Her güvenlik açığı, sorunun bulunduğu paketi gösterir. Raporu kaydırdığınızda aşağıdakine benzer bir çıktı görürsünüz:
Güvenlik açığı raporu
Bu çıktı size tam olarak neyin savunmasız olduğunu (
openssl), hangi sürümü kullandığınızı ve hangi sürümün sorunu düzelttiğini söyler. Scout ayrıca CVE ayrıntılarına bağlantılar verir; böylece güvenlik açığı hakkında kendiniz de okuyabilirsiniz.Paket atfı, güvenlik açıklarının nereden geldiğini gösterir — temel görüntü paketleri, uygulama bağımlılıkları veya sistem kütüphaneleri. Bu da temel görüntüyü güncelleyip güncellemeyeceğinize, kodunuzdaki bir bağımlılığı yükseltip yükseltmeyeceğinize ya da yukarı akış düzeltmesini bekleyip beklemeyeceğinize karar vermenize yardımcı olur.
Docker Scout ile SBOM Oluşturma ve Görüntüleme
Yazılım Malzeme Listesi (SBOM), kapsayıcı görüntünüzün içindeki her şeyin — her paket, kütüphane ve bağımlılığın — eksiksiz bir envanteridir.
Görüntünüze tam olarak nelerin girdiğini, sürüm numaralarına kadar gösterir. Güvenlik ekipleri, üretimde nelerin çalıştığını izlemek için SBOM’ları kullanır ve uyumluluk çerçeveleri genellikle bunları zorunlu kılar.
Docker Scout, önceki bölümde gösterdiğim komutlarla bir görüntüyü taradığınızda SBOM’ları otomatik olarak üretir. Tekrar etmek gerekirse:
Bu komut, eksiksiz paket listesini terminalinize yazar. Scout görüntü katmanlarını analiz eder, paket meta verilerini çıkarır ve ardından kaydedip paylaşabileceğiniz bir SBOM olarak biçimlendirir.
SBOM’u ekrana yazdırmak yerine bir dosyaya aktarabilirsiniz:
SBOM SPDX raporu
Scout iki standart SBOM formatını destekler: SPDX (Software Package Data Exchange) ve CycloneDX. Her ikisi de sektörde yaygın olarak kullanılır. SPDX, uyumluluk ve hukuk incelemeleri için uygundur; CycloneDX ise güvenlik kullanım durumları ve güvenlik açığı takibine odaklanır.
Formatlar arasında
--formatbayrağıyla geçiş yapabilirsiniz:SBOX CycloneDX raporu
Bir SBOM dosyası edindiğinizde, onu güvenlik ekipleriyle paylaşabilir, diğer tarama araçlarına besleyebilir veya uyumluluk denetimleri için arşivleyebilirsiniz.
Docker Scout ile CVE Bulma ve Anlama
Docker Scout, görüntünüzdeki paketleri bilinen güvenlik sorunları veritabanıyla eşleştirerek güvenlik açıklarını bulur.
docker scout cvesçalıştırdığınızda Scout görüntünüzdeki her paketi — işletim sistemi paketleri, dil kütüphaneleri, uygulama bağımlılıkları — çıkarır, ardından her birini Ortak Güvenlik Açıkları ve Etkilenmeler (CVE) kayıtlarına göre kontrol eder. CVE, CVE-2024-1234 gibi benzersiz bir kimliğe sahip, kamuya açıklanmış bir güvenlik açığıdır.Scout, CVE verilerini birden çok kaynaktan çeker:
Bu, Scout’un hem temel görüntünüzün işletim sistemi paketlerindeki hem de uygulamanızın bağımlılıklarındaki güvenlik açıklarını yakalayabileceği anlamına gelir.
Şunu da unutmamak önemlidir: Analiz, görüntünüzün nerede bulunduğuna bağlı olarak farklı çalışır.
Her iki yöntem de size aynı güvenlik açığı bilgilerini verir. Yalnızca Scout’un görüntü verisini nereden okuduğu farklıdır.
Düzeltme Rehberi ve Temel Görüntü Önerileri
Scout, mevcut bir yama olan bir güvenlik açığı bulduğunda, sorunu düzelten tam sürümü gösterir. Her CVE’nin yanında "Düzeltildi: 1.2.3" gibi bir çıktı görürsünüz. Bu, bir paketi güncelleyip güncellemeyeceğinizi, görüntünüzü daha yeni bir temel ile yeniden oluşturup oluşturmayacağınızı veya yukarı akış düzeltmesini bekleyip beklemeyeceğinizi bilmenizi sağlar.
Scout ayrıca, daha yeni bir temele geçmenin güvenlik açıklarını ortadan kaldıracağı durumlarda temel görüntü yükseltmeleri önerir.
python:3.13kullanıyorsanız ve Scout temel işletim sistemi paketlerinde sorunlar bulursa,python:3.14hatta daha spesifik bir yama sürümüne yükseltmeyi önerebilir.Bu öneriler, Scout farklı bir temel görüntü etiketinin mevcut etiketinizden daha az güvenlik açığına sahip olduğunu tespit ettiğinde görünür. Öneriler eyleme dönüktür — yeni etiketi Dockerfile’ınıza kopyalayıp yeniden derleme yapabilirsiniz.
Peki, bu neden önemli?
Temel görüntünüz; işletim sistemi paketlerini, sistem kütüphanelerini ve dil çalıştırma ortamlarını barındırır; diğer her şey bunlara dayanır. Savunmasız bir temel görüntü, ondan oluşturduğunuz her kapsayıcının bu güvenlik açıklarını miras alması demektir. Minimal ve aktif olarak bakımı yapılan bir temel görüntü seçtiğinizde saldırı yüzeyini azaltırsınız.
Docker Hub’daki resmî görüntüler düzenli güvenlik güncellemeleri alır, ancak bu düzeltmeleri almak için görüntülerinizi yeniden oluşturmanız gerekir. Örneğin, bugün
python:3.13çekmek, altı ay önce çektiğinizden farklı paketler getirir.CI/CD’de Docker Scout Kullanımı
Ekipler, görüntüler üretime ulaşmadan önce güvenlik açıklarını yakalamak için Docker Scout’u CI boru hatlarına entegre eder.
Fikir basittir: Her görüntüyü derleme sürecinizin bir parçası olarak tarayın ve kritik güvenlik açıkları ortaya çıkarsa derlemeyi başarısız kılın. Böylece sorunları dağıtımdan sonra değil, geliştirme sırasında bulursunuz. Çoğu ekip, biri yeni bir Dockerfile gönderdiğinde veya temel görüntü güncellendiğinde Scout’un otomatik çalışmasını sağlar.
Boru hatları genellikle iki şeyi kontrol eder:
GitHub Actions, GitLab CI veya Jenkins ile entegrasyon kavramsal olarak aynıdır. Görüntünüzü oluşturur, üzerinde
docker scout cvesçalıştırır, sonuçları ayrıştırır ve ölçütlerinize göre boru hattını geçirip geçirmeyeceğinize karar verirsiniz. Bazı ekipler, görüntüler itildikten hemen sonra taramak için Scout’u kapsayıcı kayıt defteri iş akışlarına entegre eder.Docker Scout ve Diğer Görüntü Tarayıcıları
Docker Scout tek seçeneğiniz değildir. Trivy ve Snyk gibi araçlarla rekabet eder, ancak her biri farklı iş akışlarını hedefler.
Ekibiniz kapsayıcıları Docker araçlarıyla oluşturup çalıştırıyorsa ve karmaşıklık eklemeden güvenlik görünürlüğü istiyorsanız Docker Scout’u seçin. Her yerde çalışabilen esnek, açık kaynaklı bir seçenek gerekiyorsa Trivy’yi seçin. Kapsayıcılar, kod ve altyapı genelinde otomatik düzeltmelerle eksiksiz güvenlik istiyorsanız Snyk’i seçin.
Yaygın Sınırlamalar ve Bilinmesi Gerekenler
Docker Scout kapsayıcı görüntülerini tarar, ancak bunlar dağıtıldıktan sonra neler olduğunu izlememez.
Statik görüntüleri — kapsayıcınıza yerleşik paketleri ve dosyaları — analiz eder. Dağıtımdan sonra başlayan ayrıcalık yükseltme saldırıları, ağ ihlalleri veya kötü amaçlı süreçler gibi çalışma zamanı sorunlarını tespit edemez. Çalışma zamanı güvenlik izleme gerekiyorsa, üretimde kapsayıcı davranışını izleyen Falco veya Sysdig gibi araçlara ihtiyaç duyarsınız.
Scout, tam teşekküllü SAST (Statik Uygulama Güvenlik Testi) veya DAST (Dinamik Uygulama Güvenlik Testi) yerine de geçmez. SAST araçları, herhangi bir şey oluşturmadan önce kaynak kodunuzu güvenlik kusurları açısından analiz eder. DAST araçları ise çalışan uygulamaları saldırıları simüle ederek test eder. Scout yalnızca oluşturulmuş görüntünüzün içindeki paketlere bakar — uygulama mantığınızdaki güvenlik açıklarını veya kodunuzdaki yapılandırma hatalarını yakalamaz.
Scout’un iyi yaptığı şey, görüntülerinizin içinde ne olduğuna görünürlük sağlamak ve sizi düzeltmelere yönlendirmektir. Hangi paketlerin savunmasız olduğunu, hangilerinin hangi sürümlerle düzeltildiğini ve hangi temel görüntülerin saldırı olanaklarını azalttığını söyler. Bu, Scout’u derleme zamanı güvenlik kontrolleri ve uyumluluk takibi için yararlı kılar; ancak güvenliğin tamamını kapsamak için başka araçlara da ihtiyaç duyarsınız.
Docker Scout Kullanımı İçin En İyi Uygulamalar
Docker Scout’tan en iyi şekilde yararlanmak için kullanabileceğiniz bir kontrol listesi:
Geliştirme döngünüzün başlarında tarayın. Scout’u yalnızca CI’da veya dağıtımdan önce değil, yerel geliştirme sırasında da görüntüler üzerinde çalıştırın. Güvenlik açıklarını erken bulmak, bağlam tazeyken ve değişiklikler ucuzken düzeltmek demektir. Üretime kalırsa, baskı altında yamalamak için koşturursunuz.
Güvenlik eğilimlerini izlemek için zaman içinde görüntüleri karşılaştırın. Scout, güvenliğinizin iyileşip iyileşmediğini gösterebilir. Her derlemede tarama yapın ve sonuçları karşılaştırın. Yeni derleme, bir öncekinden daha fazla kritik güvenlik açığı getiriyorsa bir şeyler değişmiştir — belki bir bağımlılık güncellemesi veya temel görüntü değişikliği. İncelemeniz gerekir.
Scout bulgularını mutlak engeller değil, önceliklendirme sinyalleri olarak ele alın. Her güvenlik açığının hemen eylem gerektirmesi gerekmez. Üretimde kullanılmayan bir geliştirme bağımlılığındaki düşük şiddette bir CVE bekleyebilir. Herkese açık bir hizmetteki kritik bir CVE ise derhal ilgilenilmelidir. Kendi dağıtımınız için önemli olanı belirlemek üzere Scout’un şiddet derecelendirmelerini ve paket bağlamını kullanın.
Scout’u temel görüntü hijyeniyle eşleştirin. Minimal, aktif olarak bakımı yapılan temel görüntüleri seçin ve düzenli olarak güncelleyin.
python:3.14-slimkullanmak,python:3.14yerine ihtiyaç duymadığınız paketleri dışarıda bırakır. Görüntülerinizi aylık yeniden oluşturmak, temel katmandaki güvenlik yamalarını alır. Scout neyin savunmasız olduğunu söyleyebilir; ancak iyi temeller seçmek, birçok güvenlik açığının baştan oluşmasını engeller.Sonuç
Docker Scout, kapsayıcı görüntülerinizin içinde ne olduğunu anlamaya başlamanız için pratik bir yol sunar.
Docker tabanlı geliştirmeye uyumludur — ayrıca kurulacak araçlar yok, hâlihazırda kullandıklarınız dışında hesaplar açılacak değil. Bir komut çalıştırırsınız; güvenlik açığı raporlarını alır ve hangi paketlerin güncellenmesi gerektiğini görürsünüz.
Scout, tek başına değil, daha geniş bir güvenlik yaklaşımının parçası olarak en iyi sonucu verir. Onu çalışma zamanı izleme, kaynak kodu analizi ve düzenli temel görüntü güncellemeleriyle eşleştirin. Derlemeler sırasında güvenlik açıklarını yakalamak için kullanın; dağıtımdan sonra olanları kapsamak için başka araçlar ekleyin.
Docker’ın makine öğrenimi için CI/CD boru hatlarına nasıl oturduğunu merak ediyorsanız, Makine Öğrenimi için CI/CD kursumuza kaydolun. Tüm yanıtları bir öğleden sonra içinde alacaksınız.