Ağ atak önleme denildiğinde iki kategori ortaya çıkıyor öncelikle tespit daha sonra engelleme bu iki başlıkta incelemek gerekirse
Firewall , IDS/IPS ,Snort,Suricata, Bro
bu yazılımların içerisinde atak önleme sistemleride mevcut bazıları sadece tespit edereken bazıları her ikisinide yapıyor.
Firewall
Türkçeleştirirsek “Ateş Duvarı” oluyor. amaç ağ’a gelen ve giden paketleri denetlemek ve ağı kontrol altında tutmak. esasen bir kural kümesinden ibaret neyin girip neyin giremeyeceğinin belirlendiği kural kümesine göre paketleri kabul ve rededen bir sistem. Bu sistemde yine yazılımsal ve donanımsal olarak ikiye ayrılıyor.
IDS/IPS
IDS ve IPS konun özeti gibi IDS (Intrusion Detection System ) Saldırı tespit sistemi IPS (Intrusion Prevention System) Saldırı önleme sistemi bazı kaynaklarda IDPS olarakta belirtilir.
IDS kavramı saldırı tespit sistemi ağ içerisinde ve ağa gelen paketleri denetleyerek saldırıları tespit ediyor firewall arkasına konumlandırılıyor.
Saldırı tespit sistemi başlıca aşağıdaki eylemleri içerir:
- Bir program veya bir kişiden kaynaklanan saldırıları tespit eder.
- Algılama mantığını sürekli iyileştirmek için saldırı kalıplarını kaydeder.
- Güçlü bir kontrol paneli ve yükseltme mekanizması kullanarak uyarı ve rapor verir.
- Gelecekteki adli kanıtlar için tüm olası ve olmuş saldırıları veritabanına kaydeder ve etkinleştirir.
- Zarar görmüş sistemi karantinaya alır.
- Veri bütünlüğünü ,erişilebilirliğini ve gizliliğini sağlar.
Saldırı tespit sistemi, bilgisayar ve ağlar için güvenlik yöntemleri başlığı altında ikiye ayrılır.
- Network Intrusion Detection Systems (NIDS) , farklı modda çalışan bir Ağ Arabirim Kartı (NIC) ve ayrı bir yönetim arayüzü olan bir ağ cihazından (veya sensörden) oluşur.IDS, bir ağ segmenti veya sınırı boyunca yerleştirilir ve o segmentteki tüm trafiği izler.Tüm alt ağda trafiği geçirme analizi yapar ve alt ağlarda geçirilen trafiği bilinen saldırıların kitaplığı ile eşleştirir. Bir saldırı tespit edildiğinde veya anormal davranış algılandığında uyarır.
- Host Intrusion Detection Systems (HIDS), üzerinde bulunan agent ile işletim sistemini izler ve verileri günlük dosyalarına yazar. HIDS, yalnızca aracıların kurulu olduğu tekil iş istasyonlarını izleyebilir ve tüm ağı izleyemez. Genellikle kritik sunucularda herhangi bir saldırı girişimini izlemek için kullanılır.HIDS çok fazla kullanılmaz çünkü birden çok bilgisayarda izinsiz giriş denemelerini analiz etmesi zordur. Farklı işletim sistemleri ve konfigürasyonları ile büyük ağlarda bakımı çok zor olabilir. Sistem tehlikeye girdikten sonra saldırganlar tarafından devre dışı bırakılabilir.
Saldırı tespit sistemi, kullanılan algılama yöntemi başlığı altında 5’e ayrılır.
- Signature-Based IDS, zararlı faaliyetlerin “bilinen örüntülerini(imza)” aramaya dayanmak-tadır. Tek yapması gereken, bilinen saldırı imzalarının listesini aramak ve eğer bir eşleşme raporu bulduysa bunu kullanıcı/kuruma vb. bildirmektir. Sadece gördükleri ile önceden belirlenmiş bir kural arasında bir karşılaştırma yaptığı için hızlıdır. Olumsuz olarak ,yeni bir saldırı gerçekleştirildiğinde ,kendi veritabanından herhangi bir örüntüyle eşleşmeyeceği için koruma yapamayacaktır. Saldırılar, mesajları bölerek kendisini kamufle edilebilir. Yeni bir saldırı kaydedildikten sonra, veri dosyalarının ağ güvenli hale gelmeden güncellenmesi gerekir.
- Anomaly-Based IDS, zararlı aktivitenin bilinmeyen benzersiz davranış modelini izlemeyi temel alır. Yeni bir saldırıya veya bilinmeyen tehditlere karşı koruma sağlar. Anormal ve potansiyel olarak zararlı davranışları tanımlamak için ağ trafiğine bakılır ve karşılaştırılır. Olumsuz olarak false positive çok fazla yakalar çünkü NIDS’ler, davranış kalıplarına dayalı bir sistemi izler.Doğru kişinin çok fazla kaynak veya kaynak kullanması, bir anormallik gibi tespit edilebilir ve imza haline gelebilir.
- Pattern Matching IDS, Tek bir paket içinde sabit bir bayt dizisi arar. Trafik incelemesini filtrelemek için, model genellikle belirli bir hizmet ve kaynak veya hedef bağlantı noktasıyla ilişkilendirilir. Bununla birlikte, birçok protokol ve saldırı iyi bilinen bağlantı noktalarından yararlanmaz ve bu nedenle Pattern Matching bu tür saldırıları tespit etmede zorluk çeker. Ayrıca eşleşme, benzersiz olmayan bir patterne dayanıyorsa, çok sayıda false-positive sonuç ortaya çıkabilir.
Stateful Pattern Matching IDS, analizini tek bir pakete dayandırmaktan ziyade, kurulan oturu-mun bağlamını hesaba kattığı için biraz daha karmaşık bir yaklaşım sunar. Bir akış içinde birkaç paket arasında dağıtılabilen stringler arayarak şablon eşlemesini yapar. Örnek verecek olursak paket içerisinde “vi” stringi algılanırsa ve bir sonraki pakette “rüs” algılanırsa, bu durum için alarmı tetikleyerek, Pattern Matching iyileştirilebilir. Bununla birlikte çok fazla bellek ve sistem kaynağı kullanması sebebiyle Pattern Matching’e göre yavaştır.Pattern Matching kadar olmasa da çok sayıda false -positive sonuç üretebilir. - Protocol Decode-Based Analysis, Protokol tabanlı imzalar Pattern Matching’in akıllı bir uzantısı olarak düşünebilirsiniz. Bu tür bir imza ile IDS, RFC’ler tarafından tanımlanan protokol ihlallerini arar ve belirli bir alan için pattern eşleşmelerini içerebilir. Bu yöntem, iyi tanımlanmış protokoller için false-positive azaltmada etkili olmasına rağmen, protokol belirsiz veya gevşek tanımlanmış ise IDS tarafından kolayca gözden kaçırılır.
- Heuristic-Based Analysis, Sezgisel tabanlı bir imza, bir alarmın tetiklenip tetiklenmeyeceğini belirlemek için algoritma kullanır. Bu tür bir analizin ve uyarının bir örneği, belirli bir ana makinede eşik değerlerin eşik sayısı taranırsa bir alarm veren bir imza olacaktır. İmza ayrıca, örneğin bir çevre yönlendiricisi gibi belirli bir kaynaktan gelen SYN paketleri ile sınırlandırılabilir. Sezgisel tabanlı imzalar, belirli saldırı türlerini tespit etmenin tek yolu olsa da, benzersiz ağ ortamlarına daha iyi uyum sağlamaları için ayarlama ve modifikasyon gerektirir. Bununla birlikte , belleği ,CPU’yu ve sistem kaynağını çok fazla kullanır.
Saldırı Önleme Sistemi (Intrusion Prevention System), güvenlik açığı ihlallerini tespit etmek ve önlemek için ağ trafiği akışlarını inceleyen bir ağ güvenliği-tehdit önleme teknolojisidir. IPS genellikle güvenlik duvarının hemen arkasında bulunur ve tehlikeli içeriği olumsuz , güvenilir içeriği olumlu olarak seçen tamamlayıcı bir analiz katmanı sağlar. IPS, kaynak ve hedef arasındaki doğrudan iletişim yoluna yerleştirilir, paketler aktif olarak analiz edilir ve otomatik eylemler gerçekleştirilir.
Saldırı tespit sistemi başlıca aşağıdaki eylemleri içerir:
- Yöneticiye saldırı anında uyarı gönderme
- Kötü amaçlı paketlerin bırakılması
- Kaynak adreste trafiği engelleme
- Bağlantının sıfırlanması
- CRC hatalarını düzeltme
- Paket akışını birleştirme
- TCP katmanında Sequence Number’a bakarak gelen segmentleri sıralama ve eksik varsa bildirme vb.
Sequence Number nedir ?
ÜÇ’LÜ El Sıkışma
TCP üçlü el sıkışmanın adımları yukarıdaki şekile göre şu şekilde özetlenebilir:
- İlk adım istemci tarafından gerçekleştirilir. İstemci işletim sistemi rastgele bir sıra numarası (Sequence Number) ile sunucuya, SYN (Synchronize) biti / bayrağı “1” olarak ayarlanmış bir paket gönderir. Şekilde sıra numarasının 711 olduğu görülmektedir. Bu sıra numarası sayesinde, paketler TCP iletişimi gerçekleşirken sıralı gelmese bile, alıcı taraf bu paketleri sıraya koymasını sağlar. Özetle; istemci sunucuya SYN bayrağı aktif edilmiş ve sıra numarası 711 olan paketi yollar.
- İkinci adım sunucu tarafından gerçekleştirilir. İstemcinin gönderdiği paketi alan sunucu, istemciye sonraki paketi hazırlar. Göndereceği paketin SYN (Synchronize) ve ACK (Acknowledgement) bayraklarını “1” olarak ayarlar. Ayrıca, istemciden gelen paketin sıra numarasına bakar ve istemcinin gönderdiği sıra numarasını 1 arttırarak göndereceği paketin ACK numarasını (Acknowledgement Number) 712 olarak ayarlar. Böylece, sunucu taraf (B tarafı), hem gönderdiği paketin, istemci tarafından doğru sıraya koymasını sağlamış olur; hem de istemci tarafın bir sonraki göndereceği ve sunucu tarafından kabul edilecek olan sıra numarası belirtilmiş olur. Diğer bir deyişle, sunucu “sıra numarası 712 olan paketi bekliyorum” diye belirtmiş olur. Benzer şekilde, sunucu işletim sistemi, rastgele bir sıra numarası (Sequence Number) üretir. Şekilde sıra numarasının 641 olduğu görülmektedir. Bu sıra numarası, gönderdiği paketin cevabını doğru sıraya koymak için kullanılacaktır. Özetle; sunucu istemciye SYN ve ACK bayrakları aktif edilmiş ve sıra numarası 641, ACK numarası 712 olan paketi yollar.
- Son adım istemci tarafından gerçekleştirilir. Sunucunun gönderdiği paketi alan istemci, sunucuya sonraki paketi hazırlar. Göndereceği paketin ACK (Acknowledgement) bayrağını “1” olarak ayarlar. Ayrıca, sunucudan gelen paketin sıra numarasına bakar ve sunucunun gönderdiği sıra numarasını 1 arttırarak göndereceği paketin ACK numarasını (Acknowledgement Number) 642 olarak ayarlar. Bir önceki adımda sunucu tarafından gönderilen ACK numarası (Acknowledgement Number), istemcinin göndereceği paketin sıra numarasına (Sequence Number) eşit olacak şekilde ayarlanır. Şekilde sıra numarasının 712 olduğu görülmektedir. Özetle; istemci sunucuya ACK bayrağı aktif edilmiş ve sıra numarası 712, ACK numarası 642 olan paketi yollar.
TCP iletişiminde iletilmek istenen verileri segmentlere (bölümlere ) ayırıyoruz. her segmente bir sıra numarası verilir.
gönderici bilgisayar her segmenti teker teker gönderip onay beklemez. Bunu yerine segmentleri belirli bir sayıda toplu şekilde gönderiyor. Alıcı bilgisayar alıdıgı segmentleri tampon belleğine yerleştiriyor. iki ardışık segment tampon bellege yerleşince alıcı bilgisayar aldıgı en son segment için gönderici bilgisayara bir onay mesajı gönderiyor.
Örnek verelim Gönderici bilgisayar tampon belleginde 45 adet segment tutuyor. pencere büyüklüğü olarak 10 rakamını seçiyor ve segmentleri onar onar gönderiyor.
İlk on segmentten oluşan kısım gönderildi karşı taraftan hepsiiçin onay geldi diyelim
ikinci on segmentte gönderildi ama 17. segmentin başına bişey geldi ulaşmadı
bu durumda alıcı bilgisayar 16. segment için onay verir.
Gönderici bilgisayar 17 . segment için onay mesajı gelmez ise paket iletimini tekrarlayacaktır.
Buradan sonra ilk başta belirlediğimiz düzen farklılaşıyor 1-10 , 11-20 , 21-20 şeklinde ilerleyen iletim artık 17-27,27-37 şeklinde ilerleyecektir. burada belirtilen kaymaya “Kayan Pencere ( sliding Windows ) Yöntemi deniyor.
Bir TCP segmenti İki ksımdan oluşmakta Başlık (Header) ve Veri (Data) kısmı.
Kaynak Portu (Source Ports ): Gönderen bilgisayarın kullandığı TCP portu
Hedef Portu (Destination Port): Alıcı bilgisayar TCP Portu
Sıra numarısı ( Sequence number ) : Segmentlere verilen numara
Onay numarası ( acknowledgement number ): İstenilen bir sonraki paketin numarası
Veri uzunluğu ( Data length) : TCP segmentinin uzunluğu
Rezerve (reserved) : Gelecekte kullanılmak üzere rezerve edilmiş
Bayraklar (Flags) : Segmentin içeriğine dair bilgi
Pencere (windows) : TCP penceresinde ne kadar yer kalmış olduğunu gösterir.
Kontrol toplamı ( Checksum): Başlık kısmının bozulup bozulmadığını gösteren denetim kısmı
Acil veri göstergesi ( Urgent pointer ) : Bayrak kısmında belirtilen acil verinin iletilmek istenidiğini gösterir.
Bir güvenlik bileşeni olarak IPS, ağ performansını düşüren saldırılardan kaçınmak için verimli bir şekilde çalışmalıdır. Aynı zamanda hızlı çalışmalıdır çünkü istismarlar gerçek zamanlı olarak gerçekleşebilir. IPS, tehditleri ve yanlış pozitifleri (güvenilir paketlerin tehdit olarak yanlış algılanmasını) ortadan kaldırmak için doğru bir şekilde tespit etmeli ve cevap vermelidir.
Genel olarak saldırı önleme sistemleri dört sınıfa ayrılır.
- Network-Based Intrusion Prevention (NIPS): Tüm ağdaki şüpheli durumları tespit etmek için protokol analizi yöntemini kullanarak izler.
- Wireless Intrusion Prevention Systems (WIPS): Kablosuz ağ üzerindeki şüpheli durumları tespit etmek için kablosuz ağ protokolü ile izler.
- Network Behavior Analysis (NBA): Ağ trafiğindeki davranışların analizinde kullanılır.
- Host-Based Intrusion Prevention (HIPS): Ana bilgisayara yönelik saldırıları önlemek için kullanılır.
Sıgnature(İmza) Nedir?
Signature (İmza) , IDS ve IPS’in gibi bilinen saldırıları tespit etmek ve önceden tanımlanmış eylemlerle yanıt vermek için kullandığı bir dizi kuraldır. Sensors (Sensörler) , mevcut imzaları değiştirmemizi ve yenilerini tanımlamamızı sağlayan yapıdır.
Sıgnature Alarms(İmza Alarmları)
Sisteme gelen bir saldırıya veya sistem üzerinde olan bir ihlale karşı, sistemin ne yanıt vereceği imza türlerini oluşturur.
- False-positive ,normal trafik veya olumlu bir hareket tarafından tetiklenen bir alarmdır.
- False-negative, yanlış bir trafik vb. durum algılandığında ve buna karşı bir imza tetiklenmediğinde oluşan alarmdır.
- True-positive, saldırıya karşı imza doğru şekilde tetiklendiğinde ve rahatsız edici trafik tespit edildiğinde oluşan alarmdır.
- True-negative, gerçek olmayan bir saldırı yakalandığında ve analiz edildiğinde bir imza atılmadığında oluşan alarmdır.
SNORT
IP ağları üzerinde gerçek zamanlı trafik analizi ve paket loglaması yapabilen bir saldırı tespit ve önleme sistemi yazılımıdır. Genel olarak imza tabanlı olarak çalışan Snort, protokol ve anomali analizi yapabilme yeteneğine de sahiptir. Kullanıcıların kendi kurallarını yazabilmesine imkân sağlayan esnek bir kural diline sahip olmasının yanında snort.org ve emergingtreats.com adreslerinden indirilebilen ücretli veya ücretsiz kural setleri kullanılarak; yazılım protokol analizi, içerik tarama/eşleme, arabellek taşması, port taraması, CGI saldırısı, işletim sistemi parmak izi denemesi gibi pek çok saldırı ve zararlı/şüpheli yazılım çeşitlerini tespit
edebilmektedir.
Snort’un Saldırı Tespit Sistemi (STS) olarak kullanıldığı durumlarda genellikle iki ağ arayüz kartı kullanılır. Bu arayüzlerinden birisi ağı dinlemek için, diğeri ise Snort’a uzaktan erişip Snort’un yapılandırılmasında kullanılır. Ağı dinleyen arayüze genellikle IP adresi atanmaz ve bağlı olduğu anahtarın(switch) tüm portları bu arayüze
aynalanır (mirroring). Bu yöntemle, anahtar üzerinden geçen tüm paketlerin Snort tarafından dinlenilmesi sağlanmış olur.
Snort’un mimarisi performans, basitlik ve esnekliğe dayalıdır. Paket çözücü, ön işleyici, tespit motoru ve günlükleme/alarm olmak üzere 4 temel bileşen üzerine inşa edilmiştir.
Libpcap (Packet Capture Library)
Paket Çözümleyici (Decoder)
Ön işleyici (preprocessor)
Tespit Motoru (Detection Engine)
Snort temel olarak paket izleme (packet sniffer), paket günlükleme (packet logger) ve sızma tespit/engellenme (IDS/IPS) olmak üzere üç farklı modda çalışabilecek şekilde yapılandırılabilmektedir.
Paket İzleyici Modu (packet sniffer): Snort’un sadece geçen paketleri izlemesi isteniyorsa bu modda çalıştırılır. Bu mod tcpdump paket izleyici programı gibi basit bir şekilde ağdan paketleri okuyup sürekli bir şekilde konsolda göstermektedir.
Paket Günlükleme Modu (packet logger): Snort, belirtilen parametrelere göre paketlerin istenilen formatta diske yazılması istendiğinde bu modda çalıştırılır.
Ağ Sızma Tespit/Engelleme Sistemi (NIDS/NIPS) Modu: Snort’un genel olarak kullanıldığı sızma girişimlerini tespit etme modudur. Snort bu modda temel olarak trafiği analiz ederek kullanıcı tarafından daha önceden tanımlanmış olan kurallarla karşılaştırma yaparak ilgili kurallarda belirtilmiş olan eylemlerin uygulanmasını sağlar.
SURİCATA
Snort saldırı tespit sistemi gibi imza/kural tabanlı çalışmaktadır. Snort’un kullandığı kural setini desteklemesi kısa sürede kabul görmesinde etkili olmuştur.
Suricata saldırı tespit alanında önemli yeniliklerle gelmiştir. Bunlardan ilki HTTP kütüphanesi olarak adlandırılan ve Suricata proje takımından Ivan Ristic tarafından geliştirilen yeni HTTP normalizasyon aracıdır. HTTP trafiğinin ayrıştırılmasını sağlayan bu yeni aracın en önemli özelliği “security-aware” olarak tasarlanmasıdır [5]. Yani saldırganların saldırı tespit sistemlerini atlatmak için kullanabileceği çeşitli teknikleri yakalama kapasitesine sahiptir. Bununla birlikte kütüphane HTTP protokolüyle ilgili istek satırı, istek başlığı, URI, kullanıcı etmeni, cevap satırı, sunucu cevap satırı, çerez, “basic” ve “digest” kimlik doğrulama işlemleri için farklı ayrıştırıcılara sahiptir. Suricata’nın diğer önemli özelliği çoklu iş parçacıkları (multi-threaded) halinde çalışmayı desteklemesidir. Yani birden çok işlemci ünitesine sahip mimarilerde paket işleme işlemi farklı iş parçacıklarıyla farklı ünitelerde dağıtık olarak yapılmaktadır. Her CPU ünitesi tek iş parçacığıyla çalışan ayrı bir makine gibi davranır. Böylece yük dengesi sağlanıp, performans arttırılmış olur.
Tek iş parçacığı (single-thread) ile çalışan Snort maksimum 100-200 megabit arası trafiği işlerken, Suricata 10 gigabit gerçek trafiği işleyebilmektedir.
Suricata’nın özellikleri şöyle sıralanabilir
Saldırı tespit sistemi (IDS) , saldırı engelleme sistemi (IPS) gibi çalışma modlarında kullanılabilmektedir.
Ağ trafiğini izleyerek trafiğin pcap formatında kaydedilmesini daha sonra kaydedilen bu dosyalarının offline olarak analiz edilmesini sağlamaktadır. Ayrıca pcap dosyalarının analizi için Unix soket modunda da çalışmaktadır.
Linux, FreeBSD, OpenBSD, Mac OS X, Windows gibi hemen hemen tüm işletim sistemlerinde çalışabilmektedir.
Konfigürasyon dosyası kolay bir şekilde anlaşılmayı sağlayan YAML formatındadır. Birçok programlama dili tarafından desteklenmektedir. Suricata 2.0 kararlı sürümüyle birlikte YAML dosyası istenilen parçalara ayrılarak ana dosya içerisinden çağrılması sağlanmıştır.
IPv6 protokolü tamamen desteklenmektedir.
Teredo, GRE, IP4-IP6 tünel protokolleri çözümlenebilmektedir.
TCP oturumları için oturum baştan sona takip edilmesi, akışın sıraya konulması, gibi işlemleri yapar. Parçalanmaya uğrayan paketlerin yeniden bir araya getirilmesi için de ayrı bir modüle sahiptir.
Ethernet, PPP; VLAN, QINQ vb. gibi birçok ikinci katman protokolünü desteklemektedir. Ayrıca uygulama katmanı protokollerinden HTTP, SSL, TLS, SMB, SMB2, DCERPC, SMTP, FTP, SSH, DNS çözümlenebilmektedir.
Yazılan kurallarda PCRE (Perl Compatible Regular Expressions) kullanılabilmekte, dosya türü, boyutu, MD5 özet değeri eşleştirilmesi yapılabilmektedir.
Çalışma sırasında yeni kural eklenmesi, silinmesi gibi kural güncelleme işlemleri yapılabilmektedir. Uygulamanın yeniden başlaması gerekmemektedir.
Çalışma Yapısı
Paket Çözümleme Modülü (Decoding Module): Paket çözümleme işlemi, paketlerin ara belleğe alınması ve içeriğinin Suricata’nın desteklediği veri yapısına dönüştürülmesinden sorumludur. Paketler burada veri linklerine (ethernet, ppp vb.) göre sınıflandırılıp ona uygun çözümleyicilerde işlenir.
Akış İşlemleri Modülü (Stream Module): Temel olarak 3 görevi vardır:
1. Doğru, anlaşılabilir bir ağ bağlantısının olması için akışları takip eder.
2. TCP bağlantıları için ana akşın tekrar oluşturulabilmesi için paketlerin sıraya konulması işlemini yapar.
3. Uygulama katmanı denetimi yapar. HTTP ve DCERPC analiz edilir.
Tespit Modülü (Detect Module): Konfigürasyonda belirtilen tüm kuralların yüklenmesi, tespit eklentilerinin başlatılması ve paketlerin gruplanarak kurallarla eşleştirilmesi gibi önemli işlerden sorumludur. Kuralları kendi içerisinde gruplandırır. Örneğin TCP paketinin UDP protokolü için yazılmış kurallarla karşılaştırılmasına gerek yoktur. BU
yüzden TCP için yazılmış kurallar bir grup olarak düşünülebilir.
Oluşturulacak grupların sayısı kullanıcı tarafından belirlenebilir. Grupların sayısını belirlemek bir hafıza/performans problemidir. Az sayıdaki gruplar düşük performans az bellek kullanımına neden olurken grup sayısının artması performans ve bellek kullanımının artmasına neden olur. Suricata’da tanımlı olarak “yüksek, orta ve düşük” olmak üzere 3 profil gelir, varsayılan profil bellek kullanımı ve performans arasında bir denge oluşturan “orta” dır.
BROIDS (ZEEK)
Bro açık kaynak kodlu, UNIX tabanlı, BSD lisansı ile dağıtılan saldırı tespit sistemi, ağ analiz ve izleme aracıdır.
Bro klasik kural tabanlı IDS’lerden farklı olarak komple bir ağ trafiği analiz aracıdır. Trafik analizi sadece güvenlik alanında değil, performans analizleri ve ağ sorunlarının çözümlerini de içermektedir.
Bro çalışmasıyla birlikte ağdaki birçok aktiviteyle ilgili kayıt oluşturur. Sadece ağdaki tüm trafiğin kaydedilmesi değil özellikle uygulama katmanındaki protokollerin çözümlenmesini sağlar. Bro’yu diğer saldırı tespit sistemlerinden ayıran en önemli özellik kendine ait bir betik dilinin olmasıdır. Bu dil sayesinde çok esnek ve geliştirilebilir bir yapıdadır. Her kullanıcı yazacağı özel betiklerle sistemin fonksiyonelliğini arttırabilir ve özelleştirebilir. Uygulamayla birlikte gelen birçok hazır kütüphane ve framework ile betik yazımı kolaylaştırılmıştır. Farklı yerlerde sisteme özgü Python (domain-specific Python) olarak adlandırılmaktadır. Genel olarak bu betiklerle ağdaki zararlı aktivitelerin tespiti, anomalilerin tespiti ve davranışsal analiz gibi işlemler yapılabilir. Bununla birlikte varsayılan ayarlarla da çok geniş yelpazede özellikler sunmaktadır.
Bro’nun özellikleri şöyle sıralanabilir:
Linux, FreeBSD, MacOS gibi UNIX tabanlı işletim sistemlerinde çalışabilmektedir.
Gerçek zamanlı ya da offline analiz yapabilmektedir.
Paketlerin yakalanması için “libpcap” kütüphanesini kullanmaktadır.
Üniversiteler, araştırma laboratuvarları, büyük ölçekli işletmeler gibitrafiğin yoğun ve dağıtık olduğu yerlerde Bro kullanıcılara küme yapısını (“Bro Clusters”) sunmaktadır. Farklı sunucularda Bro çalışır ve bunlar kendi arasında iletişim kurabilirler.
Tüm HTTP trafiğini (sunucu/istemci istek ve cevapları, mime türleri, uri vb.), DNS istek ve cevaplarını, SSL sertifikalarını, SMTP oturumlarını, FTP trafiğini çözümleyerek kaydedebilmektedir. Ayrıca ağ akışını da kayıt altına almakatadır.
Kayıtlar rahatça okunabilir şekilde (tab karakteriyle ayrılmış), ASCII formatında metin dosyalarına kaydedilir.
Port bağımsız olarak uygulama katmanı protokollerinden DNS, FTP, HTTP, IRC, SMTP, SSH, SSL çözümlenebilmektedir.
HTTP, FTP, SMTP, IRC trafiğinden geçen tüm dosyalarla ilgili bilgileri MD5/SHA1 özet değerleriyle birlikte metin formatında kaydedilebilmekte, istenildiği durumda bu dosyalar trafikten çıkarılıp belirtilen bir dizinde saklanabilmektedir.
Dış kaynaklar kullanarak (özet değeri eşleştirmeleri, IP itibar tabloları) çeşitli zararlı yazılımları tespit edebilmektedir.
Ağ trafiğinde tespit edilen uygulamaların (Java, Flash vb.) açık barındıran versiyonları, popüler web uygulamaları (Skype, Facebook vb.), SSH kaba kuvvet ataklarını tespit edilebilmektedir.
Trafikteki SSL sertifikalarına ait tüm zincirin doğrulanması sağlanmaktadır.
IPv6 protokolü kapsamlı bir şekilde desteklenmektedir.
Ayiya, Teredo, GTPv1 gibi tünel protokolleri tespit edilip analiz edilebilmektedir. Bro tüneli tespit ettikten sonra çözümleyerek sanki hiç tünel yokmuş gibi analiz işlemini gerçekleştirmektedir.
Klasik IDS’lerin kullandığı desen eşleştirmesi yöntemini desteklemektedir.
Analiz için kullanılacak dış kaynaklar gerçek zamanlı olarak sisteme entegre edilebilmektedir.
Betik dili sayesinde tasarlanan senaryonun oluşması durumunda e-mail gönderme, anlık bağlantının sonlandırılması, yönlendirici erişim kontrol listesine blok kayıtlarının girilmesi gibi farklı bir dış işlemi tetikleyebilmektedir.
Uygulamaların Bro ile konuşmasını sağlayan Broccoli (The Bro Client Communications Library) , Bro kurulumu ve kullanımı için interaktif bir kabuk sunan BroControl, kayıtların ayrıştırılmasını sağlayan bro-cut vb , snort imzalarının Bro imzalarına dönüştürülmesini sağlayan “snort2bro” betiği vb. araçlara da sahiptir.
Yapısı
Bro katmanlı bir yapıdadır ve iki temel bileşenden oluşmaktadır. Bunlar “event engine” ve “policy script interpreter”’dir.
Event Engine: C++ programlama dilinde yazılmıştır. Ağ akışındaki paket serilerini anlam ifade eden üst seviye olaylara dönüştürür. Örneğin ağdaki herhangi bir HTTP isteği IP adresleri, portları, talep edilen URI, kullanılan HTTP versiyonu ile birlikte tek bir “http_request” olayına dönüştürülür. Daha basit bir ifadeyle ağdaki herhangi bir protokole ait aktivite Bro dili tarafından anlaşılabilir. formata çevrilir. Ancak buradaki örnekte HTTP isteğindeki IP ya da URI’ın zararlı olup olmadığı event engine’in görevi değildir. Bro’nun kullandığı yaklaşık 320 tane olay türü vardır. Bunlardan bazıları şöyledir; new_connection, new_packet, http_header, ssl_certificate_seen,
authentication_rejected, dns_PTR_reply, arp_reques.
Policy Script Interpreter: Bro’nun betik dilinde yazılmış olay işleyicilerinin çalıştırılmasından sorumlu yapıdır. Betikler kullanılarak ağ trafiği için oluşturulmuş olay türleri analiz edilip herhangi bir anomali olup olmadığı, olması durumunda hangi işlemlerin gerçekleştirileceği ve bunların nasıl kayıt altına alınacağı belirtilir. Daha genel bir ifadeyle trafik ile ilgili istenilen özellikler ve istatistikler elde edilebilir.
Kaynak :
https: //www.prismacsi.com/ips-ids-nedir/
http:/ /furkansandal.com/saldiri-tespit-sistemleri-snort-suricata-bro/
Comments