---
title: 'Paket Yakalama ve Çözümleme'
source: 'https://academia.sh/tr/kurslar/sizma-testi/paket-yakalama-ve-cozumleme'
course: 'Güvenlik Araçları ve Sızma Testi'
language: tr
updated: '2026-08-17T18:08:40+00:00'
license: 'CC BY-SA 4.0'
---

# Paket Yakalama ve Çözümleme

Yakalanan trafiğin kanıt değerinin ölçülmesi: 24 kurgu paketten çıkan 10 akış, üç yakalama noktasında 18, 44 ve 85 iddia adayı, çekirdek aynada 85 adayın 50'sinin kanıt ve 7'sinin sahtelenebilir çıkması, düşük değerli iddiaların 20/20'si kanıtlanırken yüksek değerlilerin yalnız 10/25'inin kanıtlanması ve pasif yakalamanın hedefte sıfır kayıt bırakıp bir yapılandırma değişikliği istemesi.

Önceki konu dışarıdan görünen envanteri çıkardı ve adayları saydı; kapanışta kalan soru şuydu —
bir adayın gerçekten açık olup olmadığını hiçbir keşif adımı söyleyemez, bunun için trafiğe ve
isteğe bakmak gerekir. Bu konu oraya bakan araçları ele alır ve hepsini tek bir ölçüyle sınar:
ürettikleri **aday** ile geriye kalan **kanıtlanmış bulgu** arasındaki fark.

İlk araç sınıfı **paket yakalayıcıdır**: ağdan geçen çerçeveleri bir noktada kaydeder. Protokollerin
nasıl çalıştığı Bilgisayar Ağları müfredatındaki Ağ Modelleri kursunda kuruldu ve burada
tekrarlanmaz. Burada sorulan tek soru şudur: kaydedilen bu yığından hangi alan **doğrudan kanıt**
sayılır, hangisi yalnız bir **çıkarım**, hangisi de karşı tarafın serbestçe yazabildiği bir beyandır.
Yetkilendirilmiş bir değerlendirmede bile başka bir kuruma ait trafiğin yazılı yetki ve tanımlı
kapsam olmadan kaydedilmesi hem yasadışı hem meslek dışıdır.

## Alanın Sınıfı Üretenine Bağlıdır

Bir paketteki her alanı aynı gözle okumak, çözümlemenin en yaygın hatasıdır. Alanların bir bölümünü
**yakalama noktasının kendisi** üretir: kaydın zamanı, çerçevenin hangi bacaktan girdiği, yön, boyut,
sayı. Bunlar gönderenin beyanı değildir; ölçüm aracının gözlemidir ve gönderen tarafından
değiştirilemez. Bir bölümünü **başlıklar** taşır: adresler, bağlantı noktası numarası, sunucu adı
alanı. Bunlar ağ yolu boyunca tutarlı olmak zorundadır, dolayısıyla tümüyle serbest değildir, ama
gözlem de değildir — **çıkarımdır**. Kalan bölümü **yük** taşır: kullanıcı adı, sayaç kimliği, istemci
saati. Bunları yazan taraf gönderendir ve kriptografik olarak bağlanmadıkça istediğini yazabilir.

Dördüncü bir sınıf vardır: **imza**. Yük içindeki bir alan kriptografik olarak bağlıysa, o alan
gönderenin beyanı olmaktan çıkıp sınanabilir bir kanıta dönüşür — ancak akış şifreliyse yakalama
noktası imzayı da göremez.

- **AA1.** Paket kümesi, hizmet tablosu, yakalama noktaları ve iddia listesi **modeldir**; gerçek bir
  yakalama yapılmadı. Gerçek adres, ana bilgisayar adı ve kurum yazılmaz.
- **AA2.** Akış (flow), aynı kaynak, hedef ve hizmet üçlüsünü taşıyan paketlerin kümesidir.
- **AA3.** Bir alanın sınıfı üretenine bağlıdır: nokta gözlemi ve imza **kanıt**, başlık alanı
  **çıkarım**, yük alanı **sahtelenebilir**.
- **AA4.** Şifreli akışta yük alanları ve imza görünmez; sunucu adı alanı görünür sayılır.
- **AA5.** **İddia**, yakalanan trafikten çıkarılan bir önermedir. Dayanaklarından en az biri
  görünüyorsa iddia bir **adaydır**; sınıfı, görünen en güçlü dayanağın sınıfıdır.
- **AA6.** Her iddiaya bir **değer** verilir: raporda ne kadar iş taşıdığı. Değer elle atandı.
- **AA7.** Yakalama pasiftir; hedef sistemlerde kayıt üretmez.

```js
// pak/akis.mjs — kurgu paket kumesi, akis cikarma ve alan siniflandirmasi MODELIDIR.
// Gercek bir yakalama yok; gercek adres, ana bilgisayar adi ve kurum yazilmaz.
// Bir alanin sinifi, o alani kimin urettigine baglidir.
export const ALAN = {
  'yakalama-zamani': 'nokta', 'giris-bacagi': 'nokta', 'yon': 'nokta',
  'cerceve-boyutu': 'nokta', 'paket-sayisi': 'nokta', 'duz-metin-varligi': 'nokta',
  'kaynak-adresi': 'baslik', 'hedef-adresi': 'baslik', 'baglanti-noktasi': 'baslik',
  'sunucu-adi-alani': 'baslik', 'imza-dogrulamasi': 'imza',
  'kullanici-adi': 'yuk', 'parola-alani': 'yuk', 'sayac-kimligi': 'yuk',
  'okuma-degeri': 'yuk', 'abone-no': 'yuk', 'oturum-belirteci': 'yuk',
  'istemci-saati': 'yuk', 'cihaz-kimligi': 'yuk', 'islem-kimligi': 'yuk',
};
export const SINIF = { nokta: 'kanit', imza: 'kanit', baslik: 'cikarim', yuk: 'sahte' };
export const GUC = { kanit: 3, cikarim: 2, sahte: 1 };

// Hizmet: sifreli mi, yuku imzali mi, yukte hangi alanlar tasiniyor.
export const HIZMET = {
  'olcum-toplama':   { sifreli: false, imzali: true,  yuk: ['sayac-kimligi', 'okuma-degeri', 'istemci-saati'] },
  'dogrulama-cagri': { sifreli: true,  imzali: true,  yuk: ['islem-kimligi', 'abone-no'] },
  'portal-oturumu':  { sifreli: true,  imzali: false, yuk: ['oturum-belirteci', 'kullanici-adi'] },
  'saha-senkron':    { sifreli: false, imzali: false, yuk: ['kullanici-adi', 'cihaz-kimligi'] },
  'yonetim-erisimi': { sifreli: false, imzali: false, yuk: ['kullanici-adi', 'parola-alani'] },
  'dis-bildirim':    { sifreli: true,  imzali: false, yuk: ['abone-no'] },
};

// Yakalama noktasi: hangi bacaklardan gecen paketi goruyor.
export const NOKTA = {
  'sube-bacagi':   ['sube-1'],
  'cekirdek-ayna': ['sube-1', 'sube-2', 'merkez', 'dis'],
  'toplayici-ucu': ['merkez'],
};

// satir: zaman(sn) | bacak | kaynak | hedef | hizmet | boyut(bayt)
export const PAKET = `
  0 sube-1 s1-ucu toplayici olcum-toplama 420
  1 sube-1 s1-ucu toplayici olcum-toplama 418
  2 sube-1 s1-ucu toplayici olcum-toplama 421
  3 sube-2 s2-ucu toplayici olcum-toplama 419
  4 sube-2 s2-ucu toplayici olcum-toplama 420
  5 merkez toplayici dogrulayici dogrulama-cagri 1180
  6 merkez toplayici dogrulayici dogrulama-cagri 1174
  7 merkez toplayici dogrulayici dogrulama-cagri 1190
  8 dis abone-ucu portal portal-oturumu 2240
  9 dis abone-ucu portal portal-oturumu 2180
 10 dis abone-ucu portal portal-oturumu 2260
 11 sube-1 saha-uc saha-svc saha-senkron 960
 12 sube-1 saha-uc saha-svc saha-senkron 955
 13 sube-2 saha-uc saha-svc saha-senkron 962
 14 merkez yonetim toplayici yonetim-erisimi 310
 15 merkez yonetim toplayici yonetim-erisimi 305
 16 merkez yonetim dogrulayici yonetim-erisimi 308
 17 dis fatura dis-uc dis-bildirim 1420
 18 dis fatura dis-uc dis-bildirim 1415
 19 sube-1 s1-ucu toplayici olcum-toplama 417
 20 merkez toplayici fatura dogrulama-cagri 1160
 21 merkez toplayici fatura dogrulama-cagri 1168
 22 sube-2 s2-ucu toplayici olcum-toplama 422
 23 merkez yonetim saha-svc yonetim-erisimi 312
`.trim().split('\n').map((r) => {
  const [t, bacak, kaynak, hedef, hizmet, boyut] = r.trim().split(/\s+/);
  return { t: +t, bacak, kaynak, hedef, hizmet, boyut: +boyut };
});

// Akis: ayni (kaynak, hedef, hizmet) uclusunu tasiyan paketler.
export function akislar(paketler) {
  const m = new Map();
  for (const p of paketler) {
    const k = `${p.kaynak}>${p.hedef}/${p.hizmet}`;
    if (!m.has(k)) m.set(k, { ad: k, hizmet: p.hizmet, bacak: new Set(), paket: 0, bayt: 0 });
    const a = m.get(k);
    a.bacak.add(p.bacak); a.paket += 1; a.bayt += p.boyut;
  }
  return [...m.values()];
}

// Bir akista gorunen alanlar: nokta ve baslik alanlari her zaman,
// yuk alanlari ile imza yalniz sifresiz akista.
export function gorunurAlan(a) {
  const h = HIZMET[a.hizmet];
  const g = ['yakalama-zamani', 'giris-bacagi', 'yon', 'cerceve-boyutu', 'paket-sayisi',
    'kaynak-adresi', 'hedef-adresi', 'baglanti-noktasi'];
  if (h.sifreli) g.push('sunucu-adi-alani');
  else {
    g.push('duz-metin-varligi', ...h.yuk.filter((f) => ALAN[f]));
    if (h.imzali) g.push('imza-dogrulamasi');
  }
  return g;
}

// Iddia: yakalanan trafikten cikarilan onerme. Dayanak alanlarindan en az biri gorunuyorsa
// iddia bir ADAY olur; iddianin sinifi, gorunen en guclu dayanagin sinifidir.
export const IDDIA = [
  { ad: 'akis-var',             deger: 'dusuk',  dayanak: ['yon', 'cerceve-boyutu'] },
  { ad: 'hacim-ve-zamanlama',   deger: 'dusuk',  dayanak: ['paket-sayisi', 'yakalama-zamani'] },
  { ad: 'islemin-zamani',       deger: 'orta',   dayanak: ['istemci-saati', 'yakalama-zamani'] },
  { ad: 'trafik-su-bacaktan',   deger: 'orta',   dayanak: ['giris-bacagi'] },
  { ad: 'konusulan-servis',     deger: 'orta',   dayanak: ['baglanti-noktasi'] },
  { ad: 'karsi-uc-kimligi',     deger: 'orta',   dayanak: ['hedef-adresi', 'sunucu-adi-alani'] },
  { ad: 'alanlar-duz-metinde',  deger: 'yuksek', dayanak: ['duz-metin-varligi'] },
  { ad: 'gonderen-uc-kimligi',  deger: 'yuksek', dayanak: ['kaynak-adresi', 'imza-dogrulamasi'] },
  { ad: 'okunan-sayac-degeri',  deger: 'yuksek', dayanak: ['okuma-degeri', 'sayac-kimligi', 'imza-dogrulamasi'] },
  { ad: 'kimlik-alani-icerigi', deger: 'yuksek', dayanak: ['parola-alani', 'oturum-belirteci'] },
  { ad: 'islemi-yapan-kisi',    deger: 'yuksek', dayanak: ['kullanici-adi', 'cihaz-kimligi'] },
];

export function iddiaSinifi(iddia, gorunen) {
  const v = iddia.dayanak.filter((f) => gorunen.includes(f));
  if (v.length === 0) return null;
  return v.map((f) => SINIF[ALAN[f]]).sort((x, y) => GUC[y] - GUC[x])[0];
}

export function noktaOlc(nokta) {
  const bacaklar = NOKTA[nokta];
  const p = PAKET.filter((x) => bacaklar.includes(x.bacak));
  const s = { paket: p.length, bayt: p.reduce((t, x) => t + x.boyut, 0), akis: 0,
    aday: 0, kanit: 0, cikarim: 0, sahte: 0 };
  for (const a of akislar(p)) {
    s.akis += 1;
    const g = gorunurAlan(a);
    for (const i of IDDIA) {
      const c = iddiaSinifi(i, g);
      if (c) { s.aday += 1; s[c] += 1; }
    }
  }
  return s;
}
```

