---
title: 'Test Türleri'
source: 'https://academia.sh/tr/kurslar/sizma-testi/test-turleri'
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'
---

# Test Türleri

Aynı 20 kalem ve aynı 41 kurgu açık üzerinde kara, gri ve beyaz kutu değerlendirmesi koşturuluyor. Kara kutu 78 aday üretip 6 kanıt bırakıyor (%7,7), gri kutu 63 adaydan 20, beyaz kutu 60 adaydan 31 kanıt çıkarıyor; 10 açık hiçbir türde kanıtlanamıyor çünkü kanıtı katılım kurallarının yasakladığı bir eylem gerektiriyor. Kanıt başına süre 8,82 saatten 1,87 saate, kanıt başına savunma kaydı 78'den 2,9'a iniyor; beyaz kutunun 31 kanıtının 17'si ancak içeriden anlamlı.

Bir önceki ders kapsamı sayıya çevirdi: 20 kalem kapsamda, 11 kalem sınırda, net pencere 70
kişi-saat. O hesap neyin yapılabileceğini yazdı ama nasıl yapılacağını yazmadı. Aynı 20 kalem hiçbir
ön bilgi verilmeden de değerlendirilebilir, kimlik bilgisi verilerek de, yapılandırma ve kaynak
erişimi açılarak da. Üç yol aynı adı taşımaz ve aynı sonucu vermez.

Bu ders üç yolu tek bir hedefte karşılaştırır. **Kara kutu değerlendirmesi** hiçbir iç bilgi
almadan başlar, **gri kutu** kimlik bilgisi ve sınırlı belge alır, **beyaz kutu** yapılandırmayı ve
kaynağı görür. Karşılaştırmanın ölçüsü bulgu sayısı değildir; bulgu sayısı türden türe yanıltıcı
biçimde değişir. Ölçü, üretilen **aday** ile kanıta dönüşen bulgu arasındaki farktır.

- **TS7.** Değerlendirme, önceki dersteki 20 kapsam içi kalem üzerinde yürür. Kalem kümesi de
  açık kümesi de **kurgudur**.
- **TS8.** Her açık iki ayrı erişim düzeyi taşır: onu **görmek** için gereken düzey ve onu
  **kanıtlamak** için gereken düzey. Düzeyler `dis`, `kimlik` ve `ic` biçiminde sıralıdır.
- **TS9.** Bazı açıkların kanıt düzeyi `etki`dir: kanıtı ancak hizmeti etkileyecek bir eylemle
  alınabilir. Katılım kuralları bu eylemi yasakladığı için **hiçbir tür** bu düzeye erişemez.
- **TS10.** Her kalem bir **gürültü tabanı** taşır: doğrulanmadan aday sayılan belirti sayısı.
  Tür ne kadar az iç bilgi görüyorsa gürültü çarpanı o kadar yüksektir.
- **TS11.** Süre iki kalemden oluşur: kalem başına hazırlık ve aday başına doğrulama. Bütün
  süreler kurgudur ve kişi-saat cinsindendir.
- **TS12.** **İz kaydı**, adımın savunma tarafında ürettiği kayıt sayısıdır. Aday başına iz
  çarpanı türe bağlıdır; belge okuyarak ilerleyen tür daha az kayıt üretir.

## Aynı Hedefte Üç Tür

