Snort, 1998 yılında Martin Roesch tarafından geliştirilmiş bir ağ sızma tespit/engelleme sistemidir. (NIDS / NIPS – Network Intrusion Detection System/Network Intrusion Prevension System). GNU lisansı ile dağıtılan, açık kaynak kodlu ve ücretsiz bir yazılım olan Snort, şu anda Martin Roesch’un kurduğu Sourcefire firması tarafından geliştirilmektedir. Bu yazının yazıldığı tarih itibari ile (Ocak 2013) yazılımın mevcut en son sürümü 2.9.4‘dir. Yazılım, çeşitli Linux dağıtımları, Windows ve MAC gibi pek çok işletim sistemi üzerinde çalıştırılabilmektedir. Snort yazılımını temel alarak grafik arayüz desteği ile çalışacak şekilde geliştirilen bağımsız şirket yazılımları da mevcuttur. Bu yazılımlar yönetim, raporlama, günlükleme (loglama) gibi işlevleri yerine getirmektedir.
Snort’un mimarisi performans, basitlik ve esnekliğe dayalıdır. Snort IP ağları üzerinde gerçek zamanlı trafik analizi ve paket loglaması yapabilen bir yazılımdır. Yazılım protokol analizi, içerik tarama/eşleme yapabildiği gibi, arabellek taşması, port taraması, CGI saldırısı, işletim sistemi parmakizi denemesi gibi pek çok saldırı ve zararlı/şüpheli yazılım çeşidini tespit edebilmektedir. Snort üzerinden geçen trafiği tanımlamak için kullanıcı tarafından da tanımlanabilen esnek kural dilini kullanır; bunun yanı sıra modüler takma-program (plug-in) mimarisini kullanan tespit motoru da bulunmaktadır. Snort’un gerçek zamanlı alarm mekanizması vardır. Bu mekanizma Windows istemcilerine WinPopup pencereleri çıkarabilir, Linux türevlerinde alarm mekanizmalarını syslog’a dahil edebilir, ya da özelleştirilmiş günlük dosyasında alarmları biriktirebilir. Snort mimarisinin 3 temel bileşeni vardır: paket çözücü, tespit motoru ve günlükleme/alarm altsistemi. Snort temel olarak uygulama seviyesine kadar tüm katmanlardaki veriye bakar ve bu veri içerisinden belirli trafiği toplar; kullanıcı ya da geliştirici tarafından tanımlanabilen kural setlerini uygulayarak bulduklarını değerlendirir. Snort temelde 3 ayrı modda çalışabilecek şekilde yapılandırılabilir:
Kuralları Yazmak: Snort kuralları basit bir şekilde yazılabilmesine rağmen zararlı/şüpheli trafiği tespit etmede oldukça başarılıdır. Snort kuralları mantıksal olarak iki kısma ayrılmaktadır: kural başlığı ve kural opsiyonları. Kural başlığı kural eylemini, protokolü, kaynak IP adresi, hedef IP adresi, alt ağ maskeleri ile kaynak ve hedef port bilgilerini içerir. Kural opsiyonu ise kural eylemi takınılacaksa paketin hangi kısımlarının inceleneceğini belirler. Kural eylemi 8 şekilde olabilir:
Kural setleri periyodik olarak Snort geliştirici grup tarafından Snort resmi web sitesinden yayınlandığı gibi, kurallar kullanıcılar tarafından da oluşturulabilmektedir. Örnek bir Snort kuralı: Aşağıda örnek olarak bir alarm kuralı gösterilmiştir: alert tcp any any ? 10.1.1.5 80 (content: “cgi-bin/phf” ; msg “PHF probe!”;) Örnek kuralımızı detaylı olarak inceleyelim: alert – kural eylemi: alarm ver
Kaynaklar:
İlgili linkler:
|