---
title: 'Saldırı Tespit ve Önleme'
source: 'https://academia.sh/tr/kurslar/kablosuz-ve-guvenlik/saldiri-tespit-ve-onleme'
course: 'Kablosuz Ağlar ve Ağ Güvenliği'
language: tr
updated: '2026-08-17T18:07:22+00:00'
license: 'CC BY-SA 4.0'
---

# Saldırı Tespit ve Önleme

Eşiğe dayanan bir düzenekte iki hata birbirine bağlıdır: ağ tabanlı sistemde eşik 7 iken fazla geçen 0 ama fazla duran 7, eşik 9 iken fazla duran 0 ama fazla geçen 5; konak tabanlı sistemin 8 yasak akışı ise hiçbir eşikte görünmez çünkü onları hiç görmez.

Önceki üç ders de sınırı **bir kez** karar veren bir düzenek saydı. Akış gelir, alanları
okunur, kural dizisinden geçer, geçer ya da durur. Karar kesindir çünkü ölçüt kesindir: bir
akış ya `dmz` kaynaklıdır ya değildir, arada bir şey yoktur.

Bu ders kesin olmayan bir ölçüte bakar. Bir **saldırı tespit sistemi (intrusion detection
system)** akışı alanlarından değil davranışından değerlendirir ve davranış bir sayıya
indirilir. O sayı ile bir **eşik** karşılaştırılır. Yeni olan şey eşiğin kendisi değil,
sayının iki sınıf arasında **örtüşmesidir** — ve bu dersin tamamı o örtüşmenin içinde geçer.

## Eşik Bir Kural Değildir

Kural dizisinin ölçütü ikilidir ve ayırt ettiği şeyi kusursuz ayırt eder. Eşiğin ölçütü
süreklidir ve ayırt ettiği iki sınıfın değerleri iç içe girer. Niyetin geçirdiği akışların
sayıları düşük, durdurduklarınınki yüksektir; ama iki dağılım bir bantta üst üste biner ve o
bandın içinde hiçbir eşik doğru yanıt vermez.

```text
# ogretilen olcek , calistirilmamistir
# eksen skordur , sayilar olcum blogundan gelir

  niyetin gecirdigi akislar  |==========|
  niyetin durdurdugu akislar        |==============|
                                    ^^^^  ortusme bandi

  esik bu eksende bir yere konur :
    sola kayarsa  -> fazla duran buyur , fazla gecen kucul
    saga kayarsa  -> fazla gecen buyur , fazla duran kucul
    bandin disina cikamaz
```

Bu, düzeneğin bir kusuru değil, ölçütün doğasıdır. Ölçüt kusursuz ayırsaydı zaten kural
yazılabilirdi ve eşiğe gerek kalmazdı.

## İki Sistemin Gördüğü

**Ağ tabanlı** sistem akışın kendisini değerlendirir ve bölge fark etmeksizin kırk akışın
kırkını da görür. Gördüğü şey akışın dışıdır; sayısı gürültülüdür.

**Konak tabanlı** sistem akışın indiği uçta çalışır. Uçtaki bağlamı gördüğü için sayısı daha
keskindir, ama yalnız **kendi konağına inen** akışı görür; başka bir bölgeye inen akış hiç
alanına girmez ve o akışa dair bir kararı yoktur.

Siber Güvenlik müfredatının Çevre Savunması konusu bu sistemleri **yerleşimleriyle** ve
**imza yordamıyla** ele aldı: duyarga nereye konur, imza nasıl yazılır, hangi kayıt nasıl
eşleştirilir. O anlatı burada tekrarlanmaz. Ölçülen şey yerleşim değil, **iki yönlü
hatanın eşiğe bağlı davranışıdır**.

Ölçümün varsayımları:

- **AG22** — Kırk akış ortak kurgudan değiştirilmeden alınır; kâhin niyetin kendisidir ve
  bir akışın gerçekten niyete uyup uymadığını söyler.
- **AG23** — Skor kâhinden türetilir: niyetin durdurduğu akış 7 tabanından, geçirdiği akış
  2 tabanından başlar ve üzerine ayrı bir üreteçten gelen gürültü eklenir. Kurgu budur
  çünkü bir tespit sisteminin gördüğü şey ihlalin **gürültülü izidir**; izi biz yazdığımız
  için örtüşme bandı bilinir.
- **AG24** — Ağ tabanlı sistemin gürültü genişliği 7, konak tabanlınınki 6'dır. Konak
  tabanlının daha keskin olması bu genişlik farkından gelir; iki skor ayrı üreteçlerden
  üretilir ve birbirinden bağımsızdır.
- **AG25** — Konak tabanlı sistem yalnız hedefi `ic` ya da `yonetim` olan akışı görür;
  öteki akışlarda kararı **geçir**dir, çünkü kararı yoktur.
- **AG26** — Düzeneğin kararı `skor < eşik` biçimindedir; eşik yükseldikçe daha az akış
  durdurulur.
- **AG27** — İkisi birlikte çalışırken akış ancak **her ikisi de** geçirirse geçer.
- **AG28** — `durduran` sütunu düzeneğin durdurduğu bütün akışları sayar, doğrusunu da
  yanlışını da. Tespit kipinde bu sütun **uyarı** sayısıdır, önleme kipinde **kesilen akış**
  sayısı.
- **AG29** — Kırk olaylık kümede ölçülebilen en küçük fark **1/40 = 0,025**'tir.

## Ölçüm

```python
"""Saldiri tespit ve onleme: esik degistikce iki yonlu hatanin kaymasi.

Bolum 1 - ag tabanli sistem, esik taramasi.
Bolum 2 - konak tabanli sistem ve ikisinin birlikte karari.
"""
TOHUM = 20260811
BOLGELER = ("dis", "dmz", "ic", "yonetim")
NOKTALAR = (80, 443, 22, 3306, 8080)
KONAKLI = ("ic", "yonetim")


def uretec(tohum):
    d = tohum % 2147483646 + 1

    def r(n):
        nonlocal d
        d = (d * 48271) % 2147483647
        return d % n
    return r


def akislar(sayi=40, tohum=TOHUM):
    r, liste = uretec(tohum), []
    for i in range(sayi):
        liste.append({"no": i + 1, "kaynak": BOLGELER[r(4)],
                      "hedef": BOLGELER[r(4)], "bnokta": NOKTALAR[r(5)]})
    return liste


def politika(a):
    """Niyet: disaridan yalniz DMZ'nin web kalemine; yonetime disaridan kimse."""
    if a["kaynak"] == "dis":
        return a["hedef"] == "dmz" and a["bnokta"] in (80, 443)
    if a["kaynak"] == "dmz":
        return a["hedef"] == "ic" and a["bnokta"] == 3306
    if a["kaynak"] == "yonetim":
        return True
    return a["hedef"] != "yonetim"


def fark(olaylar, niyet, duzenek):
    d = {"dogru_gecti": 0, "dogru_durdu": 0, "yanlis_gecti": 0, "yanlis_durdu": 0}
    for o in olaylar:
        n, g = niyet(o), duzenek(o)
        if n and g:
            d["dogru_gecti"] += 1
        elif not n and not g:
            d["dogru_durdu"] += 1
        elif g:
            d["yanlis_gecti"] += 1
        else:
            d["yanlis_durdu"] += 1
    return d


def puanla(ak, alan, genislik, tohum):
    """Ihlalin gurultulu izi: yasak akis 7'den, izinli akis 2'den baslar."""
    r = uretec(tohum)
    for a in ak:
        a[alan] = (7 if not politika(a) else 2) + r(genislik)
    return ak


def ag_tabanli(esik):
    return lambda a: a["ag_skor"] < esik


def konak_tabanli(esik):
    """Yalniz kendi konagina inen akisi gorur; otekini gecirir."""
    return lambda a: a["konak_skor"] < esik if a["hedef"] in KONAKLI else True


def birlikte(ea, ek):
    return lambda a: ag_tabanli(ea)(a) and konak_tabanli(ek)(a)


AK = puanla(puanla(akislar(), "ag_skor", 7, TOHUM + 5),
            "konak_skor", 6, TOHUM + 7)

print(f"akış {len(AK)} | niyetin geçirdiği {sum(1 for a in AK if politika(a))} "
      f"| konak tabanlının gördüğü "
      f"{sum(1 for a in AK if a['hedef'] in KONAKLI)}")
print(f"ağ skoru: izinli {min(a['ag_skor'] for a in AK if politika(a))}"
      f"-{max(a['ag_skor'] for a in AK if politika(a))}, "
      f"yasak {min(a['ag_skor'] for a in AK if not politika(a))}"
      f"-{max(a['ag_skor'] for a in AK if not politika(a))}")
print()
print(f"{'düzenek':<16s} {'eşik':>4s} {'doğru':>5s} {'fazla geçen':>11s} "
      f"{'fazla duran':>11s} {'durduran':>8s}")
sinamalar = ([("ağ tabanlı", e, ag_tabanli(e)) for e in range(6, 13)]
             + [("konak tabanlı", e, konak_tabanli(e)) for e in range(6, 10)]
             + [("ikisi birlikte", e, birlikte(e, e)) for e in (8, 9)])
for ad, e, f in sinamalar:
    d = fark(AK, politika, f)
    print(f"{ad:<16s} {e:4d} {d['dogru_gecti'] + d['dogru_durdu']:5d} "
          f"{d['yanlis_gecti']:11d} {d['yanlis_durdu']:11d} "
          f"{sum(1 for a in AK if not f(a)):8d}")

print()
print("ağ tabanlı, eşik 7 — boşuna durdurulanlar:",
      [(a["no"], a["ag_skor"]) for a in AK
       if politika(a) and not ag_tabanli(7)(a)])
print("ağ tabanlı, eşik 9 — kaçırılanlar:",
      [(a["no"], a["ag_skor"]) for a in AK
       if not politika(a) and ag_tabanli(9)(a)])
print("konak tabanlının hiç göremediği yasak akış:",
      sum(1 for a in AK if not politika(a) and a["hedef"] not in KONAKLI))
```

```
akış 40 | niyetin geçirdiği 22 | konak tabanlının gördüğü 21
ağ skoru: izinli 2-8, yasak 7-13

düzenek          eşik doğru fazla geçen fazla duran durduran
ağ tabanlı          6    27           0          13       31
ağ tabanlı          7    33           0           7       25
ağ tabanlı          8    32           4           4       18
ağ tabanlı          9    35           5           0       13
ağ tabanlı         10    33           7           0       11
ağ tabanlı         11    31           9           0        9
ağ tabanlı         12    26          14           0        4
konak tabanlı       6    28           8           4       14
konak tabanlı       7    29           8           3       13
konak tabanlı       8    30          10           0        8
konak tabanlı       9    29          11           0        7
ikisi birlikte      8    35           1           4       21
ikisi birlikte      9    38           2           0       16

ağ tabanlı, eşik 7 — boşuna durdurulanlar: [(7, 8), (11, 7), (20, 7), (21, 8), (24, 8), (30, 8), (38, 7)]
ağ tabanlı, eşik 9 — kaçırılanlar: [(2, 7), (12, 7), (31, 8), (36, 7), (37, 7)]
konak tabanlının hiç göremediği yasak akış: 8
```

## Eşiği Sıkmanın İki Yönü

Ağ tabanlı sistemin skorları izinli akışlarda **2–8**, yasak akışlarda **7–13** aralığında.
Örtüşme bandı iki değerden ibaret: **7 ve 8**. Alt tablodaki iki liste bunu doğruluyor —
boşuna durdurulan yedi akışın da, kaçırılan beş akışın da skoru 7 ya da 8. **Bandın
dışındaki hiçbir akış hata üretmiyor.**

Eşik **7**'ye çekildiğinde fazla geçen **0**'a iniyor. Yasak akışların hepsi durduruluyor;
kâğıt üzerinde kusursuz bir sonuç. Bedeli öbür sütunda: **7** izinli akış boşuna
durduruluyor. Eşik **9**'a açıldığında bu kez fazla duran **0**'a iniyor ve fazla geçen
**5**'e çıkıyor. **6**'ya kadar sıkmak fazla duranı **13**'e çıkarıyor, **12**'ye kadar
açmak fazla geçeni **14**'e.

