---
title: 'Bal Küpleri ve Yönlendirme Kuyuları'
source: 'https://academia.sh/tr/kurslar/ag-guvenligi/bal-kupleri-ve-yonlendirme-kuyulari'
course: 'Ağ Güvenliği'
language: tr
updated: '2026-08-17T18:08:39+00:00'
license: 'CC BY-SA 4.0'
---

# Bal Küpleri ve Yönlendirme Kuyuları

Meşru işin hiç uğramadığı dört aldatma kalemi aynı dönemde koşturulur: etkileşimin yanlış pozitif oranı imza tabanlı tespitin yanında ne kadar düşük kalıyor, kaç kötü olay sınıfı bu düzende hiç görünmüyor ve yönlendirme kuyusu düşürdüğü bağlantı başına kaç meşru bağlantı kesiyor.

Önceki dersin bütün gürültüsü tek bir yerden geliyordu: imzalar hem meşru işin hem kötü olayın
geçtiği alana bakıyordu. Yedek aktarımı ile veri sızması aynı hacim eşiğine değiyor, yama dağıtımı
ile yeni ayrıcalıklı süreç aynı belirtiyi üretiyordu. Yanlış pozitif oranını düşürmenin yolu daha
dar imza yazmak değil — meşru işin hiç uğramadığı bir yere bakmaktır.

Aldatma kalemi tam olarak budur: dönem boyunca hiçbir meşru akışın dokunmaması gereken bir uç, bir
kayıt ya da bir kimlik bilgisi. Dokunulduğunda sinyalin anlamı belirsiz değildir, çünkü ortada
"acaba meşru muydu" diye sorulacak bir alternatif yoktur. Bu kalemler kendi ağında kurulur ve
gözlem kendi sınırında kalır; başkasının ağına tuzak yerleştirmek ya da oradan veri toplamak,
yazılı yetki ve tanımlı kapsam olmadan hem yasa dışı hem meslek dışıdır.

- **CS24.** Dört aldatma kalemi, etkileşim sayıları ve altı önek sınıfı kurgusal bölgesel ölçüm
  ağına aittir. Gerçek bir kurulum yapılmıyor; ölçülen şey `node` ile kurulan modeldir.
- **CS25.** Karşılaştırılan imza tabanlı sayılar önceki dersin iki algılayıcılı koşumundan
  okundu; aynı dönem ve aynı olay kümesidir.
- **CS26.** İlk sinyal günü elle yazıldı. Gerçekte bu gün, aldatma kaleminin nereye konulduğuna ve
  keşif sırasına bağlıdır; sayı değil sıra taşır.
- **CS27.** Önek sınıfları etiketle anıldı; gerçek adres bloğu yazılmadı. Kötü ve meşru bağlantı
  ayrımı elle işaretlendi.
- **CS28.** Yönlendirme kuyusu tam kesme olarak modellendi: öneğe giden ve önekten gelen bütün
  bağlantılar düşer. Kısmi kesme ve hız sınırı modellenmedi.

## Aldatma Kalemleri ve Kapsam

Model dört aldatma kalemi tutuyor. İkisi bir uçtur: yönetim bölgesinde hiçbir işi olmayan bir
yönetim arayüzü ve veri bölgesinde hiçbir uygulamanın çağırmadığı bir veri ucu. Üçüncüsü bir
kayıttır — hiçbir meşru sorgunun döndürmediği bir satır; dışarı çıkan bir akışta görünmesi tek
başına bir sinyaldir. Dördüncüsü hiçbir yerde kullanılmayan bir kimlik bilgisidir.

```js
// aldatma.mjs — aldatma kalemleri, etkilesim kaynaklari ve onek kumesi; model, gercek kurulum degil
// [kalem, bulundugu bolge, kotu etkilesim, mesru etkilesim, mesru etkilesimin kaynagi, ilk sinyal gunu]
export const ALDATMA = [
  ['bal-kupu-yonetim', 'yonetim', 412, 6, 'aylik envanter taramasi', 2],
  ['bal-kupu-veri', 'veri', 54, 1, 'yedek dogrulama betigi', 9],
  ['bal-kaydi', 'veri', 3, 0, '-', 17],
  ['bal-kimlik', 'yonetim', 118, 0, '-', 2],
];
// Onceki dersteki yedi kotu olay sinifindan hangisi hangi aldatma kalemine dokunuyor
export const DOKUNAN = {
  'yonetim kapisina yogun deneme': ['bal-kupu-yonetim', 'bal-kimlik'],
  'bilinmeyen sunucu adina cikis': [],
  'konakta yeni ayricalikli surec': [],
  'duzenli aralikli kucuk cikis': ['bal-kaydi'],
  'yerel dosya izninin degismesi': [],
  'sifreli akis icinde bilinen yuk': [],
  'ic bolgede tarama benzeri dizi': ['bal-kupu-yonetim', 'bal-kupu-veri'],
};
// Yonlendirme kuyusuna alinabilecek onek siniflari: [etiket, kotu baglanti, mesru baglanti, not]
export const ONEK = [
  ['onek-A', 8400, 0, ''], ['onek-B', 2100, 0, ''],
  ['onek-C', 640, 12, 'tedarikci ayni blokta'], ['onek-D', 190, 0, ''],
  ['onek-E', 40, 5100, 'saha uclerinin hucresel cikisi ayni blokta'], ['onek-F', 12000, 0, ''],
];
export const KUYU = {
  yok: [], temiz: ['onek-A', 'onek-B', 'onek-D', 'onek-F'],
  'temiz+C': ['onek-A', 'onek-B', 'onek-C', 'onek-D', 'onek-F'],
  hepsi: ONEK.map((o) => o[0]),
};
export const topla = (l, i) => l.reduce((a, o) => a + o[i], 0);
export const oran = (k, m) => (k + m === 0 ? '-' : `%${(m * 100 / (k + m)).toFixed(1)}`);
// Onceki dersin imza tabanli sayilari (kaynak: ayni donem, iki algilayici birlikte)
export const IMZA_SAYI = { uyari: 17497, kotu: 12283, mesru: 5214, kacan: 2880, sinif: 6 };
```

Modelin ikinci parçası önceki dersin yedi kötü olay sınıfını alıp her birinin hangi aldatma
kalemine dokunduğunu yazıyor. Boş liste, o sınıfın bu düzende hiç görünmediği demektir; kapsam
ölçüsü buradan çıkıyor. Üçüncü parça yönlendirme kuyusuna ait ve ayrı bir mantıkla çalışıyor —
orada ölçülen şey sinyal değil, düşürülen bağlantıdır.

```js
// kosum1.mjs — aldatma kalemlerinin yanlis pozitif orani ve kapsam disinda kalan olay siniflari
import { ALDATMA, DOKUNAN, IMZA_SAYI, topla, oran } from './aldatma.mjs';

console.log(`${'aldatma kalemi'.padEnd(17)} ${'bolge'.padEnd(8)} ${'kotu etkilesim'.padStart(14)} ${'mesru'.padStart(6)} ` +
  `${'yanlis pozitif'.padStart(14)} ${'ilk sinyal'.padStart(10)}  mesru etkilesimin kaynagi`);
for (const a of ALDATMA)
  console.log(`${a[0].padEnd(17)} ${a[1].padEnd(8)} ${String(a[2]).padStart(14)} ${String(a[3]).padStart(6)} ` +
    `${oran(a[2], a[3]).padStart(14)} ${`${a[5]}. gun`.padStart(10)}  ${a[4]}`);
const [k, m] = [topla(ALDATMA, 2), topla(ALDATMA, 3)];
console.log(`\n${'olcu'.padEnd(28)} ${'imza tabanli'.padStart(12)} ${'aldatma tabanli'.padStart(15)}`);
for (const [ad, i, a] of [
  ['donem uyarisi', IMZA_SAYI.uyari, k + m],
  ['yanlis pozitif', IMZA_SAYI.mesru, m],
  ['yanlis pozitif orani', oran(IMZA_SAYI.kotu, IMZA_SAYI.mesru), oran(k, m)],
  ['kapsanan kotu olay sinifi', `${IMZA_SAYI.sinif}/7`, `${Object.values(DOKUNAN).filter((d) => d.length).length}/7`],
]) console.log(`${ad.padEnd(28)} ${String(i).padStart(12)} ${String(a).padStart(15)}`);
console.log('\nolay sinifi -> dokundugu aldatma kalemi:');
for (const [s, d] of Object.entries(DOKUNAN)) console.log(`  ${s.padEnd(34)} ${d.join(', ') || '- (hic gorunmuyor)'}`);
```

