IDS ve IPS farkı
- IDS ile IPS farkını, sensör yerleşimini, Suricata'nın IPS modlarını, eve.json alarm kaydını ve tespit başarısının nasıl ölçüldüğünü öğren.
- IDS ağ trafiğini izler ve alarm üretir, IPS ise trafiğin yolu üstünde durur ve kötü paketi düşürür.
- Yanlış pozitif ile yanlış negatifi sayıyla ölçmeyi, şifreli trafikteki kör noktaları ve sensörün sağlığını izlemeyi göreceksin.
Puan bütün etkinlikleri cevaplayınca hesaba yazılır. Bu dersi tamamlayınca +45 XP alacaksın. Giriş yapmadan ilerlersen puan yalnız bu tarayıcıda durur.
Güvenlik duvarı port ve adrese bakar, paketin içine pek girmez. IDS ve IPS bir adım ileri gider ve paketin içeriğini inceler. IDS, saldırı tespit sistemi (intrusion detection system) anlamına gelir. Ağın bir kopyasını izler, genelde bir anahtarın yansıtma portundan ya da bir ağ musluğundan beslenir.
Şüpheli bir örüntü gördüğünde alarm üretir ama paketi durdurmaz, çünkü trafiğin asıl yolunda değildir. IPS, saldırı önleme sistemi (intrusion prevention system) anlamına gelir ve trafiğin tam ortasında durur. Her paket önce IPS'ten geçer, IPS karar verdikten sonra hedefe ulaşır. Kötü bulduğu paketi anında düşürebilir.
Fark konumdan gelir: biri kenarda dinler, öteki yolun üstünde durur. Suricata gibi araçlar iki modda de çalışır. Bu derste tespit yöntemlerini, sensörün yerini, IPS modlarını, alarm kaydını ve tespitin kör noktalarını sırayla göreceksin.
İmza, anormallik ve iki tür hata
Tespit iki temel yöntemle çalışır. İmza tabanlı tespit bilinen saldırı örüntülerini bir kural listesiyle karşılaştırır. Belirli bir dizgiyi ya da paket biçimini arar, tıpkı bir virüs tarayıcının imza dosyası gibi.
Hızlıdır ve yanlış alarmı azdır, ama daha önce görülmemiş bir saldırıyı yakalayamaz. Anormallik tabanlı tespit ise normal trafiğin bir modelini çıkarır ve bu modelden sapan her şeyi işaretler. Yeni bir saldırı türünü de yakalayabilir, ama normalin ne olduğunu yanlış öğrenirse alarmı da yanlış üretir.
NIST SP 800-94 üçüncü bir yöntem daha sayar: durum bilgili protokol analizi. Bu yöntem bir protokolün nasıl konuşulması gerektiğini bilir ve kurala aykırı komut sırasını yakalar. Oturum açmadan dosya isteyen bir istemci bu yöntemle göze batar.
İki tür hata vardır. Yanlış pozitif (false positive), zararsız bir trafiği saldırı diye işaretlemektir ve analisti gereksiz yere meşgul eder. Yanlış negatif (false negative), gerçek bir saldırıyı kaçırmaktır.
En pahalı hatadır, çünkü kimse fark etmez. Doğru tarafta da iki durum vardır. Gerçek saldırıya verilen alarm doğru pozitif, sessizce geçen zararsız trafik doğru negatiftir.
İyi bir tespit sistemi iki hatayı da azaltmaya çalışır, ama ikisi çoğu zaman ters yönde hareket eder. Kuralı gevşetirsen yanlış pozitif düşer, kaçan saldırı artar. Kuralı sıkılaştırırsan tersi olur. Ayar, iki hata arasında kurumun kabul edebileceği dengeyi bulmaktır.
Derinleş:Tespit sistemlerinin kısa tarihi
Saldırı tespitinin kuramsal temeli Dorothy Denning'in çalışmasına dayanır. Denning 1986'da sunduğu ve 1987'de yayımladığı modelde kullanıcı davranışının istatistiksel profilini çıkarmayı ve profilden sapmayı işaretlemeyi önerdi. Bugünkü anormallik tabanlı tespitin fikri buradan gelir. Ağ tarafında üç açık kaynak araç öne çıktı.
Vern Paxson 1995'te Lawrence Berkeley Ulusal Laboratuvarı'nda Bro'yu geliştirmeye başladı. Bro trafiği olaylara çevirip betik diliyle analiz ediyordu, proje 2018'de Zeek adını aldı. Martin Roesch 1998'de Snort'u yazdı. Snort imza tabanlı ağ tespitinin fiilî standardı oldu, bugün Cisco geliştiriyor ve güncel sürüm ailesi Snort 3'tür.
Suricata'nın ilk kararlı sürümü Temmuz 2010'da OISF çatısı altında çıktı. Çok iş parçacıklı mimarisi ve Snort'a yakın kural diliyle yayıldı. Bugün birçok ekip Suricata ile Zeek'i aynı sensörde birlikte çalıştırır: biri alarm, öteki ayrıntılı bağlantı kaydı üretir.
Etkinlik 1 / 7
Her özelliği imza tabanlı ya da anormallik tabanlı tespite ayır.
Önce bir seçeneğe, sonra aşağıdaki uygun kutuya bas. İstersen seçeneği kutuya sürükleyip bırak. Yerini değiştirmek için aynı işlemi tekrarla.
0/4 seçenek yerleşti.
Sensör nereye konur: SPAN, TAP ve satır içi
Önce neyi izlediğine karar verirsin. Ağ tabanlı IDS (NIDS) bir ağ kesimindeki trafiği izler. Sunucu tabanlı IDS (HIDS) tek bir makinenin içinde çalışır; dosya değişikliklerini, oturum açmaları ve süreçleri izler.
NDR (network detection and response) ise ağ trafiğini imzaya ek olarak davranış analiziyle izleyen ve müdahale adımı ekleyen ürünlere verilen addır. Ağ ve uç nokta görünürlüğü birbirini tamamlar. NIDS şifreli bir oturumun içini göremez ama iki makinenin konuştuğunu görür.
Uç noktadaki ajan süreci görür ama ağdaki komşuyu bilmez. Açık kaynak tarafında Suricata ve Snort imzayla alarm üretir. Zeek ise trafiği ayrıntılı kayıtlara döker ve olay tabanlı bir betik diliyle analiz eder.
Pasif sensör trafiğin bir kopyasını alır. Kopyayı almanın iki yaygın yolu vardır. Anahtardaki yansıtma portu (SPAN) seçtiğin portların trafiğini bir porta kopyalar.
Kurması kolaydır ve çoğu anahtarda hazırdır. NIST SP 800-94 zayıf yanını da yazar: anahtar yoğunken yansıtma portu bütün trafiği göremeyebilir. Ağ musluğu (TAP) kabloya takılan ayrı bir donanımdır ve hattaki trafiğin tam kopyasını verir, ama kurulumu kısa bir kesinti ister.
Satır içi (inline) sensör ise trafiğin geçtiği yolun üstündedir. IDS kopyayla çalıştığı için bir gecikme ya da arıza asıl trafiği etkilemez; en kötü ihtimalle bir alarmı kaçırırsın. IPS trafiğin üstünde durduğu için kendisi bir darboğaz olabilir. Yanlış pozitif üreten bir IPS meşru trafiği de durdurur.
Etkinlik 2 / 7
Satır içi çalışan bir IPS trafiğin tam ortasında durur ve kötü paketi anında düşürür. İstek yolunda IPS'in konumu en çok hangi durağa yakındır?
Diyagramda doğru kutuyu tıkla.
Etkinlik 3 / 7
Doğru mu, yanlış mı?
Anahtarın yansıtma portundan beslenen bir IDS arızalanırsa asıl trafik akmaya devam eder; o aralıkta kaçan şey alarmlardır.
IDS'ten IPS'e: Suricata'nın satır içi modları
Suricata aynı motorla iki modda çalışır. IDS modunda kopya trafiği dinler. IPS modunda paket önce Suricata'ya uğrar ve Suricata karar verdikten sonra yoluna devam eder. Linux'ta iki yaygın yol vardır.
NFQUEUE modunda güvenlik duvarı paketleri bir çekirdek kuyruğuna yollar. Suricata -q seçeneğiyle bu kuyruğu okur ve her paket için kabul ya da ret kararı döner. AF_PACKET satır içi modunda Suricata iki ağ arayüzünü köprüler; copy-mode: ips ayarı paketleri bir arayüzden ötekine aktarır.
Kural eylemlerinden drop, paketi yalnız IPS modunda gerçekten düşürür. Aynı kural kopya trafiği dinleyen bir sensörde paketi durduramaz, çünkü paket zaten hedefine gitmiştir. Sensör yalnız alarm yazar ve fast.log bu satırı düşürülecekti anlamında [wDrop] önekiyle işaretler. Bir kuralın ne yaptığını anlamak için önce sensörün modunu bilmen gerekir.
# Yönlendirilen trafiği 0 numaralı çekirdek kuyruğuna gönder $ sudo iptables -I FORWARD -j NFQUEUE # Suricata aynı kuyruğu satır içi okur ve her paket için karar verir $ sudo suricata -c /etc/suricata/suricata.yaml -q 0
Satır içi sensör yeni bir soru doğurur: sensör çökerse ya da yetişemezse trafik ne olur. Açık kalarak bozulma (fail-open) kararında trafik denetimsiz geçer; hizmet sürer ama koruma yoktur. Kapalı kalarak bozulma (fail-closed) kararında trafik durur; koruma sürer ama hizmet kesilir.
NFQUEUE'da kuyruğu okuyan program yoksa çekirdek varsayılan olarak paketleri düşürür. Suricata'nın nfq bölümündeki fail-open ayarı açıksa, Suricata yetişemediğinde çekirdek paketi kabul eder. Seçim korunan sistemin önemine bağlıdır ve risk sahibiyle birlikte belgelenir.
Yeni bir kural setinde de aynı temkin geçerlidir. NIST SP 800-94, üretimde önce az sayıda sensörü önleme yeteneği kapalı olarak açmayı önerir. Ayarlanmamış bir sensörün ilk günleri gürültülü geçer, alarmların çoğu yanlış pozitiftir. Önce izler, gürültüyü ayıklar, sonra engellemeye geçersin.
Etkinlik 4 / 7
Bir ekip yeni bir IPS kural setini üretim ağına ilk kez ekliyor. En güvenli ilk adım hangisidir?
Alarm kaydını okumak ve tespiti ölçmek
Suricata her olayı eve.json dosyasına bir JSON satırı olarak yazar. Alarm, akış, DNS ve HTTP kayıtları aynı dosyada durur, event_type alanı satırın türünü söyler. Aşağıda bir web sunucusuna gelen istek için üretilmiş bir alarm var.
Altındaki jq komutu dosyadaki bütün alarmları dört alana indirir. Binlerce satırlık bir dosyada ilk iş budur: önce alarm satırlarını süzer, sonra yalnız gereken alanları okursun.
$ jq 'select(.event_type=="alert")' eve.json
{
"timestamp": "2026-09-24T01:15:59.118801+0300",
"flow_id": 1182736452019871,
"in_iface": "eth1",
"event_type": "alert",
"src_ip": "198.51.100.77",
"src_port": 51548,
"dest_ip": "203.0.113.40",
"dest_port": 80,
"proto": "TCP",
"alert": {
"action": "allowed",
"gid": 1,
"signature_id": 1000001,
"rev": 2,
"signature": "Olası SQL enjeksiyon denemesi, URI",
"category": "Web Application Attack",
"severity": 1
},
"app_proto": "http"
}
$ jq -c 'select(.event_type=="alert") | [.timestamp,.src_ip,.dest_ip,.alert.signature]' eve.json
["2026-09-24T01:15:59.118801+0300","198.51.100.77","203.0.113.40","Olası SQL enjeksiyon denemesi, URI"]Kaydı yukarıdan aşağı oku. timestamp sensörün saatidir ve saat dilimini de taşır. flow_id bu bağlantının kimliğidir; aynı bağlantıya ait alarm, HTTP ve akış kayıtları aynı flow_id değerini paylaşır. Alarmı gördükten sonra bu değerle aynı bağlantının HTTP kaydını bulur ve istenen adresi okursun.
in_iface paketin geldiği arayüzdür. src ve dest alanları yönü verir: 198.51.100.77 adresi 203.0.113.40 adresinin 80 numaralı portuna bağlanmıştır. alert nesnesinde action değeri allowed görünür. Sensör IDS modundadır ve paketi durdurmamıştır; IPS modunda düşürülen paket blocked olarak yazılır.
signature_id ile rev hangi kuralın hangi sürümünün tetiklendiğini söyler. signature kuralın msg metni, category sınıfı, severity önem derecesidir; 1 en yüksek önemi gösterir. app_proto trafiğin HTTP olarak çözümlendiğini gösterir.
Bir IDS'in iyi çalışıp çalışmadığını hisle değil sayıyla ölçersin. Bunun için dört kutulu bir karışıklık matrisi (confusion matrix) kurarsın. Kutular doğru pozitif (TP), yanlış pozitif (FP), yanlış negatif (FN) ve doğru negatif (TN) sayılarını tutar. Bir haftada sensör 200 alarm üretmiş olsun.
İnceleme sonunda 50'si gerçek saldırı, 150'si zararsız çıkar. Aynı hafta sızma testi ekibinin denediği 60 saldırıdan 10'u hiç alarm üretmemiştir. Kesinlik (precision), doğru pozitiflerin bütün alarmlara oranıdır: TP / (TP + FP). Burada 50 / 200, yani yüzde 25 çıkar.
Alarmların dörtte üçü boşa zaman harcatır. Yakalama oranı (recall), yakalanan saldırıların bütün saldırılara oranıdır: TP / (TP + FN). Burada 50 / 60, yaklaşık yüzde 83 çıkar. Aşağıdaki tablo aynı sensörün ilk haftasını, ayar yapılmış dördüncü haftasıyla karşılaştırır.
Ölçüt İlk hafta 4. hafta (ayar sonrası) Toplam alarm 200 64 Doğru pozitif (TP) 50 52 Yanlış pozitif (FP) 150 12 Kaçan saldırı (FN) 10 8 Kesinlik %25 %81 Yakalama oranı %83 %87
Etkinlik 5 / 7
Bir sensör bir günde 80 alarm üretti. İnceleme sonunda 60'ının gerçek saldırı olduğu çıktı. Sensörün kesinliği yüzde kaçtır?
Tahminini kaydır, sonra gönder.
Etkinlik 6 / 7
eve.json içinde aynı bağlantıya ait alarm, HTTP ve akış kayıtlarını birbirine bağlayan alanın adı: ____
Kör noktalar: şifreleme, atlatma ve sensörün sağlığı
Tespit motoru göremediği baytı eşleyemez. Trafiğin büyük kısmı bugün TLS ile şifrelidir. Şifreli bir oturumda IDS yükü okuyamaz, elinde el sıkışmanın üstverisi kalır. İstemcinin gitmek istediği sunucu adı (SNI) ve istemcinin TLS kütüphanesini ele veren JA3 ya da JA4 parmak izi bunlardandır.
TLS 1.3'te sunucu sertifikası da şifrelenir. Şifreli ClientHello (ECH, RFC 9849) yaygınlaştıkça SNI de görünmez olur. Şifreli trafikte tespit bu yüzden içerikten çok davranışa dayanır: kim, kiminle, ne sıklıkla ve hangi parmak iziyle konuşuyor. Kurum kendi sunucusuna gelen trafiği, TLS'in sonlandığı yük dengeleyicinin arkasında izleyerek içeriği yeniden görebilir.
Saldırgan IDS'i atlatmak için sensörle hedefin aynı paketi farklı yorumlamasından yararlanır. Yükü küçük IP parçalarına ya da küçük TCP bölütlerine böler; sensör birleştirmezse imza hiçbir parçada görünmez. Üst üste binen parçalar gönderir, hedef işletim sistemi bir sürümü, sensör başka bir sürümü birleştirir.
Bazı paketlerin TTL değerini, sensörü geçip hedefe varmadan ölecek kadar küçük tutar. Sensör bu sahte baytları görür, hedef görmez.
Savunmanın adı normalleştirmedir. Suricata IP parçalarını ve TCP akışını, imzaları çalıştırmadan önce birleştirir. host-os-policy ayarıyla hangi adreste hangi işletim sistemi davranışının taklit edileceğini söylersin. Satır içi bir IPS belirsiz paketleri düşürüp trafiği tek bir yoruma zorlayabilir.
Sessiz bir IDS iki anlama gelir: ya ağ temizdir ya da sensör körleşmiştir. İkincisini ayırt etmek için sensörün kendisini de izlersin. Suricata stats.log dosyasına düzenli aralıklarla sayaç yazar.
capture.kernel_packets çekirdeğin sensöre verdiği paket sayısıdır. capture.kernel_drops ise sensör yetişemediği için düşen paket sayısıdır.
Aşağıdaki örnekte düşen paket oranı yaklaşık yüzde 4,8'dir; sensör her yirmi paketten birini hiç incelemiyordur. Bu oranı izleme sistemine bağlarsın. Sensör süreci durduğunda ya da belirli bir süre hiç olay yazmadığında da alarm üretirsin.
$ grep -E "capture.kernel_(packets|drops)" /var/log/suricata/stats.log | tail -2 capture.kernel_packets | Total | 48120331 capture.kernel_drops | Total | 2310575
Derinleş:Ekleme, kaçırma ve 1998 raporu
IDS atlatmayı sistemli biçimde ilk anlatan çalışma, Thomas Ptacek ile Timothy Newsham'ın Ocak 1998 tarihli raporudur. Raporun adı Insertion, Evasion, and Denial of Service'tir. Rapor iki temel hileyi adlandırdı.
Ekleme (insertion) saldırısında sensör, hedefin atacağı bir paketi kabul eder. Örneğin sağlama toplamı bozuk ya da TTL'i yolda bitecek bir paket sensörün birleştirdiği akışa girer, imza bozulur. Kaçırma (evasion) saldırısında ise hedef, sensörün attığı bir paketi kabul eder ve sensör saldırının bir parçasını hiç görmez.
Raporun ana fikri şuydu: ağdaki pasif bir gözlemci, uç sistemin paketi nasıl yorumlayacağını her zaman bilemez. Bugünkü hedef tabanlı birleştirme (target-based reassembly) bu fikre verilen cevaptır. Suricata'nın host-os-policy ayarı da bu cevabın bir parçasıdır: sensöre, arkasındaki makinenin hangi işletim sistemi gibi davranacağını söyler.
Etkinlik 7 / 7
TLS sonlandırması olmayan bir ağ sensörü, şifreli bir HTTPS oturumunda hangi bilgileri hâlâ görebilir? Uyanların hepsini seç.
Okumayı istediğin sırayla sürdürebilirsin. Ders, bütün etkinlikleri cevapladığında tamamlanır.
- Etkinlik 1· İmza, anormallik ve iki tür hata
- Etkinlik 2· Sensör nereye konur: SPAN, TAP ve satır içi
- Etkinlik 3· Sensör nereye konur: SPAN, TAP ve satır içi
- Etkinlik 4· IDS'ten IPS'e: Suricata'nın satır içi modları
- Etkinlik 5· Alarm kaydını okumak ve tespiti ölçmek
- Etkinlik 6· Alarm kaydını okumak ve tespiti ölçmek
- Etkinlik 7· Kör noktalar: şifreleme, atlatma ve sensörün sağlığı