---
title: 'Alt Alan ve Varlık Keşfi'
source: 'https://academia.sh/tr/kurslar/sizma-testi/alt-alan-ve-varlik-kesfi'
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'
---

# Alt Alan ve Varlık Keşfi

Ad uzayında sahipsiz kalemi saymak: 24 bölge kaydının 7'sinin artık yanıt vermeyen bir hedefe işaret etmesi, üç yöntemin kapsamasının %66,7 ile %29,2 arasında değişmesi, iz bırakmayan yöntemin en çok adayı bulması, 120 denemelik yöntemin kayıt başına 8,57 iz üretmesi, bağlı kalem çıkarımının hiçbir sahipsiz kalem bulamaması, 4 uyarı üreten isteğin 0 aday getirmesi ve birleşimin 21 kaydı bulup 3'ünü hiç görmemesi.

Önceki iki ders kapalı bir liste üzerinde çalıştı: yirmi aday halka açık kalemlerden çıkmış ve
kayıt sorgulamasıyla sınıflandırılmıştı. Bir kurumun alan adının altında ise hiçbir belgede
geçmeyen, hiçbir sayfada bağlantısı bulunmayan adlar durur. Bu ders o adları arar ve ararken iki
şeyi birlikte sayar: yöntemlerin kapsamasını ve **artık var olmayan bir hedefe işaret eden**
kayıtları.

Bölge dosyasının bir envanter olarak tutulması ve öksüz kayıtların temizlenmesi Sunucu, Ağ ve
Sertleştirme kursunda bölgenin sahibi açısından ele alınmıştı. Burada aynı bölgeye **dışarıdan**
bakılır: sahibi bilmediği için temizlemediği kalem, değerlendirmeyi yapan tarafın listesinde bir
aday olarak durur.

## Sahipsiz Kayıt ve Unutulmuş Kalem

**KS7:** her ad üç şey taşır — hedefinin yanıt verip vermediği, envanterde olup olmadığı ve
sorumlu ekibi. Hedefi yanıt vermeyen kayıt **sahipsizdir**: kayıt durur, karşılığı düşmüştür.
Hedefi yanıt veren ama sorumlusu olmayan kayıt **unutulmuştur**: çalışır, ama kimse ondan sorumlu
değildir. **KS8:** bir yöntem bir aday kümesi üretir; adayın bölgede karşılığı yoksa yanlış
pozitiftir. **KS9:** yöntemin izi, hedefte bıraktığı kayıt ve tetiklediği uyarı sayısıdır; deneme
sayısı iz üretse de aday üretmeyebilir.

Bu adımların hepsi kapsam tanımındaki alan adıyla sınırlıdır ve yazılı yetkinin dışına çıkan bir
ad uzayında yapılamaz.

```js
// kesif/bolge.mjs — kurgu bir olcum aginin alt alan kayitlari ve uc kesif yonteminin bulgusu
// (model): gercek alan adi, gercek ad sunucusu ve gercek hedef yok. Rastgelelik yok.

// KS7: her satir bir addir — hedefinin yanit verip vermedigi, envanterde olup olmadigi, sorumlu
// ekibi ve onu bulan yontemler. Hedefi yanit vermeyen kayit sahipsiz, hedefi yanit veren ama
// sorumlusu olmayan kayit unutulmus sayilir. Son sutunda p pasif kayit derlemesi, s sozluk
// denemesi, b bagli kalem cikarimidir; "-" o yontemin bulamadigini gosterir.
export const AD = `
  abone       var      1 portal     psb
  saha        var      1 saha       psb
  vpn         var      1 ag         ps-
  toplayici   var      1 olcum      p--
  rapor       var      1 veri       psb
  test        var      1 portal     psb
  ortak       var      1 portal     p-b
  is-emri     var      1 saha       p-b
  sayac       var      1 olcum      p--
  eski-abone  var      0 -          p--
  pazarlama   var      0 pazarlama  -sb
  egitim      var      0 -          -s-
  demo        yok      0 -          ps-
  eski-rapor  yok      0 -          p--
  kampanya-2  yok      0 -          p--
  arsiv       yok      0 -          ps-
  staging     var      0 veri       ps-
  yedek       yok      1 ag         -s-
  izleme      var      1 ag         ps-
  gunluk      var      1 veri       -s-
  anket       yok      0 -          -s-
  eski-saha   yok      0 -          ---
  sube-1      var      1 ag         ---
  sube-2      var      1 ag         ---
  kampanya-1  kayitsiz 0 -          p--`
  .trim().split("\n").map((r) => {
    const [ad, hedef, env, sahip, bulan] = r.trim().split(/\s+/);
    return { ad, hedef, env: +env, sahip, bulan };
  });

// KS8: bir yontem bir aday kumesi uretir; adayin bolgede karsiligi yoksa yanlis pozitiftir.
// KS9: yontemin izi hedefte biraktigi kayit ve tetikledigi uyaridir. Deneme sayisi iz uretse de
// aday uretmeyebilir: bolge aktarim istegi dort ad sunucusunda reddedilir ve hicbir ad vermez.
export const YONTEM = [
  { kod: "p", ad: "pasif kayit derlemesi", deneme: 0, kayit: 0, uyari: 0 },
  { kod: "s", ad: "sozluk denemesi", deneme: 120, kayit: 120, uyari: 1 },
  { kod: "b", ad: "bagli kalem cikarimi", deneme: 12, kayit: 12, uyari: 0 },
  { kod: "z", ad: "bolge aktarim istegi", deneme: 4, kayit: 4, uyari: 4 },
];

export const KAYIT = AD.filter((a) => a.hedef !== "kayitsiz");
export const bulur = (y, a) => a.bulan.includes(y.kod);
export const sahipsiz = (a) => a.hedef === "yok";
export const unutulmus = (a) => a.hedef === "var" && a.sahip === "-";
```

```js
// kesif/varlik.mjs — uc kesif yontemi ayni ad uzayinda: kac aday, kac sahipsiz kalem, kac iz.
import { AD, YONTEM, KAYIT, bulur, sahipsiz, unutulmus } from "./bolge.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 SAHIPSIZ = KAYIT.filter(sahipsiz).length;

console.log(`${KAYIT.length} bolge kaydi: ${KAYIT.filter((a) => a.hedef === "var").length} ` +
  `hedefi yanit veriyor, ${SAHIPSIZ} sahipsiz, ${KAYIT.filter(unutulmus).length} unutulmus, ` +
  `${KAYIT.filter((a) => !a.env && a.hedef === "var").length} envanter disi`);

const A = [-23, 9, 7, 8, 9, 10, 10];
console.log("\n1. yontem basina aday ve sahipsiz kalem");
yaz(A, "yontem", "deneme", "aday", "dogru", "yanlisP", "sahipsiz", "kapsama %");
for (const y of YONTEM) {
  const l = AD.filter((a) => bulur(y, a));
  const d = l.filter((a) => a.hedef !== "kayitsiz");
  yaz(A, y.ad, y.deneme, l.length, d.length, l.length - d.length, d.filter(sahipsiz).length,
    ((d.length / KAYIT.length) * 100).toFixed(1));
}

const B = [-23, 8, 8, 11, 15, 12];
console.log("\n2. yontemin biraktigi iz");
yaz(B, "yontem", "kayit", "uyari", "kayit/aday", "kayit/sahipsiz", "aday/deneme");
for (const y of YONTEM) {
  const d = AD.filter((a) => bulur(y, a) && a.hedef !== "kayitsiz");
  const sz = d.filter(sahipsiz).length;
  yaz(B, y.ad, y.kayit, y.uyari, d.length ? (y.kayit / d.length).toFixed(2) : "-",
    sz ? (y.kayit / sz).toFixed(2) : "-",
    y.deneme ? (d.length / y.deneme).toFixed(2) : "-");
}
const IZ = YONTEM.reduce((t, y) => t + y.kayit, 0);
const UY = YONTEM.reduce((t, y) => t + y.uyari, 0);

const C = [-23, 9, 9, 11, 11];
console.log("\n3. birlesim ve ortusme");
yaz(C, "kume", "aday", "dogru", "sahipsiz", "kapsama %");
const kume = [];
for (const y of YONTEM) {
  kume.push(y);
  const l = AD.filter((a) => kume.some((x) => bulur(x, a)));
  const d = l.filter((a) => a.hedef !== "kayitsiz");
  yaz(C, `+ ${y.ad}`, l.length, d.length, d.filter(sahipsiz).length,
    ((d.length / KAYIT.length) * 100).toFixed(1));
}
const kac = (a) => YONTEM.filter((y) => bulur(y, a)).length;
const D = [-23, 9, 11, 12];
console.log("\n4. kac yontemden cikiyor");
yaz(D, "yontem sayisi", "kayit", "sahipsiz", "unutulmus");
for (const n of [0, 1, 2, 3]) {
  const l = KAYIT.filter((a) => kac(a) === n);
  yaz(D, `${n} yontem`, l.length, l.filter(sahipsiz).length, l.filter(unutulmus).length);
}
const bulunan = KAYIT.filter((a) => kac(a) > 0);
console.log(`hicbir yontemin bulamadigi kayit: ` +
  KAYIT.filter((a) => !kac(a)).map((a) => a.ad).join(", "));
console.log(`birlesim ${bulunan.length}/${KAYIT.length} kaydi (%` +
  `${((bulunan.length / KAYIT.length) * 100).toFixed(1)}) ve ` +
  `${bulunan.filter(sahipsiz).length}/${SAHIPSIZ} sahipsiz kalemi buluyor; ` +
  `toplam iz ${IZ} kayit, ${UY} uyari`);
```

