Yaygın Saldırı Tespit Sistemleri (BRO, SNORT, SURİCATA)

kadergultekin
4 min readJan 24, 2021

--

  1. BRO Saldırı Tespit Sistemi

BRO ya da bilinen yeni adıyla The Zeek Network Security Monitoring, Vern Paxson tarafından 1995 yılında, Lawrence Livermore Ulusal Laboratuvarı’nda tasarlanan ve o zamandan beri aktif olarak geliştirilmeye devam eden, Unix tabanlı bir Ağ Saldırı Tespit Sistemidir. Bro sadece kural tabanlı çalışmaz, bağlantı tabanlı da çalışır. Yapılan bağlantıların kayıtlarını tutar ve bu kayıtlara göre yeni bağlantılarda bir anormallik olup olmadığını tespit eder. BRO ile trafiğin gerçek zamanlı veya periyodik analiz edilmesi sağlanılabilir.

Şekil 1, AKSU, Log Tabanlı STS’lerde Performans Analizi, 2018, s. 25

BRO; üç temel bileşen içerir, bunlar: kural katmanı (policy layer), olay motoru (event engine) ve paket yakalamadır (package capturing). En alt katman olan paket yakalama katmanı, paketleri ağdan yakalamak için, farklı ağ bağlantı teknolojileri için platformdan bağımsız bir arayüz sağlayan libpcap kütüphanesi kullanır. Libpcap kullanılması BRO’yu platform bağımsız hale getirmiştir. İkinci katman olan olay motoru katmanında ağ paketleri düşük seviyeli analiz edilir. Taşıma (Transport) katmanı seviyesinde TCP, UDP ve ICMP paketleri analiz edilirken, Uygulama (Application) seviyesinde HTTP, SMTP, DNS, FTP ve daha fazlası analiz edilir. Üçüncü katman kural katmanıdır. Bu katmanda, kullanıcı tarafından özel Bro dilinde yazılan kural cümleleri, olay motoru tarafından oluşturulan olayları alarm oluşturulması gerekiyor mu gerekmiyor mu anlamak için analiz eder.

Buradaki en alt katman olan paket yakalamanın görevi; paketleri filtrelemek ve protokol analizi gibi düşük seviyeli işlemleri gerçekleştiren olay motorunu filtreli paketler ile beslemektir. Olay motoru, kural katmanına iletilen bir olaylar akışı üretir. Kural katmanı, olayları kullanıcı tarafından belirlenen kurallara göre degerlendirir. (AKSU, Log Tabanlı STS’lerde Performans Analizi, 2018, s. 25 )

2. SNORT Saldırı Tespit Sistemi

SNORT, Marty Roesch tarafından yazılmış, en yaygın olarak kullanılan açık kaynaklı saldırı tespit sistemidir. Gerçek zamanlı trafik analizi yapabilir, Libpcap paket yakalama kütüphanesini kullanan ağ tabanlı bir sistemdir ve çapraz platformlarda çalışabilir. Gelişmiş imza tespiti sağlayan motoru; arabellek taşmaları (buffer overflow), gizli port taramaları, CGI taramaları, SMB probları, NetBIOS sorguları, DDoS saldırıları, Truva atı saldırıları bazı virüs ve solucan türleri dahil olmak üzere tehditler için alarm üretir.

Snort temelde üç ayrı modda çalışabilecek şekilde yapılandırılabilir:

  1. Paket İzleyici Modu (Packet Sniffer): Ağ üzerindeki paketleri analiz eder.
  2. Paket Günlükleme Modu (Packet Logger): Ağ üzerindeki paketleri /log dizinine günlükler.
  3. Ağ Sızma Tespit/Engelleme Sistemi Modu (NIDS/NIPS): Ağ üzerindeki trafiği tanımlı kural setlerine göre analiz edip tepki verir.

Snort mimarisinin beş temel bileşeni vardır: Libpcap (Packet Capture Library), Paket Çözümleyici (Package Decoder), Ön işleyiciler (Preprocessor), Tespit Motoru (Detection Engine), Kayıt ve Alarm Verme Sistemi, Çıktı Modülleri (Logging/Alarm System, Output Module).

3. SURICATA Saldırı Tespit Sistemi

Suricata, yüksek performanslı bir saldırı tespit sistemidir. Açık kaynaklıdır ve topluluk tarafından işletilen, kar amacı gütmeyen bir vakıf olan Açık Bilgi Güvenliği Vakfı’na (OISF — Open Information Security Foundation) aittir. Gerçek zamanlı ve periyodik saldırı tespiti, ağ güvenliği izleme, satır içi saldırı önleme ve çevrimdışı pcap işleme yeteneğine sahiptir. Suricata çapraz platformlarda çalışabilir, IPv6 yapısını destekler, dosya eşleme, kayıt tutma, ayıklama, md5 checksum calculation yapabilir.

İmza/kural tabanlı olarak çalışan Suricata, diğer saldırı tespit sistemlerinden farklı olarak bazı ek özellikler içerir.

Suricata, HTTP trafiklerinin ayrıştırılmasına olanak tanıyarak, saldırganların saldırı tespit sistemlerini atlatarak sisteme sızma girişimlerini engelleyen bir normalizasyon aracı olan HTTP kütüphanesini kullanır, bu özellik Suricata’yı diğer saldırı tespit sistemlerinden daha üstün kılmaktadır. Aynı zamanda Suricata, paket işleme işlevini farklı bölümlerde gerçekleştirir, yani paketler farklı makinelerde çalışıyormuş gibi dağıtık olarak işlenir ve performansta artış sağlanarak yük dengesi sağlanır, bu işlem Multi-threaded olarak bilinmektedir. Suricata, Unix soket modunda işlem görerek ağ trafiğinin pcap formatında kayıt edilmesini sağlar. Kaydedilen bu ağ trafiği kayıtları daha sonra offline olarak analiz edilebilmektedir. Bu özellik Suricata’ya periyodik çalışabilme yeteneği kazandırır. Ayrıca Suricata, HTTP istekleri, SSH bağlantıları, TLS el sıkışmalarını kaydedebilmeye olanak tanır.(BAYKARA, DAŞ, Saldırı Tespit ve Engelleme Araçlarının İncelenmesi, 2018, s. 70)

Suricata mimarisinin dört temel bileşeni vardır: Paket Yakalama Modülü (Capture Module), Paket Çözümleme Modülü (Decoding Module), Akış İşlemleri Modülü (Stream Module), Tespit Modülü (Detect Module).

4. SURICATA ile SNORT’un Kıyaslanması

Suricata, Snort’un IPS sürümü üzerinde çalışan geliştiriciler tarafından geliştirilen açık kaynaklı bir saldırı tespit sistemidir. Suricata’nın Snort’tan çok daha sonra geliştirilmiş olması onun bazı ek özelliklere sahip olmasını da sağlamıştır. Ancak bu iki saldırı tespit sisteminin kıyaslanırken daha iyi veya daha kötü olarak değerlendirilmesi doğru değildir, hangisinin tercih edileceği gereksinimlere bağlı olarak belirlenmelidir.

Snort, Suricata’ya kıyasla daha uzun yıllarda beri geliştiriliyor ve çok fazla kullanılıyor olması sebebi ile daha çok destek içerir. Snort için daha fazla kaynak ve kural dosyası bulmak mümkündür.

Snort single thread çalıştığı için 100–200 Mbit/sn üzerindeki trafikte başarı sağlayamaz. Suricata ise multi-thread çalıştığı için, kullanılan donanıma bağlı olarak 10 Gbit/sn ve üzeri trafikte bile başarı ile çalışır.

Snort uygulama seviyesi saldırıları tespit edemez (application aware) ancak Suricata kullandığı kütüphane yardımıyla uygulama katmanı saldırılarını tespit edebilir.

Suricata multi-threading kullanımı destekler ancak Snort desteklemez. Kaç çekirdekli bir CPU kullanıldığı fark etmeksizin Snort yalnızca tek bir çekirdek kullanır. Snort’un multi-thread koşması için bazı karmaşık çözümler getirilebilir ancak bunlar yönetimde zorluk, ek donanım maliyeti ve performans kaybı yaşatacağından Suricata bu konuda daha avantajlıdır.

Suricata dosya analizi (file extraction) yapmayı destekler, Web’den veya posta trafiğinden gelen dosyaları analiz etmek istediğinizde bunu Suricata ile yapmak mümkündür ancak Snort böyle bir destek sunmaz. Suricata dosya analizi yapmak üzere HTTP, SMTP, FTP, NFS, SMB protokollerini desteklemektedir.

Kullandığım Kaynaklar:

AKSU, Log Tabanlı STS’lerde Performans Analizi, 2018, s. 25.

BAYKARA, DAŞ, Saldırı Tespit ve Engelleme Araçlarının İncelenmesi, 2018, s. 70.

http://cisn.odtu.edu.tr/snort.php (Erişim Tarihi: 24.01.2021)

https://suricata.readthedocs.io/en/suricata-6.0.1/ (Erişim Tarihi: 24.01.2021)

https://furkansandal.com/saldiri-tespit-sistemleri-snort-suricata-bro/ (Erişim Tarihi: 24.01.2021)

--

--

kadergultekin

Karadeniz Teknik Üniversitesi Bilgisayar Mühendisliği mezunuyum. Beraber eğlenip beraber gelişmeyi hedefliyorum.