7 Adımda Kaynak Kod Analizi

Bilgi ve İletişim Güvenliği Rehberi (Rehber) içerisinde kaynak kod analizi yapılması gerekliliği ile ilgili maddeler yer almaktadır. Rehber’in ifadesiyle kaynak kod analizi, güvenli yazılım geliştirme konusunda uzman kişiler tarafından kaynak kodların incelenmesi ve güvenlik açıklarının tespit edilmesini sağlayan çalışmadır. Otomatik araçlar ile desteklenmelidir.

Kaynak kod analizi, sistemlerimize yapılacak saldırılarda uygulamalar üzerinde olabilecek zafiyetlerin giderilmesini sağlayarak güvenli bir şekilde kod geliştirilmesini sağlayacaktır. Güvenli kod geliştirme ile SQL enjeksiyonu, XSS, CSRF gibi yaygın güvenlik açıkları tespit edilebilir.

Güvenli kod geliştirme ise güvenli kod geliştirme yaşam döngüsü içerisinde ele alınmalıdır.

1. Güvenli Kod Geliştirme Yaşam Döngüsü

Güvenlik uygulamaları yazılım geliştirme yaşam döngüsünün her aşamasına entegre edilmelidir. Amaç, yazılım projelerinin ilk planlama aşamasından başlayarak dağıtım ve bakımla devam eden süreçlerine güvenlik uygulamalarını dahil ederek zafiyet oluşturacak riskleri ve güvenlik açıklarını azaltmaktır.

Güvenli Kod Geliştirme Yaşam Döngüsü
Güvenli Kod Geliştirme Yaşam Döngüsü

Güvenli kod geliştirme yaşam döngüsü, güvenliğin sonradan akla gelen bir şey değil, yazılım geliştirme sürecinin ayrılmaz bir parçası olmasını sağlar.

2. Planlama ve Gereksinim Analizi

Yazılımın işlevsel ve güvenlikle ilgili gereksinimlerinin tanımlanmasıdır. Güvenlik gereksinimlerinin analizinde, kimlik doğrulama, şifreleme veya düzenleyici standartlara uyum gibi güvenlik gereksinimleri belirlenir. Bu aşamada tehdit modellemesi yapılmalıdır. Tehdit modellemesi, olası tehditlerin ve risklerin (örneğin, hassas verilerin ifşası veya hizmet reddi gibi) erken tanımlanmasına başlanmasıdır. Owasp Security Rrquirement olarak referans edilmektedir.

3. Tasarım

Sisteme izinsiz girilmesini önlemek veya yetkisiz erişimler elde etmek için kullanılabilecek yöntem veya senaryoların en aza indirilebilmesi için güvenli mimari oluşturulmalıdır. Veri akış diyagramları ile potansiyel riskler belirlenir. Uygulanan mimariye göre tehdit modellemesi iyileştirilmelidir. Örneğin sıfır güven (zero trust) mimarisi kullanılarak bir web uygulaması tasarlanıp hiçbir kullanıcı veya bileşene güven verilmemesi sağlanabilir. Burada Rehber’in zero trust mimarisini destekleyen ilkeleri içerdiğini belirtmekte fayda olacağını düşünüyorum. (Başka bir yazıda da Rehber’in Zero Trust mimarisini hangi ilkelerle desteklediğini yazalım 😊) Bu kısmın Owasp referansı ise secure architecture guide olarak yer almaktadır.

4. Geliştirme

Güvenli kodlama yönergeleri olarak girdi kontrolleri / doğrulaması, çıktı kontrolü, sabit kodlanmış kimlik bilgilerinden / değerlerden kaçınma, OWASP ilk 10 güvenlik açığına atıfta bulunma gibi kodlama standartları uygulanmalıdır. Bağımlılık analizleri yapılmalı, log sistemleri yapılandırılmalıdır. Referans olarak owasp secure coding practice verilebilir.

5. Test

Yazılımın hem işlevsel hem de güvenlik gereksinimlerinin karşılandığının doğrulanmasıdır. Test aşamasında uygulama güvenlik testi, penetrasyon testi, otomatik güvenlik testi, güvenlik gözden geçirme testleri yapılabilir.

Güvenlik testi, çalışan uygulamanın SQL enjeksiyonu, XSS veya uygunsuz kimlik doğrulama gibi güvenlik açıklarına karşı test edilmesidir. Penetrasyon testi, gerçek dünya saldırılarını simüle etmek için etik hackleme gerçekleştirilmesidir. Otomatik güvenlik testi, güvenlik açıklarını otomatik olarak taramak için güvenlik araçlarının CI/CD kanallarına entegre edilmesidir. Güvenlik gözden geçirme testi, daha önce düzeltilen güvenlik açıklarının yeni sürümlerde tekrar ortaya çıkmamasının sağlanması için uygulamanın gözden geçirilmesi, test edilmesidir. Yine referans olarak Owasp testing guide verilebilir.

6. Yayınlama

Yazılımın güvenli bir şekilde üretim ortamlarına yayınlanmasıdır. Bu aşamada güvenli yapılandırma yönetimi ile varsayılan hesapları devre dışı bırakma ve şifrelemeyi uygulama gibi güvenli dağıtım yapılandırmaları sağlanmalıdır. Kullanılmayan hizmetleri kapatarak ve en az ayrıcalık ilkelerini uygulayarak sistem güçlendirilmelidir.

7. Bakım ve Destek

Yazılımın dağıtım sonrasında güvenliğinin sürekli olarak izlenmesi ve korunmasıdır. Yama yönetimi, güvenlik açığı yönetimi, olay yanıt yönetimi, güvenlik denetimleri yapılmalıdır. Yama yönetimi; kütüphaneler, çerçeveler ve üçüncü taraf hizmetleri için düzenli olarak güvenlik yamalarının uygulanmasıdır. Güvenlik açığı yönetimi, güvenlik açıklarının ve güvenlik olaylarının sürekli olarak izlenmesi, aksiyon alınmasıdır. Olay yanıtı yönetimi, güvenlik ihlallerini ve olaylarını ele almak için bir olay yanıt planının hazırlanmasıdır. Güvenlik denetimleri, uygulamanın uyumluluğunun ve güvenlik standartlarının düzenli olarak denetlenmesidir.

Similar Posts

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir