# Saldırı ağaçları
Saldırı ağaçları, bir varlık veya hedefe nasıl saldırılabileceğini gösteren kavramsal diyagramlardır. Saldırı ağaçları birçok farklı uygulamada kullanılmıştır. Bilgi teknolojileri alanında, bilgisayar sistemlerindeki tehditleri ve bu tehditleri gerçek kılacak alternatif saldırıları tanımlamak için kullanılmışlardır. Ancak, saldırı ağaçlarının kullanımı sadece bilgi sistemlerinin analizi ile sınırlı değildir. Saldırı ağaçları, savunma ve havacılık alanında kurcalamaya karşı korumalı elektronik sistemlerde (Örneğin askeri uçaklardaki aviyonik sistemleri.) tehdit analizi için de sıklıkla kullanılmaktadır. Saldırı ağaçları artan bir oranda bilgisayar kontrol sistemlerinde (özellikle elektrik dağıtım hatları ile ilgili) de kullanılmaktadır. Saldırı ağaçları fiziki sistemlere saldırıları anlamak için de kullanılmıştır.
Saldrı ağaçlarına ait ilk tanımlamalar "Counterpane Internet Security"nin CTO'su olduğu dönemde Bruce Schneier tarafından yazılan akademik yayın ve makalelerde bulunabilir. Schneier, açıkça saldırı ağaçları konseptinin geliştirilmesinde ilgiliydi ve bunların duyurulmasında etkiliydi. Fakat, saldırı ağaçları ile ilgili ilk makalelerdeki atıflar Ulusal Güvenlik Ajansı#YÖNLENDİRME ]'nın da ilk geliştirmelerle ilgisini ortaya koymaktadır.
Saldırı ağaçları, eğer aynısı değilse, tehdit ağaçları ile çok benzerdir. Tehdit ağaçları 1994'te Edward Amoroso. tarafından tanımlanmıştır.


## Temel.
Saldırı ağaçları bir kök nod, dallar ve çocuk nod'lardan oluşan çok seviyeli diyagramlardır. Aşağıdan yukarı doğru, çocuk nod'lar, bir üst nod'un (kök nod) ele geçirilmesi için gerekli şartları tanımlar. Bir nod'a ancak onun alt nod'larından birindeki şartları sağlayarak erişilebilir. Kök nod'a ulaşıldığında ise saldırı tamamlanmış olur.
Bir nod bir başka nod'un çocuk nod'u olabilir; böyle bir durumda mantıksal olarak bir saldırının çoklu adımlar ile ele alınması doğaldır. Örneğin, bir sınıfta masalara sabitlenmiş bilgisayarları ele alalım. Bunlardan birini yerinden çıkarmak sabitleyici kablo kesilmeli ya da kilidi açılmalıdır. Kilit zorlama ile veya bir anahtar ile açılabilir. Anahtar, anahtar sahibi tehdit edilerek, anahtar sahibine rüşvet verilerek veya anahtar bulunduğu yerden alınarak ele geçirilebilir. Bu şekilde 4 adımdan oluşan bir saldırı ağacı çizilebilir ki bunun bir yolu şu şekildedir (Anahtar sahibine rüşvet ver, Anahtarı ele geçir, Sabitleme kablosunun kilidini anahtar ile aç, Bilgisayarı ele geçir).
Ayrıca, bir nod'da saldırı gerçekleştirilebilmesi için onun birden fazla çocuk nod'larındaki şartların sağlanması da gerekebilir. Yukarıdaki örneğimiz sadece VEYA durumlarını ele almaktadır; ancak vE durumları da tanımlanabilir. Örneğin, bilgisayarın ele geçirilmesi için hem alarmın kapatılması hem de sabitleyici kablonun çıkarılması gerekebilir. Böyle bir durumda saldırı yolu şekilde tanımlanabilir ((Alarmı kapat, Sabitleyici kabloyu çıkar), Bilgisayarı ele geçir).
Saldırı ağaçları yerleşik hata ağaçları fnotasyonu ile ilişkilidir. Hata ağaçları metodolojisi çocuk nod'lardan ata nod'lara ulaşılmasında koşul olarak mantıksal ifadeleri kullanır. Her nod ile ilişkili öncül olasılıkları kullanarak, Bayes Teoremi ile üst nod'lar ile ilişkili olasılıkları hesaplamak mümkündür. Ancak, gerçekte doğru olasılık değerleri ya mevcut değildir ya da bu olasılık değerlerinin bulunması çok maliyetlidir. Aktif etkenleri (Örneğin saldırganlar) de içeren bilgisayar güvenliğinde, ne olayların olasılık dağılımı bağımsız olduğundan ne de eşit bir şekilde dağıtık olduğundan Bayes yöntemi ile analiz uygun değildir.
Hata ağaçları analizinde kullanılan Bayes yöntemi ile analiz tekniklerinin saldırı ağaçlarında doğru bir şekilde uygulanması mümkün olmadığından, bir saldırgan tarafından hangi saldırıların tercih edileceğinin belirlenmesinde farklı teknikler kullanılmaktadır. Bunlar, gerçekleştirilecek saldırının kaynak gereksinimleri ile saldırganın yeteneklerinin (zaman, para, yetenek, donanım) kıyaslanmasını içerebilir. Saldırganın yeteneğine yakın veya yeteneğinin ötesindeki saldırılar ucuz veya kolay olarak algılanan saldırılara göre daha az tercih edilir. Bir saldırının saldırganın hedeflerine ne ölçüde ulaşmasını sağladığı da saldırganın tercihlerini etkiler. Saldırganın yetenekleri dahilinde ve amacı ile uyumlu saldırılar olasılığı bu şartları sağlamayan saldırılara göre daha yüksektir.


## İnceleme.
Saldırı ağaçları, özellikle bazı saldırılarda, büyük ve karmaşık olabilmektedir. Bir tam saldırı ağacı, saldırı hedefine ulaşan yüzlerce veya binlerce yoldan oluşabilir. Bununla birlikte, saldırı ağaçları hangi tehditlerin var olduğu ve bunlara karşı nasıl önlem alınacağı kararının verilmesinde çok faydalıdır.
Saldırı ağaçları bilgi güvenliği stratejisi oluşturulmasında kullanım alanı bulabilir. Fakat, bu stratejileri etkileyen politikaların saldırı ağaçlarını etkileyeceği dikkate alınmalıdır. Örneğin, bilgisayar virüslerinden korunmada sistem yöneticilerinin mevcut program ve program dosyalarına doğrudan erişiminin engellenmesi yerine paket yönetim sistemleri nin kullanımı zorunlu olabilir. Bu da saldırı ağacına paket yönetim yazılımındaki muhtemel tasarım hataları ve istismar ları eklemektedir.
Saldırı ağacında bir tehdidi gidermenin en etkili yönteminin tehdidin mümkün olduğunca kök nod'a en yakın olduğu yerde giderilmesi olduğu düşünülebilir. Teorik olarak bu mantıklı görünse de, sistemde devam eden diğer fonksiyonlar üzerinde olumsuz bir etkisi olmadan bir tehdidin giderilmesi çoğunlukla mümkün değildir. Örneğin, Windows sistemine bulaşan virüs tehdidi, kullanıcıların dosya sistemini değiştirmesini engellemek için, standart bir hesap hesap (yönetici olmayan) ve FAT yerine NTFS dosya sistemi kullanılarak büyük ölçüde azaltılabilir. Bunu uygulamak işletim sistemine virüs bulaşmasına neden olabilecek öngörülen veya öngörülmeyen her yöntemi devre dışı bırakır, ancak bu durum aynı zamanda kullanıcıların yönetici yetkisi gereken işleri yapmaları için yönetici hesaplarını da kullanmalarını gerektirir ki böylece tehdit ağacı üzerinde farklı bir tehdit seti ve yönetimsel zorluk oluşur.Ayrıca, kullanıcılar yazma hakları olan dosya ve dokümanlara hala virüs bulaştırabilirler.
Tehdit zincirlerini dinamik olarak tespit eden ve bulan ajanlar kullanarak saldırı ağacı oluşturan sistemler 2000  yılından beri yapılmıştır.


