|
Saldırı Ağaçları |
|
Fikir olarak ilk defa Bruce Schneier [1] tarafından ortaya atılan saldırı ağaçları (attack trees) [10] bir sistemin tasarımı ve işletimi esnasında dikkate alınması gereken güvenlik risklerini bir saldırganın gözüyle ele alarak mümkün olan bütün tehditleri ve bu tehditlerin farklı özelliklerini (olabilirlik, maliyet v.b.) tespit etmeyi amaçlar. Zincirin en zayıf halkası misali bir sistem de ne kadar gelişmiş güvenlik çözümleri sunsa da ancak saldırıya açık yönü kadar güvenlidir. Bu sebeple, meydana gelebilecek bütün güvenlik saldırıları düşünülerek tasarlanmış bir sistem için ancak gerçek güvenlikten bahsedilebilir. Saldırı ağaçları, sistemin bütün açıklarını belirleyerek gözden kaçması mümkün olan noktaları belirlemeyi sağlamaları yönüyle önemlidirler. Bu yazımda saldırı ağaçlarının nasıl tasarlandığını ve ağaçların güvenlik sorunlarının ve çözümlerinin analizine nasıl yardım ettiğini anlatacağım. 2. Nasıl Tasarlanır? Saldırı ağacını tasarlarken öncelikle bir saldırgan olduğunuzu varsayıp sisteme saldırmak için kendinize bir hedef belirlersiniz ve bu hedefinizi ağacınızın en tepesindeki ana yaprak olarak atarsınız. Daha sonra bu ana hedefe ulaşmak için uygulayabileceğiniz yöntemleri listelersiniz. Belirlediğiniz yöntemler ağacınızdaki birinci seviye yapraklardır. Bu işlemi her seviyedeki yapraklar için uygulayıp hedefe ulaşmayı sağlayacak bütün yöntemler ve alt yöntemlerini tespit edersiniz. Bir yöntemin alt yöntemleri arasında VE ya da VEYA olmak üzere iki türlü ilişki olabilir. VEYA ilişkişi alt yöntemlerden birinin uygulanması halinde ana yöntem başarıyla gerçekleştirilmiş manasına gelir. VE türü ilişki ise ana yöntemin başarılı olabilmesi için alt yöntemlerin hepsinin başarılı şekilde uygulanması gerektiğını göstermektedir. İlişki türü ağaç üzerinde açıkça belirtilmedi ise ilişki türünün VEYA türü ilişki olduğu varsayılır. Yukarıda özetlenen tasarım işlemini bir örnek üzerinde göstermeye çalışalım: Örneğin web tabanlı bir e-posta hizmeti sunmak istiyorsunuz. Kullanıcılarınız, kimlik asıllama (authentication) için kullanıcı adı-parola çiftini kullanacaklar. Bir saldırganın belirlediği belli bir kişinin e-postalarına izinsiz erişmesini ana hedef olarak seçelim ve saldırganın bu ana hedefe ulaşabilmesi için uygulayabileceği yöntemleri saldırı ağacı ile gösterelim. Saldırı ağacını oluşturduğumuzda saldırganlardan gelebilecek bütün tehditlerini biliyor olacağız ve buna göre çözümlerimizi sunacağız. Şekil 1’de gösterildiği gibi saldırı ağacının en tepesine saldırganın ana hedefi olan e-postalara izinsiz erişim yerleştirilir. Diğer alt dallar ise bu hedefe ulaşabilmek için yapılabilecek yöntemleri (tehditleri) göstermektedir.
Şekil 1: E-posta Sistemi için Saldırı Ağacı Saldırgan, e-postalara izinsiz erişim sağlayabilmek için başlıca beş yöntem deneyebilir 1.
· Kullanıcıların çok sık yaptıkları hatalardan birisi parolalarını kağıda yazıp bunları başkalarının da rahatça erişebileceği yerlerde bulundurmalarıdır. Bilgisayar monitörü üzerine yapıştırılan parolalar bu tip hatalara örnek olarak verilebilir. Üzerinde parola yazılı kağıtlar saldırganlar açısından gökte ararken yerde buldukları hazineler olarak tanımlanabilir. · Kimlik doğrulaması esnasında parolasını sisteme giren kullanıcının yakınında ve de klavyesini görebilecek pozisyonda olan saldırganlar (shoulder surfing [6]) parolayı gizlice görmeye çalışabilirler. · Kimlik hırsızlığı (phishing [3]) yöntemi ile saldırganlar kullanıcılara kendilerini ilgilendiren ve de geçerli (authentic) bir yerden gelmiş gibi görünen e-postalar gönderirler. Bu sayede kullanıcıların parolalarını çalmayı hedeflerler.
· İletişim kanalında taşınan iletilere direkt erişilebilindiği bir ortamda (ör. internet) şayet iletiler şifrelenmeden taşınıyor ise saldırganların parolaları ele geçirmeleri gayet kolaydır. · Şifrelenmiş iletiler için de risk söz konusudur. Saldırgan şifreli iletileri deşifre etmeye çalışabilir. Örneğin, DES (Data Encryption Standard) gibi zayıf şifreleme algoritmalarının kullanılması saldırganların başarı şansını yükseltebilir. Dikkat edilirse ağacımızda iletişim kanalının deşifre edilmesi ile ileti özünün (message digest) deşifre edilmesi arasında VE ilişkişi bulunmaktadır. Parolayı elde etmek için iletiyi deşifre etmek yetmeyebilir. Günümüz sistemlerinde parolalar şifreli kanallar üzerinde gönderilseler bile düz yazı (plaintext) olarak değil ileti özleri hesaplanıp gönderilirler. Bu sayede saldırganlar iletileri deşifre etseler bile parolanın kendisini değil sadece ileti özü değerini ele geçirmiş olurlar. Fakat bu da bir güvenlik riskidir, çünkü ileti özü bilinen bir parolanın düz yazı değerini bulan progamlarda mevcuttur [2]. Bunu yaparken yine sözlük saldırılarından yararlanılır. Sözlükte var olan bütün parolaların sırası ile ileti özleri hesaplanır ve iletişim kanalından ele geçirilen parola ile karşılaştırılır. Şayet bir eşleşme bulunursa parola elde edilmiş olur.
· Tuş kayıtçıları (key logger), kullanıcının bilgisayarında gizlice çalıştırılmak sureti ile basılan bütün tuşların kayıt edilmesini ve böylece parolanın ele geçirilmesine olanak verirler. · Oturum çalma (session hijacking) yöntemi ile saldırgan kullanıcının daha önceden kullanıcı adı ve parolasını ile kimlik asıllaması sonucunda oluşturulan oturumunu ele geçirerek e-posta sisteminin kimlik doğrulama kısmının es geçmeyi hedefler.
3. Geliştirilmiş Saldırı Ağacı Saldırı ağacımızda var olan bütün yapraklar olası tehlikelerdir ve bunlara karşı önlem almak zorundayız. Ancak her tehlike bizim için aynı derecede tehdit oluşturmayabilir. Örneğin gerçekleştirilebilmesi için özel ve pahalı bir cihaz gerektiren bir tehdidi, sıradan herkesin kolaylıkla gerçekleştirebileceği bir tehditle karşılaştırdığımızda öncelik olarak ikinci plana atabiliriz. Dolayısı ile öncelikleri belirlemek ve de farklı tehditler arası bir karşılaştırma yapabilmek için her tehdidi tasvir eden yardımcı bilgileri de ağacımıza ekleyebiliriz. Bu yardımcı bilgiler şunlar olabilir: · Saldırının özel bir araç gerektirip gerektirmediği, · Saldırının maliyeti, ucuz olup olmaması, · Saldırının kolay olup olmaması, · Saldırının yasal olup olmaması, · Saldırının gerçekleşme süresi v.s. Belirlediğimiz bu yardımcı bilgileri kullanarak saldırı ağacımızı tekrar gözden geçirip sistemimizin en zayıf yönlerini dolayısı ile en öncelikli çözüm bekleyen riskleri belirleriz. Şayet tehdide karşı geliştirilecek çözümün maliyeti sistemin koruma sağladığımız mekanizmasının değerinden daha fazla ise bu tehditleri görmezden de gelebiliriz. 4. Saldırı Ağaçları için Araçlar Saldırı ağaçını çizmek için basit bir grafik programı işinizi görecektir. Ama bu iş için grafik çizmenin ötesinde aynı zamanda analiz de yapabilen bir araç isterseniz Amenaza şirketinin SecureITree (Şekil 2) [5] isimli ürünü işinizi görecektir. SecureITree, saldırı ağaçları içın özel tasarlanmış bir yazılımdır.
Şekil 2: SecureITree Yazılımı Genel Görünümü Bu yazılım, saldırı ağacını grafiksel çizmenin ötesinde başka fonksiyonlar da sunmaktadır. Örneğin tehditlerin yanı sıra tehditlerin sebep olacağı zararları (maliyet v.b.) detaylı olarak belirtebilirsiniz. İçinde ön tanımlı olarak gelen tehdit kütüphanesi sayesinde ağacınızı kolay, hızlı ve bütün tehditleri içerecek şekilde oluşturabilirsiniz. Ağacınızı farklı saldırganlara karşı otomatik olarak değiştirebilirsiniz. Bunu yapmak için, öncelikle muhtemel saldırganın kabiliyetini temsil eden özellikleri belirtiyorsunuz ve program otomatik olarak ya bu tip saldırganın yapabilmesi mümkün olmayan fakat saldırı ağaçında mevcut olan tehdit dallarını ağaçtan çıkarıyor ya da aksine yeni tehdit dalları ekliyor. Bu araç sayesinde yine sisteminizde güvenlik için ne kadar harcama yapıldığını, gelecekte ne kadar yapılacağını düzenli olarak takip etmeniz mümkün. Program ücretli olup deneme sürümünü [4]’den indirip kullanabilirsiniz. SecureITree kadar kapsamlı olmamakla birlikte açık kaynak kodlu diğer bir saldırı ağacı tasarım yazılımı da [11]'den indirilebilir. Kaynaklar: [1] Bruce Schneier. [2] John-the-Ripper password cracker. [3] Kimlik hırsızlığı. [4] SecureITree Deneme Sürümü. [5] SecureITree Yazılımı. [6] Shoulder surfing. [7] Sosyal mühendislik. [8] WWWHack [9] Burak Dayıoğlu (Dikey8). Art niyetli yazılımlar ve kaynak kod incelemesi. [10] Bruce Schneier. Attack Trees.
[11] ToengelNet-Saldırı Ağacı Tasarım
Yazılımı. 1 Saldırganın kabiliyetine ve de sisteminizin özelliklerine göre tehdit yöntemlerini artırabilir ya da azaltabilirsiniz.
Bu yazıyla ilgili görüş ve yorumlarınızı yorum@teknoTurk.org ve tatli@th.informatik.uni-mannheim.de adreslerine yollayabilirsiniz.
|