En Yaygın Kubernetes Güvenlik Sorunları ve Bunları Nasıl Azaltabilirsiniz?

Yayınlanan: 2021-03-30

Kubernet'ler ve kapsayıcılar üç şey vaat ediyor:

  • Daha hızlı uygulama geliştirme ve yayınlama.
  • Daha hızlı hata düzeltmeleri.
  • Artan özellik hızı.

Ancak, genellikle güvenliğin tehlikeye girmesi pahasına gelir ve bu, herhangi bir web geliştirme teknolojisinde kabul edilemez bir şeydir.

Kubernetes güvenliğinin durumunu anlamak için, StackRox tarafından 2020'nin sonunda gerçekleştirilen bir anketten iki faktör:

  • Ankete katılanların %90'ı son 12 ay içinde konteynerler ve Kubernetes ile ilgili bir güvenlik olayıyla karşılaştığını bildirdi.
  • Katılımcıların %44'ü Kubernetes ile ilgili güvenlik endişeleri nedeniyle başvurularının yayınlanmasını ertelemek zorunda kaldı.

Bu güvenlik endişelerinin arkasındaki en yaygın nedenler nelerdir?

Kubernetes ile İlgili En Yaygın Güvenlik Sorunları
1. Yanlış yapılandırmalar

Anketler, yanlış yapılandırmalardan kaynaklanan risklerin kapsayıcı ve Kubernetes ortamlarının güvenliğinde en yaygın risk olduğunu ortaya koydu.

Kapsayıcılı uygulamalar yapmak için Kubernetes kullanırken, güvenlik uygulayıcıları için en büyük risk yapılandırma yönetimidir.

Bunun temel nedeni, pazarın güvenlik açığı tarama araçlarıyla dolu olması, ancak yapılandırma yönetiminin hala büyük ölçüde insan düşüncesine dayanmasıdır.

Güvenlikten ödün verilmediğinden emin olmak için kapsayıcılı bir uygulamanın bazı ortak bileşenlerini yapılandırmaya ilişkin bazı tavsiyeleri burada bulabilirsiniz.

Görüntüler:

Kesinlikle gerekli olmayan herhangi bir yazılımı kullanmaktan kaçının. Buna paket yöneticileri, ağ araçları ve curl veya Unix kabukları gibi istemciler dahildir.

Herhangi bir yazılımın kullanılmasının güvenlik riskini artırdığını unutmayın. Ayrıca, yalnızca güvenilir kaynaklardan gelen görselleri kullanın.

Sırlar:

Görüntülerde sır pişirmekten veya gereksiz yere ifşa etmekten kaçının.

Güvenli bir uygulama olarak, dağıtımların sırları yalnızca ihtiyaç duyulduğunda ve gerektiğinde bağlamasını sağlamak için güvenilir gizli yönetim araçlarını kullanın.

Ad alanları:

Ad alanlarını cömertçe kullanın. Kubernetes ve ağ ilkeleri için bir sınır görevi görürler. Ad alanlarının kullanımı, bir saldırının etkilerini sınırlayabilir ve yayılmamaları ve daha fazla yıkıma neden olmamaları için hatalar ve saldırılar içerebilir.

Çalışma Zamanı Ayrıcalıkları:

Yalnızca bir ayrıcalık kuralı vardır: en az sayıda yazılımın en güvenli hale gelmesine izin verin.

Ağ Politikaları

Varsayılan ayarlara göre, pod'lar Kubernetes'te birbirleriyle bağımsız olarak konuşabilir. Ancak, bölmelerin etkileşimini sınırlamak için ağ ilkelerini uygulamak iyi bir uygulamadır. Bu, herhangi bir tehdidin kapsayıcıya ve tüm uygulamaya yayılmasını önleyebilir.

Kalıcı Depolama

Kalıcı depolamanın yapılandırması ve kullanımı konusunda uygun bir görünürlüğe sahip olmanız gerekir. Bunun nedeni, bunun, aksi takdirde geçici bir konteyner kurulumundaki tek kalıcı vektör olmasıdır.

Kontrol Paneli

Kubernetes kümelerini kendiniz yönetiyorsanız, kontrol düzlemini yapılandırmanız çok önemlidir. Bunun nedeni, bazı kümelerin küresel kararlar alabilmesi ve bir kümeye bulaşması durumunda tüm ekosistemi tehlikeye atabilecek olmasıdır.

