Giriş
Checkmarx, LAPSUS$ tehdit aktörleri tarafından özel GitHub depolarından çalınan verilerin sızdırıldığını doğrulamıştır. Bu olay, yazılım tedarik zinciri güvenliğinin ve kaynak kodu korumasının ne kadar kritik olduğunu bir kez daha göstermiştir. Bu makale, benzer bir sızıntı durumunda veya genel GitHub güvenliğini artırmak için atılması gereken adımları teknik bir perspektifle ele almaktadır.
Sorun Tanımı
Tehdit aktörleri, genellikle kimlik bilgisi hırsızlığı veya zayıf erişim yönetimi üzerinden özel depolara sızmaktadır. Sızdırılan veriler arasında genellikle API anahtarları, sertifikalar, veritabanı bağlantı dizeleri ve yapılandırma dosyaları yer almaktadır. Bu verilerin ifşası, sistemlerin ele geçirilmesine veya daha geniş çaplı bir saldırıya zemin hazırlayabilir.
Çözüm Adımları
- Erişim Belirteçlerini (Tokens) İptal Edin: GitHub üzerinde tanımlı tüm Personal Access Token (PAT) ve SSH anahtarlarını derhal iptal edin.
- Kimlik Bilgilerini Rotasyona Tabi Tutun: Kod içerisinde yer alan tüm veritabanı şifrelerini, API anahtarlarını ve gizli değişkenleri (secrets) değiştirin.
- Denetim Günlüklerini İnceleyin: GitHub 'Audit Log' üzerinden şüpheli IP adreslerini ve erişim zamanlarını kontrol edin.
- İki Faktörlü Doğrulamayı (2FA) Zorunlu Kılın: Kuruluşunuzdaki tüm kullanıcılar için 2FA'yı zorunlu hale getirin.
Komutlar ve Güvenlik Kontrolleri
GitHub CLI kullanarak mevcut erişim anahtarlarınızı listelemek ve yönetmek için aşağıdaki komutları kullanabilirsiniz:
# Mevcut SSH anahtarlarını listele
gh ssh-key list
# Şüpheli bir anahtarı silmek için
gh ssh-key delete [KEY_ID]
# GitHub Audit Log'u kontrol etmek için
gh api /orgs/{org}/audit-logUyarı: Kod tabanınızda yer alan gizli verileri temizlemek için 'git-filter-repo' gibi araçları kullanarak geçmiş commit geçmişini temizlemeniz gerekebilir. Sadece yeni commit atmak veriyi geçmişten silmez.
Önleyici Tedbirler
Gelecekteki sızıntıları önlemek için 'Secret Scanning' özelliğini aktif edin ve kod içerisinde hard-coded (sabit kodlanmış) verilerin bulunup bulunmadığını tarayan araçlar kullanın. Ayrıca, 'Least Privilege' (En Az Ayrıcalık) prensibine göre kullanıcı erişimlerini kısıtlayın.



