ağ tabanlı saldırı tespit sistemleri
TRANSCRIPT
Snort IDS ile Ağ Tabanlı
Saldırı Tespit Sistemleri
Osman Cihat IŞIK
https://twitter.com/osmncht
https://www.linkedin.com/in/osmncht
IDS Nedir ?
• IDS(Intrusion Detection Systems) kelime anlamı
itibarı ile Saldırı Tespit Sistemleri demektir.
• Ağınıza yada bilgisayarınıza yapılan saldırıları
tespit eden bir uygulamadır.
• Saldırıların ne zaman ve kim tarafından
gerçekleştirildiğinin bilgisini tutar.
Neden IDS‟e ihtiyacımız var ?
Saldırıları Tespit Etme
Ağ trafiğini kotrol etme
Kaynak Doğrulama
İz Sürme
False Positive
• IDS tarafından üretilen uyarılardır.
• IDS‟in sisteme saldırı olduğu tespit etmesine
rağmen aslında geçerli bir saldırı değildir.
• Bizi olmayan şeylerin peşinde oyalar.
• Bizim için problem teşkil eder.
False Negative
• Gerçek bir saldırıdır.
• IDS tarafından tespit edilemez.
• IDS saldırıyı yakalayamadığı için alarm
vermez!
• IDS uyarı vermeği için de Sistem
yöneticisinin saldırıdan haberi olmaz.
Signature Detection( İmza Tespiti)
• İmza Tespiti kullanan bir IDS gördüğü ağ trafiği ile saldırı işaret listesini karşılaştırır.
• Bu işaretler genelde saldırının önemli bit ve parçalarıdır.Bu parçalar IDS tarafından olumsuz trafik olarak işaretlenir.
• Düzgün bir şekilde konfigüre edilmiş Signature Detection IDS‟i,false pozitive bakımından az sayıda ancak false negative açısından çok sayıda uyarı/alarm verebilir.
Anomaly Detection
Saldırı tespit`te, sık rastlanmayan, tanınlamayan
saldırıları tespit olayı ise 'Anomaly Detection'dır.
Anomaly tespit sistemi ile ağ normalde bulunan
trafik gözardı edilir ve normal trafikte
bulunmayacak bitler ağ yöneticisinin dikkatine
sunulur.
Bunun belirli bazı avantajları vardır.
Ağ Tabanlı Saldırı Tespit Sistemleri
(Network based IDS)
• Bir Ağ tabanlı IDS (NIDS),ağ bağlantısı üzerinden gelen ve saldırının bir parçası olan veriler üzerineki paketleri analiz eder.
• NIDS saldırıları tespit etmek amacıyla signature yada anormally detection kullanır.
• Gerçek zamanlı bir saldırıyı bildirmek için alarm verir.
• Saldırı gerçekleştikten sonra saldırı ile ilgili detaylı bilgilerin log kaydını tutar.
Host tabanlı IDS (Host based IDS)
• Bir NIDS saldırıları tespit etmek için ağ üzerindeki tüm trafiğe bakarken, HIDS sadece üzeinde çalıştığı sistemdeki ihlaleri görüntüler.
• HIDS sistemdeki olağan dışı olayların loglarını inceler.
Örneğin: Çoklu geçersiz login teşebbüsleri
• HIDS sistemdeki dosyaların düzgün olup olamadığından ziyade dosyalar üzerinde değişiklik yapılıp yapılmadığını kontrol eder.
• Sistemde backdoor ya da trojan programlarının yüklendiğini tespit etme konusunda oldukça kulanışlıdır.
Firewall Bir kural kümesi temelinde ağa gelen giden paket trafiğini kontrol
eden donanım tabanlı ağ güvenliği sistemidir.
İP filtreleme, port filtreleme, Web filtreleme, içerik filtreleme
bunlardan birkaçıdır.
Private network kaynaklarını diğer network kullanıcılarından korur.
Birçok farklı filtreleme özelliği ile bilgisayar ve ağın gelen ve giden
paketler olmak üzere İnternet trafiğini kontrol altında tutar.
Firewall hem yazılım hem donanım hem de her ikisinin
kombinasyonu şeklinde olabilir.
IPS
Intrusion prevention system aktif olarak veri paketlerini atmak ya da
yetkisiz veri içeren bağlantılarda bağlantı sonlandırmak için
kullanılır.
Aynı şekilde saldırıları loglama ve kaynak IP adresini kısa bir
zaman diliminde block listesine ekler. Ve hatta tanımlanan ayarlara
bağlı olarak, IP adreslerini kalıcı olarak bloklayabilir.
WAF
Web Application Firewall‟lar adında da anlaşıldığı üzere web
uygulamalarını/sunucularını web tabanlı saldırılardan korumak
amaçlı tasarlanmıştır ki IPS‟ler bunları engelleyemez.
IDS/IPS te olduğu gibi network ya da host tabanlı olabilir. Inline
olarak bulunurlar ve web uygulaması/sunucusundan giden ve gelen
trafiği görüntülerler. Temel olarak, farklılık katman 7 web uygulama
mantığını analiz etme yeteneği seviyesindedir.
IPS‟ler trafiği signature ve anomaly‟lerle sorgularken, WAF‟lar ise
request ve response taki mantık ve davranışları sorgular. WAF‟lar
web uygulamalarını SQL Injection, Cross-site scripting, session
hijacking(session çalma) ya da URL tampering(URL kurcalama) ve
buffer overflow gibi tehditlere karşı korur.
Firewall varken IDS‟e ihtiyaç var mı?
Şöyle bir analoji yapılabilir. Firewall‟u güvenlik görevlilerine
benzetirsek, IDS sistemleri de güvenlik kameraları olarak görülebiliriz.
Bir IDS ağı görüntüler ve aktivite kalıplarını tespit eder ve eğer
network saldırı altındaysa uyarı verir. Signature detection, IDS
veritabanında bulunan saldırılarla network ya da sistem bilgilerini
karşılaştırır. Anomaly detection mevcut network trafiğini, normal
seviyedeki paket uzunlukları ya da aktiviteleriyle karşılaştırır ve elde
ettiği istatistiği analiz eder.
Firewall varken IDS‟e ihtiyaç var mı?
Firewall network‟u internete bağlayan portları gözetler ve paketlerin
geçişini önce kontrol eder sonra izin verir ya da engeller. Bir paketi
kabul edebilir, silip atabilir ya da gönderene geri gönderebilir. Firewall
trafik yasal mı ya da normal mi bunu bilemez.
Firewalllar trafiği bloklar ya da izin verirken, IDS ise trafiğe daha
detaylı bakar ve tespit eder.
Bir firewall, internete bağlı bir ağ için en temel ihtiyaçtır. Ancak bir
firewall bir IDS‟in yerine geçemez. Bizim hem bir firewall hem de bir
IDS „e ihtiyacımız var. Tabii bazı firewall‟lar intrusion detection
yeteneklerine sahip olsalar da, çoğu kez tam teşekküllü bir IDS‟den
daha az saldırıyı tespit edebilir.
IPS varken IDS‟e ihtiyaç var mı?
IDS sistemleri sadece sızma girişimlerini algılar ve saldırıları
loglayıp bunları yöneticiye uyarı olarak gönderir. IDS sistemleri
network‟ü IPS „te olduğu gibi yavaşlatmaz, çünkü inline değildir.
Peki IPS ile saldırıları bloklayabiliyorken neden IDS ile geçmesine
izin verilsin? Bunun birkaç nedeni var, ancak bunlardan ikisi
önemlidir. Bir IDS sistemi, false positive üretildiği durumda bunu
sadece loglarken IPS in network trafiğini engellemesi istenmeyen
bir durum olarak karşımıza çıkar.
Bunun dışından bazı adminler ya da yöneticiler sistem üzerinde
kendi adına karar verilmesini istemeyebilir, bunun yerine uyarıyı
alıp problem üzerinde kendileri harekete geçmek isteyebilirler.
Snort nedir?
• Snort ağ tabanlı,signature detection kullanan bir IDS‟tir.
• Ağdaki veri paketlerini koklar ve bilinen saldırılarda içeriği eşleştirmeye çalışır.
• Piyasada snort haricinde IDS çözümleri mevcuttur.
Ticari olanlar : IIS Real Secure,Cisco IDS
Açık Kaynak olanlar : Prelure IDS for Linux and BSD OS
Neden Snort ?
Konfigüre edilebilir.
Tüm iç işleyişi,konfigürasyon dosyaları ve
kurallar açık bir şekilde ortadadır.
Ücretsizdir.
GNU GPL lisansına sahiptir.
Çok yaygın olarak kullanılır.
www.snort.org sitesinden her ay onbinlerce
kez indirilmektedir.
Neden Snort ?
• Birçok platforma kullanılır.• Unix,Linux ve Windows tabanlı sistemlerde çalışır.
• Sürekli olarak güncellenir.
• Snort kuralları her yeni saldırı işareti ile birlikte güncellenir ve kendi
sitesinden indirilebilir.
Snort‟un Avantajları
Bir tek snort ile çok sayıda sistemi izlemek mümündür.
Yeni bir saldırı çeşidine karşılık hemen yeni kural eklenip
güncellenebiliyor.
Herkese açık, güncel ve geniş bir kural tabanına sahip.
Açık kaynak ve ücretsiz olması.
Snort‟un Dezavantajları
Şifrelenmiş bağlantıları izleyemiyor.
Çok büyük trafikleri izlemekte yetersiz kalıyor.
İyi konfigüre edilmediği zaman yanlış alarmlar üretiyor.
Snort Mimarisi
Snort‟un Bileşenleri
1-Packet Capture Library(Paket Yakalama Kütüphanesi)
• Snort‟un network paketlerini network kartından çekmek
için kullandığı ayrı bir yazılım parçasıdır.
• Ethernet çerçeveleri gibi işlenmiş veribağı katman
paketlerini barındırır.
• Linux ve Unix sistemlerde Snort libcap, Windows
sistemlerde ise WinPcap kullanılır.
Snort‟un Bileşenleri
2-Packet Decoder
• Packet Decoder, paket yakalama kütüphanesinden
gönderilen katman 2 verisini alır ve parçalar.
• İlk olarak veribağı çerçevelerini,(Ethernet.Token
Ring, 802.11) sonra IP protokolü ve sonrasında TCP
yada UDP paketlerini ayrıştırır.
• Çözme işlemi bittikten sonra, Snort tüm protokol
bilgilerini daha sonra işlemek üzere doğru yere koyar.
Snort‟un Bileşenleri
3- Preprocessor
• Snort‟un önişlemcisi açılıp kapatılabilen eklentilere
sahiptir.
• Ön işleme çözümlenmiş paketler üzerinde
çalışır.Çeşitli dönüşümler yaparak Snort‟un veriyi daha
kolay kavrayabilmesini sağlar.
• Önişlemciler paketleri Detection Engine kısmına
yollamadan önce uyarı,sınıflandırma yapabilir hatta
paketi silip atabilir.
Snort‟un Bileşenleri
4- Detection Engine
• Sezme motoru Snort‟un kalbidir.
• Packet Decoder ve Preprocessor‟dan bilgi alır ve
bunlar üzerinde taşıma ve uygulama katmanlarında
işlem yapar.(OSI modelinin 4 ve 5. katmanı)
• Paketin içeriğini inceleyip karşılaştırır,kural tabanlı
tespit eklentisine bilgi verir.
• Kurallar saldırıların işaret yapısını içerir.
Snort‟un Bileşenleri
5- Output
• Bir önişlemci yada kural tetiklendiğinde, bir alarm üretilir
ve log tutulur.
• Snort çeşitli output eklentilerini,metin ve binary tabanlı
loglama formatlarını,birçok veritabanı ve syslog‟u
destekler.
Snort‟un Diğer Protokollerle İlişkisi
Snort sadece OSI modelinin katman 3 ve üzerinde, TCP/IP
protokol suitinin parçası olan paketleri çözümleyebilir.
Bu demektir ki, Novel‟in IPX/SPX ya da AppleTalk gibi diğer
network protokolleri üzerinde taşınan paketleri çözümleyemez ya
da saldırıları sezemez.
Snort Kurulumu Snort‟un kurulumu hakkında detaylı bilgi
http://www.snort.org/docs/ sitesinde mevcuttur.
Windows için kurulum:
http://winsnort.com/index.php?module=Pages&func=view&prop=Main&cat=10
060 adresi üzerinde detaylıca anlatılmıştır.
Linux için kurulum :
Centos için: http://s3.amazonaws.com/snort-
org/www/assets/202/snort2953_centos6x.pdf
Ubuntu için: http://www.snort.org/assets/158/snortinstallguide293.pdf
Fedora için: http://s3.amazonaws.com/snort-org/www/assets/219/snort2953_fedora.pdf
adresleri üzerinde detaylı kurulum bilgileri mevcuttur.
FreeBSD için kurulum:
http://s3.amazonaws.com/snort-org/www/assets/207/snort2953_freebsd9x.pdf
adresinde mevcuttur.
Snort Çalışma Modları1- Sniffer Modu
• Ag trafigini izleme modudur.
• Snortu, sadece gec en paketleri izlemek u zere sniffer modda çalıştırmak
mümkündür.. Bu s ekilde network trafiğini incelemek için oldukça
elverişlidir.
Snort Çalışma Modları2-Paket Loglayıcı Modu
Paketleri diske belirli formatlarda loglamak için kullanılan moddur.
Loglama sec enekleri belirli parametreler kullanılarak
özelleştirilebilir.
-d paketin veri kısmını da kaydetmek ic in
-e Layer2 bas lıklarını kaydetmek ic in
-l Loglamanın hangi dizine yapılacag ını belirtir
Snort Çalışma Modları3- NIDS Modu
Genel gec er kullanım alanı olan, sızma giris imlerini tespit etme
modudur.
Bu modda, snort veri akıs ını analiz ederek daha o nceden
tanımlanmıs kurallarla es les tirme is lemi yapıp ilgili kurallarda
belirtilmis aksiyonların uygulanmasını sağlar.
Snort Çalışma Modları4- Inline Mod
Bu mod da paketler iptables ya da IPFW üzerinden yönlendirme
yapılarak snort‟a iletiliyor ve yönlendirilmiş olan bu paketler, gene
daha önceden tanımlanmış kurallar uyarınca geçiriliyor ya da drop
ediliyor. Yani kendi başına IDS olarak çalışan Snort, inline modunda
çalıştırılarak IPS özelliği kazanmış oluyor. Yani sisteme sızma
girişimlerini tespit etmekle kalmıyor aynı zamanda bu girişimlere ait
paketlerin drop edilmesine olanak sağlıyor.
Snort HIDS Olarak Kullanılma Sebepleri
Eğer network tek bir host ile sınırlı ise,
Hizmet alınan host firmasının bütün trafiği izlemek yerine sadece
kendi sitenizin trafiğini izlemek istiyorsanız,
Herhangi biyerde kişisel bilgisayarınızla wireless ağına
bağlandığınızda bir başkasının sizin işletim sisteminizin son sistem
yamasını kontrol ederek bilgisayarınıza girmesini engellemek
istiyorsanız,
DMZ (De-Militarized Zone) Bir DMZ ağı bir çeşit araftır yani aradaki bir bölgedir.
Gelen ve giden trafiğin ne olduğunu kontrol eder.
Geleneksel olarak herkese açık internet sunucularının bulunduğu
yarı güvenilir bir ağdır.
NAT (Network Address Translation)
Network Address Translation (Ağ Adresi Dönüştürme), TCP/IP ağındaki bir bilgisayarın yönlendirme cihazı ile başka bir ağa çıkarken adres uzayındaki bir IP ile yeniden haritalandırma yaparak IP paket başlığındaki ağ adres bilgisini değiştirme sürecidir.
NAT ,Ağ maskelemeyle (ya da IP maskelemeyle) ile birlikte, bir adres uzayını gizlemek için kullanılan teknik bir terimdir.Çoğu kez private network adreslerinden ibarettir.(RFC 1918).Genellikle tek bir ip adresinin arkasında küçük bir adres uzayı bulunur.Bumekanizma, yönlendirici cihazın kullandığı adreslerin haritalarını içeren, durum çeviri tabloları kullanır ve giden ip paketlerini haritalama yapar. Böylece yönlendirici kaynağı görüntülenir. İletişim tersten yapıldığında, geri haritalandırma yaparak IP adresleriyle karşılaştırma yapar ve sonuç durum çeviri tablolarında saklanır. Çevirici tablo içindeki bu yöntemde, kayıtlar trafikteki durumu yenilendikten sonra silinirler.
Snort‟un Ağ toplojisindeki Yeri
Snort‟un nereyi izleyeceği/görüntüleyeceği ağ yapısına bağlıdır.
Snort‟un topolojideki yeri her sisteme her amaca göre değişebilir.
Kullanılan ara bağlantı cihazlarına göre değişkenlik gösterir.
Snort‟un nereye kurulması gerektiği sonraki slaylatlarda görsel olarak
mevcuttur.
Snort‟un Topolojideki Yeri -2
Snort‟un Toplojideki Yeri - 3
Snort‟un Toplojideki Yeri -4 (Inline)
Eğer ayrı bir DMZ ağı kullanılıyorsa,
DMZ switch‟inizdeki bir portu izleme/dinleme portu olarak atayın.
snort.conf dosyasında bu alt ağı dinlemek istediğinizi belirtin.
Trafiği bir süre izledikten sonra yapılan atakların içerikleri
incelenmelidir.Bu noktada snortun uyarıları dikkatle incelenerek
“false pozitive”leri azaltmak için konfigirasyonu yeniden gözden
geçirmek gerekir.
Snort Kural yapısı
Temel olarak iki kısımdan oluşur.
Rule Header Rule Actions
Pass
Log
Alert
Activate
Dynamic
Protokols
IP
ICMP
TCP
UDP
IP Adresi
Port Number
Rule Option Keywords
Snort Kural yapısı
Rule Header Rule Option
Action Protokol Adress Port Direction Adress Port
Genel kural yapısı
Kural yapısının içeriği
Snort Kural Örnekleri alert icmp any any -> any any (msg: "Ping with TTL=100"; \ ttl: 100;)
alert tcp any any -> 192.168.1.10/32 80 (msg: "TTL=100"; \ ttl: 100;)
alert icmp ![192.168.2.0/24] any -> any any \ (msg: "Ping with
TTL=100"; ttl: 100;)
alert tcp 192.168.2.0/24 23 -> any any \
(content: "confidential"; msg: "Detected confidential";)
log udp any !53 -> any any log udp
alert tcp any any -> 192.168.1.0/24 any (flags: A; \ ack: 0; msg: "TCP
ping detected";)
Snort‟u IPS Olarak Kullanma
Snort‟u Inline mod‟da yapılandırarak IPS olarak kullanmak
mümkündür.
Yani sisteme sızma girişimleri tespit etmekle beraber bu
girişimlere ait paketlerin silinmesini de sağlar.
Bu mod ise paketler iptables ya da IPFW üzerinden yönlendirme
yapılarak snort‟a iletiliyor ve yönlendirilmiş olan bu paketler, gene
daha önceden tanımlanmış kurallar uyarınca geçiriliyor ya da
drop ediliyor.
Yani kendi başına IDS olarak çalışan Snort, inline modunda
çalıştırılarak IPS özelliği kazanmış oluyor.
Snort DEMO
Referanslar
Intrusion Detection Systems with Snort - Rafeeq Ur Rehman
http://www.snort.org/docs
http://www.sans.org/security-resources/idfaq/ips-web-app-firewall.php
https://www.sans.org/reading-room/whitepapers/detection/understanding-ips-ids-ips-ids-defense-
in-depth-1381
http://www.syslogs.org/snort_inline-kurulumu/
http://www.bilgiguvenligi.gov.tr/saldiri-tespit-sistemleri/snort-2.9.2-kurulumu-1.html
http://seminer.linux.org.tr/wp-content/uploads/snort.pdf
http://web.bilecik.edu.tr/murat-ozalp/files/2013/01/YasinKilic.pdf