---
title: 'Alan Adı ve Kayıt Sorgulama'
source: 'https://academia.sh/tr/kurslar/sizma-testi/alan-adi-ve-kayit-sorgulama'
course: 'Güvenlik Araçları ve Sızma Testi'
language: tr
updated: '2026-08-17T18:08:41+00:00'
license: 'CC BY-SA 4.0'
---

# Alan Adı ve Kayıt Sorgulama

Kaydın kanıt gücünü ölçmek: 20 adayda dört kayıt ölçütünün isabetinin %100 ile %25 arasında değişmesi, güçlü üç ölçütün 10 adayı ayırıp 8 kanıtı sıfır yanlış pozitifle yakalaması, zayıf dördüncü ölçütün 0 yeni kanıt getirip isabeti %80'den %62'ye düşürmesi, sessiz kalan 10 adayın %60'ının yanlış pozitif ama birinin gerçek varlık olması ve önbellek yolunun 0 kayıt bırakıp 1 kanıt kaçırarak 2 yanlış pozitif eklemesi.

Önceki ders yirmi adayı dokuz kanıt, beş ipucu ve altı yanlış pozitife ayırdı — ama bu ayrımı
yapan şey dışarıdan gelen bir hakemdi: kapsam sahibinin onayladığı envanter. Gerçek bir
değerlendirmede o envanter çıktıdır, girdi değil. Bu ders hakemsiz bir ayrım dener: adayların
adları sorgulanır ve dönen kayıtların **kanıt gücü** ölçülür.

Kayıt türlerinin ne işe yaradığı ve nasıl yönetildiği Sunucu, Ağ ve Sertleştirme kursunda ele
alındı. Burada ölçülen şey farklıdır: bir kayıt bir **iddia** taşır ve iddianın değeri, o kaydı
kimin yazabildiğine bağlıdır. Bazı kayıtları yalnız adı denetleyen taraf oluşturabilir; bazıları
adı barındıran üçüncü tarafın işidir ve sahiplik hakkında hiçbir şey söylemez.

## Kayıt Bir İddiadır, Kanıt Değildir

**KS4:** her aday için dört bilgi tutulur — hakemin verdiği gerçek sınıf, tescil kaydında kurum
adının görünüp görünmediği, yalnız adı denetleyen tarafın yazabileceği doğrulama kaydının var olup
olmadığı ve adın çözümlendiği adres bloğu. **KS5:** bir *ölçüt*, adayı kanıt sayan bir kuraldır;
iki sayıyla anılır — **isabet** (tetiklediği adayların kaçı gerçekten kanıt) ve **kapsama** (bütün
kanıtların kaçını yakalıyor). **KS6:** önbellekten gelen yanıt hedefte hiçbir kayıt bırakmaz ama
eskimiş olabilir; yetkili sunucuya doğrudan sorulan yanıt tazedir ve her sorgu bir kayıt bırakır.

Bu sorgulama yetkilendirilmiş bir değerlendirmenin parçasıdır ve yalnız kapsam tanımındaki
adlarla sınırlıdır.

