Ders 13 / 20
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.
İçindekiler
Ö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
nodeile 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.
// 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.
// 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
// 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.
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.