Argo CD’de Düzeltilmemiş Güvenlik Açığı Kubernetes Kümelerinin Ele Geçirilmesine Yol Açabilir Windows

Argo CD’de Düzeltilmemiş Güvenlik Açığı Kubernetes Kümelerinin Ele Geçirilmesine Yol Açabilir

Argo CD'nin repo-server bileşenindeki düzeltilmemiş bir güvenlik açığı, kimliği doğrulanmamış saldırganların kod çalıştırmasına ve Kubernetes kümeleri

Kubernetes ortamlarında yazılım dağıtımı için yaygın olarak kullanılan Argo CD, repo-server bileşeninde kritik bir güvenlik açığı barındırıyor. Synacktiv tarafından keşfedilen bu açık, kimliği doğrulanmamış bir saldırganın repo-server'ın iç ağ portuna erişmesi durumunda kod çalıştırmasına olanak tanıyor. Şirket, bu güvenlik açığının tam bir küme ele geçirmeye yol açabileceğini belirtiyor. Ne yazık ki, bu açık için henüz bir yama veya CVE numarası bulunmuyor. Synacktiv, Ocak 2025'te Argo CD bakımcılarına bildirdiği bu hatanın yaklaşık 18 ay sonra hala düzeltilmediğini ve bu nedenle kullanıcıları uyarmak için detayları yayınladığını duyurdu.

Güvenlik açığı, Argo CD'nin Git depolarını okuyarak Kubernetes manifest dosyalarını oluşturan repo-server bileşeninde yer alıyor. Bu bileşenin iç gRPC hizmetinde herhangi bir kimlik doğrulama bulunmuyor; bu porta erişebilen herkes, özel olarak hazırlanmış bir istek göndererek komut çalıştırabiliyor. Synacktiv, saldırıyı Argo CD v2.13.3 üzerinde başarıyla gerçekleştirdi ve düzeltilmiş bir sürüm bulunmadığını bildirdi. Saldırı tekniği, Argo CD'nin repo dosyalarını manifestlere dönüştürmek için kullandığı standart bir araç olan kustomize'ı istismar ediyor. Kustomize, --helm-command seçeneğiyle hangi helm ikili dosyasını çağıracağını belirliyor. Synacktiv, repo-server'ın GenerateManifest hizmetine yapılan kimliği doğrulanmamış bir isteğin bu seçeneği, saldırganın kontrol ettiği bir Git deposundan alınan bir betikle değiştirebileceğini keşfetti. Kustomize çalıştırıldığında, helm yerine bu betiği çalıştırıyor.

Ancak "iç" ağ, varsayılan olarak izole anlamına gelmiyor. Argo CD, repo-server'ı kendi bileşenleri dışındaki her şeyden ayıran Kubernetes ağ politikalarıyla birlikte geliyor. Synacktiv, Argo CD'yi kurmanın yaygın bir yolu olan Helm chart'ının bu politikaları varsayılan olarak devre dışı bıraktığını ve networkPolicy.create değerini false olarak ayarladığını tespit etti. Bu yapılandırmada, kümedeki tek bir pod'u ele geçiren bir saldırgan repo-server'a erişerek güvenlik açığını tetikleyebiliyor. Kod çalıştırmakla da kalmayan Synacktiv, bu erişimi kullanarak Redis şifresini bir ortam değişkeninden okuyup Argo CD'nin Redis önbelleğine bağlandı ve depolanan dağıtım verilerini zehirledi. Bir sonraki otomatik senkronizasyonda Argo CD, saldırgan tarafından sağlanan bir iş yükünü dağıttı. Bu adım, 2024 yılında Cycode tarafından bulunan ve Argo CD'nin Redis'inin şifresiz olması nedeniyle kümedeki herhangi bir pod'un dağıtım önbelleğini zehirlemesine izin veren CVE-2024-31989 açığını yeniden canlandırdı. Argo CD bu açığı bir Redis şifresi ekleyerek düzeltti, ancak önbelleğin kendisi hala imzalı olmadığı için şifrenin yeniden çalınması aynı saldırıyı mümkün kılıyor.

Sistem Güvenliği

Henüz yamalı bir sürüm bulunmadığından, savunma ağ izolasyonuna dayanıyor. Kubernetes ağ politikalarını etkinleştirerek yalnızca Argo CD'nin kendi bileşenlerinin repo-server ve Redis portlarına erişmesine izin verilmeli. Argo CD politika dosyalarını sağlıyor; Helm kullanıcıları, chart bunları varsayılan olarak devre dışı bıraktığı için etkinleştirmek zorunda. Ağ politikalarının durumunu kontrol etmek için `kubectl get networkpolicy -A` komutu kullanılabilir. Sağlıklı bir kurulumda, repo-server ve Redis dahil her bileşen için bir ağ politikası bulunur. Bu politikalar eksikse, repo-server ve Redis portları kümenin geri kalanından erişilebilir durumdadır. Synacktiv, saldırıyı otomatikleştiren argo-cdown adlı bir araç geliştirdi, ancak savunmacılara ağ politikalarını güvence altına almaları için zaman tanımak amacıyla bu aracı şimdilik paylaşmıyor; daha sonra GitHub'da yayınlayarak yöneticilerin kendi dağıtımlarını test etmelerini sağlayacak.

Paylaş: