Araştırmacılar, CI/CD sunucularının SCM web kancalarını kötüye kullanarak kolayca ihlal edildiğini buldu


Web kancası, çizgi ve platin

CI/CD sunucuları, SCM web kancaları aracılığıyla ihlal edilebilir

Bulut tabanlı kaynak kodu yönetimi (SCM) platformları, DevOps otomasyonu için harika olan web kancaları aracılığıyla şirket içinde barındırılan CI/CD çözümleriyle entegrasyonu destekler.

Bununla birlikte, faydalar güvenlik takaslarıyla gelebilir.

Cider’deki araştırmacıların yeni bulgularına göre, kötü niyetli aktörler iç kaynaklara erişmek, uzaktan kod yürütme (RCE) çalıştırmak ve muhtemelen ters kabuk erişimi elde etmek için web kancalarını kötüye kullanabilir.

Web kancası IP aralıkları

Hizmet olarak yazılım (SaaS) SCM sistemleri, web kancaları için bir IP aralığı sağlar. Kuruluşlar, SCM ile kendi kendine barındırılan CI/CD sistemleri arasında entegrasyonu sağlamak için ağlarını bu IP aralıklarına açmalıdır.

“Bir SaaS kaynak kontrol yönetim sistemi ve kendi kendini yöneten bir CI ile CI’ye yönelik izin verilen web kancası hizmeti IP aralığının birleşiminin ortak bir mimari olduğunu biliyorduk ve oradaki olasılıklarımızı kontrol etmek istedik,” diyor araştırma başkanı Ömer Gil. elma şarabı, anlattı Günlük Swig.

En son DevSecOps haberlerini yakalayın

Saldırganlar, bir kuruluşun güvenlik duvarlarını geçmek için web kancalarını kullanabilir. Ancak SCM web kancalarının katı sınırları vardır ve web kancası isteklerinde değişiklik yapmak için çok az yer vardır.

Ancak araştırmacılar, doğru değişikliklerle SCM web kancalarının kullanabileceği sınırlı uç noktaların ötesine geçebileceklerini keşfettiler.

CI/CD uç noktalarına erişme

CI/CD tarafında, araştırmacılar deneylerini açık kaynaklı bir DevOps sunucusu olan Jenkins üzerinde yürüttüler.

“Kendi kendine barındırıldığı ve yaygın olarak kullanıldığı için Jenkins’i seçtik, ancak [our findings] örneğin yapı kayıtları gibi SCM’den erişilebilen herhangi bir sisteme uygulanabilir, “dedi Gil.

SCM tarafında hem GitHub hem de GitLab’ı test ettiler. Web kancaları belirli CI uç noktalarını tetiklemek için tasarlanmış olsa da, istekleri kullanıcı verilerini veya işlem hatlarının konsol çıktısını döndüren diğer uç noktalara yönlendirmek için değiştirebilirler. Bununla birlikte, sınırlar devam etmektedir.

Gil, “Web kancaları, veri almak için kullanılan uç noktalar genellikle yalnızca GET parametresini kabul ettiğinden, hedef hizmete karşı seçenekleri sınırlayan bir POST isteği olarak gönderilir” dedi. “GitHub aracılığıyla bir GET isteğini tetiklemek mümkün olmasa da GitLab’da bu farklı bir durumdur, çünkü POST isteğine bir yeniden yönlendirme ile yanıt verilirse, GitLab web kancası hizmeti GET isteğini göndererek bunu takip edecektir.”

Web kancalarından yararlanma

GitLab’ı kullanan araştırmacılar, dahili kaynaklara erişmek için POST ve GET isteklerini birleştirmek için web kancalarını kullanabildiler. İlginç bir şekilde, bazı Jenkins kaynaklarına kimlik doğrulama olmadan erişilebilir.

“Varsayılan olarak, bazı kaynaklara anonim olarak erişilebilir. Bunu söyledikten sonra, bir kuruluşun onu olduğu gibi bırakması çok yaygın değil – ancak bazıları anonim erişime izin veriyor, ”dedi Gil.

Kimlik doğrulamanın gerekli olması durumunda, araştırmacılar web kancalarını oturum açma uç noktasına yönlendirebileceklerini ve CI/CD platformuna karşı kaba kuvvet parola saldırıları gerçekleştirebileceklerini buldular. Kimliği doğrulandıktan sonra, diğer kaynaklara erişmek için kullanılabilecek bir oturum tanımlama bilgisi aldılar.

Jenkins örneğinin güvenlik açığı bulunan bir eklentisi varsa, web kancası mekanizması bundan yararlanabilir. Yukarıdaki kavram kanıtı videosunda, araştırmacılar, savunmasız bir Jenkins sunucusunu kötü amaçlı bir JAR dosyası indirmeye, sunucuda çalıştırmaya ve saldırgan için bir ters kabuk uç noktası başlatmaya zorlayabileceklerini gösteriyor.

Bu bulgu, CI/CD sunucuları kısmen internete açık olduğunda ortaya çıkan risklerin bir hatırlatıcısıdır.

Gil, “Hermetik bir çözüm, SCM web kancası hizmetinden gelen trafiği reddetmektir, ancak genellikle mühendislik maliyetleriyle birlikte gelir” dedi. “CI’de güvenli bir kimlik doğrulama mekanizması ayarlamak, yama uygulamak ve sunucudaki tüm eylemlerin günlüklere kaydedildiğinden emin olmak gibi bazı önlemler alınabilir.”

ÖNERİLEN ‘Güvenlik ekipleri genellikle geliştiricilerin AppSec’in kontrolünü ele geçirmesine karşı savaşıyor’: Tanya Janca, DevSecOps’u benimseme yolunda



Source link