Dependabot ve secret scanning temelleri
Dependabot and secret scanning basics
Bu derste neler öğreneceksin
- Dependabot alerts, updates ve version updates arasındaki farkı açıklamak
- Secret scanning'in ne aradığını ve nasıl etkinleştirileceğini bilmek
- Security advisories ve CVE'leri tanımak
- GitHub'ın temel güvenlik özelliklerini (ücretsiz vs. GHAS) ayırt etmek
GitHub, repo güvenliğini desteklemek için yerleşik araçlar sunar. GH-900 sınavı bu araçların temellerini sorar — derin GHAS (GitHub Advanced Security) değil, entry-level güvenlik.
Dependabot
Dependabot, bağımlılıklardaki güvenlik açıklarını tespit eden ve otomatik güncelleme PR’ları oluşturan araçtır.
Dependabot’un üç bileşeni
| Bileşen | Açıklama |
|---|---|
| Security alerts | Bilinen güvenlik açığı (CVE) olan bağımlılıkları bildirir |
| Security updates | Güvenlik açığını kapatmak için otomatik PR açar |
| Version updates | Bağımlılıkları en son sürüme güncelleyen PR açar |
Dependabot alerts etkinleştirmek
Public repo’larda otomatik aktif. Private repo için: Settings → Security → Dependabot alerts → Enable.
Uyarı gelince GitHub bildirim gönderir ve Security sekmesinde listelenir.
dependabot.yml
Version updates için .github/dependabot.yml konfigürasyon dosyası:
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
package-ecosystem desteklenen değerler: npm, pip, bundler, cargo, composer, docker, gradle, maven, nuget, github-actions ve daha fazlası.
Secret scanning
Secret scanning, repo’ya commit edilen API key, token, şifre gibi hassas bilgileri otomatik tespit eder.
Nasıl çalışır?
GitHub, 200’den fazla partner formatını (AWS key, Google API, Stripe token, GitHub PAT vb.) tanıyan pattern’ler kullanır. Eşleşince:
- Repo sahibine bildirim gider
- Token sağlayıcısına (AWS, Google vb.) otomatik bildirim gidebilir
- Sağlayıcı token’ı revoke edebilir
Push protection
Secret scanning push protection: Commit push edilmeden önce secret pattern eşleşmesi varsa push reddedilir. Bir güvenlik ağı görevi görür.
Etkinleştirmek: Settings → Security → Push protection → Enable.
Security advisories
Security advisory, bir repo’daki güvenlik açığına dair yapılandırılmış rapordur. CVE (Common Vulnerabilities and Exposures) ID talep edilebilir.
Oluşturmak: Security → Advisories → New draft security advisory.
Security tab genel bakış
Her repoda Security sekmesi şunları gösterir:
| Bölüm | İçerik |
|---|---|
| Security overview | Genel güvenlik durumu |
| Security advisories | Bildirilen açıklar |
| Security policy | SECURITY.md dosyası |
| Dependabot alerts | Bağımlılık açıkları |
| Code scanning alerts | CodeQL + üçüncü taraf |
| Secret scanning alerts | Tespit edilen secret’lar |
Ücretsiz vs. GHAS özellikleri
| Özellik | Free / Pro | GHAS (Enterprise) |
|---|---|---|
| Dependabot alerts | Evet | Evet |
| Dependabot security updates | Evet | Evet |
| Secret scanning (public) | Evet | Evet |
| Secret scanning (private) | Hayır | Evet |
| Push protection | Kısıtlı | Tam |
| Code scanning (CodeQL) | Yalnızca public | Tüm repo’lar |
| Advanced security dashboard | Hayır | Evet |
GH-900 sınavı derine inmez; temel özelliklerin farkında olmak yeterli.
Sınav perspektifinden dikkat noktaları
- Dependabot alerts = uyarı; security updates = otomatik PR
dependabot.ymlversion updates için gerekli; security alerts için yok- Secret scanning push protection push sırasında çalışır — commit sonrası değil
- SECURITY.md: güvenlik açığı bildirimi için iletişim bilgileri; Settings → Security policy’den de oluşturulabilir
- Code scanning (CodeQL) GH-900’ün değil GH-500’ün konusudur; temel farkındalık yeterli
Sırada ne var?
Sonraki derste organizasyon, enterprise ve Enterprise Managed User (EMU) yapılarını ele alacağız.