Secret scanning — temel akış
Secret scanning — core workflow
Bu derste neler öğreneceksin
- Secret scanning'in nasıl çalıştığını ve neyi taradığını anlamak
- Partner programı ile non-partner pattern farkını kavramak
- Alert durumlarını (open, resolved, dismissed) ve anlamlarını öğrenmek
- Repoda secret scanning'i etkinleştirme adımlarını bilmek
Secret scanning nedir?
Secret scanning, bir repoya push edilen commit’lerin, pull request’lerin ve branch’lerin içeriğini bilinen credential formatlarına karşı otomatik olarak tarar. Bir eşleşme bulunduğunda alert oluşturur ve (push protection açıksa) commit’i bloklar.
Tarama kapsamı
Secret scanning şunları tarar:
- Tüm branch’lerdeki commit içeriği
- Pull request değişiklikleri
- Issue ve discussion içerikleri (bazı partner’lar için)
- Wiki sayfaları (etkinleştirilmişse)
Taramaz:
- Git commit geçmişi dışındaki dosyalar (.gitignore’lanmış dosyalar zaten push edilmez)
- Binary dosyalar
- GHAS etkin olmayan repo’lar
Partner programı vs non-partner patterns
GitHub’ın secret scanning iki katmanda çalışır:
| Katman | Açıklama | Alert bildirimi |
|---|---|---|
| Partner patterns | 100+ sağlayıcı (AWS, Azure, Stripe vb.) — GitHub otomatik tanır | GitHub + partner notified |
| Non-partner patterns | GitHub tarafından tanınır, partner bilgilendirilmez | Sadece GitHub |
| Custom patterns | Organizasyon/repo yöneticisi tanımlar (regex) | Sadece GitHub |
Partner bildirimi önemli: AWS gibi partner’lar kendi token’larını otomatik revoke edebilir. Bu, alert’e ek olarak token’ın geçersiz kılındığı anlamına gelir.
Alert’ın ömrü
Secret push edildi
↓
Alert oluştu (Open)
↓
Güvenlik ekibi inceler
↓
┌────────────────────────────┐
│ Gerçek secret? │
│ → Revoke et │
│ → Fixed olarak kapat │
└────────────────────────────┘
┌────────────────────────────┐
│ False positive? │
│ → Dismiss (neden belirt) │
└────────────────────────────┘
Alert kapatma sebepleri (dismiss reasons):
- False positive — eşleşme gerçek secret değil
- Used in tests — test ortamında kasıtlı kullanılmış
- Won’t fix — gerçek ama giderilmeyecek (kabul edilmiş risk)
Etkinleştirme adımları
Repository seviyesi:
Repo → Settings → Security → Secret scanning → Enable
Organization seviyesi (toplu):
Org → Settings → Security → Code security and analysis
→ Secret scanning → Enable all / Enforce for new repos
Enterprise policy (zorunlu kılma):
Enterprise → Policies → Code security → Require secret scanning
Sınavda dikkat edilecek noktalar
- Secret scanning varsayılan olarak KAPALIdır (Enterprise dahil); aktif olarak açılması gerekir
- Partner programı sayesinde bazı secret tipleri otomatik revoke edilir
- Push protection ayrı bir özellik; secret scanning’i etkinleştirmek push protection’ı otomatik açmaz
Sırada ne var?
Bir sonraki derste push protection ve bypass mekanizmalarını ele alacağız.