Bunları ve yapılandırmayla ilgili diğer çeşitli güvenlik sorunlarını azaltmak için en iyi yaklaşım, yapılandırmanın Kubernetes'in ve dolayısıyla parçası oldukları yazılımın güvenliğini sağlayacak şekilde yapıldığından emin olmak için manuel ve otomatik çabaların bir kombinasyonunu kullanmaktır. nın-nin.

2. Güvenlik Açıkları

Son birkaç yılda Kubernetes ve diğer kapsayıcılarda bir dizi farklı güvenlik açığı bulundu ve bunlardan yararlanıldı.

Güvenlik açıklarının en yaygın istismarları şunları içerir:

  • Kripto madenciliği.
  • Kötü amaçlı yazılım yükleme.
  • Ayrıcalık yükseltme.
  • Ana bilgisayar erişimi.

Güvenlik açığını yönetmeye yönelik etkili yaklaşım, konteynerin yaşam döngüsü boyunca devam etmesi gereken bir şeydir ve aşağıdakileri içermelidir:

  • Kurulu işletim sistemindekiler de dahil olmak üzere görüntülerdeki güvenlik açıklarını belirleme ve çözme.
  • Kullanmakta olduğunuz programlama dillerinin çalışma zamanı kitaplıklarındaki tüm güvenlik açıklarını tespit etmek ve azaltmak.
  • Riskli güvenlik açıklarına sahip görüntülerin üretim tarafından erişilebilir kapsayıcı kayıt defterine ulaşmasını önlemek için adımlar atmak.
  • Belirli bir seviyenin üzerinde güvenlik riski taşıyan tehditleri kontrol altına almak için önlemler almak.
  • Güvenlik açığı bulunan kapsayıcı bileşenlerinin planlanmasını önlemek için Kubernetes kümelerinde üçüncü taraf kabul denetleyicilerini kullanma.
3. Çalışma zamanı tehditleri

Kubernetes güvenliğindeki tüm sorunları azalttığınızda, çalışma zamanı aşamasının kendine özgü güvenlik tehditleri vardır.

Güvenliği vurgulamış ve riskleri mümkün olan her şekilde en aza indirmiş olsanız bile, çalışma zamanında düşmanlardan çeşitli tehditler olabilir.

Bu tehditleri azaltmak için yapabileceğiniz bazı şeyler şunlardır:

Çalışma Zamanı Etkinlik İzleme:

Güvenlikle en alakalı kapsayıcı etkinliklerinin çoğuyla izleme sürecini başlatın. Bu, süreç etkinliği, kapsayıcılı hizmetler içinde ve bunlar arasında ağ iletişimleri ve harici sunucular ve istemcilerle iletişim ve iletişim gibi şeyleri içerir.

Bildirim Verilerinden Yararlanın

Herhangi bir şüpheli etkinlik olup olmadığını öğrenmek için gözlemlenen ve beklenen etkinlik arasındaki farkı değerlendirmek için oluşturma ve dağıtma süresi bilgilerini kullanın.

Ağ İletişimini Sınırlı Tutun

Çalışma zamanı, izin verilen ağ trafiği türü ile sistemi çalıştırmak için gerekli olan arasındaki farkı görebileceğiniz zamandır. Bu, Kubernetes güvenliğine tehdit oluşturabilecek her türlü gereksiz iletişimi kaldırmak için kullanılabilecek bir fırsattır.

Süreçleri Yakından Gözlemleyin

Uygulamanın düzgün çalışması için yürütülen tüm süreçleri bilmek için uygulamayı bir süre gözlemleyin. Tüm gerekli işlemlerin bir listesini yapın ve olağan olmayan herhangi bir işlemin yürütülüp yürütülmediğini görmek için uygulamayı rastgele kontrol edin.

4. Başarısız uyumluluk denetimi

Kubernetes ve kapsayıcı güvenliğini sağlayan en önemli şeylerden biri uyumluluktur. Yazılım Geliştirme Yaşam Döngüsü'nde güvenlik gerektiği gibi vurgulanmazsa, uyum denetiminin başarısız olmasına neden olabilir.

Kubernetes ve kapsayıcı güvenliği için kullanılabilecek çok sayıda uyumluluk standardı vardır.

PCI-DSS, HIPAA ve SOC 2 sektöre özel uyumluluk standartlarıdır.

Bu konuda yapılan temel hatalardan biri, uygunluk denetimlerini baştan SDLC'nin bir parçası yapmamak veya sadece çalışma zamanında dikkate almaktır. Yazılımdaki her şeyin uyumlu olduğundan emin olmak için:

  • En başından itibaren uyumluluğu SDLC'nin bir parçası haline getirin.
  • Yazılım bileşenlerini uyumlu hale getirmek için endüstri standartlarını kullanın.