GitHub İç Depo İhlali: Risk Analizi ve Savunma Stratejileri
TeamPCP adlı hacker grubunun yaklaşık 4.000 GitHub iç deposuna erişim sağladığını iddia etmesi, yazılım tedarik zinciri güvenliğinin kritik önemini bir kez daha ortaya koymuştur. Bu tür ihlaller, kaynak kodlarının sızdırılması, API anahtarlarının ifşası ve fikri mülkiyet hırsızlığı gibi ciddi riskler doğurur. Bu makale, benzer bir durumla karşılaşıldığında veya proaktif olarak alınması gereken güvenlik önlemlerini kapsamaktadır.
İhlal Tespit ve Müdahale Adımları
- Erişim Loglarının İncelenmesi: GitHub Audit Log verilerini detaylıca inceleyerek olağan dışı IP adreslerini ve yetkisiz erişim denemelerini tespit edin.
- API Anahtarlarının Rotasyonu: Depolarda saklanan tüm API anahtarlarını, veritabanı şifrelerini ve SSH anahtarlarını derhal geçersiz kılın ve yenileyin.
- Kod Taraması: Sızdırılmış olabilecek depolarda hard-coded (sabit kodlanmış) gizli bilgilerin olup olmadığını otomatik araçlarla tarayın.
Güvenlik Sıkılaştırma Komutları
GitHub organizasyonunuzun güvenliğini artırmak için aşağıdaki CLI komutlarını ve yapılandırmaları kullanın:
# GitHub CLI ile tüm organizasyonun web kancalarını (webhooks) listeleme ve denetleme
gh api orgs/{org}/hooks
# Depolardaki gizli bilgileri taramak için 'gitleaks' kullanımı
gitleaks detect --source . --verbose
# SSH anahtarlarını listeleme ve eski/kullanılmayanları silme
gh ssh-key list
Uyarı: Sadece şifrelerinizi değiştirmek yeterli değildir. İhlal edilen depolarda yer alan tüm bağımlılıkları (dependencies) ve CI/CD süreçlerini gözden geçirerek arka kapı (backdoor) yerleştirilmediğinden emin olun.
Proaktif Savunma İçin İpuçları
Gelecekteki ihlalleri önlemek adına Branch Protection Rules (Dal Koruma Kuralları) uygulayın. Kodun ana dala birleşmesi için mutlaka en az iki onay (review) şartı koşun ve 'Require signed commits' seçeneğini aktif edin. Ayrıca, GitHub Advanced Security (GHAS) özelliklerini kullanarak 'Secret Scanning' ve 'Code Scanning' modüllerini mutlaka devreye alın.
Kurumsal seviyede, geliştiricilerin yerel makinelerinde çalışan 'pre-commit' kancaları kullanarak, kod henüz sunucuya gönderilmeden önce gizli verilerin (secrets) temizlendiğinden emin olun. Bu, insan hatasından kaynaklanan veri sızıntılarını %90 oranında engellemektedir.



