Herkese merhaba, bu makalemde uygulamalı atak testleri ile Suricata’yı tanıyacağız. Suricata’yı aşağıdaki başlıklar ile inceleyeceğiz:
Suricata, ağ trafiğini izlemek ve analiz etmek için geliştirilmiş güçlü bir IDS/IPS sistemidir. Açık kaynaklı olması ve yüksek performanslı yapısıyla öne çıkar. Kar amacı gütmeyen bir kuruluş olan Açık Bilgi Güvenliği Vakfı’na (OISF) aittir.
Bu güçlü sistemin özelliklerine birlikte bakalım:
Ubuntu 22.04.4 cihazıma Suricata’yı kurarak başlayalım..
Suricata’nın en güncel sürümü olan 7.0.6 ile kurulum yapacağım.
$sudo apt update
$sudo apt-get install libpcre3-dbg libpcre3-dev autoconf automake libtool libpcap-dev libnet1-dev libyaml-dev libjansson4 libcap-ng-dev libmagic-dev libjansson-dev zlib1g-dev pkg-config rustc cargo -y
Gerekli paketleri indirdikten sonra, Suricata’nın en son sürümünü resmi web sitesinden indiriyoruz:
En güncel sürümü görmek için tıklayabilirsiniz.
$wget https://www.openinfosecfoundation.org/download/suricata-7.0.6.tar.gz
$tar -xvzf suricata-7.0.6.tar.gz
$cd suricata-7.0.6
$./configure — prefix=/usr — sysconfdir=/etc — localstatedir=/var
Suricata’yı IDS ve IPS olarak iki modda çalıştırmamız mümkün.
Eğer IDS modunda çalıştırmak istiyorsanız herhangi bir şey yapmamız gerekmiyor. Fakat IPS modunda çalıştırmak isterseniz, güvenlik duvarı kurallarını eklememiz gerekiyor.
$sudo apt install libnetfilter-queue-dev libnetfilter-queue1 libnfnetlink-dev
$./configure — enable-nfqueue — prefix=/usr — sysconfdir=/etc — localstatedir=/var
$make
$make install
$make install-conf
Sıra, Suricata’nın Ubuntu paketlerini güncellemeye geldi ve böylelikle kurulumu tamamlamış oluyoruz.
$sudo add-apt-repository ppa:oisf/suricata-stable
$sudo apt update
$sudo apt install suricata
Kurulum işleminin sorunsuz bir şekilde tamamlandığından emin olmak için aşağıdaki komutu kullanıyoruz.
service suricata status
Sorunsuz bir şekilde Suricata’yı Ubuntu makinemize kurduk.
Suricata, diğer akrabaları (Snort, Bro IDS, Sagan vb.) gibi kurallarla çalışır. Kendi içerisinde bulunan kuralları kullanabiliriz ya da kendimiz kural yapımızı oluşturabiliriz. Bunun için:
$sudo nano /etc/suricata/suricata.yaml komutunu kullanıyoruz
Bu noktada dikkat etmemiz gereken yerler var.
İlk olarak ifconfig komutuyla IP adresimizi ve ağ adımızı öğreneceğiz. IP adresim 192.168.1.8 ve ağ adım ise
ens33
. Sizde farklılık gösterebilir.
Şimdi gerekli düzenlemeleri yapıyoruz. Default değerleri değiştiriyoruz.
HOME_NET (0/24, 0–255 arasını kapsamaktadır.) ve EXTERNAL_NET kısmını ağımıza göre düzenliyoruz.
ens33
ens33
ens33
Daha sonra, konfigürasyon dosyasında oluşturacağımız kural dosyasının yolunu ve adını tanıtıyoruz. Aynı zamanda kullanmadığımız kural dosyasını yorum satırı haline getiriyoruz.
(suricata.rules) -> test.rules
Ben test.rules olarak değiştirdim. Sizler başka bir ad kullabilirsiniz.
Bu düzenlemeler bittikten sonra kaydedip, nano konfigürasyon dosyasından çıkıyoruz.
Sıra geldi kural dosyamızı oluşturmaya..
$ mkdir /var/lib/suricata/rules
$ nano /var/lib/suricata/rules/test.rules
Yukarıdaki komutlarla kural dosyamızı oluşturuyoruz. Ben root olduğum için komutların başına sudo
ibaresini koymadım.
Nano ekranı geldiğinde kural içeriklerini gireceğiz. Fakat öncesinde Suricata kural yapısına bakalım…
Snort makalemden aşina olacağız gibi, her iki IDS/IPS sistemi de benzer bir iskeleti kullanmaktadır diyebiliriz. Uygulamalı saldırı testinde kullanacağımız kuralları yazabiliriz. İlk olarak:
alert icmp any any -> $HOME_NET any (msg:”ICMP Paketi Tespit Edildi”; sid:1000002 rev:1😉
Herhangi bir kaynak adresi ve port üzerinden gelen icmp paketleri $HOME_NET ile tanımladığımız herhangi bir porta iletişim kurarsa ICMP Paketi Tespit Edildi uyarası anlamına gelir.
alert tcp any any -> $HOME_NET 80 (threshold: type threshold, track by_dst, count 20, seconds 60; msg: “Dos Uyarısi”; sid: 1000003; rev: 1;)
Kural dosyamızı da düzenlediğimize göre Suricata çalıştırmaya hazır.
Çalıştırırken ağ arayüzünüze dikkat edin.
Burada dikkat edeceğimiz nokta ens33
. Benim ağ arayüzüm ens33
, sizlerde farklılık gösterebilir. Ağ arayüzümüzü unutmayalım.
Snort makalesinde yaptığım saldırı testlerini şimdi de Suricata üzerinde deneyelim. İlk olarak:
1- Kali makinedem Ubuntu makineme PING atıyorum.
Ayrıca fast.log dosyasında logları görmek için aşağıdaki komutu giriyorum.
$sudo tail -f /var/log/suricata/fast.log
İlk kuralımız başarılı bir şekilde çalıştı.
2- Dos/DDos saldırımızı Kali cihazımızdaki Slowloris aracı ile yapacağız.
Bunun için Ubuntu cihazımızda 80 numaralı portta bir servis çalıştıracağız. Apache2’yi kullanacağız. Daha önceden yüklü olduğu için, doğrudan aktif edeceğim.
service apache2 start
service apache2 status
Aşağıdaki komut ile saldırıyı başlatabiliriz.
python3 slowloris.py (hedef ip) -s 500-
fast.log dosyasında logları görmek için aşağıdaki komutu giriyorum.
$sudo tail -f /var/log/suricata/fast.log
Yazmış olduğumuz son kural da başarıyla çalıştı ve Suricata’dan hızlı bir tepki aldık.
Makalemin sonuna gelirken Suricata ve Snort’u dikkat çeken kısımlarını karşılaştırarak bitirmek istedim.
Çoklu İşlem Desteği: Suricata, çoklu iş parçacığı ve çoklu işlem desteği sunar. Bu, aynı anda birden fazla işlem yapabilmesi anlamına gelir ve bu nedenle yüksek performans sağlar. Modern çok çekirdekli işlemcilerden faydalanarak daha iyi performans gösterir.
Gelişmiş Performans: Paket işleme ve analizinde yüksek performans sunar, özellikle büyük ağ trafiği altında.
Tek İşlem Desteği: Snort genellikle tek bir iş parçacığı kullanır, bu da performansını sınırlandırabilir. Bununla birlikte, Snort 3.x sürümü ile çoklu iş parçacığı desteği eklenmiştir.
Performans: Snort, büyük trafik yükleri altında performans sorunları yaşayabilir, ancak bu genellikle yapılandırmaya ve donanıma bağlıdır.
Kural Dili: Suricata, hem Snort kurallarını hem de kendi özel kural setlerini destekler. Kendi kural dilini Snort kural diline benzer şekilde tasarlamıştır ancak bazı ek özellikler sunar.
Güncellemeler: Kendi geliştirici topluluğuna sahiptir ve güncellemeler genellikle hızlı bir şekilde yapılır.
Kural Dili: Snort, geniş bir kullanıcı ve topluluk desteğine sahip olup, kural dilini standart olarak kullanır. Snort kuralları, ağ trafiğini incelemek için detaylı ve özelleştirilebilir kurallar sunar.
Güncellemeler: Snort kuralları, Snort.org tarafından sağlanır ve genellikle günlük olarak güncellenir.
Gelişmiş Özellikler: Suricata, daha gelişmiş özellikler sunar. Örneğin, çoklu protokol desteği (HTTP, FTP, DNS, vb.), dosya çıkarımı ve SSL/TLS trafiğini çözme gibi özellikler içerir.
Modülerlik: Suricata, eklentiler ve modüller için destek sunar, bu da onun özelleştirilebilirliğini artırır.
Gelişmiş Özellikler: Snort, benzer şekilde protokol analizi ve dosya çıkarımı gibi özellikler sunar, ancak bu özelliklerin bazıları Snort 3.x ile geliştirilmiştir.
Modülerlik: Snort’un modülerliği daha sınırlıdır ancak topluluk desteği ile bazı ek özellikler ve modüller eklenebilir.
Ağ Trafiği Analizi: Suricata, ağ trafiğini derinlemesine analiz edebilir ve bu süreçte daha fazla protokol ve veri türünü destekler.
Kullanıcı Arayüzleri: Suricata, EVE JSON formatında loglama yapar, bu da onu çeşitli üçüncü taraf analiz araçları ile uyumlu hale getirir.
Ağ Trafiği Analizi: Snort, ağ trafiğini analiz eder ancak bazı daha karmaşık protokoller için sınırlı destek sunabilir.
Kullanıcı Arayüzleri: Snort’un logları genellikle kendi formatındadır ve bu nedenle bazı ek dönüştürücü araçlar gerekebilir.
Topluluk: Suricata, OISF (Open Information Security Foundation) -Açık Bilgi Güvenliği Vakfı tarafından geliştirilir ve geniş bir topluluk desteğine sahiptir.
Destek: Kurumsal destek ve hizmetler sunan çeşitli sağlayıcılar tarafından desteklenir.
Topluluk: Snort, Cisco’nun bir parçası olan bir topluluğa sahiptir ve geniş bir kullanıcı ve destek topluluğu bulunur.
Destek: Cisco tarafından sağlanan resmi destek seçenekleri ile birlikte geniş bir kullanıcı topluluğu desteği mevcuttur.
Suricata ve Snort, ağ saldırı tespit ve önleme sistemleri (IDS/IPS) olarak kullanılan popüler araçlardır. Her ikisi de ağ trafiğini izleyebilir, potansiyel tehditleri tespit edebilir ve bunlara tepki verebilir, ancak yukarıda bahsettiğim bazı önemli farklılıklar ve özellikler içerirler.
Her iki araç da etkili olabilir, ancak ihtiyaçlarınıza ve sistem yapılandırmanıza bağlı olarak birini diğerine tercih edebilirsiniz.
Benim için keyifli bir çalışma oldu; umarım sizler de okurken keyif alırsınız. 🙂
Şapkan beyazsa kırmızıdan daha önde olmalısın…