İki sütun aynı anda sıfırlanmıyor ve sıfırlanamaz — çünkü örtüşme bandındaki akışların
skorları birbirinden ayırt edilemez. Bu, önceki iki dersteki durumdan başka bir şey:
orada iki yönlü hata **yanlış yazılmış** bir kümenin sonucuydu ve doğru küme ikisini birden
sıfırlıyordu. Burada doğru eşik yok; yalnız **hangi hatanın tercih edildiğine** dair bir
karar var. **Tek yönü sıfırlamak öbür yönü gizler**, ve gizlenen yön ölçülmediği sürece
düzenek kusursuz görünür.

Doğru sütununun tepe noktası eşik **9**'da, **35**'te. Hataların **eşit** olduğu nokta ise
eşik 8'de (4 ve 4) ve orada doğru **32**. İkisini eşitlemek toplam doğruyu en büyük yapmıyor,
çünkü iki sınıfın büyüklüğü eşit değil: niyet **22** akışı geçiriyor, **18**'ini durduruyor.
Hangisinin daha pahalı olduğu ölçünün söyleyeceği bir şey değil, politikanın söyleyeceği bir
şeydir.

## Görüşün Tabanı

Konak tabanlı sistem daha keskin bir skor üretiyor ama fazla geçeni hiçbir eşikte **8**'in
altına inmiyor. Nedeni eşikte değil: kırk akışın **19**'u onun görüş alanının dışında ve
bunların **8**'i niyetin durdurduğu akış. Görülmeyen akış hakkında karar da yok, hata da
yok — yalnız geçiş var. **Eşikle onarılamayan tek hata, görülmeyen olaydan doğan hatadır.**

İkisi birlikte çalıştığında tablo değişiyor. Eşik 9'da ağ tabanlı **5**, konak tabanlı
**11** akış kaçırıyor; ikisi birlikte **2**. Fazla duran yine **0** ve doğru **38**'e
çıkıyor — iki sistemin tek başına ulaşamadığı bir sayı. Kazanç birleştirmenin kendisinden
değil, **körlüklerin örtüşmemesinden** geliyor: ağ tabanlının gürültüde kaybettiği akışı
konak tabanlı keskin görüyor, konak tabanlının hiç görmediği bölgeyi ağ tabanlı görüyor.
Kalan **2** kaçırılan akış ikisinin de yanıldığı yerdir ve daha fazla düzenek eklemek onu
kapatmaz; kapatan şey ölçütü değiştirmektir.

## Tespit ile Önleme Arasındaki Fark

Buraya kadarki bütün satırlar iki kipte de aynıdır. **Saldırı önleme sistemi (intrusion
prevention system)** akışı keser; tespit sistemi akışı geçirir ve bir kayıt yazar. Fazla
geçen ve fazla duran sayıları ikisinde de aynı çıkar, çünkü ikisi de aynı kararı verir.
Değişen şey o kararın **bedelidir**, ve bedel `durduran` sütununda durur.

Önleme kipinde bu sütun **kesilen akış** sayısıdır: eşik 6'da kırk akışın **31**'i kesilir
ve bunların **13**'ü kesilmemeliydi. Tespit kipinde aynı sütun **uyarı** sayısıdır: 31 kayıt
yazılır, 13'ü **yanlış alarm**dır ve bir kişi hepsini okumak zorundadır.

Bu ayrım eşik kararını doğrudan etkiler. Eşiği 9'dan 6'ya çekmek kaçırılan **5** akışı
kurtarır; karşılığında durduran sayısı **13**'ten **31**'e çıkar — **2,4 kat**. Önleme
kipinde bu on sekiz akışlık fazladan kesinti demektir; tespit kipinde on sekiz fazladan
kayıt. Aynı ölçü, iki ayrı fatura.

## Açık Kalan Yüzeyler ve Daraltmalar

