Curriculum
Güvenli Yazılım Geliştirmeye yönelik bu temel alt-üniteyee hoş geldiniz; bu, günümüz dijital çağında tüm Küçük ve Orta Ölçekli İşletmeler (KOBİ’ler) için kritik bir konudur. Bu bölüm, güvenli yazılım geliştirmenin önemini, temel kavramlarını ve ilkelerini tanıtmaya adanmıştır. Bu modülde, yazılım güvenliği kavramları açıklanacak ve güvenli yazılım geliştirme sürecindeki temel adımlar vurgulanacaktır. Ayrıca, güvenli yazılım geliştirme pratiği için gerekli bilgi ve becerileri sağlama üzerine odaklanarak, katılımcıların güvenlik açıklarını azaltmaları ve siber tehditlere karşı daha dayanıklı yazılımlar oluşturmaları teşvik edilecektir.
Güvenli yazılım geliştirme, yazılım geliştirme sürecinin her aşamasında güvenliği dikkate almanın önemini vurgulayan bir yaklaşımdır. Bu, güvenlik açıkları ve tehditlerin yazılım uygulamalarını etkilemesini önlemek için proaktif ve kapsamlı bir stratejidir. Konsepti daha derinlemesine inceleyelim:

Şekil-1
(Kaynak: https://integrio.net/blog/improving-software-security)
Yazılım Geliştirme Yaşam Döngüsünde (SDLC) güvenlik, her geliştirme aşamasında dikkat edilmesi gereken kritik bir unsurdur. SDLC’ye güvenliğin entegre edilmesi, yazılımın potansiyel siber tehditlere karşı güçlü bir savunma ile inşa edilmesini sağlar. Bu tehditler giderek daha sofistike ve sürekli değişen niteliktedir. Güvenliği baştan öncelikli olarak ele almak, geliştiricilerin güvenlik açıklarını erken aşamalarda tanımlayıp azaltmalarını sağlar. Bu, yazılım dağıtıldıktan sonra bu sorunları ele almaktan çok daha maliyet etkindir. Erken tespit sadece tasarruf sağlar, aynı zamanda düzeltme sırasında yeni sorunların ortaya çıkma riskini ve çözümün karmaşıklığını da azaltır.

Şekil-2
(Kaynak: https://softprodigy.com/secure-software-development-life-cycle-navigate-your-way-to-security/)
Güvenli geliştirme, modern yazılım mühendisliğinin kritik bir yönüdür ve yazılım geliştirme yaşam döngüsünün (SDLC) her aşamasına güvenlik prensiplerini entegre etmeye odaklanır. Güvenli geliştirme prensiplerine uyularak, organizasyonlar siber tehditlere karşı dayanıklı, kullanıcı verilerini koruyan ve saldırı altında bile işlevselliğini sürdürebilen yazılımlar üretebilirler. İşte güvenli geliştirmenin bazı temel prensipleri:
Proaktif Güvenlik Entegrasyonu: Güvenlik etkilerini tasarım aşamasında değerlendirmeyi, güvenli çerçeveler ve kütüphaneler seçmeyi ve güvenlik gereksinimlerinin işlevsel gereksinimlerle birlikte tanımlanmasını içerir.
En Az Ayrıcalık: Yazılım, görevlerini yerine getirmek için gerekli minimum ayrıcalık seviyesinde çalışmalıdır. Bu ilke, yazılımın ele geçirilmesi durumunda oluşabilecek potansiyel zararları sınırlar. Bu ilke, sadece yazılım için değil, aynı zamanda yazılım ile etkileşimde bulunan kullanıcılar ve sistemler için de geçerlidir.
Derinlikte Savunma: Tek bir güvenlik önlemi kesin olarak güvenli değildir, bu yüzden birden fazla güvenlik kontrol katmanı (fiziksel, teknik, idari) kullanmak, yedeklilik sağlayabilir ve tek bir başarısızlık noktasının riskini azaltabilir.
Güvenli Hata Yönetimi: Yazılım bir hata ile karşılaştığında, güvenliği tehlikeye atmadan güvenli bir şekilde başarısız olmalıdır.
Güvenlik Tasarımı ile Sağlanır: Güvenlik, yazılım tasarımının ayrılmaz bir parçası olmalıdır.
Düzenli Güvenlik Testi: Güvenlik testi sürekli bir süreç olmalı, sadece dağıtımdan önce bir kez yapılan bir etkinlik olmamalıdır.
En Az Bilgi Prensibi (POLK): Sistem, amacına uygun olarak gerekli olandan daha fazla bilgi veya işlevsellik açığa çıkarmamalıdır.
Güvenli Varsayılanlar: Yazılımın varsayılan yapılandırma ayarları kutudan çıkar çıkmaz güvenli olmalı, kullanıcıların daha az güvenli yapılandırmalara geçiş yapması gerekmelidir.
Açık Tasarım: Yazılımın tasarımı uzmanlar tarafından gözden geçirilmeye açık olmalıdır; şeffaflık daha sağlam güvenlik çözümlerine yol açabilir.
Girdi Doğrulama ve Temizleme: Girdileri doğrulama ve temizleme, SQL enjeksiyonu, çapraz site betimleme (XSS) gibi yaygın saldırıları önleyebilir.
Yamanın Yönetimi: Yazılımın güncel tutulması güvenlik için kritiktir. Güvenlik açıkları keşfedildiğinde hızla yamalar ve güncellemeler uygulanmalıdır.
Olay Yanıtı ve Kurtarma: Organizasyonların güvenlik olaylarına yanıt vermek için planları olmalıdır.
Eğitim ve Farkındalık: Geliştiriciler, testçiler ve son kullanıcılar dahil tüm paydaşların güvenliğin önemi hakkında eğitim alması sağlanmalıdır.

Şekil-3
(Kaynak: https://www.semanticscholar.org/paper/SECURE-SOFTWARE-DEVELOPMENT-FRAMEWORK-%3A-PRINCIPLES)
Henüz üye değil misiniz? Kayıt olun
Are you a member? Login now