Snort Loglarının ELSA ile Görselleştirilmesi

Bilgi Güvenliği Olayları Görselleştirmesi” yazı disizinin bu bölümünde Snort loglarının ELSA üzerinde görselleştirilmesinden bahsedeceğiz. Görselleştirmenin nasıl yapıldığına geçmeden önce teknik olarak Snort ve ELSA (enterprise log search and archive) araçlarının nasıl çalıştığından bahsedeceğiz.

 

UYARI: Bu yazı ve yazı dizisinin tamamı bir teknik proje halinde bir yüksek lisans programında zaten sunulmuştur. Ayrıca yine bu proje başka bir tezin içeriğini de oluşturmuştur. Bu yüzden bu yazıların ve içindeki herhangi bir bilginin izinsiz alınması, kopyalanması, çoğaltılması ve/veya başka herhangi bir ortamda farklı bir kişi tarafından yazılmış gibi yayınlanması ve kullanılması kesinlikle yasaktır.

 

Snort loglarının ELSA ile görselleştirilmesine geçmeden önce Snort ve ELSA’nın ne olduğuna dair teknik bir girizgah gerekir.

SNORT

Snort, açık kaynak kodlu olarak geliştirilen, network tabanlı bir saldırı tespit ve önleme (network intrusion prevention and detection system) yazılımıdır [1]. Adından da anlaşılacağı üzere kullanım amacı, herhangi bir networke dışarıdan yapılan sızma girişimlerini tespit etmek ve önlemektir. Resmi dokümanlarında yaptığı temel işleri şu şekilde sıralamışlar [2]:

  1. Sniffer Mode: Snort, sadece geçen paketleri izlemek üzere olan sniffer modunda çalıştırılabilmektedir. Bu şekilde network aktivitelerini inceleme imkânı olmaktadır.
  1. Packet Logger Mode: Paketleri diske loglamak için kullanılan moddur.
  1. Network Intrusion Detection System (NIDS) Mode: Genel geçer kullanım alanı olan, sızma girişimlerini tespit etme modudur. Bu modda, Snort -yukarıda da belirtildiği gibi- veri akışını analiz ederek daha önceden tanımlanmış kurallarla eşleştirme işlemi yapıp ilgili kurallarda belirtilmiş aksiyonların uygulanmasını sağlamaktadır.
  1. Inline Mode: Bu modda ise paketler Iptables (Linux işletim sistemlerinde varsayılan güvenlik duvarı) [3] ya da IPFW (FreeBSD işletim sistemlerinde varsayılan güvenlik duvarı) [4] üzerinden yönlendirme yapılarak Snort’a iletiliyor ve yönlendirilmiş olan bu paketler, daha önceden tanımlanmış kurallar uyarınca geçirilmekte ya da paket düşürülmektedir. Yani kendi başına IDS olarak çalışan Snort, inline mod’da çalıştırılarak IPS özelliği kazanmış olmaktadır. Inline konumlandırılan sistemde, paket trafiği Snort’un üzerinden geçirir. Böylelikle Snort, sisteme yapılan sızma girişimlerini tespit etmekle kalmayıp aynı zamanda bu girişimlere ait paketlerin düşürülmesine de olanak sağlamaktadır.

Snort Çalışma Yapısı

Snort’un mimarisi, genel yapısı gereği 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.

snort-mimari-yapisi

Resim-1: Snort Mimari Yapısı

Libpcap (Packet Capture Library) [5] Snort’un ağ kartından paketleri çekmek için Linux/Unix sistemlerde libpcap, Windows sistemlerde ise WinPcap olarak kullandığı paket yakalama kütüphanesidir.

Paket Çözümleyici (Decoder): Paket yakalama kütüphanesinin yakalayıp gönderdiği veri bağı yani 2. katman verisini alır ve ayrıştırarak (2. katman için Ethernet/802.11, 3. katman için IP/ICMP, 4. katman için TCP/UDP gibi) sonraki aşamalarda işlenmek üzere ya da direk tespit motoruna gönderilmek üzere hazır hale getirir.

Ön işleyici (preprocessor): Yakalanan bir paketin tespit motorunda gerçekleştirilecek olan kural uygulamaları öncesinde işlenmeye hazır hale getirilmesi gereklidir. Ön işleyiciler, paket çözümleyicisi tarafından çözümlenmiş olan paketlerin Snort tarafından daha kolay kavranabilmesi ve anlaşılabilmesi adına daha anlamlı parçalar haline getirir.

Tespit Motoru (Detection Engine): Tespit motoru bileşeni Snort’un en önemli kısmı, kalbi olarakta nitelendirilmektedir. Tespit motorunun görevi, paket çözümleyicisi ve ön işleyici bileşenlerinden gelen paketlerde saldırı faaliyeti mevcut ise tespit etmektir. Bu amaçla tespit motoru Snort kural setini kullanmaktadır. Snort, tüm kuralları başlangıçta okur ve ağaç düğüm yapısını ağdan toplanan paketlere uygulamak üzere oluşturur. Eğer bir paket herhangi bir kural ile eşleşirse, uygun eylem gerçekleştirilir aksi takdirde paket düşürülür. Uygun eylem, paketin kaydedilmesi ya da alarm vermesi olabilmektedir.

Kayıt ve Alarm Verme Sistemi, Çıktı Modülleri: Tespit motoru, ağ içinde akan paketler içerisinde yapmış olduğu tespitlere bağlı olarak saldırı olarak öngördüğü paketler için uyarı mesajları üretir ve bunlarla ilgili olarak da basit bir metin dosyasında, tcpdump [6] formatında veya diğer kaydetme formatlarında kayıt tutabilir. İşte çıktı modülleri de bu uyarıların nasıl olacağı ve nereye ne biçimde kaydedileceği konusunu yönetirler.

 

ELSA (ENTERPRISE LOG SEARCH AND ARCHIVE)

ELSA, Syslog-NG, MySQL ve Sphinx tam metin arama ürünlerinin üzerine inşa edilen merkezi bir syslog ürünüdür [7]. Syslog, güvenlik bileşenlerinin üzerinde oluşan kayıtları iletilmesini sağlayan bir servistir. Web arayüzü olan ELSA, yine bütün sorgularını bu arayüz üzerinden milyonlarca arama ile gerçekleştiren, tam asenkron çalışan bir uygulamadır. Genel özellikleri şu şekildedir:

  • Yüksek kapasiteli log alma ve indeksleme yapabilir. 30000 log/sn sürekli log alabilir.
  • Microsoft Active Directory (AD) entegrasyonu yapabilir ve email tanımı yapılabilir.
  • Büyük veri kümelerini anında raporlar ve rapor grafikleri oluşturabilir.
  • Google Visualizations kullanarak ekran oluşturur.
  • Web arayüzün API desteği bulunmaktadır.
  • Cluster için dağıtık mimari desteği bulunmaktadır.

ELSA default olarak Cisco logs, Snort/Suricata, Bro, Windows Eventlog ve Snare’i tanımaktadır.

elsa-mimari-yapisi

Resim-2: ELSA Mimari Yapısı

Ayrıca ELSA hakkındaki daha detaylı bilgilere daha önceden yayınladığımız “ELSA Log Yönetim Sistemi” başlıklı yazımızdan da ulaşabilirsiniz.

 

SNORT LOGLARININ ELSA İLE GÖRSELLEŞTİRİLMESİ

ELSA uygulaması üzerinde bulunan Snort API sayesinde hiçbir tanım yapılmasına gerek kalmadan ön tanımlı olarak üzerinde bulunan syslog-ng ile logları toplayabilmektedir. Toplanan bu logları, Sphinx’in MySQL’i ile hızlı bir şekilde çalışarak index/source yapılmaktadır. Alınan bütün verilere bir index değeri atayıp veri tabanına kaydetmektedir. “ORDER BY, GROUP BY, HAVING” ve bazı ifadeler kullanılarak hızlı arama sonuçları alınmaktadır. Ham olan Snort loglarının ELSA ile görselleştirilmesi, ELSA’nın esnek kabiliyetlerine dayanmaktadır. ELSA, çalışma yapısından dolayı çok hızlı log toplamakta ve kullanılan web arayüzünde Snort ile ilgili kolayca rapor sağlamaktadır:

elsa-snort-sorgu-gosterim

Resim-3

ELSA Google Dashboard ile Snort İmzalarının Gösterimi

Alttaki resimden de görüldüğü üzere hiçbir ilave işlem yapmadan ELSA üzerine aktarılan Snort kayıtlarının daha görsel ve anlamlı gösterimini sağlayan ekran vardır. Bu türden güvenlik ile ilgili bilgilerin görselleştirmesinde, yapılan saldırılar gerçek zamanlı izlenebilmektedir ve ek fazladan işlem yapmaya gerek kalmadan bu ekranlarla 7/24 kritik sistemlerin izlenmesi sağlanabilir:

elsa-google-dashboard

Snort loglarının ELSA ile görselleştirilmesinin aslında ne kadar kolay olduğu açıkça görülüyor. Sizler de bu tip bir açık kaynak sistemi kendi ortamlarınıza rahatlıkla konumlandırıp güvenlik izlemesi yapabilirsiniz. Bir sonraki bölümde Apache Web loglarının Logstalgia ile görselleştirilmesinden bahsedeceğiz.

 

Referanslar

  1. https://www.snort.org/
  2. https://www.bilgiguvenligi.gov.tr/saldiri-tespit-sistemleri/saldiri-tespit-sistemleri-snort-suricata-bro.html
  3. https://en.wikipedia.org/wiki/Iptables
  4. https://en.wikipedia.org/wiki/Ipfirewall
  5. Yukarıdaki 2. bağlantı
  6. http://www.tcpdump.org/
  7. https://github.com/mcholste/elsa

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir