Kubernetes Güvenliği İçin Bilmeniz Gereken En İyi Uygulamalar

Kubernetes ortamlarının dinamik yapısı, özel savunma stratejileri ve araçları gerektiren benzersiz güvenlik risklerini de beraberinde getirir. Bu yüzden daha fazla işletme görev açısından kritik dağıtımlar için Kubernetes’i benimsedikçe, içinde çalışan altyapıyı ve iş yüklerini uygun şekilde korumak da çok önemli hale gelmektedir.

Kubernetes güvenliği tam olarak nedir?

Kubernetes Güvenliği Nedir?

Kubernetes güvenliği, altyapıyı güvence altına almaktan konteynerlerde çalışan uygulamalara kadar bir K8s ortamını korumak için alınan uygulamaları ve önlemleri ifade eder.

Dinamik ve karmaşık yapısı nedeni ile Kubernetes’in güvenliğini sağlamak oldukça zor olsa da, Kubernetes BT altyapısı için ana akım bir seçenek haline geldikçe, bilgisayar korsanları için de cazip bir hedef haline gelmektedir.

Bu noktada Kubernetes güvenlik önlemlerini doğru bir şekilde uygulayarak hassas verileri koruyabilir, sistem kararlılığını sürdürebilir ve yetkisiz erişimi önleyebilirsiniz.

Kubernetes’in benimsenmesi ve güvenliği üzerine 500 DevOps profesyoneli ile yapılan bir Red Hat anketine göre:

  • DevOps profesyonellerinin %55’i güvenlik sorunları nedeniyle bir uygulama sürümünü erteledi.
  • %94’ü geçtiğimiz yıl en az bir Kubernetes güvenlik olayı yaşadı.
  • %59’u Kubernetes ve konteynerleri kullanmaya devam etme konusundaki en büyük endişelerinin güvenlik olduğunu söyledi.

Kubernetes Güvenliği İçin Bilmeniz Gereken En İyi Uygulamalar

Aşağıda, Kubernetes kümelerinizin güvenliğini sağlamak için uygulamanız gereken kritik en iyi uygulamalar, geliştirme yaşam döngüsünün üç ana aşamasına ayrılmıştır: derleme, dağıtma ve çalışma zamanı.

1. Derleme Zamanı Güvenliği

Yazılım geliştirme yaşam döngünüzün (SDLC) derleme aşamasında konteynerlerin güvenliğini sağlamasına yardımcı olacak temel en iyi uygulamaları aşağıda bulabilirsiniz.

Görüntü Tarama

Bir görüntüden oluşturulan her kapsayıcı, onun güvenlik açıklarını devralacağından, kapsayıcı görüntülerinin güvenlik açıklarından arınmış olduğundan emin olmanız çok önemlidir. Bu genellikle temel imajın ve tüm paketlerin güvenlik açığı olan bir veri tabanına karşı taranmasıyla yapılır.

Görüntü tarama araçları aşağıdakileri doğrular:

  • Konteyner görüntülerinde yer alan uygulamalar veya kitaplıklar, Common Vulnerabilities and Exposures (CVE’ler) ile genel kaynaklar tarafından paylaşılan diğer güvenlik açıklarından muaftır.
  • Kapsayıcı görüntüsünün oluşturulduğu temel görüntü, işletim sistemini (varsa) veya diğer kitaplıkları etkileyebilecek güvenlik açıklarından arındırılmıştır.

Görüntüler CI/CD hattının tüm aşamalarında taranmalı ve kurcalamayı önlemek için görüntü kayıtlarına erişim kontrol edilmelidir.

Ana Bilgisayar İşletim Sistemi Güçlendirme

Konteynerlerin ana bilgisayarda yalnızca gerekli minimum ayrıcalıklara sahip olduğundan emin olun. Sistem çağrılarını ve dosya sistemi erişimini kısıtlamak için yeterli kontrollere sahip güçlendirilmiş bir ana bilgisayar işletim sistemi kullanın ve işlemler arasında güçlü bir izolasyon sağlayın. Bu, güvenliği ihlal edilmiş bir konteynerin ana bilgisayar işletim sistemine veya sistemde çalışan diğer konteynerlere erişim kazandığı ayrıcalık yükseltme saldırılarının önlenmesine yardımcı olabilir.

Saldırı Yüzeyinin Minimize Edilmesi: Temel Konteyner Görüntüleri

