Hack kütüphanesi..
Saldırı Agacları
Saldırı Ağaçları
1. Saldırı Ağaçları Nedir?
Fikir olarak ilk defa Bruce Schneier tarafından ortaya atılan saldırı ağaçları (attack trees) 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- “parolamı unuttum” Mekanizması: Saldırgan, bu yöntemle kullanıcıların zaaflarından faydalanarak geçerli parolayı değiştirmeyi hedefler. parolamı unuttum seçeneği sisteme ilk kayıt esnasında kullanıcı tarafından belirtilen gizli sorunun cevabının bilinmesi şartı ile parolanın değiştirilmesine izin verir. Ancak bu tip gizli sorular genel olarak annenizin kızlık soyadı, doğum yeriniz, kedinizin adı gibi genelde cevabını başkalarının da bildiği ya da en azından kolayca bulabileceği soru grubundan seçilmektedir.
2- Kaba-kuvvet Saldırıları (Brute-force Attacks): Bu yöntem sayesinde saldırgan mümkün olan bütün ihtimalleri parola olarak deneyebilir. Bu çok uzun süren ama kesin sonuç veren bir saldırıdır. Günümüzde kaba-kuvvet saldırılarını otomatik olarak gerçekleştiren programlar da mevcuttur [8]. Kaba-kuvvet saldırılarının bir türevi de sözlük saldırılarıdır (dictionary attacks). Bütün ihtimalleri denemek her ne kadar kesin sonuç verse de çalışma süreleri çok uzun vakit almaktadır. Burada bütün ihtimalleri denemek yerine doğru parola olma olasılığı daha yüksek olan parolaları denemek daha tercih edilir bir yoldur. Sözlük saldırıları işte bu noktadan hareket ederek kullanıcıların sıklıkla kullandıkları parolaları bir araya getirirler ve saldırı esnasında sadece bu olası parolaları deneyerek daha kısa sürede sonuca varmayı hedeflerler.
3- Sosyal Mühendislik (Social Engineering): Sosyal mühendislik yöntemini seçen saldırganlar zincirin en zayıf halkası olarak kullanıcının kendisini görüp telefon ya da internet gibi iletişim araçları aracılığı ile kullanıcıdan gizli bilgileri almayı hedeflerler. E-posta sistemize karşı sosyal mühendisler başlıca şu üç yöntemi deneyebilirler.
· 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) parolayı gizlice görmeye çalışabilirler.
· Kimlik hırsızlığı (phishing) 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.
4- İletişim Kanalı Saldırıları: Şayet saldırganlar kullanıcı ile e-posta sunucusunun arasındaki iletişim kanalını dinleyebilme ve iletileri kopyalayabilme olanağına sahip iseler aşağıda sıralanan tehditlerden faydalanabilirler:
· İ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 . 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.
5- Truva Atları (Trojan Horses): Truva atları, kullanışlı programlar içerisine gizlenerek kullanıcının sisteminde çalışıp kullanıcının zarar göreceği işlemleri gerçekleştiren programcıklar olarak tanımlanabilirler. Truva atlarını kullanarak saldırganlar aşağıdaki saldırıları gerçekleştirebilirler:
· 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.
Şu ana kadar saldırı ağacı yöntemi ile sistemde meydana gelebilecek tehditleri detaylı ve bütün bir şekilde belirlemiş olduk. Bundan sonraki adım hazırladığımız saldırı ağacını başkalarının değerlendirmesine sunup şayet eksik kalan tehditler var ise bunların tamamlanmasını sağlamaktır.
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.Kaynak
1. Saldırı Ağaçları Nedir?
Fikir olarak ilk defa Bruce Schneier tarafından ortaya atılan saldırı ağaçları (attack trees) 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- “parolamı unuttum” Mekanizması: Saldırgan, bu yöntemle kullanıcıların zaaflarından faydalanarak geçerli parolayı değiştirmeyi hedefler. parolamı unuttum seçeneği sisteme ilk kayıt esnasında kullanıcı tarafından belirtilen gizli sorunun cevabının bilinmesi şartı ile parolanın değiştirilmesine izin verir. Ancak bu tip gizli sorular genel olarak annenizin kızlık soyadı, doğum yeriniz, kedinizin adı gibi genelde cevabını başkalarının da bildiği ya da en azından kolayca bulabileceği soru grubundan seçilmektedir.
2- Kaba-kuvvet Saldırıları (Brute-force Attacks): Bu yöntem sayesinde saldırgan mümkün olan bütün ihtimalleri parola olarak deneyebilir. Bu çok uzun süren ama kesin sonuç veren bir saldırıdır. Günümüzde kaba-kuvvet saldırılarını otomatik olarak gerçekleştiren programlar da mevcuttur [8]. Kaba-kuvvet saldırılarının bir türevi de sözlük saldırılarıdır (dictionary attacks). Bütün ihtimalleri denemek her ne kadar kesin sonuç verse de çalışma süreleri çok uzun vakit almaktadır. Burada bütün ihtimalleri denemek yerine doğru parola olma olasılığı daha yüksek olan parolaları denemek daha tercih edilir bir yoldur. Sözlük saldırıları işte bu noktadan hareket ederek kullanıcıların sıklıkla kullandıkları parolaları bir araya getirirler ve saldırı esnasında sadece bu olası parolaları deneyerek daha kısa sürede sonuca varmayı hedeflerler.
3- Sosyal Mühendislik (Social Engineering): Sosyal mühendislik yöntemini seçen saldırganlar zincirin en zayıf halkası olarak kullanıcının kendisini görüp telefon ya da internet gibi iletişim araçları aracılığı ile kullanıcıdan gizli bilgileri almayı hedeflerler. E-posta sistemize karşı sosyal mühendisler başlıca şu üç yöntemi deneyebilirler.
· 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) parolayı gizlice görmeye çalışabilirler.
· Kimlik hırsızlığı (phishing) 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.
4- İletişim Kanalı Saldırıları: Şayet saldırganlar kullanıcı ile e-posta sunucusunun arasındaki iletişim kanalını dinleyebilme ve iletileri kopyalayabilme olanağına sahip iseler aşağıda sıralanan tehditlerden faydalanabilirler:
· İ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 . 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.
5- Truva Atları (Trojan Horses): Truva atları, kullanışlı programlar içerisine gizlenerek kullanıcının sisteminde çalışıp kullanıcının zarar göreceği işlemleri gerçekleştiren programcıklar olarak tanımlanabilirler. Truva atlarını kullanarak saldırganlar aşağıdaki saldırıları gerçekleştirebilirler:
· 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.
Şu ana kadar saldırı ağacı yöntemi ile sistemde meydana gelebilecek tehditleri detaylı ve bütün bir şekilde belirlemiş olduk. Bundan sonraki adım hazırladığımız saldırı ağacını başkalarının değerlendirmesine sunup şayet eksik kalan tehditler var ise bunların tamamlanmasını sağlamaktır.
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.
Bugün 19 ziyaretçi (21 klik) kişi burdaydı!