GitHub depoları, ekiplerin işbirliği yapmasına, kod oluşturmasına ve dağıtmasına olanak tanıyarak modern yazılım geliştirmenin önemli bir parçası haline geldi. Ancak, GitHub Actions yapıtlarının işlenme biçiminde, bu depoların güvenliği için önemli bir tehdit oluşturan kritik bir güvenlik açığı keşfedildi.
Bu saldırı vektörü bulut ortamlarına üst düzey erişime, hassas verilerin tehlikeye atılmasına ve potansiyel olarak milyonlarca tüketicinin etkilenmesine yol açabilir. Red Hat, Google, AWS, Canonical (Ubuntu), Microsoft, OWASP ve diğerleri gibi dünyanın en büyüklerinden bazıları da dahil olmak üzere birçok kuruluşun bu saldırıya karşı savunmasız olduğu keşfedildi.
GitHub Actions Artefaktları Kimlik Doğrulama Sırlarını Açığa Çıkarabilir
GitHub Actions iş akışları, bulut hizmetleri ve GitHub’ın kendisiyle etkileşim kurmak için sıklıkla sırları kullanır. Bu sırlar, depoya karşı eylemler gerçekleştirmek için kullanılan geçici GITHUB_TOKEN’ı içerir. Ancak, iş akışları çalıştırıldığında, eserler üretilir ve 90 güne kadar saklanır. Açık kaynaklı projelerde, bu eserler herkesin tüketmesi için herkese açıktır. Unit 42 Palo Alto Networks’ten araştırmacılar, bunun potansiyel güvenlik risklerini belirlemek için basit bir yöntem olduğunu buldular.
Popüler açık kaynaklı projelerden eserleri indirmek ve taramak için otomatik bir süreç oluşturuldu ve çeşitli bulut hizmetleri ve GitHub token’ları için çalışan token’lar ortaya çıkarıldı. Bu token’lar depo kodunun bir parçası değildi ancak depoda üretilen eserlerde bulundu. GitHub token’larının ifşa edilmesine yol açan en yaygın hata, kimlik bilgilerini kalıcı hale getiren ve GITHUB_TOKEN’ı yerel git dizinine yazan actions/checkout GitHub eyleminin varsayılan davranışıydı.
Yaygın olarak kullanılan bir diğer hata, GitHub belirteçleri de dahil olmak üzere ortam değişkenlerini günlük dosyasına kaydeden, yaygın olarak kullanılan bir açık kaynaklı kod linter’ı olan super-linter’ın kullanımıydı. Bu günlükler genellikle hassas belirteçleri açığa çıkaran yapı eserleri olarak yüklenir. Güvenlik açığı, super-linter’ın bakımcılarına bildirilmişti ve sorun resmi bir düzeltme almıştı.
Sızdırılan GitHub Token’larının Kötüye Kullanımı
GITHUB_TOKEN’lar geçicidir ve iş sona erdiğinde sona erer, altı saatlik bir sona erme süresine sahip JWT’ler olan ACTIONS_RUNTIME_TOKEN’lar ise önbelleği ve eserleri yönetmek için kullanılabilir. Bir eseri indirmek, ACTIONS_RUNTIME_TOKEN’ı çıkarmak ve eseri kötü amaçlı bir eserle değiştirmek için otomatik bir süreç oluşturuldu. Sonraki iş akışı işleri genellikle daha önce yüklenen eserlere güvenir ve kötü amaçlı eseri tüketen işi çalıştıran çalıştırıcıda uzaktan kod yürütmeye (RCE) karşı bir güvenlik açığı oluşturur.
Bu güvenlik açığının keşfi, GitHub’ın yapıt özelliğinde önemli bir güncellemeye yol açtı ve iş akışı çalışması devam ederken yapıtların kullanıcı arayüzünden veya API’den indirilmesine olanak sağladı. Bu değişiklik, bu tehdidi azaltma potansiyeline sahiptir ancak geliştiricilerin potansiyel risklerin farkında olmaları ve GitHub depolarını güvence altına almak için adımlar atmaları önemlidir.
Araştırma, GitHub’ın Artifacts V3’ü kullanımdan kaldırması durumunda olduğu gibi, CI/CD ortamlarında yüksek düzeyde kimlik bilgisi hijyeni sağlamanın kritik önemine odaklanmaktadır. Araştırmacılar, en az ayrıcalık ilkelerine göre koşucu belirteçlerinin Github iş akışı izinlerinin azaltılmasını ve kurumsal CI/CD hatlarında eser oluşturmanın düzenli olarak incelenmesini önermektedir.
Kuruluşlar, GitHub Actions yapıtlarının güvenli olmayan kullanımının potansiyel etkisini inceleyerek yazılım geliştirme süreçlerini güvence altına almak ve müşterilerini bu tür güvenlik açıklarının sonuçlarından korumak için gerekli adımları atabilirler.