Konteynerleriniz için temel bir imaj seçerken, konteynerinizin çalışması için kesinlikle gerekli olan minimum yazılım paketlerine sahip bir görüntü kullanın. Bu noktada tam bir temel imaj olmadan bir konteyner oluşturmak daha da iyidir.

Minimal bir görüntü oluşturmak ve ona eklemek istediğiniz paketleri açıkça seçmek için Docker FROM Scratch yönergesini kullanın.

Küçültülmüş bir Linux dağıtım imajından (“distroless” imaj) veya bir Alpine minimal imajından başlayın.

2. Dağıtım Zamanı Güvenliği

Konteynerlerinizi üretime dağıtma zamanı geldiğinde, aşağıdaki önlemleri kullanarak onları güvence altına alabilirsiniz:

Kubernetes Kümelerinizi Sağlamlaştırın

Kubernetes küme yapılandırması varsayılan olarak güvenli değildir. Kümelerinizin güvenli olduğundan emin olmak için aşağıdaki adımları izleyin:

  • Mevcut Kubernetes küme yapılandırmasını gözden geçirin ve en iyi güvenlik uygulamalarıyla ilgili boşlukları belirleyin. Kümelerinizi Kubernetes için CIS Benchmark gibi ölçütlerle uyumluluk açısından taramak için kube-bench gibi otomatik araçları kullanabilirsiniz.
  • Olası tehditleri belirleyerek ve kümenin her bir tehdide nasıl yanıt vereceğini ve bu tehditleri nasıl azaltacağını belirleyerek kümenizin her bir bileşeni için bir güven modeli oluşturun.
  • Güven modelinizi uygulamak için etiket taksonomilerini ve etiket yönetişimini kullanın.
  • Kümeye erişimi tanımlamak için Rol Tabanlı Erişim Kontrolü (RBAC) kurun, bunu tehdit modeliniz ve etiket yapınızla uyumlu hale getirin.
  • etcd, Kubernetes veri deposu ve Kubernetes API sunucusunu çok faktörlü güvenlik ve aktarımdaki veriler için Aktarım Katmanı Güvenliği (TLS) ile güvence altına alın ve genel ağlara erişimi sınırlayın.

Güvenlik Araçlarını Kubernetes Kümeleri ile Entegre Etme

Genellikle, web erişim kontrol ağ geçitleri ve Next Generation Firewalls (NGFW) gibi mevcut güvenlik araçları Kubernetes kaynaklarının farkında değildir. Kubernetes kümelerinizi mevcut güvenlik araç setiyle entegre ederek bunun üstesinden gelebilirsiniz. Bu, çevre güvenlik sistemlerinin kümelerinizin içinde konuşlandırılan güvenlik önlemleriyle birlikte çalışmasına olanak tanır.

Bunu yapmanın etkili bir yolu, iş yükleriniz tarafından kullanılan IP adreslerini ve TCP/UDP bağlantı noktalarını sürekli olarak çevre güvenlik araçlarına beslemek ve onların Kubernetes varlıklarını tanımlamasına ve güvenliğini sağlamasına olanak sağlamaktır.

Diğer bir yaklaşım ise Kubernetes düğümlerine giden ve Kubernetes düğümlerinden gelen ağ bağlantısını sınırlamak için bulut sağlayıcı güvenlik gruplarını kullanmaktır. Güvenlik grupları, geleneksel güvenlik araçlarına kıyasla Kubernetes mimarisiyle daha uyumludur.

3. Çalışma Zamanı Güvenliği

Çalışma zamanı sırasında Kubernetes küme altyapısını ve iş yüklerini güvence altına almanıza yardımcı olabilecek en iyi uygulamaları aşağıdaki listede bulabilirsiniz:

Ağ Güvenliği Kontrolleri

Kubernetes ortamlarındaki kritik bir endişe, kurumsal ağlardaki güvenlik kontrollerinin yanı sıra bulut sağlayıcıları tarafından yönetilen güvenlik gruplarının da düğüm düzeyine odaklanmış olmasıdır. Bir düğüme giden ve düğümden çıkan trafiği kontrol edebilirsiniz ,ancak mevcut kontroller, bir düğümde hangi bölmenin veya hizmetin çalıştığını bilmez. Bu da güvenlik kontrollerini çalışma zamanında büyük ölçüde etkisiz hale getirir, çünkü aynı düğümde farklı zamanlarda farklı hizmetler çalışıyor olabilir ve her birinin kendi güvenlik gereksinimleri vardır.

Kubernetes iş yükleri dinamiktir ve otomatikleştirilmiş CI/CD süreçleri, Kubernetes küme düğümlerinde sürekli olarak farklı hizmetleri veya aynı hizmetlerin yeni sürümlerini dağıtır. İşleri daha da karmaşık hale getirmek için, aynı iş yükleri, her biri kendi ağ güvenlik kontrollerine sahip olan şirket içi ve farklı bulut ortamları arasında geçiş yapabilir.

Kubernetes ortamında ağ güvenliğini sağlamak için bildirime dayalı bir model kullanarak iş yüklerinize ağ güvenliği tanımları oluşturmanız gerekir. Güvenlik tanımları Kubernetes iş yüklerinin ayrılmaz bir parçası olmalı ve Kubernetes dağıtımları ile veri merkezleri arasında taşınabilir olmalıdır. İş yükü nerede çalışırsa çalışsın güvenlik tanımlarını her zaman yanında taşımalıdır. Bu iki şekilde başarılabilir:

  • Kubernetes’te yerel bir ağ politikası çözümü kullanma – Calico, Weavenet, Kube-router ve Antrea buna birkaç örnektir. Bu araçlar, ağ katmanları 3 ve 4’te (TCP/IP) bir ağ politikası uygular.
  • Kubernetes’te yerel bir proxy kullanma – Yaygın olarak kullanılan bir proxy, Envoy’dur. Bu, mikro hizmetler arasındaki iletişimi güvenli hale getirmek için ağ katmanı 7’de (HTTP/HTTPS) uygulama katmanı ilkesinin tanımlanmasına yardımcı olabilir. Güvenlik ilkelerini proxy düzeyinde tanımlamak, örneğin belirli bir mikro hizmetin yalnızca HTTP GET isteklerini kabul etmesi ve HTTP POST isteklerini reddetmesi gerektiğini tanımlamanıza yardımcı olabilir.

Kurumsal Güvenlik Kontrolleri

Ağ güvenlik kontrollerine ek olarak, Kubernetes ortamınıza aşağıdaki kurumsal güvenlik kontrollerini uygulayın:

  • Aktarımdaki verileri şifreleyin – Bunu iş yükleri için TLS şifrelemeyi etkinleştirerek, karşılıklı TLS’yi etkinleştirmek için bir hizmet ağından yararlanarak veya açık kaynaklı WireGuard gibi araçlarla bir VPN yaklaşımı kullanarak gerçekleştirebilirsiniz.
  • Uyumluluk raporlarını otomatikleştirin – PCI, HIPAA, GDPR ve SOC2 gibi ilgili uyumluluk standartları için otomatik raporları mümkün kılacak şekilde veri topladığınızdan emin olun.
  • Sürekli uyumluluğu hedefleyin – Uyumluluk sorunlarını kontrol etmek ve düzeltmek için Kubernetes’e özgü otomasyonu kullanın. Örneğin, bir pod uyumluluk kontrolünde başarısız olursa, küme kapsayıcı görüntüsünü otomatik olarak güncelleyebilir veya sorun giderilene kadar pod’u kapatabilir.

Tehdit Savunması

Kubernetes kümesindeki kötü niyetli faaliyetler, bilgisayar korsanlarının konteynerlerde çalışan bileşenlerdeki güvenlik açıklarından yararlanmasını, güvensiz yapılandırmalardan faydalanmasını veya düğümlere, podlara veya Kubernetes kontrol düzlemine kötü niyetli trafik yönlendirmesini içerebilir.

Bir Kubernetes kümesini tehditlere karşı savunmak için iki temel yeteneğe ihtiyacınız vardır:

  • İzinsiz giriş tespiti – Verileri analiz etme, anormallikleri belirleme ve güvenlik olaylarını önceliklendirme becerisi.
  • İzinsiz giriş önleme – Kötü niyetli etkinlikleri engelleme ve siber saldırılara yanıt verme becerisi.

İzinsiz girişleri tespit etmeye çalışırken karşılaşılan önemli bir zorluk, Kubernetes kümesinin çok büyük miktarlarda günlük verisi oluşturmasıdır. Verileri daha yönetilebilir hale getirmek ve güvenlik içgörüleri elde etmek için aşağıdaki yönergeleri kullanmanız gerekir:

  • Pod’lara göre toplama – Geleneksel 5’li tekniği (Kaynak IP, Kaynak Port, Hedef IP, Hedef Port, Protokol) kullanmak yerine, belirli bir port üzerinden iletişim kuran “benzer” pod’ları bir araya getirin.
  • Makine öğreniminden yararlanın – Anormallikleri tespit etmek için pod trafiği metriklerini otomatik olarak analiz edebilen araçlar kullanın.
  • Tehdit istihbaratını kullanın – Kümenizdeki kötü amaçlı trafiği tanımlamak için bilinen kötü amaçlı IP’lerin ve alan adlarının veri tabanlarından yararlanın.

Kubernetes Güvenlik Çözümleri

Geleneksel güvenlik araçları, Kubernetes gibi sürekli olarak yeni konteynerler dağıtan ve eskilerini kullanımdan kaldıran son derece dinamik bir ortamla, özellikle de büyük ölçekte başa çıkamaz. Örneğin, tüm uygulama için tek bir çevresel güvenlik duvarı kullanmak sizi daha büyük risklere maruz bırakabilir, çünkü bilgisayar korsanları güvenlik duvarını aştığında tüm sisteme erişim kazanır.

Konteynerlerin dinamik doğasına ek olarak, güvenlik standartları da sürekli değişime uğramakta ve genellikle geleneksel güvenlik çözümlerinin ayak uydurabileceğinden daha hızlı bir şekilde yükseltilmektedir. Bu sürekli değişen ortamı yönetmenize yardımcı olacak gelişmiş güvenlik araçlarına ihtiyacınız vardır.

Kubernetes varsayılan olarak, IP tabanlı güvenlik sağlamak için kümedeki her pod’a bir IP adresi atar. Bununla birlikte, yalnızca temel güvenlik önlemlerini içerir, bu da yöneticilerin genellikle Kubernetes yığınının güvenliğini sağlamak için tasarlanmış üçüncü taraf araçları kullanarak gelişmiş güvenlik izleme ve uyumluluk uygulamalarını ele almaları gerektiği anlamına gelir.

Gelişmiş Kubernetes güvenlik araçları, güvenlik açıklarını tespit etmek ve her bir konteynerin amaçlandığı gibi çalışmasını sağlamak gibi çeşitli yetenekler sunar. Konteyner güvenlik süreçleri, konteyner ana bilgisayarını, yönetim yığınını ve ağ trafiğini korumak için sürekli olarak çalışmalı ve aynı zamanda yapı hattının bütünlüğünü ve uygulamanın güvenliğini izlemelidir.

Başlıca Kubernetes Güvenlik Sorunları Nelerdir?

Aşağıda Kubernetes üretim dağıtımlarının karşı karşıya olduğu ana risklerden bazılarını bulabilirsiniz:

1. Güvenliği Tehlikede Olan Görüntüler ve Görüntü Kayıtları

Görüntülerin güvenliğini sağlamak için işletmelerin, görüntülerin güvenli bir şekilde oluşturulmasını ve güvenilir kayıtlarda saklanmasını sağlayan güçlü yönetim politikaları uygulaması gerekir. Örneğin işletmeler, konteyner görüntülerinin, sorunlara ve güvenlik açıklarına karşı düzenli olarak taranması gereken, önceden onaylanmış ve güvenli temel görüntüler kullanılarak oluşturulduğundan emin olmalıdır.

İşletmeler, kullanımına izin verilen görüntü kayıtlarının bir listesini oluşturarak kayıtları standartlaştırmalıdır. Kurcalamayı önlemek için, bir Kubernetes kümesinde kapsayıcılar oluşturmak için kullanılmadan önce görüntüler her zaman taranmalıdır.

2. Güvenliği Tehlikeye Giren Konteynerler veya Kötü Amaçlı Trafik

Normal operasyonların bir parçası olarak konteynerlerin ve podların birbirleriyle iletişim kurması gerekir. Ancak bu iletişim bilgisayar korsanları tarafından istismar edilebilir. İhlal edilen bir konteyner diğer konteynerleri ve podları etkileyebilir.

İletişimin güvenli olduğundan emin olmak için işletmeler, iletişimi iş yüklerinin çalışması için gereken minimum düzeyde sınırlayan ağ politikalarını uygulamaya koymalıdır. Buna küme içindeki hem kuzey-güney trafiği (giriş/çıkış trafiği) hem de doğu-batı trafiği dahildir. Verimliliğe zarar vermemelerini sağlamak için ağ politikaları otomatik olarak ayarlanmalıdır.

