Konuyu Okuyanlar: 1 Ziyaretçi

Gitleaks ile Kod Depolarında Sızan Sır Avı: CI'ya Entegre Pratik Rehber

Gitleaks ile Kod Depolarında Sızan Sır Avı: CI'ya Entegre Pratik Rehber
[Resim: attachment.php?aid=435]

Selamlar,

Kaynak kod depolarına yanlışlıkla işlenmiş API anahtarları, parolalar ve token'lar en yaygın sızıntı nedenlerinden biri. Bu rehberde, açık kaynak sır tarama aracı Gitleaks ile depolarınızı nasıl tarayacağınızı, pre-commit ile sızıntıyı kaynakta nasıl durduracağınızı ve CI'ya nasıl entegre edeceğinizi adım adım anlatıyorum. (Yalnızca kendi veya yetkili olduğunuz depolarda kullanın.)

Konuda anlatılacaklar
  1. Gitleaks nedir?
  2. Kurulum
  3. Depo tarama
  4. Git geçmişini tarama
  5. pre-commit hook
  6. CI entegrasyonu ve ipuçları

1. Gitleaks nedir?
Gitleaks, Go ile yazılmış, dosyalarda ve git geçmişinde parola, anahtar ve token gibi sabit kodlanmış sırları tespit eden bir araç. Düzenli ifade (regex) ve entropi tabanlı kurallarla çalışır; kendi kurallarınızı .gitleaks.toml ile ekleyebilirsiniz.

2. Kurulum
Kod:
# Go ile go install github.com/gitleaks/gitleaks/v8@latest # macOS (Homebrew) brew install gitleaks # Docker docker pull zricethezav/gitleaks:latest

3. Depo tarama
Çalışma dizinindeki dosyaları (git geçmişi olmadan) taramak:
Kod:
gitleaks dir . --report-path gitleaks-report.json -v
Bir bulgu örneği şu alanları içerir: kural adı, dosya, satır, commit ve gizli değerin kısmen maskelenmiş hali.

4. Git geçmişini tarama
Sırlar genelde eski commit'lerde saklıdır. Tüm geçmişi taramak:
Kod:
gitleaks git . -v --report-path history-report.json
Belirli bir aralık:
Kod:
gitleaks git . --log-opts="--since=2026-01-01" -v

5. pre-commit hook
Sızmayı kaynakta durdurmanın en iyi yolu, commit öncesi taramak. .pre-commit-config.yaml:
Kod:
repos: - repo: https://github.com/gitleaks/gitleaks rev: v8.0.0 hooks: - id: gitleaks
Ardından:
Kod:
pre-commit install

6. CI entegrasyonu
GitHub Actions örneği:
Kod:
name: gitleaks on: [push, pull_request] jobs: scan: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: gitleaks/gitleaks-action@v2
Önemli ipucu: fetch-depth: 0 verin ki tüm geçmiş çekilsin; aksi halde eski commit'lerdeki sırlar kaçar.

İpuçları
  • Yanlış pozitifleri yönetin..gitleaksignore dosyasına bulgu parmak izini ekleyerek bilinen güvenli bulguları susturabilirsiniz.
  • Sır bulunduysa sadece silmek yetmez. Sızan her anahtarı/token'ı iptal edip yeniden üretin; geçmişte kaldığı için hâlen geçerlidir.
  • Kendi kurallarınızı ekleyin. Kuruma özgü token formatları için .gitleaks.toml kullanın.

Sonuç
Gitleaks, sır sızıntısını hem geçmişte avlamak hem de gelecekte önlemek için hafif ve etkili bir araç. En büyük kazanım, pre-commit + CI ile sızıntıyı daha repoya girmeden durdurmak. Siz depolarınızda sır taraması yapıyor musunuz?

Yasal uyarı
Bu yazı bilgilendirme ve savunma amaçlıdır. Anlatılan kontrolleri yalnızca kendi sistemlerinizde veya yazılı izinle yapın. İzinsiz erişim, tarama ve sömürü girişimleri TCK 243-245 kapsamında suçtur. TurkTeam white-hat bir topluluktur; çalıntı veri, hesap, combo/log paylaşımı ve hack hizmeti talepleri forum kurallarına aykırıdır.

Kaynaklar


Ek DosyalarEkran Görüntüleri
   
Cevapla



Hızlı Menü: