---
title: 'Saldırı Yaşam Döngüsü'
source: 'https://academia.sh/tr/kurslar/saldiri-teknikleri/saldiri-yasam-dongusu'
course: 'Saldırı Teknikleri ve Tehdit Ortamı'
language: tr
updated: '2026-08-17T18:08:33+00:00'
license: 'CC BY-SA 4.0'
---

# Saldırı Yaşam Döngüsü

Kursun ölçü biriminin kurulması: sekiz adımın önkoşullarıyla yazılması, beş ortam koşulundan birinin kaldırılmasının zinciri kesin olarak kesmesi, kırılmadan sona varılırsa 48 kalem erişilirken beklenen kalemin 20,14 olması, hiç kırılmadan sona varan payın (0,2384) beklenen toplamın yarısından fazlasını taşıması, ortam koşulu kaldırmanın 20,14 ile 1,67 kalem arasında değişen kesin kazanç vermesi ve aynı denetim kaleminin sekiz adıma tek tek konmasının 7,05'ten 0,58 kaleme inen bir erken kırma kazancı üretmesi.

İki ders zinciri iki ayrı eksenden ölçtü: aktörün yeteneği kaç adım geçildiğini, adımın süresi kaç
fırsat penceresi doğduğunu belirledi. Her ikisinde de zincirin kendisi verili kabul edildi — sekiz
adım, sabit sıra, her adım bir öncekinin ardından.

Zincirin asıl yapısı sıralamada değil **önkoşullarda**dır. Bir adım neye ihtiyaç duyar, o ihtiyaç
karşılanmazsa sonraki adım neden olmaz. Bu ders zinciri önkoşullarıyla kurar ve kursun ölçü
birimini tanımlar: **erken kırma kazancı**, aynı savunmanın zincirde bir adım öne alınmasıyla
kurtarılan kalem sayısıdır.

## Adım Neye İhtiyaç Duyar

Aşağıdaki yapı bir **modeldir**; adımın nasıl yapıldığı hiçbir yerde yazılmaz, yalnız **neye
ihtiyaç duyduğu** ve **neyi sağlar hale getirdiği** yazılır. Kurgu ölçüm ağı üzerinde çalışılır.

**TM7:** ortam koşulları saldırganın üretmediği, savunmanın kaldırabildiği koşullardır. **TM8:**
her adım önkoşulları sağlandığında yürünebilir; denetim varsa bir yakalama olasılığıyla zinciri
orada kırar. **TM9:** bir adım ancak bütün önkoşulları sağlanmışsa yürünebilir; ilk sağlanamayan
adım zinciri yapısal olarak keser ve sonraki adımların hiçbiri yürünemez.

```js
// tehdit/dongu.mjs — saldiri yasam dongusunun onkosul modeli: burada calisan bir saldiri adimi
// yoktur. Her adim "neye ihtiyac duydugu" (onkosul) ve "neyi saglar hale getirdigi" (uretir)
// ile yazilir; adimin nasil yapildigi yazilmaz. Rastgelelik yok, bekleyen deger hesaplanir.

// TM7: ortam kosullari, saldirganin uretmedigi, savunmanin kaldirabildigi kosullardir.
export const ORTAM = ["dis-gorunur-kalem", "acik-giris-ucu", "yerel-zayif-yapilandirma",
  "duz-ag", "dis-cikis-yolu"];

// TM8: her adim onkosullari saglandiginda yurunebilir; denetim varsa `yakalama` olasiligiyla
// zinciri orada kirar. `kalem`, adim tamamlaninca erisilmis olan birikimli kurgu kalem sayisi.
export const ADIM = [
  { ad: "kesif", onkosul: ["dis-gorunur-kalem"], uretir: "hedef-listesi",
    denetim: null, yakalama: 0, kalem: 0 },
  { ad: "ilk-erisim", onkosul: ["hedef-listesi", "acik-giris-ucu"], uretir: "gecerli-kimlik",
    denetim: "kimlik-gunlugu", yakalama: 0.15, kalem: 1 },
  { ad: "yurutme", onkosul: ["gecerli-kimlik"], uretir: "kod-calistirma",
    denetim: "surec-kaydi", yakalama: 0.25, kalem: 2 },
  { ad: "kalicilik", onkosul: ["kod-calistirma"], uretir: "yeniden-baslatmada-surer",
    denetim: "baslatma-envanteri", yakalama: 0.2, kalem: 3 },
  { ad: "yetki-yukseltme", onkosul: ["kod-calistirma", "yerel-zayif-yapilandirma"],
    uretir: "yonetici-yetkisi", denetim: "yetki-degisikligi", yakalama: 0.15, kalem: 9 },
  { ad: "yanal-gecis", onkosul: ["yonetici-yetkisi", "duz-ag"], uretir: "komsu-erisimi",
    denetim: null, yakalama: 0, kalem: 26 },
  { ad: "toplama", onkosul: ["komsu-erisimi"], uretir: "toplu-veri",
    denetim: null, yakalama: 0, kalem: 41 },
  { ad: "sizdirma", onkosul: ["toplu-veri", "dis-cikis-yolu"], uretir: "etki",
    denetim: "cikis-hacmi", yakalama: 0.45, kalem: 48 },
];

// TM9: bir adim ancak butun onkosullari saglanmissa yurunebilir; ilk saglanamayan adim
// zinciri yapisal olarak keser ve sonraki adimlarin hicbiri yurunemez.
export function yurunebilir(kaldirilan = []) {
  const saglanan = new Set(ORTAM.filter((k) => !kaldirilan.includes(k)));
  let n = 0;
  for (const s of ADIM) {
    if (!s.onkosul.every((k) => saglanan.has(k))) break;
    saglanan.add(s.uretir);
    n++;
  }
  return n;
}

// Beklenen kalem: zincir i. adimda kirilirsa o ana kadar erisilmis kalem kalem(i-1)'dir.
// Kirilma olasiligi, onceki adimlarin kacirma olasiliklarinin carpimi ile o adimin yakalamasidir.
export function beklenenKalem(kaldirilan = [], ek = {}) {
  const son = yurunebilir(kaldirilan);
  let kalan = 1, toplam = 0;
  for (let i = 0; i < son; i++) {
    const p = 1 - (1 - ADIM[i].yakalama) * (1 - (ek[ADIM[i].ad] || 0));
    toplam += kalan * p * (i === 0 ? 0 : ADIM[i - 1].kalem);
    kalan *= 1 - p;
  }
  return toplam + kalan * (son === 0 ? 0 : ADIM[son - 1].kalem);
}
```

