GitHub, yalnızca kod barındırmakla kalmaz; CI/CD iş akışlarını, gizli bilgileri, paketleri, altyapı kodunu ve üretim dağıtımlarını da yöneten kritik bir araçtır. Bu nedenle, kuruluş genelinde güvenlik kontrollerini doğru şekilde yapılandırmak, saldırılara karşı ilk savunma hattını oluşturur.
Bu rehber, GitHub’ın güvenlik özelliklerini adım adım uygulamak için hazırlanan bir uygulama el kitabı niteliğindedir. Her kontrol için hedef, gerekli ayarlar, uygulama adımları, doğrulama yöntemleri ve kanıtların nasıl saklanacağı detaylandırılmıştır. Planın uygulanabilirliği için GitHub Enterprise Cloud, GitHub Advanced Security veya kuruluş sahibi izinlerine sahip olmanız gerekebilir.
Güvenlik Kontrollerini Uygulama Sırası
Güvenlik kontrollerini rastgele uygulamak yerine, aşağıdaki evreler halinde ilerlemek önemlidir. Bu sayede, temel kimlik yönetimi ve depo yönetimi tamamlanmadan gelişmiş tarama araçlarına geçilmez.
1. Evre — Kimlik ve Kuruluş Yönetimi
- Tek oturum açma (SSO) zorunluluğunu etkinleştirin.
- Kimlik sağlayıcı (IdP) üzerinden kimlik avına karşı dayanıklı MFA/passkey kullanımını zorunlu kılın.
- GitHub yerel MFA/passkey kullanımını, kırılma camı hesapları, dış katkıda bulunanlar ve hizmet hesapları için zorunlu hale getirin.
- Ayrıcalıklı Git işlemleri için donanım destekli SSH anahtarlarını kullanmaya başlayın.
- Kuruluş sahiplerinin sayısını azaltın ve varsayılan depo izinlerini "İzin yok" olarak ayarlayın.
- Dış katkıda bulunanların erişimini kısıtlayın ve depo oluşturma, silme, aktarma gibi işlemleri sınırlandırın.
2. Evre — Depo Kontrolleri
- Depoları sınıflandırın ve risk seviyelerine göre gruplandırın.
- Varsayılan dal için kuruluş genelinde kurallar oluşturun.
- Geliştirme, yayın ve acil düzeltme dalları için depo düzeyinde kurallar tanımlayın.
- CODEOWNERS dosyasıyla kritik dosyaların sorumluluğunu belirleyin.
- Tehlikeli dosya yollarına ve türlerine yönelik itme kurallarını uygulamaya koyun.
3. Evre — CI/CD ve Tedarik Zinciri Güvenliği
- GitHub Actions kullanımını onaylanmış eylemlerle sınırlandırın.
GITHUB_TOKENizinlerini salt okunur olarak ayarlayın ve iş akışı izinlerini açıkça tanımlayın.- Uzun ömürlü bulut gizli bilgilerini OIDC ile değiştirin.
- Üretim dağıtımları için GitHub Ortamları’nı kullanmaya başlayın.
4. Evre — İzleme ve Olay Müdahalesi
- Gizli bilgi taramasını ve itme korumasını etkinleştirin.
- CodeQL ve Dependabot gibi otomatik güvenlik tarama araçlarını devreye alın.
- Kendi kendine barındırılan runner’ları güvenliğe alıp OAuth uygulamalarını ve hizmet hesaplarını sınırlandırın.
- Denetim kayıtlarını dışa aktarın ve olay müdahale planı oluşturun.
Kimlik Yönetimi ve Erişim Kontrolleri
Kuruluş genelinde güvenliğin temelini, kimlik ve erişim yönetimi oluşturur. Bu nedenle, SSO ve MFA yapılandırması, diğer kontrollerin etkili olmasını sağlar.
SSO ve Kimlik Sağlayıcı Entegrasyonu
GitHub, kuruluş erişimini yönetmek için SAML tabanlı SSO’ya olanak tanır. Bu özellik, kurumsal kimlik sağlayıcı üzerinden kimlik doğrulamasını zorunlu kılarak, merkezi bir erişim kontrolü sağlar.
Adım Adım Kurulum:
- Kuruluş ayarlarına gidin ve
Kimlik Doğrulama Güvenliğibölümünden SAML SSO’yu etkinleştirin. - IdP’nizden aldığımız meta verileri GitHub’a yükleyin.
- Test amacıyla geçici bir hesapla SSO doğrulamasını test edin.
SSO’yu zorunlu kılseçeneğini etkinleştirin ve SCIM senkronizasyonunu yapılandırın.- IdP gruplarını GitHub ekiplerine eşleyin ve kuruluş dışı kalan kullanıcıları devre dışı bırakın.
Önemli Not: Eğer IdP’nizde kimlik avına karşı dayanıklı MFA veya passkey kullanılıyorsa, normal kullanıcı hesapları için GitHub yerel MFA gerekli değildir. Ancak kırılma camı hesapları, dış katkıda bulunanlar ve hizmet hesapları için yerel MFA zorunlu tutulmalıdır.
Kuruluş Sahipliği ve Sorumlulukların Belirlenmesi
GitHub’ın güvenlik ayarlarından depo yönetimine kadar birçok alanda net sahiplik tanımları kritik önem taşır. Bu sayede, sorumluluklar netleşir ve güvenlik açıklarının giderilmesi hızlanır.
Sorumlulukların Dağılımı
- Güvenlik Ekibi: Politika oluşturma, istisna yönetimi ve denetim kayıtlarının izlenmesinden sorumludur.
- Platform Ekibi: Kuruluş genelindeki koruma kurallarını tanımlar ve uygular.
- Depo Sahipleri: Her deponun teknik ve iş birimi sahiplerini belirleyerek, sınıflandırmayı ve varsayılan dal ayarlarını yapılandırır.
- Release Yönetimi: Üretim dağıtımları ve acil düzeltmeler için onay sürecini yönetir.
- SOC/SecOps: Olay müdahalesi ve izleme süreçlerini yürütür.
Uygulama Adımları
- Kuruluşta aşağıdaki ekipleri oluşturun veya doğrulayın:
- security-admins
- security-readonly
- platform-admins
- devsecops
- release-managers
- breakglass-admins
- Her depo için aşağıdaki bilgileri tanımlayın:
- İş birimi sahibi
- Teknik sahibi
- Veri sınıflandırması (Kritik/Orta/Düşük)
- Üretim dağıtımı kullanılıyor mu?
- GitHub Actions kullanılıyor mu?
- GitHub özel özellikleri varsa, aşağıdaki özel özellikleri oluşturun:
- business_owner
- technical_owner
- data_classification
- production_deploying_repo
Doğrulama ve Kanıt Saklama
10 rastgele depo seçilerek, her birinin bir sahibi, sınıflandırması ve varsayılan dal ayarları doğrulanmalıdır. Bu veriler, güvenlik denetimlerinde kanıt olarak kullanılabilir.
Sonuç ve Gelecek Adımlar
GitHub kuruluşunda güvenliği artırmak, yalnızca teknik ayarlarla sınırlı değildir. Aynı zamanda, sorumlulukların net bir şekilde tanımlanması, sürekli izleme ve olay müdahale planlarının oluşturulması gerekir. Bu rehberde yer alan adımları uygulayarak, kuruluşunuzun güvenlik duruşunu önemli ölçüde iyileştirebilirsiniz.
Gelecekte, bu kontrollerin otomatikleştirilmesi ve sürekli iyileştirilmesi için araçlar ve otomasyon senaryoları geliştirmek, güvenlik sürecini daha da sağlamlaştıracaktır.
Yapay zeka özeti
GitHub kuruluşunda kimlik yönetimi, depo kontrolleri, CI/CD güvenliği ve denetim kayıtları için uygulanabilir 26 adımlı güvenlik rehberi. Kuruluşunuzun güvenlik standartlarını yükseltin.