CI/CD Güvenlik Açığı: GitHub Actions'ta Gözden Kaçan Saldırı Modeli Yazılım

CI/CD Güvenlik Açığı: GitHub Actions'ta Gözden Kaçan Saldırı Modeli

GitHub Actions'taki yeni bir güvenlik açığı, CI tarayıcılarının göremediği bir saldırı vektörünü ortaya çıkarıyor. 654 projede tespit edilen bu zafiye...

GitHub Actions'ta keşfedilen yeni bir güvenlik açığı, CI/CD tarayıcılarının 'yeşil' onay verdiği ancak aslında tehlikeli olan bir saldırı modelini gün yüzüne çıkardı. Novee Security araştırmacıları, Cordyceps adını verdikleri bu zafiyeti tespit etti. Araştırmada, npm, PyPI, crates.io ve Go ekosistemlerindeki yaklaşık 30.000 yüksek etkili depo taranırken, 654'ünde zafiyet tespit edildi ve 300'den fazlasının tamamen istismar edilebilir olduğu doğrulandı. Etkilenen projeler arasında Microsoft, Google, Apache, Cloudflare ve Python Yazılım Vakfı gibi büyük isimler yer alıyor. Saldırganın tek ihtiyacı, ücretsiz bir GitHub hesabı; herhangi bir organizasyon üyeliği veya yüksek ayrıcalık gerekmiyor.

Zafiyet, tek bir dosyadaki hata değil, iş akışlarının birleşimindeki mantık hatasından kaynaklanıyor. GitHub Actions iş akışları genellikle pull_request ile tetiklenir ve bu, fork'un güvenilmeyen bağlamında çalışırken sırlara erişemez ve salt okunur token kullanır. Sorun, pull_request_target ve workflow_run gibi olaylarda başlıyor; bunlar, ana deponun bağlamında çalışır ve sırlara erişim ile okuma/yazma GITHUB_TOKEN'ına sahiptir. Saldırgan, tetikleyen pull request'ten gelen içeriği kullanarak bu iş akışlarını manipüle edebilir. GitHub Security Lab'ın 'pwn request' olarak adlandırdığı bu durum, üç temel saldırı yöntemiyle gerçekleşiyor: komut enjeksiyonu, kod enjeksiyonu ve çapraz iş akışı ayrıcalık yükseltme. Her bir iş akışı tek başına güvenli görünse de, birleşimleri istismara açık.

Bu güvenlik açığının en çarpıcı yanı, mevcut güvenlik tarayıcılarının bu tür birleşimsel zafiyetleri tespit edememesi. SAST veya DAST araçları tek bir dosyayı desen eşlemesiyle inceler ve her bir iş akışı dosyası geçerli, düzgün YAML olduğu için tarayıcılar 'yeşil' sinyal verir. Novee Security araştırmacıları, Microsoft'un Azure Sentinel deposunda bir pull request yorumuyla anonim saldırgan kodunun çalıştırılabileceğini ve süresi dolmayan bir GitHub Uygulama anahtarının çalınabileceğini gösterdi. Benzer şekilde, Google'ın AI Agent Development Kit deposunda ve Apache Doris'te de aynı tür zafiyetler tespit edildi. Üç kuruluş, aynı birleşim sorunuyla karşı karşıya kaldı ve hiçbir tarayıcı sorunu işaret edemedi.

Önemli Gelişmeler

Bu risk, yapay zeka destekli kod üretimiyle daha da yaygınlaşıyor. Novee, akıllı kod araçlarının CI/CD yapılandırmalarını hızlıca oluşturduğunu ve aynı güvensiz desenleri tekrarladığını belirtiyor. Bir hata, milyonlarca depoya yayılabilir. NIST, 2020'den bu yana CVE başvurularının %263 arttığını ve artık her CVE'yi zenginleştiremediklerini kabul etti. Neyse ki Cordyceps'in vahşi ortamda istismar edildiğine dair bir kanıt bulunamadı ve etkilenen satıcılar güncelleme yayınladı. Ancak bu, düzeltilmesi gereken bir desen. Uzmanlar, güvenilmeyen katkılar için pull_request_target yerine pull_request kullanmayı, ayrıcalıklı iş akışlarında pull request kodunu checkout etmemeyi, olay verilerini alıntılanmış env değişkeni ile iletmeyi, varsayılan izinleri salt okunur yapmayı ve üçüncü taraf eylemlerini commit SHA'sına sabitlemeyi öneriyor.

Paylaş: