Kısa tanım
Güvenli yazılım geliştirme, güvenliğin yazılım yaşam döngüsünün her aşamasına — gereksinimden tasarıma, kodlamadan test ve bakıma — planlı biçimde dâhil edildiği mühendislik yaklaşımıdır. Güvenlik, ürüne sonradan eklenen bir katman değil, baştan tasarlanan bir nitelik olarak ele alınır.
Ayrıntılı açıklama
Yaklaşımın çıkış noktası, güvenlik açıklarının büyük bölümünün tasarım ve kodlama aşamalarındaki kararlardan kaynaklandığı gözlemidir. Geliştirme sürecinin sonunda yapılan testler bu açıkların ancak bir kısmını yakalayabilir; erken aşamada önlenen bir zafiyetin giderilme maliyeti ise sahada keşfedilen bir zafiyete kıyasla çok daha düşüktür. Bu nedenle güvenli geliştirme yaşam döngüsü modelleri, her aşamaya özgü güvenlik etkinlikleri tanımlar: gereksinim aşamasında güvenlik gereksinimlerinin belirlenmesi, tasarım aşamasında tehdit modellemesi, kodlama aşamasında güvenli kodlama standartları, test aşamasında statik ve dinamik analiz, dağıtım sonrasında ise zafiyet takibi ve güncelleme yönetimi.
Tehdit modellemesi bu döngünün merkezî tekniklerindendir; sistemin mimarisi üzerinden olası saldırgan hedefleri ve giriş noktaları sistematik biçimde incelenir, karşı önlemler tasarıma işlenir. Kod düzeyinde ise girdilerin doğrulanması, bellek güvenliği, en az yetki ilkesi ve güvenli varsayılan yapılandırmalar gibi ilkeler uygulanır. Üçüncü taraf bileşenlerin ve açık kaynak kütüphanelerin yönetimi de kritik önemdedir; yazılım bileşen envanteri tutularak tedarik zincirinden gelen zafiyetler izlenir.
Sürecin kurumsallaşması, otomasyonla desteklenir. Sürekli tümleştirme hatlarına yerleştirilen güvenlik denetimleri, her kod değişikliğinin otomatik analizden geçmesini sağlar; böylece güvenlik, geliştirme hızını kesen bir engel olmaktan çıkıp akışın doğal parçası hâline gelir.
Savunma sanayii bağlamı
Savunma sistemlerinde yazılımın payı sürekli arttığından, güvenli geliştirme pratikleri tedarik gereksinimlerine ve sertifikasyon çerçevelerine yansımıştır. Görev kritik yazılımlarda güvenlik ve emniyet disiplinleri birlikte ele alınır; kanıt üretimi ve izlenebilirlik sözleşme beklentisidir.
Türk savunma sanayiinde de güvenli yazılım geliştirme süreçlerinin kurumsallaştırılmasına yönelik çalışmalar yürütülmektedir.
İlgili kavramlar
Statik kod analizi · Sızma testi · DO-178C · Gömülü yazılım · Tehdit modellemesi