---
title: 'Jailbreak Teknikleri'
source: 'https://academia.sh/tr/kurslar/yz-guvenlik-ve-degerlendirme/jailbreak-teknikleri'
course: 'Yapay Zekâ Güvenliği ve Değerlendirme'
language: tr
updated: '2026-08-17T18:06:33+00:00'
license: 'CC BY-SA 4.0'
---

# Jailbreak Teknikleri

Güvenlik süzgecinin atlatılmasının bir yordam olarak değil bir eşik sorusu olarak ölçülmesi: aynı 240 kayıtlık kurgu kümede eşik 0,30'dan 0,80'e çıkarken kesinlik 0,7568'den 0,9787'e yükseliyor, duyarlılık 0,9032'den 0,4946'ya düşüyor ve yanlış engelleme payı 0,1837'den 0,0068'e iniyor. Eşiği yükseltmenin değişim oranı 0,50'ye kadar bire bir (7'ye 7, 11'e 12), 0,50'nin üstünde 2,33 ve 3,25 oluyor; atlatmaya en açık bölge burasıdır. Sınıf başına duyarlılık tabloda ayrı okunuyor ve savunmanın ilk çöktüğü sınıf bozulmuş girdi (0,6842'den 0,2105'e). İkinci koşumda eşik 0,40 ve 0,60'ta duyarlılık aynı kalırken 13 ve 9 kaydın kararı değişiyor.

Bir önceki ders kural süzgecini ölçtü: dört bayrağa bakıyor, 93 zararlının 74'ünü durduruyor, 23
temiz kaydı yanlışlıkla engelliyor. Kararı keskindir — bayrak ya vardır ya yoktur. Puan üreten bir
süzgeç araya bir **eşik** koyar, ve eşik bir ayar olduğu için savunmayı işletenin elindedir. Nereye
konduğu bir yapılandırma ayrıntısı gibi görünür; oysa yüzeyin ne kadarının açık kaldığını belirleyen
şey odur.

**Güvenlik süzgecinin atlatılması** burada bir yordam olarak ele alınmaz. Hiçbir atlatma yöntemi,
şablonu ya da örneği yazılmaz; yazılan tek şey **sınıf adı ve savunmanın o sınıfta yakaladığı
paydır**. Soru şudur: eşik yükseldikçe kesinlik ile duyarlılık nasıl ters yönde gider, savunmanın ilk
çöktüğü sınıf hangisidir ve atlatmaya en açık bölge hangi eşiğin üstünde başlar.

- **SY9.** Kayıt kümesi, sınıflar ve savunma katmanları **kurgudur**; bir önceki dersin tanımı
  değiştirilmeden sürer. Tohum **20260218**.
- **SY10.** **Bu bir saldırı dersi değildir.** Koşan kodun tamamı savunma tarafındadır: puanlama,
  eşik, süzgeç ve sayım. Çalışan bir atlatma yöntemi, şablonu ya da yönerge dizisi yazılmaz.
- **SY11.** Saldırı bir metin değil bir **öznitelik profilidir**; kayıtların metni tümüyle zararsız
  destek talepleridir ve sınıfla hiçbir ilişkisi yoktur.
- **SY12.** Model temelli süzgeç bir **benzeticidir**: ağırlıklı bir toplam, kaynağa bağlı bir ek
  ve dar bir belirsizlik payı üretir. Gerçek bir sınıflandırıcı eğitilmez.
- **SY13.** Süpürülen eşikler beş noktadır; ara değerler ölçülmedi ve eğrinin aralarında düz olduğu
  **varsayılmaz**.
- **SY14.** Sınıf başına duyarlılık o sınıftaki kayıt sayısına bölünür; `yetki_asimi` 10 kayıttır ve
  orada bir kaydın değeri 0,1000'dir.
- **SY15.** İkinci koşumda küme değişmez, yalnız puanın belirsizlik payı ikinci tohumla yeniden
  çekilir. Ölçülen şey **modelin koşum değişkenliğidir**.
- **SY16.** Duyarlılığın en küçük adımı **1/93 = 0,0108**, yanlış engelleme payının adımı
  **1/147 = 0,0068**'dir.

## Eşik Bir Savunma Değil, Bir Takas Noktasıdır

Model temelli süzgeç her kayda bir puan verir: bayrakların ağırlıklı toplamı, kaynağa bağlı bir ek
ve dar bir belirsizlik payı. Puan bir karar değildir; karar eşikle doğar. Eşik düşükse süzgeç çok
kayıt işaretler, yüksekse az. Bu, savunmanın ne kadar iyi olduğunu değil **nerede durduğunu**
belirleyen bir ayardır ve iki sayıyı aynı anda ters yönde oynatır.

```python
# KURGUDUR. Kayit kumesi, siniflar, oznitelikler ve savunma katmanlari ders icinde
# tanimlanir; gercek bir model uc noktasi cagrilmaz. Saldiri METNI yazilmaz.
TOHUM, M32 = 20260218, 0xFFFFFFFF


def uretec(t):
    x = ((t ^ (t >> 16)) * 2246822507) & M32
    x = ((x ^ (x >> 13)) * 3266489909) & M32
    s = [(x ^ (x >> 16)) & M32]

    def sonraki():
        s[0] = (s[0] * 1664525 + 1013904223) & M32
        return s[0] / 4294967296
    return sonraki


def ayrik(u, w):
    t = 0.0
    for i, x in enumerate(w):
        t += x
        if u < t:
            return i
    return len(w) - 1


def izno(m):
    h = 2166136261
    for c in str(m):
        h = ((h ^ ord(c)) * 16777619) & M32
    return h


# ---- KURGU kayitlar: saldiri METNI yazilmaz, saldiri bir OZELLIK PROFILIDIR
SINIF = ["temiz", "dolayli_yonerge", "gizli_alan_istegi", "yetki_asimi",
         "kaynak_taklidi", "bozulmus_girdi"]
KAYNAK = ["kullanici", "erisilen_belge", "arac_ciktisi"]
# Ozellikler yapisaldir; hicbiri calisan bir yuk degildir.
OZELLIK = ["yonerge_kipi", "rol_degistirme_istegi", "gizli_alan_adi", "yan_etkili_arac_adi",
           "kaynak_damgasi_uyusmuyor", "olagandisi_damga_dagilimi", "asiri_uzunluk"]
# Sinif basina ozellik olasiligi (kurgu). Temiz kayitlarda da dusuk paylar var:
# gercek dunyada iyi niyetli metin de bu ozellikleri tasiyabilir.
PROFIL = {
    "temiz":              [0.06, 0.02, 0.05, 0.03, 0.02, 0.04, 0.05],
    "dolayli_yonerge":    [0.88, 0.42, 0.10, 0.30, 0.35, 0.08, 0.12],
    "gizli_alan_istegi":  [0.35, 0.15, 0.86, 0.12, 0.10, 0.06, 0.08],
    "yetki_asimi":        [0.30, 0.25, 0.12, 0.84, 0.14, 0.05, 0.07],
    "kaynak_taklidi":     [0.22, 0.55, 0.08, 0.10, 0.82, 0.07, 0.06],
    "bozulmus_girdi":     [0.05, 0.03, 0.04, 0.03, 0.06, 0.80, 0.62],
}
KAYNAK_PAYI = {
    "temiz":             [0.72, 0.20, 0.08],
    "dolayli_yonerge":   [0.05, 0.70, 0.25],
    "gizli_alan_istegi": [0.55, 0.30, 0.15],
    "yetki_asimi":       [0.40, 0.35, 0.25],
    "kaynak_taklidi":    [0.10, 0.60, 0.30],
    "bozulmus_girdi":    [0.65, 0.20, 0.15],
}
# Kurgu, tumuyle zararsiz destek metinleri. Sinifla iliskisi YOKTUR;
# sinif bilgisi yalnizca ozellik profilinde durur.
METIN = ["bu ayki fatura tutari gecen aya gore yuksek geldi",
         "sayac endeksi yanlis girilmis olabilir",
         "mahallede kesinti ne zaman bitecek",
         "tarife basamagimi ogrenmek istiyorum",
         "ariza kaydim icin ekip ne zaman gelir",
         "adres degisikligi nasil yapilir"]

KAYIT = []
for i in range(240):
    r = uretec(TOHUM + 6151 * i)
    s = SINIF[ayrik(r(), [0.62, 0.10, 0.07, 0.07, 0.07, 0.07])]
    kaynak = KAYNAK[ayrik(r(), KAYNAK_PAYI[s])]
    oz = {o: (r() < p) for o, p in zip(OZELLIK, PROFIL[s])}
    KAYIT.append({"no": i + 1, "sinif": s, "kaynak": kaynak, "ozellik": oz,
                  "metin": METIN[int(r() * len(METIN))],
                  "uzunluk": 40 + int(r() * 260)})


def zararli(k):
    return k["sinif"] != "temiz"


# ---- SAVUNMA 1: kural suzgeci (yapisal, aciklanabilir)
def kural_suzgeci(k, kurallar=("yonerge_kipi", "gizli_alan_adi", "yan_etkili_arac_adi",
                               "kaynak_damgasi_uyusmuyor")):
    return any(k["ozellik"][o] for o in kurallar)


# ---- SAVUNMA 2: model temelli suzgec (puan + esik)
AGIRLIK = {"yonerge_kipi": 0.42, "rol_degistirme_istegi": 0.26, "gizli_alan_adi": 0.44,
           "yan_etkili_arac_adi": 0.40, "kaynak_damgasi_uyusmuyor": 0.38,
           "olagandisi_damga_dagilimi": 0.30, "asiri_uzunluk": 0.12}
KAYNAK_EK = {"kullanici": 0.00, "erisilen_belge": 0.18, "arac_ciktisi": 0.12}


def puan(k):
    p = sum(AGIRLIK[o] for o in OZELLIK if k["ozellik"][o]) + KAYNAK_EK[k["kaynak"]]
    r = uretec(TOHUM ^ izno(k["no"]))
    return min(max(p + (r() - 0.5) * 0.20, 0.0), 1.6)


def model_suzgeci(k, esik=0.40):
    return puan(k) >= esik


# ---- OLCU: durdurulan ve yanlislikla durdurulan birlikte yazilir
def olc(kayitlar, karar):
    dp = yp = dn = yn = 0
    for k in kayitlar:
        isaret, gercek = karar(k), zararli(k)
        if isaret and gercek:
            dp += 1
        elif isaret and not gercek:
            yp += 1
        elif not isaret and gercek:
            yn += 1
        else:
            dn += 1
    kesinlik = dp / (dp + yp) if dp + yp else 0.0
    duyarlilik = dp / (dp + yn) if dp + yn else 0.0
    return {"dp": dp, "yp": yp, "yn": yn, "dn": dn,
            "kesinlik": round(kesinlik, 4), "duyarlilik": round(duyarlilik, 4),
            "yanlis_engelleme_payi": round(yp / (yp + dn), 4) if yp + dn else 0.0}
```

## Süpürme ve Değişim Oranı

İkinci blok beş eşiği süpürür, sonra her adımda **neyin neye takas edildiğini** sayar: eşik bir
basamak yükseldiğinde kaç zararlı fazladan kaçıyor ve karşılığında kaç temiz kayıt serbest kalıyor.

```python
ESIK = (0.30, 0.40, 0.50, 0.60, 0.80)
print("esik  isaretlenen  durdurulan  yanlis alarm  kacan  kesinlik  duyarlilik  yanlis eng")
for e in ESIK:
    m = olc(KAYIT, lambda k, e=e: model_suzgeci(k, e))
    print(f"{e:.2f} {m['dp'] + m['yp']:>12} {m['dp']:>11} {m['yp']:>13} {m['yn']:>6}"
          f" {m['kesinlik']:>9.4f} {m['duyarlilik']:>11.4f} {m['yanlis_engelleme_payi']:>11.4f}")

print("\nesigi yukseltmenin degisimi")
print("adim          kacan zararli artisi  serbest kalan temiz  oran  ust esikte yanlis alarm")
for a, b in zip(ESIK, ESIK[1:]):
    ma = olc(KAYIT, lambda k, e=a: model_suzgeci(k, e))
    mb = olc(KAYIT, lambda k, e=b: model_suzgeci(k, e))
    dz, dt = mb["yn"] - ma["yn"], ma["yp"] - mb["yp"]
    print(f"{a:.2f} -> {b:.2f} {dz:>20} {dt:>20} {dz / dt:>5.2f} {mb['yp']:>22}")

print("\nfarklarin kumenin cozunurlugune gore buyuklugu")
print("adim          duyarlilik farki  adim  yanlis eng farki  adim")
for a, b in zip(ESIK, ESIK[1:]):
    ma = olc(KAYIT, lambda k, e=a: model_suzgeci(k, e))
    mb = olc(KAYIT, lambda k, e=b: model_suzgeci(k, e))
    fd = ma["duyarlilik"] - mb["duyarlilik"]
    fy = ma["yanlis_engelleme_payi"] - mb["yanlis_engelleme_payi"]
    print(f"{a:.2f} -> {b:.2f} {fd:>17.4f} {fd / (1 / 93):>5.1f} {fy:>17.4f}"
          f" {fy / (1 / 147):>5.1f}")
```