```
24 bolge kaydi: 17 hedefi yanit veriyor, 7 sahipsiz, 2 unutulmus, 4 envanter disi

1. yontem basina aday ve sahipsiz kalem
yontem                    deneme   aday   dogru  yanlisP  sahipsiz kapsama %
pasif kayit derlemesi          0     17      16        1         4      66.7
sozluk denemesi              120     14      14        0         4      58.3
bagli kalem cikarimi          12      7       7        0         0      29.2
bolge aktarim istegi           4      0       0        0         0       0.0

2. yontemin biraktigi iz
yontem                    kayit   uyari kayit/aday kayit/sahipsiz aday/deneme
pasif kayit derlemesi         0       0       0.00           0.00           -
sozluk denemesi             120       1       8.57          30.00        0.12
bagli kalem cikarimi         12       0       1.71              -        0.58
bolge aktarim istegi          4       4          -              -        0.00

3. birlesim ve ortusme
kume                        aday    dogru   sahipsiz  kapsama %
+ pasif kayit derlemesi       17       16          4       66.7
+ sozluk denemesi             22       21          6       87.5
+ bagli kalem cikarimi        22       21          6       87.5
+ bolge aktarim istegi        22       21          6       87.5

4. kac yontemden cikiyor
yontem sayisi              kayit   sahipsiz   unutulmus
0 yontem                       3          1           0
1 yontem                       9          4           2
2 yontem                       8          2           0
3 yontem                       4          0           0
hicbir yontemin bulamadigi kayit: eski-saha, sube-1, sube-2
birlesim 21/24 kaydi (%87.5) ve 6/7 sahipsiz kalemi buluyor; toplam iz 136 kayit, 5 uyari
```

Sayılar **ölçüm** sınıfındadır; girdileri KS7–KS9'dur.

## Yedi Sahipsiz Kayıt

Yirmi dört bölge kaydının **7'si sahipsizdir**: kayıt durur, işaret ettiği hedef yanıt vermez.
Oran %29,2'dir — bölgedeki her üç kayıttan biri bir hiçe bakar. Bunların yanında hedefi yanıt
veren ama sorumlusu olmayan **2 unutulmuş kalem** ve envanterde hiç geçmeyen ama çalışan **4
kalem** vardır.

Bu üç sınıfın değerlendirme açısından ağırlığı aynı değildir. Envanter dışı dört kalem bir kapsam
sorunudur: çalışıyorlar, kuruma hizmet ediyorlar, ama kapsam görüşmesinde adları geçmemiş.
Unutulmuş iki kalem bir sorumluluk boşluğudur: bir bulgu çıkarsa raporun kime yazılacağı belirsiz
kalır. Sahipsiz yedi kayıt ise en dikkat çekici olanıdır, çünkü **bir kayıt bir adı bir hedefe
bağlama sözüdür** ve hedef ortadan kalktığında o söz, sözü sahiplenmeye hazır başka bir tarafa
açık kalır. Kaydı sürdüren taraf kurumdur; hedefi sağlayan taraf artık kimse değildir.

## Üç Yöntem, Üç Ayrı Kapsama

Birinci tablo üç yöntemi aynı ad uzayında koşturur. Pasif kayıt derlemesi 17 aday üretir,
16'sının bölgede karşılığı vardır ve kapsaması **%66,7**'dir. Sözlük denemesi 14 aday üretir ve
%58,3 kapsar. Bağlı kalem çıkarımı yalnız 7 aday üretir — **%29,2**.

