Giriş
Argo CD, Kubernetes’e yazılım dağıtımında yaygın olarak kullanılan bir araçtır. Ancak, bu aracın repo-server bileşeninde bulunan bir güvenlik açığı, yetkisiz bir saldırganın kötü niyetli kod çalıştırmasına imkan tanımaktadır.
Saldırı Nasıl Çalışıyor?
Sorun, Argo CD’nin GIT depolarını okuyan ve Kubernetes manifestlerini oluşturan repo-server bileşeninde yer almaktadır. Bu bileşenin dahili gRPC hizmeti, kimlik doğrulaması gerektirmemektedir; yani bu hizmete ulaşabilen herkes, özel olarak hazırlanmış bir istek göndererek komut çalıştırma yetkisine sahiptir.
Synacktiv, bu saldırıyı Argo CD v2.13.3 üzerinde demomstre ettiğini ve henüz bir yamanın çıkmadığını bildirdi. Bu açığın kullanılmasının temel tekniği, Argo CD’nin depoları manifestlere dönüştürmek için kullandığı kustomize aracını istismar etmektir.
- Kustomize’ın –helm-command seçeneği, saldırganlar tarafından kontrol edilen bir GIT deposundan alınan bir script’e işaret edebilir.
- Saldırgan, GenerateManifest servisine yetkisiz bir istek gönderdiğinde bu seçeneği değiştirebilir.
Etkilenen Sistemler
Yapılandırmadaki eksiklikler dolayısıyla Helm grafiklerini kullanan kurulumlarda, repo-server ve Redis bileşenlerine yönelik unutulan ağ politikaları mevcut. Bu durumda, tek bir pod’un ele geçirilmesi, repo-server’a erişim sağlanmasına ve açığın tetiklenmesine sebep olabiliyor.
Sonrasında, saldırganın repo-server üzerindeki yetkisi ile Redis parolasını okuyabiliyor ve Argo CD’nin Redis önbelleğine bağlanarak kaydedilmiş dağıtım verilerini bozabiliyor.
Çözüm ve Korunma
Bu güvenlik açığı için henüz bir yamanın bulunmadığı göz önüne alındığında, ağ izolasyonu temel savunma mekanizması haline gelmektedir. Aşağıdaki adımlar takip edilmelidir:
- Kubernetes ağ politikalarının etkinleştirilmesi, yalnızca Argo CD bileşenlerinin repo-server ve Redis portlarına erişebilmesi için gereklidir.
- Aktif politikaları kontrol etmek için: kubectl get networkpolicy -A. Komutu kullanılmalı.
- Kullandığınız Helm grafiği için ağ politikalarını etkinleştirmeyi unutmayın; çünkü varsayılan olan ayarlar genellikle kapalıdır.
Synacktiv, saldırıyı otomatikleştiren bir araç geliştirdi: argo-cdown. Bu araç, ağ politikalarını güçlendirmeleri için yöneticilere zaman vermek amacıyla şu anda yayımlanmamıştır, ancak ileride GitHub üzerinde kullanım için yayınlanacaktır.
Sonuç
Okuyuculara önerimiz, Argo CD ve Kubernetes dağıtımlarını düzenli olarak kontrol etmeleri, güncelleme yapmaları ve ağ politikalarını etkinleştirerek sistemlerini güvenli hale getirmeleridir. Güvenlik açığının yayılmasına karşı etkili bir çözüm üretilene kadar, ağ trafiğini düşmanca olarak görmek en önemli savunma stratejisi olacaktır.


