DevSecOps: Güvenliği İşlem Hatlarına Sola Kaydırma
Her gönderimde güvenlik kapılarının otomatik olarak uygulanması için SAST, DAST, kapsayıcı taraması ve IaC güvenlik denetimlerini CI/CD işlem hatlarına yerleştirin.
DevSecOps: Güvenliği İşlem Hatlarına Sola Kaydırma, CoddyKit'te ücretsiz bir Cloud & IT Cert Prep dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cloud & IT Cert Prep öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.
Güvenliği Sola Kaydırmak Nedir?
Güvenliği sola kaydırmak, güvenlik etkinliklerini dağıtımdan önceki son kapıda test etmek yerine yazılım geliştirme yaşam döngüsünün daha erken aşamalarına (geliştiricinin IDE'sine, kod incelemesine ve CI/CD işlem hattına) entegre etmek anlamına gelir. Geleneksel güvenlik incelemeleri geliştirme döngüsünün sonunda yapılırdı; bu da düzeltmeleri pahalı ve zaman alıcı hâle getirirdi. Bir güvenlik açığını geliştirme sırasında bulup düzeltmenin maliyeti, üretimde bir ihlal sonrasında keşfetmeye kıyasla yaklaşık 100 kat daha düşüktür.
DevSecOps Nedir?
DevSecOps, tüm SDLC boyunca geliştirme, operasyon ve güvenlik ekipleri arasındaki ortak sorumluluk olarak güvenliği bütünleştirerek DevOps modelini genişletir. Amaç, teslimatı yavaşlatmadan her aşamada çalışacak şekilde güvenlik testlerini otomatikleştirmektir. Böylece güvenlik, tek seferlik bir kontrol noktası olmaktan çıkar ve işlem hattının sürekli bir özelliği hâline gelir. Olgun DevSecOps programlarında geliştiriciler, manuel bir incelemeden haftalar sonra değil, kod yazdıktan saniyeler içinde güvenlik geri bildirimi alır.
SAST: Statik Uygulama Güvenlik Testi
SAST (Statik Uygulama Güvenlik Testi), uygulamayı çalıştırmadan kaynak kodunu, bayt kodunu veya ikili kodu analiz eder. SAST araçları güvenlik açıklarına işaret eden örüntüleri tarar: SQL birleştirme işlemleri, temizlenmemiş çıktı, yasaklanmış işlevlerin kullanımı, koda sabitlenmiş kimlik bilgileri ve güvenli olmayan şifreleme kullanımı. SAST, her gönderimde sürekli tümleştirme işlem hattında çalışarak sorunları QA veya üretim ortamına ulaşmadan yakalar. Yaygın araçlar arasında Semgrep, SonarQube, Checkmarx ve Veracode bulunur.
# Semgrep SAST rule example:
# Detect raw SQL string concatenation (SQL injection risk):
# rules:
# - id: sql-injection-string-concat
# pattern: |
# $QUERY = '...' + $USER_INPUT
# $DB.execute($QUERY)
# message: 'SQL injection risk: use parameterized queries'
# severity: ERROR
# languages: [python]
# Running Semgrep in CI:
# semgrep --config auto --error src/
# -> Fails build if ERROR severity findings foundDAST: Dinamik Uygulama Güvenlik Testi
DAST (Dinamik Uygulama Güvenlik Testi), kötü amaçlı yükler gönderip yanıtları gözlemleyerek çalışan bir uygulamayı test eder ve gerçek bir saldırganın davranışını taklit eder. SAST'tan farklı olarak DAST, yalnızca çalışma zamanında ortaya çıkan güvenlik açıklarını bulur: kimlik doğrulama kusurları, oturum yönetimi sorunları, iş mantığı hataları ve karmaşık veri akışlarındaki enjeksiyon güvenlik açıkları. Yaygın DAST araçları arasında OWASP ZAP (ücretsiz), Burp Suite Enterprise ve Acunetix bulunur. DAST, işlem hattında hazırlık ortamına karşı çalıştırılır.
# OWASP ZAP automated DAST in CI pipeline:
# docker run -t owasp/zap2docker-stable zap-baseline.py \
# -t https://staging.myapp.com \
# -r zap-report.html \
# -I (do not fail on alerts, report only)
# For blocking builds on high findings:
# zap-full-scan.py -t https://staging.myapp.com \
# -l HIGH (fail if HIGH or CRITICAL alerts found)
# ZAP tests for:
# SQL injection, XSS, CSRF, insecure headers,
# path traversal, broken authentication, open redirectsKapsayıcı İmajı Taraması
Kapsayıcı imajları, işletim sistemi paketleri, dil çalışma zamanları ve uygulama bağımlılıkları içeren temel imajlardan oluşturulur; bunların tümü bilinen güvenlik açıklarının olası kaynaklarıdır. Kapsayıcı imajı taraması araçları imaj katmanlarını analiz eder ve güvenlik açığı içeren paketleri belirler. Trivy (ücretsiz ve hızlı), Grype (Anchore) ve Clair yaygın olarak kullanılır. Taramalar imaj oluşturma işlem hattının bir parçası olarak çalışır ve kritik CVE'ler içeren imajların üretim kayıtlarına aktarılmasını engeller.
# Trivy container scan in CI pipeline:
# trivy image --severity HIGH,CRITICAL \
# --exit-code 1 \
# myapp:latest
# Output example:
# library/python:3.9-slim (debian 11.6)
# ===================================
# CVE-2023-1234 CRITICAL openssl 1.1.1n-0+deb11u3 -> 1.1.1t
# CVE-2023-5678 HIGH libssl 1.1.1n -> 1.1.1t
# --exit-code 1 causes pipeline to fail
# on any HIGH or CRITICAL finding -> blocks push to registryKod Olarak Altyapı (IaC) Güvenlik Taraması
IaC güvenlik taraması, uygulanmadan önce Terraform, CloudFormation, Kubernetes bildirimlerini ve Helm grafiklerini güvenlik açısından hatalı yapılandırmalar için analiz eder. Checkov ve tfsec gibi araçlar şu ihlalleri denetler: sunucu tarafı şifrelemesi olmayan S3 paketleri, gelen tüm trafiğe izin veren güvenlik grupları, joker karakter izinlerine sahip IAM rolleri ve kök kullanıcı olarak çalışan Kubernetes pod'ları. IaC taraması, bulut yapılandırma hatalarının herhangi bir ortama ulaşmasını önler.
# Checkov IaC scan example:
# checkov -d ./terraform/ --compact
# Findings example:
# FAILED: CKV_AWS_20: S3 Bucket has an ACL defined which allows public access
# File: /terraform/s3.tf, Line: 15
# FAILED: CKV_AWS_57: S3 Bucket has server access logging disabled
# File: /terraform/s3.tf, Line: 15
# FAILED: CKV_AWS_24: Ensure no security groups allow all ingress traffic
# File: /terraform/sg.tf, Line: 8
# Passed checks: 47, Failed: 3, Skipped: 0İşlem Hatlarında Gizli Bilgi Taraması
Gizli bilgi taraması araçları, yanlışlıkla eklenmiş kimlik bilgilerini bulmak için kaynak kodunu ve gönderimleri denetler. truffleHog, GitLeaks ve detect-secrets gibi araçlar git geçmişini ve yeni gönderimleri API anahtarları, bağlantı dizeleri, özel anahtarlar ve JWT belirteçleriyle eşleşen örüntüler için tarar. Ön gönderim kancası olarak gizli bilgi taraması, kimlik bilgileri içeren gönderimleri engeller. Sürekli tümleştirme kapısı olarak her gönderimde depodaki tüm dosyaları tarar ve gizli bilgiler algılanırsa derlemeyi başarısız kılar.
# GitLeaks pre-commit hook configuration:
# .gitleaks.toml:
# [allowlist]
# description = 'Known false positives'
# paths = ['test/fixtures/fake_key.txt']
# Install as pre-commit hook:
# gitleaks protect --staged
# (scans staged files before commit is created)
# In CI pipeline:
# gitleaks detect --source=. --report-format=json \
# --report-path=gitleaks-report.json
# exit code 1 = secrets found -> blocks pipelineSDLC'de Tehdit Modelleme
Tehdit modelleme, kod yazılmadan önce güvenlik gereksinimlerini ve tasarım kusurlarını belirlemeye yönelik yapılandırılmış bir süreçtir. STRIDE modeli (Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege), ekiplerin bir sistemin veri akış şemasına yönelik tehditleri sistematik olarak sıralamasına yardımcı olur. Tehdit modelleme oturumları tasarım sırasında gerçekleştirilir; bunun sonucunda güvenlik gereksinimlerini yönlendiren ve SAST/DAST kural seçimine bilgi sağlayan önceliklendirilmiş bir tehdit listesi oluşturulur.
# STRIDE threat categories applied to a web login API:
# S - Spoofing: Attacker impersonates valid user
# Control: Strong authentication, MFA
# T - Tampering: Attacker modifies login request
# Control: TLS, HMAC, input validation
# R - Repudiation: User denies actions taken
# Control: Audit logging with tamper-evident storage
# I - Info Disclosure: Password exposed in logs
# Control: Never log sensitive fields
# D - Denial of Service: Flood login endpoint
# Control: Rate limiting, CAPTCHA
# E - Elevation of Privilege: Bypass authorization
# Control: Server-side authorization checksGüvenlik Kapıları: Engelleyici ve Bilgilendirici
DevSecOps işlem hatları, güvenlik denetimlerini ya engelleyici kapılar (derlemeyi başarısız kılar, dağıtımı önler) ya da bilgilendirici denetimler (bulguları raporlar, dağıtımın devam etmesine izin verir) olarak uygular. SAST, kapsayıcı taraması ve gizli bilgi algılamasından elde edilen kritik ve yüksek önem dereceli bulgular genellikle engellenir. Orta ve düşük önem dereceli bulgular, engelleme olmadan bildirim veya kayıt oluşturur. Bu denge, gerçek anlamda tehlikeli koşulların otomatik olarak üretim ortamına ulaşmasını önlerken güvenliğin tüm teslimat sürecini durdurmasını engeller.
DevSecOps'ta Güvenlik Ölçümleri
DevSecOps programları açık ölçütlerle değerlendirilmelidir. Temel ölçütler şunlardır: yüksek önem dereceli bulgular için Ortalama Düzeltme Süresi (MTTR), güvenlik açığı yoğunluğu (zaman içinde her 1.000 kod satırındaki bulgu sayısı), kaçış oranı (üretim sonrasında bulunan güvenlik açıklarının üretim öncesinde bulunanlara oranı) ve işlem hattı güvenlik kapısı geçiş oranı. Bu ölçütlerin zaman içindeki eğilimini izlemek, programın etkililiğini gösterir ve ek araçlara veya eğitime yapılacak yatırımlarla ilgili kararları yönlendirir.
Kültür: Ortak Sorumluluk Olarak Güvenlik
DevSecOps'un en zor kısmı teknik değil, kültüreldir. Güvenlik yalnızca güvenlik ekibinin değil, her geliştiricinin sorumluluğu hâline gelmelidir. Bunun için şunlar gerekir: geliştirici güvenlik eğitimi (güvenli kodlama farkındalığı), geliştirme ekipleri içinde yer alan güvenlik öncüleri, güvenlik açıkları üretim ortamına ulaştığında gerçekleştirilen suçlayıcı olmayan olay sonrası değerlendirmeler (cezalandırmaya değil, süreç iyileştirmesine odaklanma) ve gerçek bir güvenlik riski gerektirdiğinde hızdan ödün verilmesine izin veren yönetici desteği. Kültür değişikliği olmadan kullanılan teknoloji, geliştiricilerin görmezden gelmeyi öğrendiği tarama araçları üretir.
Hızlı Kontrol
Bu dersteki CompTIA Security+ (SY0-701) kavramlarını anlayıp anlamadığınızı test edin.
Ders Özeti
Bu derste şunları öğrendiniz: DevSecOps, SAST, DAST, gizli bilgi taramasını, kapsayıcı taramasını ve IaC taramasını otomatik işlem hattı kapıları olarak bütünleştirir; yüksek önem dereceli bulguların engellenmesi, tehlikeli koşulların üretim ortamına ulaşmasını önler ve güvenliği sürecin önceki aşamalarına taşımak, düzeltme maliyetlerini büyük ölçüde azaltır çünkü güvenlik açıkları dağıtımdan sonra değil, geliştirme sırasında yakalanır. Sıradaki derste tesisler ve veri merkezleri için fiziksel güvenlik denetimlerini inceleyeceğiz.
Sıkça Sorulan Sorular
“DevSecOps: Güvenliği İşlem Hatlarına Sola Kaydırma” dersi ücretsiz mi?
Evet — “DevSecOps: Güvenliği İşlem Hatlarına Sola Kaydırma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cloud & IT Cert Prep kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.
“DevSecOps: Güvenliği İşlem Hatlarına Sola Kaydırma” dersinde ne öğreneceğim?
Her gönderimde güvenlik kapılarının otomatik olarak uygulanması için SAST, DAST, kapsayıcı taraması ve IaC güvenlik denetimlerini CI/CD işlem hatlarına yerleştirin. Cloud & IT Cert Prep ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Cloud & IT Cert Prep öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Cloud & IT Cert Prep, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“DevSecOps: Güvenliği İşlem Hatlarına Sola Kaydırma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Cloud & IT Cert Prep dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Cloud & IT Cert Prep dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Girdi Doğrulama ve Çıktı Kodlama
- Güvenli Gizli Bilgi Yönetimi ve Ortam Değişkenleri
- Bağımlılık Güvenliği ve Yazılım Bileşimi Analizi
- DevSecOps: Güvenliği İşlem Hatlarına Sola Kaydırma