## Üç Yakalama Noktası

```js
// pak/olc.mjs — ayni paket kumesi uc yakalama noktasindan olculur.
import { PAKET, NOKTA, IDDIA, HIZMET, akislar, gorunurAlan, iddiaSinifi, noktaOlc } from './akis.mjs';

const y = (g, ...s) => console.log(s.map((v, i) =>
  (g[i] < 0 ? String(v).padEnd(-g[i]) : String(v).padStart(g[i]))).join('').trimEnd());

console.log(`${PAKET.length} paket -> ${akislar(PAKET).length} akis, ` +
  `${Object.keys(HIZMET).length} hizmet, ${IDDIA.length} iddia turu`);

const A = [-22, -17, 7, 7, 9, 8, 6];
console.log('\n1. akis basina gorunur alan');
y(A, 'akis', 'hizmet', 'paket', 'bayt', 'sifreli', 'imzali', 'alan');
for (const a of akislar(PAKET)) {
  const h = HIZMET[a.hizmet];
  y(A, a.ad.split('/')[0], a.hizmet, a.paket, a.bayt, h.sifreli ? 'evet' : 'hayir',
    h.imzali ? 'evet' : 'hayir', gorunurAlan(a).length);
}

const B = [-16, 8, 7, 7, 8, 9, 16];
console.log('\n2. yakalama noktasi basina iddia');
y(B, 'nokta', 'paket', 'akis', 'aday', 'kanit', 'cikarim', 'sahtelenebilir');
for (const n of Object.keys(NOKTA)) {
  const s = noktaOlc(n);
  y(B, n, s.paket, s.akis, s.aday, s.kanit, s.cikarim, s.sahte);
}

const C = [-22, 9, 8, 9, 16];
console.log('\n3. cekirdek aynada iddia turu basina sinif dagilimi');
y(C, 'iddia', 'deger', 'kanit', 'cikarim', 'sahtelenebilir');
const ag = akislar(PAKET).map(gorunurAlan);
const kutu = { dusuk: [0, 0], orta: [0, 0], yuksek: [0, 0] };
for (const i of IDDIA) {
  const c = { kanit: 0, cikarim: 0, sahte: 0 };
  for (const g of ag) { const s = iddiaSinifi(i, g); if (s) c[s] += 1; }
  y(C, i.ad, i.deger, c.kanit, c.cikarim, c.sahte);
  kutu[i.deger][0] += c.kanit;
  kutu[i.deger][1] += c.kanit + c.cikarim + c.sahte;
}

console.log('\n4. iddia degeri ile kanit orani');
for (const d of ['dusuk', 'orta', 'yuksek'])
  console.log(`  ${d.padEnd(8)} kanit ${String(kutu[d][0]).padStart(3)} / ${kutu[d][1]}`);

const t = noktaOlc('cekirdek-ayna');
console.log(`\nhedef sistemlerde uretilen kayit             0`);
console.log(`yakalama icin gereken yapilandirma degisikligi 1 (ayna bacagi, yazili onay)`);
console.log(`incelenen hacim                              ${t.bayt} bayt`);
console.log(`sube bacagindan gorulemeyen akis             ${t.akis - noktaOlc('sube-bacagi').akis} / ${t.akis}`);
```