```js
// tehdit/kazanc.mjs — zincir hangi halkada kirilabiliyor ve erken kirmanin kazanci kac kalem.
import { ORTAM, ADIM, yurunebilir, beklenenKalem } from "./dongu.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 TABAN = beklenenKalem();
const denetimsiz = ADIM.filter((s) => !s.denetim);

console.log(`${ADIM.length} adim, ${ORTAM.length} ortam kosulu; ` +
  `${ADIM.length - denetimsiz.length} adimda denetim var, ${denetimsiz.length} adim ` +
  `hicbir denetimin gormedigi adim (${denetimsiz.map((s) => s.ad).join(", ")}); ` +
  `kirilmadan erisilen kalem ${ADIM.at(-1).kalem}, beklenen kalem ${TABAN.toFixed(2)}`);

const A = [-18, -42, -26, 20, 10, 7];
console.log("\n1. her adim neye ihtiyac duyuyor, ne saglar hale getiriyor");
yaz(A, "adim", "onkosul", "uretir", "denetim", "yakalama", "kalem");
for (const s of ADIM)
  yaz(A, s.ad, s.onkosul.join(" + "), s.uretir, s.denetim || "-",
    s.denetim ? s.yakalama.toFixed(2) : "-", s.kalem);

const B = [-26, -18, 12, 15, 11];
console.log("\n2. yapisal kirma: bir ortam kosulu kaldirilirsa");
yaz(B, "kaldirilan kosul", "imkansiz adim", "yurunen adim", "beklenen kalem", "kazanc");
for (const k of ORTAM) {
  const n = yurunebilir([k]), e = beklenenKalem([k]);
  yaz(B, k, ADIM[n].ad, n, e.toFixed(2), (TABAN - e).toFixed(2));
}

const C = [-18, 10, 14, 17, 13, 13];
console.log("\n3. olasilikli kirma: zincir hangi adimda kiriliyor");
yaz(C, "adim", "yakalama", "buraya varan", "burada kirilan", "o ana kalem", "katki");
let kalan = 1, toplam = 0;
for (let i = 0; i < ADIM.length; i++) {
  const p = ADIM[i].yakalama, kirilan = kalan * p, once = i === 0 ? 0 : ADIM[i - 1].kalem;
  toplam += kirilan * once;
  yaz(C, ADIM[i].ad, p.toFixed(2), kalan.toFixed(4), kirilan.toFixed(4), once,
    (kirilan * once).toFixed(3));
  kalan -= kirilan;
}
console.log(`hic kirilmadan sona varan pay ${kalan.toFixed(4)} x ${ADIM.at(-1).kalem} kalem = ` +
  `${(kalan * ADIM.at(-1).kalem).toFixed(3)}; beklenen kalem toplami ` +
  `${(toplam + kalan * ADIM.at(-1).kalem).toFixed(2)}`);

const D = [-18, 10, 16, 10, 23];
console.log("\n4. erken kirma kazanci: ayni denetim kalemi (yakalama 0.35) hangi adima konursa");
yaz(D, "konan adim", "onceki", "beklenen kalem", "kazanc", "bir onceki adima gore");
let oncekiKazanc = null;
for (const s of ADIM) {
  const e = beklenenKalem([], { [s.ad]: 0.35 }), kazanc = TABAN - e;
  yaz(D, s.ad, s.denetim ? s.yakalama.toFixed(2) : "yok", e.toFixed(2), kazanc.toFixed(2),
    oncekiKazanc === null ? "-" : (kazanc - oncekiKazanc).toFixed(2));
  oncekiKazanc = kazanc;
}
const enIyi = ADIM.map((s) => ({ ad: s.ad, k: TABAN - beklenenKalem([], { [s.ad]: 0.35 }) }))
  .sort((x, y) => y.k - x.k);
console.log(`en yuksek kazanc ${enIyi[0].ad} (${enIyi[0].k.toFixed(2)} kalem), en dusuk ` +
  `${enIyi.at(-1).ad} (${enIyi.at(-1).k.toFixed(2)}); denetimsiz uc adimin en iyisi ` +
  `${enIyi.find((x) => denetimsiz.some((s) => s.ad === x.ad)).ad}`);
```

