Welcome, Guest
Username: Password: Remember me
  • Page:
  • 1

TOPIC:

Güvenli Yazılım Geliştirme Modelleri 10 years 2 months ago #124

  • quantum50
  • quantum50's Avatar Topic Author
  • Offline
  • Elite Member
  • Elite Member
  • Posts: 480
  • Karma: 4
  • Thank you received: 6
Yazılım geliştirme sürecinin yaygın olarak kullanılmaya başlandığı ilk yıllarda kaliteli ve olgun yazılım üretmek için, son yıllarda ise özellikle güvenli yazılım geliştirmek için çok sayıda model ve çerçeve üzerinde çalışılmıştır. Son yıllarda karşılaşılan güvenlik açıklıklarındaki artış bunun tetikleyicisi olmuştur.

gygd1.jpg
Şekil 1. Yıllara Göre Açıklıklar

Bu süreç CMM (Capability Maturity Model) ile başlamış daha sonrasında CMMI (Capability Maturity Model Integration), FAA–iCMM (Federal Aviation Administration Maturity integrated Maturity Model), Trusted CMM, SSE-CMM (Security System Engineering CMM), Microsoft Security Development Lifecycle, OpenSAMM modelleri gibi modeller geliştirilmiştir.

Bu modellerin bir kısmı kurum genelinin BT altyapısının güvenli hale getirilmesi ile ilgili kapsamlıca bir içeriğe sahipken bir kısmı yazılım geliştirme güvenliğine odaklanır. Fakat herbirinin yazılım geliştirme güvenliği ile ilgili güvenlik modeli önerileri vardır.
1. Mevcut Durum
Gerek kurumsal şirketlerde gerekse daha orta ölçekteki yapılarda kurum bünyesinde geliştirilen, dış kaynaklarca geliştirilen ya da dışarıdan satın alınıp uyarlanan yazılımlarda güvenli yazılım geliştirme döngüsünün olmazsa olmaz kabul ettiği bazı alanlarda önemli eksiklikler mevcuttur.
Kurum bünyesinde yaygınlaştırılacak yazılımların son güvenlik gözden geçirmelerinin çoğu zaman ihmal edildiği görülmektedir. Bu gözden geçirmeler yaygınlaşan ürünün maruz kalacağı ilk saldırıların önlenmesi için oldukça kritiktir. Gözden geçirmeler kapsamında konfigürasyona dair eksiklikler de araştırılmaktadır. İhmal edilen gözden geçirmeler, konfigürasyonun kolaylıkla manipüle edilmesi, ele geçirilmesi gibi sonuçlar doğurabilir. Bu da “gizlilik” vasfı olan kurum verisinin korunmasında ciddi sorunlar ortaya koyabilir.
Kurumlarda karşılaşılan bir diğer önemli eksiklik geliştirici takım ile test ve analiz yapan takımın birbirinden net bir biçimde ayrılamamış olmasıdır. Bu gibi etkileşimlerin olduğu yazılım ofislerinde geliştirici bakış açısıyla yapılan yazılım analizleri güvenlik anlamında birçok kriterin atlanmasına neden olabilir. Aynı şekilde test takımının geliştiricilerden ayrılamamış olması geliştirilen ürünün hakkıyla test edilmesinin önünde bir engel oluşturur.
Yine geliştirilen yazılımların dokümantasyon eksikliği, güvenlik odaklı konfigürasyon prosedürlerinin belirlenmemiş olması da güvenliğin sürekliliği konusunda ciddi şüpheler uyandırmaktadır.
2. Güvenli Yazılım Geliştirme Döngüsü
Yazımızın başında bahsettiğimiz güvenli yazılım geliştirme süreci konusunda geliştirilmiş modeller sentezlendiğinde ortaya çıkan temel adımlar Şekil 2’de özetlenmiştir.
gygd2.png
Şekil 2. Güvenli Geliştirme Döngüsü
Bu adımların içeriğini detaylandırmak gerekirse:
Güvenli yazılım geliştirme döngüsünün ilk aşaması olan ve projenin tüm sürecinde de sürdürülebilecek eğitim ve farkındalığın artırılması çalışmalarında “Güvenli Tasarım/Geliştirme”, “Tehdit Modelleme”, “Güvenlik Testlerinin İcrası” gibi temel kavramlar yazılım geliştiricilerine bir eğitim dahilinde anlatılmalı, ihtiyaca göre “Güvenli Tasarım Mimarileri”, “Hata Detaylandırma”, “Güvenlik Geri Dönüş Değerlendirme” gibi daha ileri konulara da bu eğitimlerde değinilmelidir.
İhtiyaçların belirlenmesi aşamasında muhtemel güvenlik riskleri ile ilgili proje takımına anketler yapılır, bir güvenlik danışmanı belirlenir ve hata takip sisteminin çalışırlığı kontrol edilir. Aynı zamanda gizlilik(privacy) anlamında da proje ekibinden kontaklar belirlenir. Güvenlik ve gizlilik kabul edilebilir hata eşiği de bu aşamada saptanmaktadır.
Bir diğer önemli kontrol yazılım geliştirme ortamının güvenliğinin sağlanmasıdır. Bu kontrol aşamasında geliştirme ortamının fiziksel güvenliği, yönetimsel güvenliği ve yapılandırma güvenliği tespit edilmeli ve kontrolleri sağlanmalıdır.
Bu ön kontrollerin tamamlanması sonrasında gelen tasarım aşaması güvenlik anlamında belirlenen en iyi pratiklere uyumluluk çerçevesinde yürütülmelidir. Bu aşamada sistemin güvenlik yönüyle risk analizi yapılmalıdır. Risk analizinde, tehditler ve zafiyetler, dış kaynaklardan uygulamaya eklenen kodların oluşturduğu riskler, tehdit modelleme şemaları ve detaylı bir gizlilik risk analizi yapılmalıdır. Tehdit modelleme çalışması tasarım aşamasının en önemli faaliyetidir. Bu faaliyette ticari olmayan, açık kaynak kodlu modelleme ürünlerinin sürece dahil edilmesi planlanmaktadır.
Gerçekleştirilen tasarımın güvenlik en iyi pratiklerine göre gözden geçirilmesi yapılmalı yasal gereksinimlere ve prosedürlere uyum konusunda da ihtiyaçları karşılayabilen bir model ortaya konulması sağlanmalıdır.
Geliştirme aşamasında tasarımda öngörülen güvenli geliştirme mimarisine harfiyen sadık kalmak öncelikli amaçtır. Bununla beraber bu aşamada kullanılacak derleme araçları en güvenli sürümlerinde kullanılmalıdır. Aynı zamanda bu aşamada kaynak kodu analizi araçlarından da yararlanmakta fayda vardır. Söz konusu aşamanın bir diğer önemli görevi kullanıcı ve yöneticilerin ihtiyaç duyduğu güvenli kullanım kılavuzlarını hazırlamaktır.
Doğrulama aşaması ürünün gizlilik, bütünlük ve erişilebilirlik yönüyle, tehdit modelleri göz önünde bulundurularak test edilmesi ile başlar. Bulunan zafiyetlerden ileride açıklık oluşturma ihtimali olanlar bu aşamada giderilir. Bu aşamanın diğer önemli görevi güvenlik baskısı takımı oluşturarak yazılımdaki değişikliklerin doğurabileceği zafiyetleri araştırarak uyarabilecek, farkındalığı sürekli olarak diri tutacak bir anlayışı oluşturmaktır.
Doğrulanmış ürünün devreye alımı ile ilgili güvenli prosedürlerin yürütüldüğü devreye alım aşaması ürünün sahaya sunulduğu ve haliyle saldırılara de açık olduğu aşamadır. Devredeki üründe gerçekleşebilecek sorunların çözümü idare edecek ekip ve kontak bilgisi bu aşamada netleştirilmeli ve yazılım kullanıcılarına bildirilmelidir. Ayrıca periyodik güncellemelerin ve yama yönetiminin konu edildiği dokümanların hazırlanması bu aşamada gerçekleştirilir. Sahadaki ürün üzerinden son güvenlik gözden geçirmesi ve gizlilik çözümlemesi de bu aşamada yapılmalıdır.
Devreye alınmış ürünün bakım ve desteğinin doğru ve etkin saplanabilmesi için açıklık yönetimi ve geri dönüş mekanizmalarının etkin çalışır hale getirilmesi gerekir.
3. Kuruluşlarda Güvenli Yazılım Geliştirme Döngüsüne Geçiş

