Modül 2 · Secret Scanning · ⏱ 12 dakika

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:

  1. Secret’ı kaldır ve yeniden push et (önerilen)
  2. Bypass et — nedeni belirt (audit log’a kaydedilir)
  3. Push’u iptal et

Bypass kategorileri

Bypass edilirken geliştirici bir sebep belirtmek zorundadır:

SebepKullanım senaryosu
false_positiveEşleşme gerçek secret değil
used_in_testsTest 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.