```
24 paket -> 10 akis, 6 hizmet, 11 iddia turu

1. akis basina gorunur alan
akis                  hizmet             paket   bayt  sifreli  imzali  alan
s1-ucu>toplayici      olcum-toplama          4   1676    hayir    evet    13
s2-ucu>toplayici      olcum-toplama          3   1261    hayir    evet    13
toplayici>dogrulayici dogrulama-cagri        3   3544     evet    evet     9
abone-ucu>portal      portal-oturumu         3   6680     evet   hayir     9
saha-uc>saha-svc      saha-senkron           3   2877    hayir   hayir    11
yonetim>toplayici     yonetim-erisimi        2    615    hayir   hayir    11
yonetim>dogrulayici   yonetim-erisimi        1    308    hayir   hayir    11
fatura>dis-uc         dis-bildirim           2   2835     evet   hayir     9
toplayici>fatura      dogrulama-cagri        2   2328     evet    evet     9
yonetim>saha-svc      yonetim-erisimi        1    312    hayir   hayir    11

2. yakalama noktasi basina iddia
nokta              paket   akis   aday   kanit  cikarim  sahtelenebilir
sube-bacagi            6      2     18      12        5               1
cekirdek-ayna         24     10     85      50       28               7
toplayici-ucu          9      5     44      23       15               6

3. cekirdek aynada iddia turu basina sinif dagilimi
iddia                     deger   kanit  cikarim  sahtelenebilir
akis-var                  dusuk      10        0               0
hacim-ve-zamanlama        dusuk      10        0               0
islemin-zamani             orta      10        0               0
trafik-su-bacaktan         orta      10        0               0
konusulan-servis           orta       0       10               0
karsi-uc-kimligi           orta       0       10               0
alanlar-duz-metinde      yuksek       6        0               0
gonderen-uc-kimligi      yuksek       2        8               0
okunan-sayac-degeri      yuksek       2        0               0
kimlik-alani-icerigi     yuksek       0        0               3
islemi-yapan-kisi        yuksek       0        0               4

4. iddia degeri ile kanit orani
  dusuk    kanit  20 / 20
  orta     kanit  20 / 40
  yuksek   kanit  10 / 25

hedef sistemlerde uretilen kayit             0
yakalama icin gereken yapilandirma degisikligi 1 (ayna bacagi, yazili onay)
incelenen hacim                              22436 bayt
sube bacagindan gorulemeyen akis             8 / 10
```

## Kanıt Ucuz, Değerli İddia Pahalı

Dördüncü tablo bu dersin sonucudur. Düşük değerli iddiaların **20'sinin 20'si** kanıt sınıfında.
"Bu iki uç arasında akış var", "şu kadar paket şu saatte geçti" — hepsi doğrudur, hiçbiri
tartışılamaz ve hiçbiri bir rapor satırı etmez. Orta değerlilerde oran yarıya iner: bacak ve zaman
kanıttır, konuşulan servis ile karşı ucun kimliği başlıktan okunur ve çıkarımdır. Yüksek değerli
iddiaların ise yalnız **10'u 25'ten** kanıt sınıfına girer.

Bu ters orantı bir kusur değil, yöntemin yapısıdır. Yakalama noktası ne kadar çok şey gözlemliyorsa
o gözlem o kadar az şey söyler; gerçekten bir şey söyleyen alanları ise gönderen üretir ve gönderen
her zaman şüphelidir. Ölçüm hattında bunun üç somut karşılığı var.

**Kimlik alanı içeriği** ve **işlemi yapan kişi** hiçbir akışta kanıt olmuyor; yedi kez aday olarak
üretiliyor ve yedisi de yalnız yük alanına dayanıyor. Bir yakalamada bir kullanıcı adı görülmesi, o
işlemi o kişinin yaptığını göstermez — yalnız o adın o alana yazıldığını gösterir. Rapora
"kullanıcı X şu işlemi yaptı" diye giren satır, kanıtlanmamış bir adaydır ve düzeltme bütçesini
yanlış yere harcatır.

**Gönderen uç kimliği** on adayın ikisinde kanıt, sekizinde çıkarım. İki kanıt, yükü imzalı ve
şifresiz olan ölçüm toplama akışlarından geliyor: imza görülüyor ve doğrulanabiliyor. Kalan sekizde
elde yalnız kaynak adresi var. Şifreli akışlarda imza da yükün içinde kaldığı için görünmez —
şifreleme doğru karardır, ama kanıt olabilecek alanı çözümleyiciden de saklar.

**Alanlar düz metinde** altı akışta kanıt sınıfında ve bu, kurgu ağdaki en sağlam bulgudur. Yönetim
erişiminin üç akışı ile saha eşitlemesinin akışı, alanlarını şifresiz taşıyor. Burada ayrım
önemlidir: alanların **düz metinde taşındığı** yakalama noktasının gözlemidir ve kanıttır; o
alanların **ne dediği** gönderenin beyanıdır ve değildir.

## Noktanın Konumu ve Bırakılan İz

İkinci tablo yakalayıcının nereye konduğunun ölçüsüdür. Şube bacağında 6 paket, 2 akış ve 18 aday
var; çekirdek aynada 24 paket, 10 akış ve 85 aday. Şube bacağından bakan bir çözümleyici on akışın
**sekizini hiç görmez** ve görmediği akış hakkında hiçbir şey söyleyemez. Toplayıcı ucu ortadadır:
merkez trafiğini görür, şube bacaklarını görmez, ama gördüğü akışların altısı şifresiz olduğu için
sahtelenebilir aday oranı en yüksek noktadır — 44 adayın 6'sı.

Bedel sütunu iki kalemden oluşuyor ve ikisi de küçüktür. İncelenen hacim 22.436 bayt; gerçek bir
değerlendirmede bu sayı çok daha büyüktür ve çözümleme süresini belirleyen asıl kalemdir. Savunmada
bırakılan iz ise **sıfır kayıttır**: yakalama pasiftir, hedef sistemlere hiçbir istek gitmez,
hiçbir günlük satırı üretilmez. Bu, kursta göreceğimiz en düşük izli adımdır.

Sıfır olmayan tek kalem, yakalamanın **mümkün kılınmasıdır**. Ayna bacağı açmak bir yapılandırma
değişikliğidir; bir değişiklik kaydı üretir, ağ ekibinin onayını ve kapsam belgesinde açık bir
satırı gerektirir. Trafiğin içinde abone verisi geçtiği için kaydın nerede saklanacağı ve ne zaman
silineceği de aynı belgede yazılıdır. Pasif olan yakalamanın kendisidir; ona erişim izni pasif
değildir.

## Özet

- Yirmi dört kurgu paketten 10 akış çıkar; akış başına görünen alan sayısı şifreli akışlarda 9,
  şifresiz akışlarda 11 ile 13 arasındadır.
- Bir alanın kanıt değeri üretenine bağlıdır: yakalama noktasının gözlemi ve kriptografik imza
  kanıt, başlık alanı çıkarım, yük alanı sahtelenebilir beyandır.
- Çekirdek aynada 85 iddia adayının 50'si kanıt, 28'i çıkarım, 7'si sahtelenebilir sınıftadır;
  bir iddianın sınıfı, görünen en güçlü dayanağının sınıfıdır.
- Kanıt oranı iddianın değeriyle ters gider: düşük değerli iddiaların 20/20'si kanıtlanır, yüksek
  değerlilerin yalnız 10/25'i. Kullanıcıyı işleme bağlayan yedi adayın hiçbiri kanıt değildir.
- Yakalama noktasının konumu görülen akışı belirler: şube bacağı 10 akışın 8'ini hiç görmez.
- Pasif yakalama hedefte sıfır kayıt bırakır; tek iz, ayna bacağı için gereken bir yapılandırma
  değişikliği ve ona bağlı yazılı onaydır.

## Sonraki Adım

Bu derste alanlar tek tek sınıflandırıldı ama şifreli akışlar tek bir satırla geçildi: yük görünmez,
sunucu adı alanı görünür. Kurgu ağdaki on akışın dördü şifreli ve bu dördü tam olarak en çok iş
taşıyan akışlar — abone portalı oturumu, doğrulama çağrısı, dış bildirim. Çözümlemenin bu akışlarda
eli boş kaldığı doğru değildir; eli **başka türlü doludur**.

Sonraki ders uygulama katmanı incelemesini görünürlük cinsinden ölçer. Aynı akış kümesi bir protokol
çözümleyiciden geçirilir ve iki sütun ayrı sayılır: şifresiz akışta kaç alan okunabiliyor, şifreli
akışta kaç alan yalnız **meta veri** olarak kalıyor. Meta verinin ne kadar iddia taşıdığı, şifre
çözmenin hangi kapsam ve gizlilik kalemini gerektirdiği ve çözümleyicinin **kendi yorumunun** ne
zaman bir çıkarım olduğu ölçülür.