Henüz çoğu yazılım evi ve kurumsal şirketler bünyesindeki yazılım grubu herhangi bir güvenli yazılım geliştirme döngüsü benimseyememiş ya da belirlediği döngünün gereklerini yerine getirmez durumdadır. Bu ekiplerin ürettiği yazılımların güvenli geliştirme döngüsü dahilinde üretilmesi için aşağıda bahsedilecek adımların gerçekleştirilmesi yerinde olacaktır:
Kurumun Yazılım Geliştirme Yöntem ve Prosedürlerinin Araştırılması
Yazılım geliştirme takımlarının kullandığı proje yönetim yaklaşımları, geliştirmede kullanılan kuruma özel yöntemler ve kurumda geliştirilecek yazılımlarla ilgili bağlayıcı hükümdeki prosedürler bu adımda araştırılmalıdır.
Mevcut Modellerin İncelenmesi ve İhtiyaca Yönelik Eğitimler
Güvenli yazılım geliştirmede kullanılan yöntemler ve genel anlamda içeriklerinden bir önceki bölümde bahsedilmişti. Bu modeller detaylı olarak incelenir, kurum kültürü ile olan etkileşimleri ve ilişkileri araştırılır, her modelin kuruma yaklaşan ve kurumdan uzaklaşan yönleri tespit edilir. Bu tespitlerin detaylandırılması aşamasında modellerin içerikleri ile ilgili gerekli eğitimler de planlanmalıdır.
Kurum Şartlarına Uygun Güvenli Modelin Belirlenmesi
İkinci adımda incelenen modeller arasında kurumun yazılım geliştirme ve yaygınlaştırma süreçlerine en uygun olanı belirlenir. Belirlenen model, kurumun en hızlı şekilde ve en güvenli olarak başarılı yazılımlar geliştirmesini sağlayacaktır. Belirlenen model kurum ihtiyaçlarına göre uyarlanır, araya konulması güvenliği artıracak bazı ek kontroller de modele ilave edilir.
Politika ve Prosedür Dokümanlarının Hazırlanması
Belirlenen modelin sağlıklı bir şekilde çalışabilmesi için politika ve prosedür dokümanlarının hazırlanması gerekmektedir. Böylelikle tüm çalışanların modeli aynı şekilde yorumlamaları ve belirli bir çalışma yönetimi oluşturmaları sağlanmış olur. Politika dokümanı uyulması gereken kuralları belirlerken prosedür dokümanı Güvenli Yazılım Geliştirme Döngüsü'nün alt süreçlerinde yer alan iş adımlarını tanımlar.
Eğitimlerin Hazırlanması ve İlgili Personele Eğitim verilmesi
Yazılım süreçlerine getirilecek güvenli yazılım geliştirme döngüsü hakkında kapsamlı eğitimler hazırlanmalı, geliştirme sürecinin parçası olan çalışanlara gerekli eğitim ve oryantasyonlar verilmelidir. Ayrıca hazırlanan eğitimlerin sürekliliğinin sağlanması, daha sonraki yıllarda geliştirici ekibine katılacak yeni personele de güvenlik oryantasyonunun yapılabilmesi için bir eğitim planlama stratejisinin belirlenmesi de sürecin bir parçasıdır.

Please Log in or Create an account to join the conversation.

  • Page:
  • 1
Time to create page: 0.154 seconds

NDK Hoş Geldin