```js
// kesif/kayit.mjs — 01'in yirmi adayi icin kurgu kayit sorgulama sonucu (model): gercek alan
// adi, gercek adres ve gercek tescil kaydi yok. Rastgelelik yok.

// KS4: her satir bir aday icin dort seyi tasir — kapsam sahibinin envanterine gore gercek sinif
// (hakem), tescil kaydinda kurum adinin gorunup gorunmedigi, yalniz adi denetleyen tarafin
// yazabilecegi dogrulama kaydinin var olup olmadigi ve adin cozumlendigi adres blogu.
// Blok A kuruma ayrilmis, B ortak barindirma, C ucuncu taraf, "-" cozumlenmiyor demektir.
// "bolge" adin yanitini kimin verdigini, "eski" ise onbellekteki eskimis blok degerini soyler.
export const ADAY = `
  abone-portali          kanit    1 1 A kurum -
  saha-uygulamasi        kanit    1 1 A kurum -
  sube-vpn-ucu           kanit    1 0 A kurum -
  toplayici-ag-gecidi    kanit    0 0 A kurum C
  rapor-ucu              kanit    1 1 A kurum -
  test-portali           kanit    0 0 C kurum -
  ortak-arayuzu          kanit    1 0 B kurum -
  is-emri-ucu            kanit    1 1 A kurum -
  sayac-guncelleme-ucu   kanit    0 1 A kurum -
  eski-abone-portali     ipucu    1 0 C kurum -
  pazarlama-sayfasi      ipucu    0 0 C kurum -
  bulut-depolama-kovasi  ipucu    0 0 C dis   -
  kimlik-saglayici-ucu   ipucu    0 1 C dis   -
  egitim-ortami          ipucu    0 0 B kurum -
  odeme-saglayici-ucu    yanlisP  0 0 C dis   -
  eski-saha-uygulamasi   yanlisP  0 0 B dis   -
  yedek-alan-adi         yanlisP  0 0 - dis   -
  bayi-portali           yanlisP  0 0 B dis   -
  destek-portali         yanlisP  0 0 C dis   A
  eski-rapor-ucu         yanlisP  0 0 - kurum A`
  .trim().split("\n").map((r) => {
    const [ad, sinif, tescil, sahiplik, blok, bolge, eski] = r.trim().split(/\s+/);
    return { ad, sinif, tescil: +tescil, sahiplik: +sahiplik, blok, bolge, eski };
  });

// KS5: bir kural, adayi kanit sayan bir olcuttur. Isabet = tetiklenen adaylarin kaci gercekten
// kanit; kapsama = butun kanitlarin kaci bu kuralla bulunuyor.
export const KURAL = [
  { ad: "sahiplik kaydi", f: (a, b) => a.sahiplik === 1 },
  { ad: "tescil kaydi", f: (a, b) => a.tescil === 1 },
  { ad: "kuruma ayrilmis blok", f: (a, b) => b === "A" },
  { ad: "ortak barindirma blogu", f: (a, b) => b === "B" },
];

// KS6: onbellekten gelen yanit hedefte kayit birakmaz ama eskimis olabilir; yetkili sunucuya
// dogrudan sorulan yanit tazedir ve kurum bolgesindeki her ad icin iki kayit birakir.
export const blokOf = (a, yol) => (yol === "onbellek" && a.eski !== "-" ? a.eski : a.blok);
export const KANIT = ADAY.filter((a) => a.sinif === "kanit").length;
```

```js
// kesif/sahiplik.mjs — hangi kayit sahipligi kanitliyor, hangisi yalniz ipucu birakiyor.
import { ADAY, KURAL, KANIT, blokOf } from "./kayit.mjs";

const yaz = (g, ...s) => console.log(s.map((v, i) =>
  (g[i] < 0 ? String(v).padEnd(-g[i]) : String(v).padStart(g[i]))).join(""));
const say = (l, s) => l.filter((a) => a.sinif === s).length;
const oran = (l) => l.length ? ((say(l, "kanit") / l.length) * 100).toFixed(0) : "-";

console.log(`${ADAY.length} aday, ${KANIT} kanit, ${say(ADAY, "ipucu")} ipucu, ` +
  `${say(ADAY, "yanlisP")} yanlis pozitif; ${KURAL.length} kayit olcutu, aday basina 3 sorgu`);

const A = [-24, 7, 7, 7, 9, 9, 10];
console.log("\n1. kayit olcutu basina isabet ve kapsama");
yaz(A, "olcut", "aday", "kanit", "ipucu", "yanlisP", "isabet %", "kapsama %");
for (const k of KURAL) {
  const l = ADAY.filter((a) => k.f(a, a.blok));
  yaz(A, k.ad, l.length, say(l, "kanit"), say(l, "ipucu"), say(l, "yanlisP"), oran(l),
    ((say(l, "kanit") / KANIT) * 100).toFixed(1));
}

const B = [-32, 7, 7, 7, 9, 9, 10];
console.log("\n2. olcutler birlestikce (guclu olcutten zayifa)");
yaz(B, "kume", "aday", "kanit", "ipucu", "yanlisP", "isabet %", "kapsama %");
const kume = [];
for (const k of KURAL) {
  kume.push(k);
  const l = ADAY.filter((a) => kume.some((x) => x.f(a, a.blok)));
  yaz(B, `+ ${k.ad}`, l.length, say(l, "kanit"), say(l, "ipucu"), say(l, "yanlisP"), oran(l),
    ((say(l, "kanit") / KANIT) * 100).toFixed(1));
}

const guclu = KURAL.slice(0, 3);
const tetiklenen = ADAY.filter((a) => guclu.some((k) => k.f(a, a.blok)));
const sessiz = ADAY.filter((a) => !guclu.some((k) => k.f(a, a.blok)));
const C = [-32, 7, 7, 7, 9, 10];
console.log("\n3. ilk uc olcutun ayirdigi iki liste");
yaz(C, "liste", "aday", "kanit", "ipucu", "yanlisP", "yanlisP %");
for (const [ad, l] of [["tetiklenen", tetiklenen], ["hicbir olcut tetiklenmeyen", sessiz]])
  yaz(C, ad, l.length, say(l, "kanit"), say(l, "ipucu"), say(l, "yanlisP"),
    ((say(l, "yanlisP") / l.length) * 100).toFixed(1));
console.log("tetiklenmeyen kanit: " +
  sessiz.filter((a) => a.sinif === "kanit").map((a) => a.ad).join(", "));

const D = [-26, 9, 7, 9, 8, 8, 10];
console.log("\n4. iki sorgulama yolu: iz ile kesinlik");
yaz(D, "yol", "hedefte", "uyari", "eskimis", "kanit", "yanlisP", "isabet %");
for (const yol of ["onbellek", "dogrudan"]) {
  const l = ADAY.filter((a) => guclu.some((k) => k.f(a, blokOf(a, yol))));
  const kayit = yol === "dogrudan"
    ? ADAY.filter((a) => a.bolge === "kurum").length * 2 : 0;
  const eskimis = yol === "onbellek" ? ADAY.filter((a) => a.eski !== "-").length : 0;
  yaz(D, yol, kayit, 0, eskimis, say(l, "kanit"), say(l, "yanlisP"), oran(l));
}
const oy = ADAY.filter((a) => guclu.some((k) => k.f(a, blokOf(a, "onbellek"))));
console.log(`onbellek yolunda kacan kanit: ` +
  tetiklenen.filter((a) => !oy.includes(a)).map((a) => a.ad).join(", ") +
  `; eklenen yanlis pozitif: ` +
  oy.filter((a) => !tetiklenen.includes(a)).map((a) => a.ad).join(", "));
```