```js
// turler.mjs — ayni hedefte kara, gri ve beyaz kutu degerlendirmesinin aday uretimi.
// MODELDIR; kalem kumesi de acik kumesi de kurgudur.
export const TOHUM = 20260811, KALEM = 20;
const uretec = (t) => { let s = t >>> 0;
  return () => (s = (s * 1664525 + 1013904223) >>> 0) / 4294967296; };
const r = uretec(TOHUM);

// Her acik iki ayri erisim duzeyi tasir: GORME icin gereken ve KANIT icin gereken.
// Kanit duzeyi gorme duzeyinden yuksek olabilir; aday ile kanit farki buradan cikar.
const DUZEY = ["dis", "kimlik", "ic"];
export const ACIK = [];
for (let k = 0; k < KALEM; k++) {
  const n = 1 + Math.floor(r() * 3);                // kalem basina 1-3 gercek acik
  for (let j = 0; j < n; j++) {
    const g = Math.floor(r() * 3);
    // "etki": kaniti ancak hizmeti etkileyecek bir eylemle alinabilen acik. Katilim
    // kurallari bunu yasakladigi icin hicbir tur bu duzeye erisemez.
    const kanit = r() < 0.15 ? "etki" : DUZEY[Math.min(2, g + (r() < 0.42 ? 1 : 0))];
    ACIK.push({ kalem: k, gorme: DUZEY[g], kanit });
  }
}
// Kalem basina gurultu tabani: dogrulanmadan aday sayilan belirti sayisi.
export const GURULTU = Array.from({ length: KALEM }, () => 1 + Math.floor(r() * 5));

// Tur tanimi: gordugu duzeyler, gurultu carpani, kalem basina hazirlik ve aday
// basina dogrulama suresi (saat), aday basina savunmada birakilan kayit.
export const TUR = [
  { ad: "kara kutu", gorus: ["dis"], gurultu: 1.0, hazirlik: 0.5, dogrulama: 0.55, iz: 6.0 },
  { ad: "gri kutu", gorus: ["dis", "kimlik"], gurultu: 0.6, hazirlik: 1.1, dogrulama: 0.40,
    iz: 3.5 },
  { ad: "beyaz kutu", gorus: ["dis", "kimlik", "ic"], gurultu: 0.3, hazirlik: 2.0,
    dogrulama: 0.30, iz: 1.5 },
];

// Bir tur, verilen kalem kumesinde olculur; kalem listesi verilmezse tamami.
export function olc(t, kalemler = [...Array(KALEM).keys()]) {
  const kume = new Set(kalemler);
  const acik = ACIK.filter((a) => kume.has(a.kalem));
  const gorulen = acik.filter((a) => t.gorus.includes(a.gorme));
  const kanit = gorulen.filter((a) => t.gorus.includes(a.kanit));
  const yanlis = kalemler.reduce((s, k) => s + Math.round(GURULTU[k] * t.gurultu), 0);
  const aday = gorulen.length + yanlis;
  const sure = kalemler.length * t.hazirlik + aday * t.dogrulama;
  return { aday, kanit: kanit.length, yanlis, askida: gorulen.length - kanit.length,
    kacan: acik.length - gorulen.length, sure, iz: Math.round(aday * t.iz) };
}

if (import.meta.url === `file://${process.argv[1]}`) {
  const gen = (B) => (h) => h.map((v, j) => (j ? String(v).padStart(B[j])
    : String(v).padEnd(B[0]))).join("");
  const yz = gen([13, 7, 8, 9, 9, 9, 9, 11]);
  console.log(`model (tohum ${TOHUM}): ${KALEM} kapsam ici kalem, ${ACIK.length} gercek acik`);
  const d = (k) => ACIK.filter((a) => a.gorme === k).length;
  console.log(`gorme duzeyine gore: dis ${d("dis")}, kimlik ${d("kimlik")}, ic ${d("ic")}; ` +
    `${ACIK.filter((a) => a.gorme !== a.kanit).length} acikta kanit duzeyi gormeden yuksek`);
  console.log("\n" + yz(["tur", "aday", "kanit", "yanlis+", "askida", "kacan", "saat",
    "kanit/saat"]));
  for (const t of TUR) {
    const o = olc(t);
    console.log(yz([t.ad, o.aday, o.kanit, o.yanlis, o.askida, o.kacan, o.sure.toFixed(1),
      (o.kanit / o.sure).toFixed(2)]));
  }
  const [a, b, c] = TUR.map((t) => olc(t));
  console.log(`\nkanit orani: kara ${(100 * a.kanit / a.aday).toFixed(1)}%, gri ` +
    `${(100 * b.kanit / b.aday).toFixed(1)}%, beyaz ${(100 * c.kanit / c.aday).toFixed(1)}%`);
}
```

```
model (tohum 20260811): 20 kapsam ici kalem, 41 gercek acik
gorme duzeyine gore: dis 16, kimlik 11, ic 14; 19 acikta kanit duzeyi gormeden yuksek

tur             aday   kanit  yanlis+   askida    kacan     saat kanit/saat
kara kutu         78       6       62       10       25     52.9       0.11
gri kutu          63      20       36        7       14     47.2       0.42
beyaz kutu        60      31       19       10        0     58.0       0.53