Fark yöntemlerin kalitesinden değil, **neye baktıklarından** gelir. Bağlı kalem çıkarımı bir
sayfadan öteki sayfaya giden bağlantıları izler; bir ad ancak biri ona bağlantı verdiyse bulunur.
Sahipsiz kalemler tam olarak kimsenin bağlantı vermediği kalemlerdir, bu yüzden bu yöntem **yedi
sahipsiz kaydın hiçbirini** bulamaz. Aynı sütunda pasif derleme 4, sözlük denemesi 4 sahipsiz
kalem çıkarır. Bir yöntem "en az adayı üreten" olduğu için değil, **aradığı sınıfa yapısal olarak
kör olduğu** için elenir.

Yanlış pozitif sütunu tek bir kalemde doludur. Pasif derlemenin ürettiği `kampanya-1` bölgede hiç
yoktur: geçmişte bir sertifika kaydına girmiş, ad sonradan bölgeden kaldırılmıştır. Pasif
kaynakların bu özelliği bir önceki dersteki arşiv kopyasıyla aynıdır — geçmişte doğru olan bir şey
bugün doğru olmak zorunda değildir.

## Yüz Yirmi Deneme, On Dört Ad

İkinci tablo bu kursun iz sütununu ilk kez bir yöntem seçimine bağlar. Pasif kayıt derlemesi
hedefte **sıfır kayıt** bırakır ve en çok adayı bulan yöntemdir. Sözlük denemesi 120 deneme yapar,
14 ad bulur ve hedefte **120 kayıt** bırakır; ad başına **8,57 kayıt**, bulduğu sahipsiz kalem
başına **30,00 kayıt**. Bağlı kalem çıkarımı 12 kayıt bırakır ve ad başına 1,71 iz üretir.

Sözlük denemesinin isabet oranı `aday/deneme` sütununda görünür: **0,12**. Yüz yirmi denemenin yüz
altısı boşa gider ve boşa giden denemeler de kayıt bırakır. Savunma tarafından okunuşu şudur:
mavi takımın bu yöntemi fark etmesi, var olan adlara gelen sorgulara değil, **var olmayan adlara
gelen sorguların yoğunluğuna** bakmakla olur. Bu ders boyunca üretilen tek uyarıyı da o yoğunluk
tetikler.

Dördüncü satır dersin en keskin karşılaştırmasıdır. Bölge aktarım isteği dört ad sunucusunda
reddedilir: **0 aday**, 4 kayıt, **4 uyarı**. Toplam beş uyarının dördü, hiçbir ad getirmeyen bu
adımdan gelir. İzin verilmiş olsaydı tek adımda bütün bölgeyi verirdi; verilmediğinde geriye
yalnız iz kalır. Bir adımın beklenen getirisi yüksek diye denenmesi, gerçekleşen getirisi sıfır
olduğunda **yalnızca maliyet** olur.

## Birleşimin Durduğu Nokta

Üçüncü tablo yöntemleri birleştirir. İlk ikisi birlikte 21 kaydı bulur ve kapsama %66,7'den
**%87,5'e** çıkar; sahipsiz kalem 4'ten 6'ya yükselir. Üçüncü ve dördüncü yöntem eklendiğinde her
üç sayı da **hiç değişmez**. Bağlı kalem çıkarımının bulduğu yedi adın hepsi zaten ilk iki
yöntemden çıkmıştır.

Dördüncü tablo bunu kalem kalem gösterir. Yirmi dört kaydın 4'ü üç yöntemden birden çıkar, 8'i
ikisinden, 9'u yalnız birinden ve **3'ü hiçbirinden**. Tek yöntemden çıkan dokuz kaydın 4'ü
sahipsiz, 2'si unutulmuştur: **kurumun en az farkında olduğu kalemler, en az yöntemin gördüğü
kalemlerdir.** Üç yöntemden birden çıkan dört kaydın hiçbiri sahipsiz ya da unutulmuş değildir;
onlar bölgenin en görünür, en bakımlı adlarıdır.

Hiçbir yöntemin bulamadığı üç kayıt listenin sınırını çizer. `sube-1` ve `sube-2` numaralı adlardır
ve sözlükte karşılıkları yoktur; `eski-saha` hem sahipsizdir hem de hiçbir pasif kayıtta izi
kalmamıştır. Yani yedi sahipsiz kalemin **altısı** bulunur, biri bulunmaz — ve bulunmadığı bu
koşumda ancak hakem envanteri elde olduğu için bilinir. Gerçek bir değerlendirmede bu kaydın
varlığı hiç bilinmez; bilinen tek şey 21 addır.

