Araştırmacılar, konteyner motoru bileşenlerinde “Sızdıran Gemiler” olarak adlandırdıkları dört güvenlik açığını ortaya çıkardı; bunlardan üçü, saldırganlara konteynerlerden kaçma ve temeldeki ana sistem üzerinde kötü amaçlı eylemler gerçekleştirme yolu sağlıyor.
Olarak tanımlanan güvenlik açıklarından biri CVE-2024-21626, Docker ve diğer konteyner ortamları için hafif konteyner çalışma zamanı olan runC’yi etkiler. Bu, CVSS ölçeğinde olası 10 üzerinden 8,6 ciddiyet puanıyla dört güvenlik açığı arasında en acil olanıdır.
Snyk’teki personel güvenlik araştırmacısı (kusurları keşfeden ve bunları Docker’a bildiren) Rory McNamara, runC güvenlik açığının konteynerin hem derleme hem de çalışma zamanında konteynerden kaçmasına olanak sağladığını söylüyor.
En kötü senaryoda, temeldeki bir ana bilgisayar işletim sistemine yetkisiz erişim sağlayan bir saldırgan, düşmanın daha fazla saldırı başlatmasına olanak tanıyan anahtar kimlik bilgileri dahil ancak bunlarla sınırlı olmamak üzere, aynı ana bilgisayar üzerinde çalışan başka herhangi bir şeye potansiyel olarak erişebilir.
McNamara, “Bu güvenlik açığı, uygulama oluşturmak için konteynerleri kullanan herkesi (esasen dünya çapındaki tüm bulut yerel geliştiricilerini) etkilediğinden, kontrolsüz erişim potansiyel olarak tüm Docker veya Kubernetes ana bilgisayar sistemlerini tehlikeye atabilir” diye uyarıyor.
“Sızdıran Kaplar” Kusurları
Diğer üç güvenlik açığı, Docker için varsayılan konteyner görüntüsü oluşturma araç seti olan BuildKit’i etkiler. Onlardan biri (CVE-2024-23651) çalışma zamanı sırasında önbellek katmanlarının nasıl monte edildiğine ilişkin bir yarış koşulunu içerir. Bir diğer (CVE-2024-23653) BuildKit’in uzaktan prosedür çağrısı protokolündeki bir güvenlik modelini etkiler; üçüncü güvenlik açığı (CVE-2024-23652) BuildKit’te de bir dosya silme hatasıdır.
31 Ocak tarihli bir blog yazısında, güvenlik satıcısının tavsiye ettiği kuruluşlar “Docker, Kubernetes satıcıları, bulut konteyner hizmetleri ve açık kaynak toplulukları dahil olmak üzere konteyner çalışma zamanı ortamlarını sağlayan tüm satıcıların güncellemelerini kontrol etmek.”
Snyk, etkilenen kapsayıcı görüntü bileşenlerinin ve derleme araçlarının yaygın kullanımını, kuruluşların sağlayıcıları bunları kullanılabilir hale getirir getirmez sabit sürümlere yükseltmeleri gerektiğinin bir nedeni olarak gösterdi.
Docker BuildKit güvenlik açıklarından ikisi (CVE-2024-23651 ve CVE-2024-23653) yalnızca derleme zamanındaki kaçışlardır. McNamara, “Son Docker güvenlik açığı (CVE-2024-23652) rastgele bir ana bilgisayar dosyası silme işlemidir, yani klasik bir konteyner kaçışı değildir” diyor.
Büyüyen Bir Sorun
Konteyner güvenlik açıkları kurumsal kuruluşlar için büyüyen bir sorun teşkil ediyor. Sysdig’in geçen yıl yürüttüğü bir çalışma şunu ortaya çıkardı: Konteyner görsellerinin %87’si üretimdeki en az bir yüksek veya kritik önem derecesine sahip güvenlik açığına sahiptir. Şirket, güvenlik açıklarının yüksek yüzdesini, kuruluşların güvenlik sorunlarına yeterince dikkat etmeden bulut uygulamalarını dağıtma telaşına bağladı. Rezilion’un 2023’teki araştırması ortaya çıktı yüzlerce Docker konteyner görüntüsü standart güvenlik açığı tespit ve yazılım kompozisyon analizi araçlarının tespit edemediği güvenlik açıklarını içerir.
Bu eğilim, konteyner güvenliğine ilişkin algıların geçen yıl değişmesine neden oldu. A D-Zone tarafından yapılan anket, örneğin, katılımcıların yalnızca %51’inin konteynerleştirmeyi uygulamalarını daha güvenli hale getirdiğini ifade ettiğini buldu; bu oran 2021’deki %69’du. 2021’deki %7’ye kıyasla, konteynerleştirmenin aslında uygulama ortamlarını daha az güvenli hale getirdiğini söyleyenlerin yaklaşık %44’ü.
Yüksek Erişim Gereksinimleri
McNamara, Snyk’in keşfettiği dört güvenlik açığından yararlanmanın nispeten basit olduğunu ve genellikle 30 satırlık Docker dosyasından daha azını içerdiğini söylüyor. Ancak erişim gereksiniminin yüksek olduğunu söylüyor. Bir saldırganın kusurlardan yararlanabilmesi için aşağıdakileri yapabilmesi gerekir: hedefte isteğe bağlı bir kapsayıcı çalıştırmak; hedef üzerinde rastgele bir konteyner oluşturun; veya yukarı yöndeki bir konteyneri tehlikeye atabilir veya kurban sistemin kontrollü bir yukarı yönde konteyner kullanmasına neden olabilirsiniz.
McNamara, Kubernetes ve benzer şekilde etkilenen ortamların ağ üzerinden erişilebilir olması dışında kusurların aslında uzaktan çalıştırılabilir olmadığını söylüyor. “Fakat gerçek bir ‘uzaktan’ istismar anlamında hayır,” diyor. “İşlevsel olarak yerel olması için ortama yeterli erişime hâlâ ihtiyaç var.”