```
20 aday, 9 kanit, 5 ipucu, 6 yanlis pozitif; 4 kayit olcutu, aday basina 3 sorgu

1. kayit olcutu basina isabet ve kapsama
olcut                      aday  kanit  ipucu  yanlisP isabet % kapsama %
sahiplik kaydi                6      5      1        0       83      55.6
tescil kaydi                  7      6      1        0       86      66.7
kuruma ayrilmis blok          7      7      0        0      100      77.8
ortak barindirma blogu        4      1      1        2       25      11.1

2. olcutler birlestikce (guclu olcutten zayifa)
kume                               aday  kanit  ipucu  yanlisP isabet % kapsama %
+ sahiplik kaydi                      6      5      1        0       83      55.6
+ tescil kaydi                        9      7      2        0       78      77.8
+ kuruma ayrilmis blok               10      8      2        0       80      88.9
+ ortak barindirma blogu             13      8      3        2       62      88.9

3. ilk uc olcutun ayirdigi iki liste
liste                              aday  kanit  ipucu  yanlisP yanlisP %
tetiklenen                           10      8      2        0       0.0
hicbir olcut tetiklenmeyen           10      1      3        6      60.0
tetiklenmeyen kanit: test-portali

4. iki sorgulama yolu: iz ile kesinlik
yol                         hedefte  uyari  eskimis   kanit yanlisP  isabet %
onbellek                          0      0        3       7       2        64
dogrudan                         26      0        0       8       0        80
onbellek yolunda kacan kanit: toplayici-ag-gecidi; eklenen yanlis pozitif: destek-portali, eski-rapor-ucu
```

Sayılar **ölçüm** sınıfındadır; girdileri KS4–KS6'dır.

## Dört Ölçüt, Dört Ayrı İsabet

Birinci tablo dört ölçütü aynı yirmi aday üzerinde koşturur ve isabetleri **%100 ile %25 arasında**
dağılır. Bu aralık dersin ana bulgusudur: "kayıt sorgulaması yapıldı" cümlesi hiçbir şey söylemez,
çünkü hangi kaydın hangi iddiayı taşıdığı ölçütten ölçüte değişir.

Kuruma ayrılmış adres bloğu ölçütü yedi adayı tetikler ve **yedisi de kanıttır** — %100 isabet.
Nedeni yapısaldır: bir adres bloğu bir kuruma tahsis edilmişse, o bloğa çözümlenen adın başka bir
kuruma ait olması için bloğun sahibinin işbirliği gerekir. Tescil kaydı %86, sahiplik kaydı %83
isabetle onu izler; ikisi de kanıt üretir ama ikisinin de kapsaması yarıdan biraz fazladır.

Dördüncü ölçüt tersini gösterir. Ortak barındırma bloğu dört adayı tetikler; **biri kanıt, biri
ipucu, ikisi yanlış pozitiftir** — %25 isabet. Ortak bir barındırma bloğunda yüzlerce kurumun adı
aynı adrese çözümlenir; "aynı adrese çözümleniyor" bilgisi orada sahiplik hakkında neredeyse
hiçbir şey söylemez. Aynı biçimdeki iki gözlem — bir ad bir adrese çözümlenir — bloğun cinsine
göre kanıt ile gürültü arasında dört kat fark taşır.

Sahiplik kaydı ölçütünün tetiklediği tek ipucu kalemi ayrıca öğreticidir. `kimlik-saglayici-ucu`
üzerinde geçerli bir sahiplik kaydı vardır; kurum o adı denetlediğini kanıtlamıştır. Kalem yine de
kanıt değildir, çünkü kayıt **adın** denetimini kanıtlar, **varlığın** kime ait olduğunu değil.
Ad kurumun, üzerinde çalışan hizmet üçüncü tarafındır.

## Birleştirmenin Getirisi Nerede Duruyor

İkinci tablo ölçütleri güçlüden zayıfa doğru birleştirir. İlk üç ölçütün birleşimi **10 adayı**
tetikler ve içinde 8 kanıt, 2 ipucu, **0 yanlış pozitif** vardır: isabet %80, kapsama %88,9.
Dördüncü ölçüt eklendiğinde aday 13'e çıkar, kanıt **8'de kalır**, yanlış pozitif 0'dan 2'ye
yükselir ve isabet %62'ye düşer.

Bu, önceki dersteki eğrinin aynısıdır ve buradaki biçimi daha katıdır: zayıf ölçüt **hiçbir yeni
kanıt getirmez**, yalnız eleme yükü ekler. Kapsama sütunu iki satırda da %88,9'dur. Bir ölçüt
kümesine yeni kural eklerken sorulacak soru "daha çok aday buluyor mu" değil, "**kapsamayı
artırıyor mu**" olmalıdır; bu tabloda dördüncü ölçütün kapsamaya katkısı sıfırdır.

## Sessiz Kalan On Aday

Üçüncü tablo listenin öteki yarısını gösterir. Güçlü üç ölçütten hiçbiri **10 aday** için
tetiklenmez ve bu on adayın **6'sı yanlış pozitiftir** — %60. Yani kayıt sorgulaması bir eleme
aracı olarak gerçekten çalışır: altı yanlış pozitifin **altısı da** bu sessiz listededir, hiçbiri
kanıt listesine sızmamıştır.

Karşılığında bir gerçek varlık kaybedilir. `test-portali` kuruma aittir, envanterde durur ve
hiçbir ölçüt onu tetiklemez: üçüncü tarafta barındırıldığı için özel blokta değildir, tescil
kaydında görünmez ve üzerinde sahiplik kaydı yoktur. Kayıt sorgulaması bu adaya "hakkında bir şey
söyleyemem" der ve ikili bir eleme kuralı bunu "kuruma ait değil" diye okur.

Sayısal özet şudur: dokuz kanıtın sekizi kayıtla doğrulanabilir (%88,9), biri doğrulanamaz ve
sessiz listeye düşer. Sessiz liste **atılacak bir liste değil, ayrı bir listedir**; içinde
oranı %60 olan gürültünün yanında oranı %10 olan gerçek varlık durur.

## İz ile Tazelik Arasındaki Takas

Dördüncü tablo bu kursun iz sütununu ikinci kez açar ve ilk kez bir **takas** gösterir.
Sorgular bir ara çözümleyicinin önbelleğinden karşılanırsa hedefte **0 kayıt** kalır; hedefin
yetkili sunucusuna doğrudan sorulursa kurum bölgesindeki on üç ad için ikişer sorgu, yani **26
kayıt** oluşur.

Bedava görünen yol bedava değildir. Önbellekte üç eskimiş yanıt vardır ve sonuç üç yerde
bozulur: `toplayici-ag-gecidi` kanıt olmaktan çıkar (eski yanıt onu üçüncü taraf bloğunda
gösterir), `destek-portali` ile `eski-rapor-ucu` ise eskimiş kayıtları yüzünden kuruma ayrılmış
blokta görünür ve **yanlış pozitif olarak kanıt listesine girer**. İsabet %80'den %64'e düşer.