```
aldatma kalemi    bolge    kotu etkilesim  mesru yanlis pozitif ilk sinyal  mesru etkilesimin kaynagi
bal-kupu-yonetim  yonetim             412      6           %1.4     2. gun  aylik envanter taramasi
bal-kupu-veri     veri                 54      1           %1.8     9. gun  yedek dogrulama betigi
bal-kaydi         veri                  3      0           %0.0    17. gun  -
bal-kimlik        yonetim             118      0           %0.0     2. gun  -

olcu                         imza tabanli aldatma tabanli
donem uyarisi                       17497             594
yanlis pozitif                       5214               7
yanlis pozitif orani                %29.8            %1.2
kapsanan kotu olay sinifi             6/7             3/7

olay sinifi -> dokundugu aldatma kalemi:
  yonetim kapisina yogun deneme      bal-kupu-yonetim, bal-kimlik
  bilinmeyen sunucu adina cikis      - (hic gorunmuyor)
  konakta yeni ayricalikli surec     - (hic gorunmuyor)
  duzenli aralikli kucuk cikis       bal-kaydi
  yerel dosya izninin degismesi      - (hic gorunmuyor)
  sifreli akis icinde bilinen yuk    - (hic gorunmuyor)
  ic bolgede tarama benzeri dizi     bal-kupu-yonetim, bal-kupu-veri
```

İkinci tablo dersin çekirdeğidir. Aynı dönemde imza tabanlı düzen on yedi bin uyarı üretti, aldatma
tabanlı düzen beş yüz doksan dört. Yanlış pozitif beş bin iki yüz on dörtten yediye indi; oran
yüzde otuzdan yüzde bire. Bunun bir nedeni var ve nedeni imzaların kötü yazılmış olması değil.
İmza, meşru trafiğin de geçtiği bir alanda desen arıyor; aldatma kalemi meşru trafiğin hiç geçmediği
bir yere konuluyor. Yanlış pozitif oranı düşük çıkıyor çünkü **payda tanım gereği boş**.

Kalan yedi yanlış pozitifin kaynağı da bunu doğruluyor: ikisi de kurumun kendi betikleridir. Aylık
envanter taraması bütün adresleri dolaşıyor, yedek doğrulama betiği bütün uçları yokluyor. İkisi
adıyla bilindiği için istisna listesine yazılıp yanlış pozitif sıfıra indirilebilir; bedeli, o
listenin bir kalem olarak bakımda tutulmasıdır. İstisna listesi büyüdükçe aldatma kaleminin
sinyali sulanır.

Son satır bedelin asıl yerini gösteriyor. İmza tabanlı düzen yedi kötü sınıfın altısını kapsıyordu,
aldatma tabanlı düzen üçünü. Dört sınıf hiç görünmüyor ve hepsi aynı türdendir: aldatma kalemine
dokunmayı gerektirmeyen olaylar. Konakta açılan bir süreç ya da değişen bir dosya izni, ağda
kurulmuş hiçbir tuzağa değmez. Aldatma bir tespit katmanının yerine geçmez; onun en gürültülü
olduğu yerde çok temiz bir sinyal verir, en sessiz olduğu yerde hiçbir şey vermez.

İlk tablodaki etkileşim sayıları da kendi başına bir şey söylüyor. Dört kalemin taşıdığı yük
birbirinden çok farklı: yönetim bölgesindeki sahte arayüz dört yüz on iki etkileşim görürken veri
bölgesindeki kayıt üç etkileşim görüyor. İkisi de aynı kesinlikte sinyal veriyor ve aynı işlemi
gerektiriyor. Aldatma kaleminin değeri gördüğü hacimle ölçülmez, çünkü hacmin kendisi bir bilgi
taşımıyor — bir etkileşim ile dört yüz etkileşim aynı sonuca varır. Ölçülebilen tek şey kalemin
**nereye** konulduğudur: sinyal, kalemin bulunduğu bölgeye birinin ulaşmış olduğunu söyler.

Kesişimin ortasında bir satır var: düzenli aralıklı küçük çıkışlar. Önceki derste yedi sınıftan
yalnız bu biri iki algılayıcının ikisinden birden kaçmıştı — görülüyordu, hiçbir imza eşleşmiyordu.
Bal kaydı bu sınıfı yakalıyor ve dönemde yalnız üç etkileşimle yakalıyor. Sinyalin on yedinci günde
gelmesi de anlamlıdır: aldatma kalemi bir hız ölçüsü değil, bir varlık ölçüsüdür.

Aldatma kalemlerinin bir bedeli de tabloda görünmüyor: kalemin inandırıcı kalması. Bir yönetim
arayüzü kılığındaki uç, çevresindeki gerçek kalemlerden ayırt edilebiliyorsa kimse ona
dokunmaz ve sinyal hiç gelmez. Ayırt edilemez kalması ise onun da güncellenmesini, adlandırma
düzenine uymasını ve envanterde bir karşılığının bulunmasını gerektirir. Dört kalemin bakımı,
korunan iki yüz on kalemin bakımından ayrı bir iştir ve unutulduğunda kalem sessizce işlevsiz
hâle gelir — yanlış pozitif üretmediği için de kimse fark etmez. Ölçülmeyen bir savunmanın
sessizliği çalıştığının kanıtı değildir.

## Yönlendirme Kuyusu

```js
// kosum2.mjs — yonlendirme kuyusu: dusen kotu baglanti, kesilen mesru baglanti ve kalan kotu
import { ONEK, KUYU, topla } from './aldatma.mjs';

const [TK, TM] = [topla(ONEK, 1), topla(ONEK, 2)];
console.log(`alti onek sinifi: ${TK} kotu, ${TM} mesru baglanti\n`);
console.log(`${'onek'.padEnd(8)} ${'kotu'.padStart(6)} ${'mesru'.padStart(6)} ${'kuyuya alinirsa kesilen mesru'.padStart(29)}  not`);
for (const o of ONEK)
  console.log(`${o[0].padEnd(8)} ${String(o[1]).padStart(6)} ${String(o[2]).padStart(6)} ${String(o[2]).padStart(29)}  ${o[3]}`.trimEnd());
console.log(`\n${'kuyu listesi'.padEnd(13)} ${'onek'.padStart(4)} ${'dusen kotu'.padStart(10)} ${'kalan kotu'.padStart(10)} ` +
  `${'kesilen mesru'.padStart(13)} ${'kotu basina kesilen mesru'.padStart(25)}`);
for (const [ad, liste] of Object.entries(KUYU)) {
  const ic = ONEK.filter((o) => liste.includes(o[0]));
  const [dk, km] = [topla(ic, 1), topla(ic, 2)];
  console.log(`${ad.padEnd(13)} ${String(liste.length).padStart(4)} ${String(dk).padStart(10)} ${String(TK - dk).padStart(10)} ` +
    `${String(km).padStart(13)} ${(dk ? (km / dk).toFixed(4) : '-').padStart(25)}`);
}
const e = ONEK.find((o) => o[0] === 'onek-E'), c = ONEK.find((o) => o[0] === 'onek-C');
console.log(`\nson iki onegin tek tek bedeli:`);
for (const o of [c, e])
  console.log(`  ${o[0]} eklenince  dusen kotu +${o[1]}, kesilen mesru +${o[2]}  (${o[3]})`);
console.log(`\nkuyuya dusen trafik hedefe varmadigi icin hicbir algilayici kaydi uretmiyor;`);
console.log(`temiz listede ${topla(ONEK.filter((o) => KUYU.temiz.includes(o[0])), 1)} baglanti sessizce dusuyor`);
```