## Bilgi Sistemlerinde Saldırı Ağaçları.
Bilgisayar ağları üzerindeki cihazlarda (aktif ağ cihazları, sunucular, kullanıcı bilgisayarları) donanımsal veya yazılımsal zafiyetler bulunabilmektedir. Bunlardan, yazılımsal zafiyetler, daha fazla sayıda olmaları ve daha kolay istismar edilebilir olmaları nedeniyle hem saldırganların hem de sistem yöneticilerinin daha fazla dikkatini çekmektedir. Bir sistemde var olan yazılım kaynaklı zafiyetler, zafiyet tarama araçları (Nessus, OpenVAS, Nexpose vb.) ile büyük oranda tespit edilebilir. Hangi yazılımlarda veya bu yazılımların hangi versiyonlarında ne tür zafiyetler bulunduğu ise zafiyet veritabanları üzerinden incelenebilir. Yazılımsal zafiyetlere ilişkin açık kaynak zafiyet veritabanlarının en bilinenlerinden bir tanesi NVD (National Vulnerability Database - Ulusal Zafiyet Veritabanı)'dir.
Bilgi sistem ağları üzerindeki yazılımsal zafiyetleri kullanarak çok adımlı ve birden çok cihazı içeren gelişmiş saldırılar yapmak mümkündür ve saldırganlar tarafından gerçekleştirilen pratik uygulamaları mevcuttur. Bu nedenle, bilgisayar ağları üzerinde yazılım zafiyetleri tabanlı saldırı ağaçları oluşturulması ile ilgili çalışmalar da mevcuttur. Bu yöntem ile bilgisayar ağları üzerinde tehdit modellemeleri yapmak mümkündür ve bu modeller klasik zafiyet tarama araçlarına göre şu faydaları sağlamaktadır.
  - Zafiyet tarama araçları ile bulunan zafiyetlerden hangilerinin istismar edilip hangilerinin istismar edilemeceği saldırı ağaçları ile analiz edilerek, koruyucu/önleyici tedbirlerin sadece istismar edilebilen zafiyetler için alınması sağlanabilir. Bu şekilde zaman ve kaynak tasarrufu sağlanmış olur. 
  - Sistem üzerindeki bir hedefe ulaşmak için hangi zafiyetlerin hangi adımlar izlenerek istismar edilmesi gerektiği incelenebilir ve bu şekilde saldırı ağacı üzerinde koruyucu/önleyici önlemin nerede uygulanmasının maliyet etkin olduğu tespit edilebilir. Örneğin, saldırı ağacında saldırgana en yakın olan nokta veya noktalarda uygulanacak koruyucu/önleyici tedbirler, diğer zafiyetler için bir tedbir uygulanmasa dahi saldırıların önlenmesi için yeterli olabilir. 
  - Zafiyetelerin kaç adımda istismar edildiği ve zafiyetlerle ilgili diğer parametreler dikkate alınarak saldırılara ilişkin olasılık değerleri bulunarak ve risk analizleri gerçekleştirilebilir. 
  - Zafiyetlerin kaç adımda istismar edildiği ve zafiyetlerle ilgili diğer parametreler dikkate alınarak sistem üzerindeki bir hedefe modellenen bir tehdidin yaklaşık ne kadar sürede ulaşılabileceği bulunabilir. 
  - İç ve dış saldırgan gibi tehdit tipleri ile tehdit modellemesi yapılarak hangi konum ve tipteki tehditlerin daha tehlikeli olduğu analiz edilebilir. 
  - Sistem üzerindeki bir hedefin ele geçirilmesi için bir tehdidin sahip olması gereken minimum yeteneklerin ne olduğu tespit edilebilir.
Bilgi sistem ağları üzerinde yazılımsal zafiyetler kullanılarak saldırı ağacı oluşturmak genel olarak 3 farklı yöntem kullanılabilir.
  - Ön koşul/olası sonuç modelleri: Bir zafiyetin istismar edilmesi için saldırganın sahip olduğu yetki ve yeteneklerin zafiyetin istismar koşulları ile kıyaslanması ile zafiyetin istismar edilip edilemeyeceği belirlenir. Zafiyetin istismar edilmesi sonrasında kazanılan yetki ve ayrıcalıklar saldırganın yetki ve ayrıcalıklarına eklenerek müteakip adımlardaki zafiyetlerin istismar edilip edilemeyeceğinin simülasyonu yapılır. NETSPA (Network Security Architecture) ve TVA (Topological Analysis of Network Attack Vulnerability) bu yaklaşımı kullanan modelleme örnekleridir. 
  - Yapay zeka tabanlı modeller: Bu yaklaşımı kullanan modelleme örneği olarak MULVAL verilebilir. MULVAL saldırı ağacı oluşturmak için gerekli bilgileri verileri olarak alır ve mantıksal analiz aracında derleyerek saldırı ağacı oluşturur.
  - Ontoloji tabanlı modeller: Tehdit, zafiyet, istismar, ağ topolojisi vb. bilgilerin ontolojik olarak tanımlanmasına dayalı modellerdir. Bu modele ilişkin olarak halihazırda sadece teorik çalışmalar mevcuttur. Kapsamlı ve yeterli detayda tanımlanmış ontolojik modeller henüz mevcut olmadığı için bu yaklaşım ile gerçek hayatta uygulanabilir saldırı ağaçları oluşturulması mümkün değildir.
Saldırı ağaçlarının oluşturulması için yukarıda sıralanan her üç modelde de ihtiyaç duyulan veriler ise şunlardır:
  - Bilgi sistem ağının topolojisi ve bu ağ üzerinde var olan cihazlar (Aktif ağ cihazları, sunucular, kullanıcı bilgisayarları).
  - Bilgi sistem ağı üzerindeki cihazlar arasındaki erişilebilirlik verisi: Güvenlik duvarı, IDS/IPS cihazları, anahtar ve dağıtıcı konfigürasyonları dikkate alınarak hangi cihazlardan hangi cihazlara erişim sağlanabildiği.
  - Bilgi sistem ağı üzerindeki yazılımsal zafiyetler: Zafiyet tarama araçları ile elde edilen zafiyet bilgileri.
  - Tehdidin konumu ve sahip olduğu yetki ve yetenekler.


## Saldırı ağacı modelleme yazılımları.
Birçok ticari ve açık kaynak ürün mevcuttur.


### Açık Kaynak.
ADTool Lüksemburg Üniversitesi
Ent
SeaMonster


### Ticari.
AttackTree+ Isograph
Secur"IT"ree Amenaza Teknolojileri