2026'da DevOps Pipeline Güvenliği: SAST, DAST, Supply Chain ve Mülakat Soruları

2026 yılında CI/CD pipeline güvenliğini sağlama konusunda kapsamlı rehber. SAST, DAST, SCA, SBOM, SLSA provenance ve pratik DevSecOps mülakat sorularını içerir.

DevOps Pipeline Güvenliği - SAST, DAST ve Supply Chain Security

DevOps pipeline güvenliği, pre-commit hook'larından üretim izlemesine kadar CI/CD iş akışının her aşamasında güvenlik kontrollerinin yerleştirilmesini gerektirir. Datadog State of DevSecOps 2026 raporu, organizasyonların %87'sinin en az bir bilinen istismar edilebilir güvenlik açığı içeren servisler çalıştırdığını ortaya koyarken, yazılım tedarik zinciri saldırıları küresel ekonomiye yılda 80 milyar doların üzerinde maliyet getirmektedir.

Güvenlik Araçları Öncelik Sırası

Sır tespiti ile başlanmalıdır (en yüksek etki, en düşük yanlış pozitif oranı), ardından bilinen CVE'ler için SCA, ayarlanmış SAST, IaC taraması ve son olarak DAST eklenmelidir. Her araç, bir sonrakini eklemeden önce değerini kanıtlamalıdır.

SAST: Merge Öncesi Güvenlik Açıklarını Yakalayan Statik Analiz

Static Application Security Testing (SAST), kaynak kodu çalıştırmadan analiz eder. Araç, kod tabanını ayrıştırır, soyut sözdizimi ağacı oluşturur ve bilinen güvenlik açığı imzalarına karşı kalıp eşleştirmesi yapar. Her pull request'te SAST çalıştırmak, SQL injection, XSS ve sabit kodlanmış kimlik bilgilerini kod ana dal'a ulaşmadan önce yakalar.

Semgrep, 2026'da fiili açık kaynak SAST standardı haline gelmiştir. Regex tabanlı tarayıcıların aksine, Semgrep kod yapısını anlar ve YAML'de özel kuralları destekler.

yaml
# .github/workflows/sast.yml
name: SAST Scan

on:
  pull_request:
    branches: [main, develop]

jobs:
  semgrep:
    runs-on: ubuntu-latest
    container:
      image: semgrep/semgrep:latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Run Semgrep
        run: semgrep scan --config=auto --sarif --output=semgrep.sarif
        
      - name: Upload SARIF
        uses: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: semgrep.sarif

--config=auto bayrağı, algılanan dillere uygun topluluk kurallarını yükler. SARIF çıktısı, bulguların zaman içinde takibi için GitHub Security sekmesiyle entegre olur.

DAST: Statik Analizin Kaçırdıklarını Bulan Runtime Testleri

Dynamic Application Security Testing (DAST), yalnızca çalışma zamanında ortaya çıkan güvenlik açıklarını bulmak için çalışan bir uygulamaya saldırır. Bozuk kimlik doğrulama, yetkilendirme hataları ve iş mantığı açıkları tespit için gerçek HTTP istekleri gerektirir. SAST, bir admin endpoint'inin uygun erişim kontrolüne sahip olmadığını bulamaz, ancak DAST kimlik bilgileri olmadan erişmeye çalışır ve açığı işaretler.

OWASP ZAP, en yaygın dağıtılan açık kaynak DAST aracı olmaya devam etmektedir. 2026 başında yayınlanan ZAP 3.0, GraphQL ve gRPC taraması için yerel destek eklemiştir.

yaml
# .github/workflows/dast.yml
name: DAST Scan

on:
  deployment:
    types: [created]

jobs:
  zap-scan:
    runs-on: ubuntu-latest
    steps:
      - name: ZAP Full Scan
        uses: zaproxy/action-full-scan@v0.12.0
        with:
          target: ${{ secrets.STAGING_URL }}
          rules_file_name: '.zap/rules.tsv'
          cmd_options: '-a -j -l WARN -z "-config api.disablekey=true"'
          
      - name: Upload Report
        uses: actions/upload-artifact@v4
        with:
          name: zap-report
          path: report_html.html

DAST, canlı bir hedefe ihtiyaç duyduğu için dağıtım sonrası çalışır. Staging ortamı test yüzeyi olarak hizmet eder ve üretimi tarama trafiğinden izole tutar.

Üretimde DAST

Üretim ortamına karşı aktif DAST taramaları çalıştırmak, hız limitlerini tetikleme, veri bozma veya güvenlik izlemesini uyarma riski taşır. Üretim yapılandırmasını yansıtan bir staging ortamı kullanılmalıdır.

SCA: Bilinen Güvenlik Açıkları için Bağımlılık Taraması

Software Composition Analysis (SCA), bağımlılıkları National Vulnerability Database ve GitHub Advisory Database gibi güvenlik açığı veritabanlarına karşı tarar. Tek bir savunmasız geçişli bağımlılık tüm uygulamayı açığa çıkarabilir. 2026 Datadog raporu, servislerin %42'sinin artık aktif olarak bakımı yapılmayan kütüphanelere bağımlı olduğunu ortaya koymuştur.

Trivy, tek bir binary dosyasında konteyner, dosya sistemi ve git repository güvenlik açıklarını tarar. CycloneDX ve SPDX formatlarında SBOM çıktısı üretir.

yaml
# .github/workflows/sca.yml
name: Dependency Scan

on:
  push:
    branches: [main]
  schedule:
    - cron: '0 6 * * *'  # Her gün saat 6:00'da

jobs:
  trivy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Run Trivy vulnerability scanner
        uses: aquasecurity/trivy-action@0.28.0
        with:
          scan-type: 'fs'
          scan-ref: '.'
          format: 'sarif'
          output: 'trivy-results.sarif'
          severity: 'CRITICAL,HIGH'
          
      - name: Upload Trivy scan results
        uses: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: 'trivy-results.sarif'

Zamanlanmış günlük tarama, kod değişikliği olmasa bile yeni açıklanan CVE'leri yakalar. CRITICAL ve HIGH önem derecesine filtreleme, düşük riskli bulgulardan kaynaklanan alarm yorgunluğunu önler.

DevOps mülakatlarında başarılı olmaya hazır mısın?

İnteraktif simülatörler, flashcards ve teknik testlerle pratik yap.

Tedarik Zinciri Güvenliği: SBOM ve SLSA Provenance

Raporlama yükümlülükleri Eylül 2026'da yürürlüğe giren EU Cyber Resilience Act, AB'de satılan ürünler için Software Bill of Materials (SBOM) üretimini zorunlu kılmaktadır. SBOM, doğrudan bağımlılıklar, geçişli bağımlılıklar ve sürümleri dahil olmak üzere yazılımdaki her bileşeni listeler.

SLSA (Supply-chain Levels for Software Artifacts), yazılımın nasıl oluşturulduğunu doğrulayarak SBOM'u tamamlar. SBOM "bu yazılımda hangi bileşenler var?" sorusunu yanıtlarken, SLSA "yapı sürecine güvenilebilir mi?" sorusunu yanıtlar.

yaml
# .github/workflows/supply-chain.yml
name: Supply Chain Security

on:
  push:
    tags:
      - 'v*'

jobs:
  build-with-provenance:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      id-token: write
      attestations: write
    steps:
      - uses: actions/checkout@v4
      
      - name: Build container image
        run: docker build -t myapp:${{ github.ref_name }} .
        
      - name: Generate SBOM
        uses: anchore/sbom-action@v0.17.0
        with:
          image: myapp:${{ github.ref_name }}
          format: cyclonedx-json
          output-file: sbom.json
          
      - name: Sign with Cosign
        uses: sigstore/cosign-installer@v3.7.0
        
      - name: Sign image and attach SBOM
        run: |
          cosign sign --yes myapp:${{ github.ref_name }}
          cosign attach sbom --sbom sbom.json myapp:${{ github.ref_name }}
          cosign sign --yes --attachment sbom myapp:${{ github.ref_name }}

Sigstore'un Cosign'ı, Fulcio sertifika otoritesi tarafından desteklenen anahtarsız imzalama kullanarak yapı taşlarını imzalar. İmza, yapı taşını onu üreten CI iş akışına bağlar ve görüntünün güvenilir bir pipeline'dan geldiğinin doğrulanmasını sağlar.

Sır Tespiti: İlk Savunma Hattı

Sabit kodlanmış sırlar, kod tabanlarında en yaygın güvenlik bulgusu olmaya devam etmektedir. Sürüm kontrolüne commit edilen AWS erişim anahtarları, veritabanı parolaları ve API token'ları her ölçekte ihlallere neden olmuştur. Sır tespiti, kimlik bilgilerini repository'ye girmeden önce engellemek için pre-commit'te çalışır.

Gitleaks, regex kalıpları ve entropi analizi kullanarak sırları tespit eder. Pre-commit hook, sırların commit edilmesini önler.

yaml
# .pre-commit-config.yaml
repos:
  - repo: https://github.com/gitleaks/gitleaks
    rev: v8.21.2
    hooks:
      - id: gitleaks
        args: ['--verbose']
yaml
# .github/workflows/secrets.yml
name: Secrets Detection

on:
  pull_request:

jobs:
  gitleaks:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
          
      - name: Gitleaks scan
        uses: gitleaks/gitleaks-action@v2
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

fetch-depth: 0 seçeneği tam geçmişi klonlar ve Gitleaks'in yalnızca en son değil, PR'daki tüm commit'leri taramasına olanak tanır.

DevSecOps Mülakat Soruları: İşe Alım Uzmanları Ne Soruyor

DevSecOps mülakatları hem güvenlik bilgisini hem de pratik CI/CD deneyimini değerlendirir. Aşağıdaki sorular, 2026'da senior DevOps ve platform mühendisliği pozisyonları için yapılan mülakatlarında sıkça karşımıza çıkmaktadır. Daha fazla pipeline güvenliği sorusu CI/CD Pipeline Security interview modülünde bulunabilir.

"Mevcut bir pipeline'a shift-left güvenliği nasıl uygulanır?"

Shift-left güvenliği, testi geliştirme döngüsünün daha erken aşamalarına taşır. Pratik uygulama, sır tespiti için pre-commit hook'ları, pull request'lerde SAST taramaları ve build aşamasında SCA kontrolleri eklemeyi içerir. Anahtar, artımlı benimsemedir: en düşük yanlış pozitif oranına ve en yüksek sinyale sahip olduğu için sır tespiti ile başlanmalı, ardından bilinen CVE'ler için SCA eklenmeli, sonra engelleyici bir kontrol olarak etkinleştirmeden önce gürültüyü azaltmak için SAST kuralları ayarlanmalıdır.

"SAST ve DAST arasındaki farkı açıklayın. Her birini ne zaman kullanırsınız?"

SAST, kaynak kodu çalıştırmadan analiz eder. Kod yapısına karşı kalıp eşleştirmesi yaparak SQL injection, XSS ve güvensiz kriptografiyi bulur. SAST erken çalışır, her PR'da, çünkü yalnızca koda ihtiyaç duyar.

DAST, çalışan bir uygulamaya saldırır. Yalnızca çalışma zamanında ortaya çıkan kimlik doğrulama atlamalarını, bozuk erişim kontrolünü ve injection güvenlik açıklarını bulur. DAST, staging ortamına karşı dağıtım sonrası çalışır.

İkisi birbirini tamamlar. SAST, merge öncesi kodlama hatalarını yakalar; DAST, dağıtılan uygulamanın güvenli davrandığını doğrular. Olgun bir pipeline her ikisini de çalıştırır.

"SBOM nedir ve neden gereklidir?"

Software Bill of Materials, tam sürümlerle birlikte doğrudan ve geçişli bağımlılıklar dahil olmak üzere yazılımdaki her bileşeni listeler. EU Cyber Resilience Act gibi düzenleyici gereksinimler, Eylül 2026'dan itibaren AB pazarına giren ürünler için SBOM üretimini zorunlu kılmaktadır.

Pratik olarak SBOM, hızlı olay müdahalesini mümkün kılar. Yeni bir CVE yayınlandığında, güvenlik ekibi tüm repository'leri manuel olarak taramak yerine SBOM veritabanını sorgulayarak savunmasız bileşeni çalıştıran her servisi tespit edebilir.

"Güvenlik araçlarında alarm yorgunluğu nasıl önlenir?"

Alarm yorgunluğu, sinyal-gürültü oranı çok düşük olduğu için geliştiricilerin güvenlik bulgularını görmezden gelmesiyle oluşur. Önleme, engelleyici kapıları etkinleştirmeden önce her aracın ayarlanmasını gerektirir. SAST için, kod tabanında yanlış pozitif üreten kurallar devre dışı bırakılmalı ve temizlikten sonra kademeli olarak etkinleştirilmelidir. SCA için, bilinen exploit'lere sahip CRITICAL ve HIGH önem dereceli bulgulara odaklanılmalıdır. DAST için, yanlış pozitifleri gelecekteki taramalardan hariç tutmak üzere temel taramalar yapılandırılmalıdır.

İzlenecek metrik, gerçek güvenlik açıkları için düzeltme süresidir. Bu sayı artıyorsa, geliştiriciler alarmları görmezden geliyordur.

Mülakat Hazırlığı

Bu sorular pratik deneyimi test eder. Belirli araçlar, yapılandırma kararları ve uygulama öncesi ve sonrası metrikler dahil olmak üzere gerçek pipeline'lardan örnekler hazırlanmalıdır.

Konteyner ve Runtime Güvenliği

Konteyner imaj taraması, dağıtım öncesi güvenlik açıklarını yakalar. Runtime güvenliği, üretimdeki konteynerleri anormal davranış açısından izler. Kombinasyon, hem bilinen güvenlik açıklarını (temel imajlardaki CVE'ler) hem de bilinmeyen tehditleri (ele geçirilmiş konteynerler, kripto madencileri) ele alır.

Trivy, imajları build pipeline'ının bir parçası olarak tarar. Falco, eBPF kullanarak runtime davranışını izler.

yaml
# .github/workflows/container-security.yml
name: Container Security

on:
  push:
    branches: [main]

jobs:
  scan-image:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Build image
        run: docker build -t myapp:${{ github.sha }} .
        
      - name: Scan image
        uses: aquasecurity/trivy-action@0.28.0
        with:
          image-ref: myapp:${{ github.sha }}
          format: 'table'
          exit-code: '1'
          severity: 'CRITICAL'
          ignore-unfixed: true

ignore-unfixed: true bayrağı, mevcut yaması olmayan güvenlik açıklarını atlar. Bu, şu anda giderilemeyen CVE'ler için dağıtımların engellenmesini önler.

Runtime güvenliği için Falco kuralları, çalışan konteynerlerdeki şüpheli aktiviteyi tespit eder. Container supply chain security modülü, imaj imzalama ve kabul kontrolünü derinlemesine ele almaktadır.

IaC Güvenliği: Terraform ve Kubernetes Manifest Taraması

Infrastructure as Code, yapılandırma katmanında güvenlik riskleri ortaya çıkarır. Aşırı izin veren IAM politikaları, herkese açık S3 bucket'ları ve şifrelenmemiş veritabanları, IaC şablonlarındaki güvensiz varsayılan ayarlardan kaynaklanır.

Checkov, Terraform, CloudFormation, Kubernetes, Helm ve Dockerfile'ları yanlış yapılandırmalar açısından tarar.

yaml
# .github/workflows/iac-scan.yml
name: IaC Security Scan

on:
  pull_request:
    paths:
      - 'terraform/**'
      - 'k8s/**'
      - 'helm/**'

jobs:
  checkov:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Run Checkov
        uses: bridgecrewio/checkov-action@v12
        with:
          directory: .
          framework: terraform,kubernetes,helm
          output_format: sarif
          output_file_path: checkov.sarif
          soft_fail: false
          
      - name: Upload SARIF
        uses: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: checkov.sarif

Yol filtresi, IaC taramalarının yalnızca altyapı dosyaları değiştiğinde çalışmasını sağlar ve yalnızca uygulama değişiklikleri için CI süresini azaltır.

Pratik yapmaya başla!

Mülakat simülatörleri ve teknik testlerle bilgini test et.

2026 için Tam DevSecOps Pipeline

2026'da üretime hazır bir DevSecOps pipeline'ı, bu araçları her aşamada entegre eder:

  • Pre-commit: Gitleaks (sırlar), opsiyonel yerel SAST
  • Pull request: Semgrep (SAST), Trivy (SCA), Checkov (IaC)
  • Build: Konteyner imaj taraması, SBOM üretimi
  • Pre-deploy: Cosign ile imaj imzalama, Kyverno ile kabul kontrolü
  • Post-deploy: Staging'e karşı ZAP ile DAST
  • Runtime: Konteyner izleme için Falco, bulut güvenlik duruş yönetimi

Ücretsiz araç seti (Semgrep, Trivy, ZAP, Gitleaks, Checkov, Falco) her kategoriyi kapsar. Ticari araçlar merkezi panolar, politika yönetimi ve azaltılmış ayarlama çabası ekler, ancak güvenlik kapsamı lisans maliyeti olmadan elde edilebilir.

DevSecOps rollerine hazırlanan organizasyonlar, bu pipeline'ları kişisel projelerde oluşturmayı pratik yapmalıdır. Cloud identity and secrets management modülü, denklemin sır yönetimi tarafını kapsamaktadır.

Günün meydan okuması

DevOps kodundaki hatayı bulabilir misin?

Gerçek bir kod parçası, gizli bir hata, günde bir deneme. Denemek için hesap gerekmez.

Anthony Fillion-Maillet

Yazan:

Anthony Fillion-Maillet

SharpSkill kurucusu

10 yılı aşkın süredir fullstack geliştirici. SharpSkill’i yönetiyor ve burada yayımlanan her şeyden sorumlu.

15 Eylül 2026 tarihinde güncellendi

Etiketler

#devops
#security
#cicd
#devsecops
#sast
#dast

Paylaş

İlgili makaleler