kanit orani: kara 7.7%, gri 31.7%, beyaz 51.7%
```

Tablonun ilk sütunu bu kursun en yanıltıcı sayısıdır. **En çok adayı en az kanıt üreten tür
çıkarıyor.** Kara kutu 78 aday bırakıyor, bunların 62'si yanlış pozitif, 10'u görülüp
kanıtlanamayan kalem, geriye 6 kanıt kalıyor: yüzde 7,7. Aynı hedefte beyaz kutu 60 adaydan 31
kanıt çıkarıyor. Bir raporun kapağına yazılan "78 bulgu" ile "60 bulgu" arasındaki fark, kurumun
gerçekte aldığı şeyle ters yöndedir.

Bu farkın kaynağı ikinci satırdadır: 41 açığın 19'unda kanıt düzeyi görme düzeyinden yüksektir.
Bir açığı **görmek** ile onu **kanıtlamak** ayrı erişim gerektirir, ve keşif aşamasının ürettiği
her belirti bu ayrımın yanlış tarafında durur. Kara kutu dışarıdan görünen 16 açığın tamamını
görebilir, ama bunların yalnız 6'sının kanıtına dışarıdan ulaşabilir; kalan 10'u askıda kalır.
Askıda kalan aday rapora girerse doğrulanmamış bir iddiadır; girmezse kurum onu hiç duymaz. İkisi
de tek başına doğru değildir, ve bu dersin ölçtüğü şey tam olarak bu üçüncü sütunun büyüklüğüdür.

Gri kutunun yeri de bu tabloda okunuyor. 63 aday, 20 kanıt ve 14 kaçan açıkla iki uç arasında
duruyor, ama asıl katkısı sayıda değildir: gri kutu, kimlik bilgisi ele geçirilmiş bir hesabın
nereye ulaşabildiği sorusunun karşılığıdır. Kara kutu bu soruyu hiç soramaz, çünkü kimlik düzeyine
erişemez; beyaz kutu sorabilir ama yanıtı yapılandırmadan okur, oysa soru koşum zamanına aittir.
Gri kutunun 6 içeriden kanıtı tam olarak bu sınıftadır ve bir kimlik ele geçirme senaryosunun
sınırını çizer.

Beyaz kutunun 10 askıda kalemi ayrı bir sınıftır. Beyaz kutu her düzeyi görür, dolayısıyla onun
askıda bıraktığı 10 aday **kanıtı yalnız hizmeti etkileyecek bir eylemle alınabilen** açıklardır.
Katılım kuralları bu eylemi yasaklar, ve yasak kalktığı an değerlendirme değil kesinti üretilir.
Bu 10 kalem hiçbir türde kanıtlanamaz; raporda "kanıtlanmış bulgu" değil, "koşulları yazılı aday"
olarak durmak zorundadır. Kaçan sütunu ise bunun tersini gösterir: kara kutu 25 gerçek açığı hiç
görmez, gri kutu 14'ünü, beyaz kutu hiçbirini kaçırmaz.

## İzin Bedeli ve Kanıtın Anlamı

```js
// karsilastir.mjs — turlerin biraktigi iz ve kanitin disaridan erisilebilirligi.
import { TUR, KALEM, ACIK, olc } from "./turler.mjs";

const gen = (B) => (h) => h.map((v, j) => (j ? String(v).padStart(B[j])
  : String(v).padEnd(B[0]))).join("");
const yz = gen([13, 8, 10, 11, 8, 10, 11]);
const tam = [...Array(KALEM).keys()];

// Kanitlanan aciklarin kaci disaridan gorulebilir duzeyde: bir saldirganin ilk
// erisim olmadan ulasabilecegi kanit ile ancak iceriden anlamli olan kanit ayrilir.
const dagit = (t) => {
  const kanit = ACIK.filter((a) => t.gorus.includes(a.gorme) && t.gorus.includes(a.kanit));
  return { dis: kanit.filter((a) => a.gorme === "dis").length,
    ic: kanit.filter((a) => a.gorme !== "dis").length };
};
console.log(`${KALEM} kalem, ${ACIK.length} gercek acik; iz kaydi savunma tarafinda sayilan ` +
  `kayittir`);
console.log(yz(["tur", "kanit", "iz kaydi", "iz / kanit", "distan", "iceriden", "saat/kanit"]));
for (const t of TUR) {
  const o = olc(t), d = dagit(t);
  console.log(yz([t.ad, o.kanit, o.iz, (o.iz / o.kanit).toFixed(1), d.dis, d.ic,
    (o.sure / o.kanit).toFixed(2)]));
}

