Vebende Akademi - gitsecops
Uzmanla Konuşun
Blog
MAKALE

GitSecOps — Güvenliği Git Merkezli Operasyonlara Taşımak

GitSecOps — Güvenliği Git Merkezli Operasyonlara Taşımak

GitSecOps, güvenlik (Security) ilkelerini Git ve CI/CD süreçleriyle entegre ederek yazılım yaşam döngüsünde sürekli, otomatik ve denetlenebilir güvenlik sağlamayı hedefleyen bir yaklaşımdır. Bu rehber GitSecOps felsefesi, pratik uygulamalar, araçlar ve üretime taşırken dikkat edilmesi gerekenleri özetler.

1. GitSecOps Nedir?

GitSecOps, güvenliği geliştirme süreçlerinin merkezine koyar. Kod, altyapı ve konfigürasyonun bulunduğu Git reposu aynı zamanda güvenlik kurallarının da kaynağıdır. Değişiklikler PR sürecinden geçerken statik analiz, bağımlılık taraması, IaC politikaları ve secrets kontrolleri ile otomatik olarak taranır; başarılı sonuçlar CI/CD ile hedef ortama uygulanır.

2. Neden GitSecOps?

  • Erken tespit: Güvenlik sorunları geliştirme aşamasında bulunur, production riski azalır.
  • Audit ve izlenebilirlik: Tüm güvenlik tetkikleri ve onaylar Git geçmişinde kayıtlıdır.
  • Otomasyon: Manuel müdahaleleri azaltır; tutarlılık ve hız sağlar.
  • Policy as Code: Güvenlik politikaları kod şeklinde yazılarak PR aşamasında enforce edilir.

3. GitSecOps Temel Bileşenleri

  • Source control (Git): Uygulama, IaC, manifest ve policy dosyalarının merkezi.
  • CI/CD: Build, test, güvenlik taramaları, image sign ve deploy pipeline'ları.
  • SCA (Software Composition Analysis): Bağımlılıkların zafiyet taraması (Snyk, Dependabot, WhiteSource).
  • SAST/DAST: Statik ve dinamik uygulama güvenlik testleri.
  • IaC scanning: Terraform/CloudFormation/ARM/Helm/Kustomize kontrolleri (Checkov, Terraform Validator).
  • Secrets 管理: Vault/SealedSecrets / GitHub Secrets; secrets'ların Git'te açık olmaması.
  • Policy engines: OPA/Gatekeeper, Kyverno ile runtime ve PR aşamasında politika uygulama.
  • Image security: Container image tarama, imaj imzalama ve provenance (Cosign, Notary).

4. GitSecOps İş Akışı (Örnek)

  1. Geliştirici yeni kod veya IaC değişikliği için branch açar.
  2. PR oluşturulur; CI pipeline çalışır: unit test -> lint -> SCA -> SAST -> IaC scan.
  3. Eğer taramalar temiz ise image build ve imaj taraması (Trivy/Snyk) çalışır; imaj imzalanır.
  4. PR onayı sonrası manifest/Helm/ kustomize güncellemesi merge olur; GitOps agent (ArgoCD/Flux) deploy eder.
  5. Runtime policy (OPA/Gatekeeper) ve monitoring ile posture sürekli denetlenir.

5. CI Pipeline'da Güvenlik Entegrasyonu

CI'da çalıştırılması gereken en az güvenlik kontrolleri:

  • Unit ve integration testler
  • Dependency vulnerability scan (SCA)
  • Static code analysis (SAST)
  • Infrastructure-as-Code scanning (Checkov, TFLint)
  • Container image scanning (Trivy)
  • Imaj imzalama ve provenance kaydı (Cosign)

6. Secrets Yönetimi ve En İyi Uygulamalar

  • Secrets'ı Git'te tutmayın. SealedSecrets veya Git-crypt gibi yöntemler bile risklidir; tercihen Vault gibi merkezi secret store kullanın.
  • Least privilege: CI/CD token'larına ve agent rollerine en az yetki verin.
  • Short-lived credentials: Dinamik, kısa ömürlü erişim token'ları kullanın.
  • Audit trail: Secrets erişimlerini loglayın ve düzenli inceleyin.

7. IaC Güvenliği

IaC hataları production üzerinde büyük etki yapar. Kontrol listesi:

  • Statik IaC taramaları CI'da zorunlu olsun (Checkov, tfsec, cfn-nag).
  • Policy as Code ile izin verilen kaynak tipleri, network ayarları ve etiket standartları denetlensin.
  • State dosyalarının (tfstate) güvenli depolanması ve erişim kontrolü sağlansın.
  • Provisioning sonrası konfigürasyon güvenliği otomatik doğrulansın.

8. Runtime Güvenlik ve Policy Enforcement

  • OPA/Gatekeeper veya Kyverno ile cluster seviyesinde policy enforcement sağlayın.
  • Runtime detection: Falco, audit logs, EDR entegrasyonları ile container anomalilerini yakalayın.
  • NetworkPolicy ve PodSecurityStandards ile sınırlandırma uygulayın.

9. Araçlar & Örnekler

  • Snyk / Dependabot: Bağımlılık zafiyet yönetimi.
  • Trivy: Container image ve dosya sistemi taraması.
  • Checkov / tfsec: IaC statik taramaları.
  • Cosign / Notary: Image imzalama ve provenance.
  • OPA / Gatekeeper / Kyverno: Policy as Code.
  • Vault / SealedSecrets / External Secrets: Secrets yönetimi çözümleri.
  • Falco: Runtime anomalileri tespit etme.

10. Hızlı Komut ve Pipeline Örneği

# örnek: GitHub Actions içinde basit adımlar
name: CI
on: [pull_request]
jobs:
  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Run SAST
        uses: github/codeql-action/init@v2
      - name: SCA (Snyk)
        uses: snyk/actions@master
      - name: IaC scan (Checkov)
        uses: bridgecrewio/checkov-action@v12
      - name: Container scan (Trivy)
        run: trivy fs --exit-code 1 .

11. Organizasyonel Değişim ve Kütüphaneler

GitSecOps teknik uygulamaların yanında kültürel değişim de gerektirir:

  • Güvenlik ekibini PR süreçlerine entegre edin — shift-left güvenliği.
  • Geliştiricileri güvenlik testleri ve araçları konusunda eğitin.
  • Policy ve sınırlar açıkça dokümante edilsin; ADR'larla kararlar kayıt altına alınsın.

12. Ölçümler ve Başarı Kriterleri

  • Mean time to remediate (MTTR) for vulnerabilities
  • Number of vulnerabilities detected pre-merge vs post-merge
  • Percentage of PRs that pass automated security gates
  • Time to deploy (lead time) with security gates in place

13. Kaynaklar

  • OWASP — güvenlik rehberleri
  • GitHub Security Lab — örnekler ve araçlar
  • Snyk, Trivy, Checkov dokümantasyonları
  • OPA / Gatekeeper örnek policy koleksiyonları