**Birinci yüzey — kaçırılan akış.** Eşik 9'da beş, ikisi birlikte çalışırken iki yasak akış
geçiyor ve hiçbirinin arkasında bir kayıt yok. Kırklık kümede iki akış **0,050**'lik bir
paydır ve ölçüm bandının iki katıdır; yok sayılamaz. **Daraltma:** eşiği düşürmek değil —
o öbür sütunu büyütür — **ölçütü değiştirmek**. Bu akışların hepsi kural dizisinin zaten
kesin ayırt ettiği alanlara sahip; eşiğe dayanan düzenek kural dizisinin **yerine** değil,
**yanına** konur.

**İkinci yüzey — görülmeyen bölge.** Konak tabanlı sistemin görmediği on dokuz akışın
sekizi yasak. Bu sekiz akış için sistem bir karar vermiyor ve verilmeyen karar bir kayıt da
üretmiyor; denetleyen taraf için sessizlik ile temizlik aynı görünür. **Daraltma:** görüş
alanının **kendisini** raporlamak — hangi bölgelerin izlendiğini ve hangilerinin
izlenmediğini akış sayılarıyla yazmak. Kapsamı bilinmeyen bir ölçümün sayısı okunamaz.

**Üçüncü yüzey — uyarı yığını.** Eşiği sıkmak uyarıyı 13'ten 31'e çıkarıyor ve fazladan on
sekiz kaydın on üçü yanlış alarm. Okunamayan uyarı, yazılmamış uyarıyla aynı işi görür;
sıkı bir eşik bu yolla kendi kazancını geri verebilir. **Daraltma:** eşiği tek bir sayı
olarak değil, bölgeye göre ayrı ayrı seçmek — yönetim bölgesine inen akışta sıkı, dışarıyla
konuşan akışta gevşek. Ölçüm bunu doğrudan destekler: iki sistemin farkı da zaten bölgeye
göre değişiyordu.

## Özet

- Eşiğe dayanan bir düzeneğin ölçütü sürekli olduğu için iki sınıfın değerleri bir bantta
  örtüşür; bu ölçümde bant **7–8**'dir ve iki yönlü hatanın tamamı o bandın içinde doğar.
- Ağ tabanlı sistemde eşik **7** iken fazla geçen **0**, fazla duran **7**; eşik **9** iken
  fazla duran **0**, fazla geçen **5**. İki sütun aynı anda sıfırlanamaz.
- Hataları eşitleyen eşik (8'de 4 ve 4) toplam doğruyu en büyük yapmaz; sınıflar eşit
  büyüklükte değildir ve hangi hatanın daha pahalı olduğu ölçünün değil politikanın kararıdır.
- Konak tabanlı sistemin fazla geçeni hiçbir eşikte **8**'in altına inmez, çünkü kırk akışın
  **19**'unu hiç görmez; **eşikle onarılamayan tek hata görülmeyen olaydan doğar.**
- İkisi birlikte eşik 9'da **38** doğru veriyor; kazanç birleştirmeden değil körlüklerin
  örtüşmemesinden gelir ve kalan **2** kaçırılan akış ikisinin de yanıldığı yerdir.
- Tespit ile önleme aynı sayıları üretir, aynı bedeli ödetmez: `durduran` sütunu önlemede
  kesilen akış, tespitte okunması gereken uyarıdır — eşiği 9'dan 6'ya çekmek onu **2,4 kat**
  büyütür.

## Sonraki Adım

Bu konudaki dört ders de tek bir varsayımı paylaştı: dışarısı dışarıdadır. Kural dizisi,
bölge grafiği ve eşik, hepsi bir akışın **nereden geldiğine** bakarak karar verdi ve
`dis` adı her üçünde de "güvenilmeyen" ile eş anlamlıydı. Peki dışarıdaki bir uç içeri
alınmak zorundaysa? Evinden çalışan biri, başka bir yerdeki bir bölge, ya da denetimi
elimizde olmayan bir yol üzerinden konuşan iki ağ — bunların hiçbiri `dis`in dışına
çıkmıyor, ama hepsinin `ic` gibi davranması bekleniyor. Sonraki ders bu ucu içeri almanın
düzeneğini kurar ve yine aynı iki sütunu sorar: içeri alınacak hedefler nasıl seçiliyor,
seçilmeyen ne oluyor.