// Karma: ilk m kalemde beyaz kutu, kalan kalemlerde gri kutu.
const [, gri, beyaz] = TUR;
const karma = (m) => {
  const a = olc(beyaz, tam.slice(0, m)), b = olc(gri, tam.slice(m));
  return { aday: a.aday + b.aday, kanit: a.kanit + b.kanit, askida: a.askida + b.askida,
    kacan: a.kacan + b.kacan, sure: a.sure + b.sure, iz: a.iz + b.iz };
};
const y2 = gen([17, 8, 8, 8, 8, 9, 10]);
console.log("\n" + y2(["karma beyaz / gri", "aday", "kanit", "askida", "kacan", "saat",
  "iz kaydi"]));
for (let m = 0; m <= KALEM; m += 4) {
  const k = karma(m);
  console.log(y2([`${m} / ${KALEM - m}`, k.aday, k.kanit, k.askida, k.kacan, k.sure.toFixed(1),
    k.iz]));
}
const s = karma(0), b20 = karma(KALEM);
console.log(`\ngri kutudan beyaz kutuya gecmek ${(b20.sure - s.sure).toFixed(1)} saat ekliyor, ` +
  `kaniti ${s.kanit}'den ${b20.kanit}'e cikariyor, kacan acigi ${s.kacan}'ten 0'a indiriyor`);
console.log(`ayni gecis iz kaydini ${s.iz}'den ${b20.iz}'a dusuruyor; askida kalan aday ` +
  `${s.askida}'den ${b20.askida}'a cikiyor, cunku beyaz kutu daha cok acik goruyor`);
```

```
20 kalem, 41 gercek acik; iz kaydi savunma tarafinda sayilan kayittir
tur             kanit  iz kaydi iz / kanit  distan  iceriden saat/kanit
kara kutu           6       468       78.0       6         0       8.82
gri kutu           20       221       11.1      14         6       2.36
beyaz kutu         31        90        2.9      14        17       1.87

karma beyaz / gri    aday   kanit  askida   kacan     saat  iz kaydi
0 / 20                 63      20       7      14     47.2       221
4 / 16                 64      24       7      10     49.9       199
8 / 12                 62      26       7       8     51.6       169
12 / 8                 63      30       7       4     54.2       145
16 / 4                 61      31       8       2     55.8       114
20 / 0                 60      31      10       0     58.0        90

