Konteyner Güvenliği Nedir?

Konteyner Güvenliği, altyapı koruması, yazılım tedarik ziniciri, çalışma zamanı ve bunların arasındaki her şey dahil olmak üzere konteyner içindeki her şeyin olması gerektiği gbi çalışmasını sağlamak üzere güvenlik araçları ve politikalar uygulama sürecine verilen addır.

Konteyner güvenliği

Konteynerleri güven altına alma süreci süreklidir. Geliştirme sürecinize entegre edilmeli, manuel temas noktalarının sayısını kaldırmak için otomatikleştirilmeli ve teknik altyapının bakım ve işletimine genişletilmelidir. Bu, üretim hattı konteyner imajları ve çalışma zamanı ana makinelerinin, platformun ve uygulama katmanlarının korunması anlamına gelir. Sürekli dağıtım yapılan yaşam döngüsünün bir parçası olarak güvenliği uygulamak, işletmenizin sürekli artan bir saldırı yüzeyinde riskleri ve güvenlik açıklarını azaltması anlamına gelir.

Konteynerların güvenliğini sağlarken göz önünde tutulması gereken önemli noktalar şunlardır:

  • Konteynerın bulunduğu ana makinenin güvenliği
  • Konteyner ağı trafiği
  • Konteyner içindeki uygulamanızın güvenliği
  • Uygulamanızdaki kötü amaçlı davranışlar
  • Konteyner yönetimi yığınınızı koruma
  • Uygulamanızın temel katmanları
  • Üretim hattının bütünlüğü

Siber güvenliğin amacı oluşturduğunuz her şeyin sürekli olarak sadece amaçlandığı şekilde çalışmasını sağlamaktır.

İlgili markalar

Şirketlerin konteyner ihtiyaçları için kullandıkları bazı tanınmış markalar hakkında bilgi alın: Docker®, Kubernetes®, Amazon Web Services™ (AWS) ve Microsoft®.

Docker Güvenliği

Konteynerlerinizi korumaya başlamadan önce, bu alandaki kilit oyuncuları tanımanız gerekir. Konteynır pazarında lider olan Docker, uygulama oluşturmak, yönetmek ve güvenliğini sağlamak için bir konteyner platformu sağlar. Docker, müşterilerin geleneksel uygulamaları ve en yeni mikro hizmetleri her yerde dağıtmalarını sağlar. Diğer konteyner platformlarında olduğu gibi, uygun korumanız olduğundan emin olmanız gerekir.  Docker konteyner güvenliği hakkında daha fazla bilgi alın.

Kubernetes Güvenliği

Kubernetes, bilmeniz gereken ikinci büyük markadır. Kubernetes, konteyner iş yüklerini ve hizmetlerini işlemek için taşınabilir, genişletilebilir, açık kaynaklı bir platform sağlar. Her ne kadar Kubernetes, güvenlik özellikleri sunuyor olsa da Kubernetes kümelerine yoğun bir saldırı olması nedeniyle özel bir çözüm kullanmanızda büyük bir fayda bulunuyor.  Kubernetes’i güvenli kılma hakkında bilgi alın.

Amazon Web Services (AWS) ve konteyner güvenliği

Sırada Amazon Web Services (AWS) var. AWS, geliştiricilerin uygulamaları daha hızlı ve daha tutarlı bir şekilde sunmalarını sağlamak için konteynerlara duyulan ihtiyacı anlıyor. Bu nedenle Docker konteynerlarını destekleyen ölçeklenebilir, yüksek performanslı bir konteyner düzenleme hizmeti olan Amazon Elastic Container Service (Amazon ECS) sunuyorlar. Kendi sanal makinelerinizi ve konteyner ortamınızı yönetmeye yönelik bağımlılıkları ortadan kaldırır ve AWS konteyner uygulamalarını kolaylıkla çalıştırmanıza ve ölçeklendirmenize olanak tanır. Ancak, yukarıdaki kilit oyuncular da dahil olmak üzere bu hizmetin tüm avantajlarından faydalanılabilmesi için güvenlik büyük önem taşıyor.  AWS konteyner güvenliği hakkında daha fazla bilgi alın.

Microsoft Azure Container Instances güvenliği

Son olarak bilmeniz gereken bir diğer marka Microsoft® Azure™ Container Instances (ACI). Bu çözüm, geliştiricilerin temel bir altyapı bulunndurmaya veya yönetmeye gerek kalmadan Microsoft® Azure™ Public Cloud'da konteynerlar kullanabilmelerini sağlıyor. Microsoft®'un gerekli bilgi işlem kaynaklarını otomatik olarak sağladığı ve ölçeklendirdiği yeni bir konteyneri Microsoft® Azure™ portalını kullanarak kolayca oluşturabilirsiniz. Azure Container Instances, yüksek hız ve çeviklik sağlar, ancak tüm avantajların doğru bir şekilde elde edilebilmesi için güvenli hale getirilmesi gerekir. 