İki yol arasındaki seçim bu kursta tekrar tekrar karşılaşılacak biçimi taşır: **iz bırakmamak
kesinlikten vazgeçmektir**. Mavi takım açısından okunuşu da simetriktir — yetkili sunucudaki 26
kayıt hiçbir uyarı üretmez, çünkü ad sorgusu ağın en sıradan olayıdır. Bu adım savunma tarafında
görünür ama fark edilmez; fark edilmesi, sorguların **hangi adları** ve hangi sırayla hedeflediğinin
sonradan ilişkilendirilmesine bağlıdır.

## Altmış Sorgunun Bedeli

Yirmi adayın her biri üç sorgu gerektirdi: tescil kaydı, adres ve sahiplik kaydı. Toplam **60
sorgu** sekiz kanıt üretti — kanıt başına **7,5 sorgu**. Önceki dersin doğrulama bedeli kanıt
başına 5,00 adımdı; bu ders o bedelin üstüne çıkar ve karşılığında bir şey kazandırır: önceki
dersin dokuz kanıtı hakemden okunuyordu, bu dersin sekizi **kendi kendini doğruluyor**.

Bedelin dağılımı da eşit değildir. Kayıt vermeyen on aday da üç sorguluk payını harcar; sessiz
listenin toplam bedeli 30 sorgudur ve karşılığında **sıfır kanıt** üretir. Doğrulama bütçesinin
yarısı, sonucu "bilinmiyor" olan bir listeye gider — ve bu harcama gereksiz değildir, çünkü altı
yanlış pozitifi listeden düşüren şey odur.

Kapsam açısından ayrıca ayırt edilmesi gereken bir sınır vardır: yirmi addan **yedisi** kurumun
bölgesi dışındadır. Bu adları sorgulamak halka açık veriyi okumaktır ve kapsam sorunu üretmez;
o adlar üzerinde **işlem yapmak** ise kapsamın dışına çıkmaktır. Sorgulamanın serbest olduğu bir
kalem, üzerinde çalışılmasının serbest olduğu bir kalem değildir.

## Özet

- Kayıt bir iddia taşır ve iddianın gücü kaydı kimin yazabildiğine bağlıdır: dört ölçütün isabeti
  %100, %86, %83 ve %25'tir.
- Kuruma ayrılmış adres bloğu ölçütü 7 adayın 7'sinde doğrudur; ortak barındırma bloğu 4 adayın
  yalnız 1'inde — aynı biçimdeki gözlem bloğun cinsine göre dört kat farklı değer taşır.
- Sahiplik kaydı adın denetimini kanıtlar, varlığın sahipliğini değil: geçerli sahiplik kaydı
  taşıyan bir aday üçüncü tarafın hizmetidir ve kanıt sayılmaz.
- Güçlü üç ölçütün birleşimi 10 adayı tetikler, 8 kanıt yakalar ve 0 yanlış pozitif üretir;
  dördüncü ölçüt 3 aday ve 2 yanlış pozitif ekler, 0 yeni kanıt getirir, isabeti %80'den %62'ye
  düşürür.
- Hiçbir ölçütün tetiklenmediği 10 adayın 6'sı yanlış pozitiftir (%60) ama biri gerçek varlıktır;
  sessiz liste atılacak liste değil, ayrı bir listedir.
- Önbellek yolu hedefte 0 kayıt bırakır, 3 eskimiş yanıt yüzünden 1 kanıt kaçırır ve 2 yanlış
  pozitif ekler; doğrudan yol 26 kayıt bırakır, 0 uyarı üretir ve isabeti %80'de tutar.

## Sonraki Adım

Buraya kadar aday listesi hazır geldi: yirmi ad önceki dersin halka açık kalemlerinden çıkmıştı
ve bu ders yalnız onları sınıflandırdı. Oysa liste kapalı bir küme değildir. Bir kurumun alan
adının altında, hiçbir halka açık belgede geçmeyen ve hiçbir sayfada bağlantısı bulunmayan adlar
olabilir; onları bulmanın yolu belgeleri okumak değil, **ad uzayını taramaktır**.

Bu tarama iki yeni sayı üretir. Birincisi kapsamadır: farklı keşif yöntemleri aynı ad uzayında kaç
aday çıkarır, kaçında örtüşür, hangisi tek başına yeterlidir. İkincisi bu kursun en dikkat çeken
kalemidir: bulunan adların bir kısmı **artık var olmayan bir hedefe** işaret eder — kaydı duran,
karşılığı düşmüş, sahibi belirsiz kalemler. Sonraki ders alt alan ve varlık keşfini bu iki eksende
ölçer ve her yöntemin savunmada kaç kayıt bıraktığını sayar.