3. Görünürlük Eksikliği

Güvenliğin sürdürülmesini sağlamak için görünürlük kritik öneme sahiptir. Ancak karmaşık, dağıtılmış, kapsayıcıya alınmış ortamlarda görünürlük elde etmek zor olabilir.

  • Planlanan, dağıtılan ve sonlandırılan çok sayıda konteyner olabilir; bunların hepsinin izlenmesi ve yönetilmesi gerekir.
  • Konteynerli iş yükünün dağıtılmış ve dinamik yapısı, ilgili ölçümlerin toplanmasını, izlenmesini ve anlaşılmasını zorlaştırır.
  • Kubernetes, çoklu bulut veya hibrit bulut ortamlarında devreye alınabilir. Her bulut satıcısı kendi izleme ve görünürlük araçlarını sağlar ve ortamlar arasında tutarlı görünürlüğe izin vermek çok zorlaşır.

Görünürlük olmadan uygulamaların güvenliğini sağlamak zor, hatta imkansız olabilir. Görünürlük olmadan, bilgisayar korsanları bunları kullanmadan önce kritik güvenlik açıklarını tespit etmek veya yanlış yapılandırmaları keşfetmek mümkün değildir. Görünürlük, siber saldırıları tespit etmek amacıyla çalışma zamanında konteynerleri izlemek ve artık kullanılmayan konteynerleri bir sorumluluk haline gelmeden önce uygun şekilde kullanımdan kaldırmak amacıyla takip etmek için de kritik öneme sahiptir.

4. Güvenli Olmayan Varsayılan Yapılandırmalar

Kubernetes, uygulamaların dağıtımını hızlandırmak, operasyonları ve yönetimi basitleştirmek için geliştirilmiştir. Kubernetes, işletmelerin küme ve uygulamaları etkili bir şekilde güvence altına almasına yardımcı olabilecek geniş bir denetim yelpazesi sunsa da, kullanıma hazır güvenli yapılandırmalar sağlamaz.

Örneğin, Kubernetes ağ ilkeleri güvenlik duvarı kurallarına benzer şekilde davranarak podların birbirleriyle ve diğer uç noktalarla nasıl iletişim kurabileceğini kontrol eder. Bir pod’a bir ağ ilkesi atandığında, yalnızca ağ ilkesinde bildirilen varlıklarla iletişim kurmasına izin verilir. Ancak Kubernetes varsayılan olarak podlara ağ ilkeleri uygulamaz. Bu, dağıtıldıktan sonra tüm podların Kubernetes ortamındaki diğer tüm podlarla konuşabileceği anlamına gelir. Bu, tüm küme kaynaklarının uygun güvenlik politikalarına sahip olmasını sağlamayı kritik hale getirir.

Bir başka endişe de gizli yönetimdir. Gizli diziler, anahtarlar ve kimlik bilgileri gibi hassas bilgilere nasıl erişileceğini ve bu bilgilerin nasıl saklanacağını tanımlar. Gizli dizileri yönetirken, bunların ortam değişkenleri olarak kullanılmadığından veya imajlar içinde sabit kodlanmadığından emin olmak çok önemlidir. Bu noktada gizli diziler, sırları yetkisiz taraflardan korumak için dikkatli erişim kontrolü ile konteynerlere harici olarak yönetilmelidir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Önceki Yazı

2024 Bulut Bilişim Pazar Büyüklüğü ve Bulut Bilişim İle İlgili Bilmeniz Gerekenler

Sonraki Yazı

Veri Uyumluluğu Nedir? İşletmeniz İçin Uyumluluğu Nasıl Sağlarsınız?

İlgili Diğer Yazılar
İletişime Geçin
Kişisel Verilerin Koruması ile ilgili aydınlatma metnini okudum, bu kapsamda bilgilerimin işlenmesini ve saklanmasını kabul ediyorum.
İletişime Geçin
Bulut hizmetleri konusunda yardıma mı ihtiyacınız var? 30 günlük demo talebi için ekibimizle iletişime geçebilirsiniz
Kişisel Verilerin Koruması ile ilgili aydınlatma metnini okudum, bu kapsamda bilgilerimin işlenmesini ve saklanmasını kabul ediyorum.