```
alti onek sinifi: 23370 kotu, 5112 mesru baglanti

onek       kotu  mesru kuyuya alinirsa kesilen mesru  not
onek-A     8400      0                             0
onek-B     2100      0                             0
onek-C      640     12                            12  tedarikci ayni blokta
onek-D      190      0                             0
onek-E       40   5100                          5100  saha uclerinin hucresel cikisi ayni blokta
onek-F    12000      0                             0

kuyu listesi  onek dusen kotu kalan kotu kesilen mesru kotu basina kesilen mesru
yok              0          0      23370             0                         -
temiz            4      22690        680             0                    0.0000
temiz+C          5      23330         40            12                    0.0005
hepsi            6      23370          0          5112                    0.2187

son iki onegin tek tek bedeli:
  onek-C eklenince  dusen kotu +640, kesilen mesru +12  (tedarikci ayni blokta)
  onek-E eklenince  dusen kotu +40, kesilen mesru +5100  (saha uclerinin hucresel cikisi ayni blokta)

kuyuya dusen trafik hedefe varmadigi icin hicbir algilayici kaydi uretmiyor;
temiz listede 22690 baglanti sessizce dusuyor
```

Yönlendirme kuyusu ters yönde çalışan bir kalemdir: aldatma kalemi sinyal üretmek için konulur,
kuyu trafiği hiç görmemek için. Dört temiz önek yirmi iki bin altı yüz doksan kötü bağlantıyı
düşürüyor ve tek bir meşru bağlantı kesmiyor. Kalan altı yüz seksen kötü bağlantı iki önekten
geliyor ve ikisi de meşru trafikle karışık.

Son sütun bu karışıklığın fiyatını veriyor. Beşinci öneği eklemek kötü bağlantı başına on binde
beş meşru bağlantı kesiyor — pratikte bedelsiz. Altıncısını eklemek aynı oranı beşte bire
çıkarıyor: kırk kötü bağlantıyı düşürmek için beş bin yüz meşru bağlantı kesiliyor. İki hamle
listeye birer satır ekliyor ve satırlar birbirine benziyor; ayrımı yapan tek şey öneğin arkasında
kimin durduğudur. Bir engelleme listesinin uzunluğu bu yüzden bir ölçü değildir; ölçü, düşen kötü
bağlantı başına kesilen meşru bağlantıdır.

Listenin bir de zaman boyutu var ve tabloda görünmüyor. Bir önek dönem boyunca kötü trafik
taşıdığı için listeye girer; sonraki dönemde arkasındaki taraf değişebilir ve satır yerinde kalır.
Satırı eklemenin gerekçesi kayda geçer, silmenin gerekçesi hiçbir yerde doğmaz — çünkü kuyuya
düşen trafik hiçbir kayıt üretmediği için o öneğin artık meşru trafik taşıdığı da görünmez.
Yönlendirme kuyusu bu yönüyle güvenlik duvarı kural kümesiyle aynı huya sahiptir: tek yönde büyür.

Son iki satır kuyunun kendi kör noktasını veriyor. Kuyuya düşen trafik hedefe varmadığı için
hiçbir algılayıcı kaydı üretmiyor: yirmi iki bin altı yüz doksan bağlantı sessizce yok oluyor.
Önceki dersin uyarı kuyruğu bu kadar hafifliyor, ama aynı hamle o trafiğin ne aradığını ve neyi
denediğini de görünmez kılıyor. Kuyu ile bal küpü aynı dönemde birlikte kurulabildiği için bu iki
kalem birbirini tamamlar: biri gürültüyü hiç üretmeden düşürür, öteki gürültünün hiç olmadığı
yerde tek bir etkileşimi sinyale çevirir.

Bu dersin iki kalemi bir arada bir şey daha söylüyor. Aldatma kalemi kapsamı dar, sinyali temiz
bir savunmadır; yönlendirme kuyusu kapsamı geniş, sinyali hiç olmayan bir savunmadır. Önceki
dersin imza tabanlı düzeni ikisinin ortasındadır: kapsamı geniş, sinyali gürültülü. Üçü aynı
dönemde birlikte çalıştığında ölçüm sütunları toplanmaz, çünkü hepsi aynı olayı farklı yerlerde
görür. Ölçülebilir olan tek şey her birinin kendi sütunudur — kapsanan sınıf, üretilen yanlış
pozitif ve kesilen meşru iş — ve bir savunmanın bu üçünden yalnız birini iyileştirdiği söyleniyorsa
ötekilerin nereye gittiği sorulmamış demektir.

## Özet

- Aynı dönemde imza tabanlı düzen 17.497 uyarı ve %29,8 yanlış pozitif üretiyor; aldatma tabanlı
  düzen 594 uyarı ve %1,2. Oran düşük çünkü aldatma kalemine meşru iş tanım gereği uğramıyor.
- Kalan 7 yanlış pozitifin ikisi de kurumun kendi betiğidir. İstisna listesiyle sıfırlanabilir;
  bedeli, listenin bakımda tutulması ve büyüdükçe sinyali sulandırmasıdır.
- Kapsam bedeldir: imza tabanlı düzen 7 kötü sınıfın 6'sını, aldatma tabanlı düzen 3'ünü kapsıyor.
  Görünmeyen 4 sınıf aynı türdendir — hiçbir tuzağa dokunmayı gerektirmeyen olaylar.
- Bal kaydı, önceki derste iki algılayıcının da kaçırdığı tek sınıfı 3 etkileşimle yakalıyor.
  Sinyal 17. günde geliyor: aldatma bir hız değil, bir varlık ölçüsüdür.
- Yönlendirme kuyusunda 4 temiz önek 22.690 kötü bağlantıyı sıfır meşru kayıpla düşürüyor.
  Beşinci önek kötü başına 0,0005, altıncısı 0,2187 meşru bağlantıya mal oluyor. Kuyunun kendi
  bedeli kayıtsızlıktır: düşen 22.690 bağlantı hiçbir algılayıcı kaydı üretmiyor.

## Sonraki Adım

Buraya kadar sayılan her savunma trafiği ya bölgelere ayırdı, ya bir noktadan geçirdi, ya kaydetti
ya da düşürdü. Hepsinin ortak varsayımı, bağlanan tarafın ağın **dışında** durmasıydı. Bir tünel
bu varsayımı kaldırır: uzaktaki bir uç, doğrulandıktan sonra ağın içinde bir adres alır ve
bölge grafiğinde bir düğüm hâline gelir. Sonraki dersin sorusu tünelin kurulup kurulmadığı değil,
kurulduğunda kaç kaleme erişildiğidir — tam tünelde kaç kalem, bölünmüş tünelde kaçı içeride kaçı
dışarıda kalıyor ve tek bir doğrulama kaç bağlantıyı kanıtlanmış saymaya yetiyor.
