Megalodon Saldırısı Altı Saatte 5.561 GitHub Deposunu Vurdu
Megalodon adı verilen bir GitHub CI/CD tedarik zinciri saldırısı, otomatik ve büyük ölçekli depo ele geçirme konusunda yeni bir kıyas noktası oluşturdu. Tek bir altı saatlik pencerede saldırganlar, 5.561 GitHub deposunda 5.718 kötü amaçlı kod güncellemesi iletti; bulut kimlik bilgilerini, SSH anahtarlarını ve kaynak kod sırlarını sessiz sedasız ele geçirmek üzere tasarlanmış iş akışı dosyaları yerleştirmek için sahte kimlikler kullandılar. Kampanyanın salt hızı ve hacmi, çoğu ekibin gerçek zamanlı tespit veya müdahale kapasitesini aşan sanayileşmiş boru hattı saldırılarına doğru bir kayışa işaret ediyor.
Megalodon Saldırısı Nasıl İşledi: Sahte Kimlikler ve Otomatik İş Akışı Enjeksiyonu
Megalodon'un arkasındaki saldırganlar sıfırıncı gün açıklarına ya da son kullanıcı makinelerine iletilen karmaşık kötü amaçlı yazılımlara başvurmadı. Bunun yerine GitHub'ın CI/CD altyapısının güvenilir yapısını bizzat istismar ettiler. Sahte katkıda bulunan kimlikleri oluşturarak çekme istekleri gönderdiler ya da iş akışı yapılandırma dosyalarını —özellikle GitHub Actions'ın otomatik derleme ve dağıtım hatlarını tanımlamak için kullandığı YAML dosyalarını— doğrudan değiştirdiler.
Kötü amaçlı bir iş akışı dosyası bir depoya yerleştiğinde, hattın her tetiklenmesinde —genellikle push olaylarında veya çekme isteği birleştirmelerinde— otomatik olarak çalışır. Bu yürütme, GitHub'ın kendi çalıştırıcı ortamında gerçekleşir; bu ortam çoğunlukla depo sırlarına, ortam değişkenlerine ve bulut sağlayıcılarına kapsamlı belirteçlere erişime sahiptir. Megalodon iş akışları, herhangi bir depo yöneticisinin değişikliği incelemeye fırsatı bulamadan bu erişim penceresini kullanarak verileri —büyük olasılıkla saldırgan kontrolündeki altyapılara— dışarı sızdırdı.
Kampanyanın belirleyici özelliği otomasyonudur. Altı saat içinde 5.500'den fazla depoda neredeyse 5.720 ayrı kod iletimi gerçekleştirmek elle yapılabilecek bir çaba değildir. Hedefleri tespit edebilen, sahte kimliklerle kimlik doğrulayabilen, akla yatkın görünen iş akışı değişiklikleri hazırlayabilen ve bunları paralel olarak iletebilen betiklenmiş araçlar gerektirir. Bu otomasyon düzeyi, saldırı yüzeyinin herhangi bir insan izleme ekibinin takip edebileceğinden çok daha hızlı genişlediği anlamına gelir.
Hangi Kimlik Bilgileri Çalındı ve Bu Geliştiriciler İçin Neden Önemli
Her kötü amaçlı iş akışının yükü kimlik bilgisi toplamaydı. Hedefler arasında bulut sağlayıcı kimlik bilgileri —en yaygın olarak GitHub Secrets olarak saklanan veya iş akışı ortam değişkenleri içinde başvurulan AWS, GCP ve Azure erişim anahtarları— yer aldı. Sunucu erişimi ya da servisler arası kimlik doğrulama için kullanılan SSH özel anahtarları ile kaynak koduna veya yapılandırma dosyalarına gömülü her türlü düz metin sır da kapsam dahilindeydi.
Bu kimlik bilgisi türleri basamaklı risk taşır. Geniş izinlere sahip bir IAM rolüne bağlı çalınan bir AWS erişim anahtarı, bir saldırganın dakikalar içinde altyapı oluşturmasına, veri depolarını dışarı sızdırmasına veya bağlı servislere yatay olarak sızmasına olanak tanıyabilir. SSH anahtarları, asıl ihlal tespit edilip GitHub deposu temizlendikten çok sonra bile üretim sunucularına kalıcı erişim sağlayabilir. Bu verilerin değeri depoların çok ötesine uzanır.
Bu hipotetik bir risk örüntüsü değildir. Bu yılın başında bir CISA müteahhidi AWS anahtarlarını ve düz metin parolaları herkese açık bir GitHub deposunda ifşa etti; bu durum, geliştirme ortamlarındaki kimlik bilgisi yönetim hatalarının özel güvenlik yetkileri olan kuruluşları bile etkilediğini ortaya koydu. Megalodon, bireysel insan hatalarının defalarca kanıtladığı istismar yolunu sadece sanayileştirdi.
Kimlik bilgisi hırsızlığı araçlarının ve hatlarının kendilerinin de hedef olduğunu belirtmek gerekir. Yakın zamanda yaşanan Bitwarden CLI tedarik zinciri saldırısı, geliştiricilerin sırları yönetmek için kullandığı araçların bile yukarı akışta ele geçirilebileceğini gösterdi; bu da güven zincirinin tek bir deponun veya hattın yapılandırmasının ötesine geçtiği anlamına gelir.
Geliştirme Ekipleri İçin Derinlemesine Savunma: Sır Yönetimi, Şifreli İletişim ve Erişim Denetimleri
Megalodon, açık kaynak ve özel depolar genelinde yaygın olan çeşitli zayıf noktaları istismar etti. Bunları gidermek, tek bir denetim yerine katmanlı bir yaklaşım gerektirir.
Her şeyden önce, sırlar asla iş akışı dosyaları, ortam yapılandırma dosyaları veya kaynak kodu içinde düz metin olarak saklanmamalıdır. GitHub'ın şifreli Secrets özelliği temel bir başlangıç noktası sunar; ancak bu sırlar aynı zamanda en az ayrıcalık ilkesine de uymalıdır. Hazırlık ortamına dağıtım yapan bir iş akışının üretim veritabanı kimlik bilgilerine ihtiyacı yoktur. Sırların kapsamını daraltmak, bir iş akışı ele geçirildiğinde hasarın boyutunu sınırlar.
İkinci olarak, dal koruma kuralları ve iş akışı dosyası değişiklikleri için zorunlu inceleyiciler, otomatik saldırıların atlatması gereken bir insan kontrol noktası oluşturur. .github/workflows/ dosyalarında yapılan herhangi bir değişiklikten önce en az bir onaylı inceleme zorunlu kılmak, Megalodon'un dayandığı hızlı otomatik enjeksiyon türünü yavaşlatabilir ya da tamamen engelleyebilir.
Üçüncüsü, üçüncü taraf GitHub Actions'ları yüzen etiketler yerine belirli commit SHA'larına sabitlemek, ele geçirilmiş aksiyon yayıncılarının bir etiketi sessizce kötü amaçlı koda işaret edecek şekilde güncellediği ayrı ama ilgili bir saldırı vektörünü önler. Bu mekanizma, son dönemdeki birkaç GitHub Actions tedarik zinciri olayında da gündeme gelmiştir.
Son olarak, iş akışı çalıştırmalarına ilişkin denetim günlüğü kaydı ve anomali tespiti, beklenmedik giden ağ bağlantılarını veya olağandışı sır erişim örüntülerini gün yüzüne çıkarabilir. GitHub'ın denetim günlüğü API'si ve üçüncü taraf CI/CD güvenlik araçları bu sinyallerin tespit edilmesine yardımcı olabilir.
GitHub Depolarınızı ve CI/CD Hatlarınızı Şimdi Nasıl Denetleyebilirsiniz
Kuruluşunuz aktif CI/CD hatlarına sahip GitHub depoları barındırıyorsa birkaç acil adıma öncelik vermeniz önerilir.
.github/workflows/ altındaki tüm dosyaları, özellikle tanımadığınız katkıda bulunanlar tarafından yakın zamanda eklenmiş veya değiştirilmiş girişleri inceleyebilirsiniz. Yalnızca varsayılan dal görünümüne değil, özellikle iş akışı dosyalarının commit geçmişine bakın.
Saldırının gerçekleştiği dönemde aktif olan ya da açığa çıkmadığından emin olamadığınız tüm sırları yenileyin. Bulut kimlik bilgileri için, aynı zaman dilimine ait olağandışı API çağrılarını sağlayıcı taraflı erişim günlüklerinden inceleyin.
Hangi depo katkıcılarının ve uygulamaların yazma erişimine sahip olduğunu denetleyin. Sahte kimlik saldırıları kod iletebilme yeteneğine dayanır; dolayısıyla katkıcı izinlerini sıkılaştırmak ve iş akışı değişiklikleri için zorunlu inceleme etkinleştirmek, kritik bir giriş noktasını ortadan kaldırır.
Son olarak, kimlik bilgilerini bir depoya işlenmeden önce yakalayan, her commit'te çalışan özel bir sır tarama aracı benimsemeyi değerlendirin. Doğrudan GitHub ile entegre olan çeşitli açık kaynak ve ticari seçenekler mevcuttur.
Bu Sizin İçin Ne Anlama Geliyor
Megalodon kampanyası, CI/CD hatlarının neden birincil saldırı yüzeyi hâline geldiğinin somut bir göstergesidir. Hat güvenliğini uygulama güvenliğinin ikincil bir meselesi olarak gören geliştiriciler ve güvenlik ekipleri, en hassas kimlik bilgilerine giden geniş açık bir yol bırakıyor demektir.
Bu hafta bir sır denetimiyle başlayın. İş akışı dosyalarınızı kimlerin değiştirebildiğini gözden geçirin, temiz olduğundan emin olamadığınız kimlik bilgilerini yenileyin ve henüz yapmadıysanız varsayılan dalınızda dal korumasını etkinleştirin. Megalodon saldırısının hızı göz önüne alındığında, bir uyarı tetiklendiğinde sızdırma çoktan tamamlanmış olabilir. Önleme ve erişim kapsamının daraltılması, güvenilir tek savunma yöntemleridir.