```
8 adim, 5 ortam kosulu; 5 adimda denetim var, 3 adim hicbir denetimin gormedigi adim (kesif, yanal-gecis, toplama); kirilmadan erisilen kalem 48, beklenen kalem 20.14

1. her adim neye ihtiyac duyuyor, ne saglar hale getiriyor
adim              onkosul                                   uretir                                 denetim  yakalama  kalem
kesif             dis-gorunur-kalem                         hedef-listesi                                -         -      0
ilk-erisim        hedef-listesi + acik-giris-ucu            gecerli-kimlik                  kimlik-gunlugu      0.15      1
yurutme           gecerli-kimlik                            kod-calistirma                     surec-kaydi      0.25      2
kalicilik         kod-calistirma                            yeniden-baslatmada-surer    baslatma-envanteri      0.20      3
yetki-yukseltme   kod-calistirma + yerel-zayif-yapilandirma yonetici-yetkisi             yetki-degisikligi      0.15      9
yanal-gecis       yonetici-yetkisi + duz-ag                 komsu-erisimi                                -         -     26
toplama           komsu-erisimi                             toplu-veri                                   -         -     41
sizdirma          toplu-veri + dis-cikis-yolu               etki                               cikis-hacmi      0.45     48

2. yapisal kirma: bir ortam kosulu kaldirilirsa
kaldirilan kosul          imkansiz adim     yurunen adim beklenen kalem     kazanc
dis-gorunur-kalem         kesif                        0           0.00      20.14
acik-giris-ucu            ilk-erisim                   1           0.00      20.14
yerel-zayif-yapilandirma  yetki-yukseltme              4           2.00      18.14
duz-ag                    yanal-gecis                  5           4.60      15.54
dis-cikis-yolu            sizdirma                     7          18.47       1.67

3. olasilikli kirma: zincir hangi adimda kiriliyor
adim                yakalama  buraya varan   burada kirilan  o ana kalem        katki
kesif                   0.00        1.0000           0.0000            0        0.000
ilk-erisim              0.15        1.0000           0.1500            0        0.000
yurutme                 0.25        0.8500           0.2125            1        0.212
kalicilik               0.20        0.6375           0.1275            2        0.255
yetki-yukseltme         0.15        0.5100           0.0765            3        0.229
yanal-gecis             0.00        0.4335           0.0000            9        0.000
toplama                 0.00        0.4335           0.0000           26        0.000
sizdirma                0.45        0.4335           0.1951           41        7.998
hic kirilmadan sona varan pay 0.2384 x 48 kalem = 11.444; beklenen kalem toplami 20.14

4. erken kirma kazanci: ayni denetim kalemi (yakalama 0.35) hangi adima konursa
konan adim            onceki  beklenen kalem    kazanc  bir onceki adima gore
kesif                    yok           13.09      7.05                      -
ilk-erisim              0.15           13.09      7.05                   0.00
yurutme                 0.25           13.39      6.75                  -0.30
kalicilik               0.20           13.61      6.53                  -0.22
yetki-yukseltme         0.15           13.79      6.35                  -0.18
yanal-gecis              yok           14.70      5.44                  -0.91
toplama                  yok           17.28      2.86                  -2.58
sizdirma                0.45           19.56      0.58                  -2.28
en yuksek kazanc kesif (7.05 kalem), en dusuk sizdirma (0.58); denetimsiz uc adimin en iyisi kesif
```

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

## Önkoşul Sütunu Zincirin Kendisidir

Birinci tablonun ikinci sütunu bu dersin taşıyıcısıdır. Her adım ne yaptığıyla değil, **neyin var
olmasını gerektirdiğiyle** yazılır. Yürütme adımı geçerli kimlik ister; kalıcılık adımı kod
çalıştırma ister; yanal geçiş hem yönetici yetkisi hem düz ağ ister. Adımın hangi yöntemle
yapıldığı burada hiç geçmez ve geçmesi de gerekmez — savunma tarafının kararı için gereken tek
bilgi ihtiyaç listesidir.

Üçüncü sütun eşleşmeyi kapatır: her adım bir koşul üretir ve o koşul sonraki adımın önkoşulunda
yer alır. Zincir bu yüzden bir sıra değil, bir **bağımlılık dizisidir**. Sıra bozulamaz, çünkü
her adımın girdi koşulu bir öncekinden gelir.

Önkoşullar iki kaynaktan doldurulur. Bir kısmı zincirin kendi ürettiği koşullardır; kalanı
**ortam koşullarıdır** — dışarıdan görünen kalem, açık giriş ucu, yerel zayıf yapılandırma, düz ağ
ve dış çıkış yolu. Beş ortam koşulunun hiçbirini saldıran taraf üretmez; hepsi savunma tarafının
elindedir. Bu ayrım bir sonraki tablonun tamamını belirler.

## İki Ayrı Kırma Biçimi

Zincir iki şekilde kırılabilir ve ikisi ölçü olarak birbirine benzemez.

**Yapısal kırma** bir önkoşulu ortadan kaldırır. İkinci tablo beş ortam koşulunu tek tek kaldırır
ve hangi adımın imkânsız hale geldiğini yazar. Dışarıdan görünen kalem kaldırılırsa keşif adımı
yürünemez ve zincir hiç başlamaz; açık giriş ucu kaldırılırsa ilk erişim yürünemez. Her iki
durumda beklenen kalem **0,00**'dır ve kazanç 20,14 kalemin tamamıdır. Yerel zayıf yapılandırmanın
kaldırılması zinciri dördüncü adımdan sonra keser (2,00 kalem), düz ağın kaldırılması beşinci
adımdan sonra (4,60), dış çıkış yolunun kaldırılması ise yedinci adımdan sonra — beklenen kalem
**18,47** ve kazanç yalnız 1,67.

Aynı türden bir hamlenin değeri, zincirin neresinde uygulandığına göre **on iki kat** değişir.
Dış çıkış yolunu kapatmak, toplamanın tamamlanmasına izin verdiği için 41 kalemi zaten kaybettirmiş
olur.

**Olasılıklı kırma** ise adımı yürünebilir bırakır ve bir denetimin görmesini bekler. Üçüncü tablo
bunu yürütür: her adıma varan pay, orada kırılan pay ve o ana kadar erişilmiş kalem. Beş denetimin
yakalama oranları 0,15 ile 0,45 arasındadır; bunların hiçbiri kesin değildir. Zincirin sonuna hiç
kırılmadan varan pay **0,2384**'tür ve tek başına 11,44 kalem taşır — beklenen 20,14 kalemin
yarısından fazlası. **Beş denetimli bir zincirde en büyük tek kalem, hiç kırılmama payıdır.**

Beklenen kalem sayısı bir tahmin değil, girdilerden türetilen bir toplamdır: her satırın katkısı
o adımda kırılma payı ile o ana kadar erişilmiş kalemin çarpımıdır ve sekiz satırın toplamı
20,14'tür. Model iki şeyi varsayar — denetimlerin birbirinden bağımsız olduğu ve bir denetimin
gördüğü anda zinciri durdurduğu. İkisi de iyimser varsayımlardır; gerçek bir kurulumda uyarının
görülmesi ile yanıt verilmesi arasında geçen süre kalem sayısını daha da büyütür. Bu yüzden 20,14
sayısı bir üst sınır değil, **alt sınırdır**.

## Denetimsiz Üç Adım

Üçüncü tablonun en dikkat çekici satırları yanal geçiş ve toplamadır. İkisinin de yakalama oranı
0,00'dır, ikisi de hiçbir zinciri kırmaz — ama ikisi zincirin kalem sayısını 3'ten **41'e**
çıkarır. Kalem artışının %79'u, hiçbir denetimin bakmadığı iki adımda olur.

Bu, savunma tarafında sık görülen bir dağılımın sonucudur. Denetimler kaydı bol olan adımlara
konur: kimlik girişleri, süreç başlatmaları, yetki değişiklikleri. Yanal geçiş ve toplama adımları
kendi başlarına yeni bir kayıt türü doğurmaz; zaten var olan yetkilerle, zaten var olan yollardan
yürünür. **Denetim, olayın gürültüsünü izler; kalem ise sessiz adımlarda birikir.**

Keşif adımı üçüncü denetimsiz adımdır ama ters uçtadır: kalem sayısını hiç artırmaz, çünkü henüz
hiçbir şeye dokunulmamıştır. Denetimsizlik aynı sözcüktür, sonucu iki farklı yerde iki farklı
şeydir.

## Erken Kırma Kazancı

Dördüncü tablo bu kursun ölçü birimini tanımlar. Elde tek bir denetim kalemi vardır — yakalama
oranı 0,35 — ve sekiz adıma tek tek konur. Her satırda beklenen kalem yeniden hesaplanır; kazanç,
tabandan olan farktır.

Kazanç sırası şudur: 7,05, 7,05, 6,75, 6,53, 6,35, 5,44, 2,86, 0,58. **Aynı denetim, zincirin
başında sonundakinin on iki katı kadar kalem kazandırır.** İlk iki satırın eşitliği yapısaldır:
keşifte ya da ilk erişimde kırmak aynı sonucu verir, çünkü ikisinde de henüz hiçbir kaleme
dokunulmamıştır.

Son sütun bir adım gecikmenin bedelini ayrı ayrı verir. Zincirin ilk beş adımında bu bedel küçüktür
— 0,00 ile 0,30 arasında. Yanal geçişte 0,91, toplamada **2,58**, sızdırmada 2,28'dir. Kayıp
düzgün dağılmaz: ilk beş adımda gecikmek neredeyse bedava, beşinciden sonra her adım bir öncekinin
üç katıdır. Sıralama tesadüf değildir; kalem sayısı da tam orada 3'ten 26'ya sıçrar.

Denetimsiz üç adım arasında en iyi seçim keşiftir (7,05), en kötüsü toplamadır (2,86). Elde tek
bir denetim kalemi olan bir ekip için karar burada yazılıdır: hiç bakılmayan üç adımdan **en
erkenine** koymak, en geç olanına koymanın 2,5 katı kalem kurtarır.

Yine de dördüncü tablonun en yüksek satırı bile ikinci tablonun en düşük satırına ancak yaklaşır.
En iyi denetim yerleştirmesi 7,05 kalem kazandırır; en zayıf yapısal kırma 1,67, ama en güçlüsü
**20,14** kazandırır. Bir önkoşulu kaldırmak kesin, bir denetim koymak olasılıklıdır. Ölçü birimi
aynıdır, büyüklük sınıfı değildir.

## Özet

- Saldırı yaşam döngüsü adımların nasıl yapıldığıyla değil, **neye ihtiyaç duyduklarıyla** yazılır;
  her adım bir koşul üretir ve o koşul sonraki adımın önkoşuludur.
- Beş önkoşul saldıranın üretmediği ortam koşullarıdır; birini kaldırmak zinciri **kesin** olarak
  keser ve kazanç 20,14 ile 1,67 kalem arasında değişir — aynı hamle zincirin başında on iki kat
  değerlidir.
- Beş denetimin yakalama oranı 0,15 ile 0,45 arasındadır; zincirin sonuna hiç kırılmadan varan pay
  0,2384'tür ve 11,44 kalem taşır, yani beklenen 20,14 kalemin yarısından fazlası.
- Üç adım hiçbir denetimin görmediği adımdır; ikisi (yanal geçiş, toplama) kalem sayısını 3'ten
  41'e çıkarır, yani artışın %79'unu taşır.
- Erken kırma kazancı bu kursun ölçü birimidir: aynı denetim kalemi sekiz adıma tek tek konduğunda
  7,05'ten 0,58 kaleme inen bir kazanç dizisi verir.
- Bir adım geç kırmanın bedeli ilk beş adımda 0,30 kalemin altındadır, altıncıdan sonra 0,91, 2,58
  ve 2,28 kalemdir; kalem sayısının 3'ten 26'ya sıçradığı yerde bedel de sıçrar.

## Sonraki Adım

Bu ders sekiz adımı ve her adımın karşısındaki tek denetimi ölçtü. Gerçekte bir adımın karşısında
tek bir denetim değil, o adımın **kaç ayrı biçimde** yürünebildiği kadar denetim gerekir. Yanal
geçiş bir satırdır burada; oysa altında birbirinden bağımsız birçok teknik vardır ve bir denetim
bunların yalnız bir bölümünü görür.

Saldırgan davranışını sınıflandıran çalışmalar tam bu boşluğu doldurmak için kurulmuştur: adımlar
sütun, teknikler satır olarak dizilir ve her hücreye bir denetim eşlenir. Sonraki ders bu yapıyı
kurar ve tek soruyu sorar: kapsama yüzdesi yükselirken **hiç denetimi olmayan adım** sayısı
düşüyor mu, yoksa kapsama yalnız zaten görülen adımlarda mı büyüyor.