## Sahipsiz Kayıt Henüz Bir Kanıt Değildir

Altı sahipsiz kaydın bulunması bu kursun ölçüsüne göre altı **aday** demektir, altı bulgu değil.
Bir kaydın hedefi yanıt vermiyor olabilir çünkü hedef geçici olarak kapalıdır, çünkü ad yalnız
kurum ağının içinden çözümlenir ya da çünkü hedefin bulunduğu alan başka bir tarafça yeniden
sahiplenilebilir durumdadır. Rapora giren bulgu yalnız üçüncü durumdur; ilk ikisi yanlış
pozitiftir ve keşif adımlarının hiçbiri üçünü birbirinden ayıramaz.

Ayrımın bedeli iki kalemdir. Birincisi ek adımdır: her sahipsiz kayıt için hedefin bulunduğu
hizmetin sahiplenmeye açık olup olmadığının sınanması gerekir. İkincisi ve daha kısıtlayıcı olanı
**kapsamdır**: o sınama kurumun altyapısında değil, üçüncü tarafın altyapısında yapılır. Altı
sahipsiz kaydın işaret ettiği hedeflerin hiçbiri kapsam tanımında adı geçen bir varlık değildir.

Bu, önceki derste ipucu sınıfı için yazılan kuralın ikinci karşılaşmasıdır ve burada daha
belirgindir: bir kalemin **bulunması** serbesttir, **doğrulanması** ayrı bir yetki gerektirir.
Altı adayın kaçının kanıta dönüştüğü bu konuda değil, kapsam görüşmesinden sonra belli olur.

## Özet

- Yirmi dört bölge kaydının 7'si sahipsizdir (%29,2): kayıt durur, hedefi yanıt vermez. Yanında
  2 unutulmuş ve 4 envanter dışı kalem bulunur.
- Üç yöntemin kapsaması %66,7, %58,3 ve %29,2'dir; bağlı kalem çıkarımı yedi sahipsiz kaydın
  hiçbirini bulamaz, çünkü sahipsiz kalem kimsenin bağlantı vermediği kalemdir.
- Pasif kayıt derlemesi hedefte 0 kayıt bırakır ve en çok adayı bulur; tek yanlış pozitifi
  bölgeden kaldırılmış bir addır.
- Sözlük denemesi 120 deneme ile 14 ad bulur (0,12 isabet), ad başına 8,57 ve sahipsiz kalem
  başına 30,00 kayıt bırakır; bu kursun beş uyarısının biri onun yoğunluğundan çıkar.
- Bölge aktarım isteği 0 aday getirir, 4 kayıt ve 4 uyarı bırakır: toplam uyarının %80'i hiçbir
  ad üretmeyen tek adımdan gelir.
- Birleşim iki yöntemden sonra %87,5'te durur; tek yöntemden çıkan 9 kaydın 4'ü sahipsiz, 2'si
  unutulmuştur, üç yöntemden çıkan 4 kaydın hiçbiri değildir.

## Sonraki Adım

Üç ders sonunda dışarıdan görünen ad listesi hazırdır: yirmi bir ad, altısı sahipsiz. Ne var ki
bir ad bir varlık değildir. `abone` adı bir hedefe çözümlenir, ama o hedefte **ne çalıştığı** bu
ana kadar hiç sorulmadı. Bir kaydın işaret ettiği makine hiçbir bağlantı kabul etmiyor olabilir;
üç servis birden sunuyor olabilir; ya da yalnız kurum ağından erişilebilen bir servisi dışarıya
kapalı tutuyor olabilir. Üçü de aynı kayıtta aynı biçimde görünür.

Bunu ayıran adım, hedefin hangi bağlantı noktalarında yanıt verdiğini sınamaktır ve bu adım önceki
üçünden farklıdır: hedefe **doğrudan** ve **çok sayıda** istek gider. Sonraki ders tarama türlerini
tek bir eksende karşılaştırır — her tür kaç adayı buluyor, kaçını kaçırıyor, savunmada kaç kayıt
ve kaç uyarı üretiyor. Bu derste 136 kayıt ve 5 uyarı biriktirildi; o derste iki sayı da başka bir
büyüklük sınıfına geçer.
