Giriş: Neden konteyner Görüntü Hattı Boru Hattında Belongs

Konteynerizasyon, "konuşucum üzerinde" problemini ortadan kaldıran tutarlılık sağlar, ancak konteynerler güçlü bir şekilde bilinen açıklığa kavuşturabilir, ayrıca bilinen açıklığa sahip olan bazı sayfalara sahip olan aynı özellikler, ve geliştiriciler sıklıkla ek sürümler, önceden belirlenmiş işletim sistemindeki hataları ortaya koyarlar.

Konteyner güvenliğini daha etkili bir yaklaşım açıklandığında, [Döneticileri, kritik bir Ortak Vulnerability ve Exposure (CVE) bir kayıtta bulunan, modern CI/CD boru hatları için beton uygulama stratejilerine sahiptir ve konteyner imajınızı doğrudan bir kayıt altına alan bir güvenlik ortamı oluşturmak için en iyi uygulamaları düzenler.

Konteyner Image Scanning

Konteyner görüntüsü tarama, bilinen güvenlik açıklarını, eski yazılım paketlerini, yanlış yapılandırmaları ve uyumluluk ihlallerini tespit etmek için bir konteyner imajının katmanlarını incelemenin otomatik sürecidir.Stratlar, bir görüntünün içeriğiyle karşılaştırır - her bir işletim sistemi, uygulama bağımlısı ve genellikle yüklü kütüphaneler - ulusal Vulnerability Database (NVD), OSV veya satıcılara özel beslemeler gibi bir paket güncellemek.

Tarama türleri: Statik vs. Dinamik

Çoğu konteyner görüntüsü tarayıcıları statik olarak çalışır. Görüntüyü çalıştırmaksızın analiz ederler, bu da her inşaa entegre edilebilir hızlı taramalar sağlar. Statik olarak dosya sistemini ve paketi ortaya çıkarır (örneğin, API anahtarları veya aşırı yükleyici, vb.) diğer taraftan, konteyneri kuma indirerek, daha az sayıdaki davranışı tespit etmek için, daha az sayıda gelişmiş araçları izlemek için görüntüyü kontrol eder.

Hangi tarayıcılar Aramaya Bakıyor

  • [FONT:0)Bilgi (CVEs)), işletim sistemi paketlerinde, dil koşu zamanları ve uygulama bağımlılıkları.
  • [FONT:0]Outdated veya deprecated software artık güvenlik yamaları alamayanlar.
  • [FONT:0)Misimarlar[[Döncükler: 1) kök, eksik sağlık kontrolleri veya maruz kalan sırları gibi.
  • [0]Compliance ihlalleri [Dönetici DSS, HIPAA veya SOS 2 gibi standartlara karşı olarak, belirli görüntü zorlaştırma gerektiren 2'ye karşı).
  • [0]Malware veya beklenmedik binerler [Döneticileri kamu kayıtlarından çekilen temel görüntülerde .

Base Image Selection'ın Rolü

Herhangi bir konteyner imajının temeli, saldırı yüzeyinin önemli ölçüde azaltıldığı bir görüntüyü, yeni bir sürüme karşı temel imajınızı karşılaştırır (örneğin, tarama olmadan, takımlar düzeltilmiş bir görüntüyü kullanmaya devam edebilir veya Ubuntu'nun sertleştirilmiş versiyonları) önemli ölçüde saldırı yüzeyinin azaltılır. Tarayıcılar, ana görüntünüzü yeni bir sürüme karşı karşılaştırabilir ve uyarı olmadan, yamalı sürüm kullanılabilir.

Tümleşik Taramanın Faydaları

Geliş akışında rutin bir adıma yönelik bir iş ilanından itibaren konteyner görüntüsü tarama, zamanla bileşik olan beton avantajları verir.

Vulner yükümlülüklerinin erken tespiti

Bir çekme talebi incelemesi sırasında bir kırılganlığı yakalamak, düzeltmeye mal olur. Üretimdeki aynı sorunu yakalamak acil bir geri dönüş, olay yanıtı gerektirir ve genellikle yeni bir dağıtım hattı çalıştırılır. Erken algılama, zaman zamanınızı yenidenmedme (MTTR) anlamına gelir ve kırılgan görüntülerin sürekli boca veya üretim ortamlarına ulaşmasını engeller.

Otomatik Güvenlik Şişeler olmadan Kontrolleri

Güvenlik takımları genellikle sorgulanır ve organizasyonunuzun ürettiği her konteyner imajını manuel olarak inceleyemez.CI/CD boru hattında tarama yaparak, her inşa için tutarlı kontrolleri uygulayın - bir geliştiricinin deneysel şubesi veya bir serbest bırakma adayıdır. Otomasyon, güvenlikin insan vigilance'a bağlı olmadığını ve konteyner ayak izinizin büyüdükçe sorunsuz bir şekilde ölçeklendirilmesini sağlar.

Düzenleme ve Denetim Okuma

Birçok uyumluluk çerçevesi, konteyner görüntülerinin dağıtımdan önce açıklığa kavuşturulmuş olduğu kanıt gerektirir. Otomatik tarama denetimler bir denetim izi yaratır - her görüntünün sanatı ile birlikte depolanabilir bir rapor vardır.Bu, denetim sırasındaki özeni ispatlamak için basitleştirir. Dahası, politika kodlu araçlar tarama sonuçlarına dayanan, otomatik olarak hareket etmemeli görüntülerin önlenmesine olanak sağlar.

Değiştirilmeleri Değiştirin –Left Security

Geliştirme sırasında bir kırılganlık tespit etmek, bir kod değişikliğinden biraz daha fazla maliyetle ve yeniden inşa edilmiş bir görüntüyü azaltır.Bu görüntü onlarca veya yüzlerce düğüm arasında dağıtılırsa, maliyet yükselir: yeniden başlatılır, ve potansiyel müşteri-yüzey olayları ele alalım.

CI/CD Boru Hattında Uygunluk

Geliştirme iş akışınıza yapılan konteyner imajının tamamı doğru araçları seçmek, tarama adımını otomatikleştirmek, politikaları tanımlamak ve geliştiricilerin sorunsuz sonuçlar üzerinde hareket etmesini sağlamak. Aşağıda, modern CI/CD platformuna uygulanan ayrıntılı, adım adım adım adım yaklaşımıdır.

Adım 1: Stack'inizi sağlayan bir Scanning Tool seçin

Konteyner tarama ekosistemi açık kaynak ve ticari seçenekler sunar. Dil ekosistem desteği (Node.js, Python, Java, Go, vs.), veritabanı güncelleştirme frekansı, mevcut CI/CD aracınızla entegrasyon yetenekleri ve politika kararlarını basit bir geçiş/fail ötesinde uygulama yeteneği: Popüler seçimler şunlardır:

  • [FONT:0]Trivy[[Dönetici: Aqua Güvenlik): Açık kaynak, hızlı, birden fazla dili ve OS paketlerini destekler ve kolayca GitHub Actions'a entegre eder, GitLab CI, Jenkins, ya da herhangi bir Docker bazlı boru hattı için yaygın olarak kabul edilir.
  • [DÜDÜDÜ:0)Clair[DÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜSÜSÜDÜDÜSÜSÜSÜDÜSÜSÜSÜSÜSÜSÜSÜSÜDÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜN
  • [FONT:0]Snyk[[DÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜŞÜNÜŞÜNÜ: 0,0)Snyk[DÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜNÜDÜDÜDÜDÜŞÜNÜŞÜNÜDÜDÜDÜŞÜNÜDÜDÜDÜDÜDÜŞÜNÜŞÜNÜDÜDÜDÜDÜDÜDÜDÜŞÜNÜDÜDÜDÜDÜDÜDÜDÜDÜDÜŞÜNÜDÜDÜDÜDÜDÜDÜDÜŞÜNÜŞÜNÜDÜDÜŞÜNÜDÜDÜŞÜNÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜ
  • [FONT=0]Docker Path[[[Dönetici: 3 ): Docker'in yerleşik tarama aracı, Docker Desktop kullanıcıları için ücretsiz ve Docker Hub'a entegre edilmiştir.
  • [FONT:0]Anchore Engine[[Dönetici: Bir tek bir hizmet olarak konuşabilen açık kaynak tarayıcı. Özel politikalar ve işletme uyum akışlarına beslemektedir.

[[Döneticileri:WinT:0) RunHub Actions'da Trivy ile entegrasyon:[Dönetici:0)"[GÜNCÜDÜDÜDÜDÜye Olmayanlar İçindeki Görüntüyü Takip Etmeden Çıkarmak İçin Bir Adımı Yapabilirsiniz.

Adım 2: CI/CD Boru Hattında Tarama

Görüntü inşa edildikten sonra tarama adımını yerleştirin, ancak kayıt için itilir. Bu, güvenlik kontrollerini depolama ve dağıtım bölgelerinize geçen yalnızca görüntüler sağlar. Aşağıda kavramsal bir boru hattı siparişi:

# Pseudocode for a typical CI/CD workflow
1. Checkout source code
2. Install dependencies and application code
3. Build container image using Dockerfile
4. Run container image scan with severity threshold
 If FAIL: Notify developer, stop pipeline
 If PASS: Continue to step 5
5. Push image to registry (with scan report metadata)
6. Deploy to staging environment
7. (Optional) Re-scan after deployment for runtime checks

GitLab CI, normal bir konfigürasyon parçaları gibi görünebilir:

container_scan:
 stage: security
 image: docker:20.10.16
 services:
 - docker:20.10.16-dind
 before_script:
 - apk add --no-cache curl
 - curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/scripts/get_helm.sh | sh
 script:
 - trivy image --exit-code 0 --severity LOW,MEDIUM --ignore-unfixed your-image:$CI_COMMIT_SHA
 - trivy image --exit-code 1 --severity CRITICAL,HIGH --ignore-unfixed your-image:$CI_COMMIT_SHA

İki geçişin kullanımını unutmayın: ilk geçiş sadece düşük ve orta sorunlar (exit kodu 0, bu yüzden boru hattı devam eder), ikinci geçiş kritik ve yüksek konularda boru hattı başarısız olurken, geliştiricilerin hala ağır güvenliklere karşı sıkı bir politika görmelerine izin verir.

3. Adım: Sonuçlar Üzerine İnceleme ve Yasası

Raw tarama çıktısı, bir görüntünün yüzlerce düşük az sayıda düşük ücretli bulguları içeriyorsa ezici olabilir, yapılandırılmış bir rapor (JSON veya SARIF) yayınlamanız ve geliştirici panjur veya çekme talebi yorumlarınızla entegre edilebilir. Örneğin, GitHub Actions, önerilen düzeltmelerle birlikte, Teams'in bulguları düzenli olarak, bu yanlışları doğrulaması gerekir (JSON veya SARIF) ve bunu konteynerin bağlamdan yararlanamayan paketler gibi) dışlanma ayarlarını güncelleyerek yorumlanabilir.

Adım 4: Güç Güvenliği Politikaları Oluşturma ve Enforce Güvenlik Politikaları

Organizasyonunuz için “pas” ne anlama geldiğini tanımlayın. Ortak politikalar şunları içerir:

  • Bilinen bir düzeltmeye sahip olan kritik veya yüksek oranda kırılganlık açıkları yoktur (ignore-unfixed).
  • Base görüntüleri 30 günden daha az eski olmalıdır veya inşa belirli bir sertleştirilmiş bir zemin kullanmalıdır.
  • Yanmış kullanıcı Dockerfile'de ([[Dönemli: 9).
  • Herhangi bir katmanda açığa çıkan sırları veya sert şifreli kimlikleri açığa çıkarmaz.

Bu politikaların programmatik olarak tarayıcının çıkış kodları veya ayrı bir politika motoru aracılığıyla uygulamaktadır. Bir ihlal meydana gelirse, boru hattının itkiyi engellemesi ve geliştirici veya ekip liderliğini bildirmesi gerekir. düşük ücretli uyarılar için, boru hattının başarılı olmasına izin verebilir ve sonuçları oturum açmanıza izin verebilirsiniz.

Etkili Konteyner Image Taraması için En İyi Uygulamalar

Yalnız tarama yeterli değildir - süreci nasıl uygularsınız ve korursunuz, bu kanıtlanmış uygulamaları takip etmek, tarama çabalarınızın güvenliğini en üst düzeye çıkarmanıza yardımcı olacaktır.

Erken ve Tarama Sık sık sık

Son sürüme taramayı sınırlamak yok. Her bir sabit kayıt için bir paket oluşturmak için her işlemi bir konteyner imajını içeren bir işlem yapın. Bu, gelişim şubeleri, özellik şubeleri içeriyor ve istek bir araya getiriyor. Daha önceki bir hassas bağımlılık, daha az bağlam geçişini düzeltmek için gerekli olduğunu bulmak için gerekli.For baz görüntüler, göz önünde bulundurun.

Scanning Tools ve Databases Güncelleme Tarihi

Vulnerability databases günlük olarak güncellenmektedir, bazen saatli. Sabit bir sabit veritabanı çalıştırılan bir tarayıcı en son CVEs'leri kaçıracaktır.Her taramadan önce en son kırılgan veritabanını çekmeniz için boru hattınızı yapılandırın.For Trivy, useUVT:10).

Minimal Base Images ve Multi-Stage Builds

Bir görüntüdeki daha az paket, daha az potansiyel açıklar. Uygulamanızı tam olarak yenilmez veya boş bir şekilde kullanarak kopyalayın.Bu kez, sabit veya distroless görüntüye kadar çok aşamalı Dockerfiles kullanın.Bu, yüzey alanını çarpıcı bir şekilde azaltır. Örneğin, uygulamanızı tam zamanlı olarak başarılı bir şekilde yok edin.

# Example multi-stage build
FROM golang:1.21 AS builder
WORKDIR /app
COPY . .
RUN go build -o main

FROM gcr.io/distroless/base-debian12
COPY --from=builder /app/main /main
CMD ["/main"]

Tarayıcılar sadece en az paketler içeren son görüntüyü inceleyecek ve böylece daha az bulguları içerecektir.

Önceki Açıklamalar Exploitability

Tüm kırılganlıklar eşit derecede tehlikeli değildir. Hedefli paketin aslında çalıştır zamanında kullanılması, bilinen bir sömürü olup olmadığını ve görüntünün kök olarak işlediğini belirleyebilmek. Birçok tarayıcılar şimdi destek erişilebilirlik analizi olarak çalışır - savunmasız fonksiyon ithal edilir veya başvuru kodunda çağrılabilir.

Güvenli Konteyner Uygulamalarına Educate Geliştiriciler

Otomasyon güçlü, ancak bilgi değiştirilemez. konteyner taramalarının neden uygulanması, tarama sonuçları nasıl yorumlanır ve ortak sorunları nasıl düzeltilir.Encourage geliştiricileri, iş yapmadan önce yerel olarak araçları kullanmak için araçları kullanmayı sağlar.

Meydanlar ve düşünceler

Konteyner taramanın faydaları açık olsa da, uygulama engeller olmadan değildir. Ortak zorlukların farkında olmak daha dayanıklı bir tarama stratejisi tasarlamanıza yardımcı olur.

Yanlış Olumlular ve Gürültü

Tarayıcılar, yalnızca test sırasında kullanılan bir kütüphanenin kırılgan bir versiyonunu içerebilir ve tarama sonuçlarını görmezden gelmeye başlayabilir. Örneğin, tarayıcıyı eklenmemiş açıkları (bir yamasız sürüm olmadan) tespit etmek için yapılandırın.

Build Times

Full taramalar bir dakika veya daha fazla CI boru hattına ekleyebilir, özellikle birçok katmanla büyük görüntüler için. Etkisi azaltmak için, artan tarama kullanın - önceki tarama sonuçları kullanın ve sadece tabakaları analiz edin. Ayrıca sadece geliştirme sırasında kritik bir tarama yapmayı düşünün.

Sırları ve Hassas Data

Konteyner tabakalarında sonlanan sırları genellikle tarama araçları algılayan bir güvenlik riski oluşturur. Ancak, bir sır bir görüntüde gömülüyse, görüntüyü yeniden inşa etmek ve tüm önbellek tabakaları geçersiz kılmak için görüntülerin içine girmesini gerektirir.Gizli tepeler (Docker BuildKit) veya HashiCorp Vault gibi dış gizli mağazalardan.

Birden Çok Düzenleme Standartları ile Uyum

PCI DSS, HIPAA veya FedRAMP'ye konu olan kuruluşlar, konteyner görüntülerini belirli sertleştirme gereklilikleriyle karşıladıklarını kanıtlamaktadır. Bu genellikle kullanıcı izni için kontroller, dosya sistemleri etiketleri ve ağ yapılandırmaları için kontroller içerir.Reklim kontrolü gibi özel uyumluluk kurallarını da değerlendirebilecek bir politika motoru kullanın.

Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç

Geliştirme iş akışınızın standart bir parçası olarak konteyner görüntü taramasını uygulamak, bir zaman projesi değildir, ancak yazılım tedarik zinciri ile gelişen bir uygulamadır.Sağ tarama aracınızı seçerek, CI/CD boru hattınızda taramaları otomatikleştirmek, açık politika kapıları oluşturmak ve güvenlik farkındalığı kültürünü teşvik etmek, hassas konteynerler dağıtma riskini önemli ölçüde azaltabilirsiniz.

En az entegrasyonla başlayın - inşa boru hatlarınızın birine bir Trivy adımını ekleyin, bugün bu yolculuğa ekleyebileceğiniz en etkili kilometrekarelerden biri olun. buradan itibaren, temel görüntü tarama, kayıt izleme ve runtime politikaları içerecek şekilde genişletin. Güvenlik bir yolculuktur ve konteyner resmi taraması bugün bu yolculuğa ekleyebilirsiniz.


Daha fazla okuma için dış kaynaklar:

  • [FONT=0)Docker İz Dokümantasyon[Dönem: 1)
  • [FONT=0)Trivy Open-Kaynak Vulnerability Scanner[Dönetici:0)[FONTT:0).
  • [FONT=0)OWASP Docker Güvenlik Hile Belgesi).