Ana Sayfa Tanıtıcı Makaleler ICterra, Güvenli Yazılım Geliştirme Yaklaşımı ile Mükemmeli Yeniden Tanımlıyor

ICterra, Güvenli Yazılım Geliştirme Yaklaşımı ile Mükemmeli Yeniden Tanımlıyor

25 yılı aşkın yazılım geliştirme tecrübesi ve Bilgi & İletişim Teknolojileri, Web & Mobil, Gömülü Sistemler, Aviyonik, Komuta Kontrol, Elektronik Harp, Sağlık ve Enerji alanlarındaki yetkinlikleriyle ICterra, 2020 yılında, siber güvenlik alanındaki faaliyetlerini hızlandırmaya hazırlanıyor. Bu kapsamda, özgün güvenlik yaklaşımını, tüm ekosistemin gündemine taşımayı hedefliyor.

Yazılım uygulamalarının tasarlanmasını, geliştirilmesini ve son kullanıcıya teslim edilmesini içeren süreçte yazılım güvenliğinin odak noktası olması, bu uygulamaların nihai başarıları açısından çok önemlidir. Geliştiriciler tarafından, kritik varlıkların korunması ve operasyonel işleyişin devamlılığı konusunda, kullanıcıda güven oluşturulması hedeflenmektedir. Bu nedenle yazılım güvenliği, yazılım uygulamaları için temel bir gereksinim haline gelmiştir. ICterra, mühendislik direktörlüğü bünyesinde tanımladığı bir kural seti ile oluşturduğu güvenli yazılım geliştirme çatısına uygun olarak, yazılım güvenliği gereksinimlerini sağlamaya başlamıştır. Bu kural seti, çeşitli uluslararası standartlar ve sektörel en iyi uygulamalar dikkate alınarak tanımlanmıştır.

Güvenli yazılım geliştirme yönergelerinin uygulandığı “Güvenli Yazılım Geliştirme Yaşam Döngüsü” pratikleri, geçmişte güvenlikle ilgili faaliyetlerin genellikle test aşamasında gerçekleştirilmesi ve bunun sonucunda güvenlik açıklarının ve hataların çok geç fark edilmesi (veya hiç fark edilememesi) nedeniyle bir ihtiyaç olarak ortaya çıkmıştır. Tasarım aşamasında bir yazılım güvenlik açığının kaldırılmasının maliyeti, test aşamasında veya sonrasında kaldırılmasından 30-60 kat düşük olmaktadır. Erken aşamalarda güvenlik açıklarını tespit ederek azaltmak ve yazılım güvenliğini etkin bir şekilde sağlamak için, güvenli yazılım geliştirme yaşam döngüsü faaliyetlerinin, yazılım geliştirme süreçlerine entegre edilmesi gerekmektedir.

Bu amaçlarla ICterra’da uygulanan güvenli yazılım yaşam döngüsü aktiviteleri, izleyen başlıklar altında ele alınmaktadır.

Güvenli Yazılım Geliştirme Eğitimleri

ICterra, “Yazılım güvenliği herkesin sorumluluğundadır.” vizyonundan yola çıkarak, projelerinde görev alan tüm yazılım geliştiricilerine ve test uzmanlarına, yazılımın güvenlik açıklarını belirleme ve azaltma tekniklerine yönelik anlayışlarını geliştirmek amacıyla eğitimler vermektedir. Bu eğitimler ile ekip üyeleri; güvenlik gereksinimi tanımlama, tehdit modelleri geliştirme ve statik ve dinamik kod analizi araçlarını kullanma yetkinliği kazanmaktadır.

Proje Bazlı Güvenlik Gereksinimleri

Projenin fonksiyonel gereksinimleri belirlendikten sonra, yazılımın güvenlik açıklarını ortadan kaldırmak için, saldırgan perspektifi ile olumsuz senaryolar geliştirilmekte ve bu senaryoların yaşanmaması için güvenlik gereksinimleri tanımlanmaktadır. Örneğin, yazılımın kullanıcı girişi işlevi için başarısız giriş deneme sayısının sınırlanması, kullanıcının yazılım tarafından karmaşık parola belirlemeye zorlanması gibi güvenlik gereksinimleri, bu adımda tanımlanmaktadır. Yazılım geliştirme süreci boyunca fonksiyonel gereksinimlerin güncellenmesi ile birlikte, güvenlik gereksinimleri de güncellenmektedir.

Mimari Tasarım Gözden Geçirme ve Tehdit Modelleme

Kodlama aşamasından sonra tespit edilen güvenlik açıklarını kapatmak için gereken iş gücü ve maliyet, oldukça yüksektir. Dolayısıyla mimari tasarımın, kodlama aşamasından önce, yazılım ve güvenlik mimarları tarafından gözden geçirilmesi gerekir. Yazılım mimarisinin güvenlik açısından analizi, güvenlik ile ilgili tasarım özelliklerinin doğrulanmasına yardımcı olmaktadır.

ICterra Güvenli Yazılım Geliştirme Yaklaşımı’nın adımları

Güvenlik ile ilgili tasarım özelliklerinin mimari tasarım özelinde belirlenmesi için ise tehdit modelleme faaliyetleri gerçekleştirilmektedir. Tehdit modellemesi ile tasarım aşamasında, mimarinin farklı tehdit vektörleri tarafından kötüye kullanılabilecek özellikleri değerlendirilerek güvenlik açıkları tanımlanabilmekte ve bu açıkları ortadan kaldıracak çözümler üretilebilmektedir.

Tehdit modelleme faaliyetleri, yazılımın dış bileşen ve aktörlerle hangi arayüzler üzerinden ve nasıl etkileşimde bulunduğunu belirleme aşaması ile başlamaktadır. Bu aşamada, potansiyel bir saldırganın yazılım ile nasıl etkileşime girebileceği tespit edilmekte ve saldırganın ilgisini çekebilecek veriler belirlenmektedir. Sonraki adımda ise saldırgan perspektifinden, belirlenmiş arayüz ve değerli varlıklara yönelik saldırı vektörleri tanımlanarak bunları etkisiz hale getirecek güvenlik tasarım özellikleri belirlenmektedir.

Statik ve Dinamik Kod Analizi

Kaynak kod derleme sürecine entegre edilmiş olan statik kod analizi araçları kullanılarak kodların, bilinen zafiyetleri içerip içermedikleri, otomatik olarak tespit edilmektedir. Geliştirici, statik kod analizi aracından gelen uyarı mesajlarını değerlendirerek kaynak kodda zafiyete sebep olacak fonksiyonları düzeltebilmektedir.

Benzer şekilde, dinamik kod analizi araçları ile geliştiriciler, yazılıma ekledikleri fonksiyonları güvenlik test girdileri ile çalıştırarak yazılımın beklenmedik davranışlarını tespit etmeye çalışmaktadır. Bu faaliyetler sonucunda hata bulunmaması durumunda ise yazılımın test sürecine geçilmektedir.

Penetrasyon Testi

Yazılımın kullanıcılara teslim edilmesinden önce, güvenli yazılım geliştirme süreci faaliyetlerinin son kez doğrulanabilmesi için, yazılım üzerinde bağımsız kaynaklar tarafından penetrasyon testi yapılmaktadır. Penetrasyon testi kapsamında, saldırı vektörleri ve test senaryoları uyarınca, zafiyet taraması araçları kullanılmakta ve çeşitli güvenlik testleri gerçekleştirilmektedir. Penetrasyon testi ile yazılım ve kullanıcı/geliştirici kuruluş için itibar kaybına neden olabilecek güvenlik açıklarının tespit edilmesi amaçlanmaktadır.

Öte yandan, bu faaliyetlerin eksiksiz bir şekilde uygulanması bile, saldırganların sürekli olarak daha sofistike ve tespit edilmesi güç saldırı tekniklerini geliştirmeleri nedeniyle hiçbir şekilde saldırganlardan etkilenmeyecek kusursuz güvenliğe sahip bir yazılımın geliştirilmesini sağlamayacaktır. Yazılım dünyasının doğası gereği, geliştirici ve kullanıcılar tarafından henüz bilinmeyen, sıfır gün saldırıları ile istismar edilebilecek zafiyetler, pek çok yazılım ürününde var olmaya devam edecektir.

Güvenli Yazılım Geliştirme Yaşam Döngüsü faaliyetlerinin kullanılmasındaki temel amaç, güvenlik açısından kusursuz yazılıma ulaşmanın mümkün olmadığı günümüz yazılım geliştirme dünyasında, yazılımın güvenlik ve kalite niteliklerinin -bilinen zafiyetlerin ele alınmış olması koşulu ile- mümkün olan en üst düzeyde geliştirilmesi ve üretime alınmasını sağlamaktır. ICterra, yazılım mühendisliğinde mükemmeliyet yaklaşımı ile paydaşlarına, yeni teknolojilerin yanı sıra güvenlik beklentileri için de güncel yaklaşımlar ve güçlü mühendislik çözümleri sunmayı sürdürecektir.

Loading

İlgili İçerikler

Bu web sitesi deneyiminizi geliştirmek için çerezler kullanmaktadır. Bu konuda bilgi sahibi olduğunuzu düşünüyoruz, ancak isterseniz devre dışı bırakabilirsiniz. Kabul Et Detaylı bilgi almak için tıklayın.