IDS (Intrusion Detection System, saldırı tespit sistemi), bir bilgisayarda veya ağda gerçekleşen olayları izleyip olası güvenlik ihlali belirtilerini arayan ve bulduğunda uyarı üreten yazılımdır. IPS (Intrusion Prevention System, saldırı önleme sistemi) ise IDS'in tüm yeteneklerine sahiptir ve ek olarak tespit ettiği olası saldırıları durdurmaya çalışır. Bu tanımlar NIST'in IDS/IPS rehberi NIST SP 800-94'ten gelir.

Firewall trafiği önceden yazılmış kurallara göre geçirir veya engeller; IDS/IPS ise geçmesine izin verilen trafiğin içinde saldırı izi arar. Bu yazıda IDS ve IPS'in nasıl çalıştığını, imza ve anomali tabanlı tespit farkını, ağ ve host tabanlı türleri, inline ve pasif yerleşimi ve en bilinen iki açık kaynak motor olan Suricata ile Snort'u anlatıyoruz. Firewall'un temellerini güvenlik duvarı (firewall) nedir yazısında bulabilirsiniz.

IDS ve IPS ne yapar?

IDS ve IPS ne yapar? Gözlenen olaylarla ilgili bilgileri kaydeder; bu kayıtlar yerelde tutulabilir..., Önemli olaylarda yöneticileri uyarır (alert), Olayları özetleyen veya...

NIST SP 800-94'e göre saldırı tespiti, sistemde veya ağda gerçekleşen olayları izleyip güvenlik politikalarının ihlal edildiğine ya da ihlal edilmek üzere olduğuna dair işaretler aramaktır. NIST, IDS ve IPS'in birçok yeteneği paylaştığını ve IPS ürünlerinde önleme özelliğinin genellikle kapatılarak IDS gibi çalıştırılabildiğini belirtir; bu yüzden ikisini birlikte IDPS diye anar. Tüm IDPS türleri tipik olarak şu işleri yapar:

  • Gözlenen olaylarla ilgili bilgileri kaydeder; bu kayıtlar yerelde tutulabilir veya merkezi log sunucularına ve SIEM sistemlerine gönderilebilir.
  • Önemli olaylarda yöneticileri uyarır (alert): e-posta, syslog mesajı, SNMP trap veya arayüz mesajı gibi yollarla.
  • Olayları özetleyen veya ayrıntılandıran raporlar üretir.

IPS'i IDS'ten ayıran tek özellik, tespit edilen tehdide karşı harekete geçebilmesidir. NIST bu tepkileri üç grupta toplar:

  • Saldırıyı kendisi durdurur: saldırıda kullanılan ağ bağlantısını sonlandırır, saldırganın IP adresinden veya hesabından erişimi engeller.
  • Güvenlik ortamını değiştirir: örneğin bir firewall'u, router'ı veya switch'i saldırganı engelleyecek şekilde yeniden yapılandırır.
  • Saldırının içeriğini değiştirir: örneğin bir e-postadan zararlı eki çıkarıp temizlenmiş e-postayı iletir.

Tespit yöntemleri: imza, anomali ve protokol analizi

NIST üç ana tespit yöntemi tanımlar ve çoğu ürünün bunları birlikte kullandığını belirtir.

İmza tabanlı tespit (signature-based)

İmza, bilinen bir tehdide karşılık gelen bir örüntüdür. Sistem, gözlenen olayları imza listesiyle karşılaştırır. NIST'in örneklerinden biri, kuruluş politikasını ihlal eden "root" kullanıcı adıyla yapılan bir telnet denemesidir. Bu yöntem bilinen tehditleri yakalamakta çok etkilidir; ancak daha önce görülmemiş tehditleri, gizleme (evasion) teknikleriyle değiştirilmiş saldırıları ve bilinen tehditlerin birçok varyantını kaçırır. NIST'in örneğinde "freepics.exe" adını arayan bir imza, dosya adı "freepics2.exe" olarak değiştirildiğinde eşleşmez.

Anomali tabanlı tespit (anomaly-based)

Bu yöntem önce "normal" davranışın profilini çıkarır, sonra mevcut etkinliği bu profille karşılaştırıp belirgin sapmaları arar. Profil; kullanıcıların, host'ların, ağ bağlantılarının veya uygulamaların tipik davranışı belirli bir süre izlenerek oluşturulur. NIST'e göre bu süre genellikle günler, bazen haftalardır. En büyük avantajı daha önce bilinmeyen tehditleri yakalayabilmesidir. Dezavantajları ise profile yanlışlıkla kötü niyetli etkinliğin dahil olabilmesi, ayda bir yapılan büyük bir yedekleme gibi meşru ama nadir işlemlerin alarm üretmesi ve bir uyarının neden üretildiğini açıklamanın zor olmasıdır.

Durum bilgili protokol analizi (stateful protocol analysis)

Bu yöntem, her protokolün nasıl kullanılması gerektiğini tarif eden ve üreticiler tarafından geliştirilen evrensel profilleri kullanır. Örneğin bir FTP oturumu kimlik doğrulamadan önce yalnızca birkaç komuta izin verir; bu aşamada başka komutlar gelmesi şüphelidir. Çok uzun bir kullanıcı adı argümanı gibi makullük kontrolleri de bu yöntemin parçasıdır. NIST'e göre bazı üreticiler buna "deep packet inspection" der. Dezavantajı çok fazla kaynak tüketmesi ve protokol kurallarını ihlal etmeyen saldırıları, örneğin kısa sürede yapılan çok sayıda meşru isteği yakalayamamasıdır.

YöntemNeyle karşılaştırırGüçlü yanıZayıf yanı
İmza tabanlıBilinen tehdit örüntüleriBilinen tehditlerde etkiliYeni ve değiştirilmiş saldırıları kaçırır
Anomali tabanlıNormal davranış profiliBilinmeyen tehditleri yakalayabilirÇok yanlış alarm üretebilir
Protokol analiziProtokolün beklenen kullanımıDurumu takip ederKaynak tüketimi yüksek

Yanlış pozitif, yanlış negatif ve ayarlama (tuning)

NIST, hiçbir IDPS'in tamamen doğru tespit yapamadığını vurgular. Zararsız bir etkinliğin saldırı sanılmasına false positive, gerçek bir saldırının gözden kaçmasına false negative denir. Birini azaltmak genellikle diğerini artırır. Sistemi kendi ağınıza göre ayarlayarak tespit doğruluğunu iyileştirmeye tuning denir; bir IDS kurduktan sonra işin büyük kısmı bu ayarlamadır.

IDS türleri: ağ tabanlı ve host tabanlı

NIST SP 800-94, IDPS teknolojilerini izledikleri olaylara ve yerleşimlerine göre dört gruba ayırır:

  • Ağ tabanlı (network-based, NIDS): belirli ağ bölümlerinin trafiğini izler, ağ ve uygulama protokolü etkinliğini analiz eder. En çok sınır firewall'ları ve router'ların yakınında, VPN sunucularında ve kablosuz ağlarla sınırda konumlandırılır.
  • Kablosuz (wireless): kablosuz ağ protokollerinin kendisindeki şüpheli etkinliği izler.
  • Ağ davranış analizi (NBA): DDoS saldırıları, bazı kötü amaçlı yazılımlar ve politika ihlalleri gibi olağandışı trafik akışları üreten tehditleri arar.
  • Host tabanlı (host-based, HIDS): tek bir host'u izler; o host'un ağ trafiği, sistem logları, çalışan süreçler, dosya erişimi ve değişiklikleri ile yapılandırma değişiklikleri bu kapsamdadır. NIST'e göre genellikle herkese açık sunucular gibi kritik host'lara kurulur.

Suricata ve Snort ağ tabanlı araçlardır. Bir VPS üzerinde log tabanlı otomatik engelleme isteyenler için Fail2ban farklı ama tamamlayıcı bir araçtır; DDoS özelinde DDoS koruma rehberine bakabilirsiniz.

Inline ve pasif yerleşim

Inline ve pasif yerleşim: Inline, Pasif

Ağ tabanlı bir IDPS sensörü iki şekilde yerleştirilir ve bu seçim, sistemin IDS mi IPS mi olarak çalışacağını büyük ölçüde belirler:

  • Inline: İzlenen trafik sensörün içinden geçmek zorundadır, tıpkı bir firewall'da olduğu gibi. NIST'e göre sensörü inline koymanın temel amacı, trafiği engelleyerek saldırıları durdurabilmektir. Inline sensörler genellikle ağlar arasındaki geçiş noktalarına yerleştirilir.
  • Pasif: Sensör trafiğin bir kopyasını izler; trafik sensörün içinden geçmez. Kopya, switch üzerindeki bir yansıtma portundan (spanning port), kabloya doğrudan bağlanan bir ağ musluğundan (network tap) veya trafiği birden çok sensöre dağıtan bir IDS yük dengeleyiciden alınabilir.

NIST'in önerisi açıktır: önleme yöntemleri kullanılacaksa sensörler inline, kullanılmayacaksa pasif yerleştirilmelidir. Pasif sensör trafiğin yalnızca kopyasını gördüğü için trafiğin hedefe ulaşmasını güvenilir şekilde durduramaz. Switch'lerde port yansıtma gibi özellikler için yönetilebilir switch nedir yazısına bakabilirsiniz.

Suricata nedir?

Resmi belgelerine göre Suricata, yüksek performanslı bir ağ IDS'i, IPS'i ve ağ güvenliği izleme (NSM) motorudur. Kâr amacı gütmeyen Open Information Security Foundation (OISF) tarafından geliştirilir ve kaynak kodu GNU GPL sürüm 2 lisansıyla dağıtılır. Üç kullanım biçimi vardır: saldırı tespiti (IDS), saldırı önleme (IPS) ve ağ güvenliği izleme (NSM).

Suricata kural yapısı

Suricata kuralları üç bölümden oluşur: eylem (action), başlık (header) ve parantez içindeki seçenekler (options). Belgedeki örnek kural şudur:

text
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"HTTP GET Request Containing Rule in URI"; flow:established,to_server; http.method; content:"GET"; http.uri; content:"rule"; fast_pattern; classtype:bad-unknown; sid:123; rev:1;)

Burada alert eylem, http $HOME_NET any -> $EXTERNAL_NET any başlık (protokol, kaynak adres ve port, yön, hedef adres ve port), parantez içi ise seçeneklerdir. Belgelere göre kullanılabilecek eylemler şunlardır:

EylemNe yapar
alertUyarı üretir
passPaketin daha fazla incelenmesini durdurur
dropPaketi düşürür ve uyarı üretir
rejectEşleşen paketin göndericisine RST veya ICMP unreachable hatası gönderir
rejectdstHata paketini eşleşen paketin alıcısına gönderir
rejectbothHata paketlerini konuşmanın iki tarafına da gönderir

Ubuntu'da hızlı başlangıç

Suricata'nın hızlı başlangıç belgesi Ubuntu için OISF'nin PPA deposunu kullanır. Belgedeki adımlar şöyledir:

bash
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt update
sudo apt install suricata jq
sudo suricata-update
sudo systemctl restart suricata

suricata-update kuralları indirir ve belgeye göre /var/lib/suricata/rules altına kurar. Uyarılar /var/log/suricata/fast.log dosyasına, ayrıntılı olaylar JSON biçiminde /var/log/suricata/eve.json dosyasına yazılır. Belge, kurulumu test etmek için bir terminalde sudo tail -f /var/log/suricata/fast.log ile uyarıları izleyip başka bir terminalde şu isteği göndermeyi önerir:

bash
curl http://testmynids.org/uid/index.html

Kurulum doğruysa fast.log dosyasında 2100498 numaralı imzaya ait bir uyarı görürsünüz. eve.json içindeki yalnızca uyarıları görmek için belge şu komutu verir:

bash
sudo tail -f /var/log/suricata/eve.json | jq 'select(.event_type=="alert")'

JSON logları büyüdükçe bunları merkezi bir yerde aramak isteyebilirsiniz; bunun için ELK Stack ile log analizi ve Linux loglarını okuma yazıları yardımcı olur.

Suricata IPS (inline) modu

Suricata'nın IPS kavramı belgesine göre IPS modunda Suricata varsayılan olarak tüm trafiğe izin verir ve istenmeyen trafiği drop veya reject kurallarıyla engeller. Genellikle inline olarak, katman 2'de (köprü, örneğin AF_PACKET) veya katman 3'te (yönlendirme, örneğin NFQUEUE) çalıştırılır. Linux kurulum belgesindeki NFQUEUE örneğinde Suricata şu komutla başlatılır ve trafik bir iptables kuralıyla kuyruğa yönlendirilir:

bash
sudo suricata -c /etc/suricata/suricata.yaml -q 0
sudo iptables -I FORWARD -j NFQUEUE

pfSense ve OPNsense gibi firewall platformlarında Suricata arayüzden yönetilebilir; OPNsense belgelerine göre OPNsense'in IPS sistemi Suricata tabanlıdır. Ayrıntılar için pfSense ve OPNsense nedir yazısına bakın.

Snort nedir?

Snort, kendi sitesinde dünyanın önde gelen açık kaynak saldırı önleme sistemi (IPS) olarak tanımlanır; gerçek zamanlı trafik analizi ve paket kaydı yapabilen açık kaynak bir IPS'tir. Snort.org'a göre üç temel kullanımı vardır: tcpdump benzeri bir paket dinleyici (sniffer), bir paket kaydedici (packet logger) ve tam teşekküllü bir saldırı önleme sistemi. Site, Snort'un zararlı paketleri durdurmak için inline olarak da konumlandırılabileceğini belirtir. Topluluk kural seti (Community Ruleset) Snort topluluğu tarafından geliştirilir ve Cisco Talos tarafından kalite kontrolünden geçirilir. Sitede öne çıkarılan ana sürüm Snort 3'tür.

Snort 3 belgelerine göre geleneksel bir kural başlığı beş bileşenden oluşur: eylem, protokol, IP adresleri, portlar ve yön operatörü. Belgedeki örnek başlık şudur:

text
alert tcp $EXTERNAL_NET 80 -> $HOME_NET any

Gördüğünüz gibi Snort ve Suricata kurallarının başlık yapısı birbirine çok benzer: eylem, protokol, kaynak, yön ve hedef.

Suricata ve Snort karşılaştırması

ÖzellikSuricataSnort
Kendi tanımıAğ IDS, IPS ve NSM motoruAçık kaynak IPS
GeliştirenOISF (kâr amacı gütmeyen vakıf)Snort topluluğu, kurallar Cisco Talos kontrolünde
Kullanım biçimleriIDS, IPS, NSMSniffer, packet logger, IPS
Kural başlığıEylem, protokol, adres, port, yönEylem, protokol, adres, port, yön

Hangisinin "daha iyi" olduğu sorusunun tek bir cevabı yoktur; seçim çoğu zaman kullandığınız platforma, ekibinizin deneyimine ve kural kaynaklarına bağlıdır.

Sık Sorulan Sorular

IDS ile IPS arasındaki fark nedir?

NIST'e göre IPS, IDS'in tüm yeteneklerine sahiptir ve ek olarak tespit ettiği olası saldırıları durdurmaya çalışır. IDS yalnızca tespit eder, kaydeder ve uyarır.

IDS, firewall'un yerini tutar mı?

Hayır. Firewall hangi trafiğin geçeceğini belirler; IDS/IPS geçen trafikte saldırı belirtisi arar. NIST ayrıca IDS'in, firewall'un engellemesi gerekirken bir yapılandırma hatası yüzünden engellemediği trafiği fark ederek firewall politikası için bir tür kalite kontrolü sağlayabileceğini belirtir.

Suricata'yı IDS mi IPS mi çalıştırmalıyım?

Yeni başlıyorsanız IDS modunda başlayın, oluşan uyarıları inceleyin ve kuralları ağınıza göre ayarlayın. Yanlış pozitifler azaldıktan sonra inline IPS moduna geçmek, meşru trafiği yanlışlıkla engelleme riskini düşürür.

Şifreli (HTTPS) trafikte IDS işe yarar mı?

Şifreli içeriği göremeyen bir sensör, içerikteki saldırı örüntülerini de göremez. NIST SP 800-41 firewall'lar için aynı sınırlamayı vurgular. Bu durumda host tabanlı izleme ve uygulama logları önem kazanır.

Marka adları sahiplerine aittir. Bu yazı bağımsız bir teknik rehberdir; adı geçen kuruluşlarla bayilik veya ortaklık ilişkisi bulunduğu anlamına gelmez.

İlgili içerikler: Firewall nedir · UTM ve NGFW nedir · pfSense ve OPNsense · Fail2ban · ELK Stack · VPS güvenlik sertleştirme