DevSecOps Nedir?
DevSecOps, "Development, Security, Operations" kelimelerinin birleşimidir. Temelde, güvenliği yazılım geliştirme ve operasyonlar arasında entegre etmek anlamına gelir.
Geleneksel model:
- Developers: Hızlı kod yazar
- Security: Daha sonra güvenlik kontrolü yapar
- Operations: Canlıya almış, sonrası problem
DevSecOps modeli:
- Security: Geliştirmenin ilk gününden beri
- Developers: Kodu yazarken güvenlik kontrolleri görmesi
- Operations: Açık bulunmadan canlıya almama
Neden DevSecOps Önemli?
Hız ve Güvenlik Arasındaki Çelişki
Yazılım şirketleri, hızlı geliştirme yapmak istiyor (Agile, Scrum). Ancak güvenlik, ek zaman gerektirir. DevSecOps, bu iki ihtiyacı birleştirmeyi hedefler.
Hedef: Güvenlik, geliştime sürecini yavaşlatmamalı. Ama güvenlik de ihmal edilmemeli.
Saldırıların Artması
2024'te, ortalama keşif süresi 200 gün idi. Eğer güvenlik otomatik olarak kontrol edilirse, bu süre 30 güne düşebilir.
Maliyet
- Geliştirme sırasında tespit: Düşük maliyet
- Test sırasında tespit: Orta maliyet
- Üretimde tespit: Çok yüksek maliyet
DevSecOps, zafiyetleri mümkün olan en erken aşamada bulur.
Shift-Left Stratejisi
"Shift-Left", güvenliği yazılım geliştirme döngüsünde sola doğru hareket ettirmek anlamına gelir.
Geleneksel modelinde, kod yazılır, test edilir ve sonra canlıya alındığında güvenlik kontrol edilir. Bu çok geç kalır çünkü kodun değiştirilmesi zor hale gelmiştir.
DevSecOps (Shift-Left) modelinde, güvenlik kontrol aşaması geliştirmenin başından itibaren başlar. Kod yazıldığı anda güvenlik taraması yapılır. Açıklar, mümkün olan en erken aşamada bulunursa, düzeltme çok daha kolay ve ucuz olur.
SAST: Statik Uygulama Güvenlik Testi
SAST, kaynak kodunu tarayarak zafiyetleri bulur. Kod çalışmadan, "statik" olarak analiz edilir.
SAST Nasıl Çalışır?
- Kaynak kod parse edilir (syntax ağacına çevrilir)
- Veri akışı analiz edilir (verinin nereden nereye gittiği)
- Bilinen güvenlik pattern'leri (kötü kullanımlar) aranır
- Zafiyetler raporlanır
SAST Araçları
| Araç | Diller | Fiyat |
|---|---|---|
| SonarQube | 25+ dil | Açık kaynak (Community) |
| Checkmarx | 25+ dil | Ticari (başlangıç: 50K+ $/yıl) |
| Fortify | Java, .NET, C++ | Ticari (yüksek) |
| Veracode | 30+ dil | Ticari (SaaS) |
| Semgrep | Python, JS, Go, Java | Açık kaynak |
SAST Best Practices
False Positive Azaltma: SAST araçları hemen hatalı alarm verir (false positive). Kalibrasyonu iyi yapılmalı.
Baseline Oluşturma: İlk scan'da tüm açıklar bulunur. Yeni open'lar tespit etmek için baseline gerekir.
Gradual Adoption: Tüm açıkları hemen kapatmaya çalışma. Kritik olanlarla başla (CVSS 7+).
Developer Training: Araç tarafından bildirilen açıklara karşı geliştirici tepki göstermeli.
SAST CI/CD'ye Entegrasyonu
Geliştirici kodu merkezi sisteme yüklerken, otomatik olarak güvenlik taraması tetiklenir. Eğer kritik güvenlik açıkları bulunursa, sistem tüm derleme sürecini durdurur ve geliştiriciyi uyarır. Bu şekilde, güvenlik sorunu olmadan kod canlıya alınamaz. İşletme açısından, bu demektir ki güvenlik sözleşmesi otomatik olarak uygulanmaktadır ve manuel kontrol gerekmemektedir.
DAST: Dinamik Uygulama Güvenlik Testi
DAST, çalışan uygulamayı (canlı veya test ortamında) saldırganın perspektifinden test eder.
DAST Nasıl Çalışır?
- DAST aracı, uygulamaya HTTP istekleri gönderir
- Yanıtları analiz eder (açık algılamaya çalışır)
- Parametreleri değiştirerek inject saldırıları dener
- Zafiyetleri raporlar
DAST Araçları
| Araç | Dil Agnostik | Fiyat |
|---|---|---|
| Burp Suite | Evet | Community (sınırlı), Pro (400+/yıl) |
| OWASP ZAP | Evet | Açık kaynak |
| Fortify WebInspect | Evet | Ticari |
| Acunetix | Evet | Ticari (başlangıç: 5K+/yıl) |
| Rapid7 InsightAppSec | Evet | Ticari |
DAST Avantajları ve Dezavantajları
Avantajları:
- Gerçek saldırı simülasyonu
- Kod anlamasa da test edebilir (black box)
- Runtime davranışını test eder
Dezavantajları:
- Zaman alıcı (full scan 2-8 saat)
- Test ortamı kurulması gerekli
- Veri tabanı içeriğine bağlı (yanlış test verileri = yanlış sonuçlar)
DAST CI/CD'ye Entegrasyonu
DAST, SAST'tan sonra gelir. Çünkü:
- Build başarılı olmuş
- Build artifact test ortamında deploy edilmiş
- DAST scan yapılmış
- Zafiyetler tespit edilmiş
- Eğer critical varsa, production'a deploy edilmez
IAST: Interactive Application Security Testing
SAST ve DAST'ın orta yolu. Çalışan uygulamaya agent (sensor) takılır. Uygulama çalışırken, veri akışı izlenir ve zafiyetler tespit edilir.
Avantajı: SAST kadar hızlı, DAST kadar doğru.
Container Güvenliği
Modern yazılımlar, containerda (Docker) çalışır. Container güvenliği de DevSecOps'in önemli bir parçasıdır.
Container Image Taraması
Bir Docker image, kütüphanelerle dolu olabilir. Bu kütüphanelerin güvenlik açıkları var mı kontrol edilmeli.
Araçlar:
- Trivy (Aqua Security)
- Grype (Anchore)
- Clair
Örnek: Docker Image Build Sırasında Tarama
Docker imajı oluşturulduğunda, otomatik olarak güvenlik taraması yapılır. Sistem, imajda kaç tane güvenlik açığı olduğunu sayar: 3 açık, 1 tanesi kritik, 2 tanesi yüksek önemlilikte. Eğer kritik bir açık varsa, sistem derlemeyi durdurur ve geliştiriciyi uyarır. Bu şekilde, güvenlik açığı olan konteynerler canlıya alınmaz.
Secrets Management
Parolalar ve API anahtarları Docker imajına doğrudan yazılmamalıdır. Eğer yazılırsa, kötü niyetli biri veya sistem yöneticileri bu bilgileri görebilir.
Güvensiz Yöntem: Parolaları imajda saklı tutmak. Bunlar görünür kalır ve başka kişilere sızabilir.
Güvenli Yöntem: Parolalar ve anahtarlar, güvenli bir kasaya (Vault) saklanır. Uygulama çalışırken, ihtiyaç duyduğunda bu kasadan gizli bilgiler alır. Bu sayede, gizli bilgiler asla imajda bulunmaz.
Dependency Scanning
Yazılım, binlerce harici kütüphaneden oluşur. Bu kütüphanelerin güvenlik açıkları, uygulamayı etkileyebilir.
Dependency Vulnerability Scanning
Araçlar:
- npm audit (Node.js)
- OWASP Dependency Check
- Snyk
- WhiteSource
- Black Duck
Örnek: npm audit
Node.js uygulamaları için güvenlik taraması yapılabilir. Tarama, 15 güvenlik açığı buldu: 12 tanesi yüksek önem, 3 tanesi kritik. Bu açıklar doğrudan kullanılan kütüphanelerde olmayabilir. Bazı kütüphaneler, diğer kütüphanelere bağlıdır (bağımlılık zinciri). Zincirin herhangi bir noktasında açık varsa, tüm uygulamayı etkiler.
Secrets Scanning
Geliştirici, yanlışlıkla parolayı veya API anahtarını code'a yazıp, Git'e push edebilir. Bu "secret leak" denen durumu.
Secret Scanning Araçları
- GitGuardian
- TruffleHog
- GitHub Secret Scanning
- GitLab Secret Scanning
Örnek: GitHub Push
Geliştirici kod değişikliğini sisteme yüklerken, eğer commit mesajında veya kodda parola gibi gizli bilgi varsa, sistem otomatik olarak uyarı verir. Bazı sistemler push'ı engelleyebilir ve geliştiriciyi bu gizli bilgiyi kaldırmaya zorlayabilir.
Infrastructure as Code (IaC) Security
Bulut kaynakları, Terraform, CloudFormation gibi code ile tanımlanır. Bu "Infrastructure as Code"'dir. IaC'de de güvenlik kontrolleri yapılabilir.
IaC Scanning Araçları
- Checkov
- TFLint
- Snyk Infrastructure
- HashiCorp Sentinel
Örnek: Terraform Güvenlik Hatası
Bulut altyapısı kod ile tanımlanır. Örneğin, bir depolama alanı (S3 bucket) tanımlanırken, yanlış bir yapılandırma yapılırsa "herkes bu alana erişebilir" durumu oluşabilir. Güvenlik taraması bu hatayı bulur ve uyarı verir. Bu sayede, yanlış yapılandırma canlıya alınmaz.
DevSecOps Alet Zinciri (Toolchain)
Tipik bir DevSecOps sürecinde aşağıdaki adımlar sırasıyla uygulanır:
- Geliştirici kodu sisteme yükler
- Sistem otomatik olarak tetiklenir
- Derleme sunucusu başlatılır
- Statik kod taraması yapılır
- Konteyner imajı oluşturulur
- Konteyner imajı güvenlik açıkları için taranır
- Derlenen yazılım test ortamında çalıştırılır
- Dinamik güvenlik testi yapılır
- Bulut altyapısı ayarları taranır
- Harici kütüphaneler güvenlik açıkları için taranır
- Gizli bilgilerin yanlışlıkla yüklenip yüklenmediği kontrol edilir
- Tüm kontroller başarılı mı başarısız mı karar verilir
- Eğer tüm kontroller geçtiyse, yazılım canlıya alınır
Her adımda güvenlik kontrolü yapılır. Eğer kritik zafiyet bulunursa, işlem durur ve geliştiriciyi uyarır.
DevSecOps Metrikleri (KPI'lar)
Güvenlik otomasyonunun etkinliğini ölçmek için:
Zafiyetlerin Bulunma Süresi: Kod yazılıp ne kadar sürede zafiyet bulunuyor?
- Hedef: 1-2 saat içinde (SAST ile)
- Hedef: 6-8 saat içinde (DAST ile)
Mean Time to Remediation (MTTR): Zafiyet bulunduktan ne kadar sürede kapanıyor?
- Hedef: Kritik açıklar 7 gün içinde
False Positive Oranı: SAST/DAST'ın yanlış alarm verme oranı
- Hedef: Yüzde 5'in altında
Patch Coverage: Bilinen zafiyetler ne kadar hızlı yamama alınıyor?
- Hedef: Critical 48 saat, High 30 gün
Security Debt: Kapanmamış zafiyetlerin total sayısı
- Hedef: Zamanla azalması
DevSecOps Uygulamak
Evre 1: Değerlendirme (1-2 ay)
- Mevcut yazılım geliştirme süreci nedir?
- Nerelerde güvenlik kontrol uygulanıyor?
- Nerelerde yok?
Evre 2: Pilot (2-3 ay)
- Yeni bir proje seçin
- SAST araç kurun (SonarQube)
- CI/CD pipeline'a entegre edin
- Ekip eğitimi
Evre 3: Genişleme (3-6 ay)
- DAST araçları ekle (Burp Suite)
- Container scanning ekle (Trivy)
- Dependency scanning ekle (Snyk)
- Secrets scanning ekle (GitGuardian)
Evre 4: Optimizasyon (Devam)
- False positive azaltma
- Alerting ve reporting iyileştirme
- Metrics tracking
- Continuous improvement
DevSecOps Kültürü
Teknoloji dışında, insanlar önemlidir:
- Geliştirici Eğitimi: SAST/DAST sonuçlarını anlama
- Güvenlik Farkındalığı: Yazılım güvenliğinin neden önemli olduğunu anlama
- Sorumluluk: "Güvenlik, herkesin işi" mentalitesi
- Açık Iletişim: Zafiyetler bulunduğunda, cezalandırma değil, öğrenme
Sonraki Adımlar
DevSecOps, yazılım geliştirmenin şekli değiştiren bir dönüştürmedir. Başlamak için:
- SAST aracı kurun (SonarQube Community serbest)
- CI/CD pipeline'a entegre edin
- Ekibi eğitin
- Metrikleri takip edin
Siber Güvenlik ve Yazılım Güvenliği Hizmetleri rehberimiz, DevSecOps'in daha geniş bağlamını sunmaktadır. Ayrıca Güvenli Yazılım Geliştirme Yaşam Döngüsü (Secure SDLC) yazısında, otomasyonun başında gelen tasarım aşaması ele alınmaktadır.
Smart Maple, DevSecOps dönüşümünün her aşamasında danışmanlık sunmaktadır. Pipeline'ınızı güvenlik odaklı hale getirmek için smart-maple.com adresinden iletişime geçin.
İlgili Makaleler
MLOps Rehberi: Makine Öğrenmesi Modellerini Production'a Taşıma
Giriş: MLOps Nedir ve Neden Önemlidir? Makine öğrenmesi modelleri geliştirmek günümüzde nispeten kolaydır. Açık kaynak kütüphaneleri kullanarak son derece başarılı modeller oluşturabiliriz. Ancak bu modelleri production ortamına taşıyarak, ölçeklendirebilir, güvenilir ve sürdürülebilir şekilde çalıştırmak tamamen farklı bir hikayedir. Araştırmalara göre, veri bilimcileri tarafından geliştirilen makine öğrenmesi modellerinin %87'si hiçbir zaman production ortamına ulaşmaz. Bu başarısızlı
Devamını Oku: MLOps Rehberi: Makine Öğrenmesi Modellerini Production'a TaşımaLLM Fine-Tuning ve Özel Model Eğitimi Rehberi [2026]
LLM Fine-Tuning: Kurumsal Yapay Zeka Stratejisinin Temel Taşı Büyük dil modelleri (LLM), genel amaçlı metin üretimi ve anlama konusunda etkileyici performans sergiliyor. Ancak kurumsal ortamlarda belirli bir alan, terminoloji veya iş sürecine uyum sağlamaları gerektiğinde, genel bilgileri çoğu zaman yetersiz kalıyor. Bu noktada fine-tuning, yani ince ayar süreci devreye giriyor. Fine-tuning sayesinde mevcut bir temel modeli, kendi verileriniz ve ihtiyaçlarınız doğrultusunda özelleştirmek
Devamını Oku: LLM Fine-Tuning ve Özel Model Eğitimi Rehberi [2026]Bilgisayarlı Görü Uygulamaları: Nesne Tespiti, OCR ve Endüstriyel AI
Bilgisayarlı Görü Uygulamaları: Endüstriyel ve Medikal AI'nin Temel Teknolojisi Bilgisayarlı görü, makine öğrenmesinin en etkili alanlarından biridir. Türkiye'de yaşanan dijital dönüşüm sürecinde, özellikle üretim, sağlık ve lojistik sektörlerinde görü tabanlı otomasyon kritik hale gelmiştir. Smart Maple olarak Ankara'da geliştirdiğimiz çözümler, son beş yılda 150+ kuruluşunun üretim verimliliğini ortalama %35 oranında artırmıştır. Bu rehberde, bilgisayarlı görü teknolojisinin iş değeri
Devamını Oku: Bilgisayarlı Görü Uygulamaları: Nesne Tespiti, OCR ve Endüstriyel AI
