Ağ TeknolojileriGüvenlik Teknolojileri

Snort nedir, kurulumu ve ilk ayarları nasıl yapılır?

Snort, 1998 yılında Martin Roesch tarafından kurulan açık kaynaklı bir IDS /IPS sistemidir. Dünyadaki en fazla kullanılan IDS/IPS sistemi olan snort SourceFire şirketi üzerinden geliştirilmektedir. Cisco 2013 de SourceFire’ı satın alarak kendi sistemleriyle entegre etti. Snort genel olarak kötü amaçlı saldırılara karşı esnek koruma sağlamak için imza, protokol ve anomali tabanlı denetim sağlar.

Snort Mimarisi

  • Paket çözücü
  • Tespit motoru ve alarm
  • Log sisteminden oluşur 

Packet Sniffer : Paketleri okuyarak monitör eder;
Packet Logger Mode : Paketleri bilgilerini kaydeder ve belirlenen dizinlere yazılmasını sağlar.
NIDS/NIPS : İmza veri tabanı ve yazılan kural setlerine göre trafik üzerinde analiz ve koruma sağlar.

Kendi güvenlik kurallarınızı özelleştirmek ve uygulamak için Snort kullanarak ortamınızı hızla ortaya çıkan saldırılardan koruyabilirsiniz. Cisco® Talos Güvenlik İstihbarat ve Araştırma Grubu (Talos) , yeni ve gelişen tehditlerle mücadele etmek için Snort kurallarını günün her saati yazar. Dünya çapındaki Snort topluluğu, Snort kaynak kodunda sürekli olarak incelemeler, testler ve geliştirmeler sunar. Değişiklik önerileriyle dünyadaki güvenlik ekiplerinin toplu bilgilerinden yararlanabilirsiniz. Bu yararlarının yanında snort oldukça statik bir sistemdir. Günümüz dünyasında ağları dinamik ve güncel tutmak zor olabilir bu sebeple yapısı gerekeği kendi veri tabanındaki kural setlerine göre analiz yaparak çalışır.

Kurulum


Snort Windows, Fedora, Centos ve FreeBSD işletim sistemleri ile birlikte çalışabilmektedir.

SNORT kurulumları için gerekli dosyalar https://www.snort.org/downloads adresinden indirilir.

Kali üzerine SNORT kurulumu nasıl yapılır?

Öncelikle https://www.snort.org/ adresi ana sayfada yer alan Source altında olan kurulum parametreleri ile devam ediyoruz.

wget https://www.snort.org/downloads/snort/daq-2.0.6.tar.gz

Yukarıdaki link ile dosyaları sunucumuza indiriyoruz.

Dosyalar indirildikten sonra aşağıdaki komut ile sıkıştırılmış dosyaları sunucumuzda açıyoruz.

tar xvzf daq-2.0.6.tar.gz

cd daq-2.0.6

Yukarıdaki komut ile sıkıştırılmış dosyaları açtığımız dizine giriyoruz ve aşağıdaki komut ile açığımız dosyaların kurulumu tamamlıyoruz.

./configure && make && sudo make install


“daq” kurulumu tamamlandıktan sonra Snort kurulumu ile devam ediyoruz. Snort kurulumu için aşağıdaki komut ile 2.9.12 versiyon kurulumu gerçekleştireceğiz.

wget https://www.snort.org/downloads/snort/snort-2.9.12.tar.gz


Sıkıştırılmış dosyaları açıyoruz ve mevcut dizine girerek çıkarılan dosyaların kurulumlarını tamamlıyoruz.

tar xvzf snort-2.9.12.tar.gz

					
cd snort-2.9.12
./configure --enable-sourcefire && make && sudo make install

Yapılan kurulumlarda aşağıdaki gibi “libpcap” kütüphanesinin kurulu olmadığını belirten bir hata alabilirsiniz. Eğer bu hata ile karşılasırsanırz öncelikle “Libpcap” küthüpane kurulumları tamamlanıp devamında yeniden Snort kurulumun gerçekleştirilmesi gerekmektedir.

Libpcap kütüphanesin kurulumu için ilk önce wget http://www.tcpdump.org/release/libpcap-1.5.3.tar.gz komutu ile download ediyoruz.

İndirdiğimiz şıkıştırılmış dosyayı tar xvfvz libpcap-1.5.3.tar.gz komutu ile açarak cd libpcap-1.5.3 komutu ilede ilgili klasör içerisine giriyoruz.

Kurulum için sırasıyla ./configure” “make && make install komutları çalıştırıyoruz.

Kalide mevcut sürüm kontrolü ve upgrade adımları için;

#grep version /etc/os-release
#uname –a
#apt update && apt –y full-upgrade


İki yöntemle kurulabilir; repository üzerinden eklenerek veya kaynağından indirerek gerçekleşir. Direkt sitesinden indirilip yüklenmesi taraftarıyım.

Repository;
#cat /etc/apt/sources.list
DAQ da kurulması lazım. Temel linux komutlarını kullanarak kurulumu gerçekleştiriyoruz.
#mkdir snort
#cd snort
#apt-get install –y bison flex
#wget https://www.snort.org/downloads/snort/daq-2.0.6.tar.gz
#tar –zxvf daq-2.0.6.tar.gz
#cd daq-2.0.6
#./configure
#make install
#wget https://www.snort.org/downloads/snort/snort-2.9.12.tar.gz
#tar –zxvf snort-2.9.12.tar.gz
#cd /snort-2.9.12.tar.gz
#./configure –enable-sourcefire

Farklı dizinlerden de çalıştırabilmeniz için ln –s ile istediğiniz pathe aktarabilirsiniz

#snort –vde –c /etc/snort/snort.conf (NIDS olarak başlatır)

 

İlgili conf dosyasını kontrol ettiğimizde /etc/snort/snort.conf

Değişkenlerimizi bu alanda girebiliyoruz. Cisco Firepower üzerinde de objects alanından erişebilirsiniz.

 

Genel Kural Yapısı nasıldır?

Örnek kural :
 alert tcp $EXTERNAL_NET $HTTP_PORTS -> $HOME_NET any
Rule Header (Kural başlığı), kuralın eylemini, protokolünü, kaynak ve hedef IP adreslerini ve ağ maskelerini ve kaynak ve hedef bağlantı noktaları bilgilerini içerir.
Alert , kuraldaki ilk öğe kural eylemidir. Kural eylemi, Snort’a kural ölçütleriyle eşleşen bir paket bulduğunda ne yapacağını söyler (örnek alarm verir).
Tcp trafik türü (protokol) Bir kuraldaki bir sonraki alan protokoldür. Snort’un şu anda şüpheli davranışları analiz ettiği dört protokol vardır. — TCP, UDP, ICMP ve IP
$EXTERNAL_NET Kaynak adres değişkeni.
$HTTP_PORTS Kaynak port (lar) değişkeni veya değişmez
-> Yön operatörü Yön operatörü ->, kuralın uygulandığı trafiğin yönünü belirtir.
$ HOME_NET Hedef adres değişkeni
Any herhangi bir port değişkeni

Rule Options ( Kural Seçenekleri ), kullanım kolaylığını güç ve esneklikle birleştiren Snort’un izinsiz giriş tespit motorunun kalbini oluşturur. Tüm Snort kuralı seçenekleri, noktalı virgül (;) kullanılarak birbirinden ayrılır. Kural seçeneği anahtar sözcükleri, bağımsız değişkenlerinden iki nokta üst üste (:) ile ayrılır.
Message , Anlamlı bir mesaj genellikle kuralın tespit ettiği şeyi içerir. Msg kuralı seçeneği, Snort’a kural eşleştiğinde ne çıkacağını söyler. Basit bir metin dizesidir.
Flow Kuralın ateşlenmesi için, ağ trafiğinin hangi yöne gittiğini belirtir. Flow anahtar sözcüğü, TCP akışının yeniden birleştirilmesi ile birlikte kullanılır. Kuralların yalnızca trafik akışının belirli yönlerine uygulanmasına izin verir.
Referans Kaynak anahtar sözcüğü, dış bilgi kaynaklarına referanslar eklemesine izin verir.
Classtype Classtype anahtar sözcüğü, Snort’un başarılı bir saldırının etkisinin ne olacağını nasıl paylaştığıdır.
sid / rev Snort kimliği, her kural için benzersiz bir tanımlayıcıdır. Bu bilgi çıktı eklentilerinin kuralları kolayca tanımlamasına izin verir ve rev (revizyon) anahtar kelimesiyle birlikte kullanılmalıdır.
Content Bu önemli özellik, kullanıcının paket yükünde belirli bir içeriği araştıran kuralları ayarlamasına ve bu verilere dayanarak yanıtı tetiklemesine izin verir. Seçenek verisi karışık metin ve ikili veri içerebilir.

US CERT de yayınlanan bir alarm linkinde bulunan imzalar >

Russian Government Cyber Activity Targeting Energy and Other Critical Infrastructure Sectors |…
Since at least March 2016, Russian government cyber actors-hereafter referred to as “threat actors”-targeted government…www.us-cert.gov


alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS (msg:”HTTP URI contains ‘/aspnet_client/system_web/4_0_30319/update/’ (Beacon)”; sid:42000000; rev:1; flow:established,to_server; content:”/aspnet_client/system_web/4_0_30319/update/”; http_uri; fast_pattern:only; classtype:bad-unknown; metadata:service http;)

alert tcp $EXTERNAL_NET [139,445] -> $HOME_NET any (msg:”SMB Server Traffic contains NTLM-Authenticated SMBv1 Session”; sid:42000006; rev:1; flow:established,to_client; content:”|ff 53 4d 42 72 00 00 00 00 80|”; fast_pattern:only; content:”|05 00|”; distance:23; classtype:bad-unknown; metadata:service netbios-ssn;)

vi /etc/snort/rules/custom.rules komutu ile özel imzalarımızı ekleyebiliyoruz.

Bu imzaların Mcafee , Cisco , Palo Alto vb ticari cihazlarda özel imza olarak tanımlanması ile ilgili yazı devam edecektir.

Referanslar;

https://www.snort.org/
https://www.cisco.com/c/en/us/products/collateral/security/brief_c17-733286.html

1 Comment

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir