---
title: 'İstismar Çerçeveleri'
source: 'https://academia.sh/tr/kurslar/sizma-testi/istismar-cerceveleri'
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'
---

# İstismar Çerçeveleri

İstismar çerçevesinin yalnız doğrulama sınırıyla ölçülmesi: 16 adayın 9'u gerçekte açıkken 3'ünün kanıta dönüşmesi, dört doğrulama seçeneğinden yalnız birinin olumsuz sonucunun açığın yokluğunu göstermesi, olumsuz dönen üç adayın ikisinin gerçekte açık olması, olumsuz ve zayıf sonuçların kapatma gerekçesi sayılması durumunda üç adayın yanlış kapanması ve iki hedefe kapsam nedeniyle hiç dokunulmaması.

Buraya kadar beş araç sınıfı aynı sınıra çarptı: her seferinde bir kalemin gerçekten açık olduğunu
gösterecek son adım yapılmadan kaldı. **İstismar çerçevesi** o son adımı yapan araç sınıfıdır ve
tam bu nedenle en dar sınırlarla kullanılır.

Bu ders çerçevenin nasıl kullanıldığını anlatmaz; hiçbir araç, modül, adım dizisi, komut ya da yük
yazılmaz. Ölçülen üç şey vardır: bir doğrulama denemesinin **neyi kanıtladığı**, **neyi
kanıtlamadığı** ve hangi durumda hedefe zarar verdiği. Bir çerçeveyi yazılı yetki ve tanımlı kapsam
olmadan bir hedefe yöneltmek, sonuç ne olursa olsun yetkisiz erişimdir ve yasal sonuç doğurur.

## Dört Seçenek, İki Ayrı Soru

Bir adayı doğrulamanın birden çok yolu vardır ve bunlar iki bağımsız özellikle ayrılır.

Birincisi **kanıt gücüdür**. Pasif belirti eşleşmesi — yapılandırma ve sürüm bilgisinin bilinen bir
tanımla karşılaştırılması — hedefe dokunmaz ve hiçbir zaman kesin kanıt üretmez; yalnız bir adayı
güçlendirir. Yan etkisiz doğrulama, açığın var olması için gereken koşulun sağlanıp sağlanmadığını
belirlenimci biçimde sınar. Durum değiştiren ve kesinti riskli seçenekler kesin kanıt üretir ve
karşılığında hedefte iz ve risk bırakır.

İkincisi ve daha az konuşulanı, **olumsuz sonucun anlamıdır**. Bir koşul sınaması olumsuz döndüğünde
koşulun sağlanmadığı bilinir; bu, açığın yokluğunun kanıtıdır. Bir deneme olumsuz döndüğünde ise
hiçbir şey bilinmez. Deneme, hedefin o andaki durumu, yükü, bir ara katmanın davranışı ya da
zamanlama nedeniyle başarısız olmuş olabilir. **Başarısız bir doğrulama denemesi açığın olmadığını
kanıtlamaz.** Bu ayrımın kaybolması raporun en pahalı hatasıdır.

- **AA36.** Seçenek kataloğu, aday listesi ve barındırma sınıfları **modeldir**; gerçek bir hedef,
  gerçek bir açık kimliği ve gerçek bir araç yok.
- **AA37.** `acik` alanı adayın gerçek durumudur; doğrulamadan önce bilinmez ve yalnız modelin
  sonucu hesaplayabilmesi için yazılmıştır.
- **AA38.** `kosullu` seçeneklerde sonuç hedefin o andaki ortam koşuluna bağlıdır; koşul
  sağlanmazsa deneme açık bir kalemde bile olumsuz döner.
- **AA39.** Barındırma sınıfı seçenek kümesini daraltır. `yonetilen`, üçüncü tarafın işlettiği bir
  hizmettir ve hiçbir deneme kapsam içinde değildir.
- **AA40.** Katılım kuralları en yüksek risk düzeyini belirler; seçim, izin verilenler içinde kanıt
  gücü en yüksek, eşitlikte riski en düşük seçenektir.