Artık büyük oyuncuların hepsini tanıdığınıza göre bunları ve her bir çözümü ayrı ayrı nasıl güvence altına alabileceğinizi öğrenmek için yukarıdaki bağlantıları kullanabilirsiniz.  Microsoft Azure Container Instances güvenliği hakkında ayrıntılı bilgi alın.

Ana bilgisayar güvenliği

Ana bilgisayarın güvenliğinin sağlanması, çalıştırılacak işletim sistemini seçmeyle başlar. Mümkün olduğunca konteynerları çalıştırmak için optimize edilmiş bir işletim sistemi kullanmanızda büyük fayda vardır. Stok Linux® dağıtımları veya Microsoft® Windows® kullanıyorsanız, gereksiz hizmetleri devre dışı bıraktığınızdan veya kaldırdığınızdan ve genel olarak işletim sistemini daha güvenli bir hale getirdiğinizden emin olmak istersiniz. Ardından, ana bilgisayarınızın beklediğiniz gibi çalıştığından emin olmak için bir güvenlik ve izleme araçları katmanı ekleyin. Uygulama kontrolü veya saldırı önleme sistemi (IPS) gibi araçlar bu durumlar için çok faydalıdır.

Konteynerınız üretim modunda çalışmaya başladığında diğer konteynerlar ve kaynaklarla etkileşim kurması gerekecektir. Bu dahili trafik, konteynerlardan gelen tüm ağ trafiğinin bir IPS'den geçmesini sağlayarak izlenmeli ve güvence altına alınmalıdır. Bu, güvenlik kontrolünü dağıtma şeklinizi değiştirir. Çevreye az sayıda çok büyük geleneksel IPS motoru uygulamak yerine, her ana bilgisayara IPS'yi uygularsınız, bu da performansı önemli ölçüde etkilemeden tüm trafiğin etkili bir şekilde izlenmesini sağlar.

Konteyner içindeki uygulamanın güvenliği

Konteyneriniz üretim modunda çalışmaya başladığında, uygulamanızın verilerini sürekli olarak işler, günlük dosyaları oluşturur, dosyaları önbelleğe alır ve benzeri işlemler gerçekeştirir. Güvenlik denetimleri, bunların olağan etkinlikler olduğundan ve kötü amaçlı olmadıklarından emin olunmasını sağlar. Konteyner içinde bulunan içerikler üzerinde çalışan gerçek zamanlı kötü amaçlı yazılımdan koruma denetimleri başarı için kritik öneme sahiptir.

IPS burada da sanal yama adı verilen bir kullanım modeliyle büyük rol oynar. Uzaktan kullanılabilen bir güvenlik açığı ortaya çıkarsa, IPS motoru uygulamanızı korumak için bu açıktan yararlanma girişimlerini algılayabilir. Bu, konteynerın bir sonraki sürümünde kök nedeni düzeltmek için size zaman tanıyacaktır.

Uygulama izleme

Uygulamanızı bir konteynera aldığınızda, çalışma zamanı uygulama kendini koruma (RASP) güvenlik kontrolü size yardımcı olabilir. Bu güvenlik denetimleri uygulama kodunuzda çalışır ve genellikle kodunuzdaki tuş çağrılarını durdurur veya bağlar. RASP, Structured Query Language (SQL) izleme, bağımlılık denetimi ve iyileştirme, URL doğrulaması ve diğer denetimler gibi güvenlik özelliklerinin yanı sıra güvenlikteki en büyük sorunlardan birini de çözebilir: kök neden tanımlama.

Bu güvenlik denetimleri, uygulama kodu içinde konumlandırılarak, bir güvenlik sorunu ile kodu oluşturan kod satırı arasındaki noktaların bağlanmasına yardımcı olabilir. Bu farkındalık düzeyiyle rekabet etmek zordur ve güvenlik duruşunuzda büyük bir artış sağlar.

Konteyner yönetimi yığınınızı koruma

Güvenlik açısından, konteynerlarınızı koordine etmeye yardımcı olan yönetim yığını genellikle göz ardı edilir. Konteyner dağıtımı konusunda ciddi olan herhangi bir kuruluş, sürecin yönetilmesine yardımcı olmak için kaçınılmaz olarak iki kritik altyapı ile arayışını sonlandıracaktır: Amazon ECS ve Kubernetes gibi bir özel konteyner kayıt defteri (Konteyner dağıtımını düzenlemeye yardımcı olmak için).

