I'm always excited to take on new projects and collaborate with innovative minds.

Phone

+1 234 567 890

Email

contact@botble.com

Website

https://botble.com

Address

123 Main Street, New York, NY 10001

Social

Bilgi Bankası

Konteyner Güvenliğini Artırmak: İmzalı ve Şifrelenmiş İmajlar

Konteyner imajları – çalıştırılacak konteynerler için önceden yapılandırılmış şablonlar – geliştirme sürecinin verimliliğini artırmıştır. Bu sayede geliştiriciler imajları baştan inşa etme gibi zahmetli bir işi atlayabilirler. Bunun yerine, imajları kolayca public registry’lerden çekebilir, ihtiyaç duydukları şekilde yapılandırabilir ve hızla çalıştırabilirler.

Konteyner Güvenliğini Artırmak: İmzalı ve Şifrelenmiş İmajlar

Konteyner Güvenliğini Artırmak: İmzalı ve Şifrelenmiş İmajlar

Konteyner imajları – çalıştırılacak konteynerler için önceden yapılandırılmış şablonlar – geliştirme sürecinin verimliliğini artırmıştır. Bu sayede geliştiriciler imajları baştan inşa etme gibi zahmetli bir işi atlayabilirler. Bunun yerine, imajları kolayca public registry’lerden çekebilir, ihtiyaç duydukları şekilde yapılandırabilir ve hızla çalıştırabilirler.

Ancak, konteynerler, ana imajlarının kopyaları olduğundan, bu imajlardaki tüm zafiyetler veya yanlış yapılandırmalar de konteynerlere aktarılır. Bu nedenle konteyner güvenliği, yazılım tedarik zincirinin kritik bir parçasıdır. Bu makalede, konteynerleri man-in-the-middle saldırıları ve tahrifattan korumada dijital imaj imzalamanın rolünü inceleyeceğiz.


İmaj İmzalamanın Önemi

Ana konuya geçmeden önce, konteyner imajının ne olduğunu kısaca hatırlayalım.

Bir imaj, bir konteynerin çalışması için gerekli her şeyi içeren bir pakettir: kod, binary’ler ve kütüphaneler. İmaj değiştirilemez (immutable) özelliktedir; yani üzerinde değişiklik yapmak için yeni bir imaj oluşturulması gerekir.

İmajlar katmanlar (layers) halinde inşa edilir; her katman, dosya sistemi değişikliklerini (ekleme, silme, değiştirme) temsil eder. Bu katmanlar birleştirilerek konteynerin tam dosya sistemi oluşur. Konteynere özel yapılandırmalar ek katmanlar olarak uygulanabilir.

Önceden oluşturulmuş imajlar genellikle kullanıcıların erişebilmesi için public registry’lere yüklenir. Ancak imzasız imajlar adeta bir “kara kutu” gibidir – içeriğinin doğruluğunu teyit etmek zordur.

Bir kriptografik imza – şifrelenmiş veri özeti (hash) – imajın gerçekten iddia ettiği gibi olduğunu garanti eder. Bu imza ek bir güvenlik katmanı sağlar ve şunları garanti eder:

  • Otantiklik (Authenticity): İmajların güvenilir bir kaynaktan geldiğini ve değiştirilmediğini doğrulama.

  • Bütünlük (Integrity): İmajların transfer veya depolama sırasında değiştirilmediğini garanti ederek sistemleri “image poisoning” gibi tehditlerden koruma.

  • Güncellik (Freshness): İmajların en son güvenlik yamaları ile güncel olduğunu doğrulama, böylece saldırganların eski veya güvensiz sürümleri kullanmasını önleme.

İmajlar, geliştiriciler, organizasyonlar veya CI/CD pipeline gibi otomatik sistemler tarafından imzalanabilir.


İmajın Meşruiyetini Nasıl Doğrularız?

Bir imajın meşruiyetini sağlamak için hem bütünlüğünü hem de güvenilir kaynaklardan geldiğini doğrulamak gerekir. Bunun için hashing (digest) kullanılır.