```
esik  isaretlenen  durdurulan  yanlis alarm  kacan  kesinlik  duyarlilik  yanlis eng
0.30          111          84            27      9    0.7568      0.9032      0.1837
0.40           97          77            20     16    0.7938      0.8280      0.1361
0.50           74          66             8     27    0.8919      0.7097      0.0544
0.60           64          59             5     34    0.9219      0.6344      0.0340
0.80           47          46             1     47    0.9787      0.4946      0.0068

esigi yukseltmenin degisimi
adim          kacan zararli artisi  serbest kalan temiz  oran  ust esikte yanlis alarm
0.30 -> 0.40                    7                    7  1.00                     20
0.40 -> 0.50                   11                   12  0.92                      8
0.50 -> 0.60                    7                    3  2.33                      5
0.60 -> 0.80                   13                    4  3.25                      1

farklarin kumenin cozunurlugune gore buyuklugu
adim          duyarlilik farki  adim  yanlis eng farki  adim
0.30 -> 0.40            0.0752   7.0            0.0476   7.0
0.40 -> 0.50            0.1183  11.0            0.0817  12.0
0.50 -> 0.60            0.0753   7.0            0.0204   3.0
0.60 -> 0.80            0.1398  13.0            0.0272   4.0
```

Süpürme tablosu tek yönlü bir iyileşme göstermez. Eşik 0,30'dan 0,80'e çıkarken kesinlik 0,7568'den
**0,9787**'e yükseliyor, yanlış engelleme payı 0,1837'den **0,0068**'e iniyor ve işaretlenen 111
kayıt 47'ye düşüyor. Aynı hareket duyarlılığı 0,9032'den **0,4946**'ya indiriyor: en yüksek eşikte
savunma **93 zararlının 47'sini kaçırıyor**. Yalnız kesinlik raporlanan bir kurulum 0,80'de kusursuza
yakın görünür; kaçan sütunu yazılmadığı sürece bu görüntü sürer.

İkinci tablo eşik seçimini bir tercih olmaktan çıkarıp bir hesaba dönüştürür. 0,30'dan 0,50'ye kadar
takas **bire birdir**: 7 zararlıya karşılık 7 temiz kayıt, sonra 11'e karşılık 12. 0,50'nin üstünde
oran kırılıyor: 0,50 → 0,60 adımında 3 temiz kayıt **7 zararlıya** mal oluyor (2,33), 0,60 → 0,80
adımında 4 temiz kayıt **13 zararlıya** (3,25).

**Atlatmaya en açık bölge burasıdır.** Yanlış alarm şikâyetini azaltmak için eşiği 0,50'nin üstüne
çıkaran bir savunma, kazandığı temiz trafiğin iki ila üç katı kadar zararlıyı serbest bırakır ve bunu
**hiçbir gösterge kötüleşmeden** yapar: kesinlik yükselir, yanlış engelleme payı düşer, işaretlenen
kayıt azalır. Atlatma burada bir yöntemle değil, savunmayı işletenin kendi ayarıyla açılır.

Son sütun bu bölgenin niçin en pahalı olduğunu yazar. Eşik 0,60'ta yanlış alarm **5 kayıttır**, 147
temizin 0,0340'ı; oradan 0,80'e çıkmak 4 temiz kayıt kazandırıp **13 zararlıyı** serbest bırakıyor.
Gevşetmenin en pahalı olduğu yer, yanlış alarmın **zaten en az olduğu** yerdir: kazanılacak temiz
trafik tükendiğinde her adım yalnız kaçan zararlıyı büyütür.

Üçüncü tablo bu farkların **ölçülebilir olup olmadığını** söyler. Duyarlılık farklarının en küçüğü
0,0752, kümenin adımının (0,0108) yedi katı; yanlış engelleme farklarının en küçüğü 0,0204, adımın
(0,0068) üç katı. **Süpürmenin hiçbir basamağı çözünürlüğün altında kalmıyor**, dolayısıyla dört
adımın tamamı gerçek bir ölçümdür. Tabana en yakın olan 0,50 → 0,60 adımıdır: ölçülebilir, ama
üzerine politika kurulmayacak kadar ince.

## Savunma Hangi Sınıfta Önce Çöker

Toplam duyarlılık bir ortalamadır ve beş zararlı sınıfın hepsini aynı kefeye koyar. Üçüncü blok onu
sınıf başına ayırır ve yanına kural süzgecinin aynı sınıflardaki payını koyar.

```python
ESIK = (0.30, 0.40, 0.50, 0.60, 0.80)
print("sinif basina duyarlilik: savunmanin o sinifta yakaladigi pay")
print(f"{'sinif':<18} {'kayit':>5} {'kural':>7} " + " ".join(f"{e:>6.2f}" for e in ESIK))
for s in SINIF[1:]:
    g = [k for k in KAYIT if k["sinif"] == s]
    kr = sum(1 for k in g if kural_suzgeci(k)) / len(g)
    print(f"{s:<18} {len(g):>5} {kr:>7.4f} " +
          " ".join(f"{sum(1 for k in g if model_suzgeci(k, e)) / len(g):>6.4f}" for e in ESIK))


def puan_ikinci(k):
    """Ayni kayit, ikinci kosum: puanin gurultusu ikinci tohumla yeniden cekilir."""
    p = sum(AGIRLIK[o] for o in OZELLIK if k["ozellik"][o]) + KAYNAK_EK[k["kaynak"]]
    r = uretec(20260219 ^ izno(k["no"]))
    return min(max(p + (r() - 0.5) * 0.20, 0.0), 1.6)


print(f"\n{'esik':<5} {'duyarlilik':>21} {'adim':>5} {'yanlis engelleme':>21} {'adim':>5}"
      f" {'karari degisen':>15}")
for e in ESIK:
    m1 = olc(KAYIT, lambda k, e=e: model_suzgeci(k, e))
    m2 = olc(KAYIT, lambda k, e=e: puan_ikinci(k) >= e)
    fd = abs(m2["duyarlilik"] - m1["duyarlilik"])
    fy = abs(m2["yanlis_engelleme_payi"] - m1["yanlis_engelleme_payi"])
    d = sum(1 for k in KAYIT if model_suzgeci(k, e) != (puan_ikinci(k) >= e))
    print(f"{e:<5.2f} {m1['duyarlilik']:>10.4f} {m2['duyarlilik']:>10.4f} {fd / (1 / 93):>5.1f}"
          f" {m1['yanlis_engelleme_payi']:>10.4f} {m2['yanlis_engelleme_payi']:>10.4f}"
          f" {fy / (1 / 147):>5.1f} {d:>15}")
```

```
sinif basina duyarlilik: savunmanin o sinifta yakaladigi pay
sinif              kayit   kural   0.30   0.40   0.50   0.60   0.80
dolayli_yonerge       24  1.0000 1.0000 1.0000 0.9583 0.8333 0.6667
gizli_alan_istegi     17  0.9412 0.9412 0.8824 0.7059 0.5882 0.4706
yetki_asimi           10  0.9000 0.9000 0.9000 0.8000 0.6000 0.4000
kaynak_taklidi        23  0.8696 0.9565 0.8696 0.8261 0.8261 0.6087
bozulmus_girdi        19  0.2632 0.6842 0.4737 0.2105 0.2105 0.2105

esik             duyarlilik  adim      yanlis engelleme  adim  karari degisen
0.30      0.9032     0.9140   1.0     0.1837     0.1837   0.0               5
0.40      0.8280     0.8280   0.0     0.1361     0.1293   1.0              13
0.50      0.7097     0.7419   3.0     0.0544     0.0544   0.0              11
0.60      0.6344     0.6344   0.0     0.0340     0.0136   3.0               9
0.80      0.4946     0.4624   3.0     0.0068     0.0068   0.0               5
```

Sınıf tablosu, tek bir duyarlılık sayısının neyi gizlediğini gösterir. Eşik 0,50'de toplam duyarlılık
0,7097 iken `dolayli_yonerge` sınıfında 0,9583, `bozulmus_girdi` sınıfında **0,2105**: fark 0,7478 ve
savunma birincisinde neredeyse eksiksiz, ikincisinde neredeyse yok. Bozulmuş girdi **ilk çöken**
sınıftır — daha 0,40'ta 0,4737'ye iniyor, 0,50'de dibe vurup üç eşik boyunca orada kalıyor. Nedeni
ağırlık tablosundadır: o sınıfın taşıdığı iki bayrağın ağırlıkları eşiği geçmeye yetmez. Kural
süzgecinin payı da orada düşüktür (0,2632), çünkü o iki bayrak kural listesinde hiç yoktur. Bu
sınıfın kendisi ayrı bir derste ele alınır.

