Bilgi Güvenliği
Eğitim
Genel
Nasıl Yapılır?
Teknoloji
Argon2, Bağımlılık Analizi, Bakım, bcrypt, Burp Suite, CERT Secure Coding Standards, Checkmarx, CI/CD, Çıktı kodlama, DAST, DEBUG, Dependabot, Deploy, DevSecOps, Dinamik Uygulama Güvenlik Testi, Doğru yerde doğru test, Error message, Geliştirme, Gereksinim Analizi, Girdi doğrulama, GitLab SAST, Güvenli Yazılım Geliştirme Yaşam Döngüsü, Hard-coded, HTTPS, IDE, input validation, ISO 27001, JWT, klasik SDLC, Kod Analizi, Kodla yönetilen güvenlik, Kullanıcı davranışı analizi, kvkk, LINDDUN, Logging, ORM, output encoding, OWASP, OWASP ASVS, OWASP Top 10, PASTA, patch management, PCI DSS, Penetrasyon Testi, Pipeline, Rate limiting, Rate-limit, RBAC, Retrospektif, SAST, SCA, Secrets yönetimi, Secure Coding, Secure DevOps, Secure SDLC, Security as Code, Shift-Left Security, Snyk, SonarQube, SQL Injection, Statik Kod Analizi, STRIDE, Sürekli İyileştirme, Tasarım, Tehdit modelleme, Test, Third party entegrasyon, TLS 1.3, UBA, Vault/KeyStore, Yayınlama, ZAP
Yasin Yiğit
0 Yorumlar
Güvenli Yazılım Geliştirme Yaşam Döngüsü (Secure SDLC)
Günümüzde siber saldırıların önemli bir kısmı uygulama katmanındaki açıklardan kaynaklanıyor.
Bu nedenle yazılımlar güvenli tasarlanmadan, test edilmeden ve devreye alınmadan kurum tam anlamıyla korunmuş sayılmaz.
Secure SDLC; yazılım geliştirme sürecinin tüm aşamalarına güvenliği dahil eden bir yaklaşımdır.
1) Secure SDLC’nin Temel Amaçları
- Uygulamalarda güvenlik açıklarını geliştirme aşamasında tespit etmek
- Sızma testlerine daha az yük bindirmek
- Kod kalitesini artırmak
- Veri sızıntısı risklerini düşürmek
- Regülasyonlara uygunluk sağlamak (ISO 27001, KVKK, PCI DSS vb.)
2) Güvenli Yazılım Yaşam Döngüsü Aşamaları
Secure SDLC, klasik SDLC adımlarını güvenlik gereksinimleri ile zenginleştirir:
Aşamalar:
- Gereksinim Analizi
- Tasarım
- Geliştirme
- Test
- Yayınlama
- Bakım
- Sürekli İyileştirme
Her aşamada yapılması gereken güvenlik kontrolleri aşağıda detaylı şekilde verilmiştir.
3) Gereksinim Analizi Aşaması
Güvenli bir uygulama, güvenli gereksinimlerle başlar.
Yapılacaklar:
- Güvenlik gereksinimleri dokümanı hazırlanmalı
- KVKK uyumluluğu kontrol edilmeli
- Yetkilendirme ve rol modeli belirlenmeli (RBAC)
- Veri sınıflandırması yapılmalı
- Giriş/çıkış doğrulama gereksinimleri tanımlanmalı
- İş süreçlerine göre risk analizi yapılmalı
- Güvenlik kabulleri net olarak yazılmalı
4) Tasarım Aşaması
Bu aşamada tehdit modelleme en kritik adımdır.
Yapılacaklar:
- Tehdit modelleme (STRIDE, PASTA, LINDDUN)
- Mimari güvenlik diyagramları hazırlanmalı
- Saldırı yüzeyleri belirlenmeli
- Parola saklamak için güçlü hash algoritmaları seçilmeli (bcrypt, Argon2)
- Veri maskeleme kararları alınmalı
- Güvenli protokoller (HTTPS, TLS 1.3) zorunlu olmalı
- API güvenlik yapısı tasarlanmalı (Rate limiting, JWT kullanım kuralları vb.)
5) Geliştirme Aşaması (Secure Coding)
Bu aşama güvenlik açıdan en çok hata yapılan kısımdır.
Temel güvenli kodlama prensipleri:
- Girdi doğrulama (input validation)
- Çıktı kodlama (output encoding)
- SQL Injection’a karşı ORM veya parametrik sorgu kullanma
- Hard-coded parola kullanmama
- Secrets yönetimini Vault/KeyStore ile yapma
- Error message’larda hassas bilgi göstermeme
- Logging yaparken kişisel ve kritik veriyi maskeleme
Güvenli kodlama standartları:
- OWASP Top 10
- OWASP ASVS
- CERT Secure Coding Standards
6) Kod Analizi ve Güvenlik Testleri
Geliştirme sırasında hataları erken tespit etmek için otomasyon şarttır.
A) Statik Kod Analizi (SAST)
- Kod yazılırken IDE içi güvenlik uyarıları
- CI/CD’de otomatik tarama
- Örnek araçlar: SonarQube, Checkmarx, GitLab SAST
B) Dinamik Uygulama Güvenlik Testi (DAST)
- Uygulama çalışırken tarama
- Örnek araçlar: OWASP ZAP, Burp Suite
C) Bağımlılık Analizi (SCA)
- Kullanılan paketlerin zafiyet taraması
- Örnek: Dependabot, Snyk
D) Penetrasyon Testi (İnsan Odaklı)
- Yayına geçmeden önce dış denetim
- OWASP metodolojisine göre test
7) Test Aşaması
Fonksiyonel testlere ek olarak güvenlik testleri zorunlu olmalıdır.
Yapılacaklar:
- Yetkilendirme testleri
- Oturum yönetimi testleri
- API güvenlik testleri
- Rate-limit testleri
- Veri doğrulama ve maskeleme testleri
- Business logic (mantık) zaafiyet testleri
8) Yayınlama (Deploy) Aşaması
Yayına çıkmadan önce güvenlik checklist’i tamamlanmalıdır.
Yayın öncesi kontroller:
- Güvenlik açıkları kapatıldı mı?
- Geliştirme modları kapalı mı?
- DEBUG mod devre dışı mı?
- Admin paneli gizlendi mi?
- HTTPS zorunlu mu?
- Güvenli CI/CD pipeline kullanılıyor mu?
- Secrets kasada mı?
- API anahtarlarına erişim sınırlandı mı?
9) Bakım / Monitoring Aşaması
Güvenlik süreklilik gerektirir.
Yapılacaklar:
- Log ve SIEM entegrasyonu
- Olağan dışı trafik izleme
- Patch management
- Kullanıcı davranışı analizi (UBA)
- Yeni zafiyetlerin taranması
- Third party entegrasyonların güvenlik denetimleri
10) Sürekli İyileştirme
SDLC tek seferlik bir operasyon değildir.
- Retrospektif toplantılar
- Hataların kök neden analizi
- Süreç ve doküman güncellemeleri
- Geliştiricilere periyodik secure coding eğitimi
- Yeni OWASP versiyonlarının takibi
11) Secure DevOps (DevSecOps) – Modern Yaklaşım
Artık güvenlik son aşamada değil, pipeline’ın her aşamasında otomatik çalışıyor.
DevSecOps’un temel prensipleri:
- Güvenlik otomasyonu
- Doğru yerde doğru test (Shift-Left Security)
- Kodla yönetilen güvenlik (Security as Code)
- Pipeline içinde SAST + DAST + SCA
- Geliştirici odaklı güvenlik kültürü
Bu model, CI/CD kullanan tüm kurumlarda önerilir.
12) En Yaygın Hatalar
- Geliştirmenin başına güvenliği koymamak
- Tüm güvenlik testini pentest’e bırakmak
- Kod incelemesi yapmamak
- API güvenliğini göz ardı etmek
- Secrets’ların kodda taşınması
- Ekibin secure coding eğitimi almaması
- Loglamayı sadece “hata kaydı” olarak görmek
13) Sonuç
Secure SDLC, siber güvenlik olgunluğunun temel taşlarından biridir.
Güvenliği en başa koyan yazılım ekipleri hem daha az saldırı yüzeyine sahip olur hem de maliyeti düşürür.
“Güvenlik sonradan eklenen bir özellik değil, yazılımın DNA’sı olmalıdır.”