Digest

Digest, imajın kriptografik parmak izidir ve manifest dosyasında kaydedilir. Konteyner motoru, imajdaki tüm katmanların hash’lerini içeren manifest’i hash’leyerek final digest’i hesaplar. SHA256 algoritması ile her imaj için benzersiz 32 baytlık bir imza üretilir. İmaj veya katmanlarında herhangi bir değişiklik yapılırsa farklı bir digest oluşur, bu da orijinal ile uyuşmadığını gösterir.

Dijital İmza

İmaj imzalama, imajın kaynağını ve yaratıcısını doğrular. İmajlar, offline anahtarlar kullanılarak veya keyless bir yöntemle imzalanabilir.

Offline anahtarlarla imzalama:

Kriptografik imzalar asimetrik şifreleme kullanır; bu yöntem iki anahtar gerektirir:

  • Private key (özel anahtar): gizli tutulur

  • Public key (açık anahtar): başkalarıyla paylaşılır

Dijital imza oluşturmak için, imzalayan kişi önce imajı hash algoritması ile özetler ve ardından oluşan hash’i özel anahtarı ile imzalar. İmzalı hash, orijinal imaj ve dijital sertifika ile birlikte paketlenir ve bir registry’ye yüklenir. Bu sayede kullanıcılar istedikleri zaman imzayı alıp yayıncının kimliğini doğrulayabilirler.

Müşteri tarafında ise, kullanıcı aynı algoritmayı kullanarak orijinal imajı hash’ler ve karşılaştırma için hash oluşturur. Ardından, dijital sertifikadan alınan açık anahtar ile imzalı hash’i deşifre eder ve orijinal imajın hash’ini elde eder. Eğer iki hash değeri eşleşirse, imaj doğrulanmış olur; herhangi bir fark, imajın değiştirilmiş olduğunu gösterir.

Şekil 1, imaj imzalamanın nasıl çalıştığını basitleştirilmiş bir şekilde göstermektedir:

Keys-scheme1.png

Özel anahtarınızı güvenli tutmak en öncelikli konu olmalıdır, çünkü sistem üzerinde kontrolü korumak için hayati öneme sahiptir. Eğer özel anahtar ele geçirilirse, kötü niyetli kişiler sizin adınıza imzalar oluşturabilir ve değiştirilmiş imajları imzalamak için kullanabilir.

En iyi uygulamalar şunları içerir:

  • On-premises ortamlar için: Hardware Security Module (HSM) veya Trusted Platform Module (TPM) kullanmak

  • Bulut ortamları için: Key Management Service (KMS) kullanmak

Bu teknolojiler, potansiyel ihlallere karşı güçlü bir koruma sağlayan güvenli “kasalar” görevi görür.


Keyless İmzalama

Bu yöntemde, geçici anahtarlar ve kısa süreli sertifikalar kullanılır; sertifikalar yalnızca imzalama sırasında geçerlidir. Anahtarlar imzalama işlemi tamamlanana kadar tutulur, ardından atılır. Her imza için Sertifika Yetkilisinden (Certificate Authority, CA) yeni bir sertifika gerekir, çünkü sertifikalar tek kullanımlıktır. İmzayla ilgili tüm bilgiler, yalnızca ekleme yapılabilen ve tahrifata karşı korumalı bir veri deposu olan transparency log (şeffaflık günlüğü)’nde kaydedilir.

Veri günlüğe eklendiğinde, günlük operatörü imzalı bir makbuz sağlar; bu makbuz, verinin kaydedildiğinin kanıtı olarak kullanılır. Günlük olağandışı etkinlikler açısından izlenebilir. Şeffaflık günlüğü makbuzu, imza ile birlikte sunularak geçerliliğinin ek kanıtı olarak kullanılabilir.


İmzacı Kimliğinin Doğrulanması

