Modül 2 · Secret Scanning · ⏱ 12 dakika

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:

KatmanAçıklamaAlert bildirimi
Partner patterns100+ sağlayıcı (AWS, Azure, Stripe vb.) — GitHub otomatik tanırGitHub + partner notified
Non-partner patternsGitHub tarafından tanınır, partner bilgilendirilmezSadece GitHub
Custom patternsOrganizasyon/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.