GitHub Actions yapıtlarının popüler projelerde kimlik doğrulama belirteçlerini sızdırdığı bulundu


GitHub

Google, Microsoft, AWS ve Red Hat’in de aralarında bulunduğu çok sayıda yüksek profilli açık kaynaklı projenin, CI/CD iş akışlarındaki GitHub Actions eserleri aracılığıyla GitHub kimlik doğrulama belirteçlerini sızdırdığı tespit edildi.

Bu token’ları çalan saldırganlar, özel depolara yetkisiz erişim sağlayabilir, kaynak kodlarını çalabilir veya projelere kötü amaçlı kod enjekte edebilir.

Palo Alto Networks’ Unit 42’nin keşfi, sırların GitHub Actions eserleri aracılığıyla sızdırıldığı popüler depoların sahiplerinin harekete geçmesine neden oldu. Ancak, GitHub riski ele almamaya karar verdiğinden ve eserlerini güvence altına alma sorumluluğunu kullanıcılara yüklediğinden, temeldeki sorunlar hala çözülmedi.

Bu durum göz önüne alındığında, GitHub kullanıcılarının riskleri anlamaları, maruz kalma durumlarını değerlendirmeleri ve gelecekte sızıntıları önlemek için önlemler almaları gerekiyor.

GitHub Actions tarafından oluşturulan yapıt
GitHub Actions tarafından oluşturulan yapıt
Kaynak: Ünite 42

GitHub token’larının sızdırılması

Unit 42’nin raporunda, güvenli olmayan varsayılan ayarlar, kullanıcı yanlış yapılandırması ve yetersiz güvenlik kontrolleri gibi bir dizi faktörün, “ArtiPACKED” saldırısı olarak adlandırılan GitHub token’larının sızdırılmasına yol açabileceği vurgulanıyor.

İlk risk noktası, iş akışı çalışması sırasında depo kodunun kullanılabilir olmasını sağlamak için GitHub iş akışlarında yaygın olarak kullanılan ‘actions/checkout’ eylemidir.

Varsayılan olarak, bu eylem GitHub belirtecini iş akışı içindeki kimliği doğrulanmış işlemler için gerekli olduğu şekilde yerel .git dizinine (gizli) kalıcı hale getirir.

Bir kullanıcı yanlışlıkla tüm ödeme dizinini bir yapıtın parçası olarak yüklerse, git klasörü içindeki GitHub belirteci artık açığa çıkacak.

Herkese açık GitHub token'ı
Herkese açık GitHub token’ı
Kaynak: Ünite 42

Bu klasörde bulunabilecek diğer hassas bilgiler arasında API anahtarları, bulut hizmeti erişim belirteçleri ve çeşitli hesap kimlik bilgileri yer alır.

Hatalı eser yüklemeleri nedeniyle benzer bir maruziyet, CI/CD süreci sırasında oluşturulan ve üç aya kadar saklanıp erişilebilen yapı çıktıları ve test sonuçları gibi eserler nedeniyle de meydana gelebilir.

Başka bir başarısızlık noktası da GitHub token’larını depolamak için ortam değişkenleri kullanan CI/CD boru hatlarıdır. İş akışı içindeki eylemler veya betikler bu değişkenleri bilerek veya yanlışlıkla günlüğe kaydederse, günlükler yapıtlar olarak yüklenir.

Ünite 42, ‘CREATE_LOG_FILE’ özelliği ‘True’ olarak ayarlandığında ‘super-linter’ eyleminin ortam varyantlarını içeren ayrıntılı günlükler oluşturabileceğini belirtmektedir.

Sızıntıları istismar etmek

Sonuç olarak saldırganlar, geçici GitHub token’larının kayıtlardan çıkarılması ve süresi dolmadan önce kullanılması gereken belirli yarış koşulları senaryolarından yararlanmaya çalışacaklardır.

GitHub token’ları iş akışı işi süresince geçerliliğini korur, dolayısıyla bunların istismar potansiyelleri duruma göre değişir.

GitHub tarafından yapıtları önbelleğe almak ve yönetmek için dahili olarak kullanılan ‘Actions_Runtime_Token’ genellikle altı saat geçerlidir, bu nedenle istismar penceresi küçüktür.

API anahtarları veya bulut hizmetlerine yönelik erişim belirteçleri gibi özel sırlar ve belirteçlerin, birkaç dakikadan hiç sona ermeyen sürelere kadar değişen ömürleri vardır.

Birim 42, GitHub Actions kullanan projeleri veya genel depoları tanımlayan ve bunları eser üretme olasılığını artıran ölçütler açısından taramak için otomatik komut dosyaları kullanan bir saldırı senaryosu sunar.

Farklı bir betik kümesi, hedef depoların CI/CD hatlarından eserleri otomatik olarak indirebilir, bu da genel depolar durumunda basit bir işlemdir. Daha sonra, bunları sırlar açısından inceler.

Saldırı akışı
Saldırı akışı
Kaynak: Ünite 42

Azaltma

42. Birim, GitHub token’ları ile eserleri ifşa eden büyük açık kaynaklı projelere ilişkin aşağıdaki 14 vakayı tespit etti ve düzeltme için etkilenen taraflara bildirdi:

  • Firebase (Google)
  • OpenSearch Güvenliği (AWS)
  • Clair (Kırmızı Şapka)
  • Active Directory Sistemi (Adsys) (Kanonik)
  • JSON Şemaları (Microsoft)
  • TypeScript Depo Otomasyonu, TypeScript Bot Test Tetikleyicisi, Azure Taslağı (Microsoft)
  • SiklonDX SBOM (OWASP)
  • Kurutulmuş balık
  • Yaşam Etkinliği
  • Apache Kafka için Guardian (Aiven-Open)
  • Git Eki (Veri Yüklendi)
  • Penrose
  • Güverte evi
  • Beton-ML (Zama AI)

Genel olarak, GitHub kullanıcılarının yüklenen yapıtlara tüm dizinleri dahil etmekten kaçınmaları, günlükleri temizlemeleri ve CI/CD işlem hattı yapılandırmalarını düzenli olarak incelemeleri önerilir.

‘actions/checkout’ gibi tehlikeli eylemler için varsayılan ayarlar, kimlik bilgilerinin kalıcı olmaması için ayarlanmalıdır. Ayrıca, iş akışlarında kullanılan belirteç izinleri, ifşa olmaları durumunda hasarı sınırlamak için gereken en düşük ayrıcalığa ayarlanmalıdır.



Source link