- **AA41.** Süre, kayıt ve uyarı sayıları seçenek başına elle yazıldı.

```js
// cerceve/sinir.mjs — istismar cercevesinin DOGRULAMA SINIRI modelidir. Hicbir arac,
// modul, adim dizisi, komut ya da yuk yazilmaz; secenekler yalniz turu, risk duzeyi,
// kanit gucu ve OLUMSUZ SONUCUN ANLAMI ile anilir.
// olumsuz: 'yokluk' = olumsuz sonuc acigin yoklugunu gosterir; 'belirsiz' = hicbir sey gostermez.
// kosullu = sonuc hedefin o andaki ortam kosuluna baglidir; kosul saglanmazsa deneme acik bir
// kalemde bile olumsuz doner. Kosullu bir denemenin olumsuz sonucu HICBIR SEY gostermez.
export const SECENEK = {
  'belirti-eslesmesi':     { risk: 0, kanit: 'zayif', olumsuz: 'belirsiz', kosullu: false, dk: 5,  kayit: 1, uyari: 0 },
  'yan-etkisiz-dogrulama': { risk: 1, kanit: 'kesin', olumsuz: 'yokluk',   kosullu: false, dk: 15, kayit: 2, uyari: 1 },
  'durum-degistiren':      { risk: 2, kanit: 'kesin', olumsuz: 'belirsiz', kosullu: true,  dk: 30, kayit: 4, uyari: 3 },
  'kesinti-riskli':        { risk: 3, kanit: 'kesin', olumsuz: 'belirsiz', kosullu: true,  dk: 45, kayit: 6, uyari: 5 },
};

// Barindirma sinifi: hedefin uzerinde hangi risk duzeyine kadar islem yapilabilir.
// yonetilen = ucuncu tarafin islettigi hizmet; hicbir deneme kapsam icinde degildir.
export const BARINDIRMA = { kendi: 3, paylasilan: 1, yonetilen: -1 };
export const IZIN_RISK = 2;   // katilim kurallarinin izin verdigi en yuksek risk duzeyi

// satir: aday | acik mi | pasif belirti | ortam kosulu saglandi mi | barindirma | secenekler
export const ADAY = `
  c01 acik   evet  evet  kendi      belirti-eslesmesi,yan-etkisiz-dogrulama
  c02 acik   evet  evet  kendi      belirti-eslesmesi,durum-degistiren
  c03 acik   hayir evet  kendi      belirti-eslesmesi,yan-etkisiz-dogrulama
  c04 acik   evet  hayir kendi      belirti-eslesmesi,durum-degistiren
  c05 acik   evet  evet  paylasilan belirti-eslesmesi,durum-degistiren
  c06 acik   hayir hayir kendi      belirti-eslesmesi,durum-degistiren
  c07 acik   evet  evet  yonetilen  belirti-eslesmesi,yan-etkisiz-dogrulama
  c08 acik   evet  evet  kendi      belirti-eslesmesi
  c09 kapali evet  evet  kendi      belirti-eslesmesi,yan-etkisiz-dogrulama
  c10 kapali evet  evet  kendi      belirti-eslesmesi,durum-degistiren
  c11 kapali hayir evet  kendi      belirti-eslesmesi,yan-etkisiz-dogrulama
  c12 kapali evet  evet  kendi      belirti-eslesmesi
  c13 kapali evet  evet  paylasilan belirti-eslesmesi,yan-etkisiz-dogrulama
  c14 kapali hayir evet  kendi      belirti-eslesmesi,kesinti-riskli
  c15 kapali evet  evet  yonetilen  belirti-eslesmesi,durum-degistiren
  c16 acik   hayir evet  kendi      belirti-eslesmesi,kesinti-riskli
`.trim().split('\n').map((r) => {
  const [ad, durum, belirti, kosul, barindirma, sec] = r.trim().split(/\s+/);
  return { ad, acik: durum === 'acik', belirti: belirti === 'evet', kosul: kosul === 'evet',
    barindirma, secenek: sec.split(',') };
});

export const izinli = (a, s) => SECENEK[s].risk <= Math.min(IZIN_RISK, BARINDIRMA[a.barindirma]);

// Secilen secenek: izin verilenler icinde kanit gucu en yuksek, esitlikte riski en dusuk olan.
export function secim(a) {
  const uygun = a.secenek.filter((s) => izinli(a, s));
  if (uygun.length === 0) return null;
  return uygun.sort((x, y) => {
    const g = (s) => (SECENEK[s].kanit === 'kesin' ? 1 : 0);
    return g(y) - g(x) || SECENEK[x].risk - SECENEK[y].risk;
  })[0];
}

// Sonuc: kanit | yokluk-kaniti | belirsiz-olumsuz | guclu-aday | zayif-aday | dogrulanamadi
export function sonuc(a) {
  const s = secim(a);
  if (!s) return { secenek: '-', sonuc: 'dogrulanamadi', dk: 0, kayit: 0, uyari: 0 };
  const o = SECENEK[s];
  let d;
  if (o.kanit === 'kesin') {
    if (a.acik && (a.kosul || !o.kosullu)) d = 'kanit';
    else if (a.acik) d = 'belirsiz-olumsuz';        // acik ama deneme olumsuz dondu
    else d = o.olumsuz === 'yokluk' ? 'yokluk-kaniti' : 'belirsiz-olumsuz';
  } else d = a.belirti ? 'guclu-aday' : 'zayif-aday';
  return { secenek: s, sonuc: d, dk: o.dk, kayit: o.kayit, uyari: o.uyari };
}

export function toplam() {
  const t = { kanit: 0, 'yokluk-kaniti': 0, 'belirsiz-olumsuz': 0, 'guclu-aday': 0,
    'zayif-aday': 0, dogrulanamadi: 0, dk: 0, kayit: 0, uyari: 0, kanitlanamayanAcik: 0 };
  for (const a of ADAY) {
    const r = sonuc(a);
    t[r.sonuc] += 1; t.dk += r.dk; t.kayit += r.kayit; t.uyari += r.uyari;
    if (r.sonuc !== 'kanit' && a.acik) t.kanitlanamayanAcik += 1;
  }
  return t;
}
```

## On Altı Aday, Altı Sonuç Türü

```js
// cerceve/olc.mjs — on alti aday, cercevenin neyi kanitladigi ve neyi kanitlamadigi.
import { SECENEK, BARINDIRMA, IZIN_RISK, ADAY, secim, sonuc, toplam } from './sinir.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(`${ADAY.length} aday (${ADAY.filter((a) => a.acik).length} gercekte acik), ` +
  `${Object.keys(SECENEK).length} dogrulama secenegi, izin verilen en yuksek risk ${IZIN_RISK}`);

const A = [-24, 6, 6, 7, 7, 9, 11];
console.log('\n1. secenek turleri');
y(A, 'secenek', 'risk', 'dk', 'kayit', 'uyari', 'kosullu', 'olumsuz');
for (const [s, o] of Object.entries(SECENEK))
  y(A, s, o.risk, o.dk, o.kayit, o.uyari, o.kosullu ? 'evet' : 'hayir', o.olumsuz);

const B = [-6, 8, 9, 7, 12, 25, 18];
console.log('\n2. aday basina secilen secenek ve sonuc');
y(B, 'aday', 'gercek', 'belirti', 'kosul', 'barindirma', 'secilen', 'sonuc');
for (const a of ADAY) {
  const r = sonuc(a);
  y(B, a.ad, a.acik ? 'acik' : 'kapali', a.belirti ? 'evet' : 'hayir',
    a.kosul ? 'evet' : 'hayir', a.barindirma, r.secenek, r.sonuc);
}

const t = toplam();
console.log('\n3. cercevenin urettigi karar dagilimi');
for (const k of ['kanit', 'yokluk-kaniti', 'belirsiz-olumsuz', 'guclu-aday', 'zayif-aday',
  'dogrulanamadi']) console.log(`  ${k.padEnd(18)} ${String(t[k]).padStart(3)}`);

console.log('\n4. neyi kanitlamaz');
const belirsizOlumsuz = ADAY.filter((a) => sonuc(a).sonuc === 'belirsiz-olumsuz');
const yanlisKapanirdi = ADAY.filter((a) => ['belirsiz-olumsuz', 'zayif-aday'].includes(sonuc(a).sonuc) && a.acik);
console.log(`  olumsuz sonucun yokluk kaniti sayildigi secenek  ` +
  `${Object.values(SECENEK).filter((o) => o.olumsuz === 'yokluk').length} / ${Object.keys(SECENEK).length}`);
console.log(`  olumsuz cikan ama hicbir sey gostermeyen aday    ${belirsizOlumsuz.length}`);
console.log(`  bunlarin gercekte acik olani                    ` +
  `${belirsizOlumsuz.filter((a) => a.acik).length}`);
console.log(`  olumsuz ve zayif sonuc 'acik degil' okunursa yanlis kapanan aday ` +
  `${yanlisKapanirdi.length}`);
console.log(`  gercekte acik olup kanitlanamayan aday          ${t.kanitlanamayanAcik} / ` +
  `${ADAY.filter((a) => a.acik).length}`);

console.log('\n5. bedel ve iz');
console.log(`  toplam dogrulama suresi     ${t.dk} dk`);
console.log(`  hedefte uretilen kayit      ${t.kayit}`);
console.log(`  hedefte uretilen uyari      ${t.uyari}`);
console.log(`  kapsam disi kaldigi icin hic dokunulmayan hedef ` +
  `${ADAY.filter((a) => a.barindirma === 'yonetilen').length}`);
console.log(`  paylasilan ortamda risk siniri dusurulen hedef  ` +
  `${ADAY.filter((a) => a.barindirma === 'paylasilan').length}`);
```

```
16 aday (9 gercekte acik), 4 dogrulama secenegi, izin verilen en yuksek risk 2

1. secenek turleri
secenek                   risk    dk  kayit  uyari  kosullu    olumsuz
belirti-eslesmesi            0     5      1      0    hayir   belirsiz
yan-etkisiz-dogrulama        1    15      2      1    hayir     yokluk
durum-degistiren             2    30      4      3     evet   belirsiz
kesinti-riskli               3    45      6      5     evet   belirsiz

2. aday basina secilen secenek ve sonuc
aday    gercek  belirti  kosul  barindirma                  secilen             sonuc
c01       acik     evet   evet       kendi    yan-etkisiz-dogrulama             kanit
c02       acik     evet   evet       kendi         durum-degistiren             kanit
c03       acik    hayir   evet       kendi    yan-etkisiz-dogrulama             kanit
c04       acik     evet  hayir       kendi         durum-degistiren  belirsiz-olumsuz
c05       acik     evet   evet  paylasilan        belirti-eslesmesi        guclu-aday
c06       acik    hayir  hayir       kendi         durum-degistiren  belirsiz-olumsuz
c07       acik     evet   evet   yonetilen                        -     dogrulanamadi
c08       acik     evet   evet       kendi        belirti-eslesmesi        guclu-aday
c09     kapali     evet   evet       kendi    yan-etkisiz-dogrulama     yokluk-kaniti
c10     kapali     evet   evet       kendi         durum-degistiren  belirsiz-olumsuz
c11     kapali    hayir   evet       kendi    yan-etkisiz-dogrulama     yokluk-kaniti
c12     kapali     evet   evet       kendi        belirti-eslesmesi        guclu-aday
c13     kapali     evet   evet  paylasilan    yan-etkisiz-dogrulama     yokluk-kaniti
c14     kapali    hayir   evet       kendi        belirti-eslesmesi        zayif-aday
c15     kapali     evet   evet   yonetilen                        -     dogrulanamadi
c16       acik    hayir   evet       kendi        belirti-eslesmesi        zayif-aday

3. cercevenin urettigi karar dagilimi
  kanit                3
  yokluk-kaniti        3
  belirsiz-olumsuz     3
  guclu-aday           3
  zayif-aday           2
  dogrulanamadi        2

4. neyi kanitlamaz
  olumsuz sonucun yokluk kaniti sayildigi secenek  1 / 4
  olumsuz cikan ama hicbir sey gostermeyen aday    3
  bunlarin gercekte acik olani                    2
  olumsuz ve zayif sonuc 'acik degil' okunursa yanlis kapanan aday 3
  gercekte acik olup kanitlanamayan aday          6 / 9

5. bedel ve iz
  toplam dogrulama suresi     220 dk
  hedefte uretilen kayit      31
  hedefte uretilen uyari      17
  kapsam disi kaldigi icin hic dokunulmayan hedef 2
  paylasilan ortamda risk siniri dusurulen hedef  2
```

## Neyi Kanıtlar

Üçüncü blok altı sonuç türünü sayıyor ve ilk satır beklenenden küçüktür: on altı adayın **üçü**
kanıta dönüşüyor. Dokuz aday gerçekte açıktır; çerçeve bunların üçte birini kanıtlar.

Kanıta dönenlerin ikisi yan etkisiz doğrulamayla, biri durum değiştiren bir denemeyle
belirlenmiştir. Bu dağılım yön verir: kesin kanıt üretmenin en ucuz yolu deneme değil, **koşul
sınamasıdır**. On beş dakika, iki kayıt, bir uyarı karşılığında hem kanıt hem de — açık değilse —
yokluk kanıtı üretir. Durum değiştiren bir deneme aynı kesinliği otuz dakika, dört kayıt ve üç
uyarı karşılığında verir ve olumsuz döndüğünde hiçbir şey söylemez.

İkinci satır, kursta az konuşulan bir ürünü sayıyor: **üç yokluk kanıtı**. Bu üç aday listeden
kesin olarak düşer; düzeltme ekibine gitmez ve bir daha bakılmaz. Önceki derslerde elenen yanlış
pozitiflerle aynı işi görürler, farkı gerekçenin belirlenimci olmasıdır.

## Neyi Kanıtlamaz

Dördüncü blok bu dersin asıl konusudur. Dört doğrulama seçeneğinden yalnız **biri** olumsuz
sonucunu yokluk kanıtı sayabilir. Kalan üçünde olumsuz sonuç bir bilgi taşımaz.

Üç aday olumsuz döndü ve **ikisi gerçekte açık**. `c04` ile `c06` için gereken ortam koşulu deneme
sırasında sağlanmamıştı; deneme olumsuz döndü, açık yerinde duruyor. Bunlar rapora "açık
bulunamadı" diye girerse iki gerçek açık kapanır. Doğru satır "doğrulama denendi, olumsuz döndü,
sonuç belirsiz" biçimindedir ve düzeltme önceliğinde adaylık statüsünü korur.

Aynı yanılgının ikinci biçimi zayıf sonuçlardadır. `c16` gerçekte açıktır, pasif belirtisi eşleşmez
ve kesin doğrulama seçeneği kesinti riski taşıdığı için kullanılamaz. Sonuç "zayıf aday"dır. Olumsuz
ve zayıf sonuçların tümü "açık değil" diye okunursa **üç aday yanlış kapanır**.

Toplamda dokuz açık adayın **altısı** kanıtlanamıyor. Nedenleri farklıdır ve raporda ayrı ayrı
yazılır: ikisinde deneme koşulu sağlanmadı, ikisinde risk sınırı kesin seçeneği kapattı, birinde
zaten kesin bir seçenek yok, birinde hedef kapsam dışı. Hiçbiri "açık yok" değildir.

## Zarar Riski ve Kapsam

Beşinci blok bedeli veriyor: 220 dakika, 31 kayıt, 17 uyarı. Uyarı sayısı önceki derslerin
tümünden yüksektir ve nedeni açıktır — kesin kanıt üreten seçeneklerin hepsi hedefe dokunur.