gri kutudan beyaz kutuya gecmek 10.8 saat ekliyor, kaniti 20'den 31'e cikariyor, kacan acigi 14'ten 0'a indiriyor
ayni gecis iz kaydini 221'den 90'a dusuruyor; askida kalan aday 7'den 10'a cikiyor, cunku beyaz kutu daha cok acik goruyor
```

Süre sütunu önceki dersin kaba planını düzeltiyor. Orada 20 kalem için 76 saatlik tek bir plan
vardı ve tür ayrımı yoktu; tür ayrıldığında aynı 20 kalem 47,2 ile 58,0 saat arasında değişiyor ve
**üçü de 70 saatlik net pencereye sığıyor**. Yani seçim bir süre kısıtı değildir. Kanıt başına
süreye bakıldığında fark açılıyor: kara kutuda bir kanıt 8,82 saat, beyaz kutuda 1,87 saat tutuyor.
Kara kutunun süresi doğrulamaya değil, 62 yanlış pozitifi elemeye gidiyor.

İz sütunu mavi takım tarafını yazıyor. Kara kutu savunmada 468 kayıt bırakıyor, beyaz kutu 90.
Aradaki oran 5,2'dir ve nedeni yalnız aday sayısı değildir: kara kutu her adayı ağ üzerinden
sınamak zorundadır, beyaz kutu adayların bir bölümünü belgede kapatır. Kanıt başına iz 78'den 2,9'a
iniyor. Bir değerlendirmenin savunmayı ne kadar meşgul ettiğini ölçmenin doğru birimi budur:
toplam kayıt sayısı değil, **kanıt başına kayıt**.

Son iki sütun ise beyaz kutunun sınırını gösteriyor. 31 kanıtın 17'si ancak içeriden anlamlıdır:
yapılandırmada var olduğu gösterilmiştir, ama dışarıdan bir isteğin oraya ulaşabildiği
gösterilmemiştir. Kara kutunun 6 kanıtının 6'sı ise dışarıdan erişilebilir sınıftadır. İki tür
farklı sorulara yanıt verir — biri "bu açık var mı", öteki "bu açığa dışarıdan ulaşılıyor mu" — ve
bir düzeltme kuyruğunda bu ikisi aynı sıraya konamaz.

Bu ayrım tür seçimini bir tercih olmaktan çıkarıp bir soru eşleştirmesine dönüştürür. Sorulan şey
"dışarıdan bakan biri ne görüyor ve nereye ulaşabiliyor" ise kara kutu doğru araçtır ve 6 kanıtı
bu soruya doğrudan yanıt verir; 468 kayıt ise savunmanın bu tür bir denemeyi görüp görmediğinin
ölçüsü olarak ayrıca değerlidir. Sorulan şey "envanterde kaç açık var ve hangisi düzeltme
kuyruğuna girmeli" ise beyaz kutu doğru araçtır, çünkü kaçan sütununu sıfırlayan tek türdür.
İkisini aynı sözleşmede aynı ölçütle değerlendirmek, iki farklı soruya verilen yanıtları aynı
tabloya yazmak olur.

Karma tablo aradaki geçişi tek eksende gösteriyor. Beyaz kutuya kayan her dört kalem kaçan açığı
azaltıyor ve iz kaydını düşürüyor; karşılığında süre artıyor ve askıda kalan aday sayısı
yükseliyor, çünkü daha çok açık görüldükçe kanıtı yasak olan kalemlerin de daha çoğu görünür oluyor.
Beyaz kutunun asıl bedeli tabloda görünmez: kurumun yapılandırmayı ve kaynağı test ekibine açması
gerekir, ve bu bir süre kalemi değil bir kurumsal karardır. Tablonun ara satırları da bu yüzden
işe yarar — bütün envanteri açmak yerine dört ya da sekiz kalemi açmak, kaçan açığı 14'ten 10'a ve
8'e indirirken açılan belge miktarını beşte bir düzeyinde tutar. Hangi kalemlerin açılacağı ise
teknik değil, iş tarafında verilen bir karardır.

## Özet

- Aynı 20 kalemde kara kutu 78 aday üretip 6 kanıt bırakıyor, beyaz kutu 60 adaydan 31 kanıt
  çıkarıyor; aday sayısı ile kanıt sayısı ters yönde hareket ediyor.
- Farkın kaynağı, 41 açığın 19'unda kanıt düzeyinin görme düzeyinden yüksek olmasıdır: bir açığı
  görmek ile kanıtlamak ayrı erişim gerektirir.
- 10 açık hiçbir türde kanıtlanamıyor, çünkü kanıtı ancak hizmeti etkileyecek bir eylemle
  alınabiliyor ve katılım kuralları bunu yasaklıyor; bu kalemler raporda kanıt değil, koşulları
  yazılı aday olarak durur.
- Üç tür de 70 saatlik pencereye sığıyor; ayrım kanıt başına süredir — 8,82 saate karşı 1,87 saat.
- Kara kutu savunmada 468, beyaz kutu 90 kayıt bırakıyor; kanıt başına iz 78'den 2,9'a iniyor.
- Beyaz kutunun 31 kanıtının 17'si ancak içeriden anlamlıdır; kara kutunun 6 kanıtının tamamı
  dışarıdan erişilebilir sınıftadır ve iki tür farklı sorulara yanıt verir.

## Sonraki Adım

Üç türün de ortak bir kalıntısı var: yanlış pozitif. Kara kutuda 62, gri kutuda 36, beyaz kutuda
19 aday gerçek bir açığa karşılık gelmiyor ve bu sayılar bu derste tek bir çarpanla üretildi.
Gerçekte hangi adayın eleneceği çarpanla değil, adayın hangi kanıta dayandığıyla belirlenir: sürüm
bilgisine bakarak üretilen bir aday ile davranışı gözlenerek üretilen bir aday aynı ağırlıkta
değildir. Sonraki ders aday listesini doğrulama kurallarından geçirir ve elenen yanlış pozitifi
tek tek sayar: kaç aday yalnız sürüm bilgisine dayanıyor, kaçı davranışla doğrulanıyor ve
doğrulamanın kendisi hedefe ne kadar risk ekliyor.