Konteyner kayıt defteri ve Kubernetes birleşimi, ortamınıza yeniden dağıtımdan önce ve dağıtım sırasında konteynerlarınız için otomatik olarak bir dizi kalite ve güvenlik standardı uygulamanızı sağlar.

Kayıtlar, konteynerları paylaşmayı basitleştirir ve ekiplerin birbirlerinin çalışmalarına dayalı üretim yapmalarına yardımcı olur. Ancak, tüm konteynerların geliştirme ve güvenlikle ilgili referans değerlerinizi karşıladığından emin olmak için otomatik bir tarayıcıya ihtiyacınız vardır. Tüm konteynerları bilinen güvenlik açıkları, kötü amaçlı yazılımlar ve tüm gizli sırlar için kayıt defterinde kullanıma sunulmadan önce taramak, kullanımdaki sorunların azaltılmasına yardımcı olur.

Ayrıca, kayıt defterinin kendisinin de iyi korunduğundan emin olmanız gerekir. Bunların güvenli hale getirilmiş bir sistem veya tanınmış bir bulut hizmetinde çalıştırılması gerekir. Hizmet senaryosunda bile, paylaşılan sorumluluk modelini anlamanız ve kayıt defterine erişmek için güçlü bir rol tabanlı yaklaşım uygulamanız gerekir.

Düzenleme tarafında, Kubernetes ortamınızda çalıştırılıp dağıtıldığında, ekiplerinizin ortamınızdan en iyi şekilde faydalanmasına yardımcı olan çok sayıda avantaj sunar. Kubernetes ayrıca Pod (küme seviyesi kaynakları) ve ağ güvenliği politikaları gibi bir dizi operasyonel ve güvenlik kontrolünü uygulama olanağı sunarak risk toleransınızı karşılamak üzere çeşitli seçenekler uygulamanıza olanak tanır.

Uygulamanızı güvenli bir temel üzerinde oluşturma: Konteyner tarama

Yapı taşı olarak kullandığınız konteynerların ortak tehditlere karşı güvenilir ve güvenli olduğundan emin olmak için bir konteyner imajı tarama iş akışına ihtiyacınız vardır. Bu araç sınıfı, konteynerin içeriğini tarayarak, uygulamanız için bir yapı taşı olarak kullanılmadan önce sorunları bulur. Ayrıca, bir konteyner üretime dağıtılmadan önce son bir dizi kontrol gerçekleştirir.

Tarama, doğru şekilde uygulandığında, kodlama işleminizin doğal bir parçası haline gelir. Uygulamanızı ve konteynerlarını geliştirirken karşılaştığınız sorunları hızlı ve kolay bir şekilde tanımlayabilen tam otomatik bir süreçtir. 

Üretim hattının bütünlüğünü sağlama

Saldırganlar saldırılarını sürekli entegrasyon/sürekli sunum (CI/CD) hattınızın erken aşamalarına kaydırmaya başladı. Bir saldırgan üretim sunucunuzu, kod havuzunuzu veya geliştirici iş istasyonlarınıza başarıyla sızarsa, ortamınızda önemli ölçüde daha uzun süre kalabilir. Sürekli güncel tutulan güçlü bir güvenlik kontrolü setine ihtiyacınız vardır.

Kod deponuz ve dallanma stratejinizden başlayarak, konteyner havuzuna kadar uzanan, üretim hattı boyunca güçlü bir erişim kontrol stratejisi uygulamak büyük önem taşır. En az ayrıcalık ilkesini uyguladığınızdan (yalnızca gerekli görevleri gerçekleştirmek için gereken kadar erişim sağlayarak) ve bu erişimi düzenli olarak denetlediğinizden emin olmanız gerekir.

Kapsamlı yaklaşım

Konteynerlarınızı güvence altına almak kapsamlı bir güvenlik yaklaşımı gerektirir. Kuruluşunuzdaki tüm ekiplerin ihtiyaçlarını karşıladığınızdan emin olmanız gerekir. Yaklaşımınızın DevOps süreçlerinize uyacak şekilde otomatikleştirilebildiğinden ve her bir grubu korurken son teslim tarihlerini karşılayıp uygulamaları hızla teslim edebileceğinizden emin olun. Güvenlik, son dakikaya bırakılacak ve iş akışlarını değiştirecek bir talep olmamalıdır. En başından itibaren güvenilir güvenlik kontrolleri ve otomatik süreçler oluşturmak endişeleri ortadan kaldırır ve ekipler arasındaki boşluğu kapatmayı kolaylaştırır. 

İlgili Araştırmalar

İlgili Makaleler