İki hedefe hiç dokunulmadı. Üçüncü tarafın işlettiği bir hizmet üzerinde çalışan iki aday, kapsam
dışı olduğu için hiçbir seçenekle sınanmadı; bunlardan biri gerçekte açıktır ve bulgu olarak değil,
**değerlendirme dışında kalmış risk** olarak raporlanır. Paylaşılan ortamdaki iki hedefte risk
sınırı düşürüldü: aynı ortamdaki başka kiracıları etkileyebilecek her seçenek kapandı ve elde yalnız
belirti eşleşmesi kaldı.

Tabloda görünmeyen bir risk kalemi daha vardır ve kapsam denetiminin neden her denemeden önce
programlı çalıştırıldığını açıklar. Bir denemenin hedefi elle ya da bir listeden gelir; liste eski,
bir kayıt taşınmış ya da bir adres yeniden atanmış olabilir. Yanlış hedefe yöneltilmiş bir deneme,
niyet ne olursa olsun yetkisiz erişimdir ve verilen yetkiyi geçersiz kılar. Hedefin kimliğinin
denemeden hemen önce doğrulanması bu yüzden bir alışkanlık değil, bir denetim adımıdır.

Kesinti riskli seçenek katılım kuralları izin vermediği için hiçbir adayda kullanılmadı. Bu, ölçüm
ağı gibi bir ortamda olağan karardır: bir sayaç toplayıcının hizmet dışı kalması saha ekiplerinin
işini durdurur ve faturalama döngüsünü kaydırır. Kanıtın bedeli, kanıtladığı şeyin değerinden büyük
olduğunda deneme yapılmaz — adayın adaylıkla kalması kabul edilir ve gerekçesi yazılır.

## Özet

- On altı adayın dokuzu gerçekte açıktır; çerçeve bunların yalnız üçünü kanıtlar. Kesin kanıtın en
  ucuz yolu deneme değil, belirlenimci koşul sınamasıdır.
- Dört doğrulama seçeneğinden yalnız birinin olumsuz sonucu açığın yokluğunu gösterir; kalan üçünde
  olumsuz sonuç hiçbir bilgi taşımaz.
- Olumsuz dönen üç adayın ikisi gerçekte açıktır; olumsuz ve zayıf sonuçlar "açık değil" diye
  okunursa üç aday yanlış kapanır.
- Kanıtlanamayan altı açık adayın gerekçesi ayrı ayrı yazılır: koşul sağlanmadı, risk sınırı
  kapattı, kesin seçenek yok, hedef kapsam dışı. Hiçbiri "açık yok" değildir.
- Üç yokluk kanıtı listeden kesin olarak düşer ve elenen yanlış pozitiflerle aynı işi görür.
- Doğrulama 220 dakika, 31 kayıt ve 17 uyarı üretir; iki hedefe kapsam nedeniyle hiç dokunulmaz,
  ikisinde risk sınırı düşürülür ve kesinti riskli seçenek hiçbir adayda kullanılmaz.

## Sonraki Adım

Bu derste ölçülen her şey — kaç istek, hangi risk sınıfı, hangi seçenek, ne kadar uyarı — bir
yerde öğrenilmiş olmalıdır. Doğrulama sırasında ilk kez denenen bir adım, hem hedefe hem de
değerlendirmenin kendisine risk yükler. Alıştırmanın yeri gerçek bir kurum ağı değildir.

Sonraki ders yasal alıştırma ortamlarını kapsam cinsinden ele alır ve konuyu kapatır. Ölçülen şey
bu ortamların ne öğrettiği değil, **ne öğretmediğidir**: yedi dersin ürettiği beceri listesi
çıkarılır, her ortamın kapsadığı kalem sayılır ve hiçbir ortamın kapsamadığı kalemler ayrı yazılır.
Gerçek bir değerlendirmeyle laboratuvar arasındaki farkın kaç kalemde durduğu, bu konunun son
sayısıdır.
