Push protection ve bypass mekanizması
Push protection and bypass mechanism
Bu derste neler öğreneceksin
- Push protection'ın nasıl çalıştığını ve hangi noktada devreye girdiğini anlamak
- Bypass seçeneklerini ve bunların güvenlik kaydını bilmek
- Push protection'ı organization genelinde zorunlu kılma yöntemini öğrenmek
- Bypass izni yapılandırmasını ve kimin bypass edebileceğini kavramak
Push protection nedir?
Push protection, secret scanning’in proaktif modudur. Normal secret scanning push edildikten sonra uyarır; push protection push sırasında — commit repoya ulaşmadan — engeller.
git push
↓
GitHub pre-receive hook
↓
Secret pattern match?
↓ Evet ↓ Hayır
Push BLOKLANIR Push kabul edilir
Bypass gerekir
Bloklama mesajı ve geliştirici deneyimi
Push bloklandığında geliştirici şunu görür:
remote: Push cannot contain secrets.
remote:
remote: Secret: GitHub Personal Access Token
remote: Location: config/settings.py, line 42
remote:
remote: To push anyway, use: --push-protection-skip
Geliştirici üç seçeneğe sahiptir:
- Secret’ı kaldır ve yeniden push et (önerilen)
- Bypass et — nedeni belirt (audit log’a kaydedilir)
- Push’u iptal et
Bypass kategorileri
Bypass edilirken geliştirici bir sebep belirtmek zorundadır:
| Sebep | Kullanım senaryosu |
|---|---|
false_positive | Eşleşme gerçek secret değil |
used_in_tests | Test ortamında kasıtlı sabit değer |
will_fix_later | Şimdilik geç, takip kaydı açıldı |
Her bypass, audit log’a kaydedilir. Security manager kim ne zaman bypass ettiğini görebilir.
Organization genelinde push protection
Push protection’ı tek tek repo yapılandırmak yerine organization düzeyinde toplu etkinleştir:
Org → Settings → Security → Code security and analysis
→ Push protection → Enable for all repositories
Enterprise policy olarak zorlamak için:
Enterprise → Policies → Code security → Require push protection
Bu ayar org owner’ların devre dışı bırakmasını engeller.
API üzerinden bypass izleme
Security manager, REST API ile bypass loglarını sorgulayabilir:
# Organization genelinde push protection bypass'larını listele
gh api /orgs/{org}/secret-scanning/push-protection-bypasses
Bu log, hangi geliştirici, hangi repo, hangi secret tipi, hangi sebepte bypass ettiğini gösterir.
Sınavda push protection soruları için ipuçları
- Push protection, secret scanning’den ayrı bir özellik — ikisi birlikte çalışır ama bağımsız açılır/kapanır
- Push protection, pre-receive hook olarak çalışır — commit repoya ulaşmaz
- Bypass her zaman audit log’a kaydedilir
- Bypass iznini kısıtlamak için “allowed actors” yapılandırması gerekir
Sırada ne var?
Bir sonraki derste kendi regex tabanlı secret pattern’larını nasıl yazacağını öğreneceksin — custom patterns ile GHAS’ı organizasyon özelinde genişletmek.