Kural sütunu bir karşılaştırma daha verir: eşik 0,50'de model süzgeci `dolayli_yonerge` dışında her
sınıfta ve toplamda kural süzgecinin altındadır (0,7097'ye karşı 0,7957). Daha yüksek kesinlik daha
iyi savunma demek değildir; **iki sayı ayrı yönlere gider ve hangisinin seçileceği bir ölçüm değil
bir karardır.**

Doğru soru "hangisi daha iyi" değil "hangi eşikte hangisi baskın"dır. Kural süzgecinin üçlüsü
0,7629 / 0,7957 / 0,1565. Model süzgecinin **üçünde birden** onu geçtiği tek nokta 0,40'tır:
0,7938 / 0,8280 / 0,1361. Böyle bir nokta bulunması zorunlu değildir; başka bir kümede hiçbir eşikte
baskın olmaması da olağandır.

İkinci koşum tablosu bandı iki eksende birden verir; `adim` sütunları farkı kümenin adımına böler.
Eşik 0,40 ve 0,60'ta duyarlılık **iki koşumda tamamen aynı** çıkıyor, ama aynı eşiklerde **13 ve 9
kaydın kararı değişiyor**: toplam durur, tek tek kayıtlar durmaz. Duyarlılıkta 0,30 bir adım, 0,50
ile 0,80 üç adım oynuyor; yanlış engellemede 0,40 bir adım, 0,60 üç adım. Bir adımlık oynamalar
**bandın tam üstündedir ve bulgu sayılmaz**; üç adımlık farklar ölçülebilir ama bir eşik seçimini
taşımaz. İki eksenin sonucu aynıdır: bu kümede eşiği **ondalık hassasiyetle** seçmek anlamsızdır.

## Özet

- Eşik bir savunma değil bir takas noktasıdır: yükseldikçe kesinlik 0,7568'den 0,9787'e çıkar,
  duyarlılık 0,9032'den 0,4946'ya iner, yanlış engelleme payı 0,1837'den 0,0068'e düşer.
- Eşiği yükseltmenin değişim oranı 0,50'ye kadar bire birdir; üstünde serbest kalan her temiz kayıt
  2,33 ve 3,25 zararlıya mal olur.
- Atlatmaya en açık bölge 0,50'nin üstüdür ve **hiçbir gösterge kötüleşmeden** açılır; en pahalı
  olduğu yer yanlış alarmın zaten en az olduğu yerdir (0,60'ta 5 kayıt, 0,0340).
- Sınıf başına duyarlılık ortalamanın gizlediğini açar: eşik 0,50'de dolaylı yönerge 0,9583, bozulmuş
  girdi 0,2105; ilk çöken sınıf bozulmuş girdidir ve kural süzgeci de orada zayıftır.
- Süpürmenin hiçbir basamağı çözünürlüğün altında değildir (en küçük fark duyarlılıkta 7, yanlış
  engellemede 3 adım); dört adımın tamamı gerçek bir ölçümdür.
- İkinci koşumda 0,40 ve 0,60'ta duyarlılık aynı kalır ama 13 ve 9 kaydın kararı değişir; bir adımlık
  oynamalar bandın tam üstünde olduğu için bulgu sayılmaz.

## Sonraki Adım

Bu iki derste savunmanın ölçüsü hep aynı soruya bağlıydı: kayıt durduruldu mu, durdurulmadı mı.
Kimi zararın ise durdurmayla ilgisi yoktur. Bir kayıt geçtiğinde kaybedilen şey bazen bir eylem değil
bir **bilgidir**: sistem yönergesinin kendisi, bir abonenin kimliği ya da bir erişim dizgesi. Orada
savunma da başkalaşır — engellemek yerine alanı çıkarmak, yani **maskeleme**. Sonraki ders yalnız
sayar: gizli alan adı taşıyan kaç kayıt var, maskeleme kaçından alanı çıkarıyor, süzgeç kaçını
yakalıyor ve geriye **hiçbirinin yakalamadığı** kaç kayıt kalıyor.