İmaja güvenebilmek için doğrulayıcı, hem imzayı hem de anahtar çiftinin sahibinin kimliğini kontrol etmelidir. Bu kimlik doğrulaması, belirli bir öznenin imza ile ilişkilendirilmesini sağlayan bir sertifikasyon ile gerçekleştirilir. Sertifika, imzacının kimliğini doğrulayan bir Sertifika Yetkilisi (CA) tarafından verilir. CA, doğrulamayı genellikle Google, GitHub veya Microsoft gibi OpenID Connect (OIDC) sağlayıcılarından alınan bilgilerle yapar.

Dikkate alınması gereken önemli bir faktör, sertifikaların sona erme süresidir. Sertifikalar genellikle süresi dolduktan sonra güvenilir sayılmaz, bu da imaj imzalarının yalnızca sertifikanın geçerlilik süresi boyunca geçerli olduğu anlamına gelir. Oysa imajların genellikle sertifikadan daha uzun süre kullanılmaları gerekir; bu nedenle kısa süreli imzalar ideal değildir.

Bu sorun, Timestamp Authority (TSA) kullanılarak çözülebilir. TSA, veriyi alır, geçerli zaman damgasıyla birleştirir ve paketi imzalayarak geri gönderir. TSA kullanıldığında, yetkililiğe güvenen herkes verinin belirtilen zamanda mevcut olduğunu doğrulayabilir.

Şekil 2, imzacının kimliğinin doğrulanma sürecinin ana adımlarını göstermektedir:

keys-scheme2.png

Şekil 2. İmzacı kimliğini doğrulama için güven politikası, OIDC sağlayıcısından, Sertifika Yetkilisinden (CA) ve Timestamp Authority (TSA)’den alınan bilgilere dayanmaktadır.


İmaj İmzalama Teknolojileri

The Update Framework (TUF)

Notary ve Cosign gibi popüler imaj imzalama araçları, The Update Framework (TUF)’u bir güven kökü (root of trust) olarak kullanır. TUF, imzalama materyalinin geçerliliğini doğrulamak için temel bir güvenlik bileşenidir.

TUF, yazılım güncelleme sistemlerini tekrar oynatma (replay) saldırıları, hedefli saldırılar ve man-in-the-middle saldırıları gibi çeşitli tehditlerden korumak için tasarlanmış bir güvenlik çerçevesidir. TUF, bir dizi protokol işletir ve güncelleme dosyasının otantikliğini doğrular. İmaj imzalama bağlamında, TUF aşağıdaki ek güvenlik katmanlarını sağlar:

  • Anahtar koruması (Key protection): Tek bir kök anahtara güvenmek yerine, TUF farklı sistemler arasında dağıtılmış bir kök anahtar seti oluşturmayı önerir. Bu anahtarların bir kısmı, günlük kullanılan operasyonel anahtarları imzalamak için kullanılır ve imzalama anahtarları düzenli olarak döndürülür.

  • Rol devri (Role delegation): TUF, farklı rollere güven devretmeye izin verir; bu roller konteyner imajlarını imzalayabilir ve doğrulayabilir.

  • Sürüm kontrolü ve sona erme (Versioning and Expiration): TUF, sıkı sürüm kontrolü ve imaj ile metadata üzerinde sona erme tarihleri belirleyerek eski veya tehlikeli imajların kullanımını önler.


Docker Content Trust (DCT)

Docker Content Trust (DCT), Docker’a özgü bir imaj imzalama çerçevesidir. Notary Projesi üzerine inşa edilmiş olup, TUF spesifikasyonundaki ana ilkeleri uygular ve imajların bütünlüğünü ve imzalayanlarının kimliğini doğrular. DCT’de, offline kök anahtar kullanılarak imaj etiketlerini imzalamak için depo anahtarları oluşturulur. Ayrıca, imzalı imajlara sunucu tarafından yönetilen bir zaman damgası anahtarı uygulanır, böylece depodaki imajların güncelliği ve güvenliği sağlanır.


Cosign

Cosign, Sigstore tarafından geliştirilen açık kaynak bir projedir; OCI depolarında artefaktları imzalamak, doğrulamak ve saklamak için kullanılır. Hem uzun ömürlü anahtarlar hem de geçici (ephemeral) anahtarlar kullanılarak imzalamayı destekler.

Keyless imzalamada, Cosign geçici anahtarlar ve sertifikalar üretir; bunlar otomatik olarak Fulcio kök sertifika yetkilisi tarafından imzalanır. Fulcio, imzacının kimliğini OIDC token’ı ile doğrular. İmzalar daha sonra Rekor şeffaflık günlüğü’nde saklanır ve oluşturulma anında bir tasdik sağlar.


Öne Çıkan Noktalar

Konteynerleştirilmiş uygulamaların dağıtımında imajların önemi, imaj imzalamanın tedarik zinciri güvenliği açısından kritik olduğunu gösterir. Temel olarak konteyner imajı imzalama şunları içerir:

  • İmaj üzerine uygulanmış yaratıcıya ait kriptografik imza.

  • Her imaj için benzersiz olan ve imajın otantikliğini ve bütünlüğünü doğrulayan kriptografik hash.

  • Genellikle güvenilir bir sertifika yetkilisi (CA) tarafından verilen ve imzalama sürecini onaylayan imza sertifikası; içerisinde açık anahtar bulunur.

  • İmaj yaratıcısı tarafından güvenli bir şekilde saklanan özel anahtar, imajı imzalamak ve gizliliğini sağlamak için kullanılır.

Kaynaklar

Container Images: Architecture and Best Practices

Konteyner imajlarının yapısı, konteyner ve imaj arasındaki farklar, ebeveyn ve temel imajlar ile Docker manifest dosyasının rolü hakkında kapsamlı bir rehber.

What Is Container Image Signing?

Konteyner imajı imzalamanın güvenlikteki önemini ve doğrulama süreçlerini açıklayan bir makale.

Signing Docker Official Images Using OpenPubkey

Docker'ın resmi imajlarını OpenPubkey kullanarak nasıl imzaladığını ve bu sürecin güvenlik avantajlarını anlatan bir yazı.

Container Image Signing: A Practical Guide

Konteyner imajlarını dijital imzalama sürecini ve bu imzaların doğrulama yöntemlerini detaylandıran bir rehber.

What Are Docker Image Layers and How Do They Work?

Docker imajlarının katman yapısını, her katmanın ne işe yaradığını ve nasıl çalıştığını açıklayan resmi bir dokümantasyon.

An Introduction to Cosign

Cosign aracının ne olduğunu, nasıl çalıştığını ve konteyner imajlarını imzalamadaki rolünü tanıtan bir makale.

Signing container images: Comparing Sigstore, Notary, and Docker Content Trust

Sigstore, Notary ve Docker Content Trust gibi imzalama araçlarını karşılaştırarak hangisinin hangi senaryolarda daha uygun olduğunu tartışan bir yazı.

The Update Framework and You

The Update Framework (TUF) güvenlik çerçevesinin ne olduğunu, konteyner imajı imzalamadaki rolünü ve avantajlarını açıklayan bir kaynak.

10 min read
Aug 23, 2025
By Furk4n .ai
Share

Leave a comment

Your email address will not be published. Required fields are marked *

Related posts

Aug 23, 2025 • 3 min read
Kubernetes CLI Araçları

Kubernetes’in benimsenmesi arttıkça, her gün K8s kümeleriyle etkileşim...

Aug 23, 2025 • 9 min read
Grafana’nın Prometheus ve Alertmanager ile Entegrasyonu

Grafana, Prometheus ve Alertmanager ile birlikte, Kubernetes kümelerin...

Aug 23, 2025 • 2 min read
Crunchy PostgreSQL ile Kurumsal Veritabanı Yönetimi ve Kubernetes HA Cluster Kurulumu

Crunchy PostgreSQL ile kurumsal düzeyde güvenli ve yüksek erişilebilir...