Makale Özeti

Bu yazımızda giderek önem kazanan yazılım güvenliğini sağlayabilmek için önemli bir yaklaşım olan tehdit modellemenin ne olduğunu inceleyeceğiz. Bir başka yazıda ise, tehdit modelleme sürecinden detaylı olarak bahsedeceğiz.

Makale

Tehdit modelleme, bir bakıma polisin hırsız gibi düşünmek üzere kendini koşullamasıdır. Sisteminizin tümünü gözden geçirip tehdide açık olan noktaları belirlemenizi ve olası tehditleri derecelendirmenizi sağlar.
Çözümlemeye dayalı bir yaklaşımdır. Bir yöntembilim içerdiği için kişisel yaklaşımların gözden kaçırabileceği unsurların da dikkate alınmasını sağlar. Böylelikle tasarımcıların tasarım özelliklerini belirtirken güvenlik unsurlarını da sağlıklı bir şekilde işin içine katabilmeleri mümkün olur.

Tehdidi anlamadan savunma yapılamaz!

Üzerinde çalıştığınız sistemin ne gibi tehditlerle karşılaşacağını anlamadan güvenli sistemler oluşturamazsınız! Tehdit modellemenin temel vurgusu budur. Hedef, sistemin maruz kalabileceği tehditleri önceden belirlemek ve bu olası tehditlerin gerçekleşen ataklara dönüşmesi durumunda etkileri mümkün olduğunca en azda tutmaktır.
Aslında basit bir yaklaşım olmakla birlikte önemli zaman yatırımı gerektirir ve doğru yapılabilmesi için birikmiş tecrübe önemlidir. Ama harcanan bu zaman iyi bir yatırımdır. Çünkü başlangıçta ayrılan bu zaman sayesinde ileride bir tehdidin bertaraf edilebilmesi yerine göre yüzlerce kat zaman kaybını hatta daha stratejik kayıpları engelleyebilir.

Erken teşhis…

Bir güvenlik hatasının tasarım aşamasında fark edilip ortadan kaldırılması görece olarak ucuzdur. Aynı hatanın ürünün paketlenmesinden hemen önce bulunması, ya da daha kötüsü ürün paketlenip yaygın kullanıma sunulduktan sonra bulunması durumlarıyla kıyaslayınca erken teşhisin ne kadar önemli olduğu daha net bir şekilde ortaya çıkar. Sonraki süreçlerde ortaya çıkan hatalar tasarım sürecine göre on kat, yüz kat, bin kat daha pahalıya patlayabilir.
Bilgisayar kullanımının giderek yaygınlaşmasıyla güvenlik açıklarının önemleri ve olası zararları da giderek artmaktadır. Ağustos 2003’te ABD’nin kuzeyinde ve Kanada’da çok büyük bir alanı (New York dahil) elektriksiz bırakan ve çözülmesi günler alan sorunda bilgisayar sistemlerindeki güvenlik sorunlarının da ağırlaştırıcı rol oynadığı iddia edilmiştir. Benzer durumlar dünyanın çeşitli yerlerinde her an oluşabilir. Bu tür aksaklıklar kolaylıkla parasal kaybın ötesinde can kaybına dönüşebilir.
Tüm bunlar düşünüldüğünde olası tehditleri en baştan modellemek için yapılan yatırımların gerçekten kendini çok iyi ödeyen yatırımlar oldukları ortaya çıkmaktadır.

Yapısal yaklaşım…

Tehdit modelleme yaklaşımının önemli bir başka özelliği yapısal olması ve bu özelliğiyle kişisel olarak uygulanan gelişigüzel yaklaşımlara göre çok daha etkin maliyetlere sahip olmasıdır. Tehdit modelleme kullanmadan uygulamanızın hangi özelliklerinin ne tür ataklarla karşılaşacağını bilemezsiniz. Atladığınız bir tek önemli özellikteki bir tek önemli güvenlik hatası, size çok pahalıya mal olabilir.
Tehdit modelleme sonucu ele almaya karar verdiğiniz atak türleri, sisteminizi etkileme olasılığı en yüksek olanlar olacaktır.
Bu yapısal yaklaşımın dolaylı bir başka faydası ise, uygulamayı incelerken ilgili kişilerin uygulamaya yönelik anlayışlarının da derinleşmesidir. Yine güvenlikle ilgisi olmayan başka hataların da bulunmasında önemli fayda sağlanır.
Diğer tür çözümlemelerde gözden kaçırılabilecek karmaşık tasarım hataları da yine tehdit modelleme yaklaşımında daha kolay yakalanabilir. Ufak ufak oluşan ve gözden kaçan hatalar bazı durumlarda birleşip büyük bir hataya sebep olabilmektedir. Bunları yapısal bir yaklaşım olmadan yakalamak bir hayli zor, biraz da şansa kalmış bir iştir. Gerek uygulama geliştiriciler gerekse test ekipleri tarafından yaygın olarak kullanılan birim testleri bu tür sorunları gözden kaçırabilmektedir.
Yine bir başka fayda, yazılım geliştirme takım üyelerinin böyle bir inceleme ile yazılıma daha kolay yakınlık sağlayabilmeleridir.
Ama tüm bunlar ağırlıklı olarak yan amaçlardır: Asıl amaç, gerçek hayatta mümkün olduğunca güvenli bir sistem ortaya koyabilmek, bunu saldırılara karşı dirençli kılmak, olası bir saldırı durumunda da zararı en aza indirgemeyi başarabilmektir.
 

Not: Bu yazıda tehdit modelleme yaklaşımının ne olduğu biraz serbest bir tarzla anlatılmıştır. Takip eden ve tehdit modelleme sürecini aktaran yazıda daha detaylı olarak yaklaşımın adımlarını göreceksiniz.