---
title: 'Saldırgan Davranış Sınıflandırmaları'
source: 'https://academia.sh/tr/kurslar/saldiri-teknikleri/saldirgan-davranis-siniflandirmalari'
course: 'Saldırı Teknikleri ve Tehdit Ortamı'
language: tr
updated: '2026-08-17T18:08:33+00:00'
license: 'CC BY-SA 4.0'
---

# Saldırgan Davranış Sınıflandırmaları

Tekniklerin adımlara eşlenmesi ve hiç denetimi olmayan adımın sayılması: 8 taktik ile 27 teknik sınıfının 10.800 zincir üretmesi, beş denetim kaleminin tekniklerin %40,7'sini örtmesi, üç adımın hiçbir denetimin görmediği adım kalması, zincirlerin %80'inin ilk iki adımda kırılmasına karşın 72 zincirin (%0,67) hiçbir halkada kırılamaması, en geç kırılan %1,33'lük dilimin ortalama kalemin %42,6 payını taşıması ve aynı kapsama yüzdesini (%51,9) veren iki müdahalenin 1,39 ile 0,47 kalem gibi üç kat farklı kazanç üretmesi.

Önceki 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ş orada bir satırdı; altında birbirinden bağımsız birçok teknik sınıfı 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şluk için kurulmuştur. Yapı her zaman
aynıdır: **adımlar sütun, teknik sınıfları satır** olur ve her hücreye bir denetim eşlenir. Bu ders
o yapıyı kurar ve tek soruyu sorar: kapsama yüzdesi yükselirken **hiç denetimi olmayan adım**
sayısı düşüyor mu, yoksa kapsama zaten görülen adımlarda mı büyüyor.

## Matris Bir Adım–Teknik Eşlemesidir

Aşağıdaki yapı bir **modeldir**: teknikler yalnız sınıf adıyla ve hangi denetimin gördüğü
bilgisiyle yazılır; hiçbirinin nasıl yürütüldüğü geçmez. Kurgu ölçüm ağı üzerinde çalışılır.

**TM10:** her adım (taktik) altında birden çok teknik sınıfı vardır ve bir zincir her adımdan bir
teknik seçer. **TM11:** bir denetim kalemi belirli teknikleri görür; görmediği teknik üzerinden
yürünen adım o zincirde kırılamaz. **TM12:** zincirin kırılabildiği en erken halka, seçilen
tekniklerden ilk görülenin bulunduğu adımdır; hiçbiri görülmüyorsa zincir kırılamaz.

```js
// tehdit/matris.mjs — taktik ve teknik matrisinin modeli: satirlar teknik sinifi, sutunlar
// zincir adimi. Burada calisan bir teknik yoktur; teknikler yalnizca sinif adiyla ve hangi
// denetimin gordugu bilgisiyle yazilir. Rastgelelik yok.

// TM10: her adim (taktik) altinda birden cok teknik sinifi vardir; bir zincir her adimdan
// bir teknik secer. `kalem`, adim tamamlaninca erisilmis birikimli kurgu kalem sayisidir.
export const TAKTIK = [
  { ad: "kesif", kalem: 0, teknik: ["acik-kaynak-derleme", "dis-yuzey-listeleme",
    "calisan-listesi-toplama", "hizmet-parmak-izi"] },
  { ad: "ilk-erisim", kalem: 1, teknik: ["gecerli-kimlikle-giris", "ekli-dosya-yoluyla",
    "dis-servis-istismari", "tedarik-baglantisi", "cikarilabilir-ortam"] },
  { ad: "yurutme", kalem: 2, teknik: ["yorumlayici-cagrisi", "zamanlanmis-tetikleme",
    "kullanici-etkilesimi"] },
  { ad: "kalicilik", kalem: 3, teknik: ["acilis-girisi", "servis-tanimi", "zamanlanmis-gorev",
    "hesap-olusturma", "yapilandirma-kancasi"] },
  { ad: "yetki-yukseltme", kalem: 9, teknik: ["yanlis-izin-kullanma", "belirtec-devralma",
    "yol-degistirme"] },
  { ad: "yanal-gecis", kalem: 26, teknik: ["uzak-servis-oturumu", "paylasima-yazma",
    "kimlik-yeniden-kullanimi"] },
  { ad: "toplama", kalem: 41, teknik: ["yerel-veri-toplama", "paylasim-tarama"] },
  { ad: "sizdirma", kalem: 48, teknik: ["sifreli-kanal", "bolunmus-aktarim"] },
];

// TM11: bir denetim kalemi belirli teknikleri gorur; gormedigi teknik uzerinden yurunen adim
// o zincirde kirilamaz.
export const DENETIM = {
  "kimlik-gunlugu": ["gecerli-kimlikle-giris", "dis-servis-istismari", "hesap-olusturma"],
  "surec-kaydi": ["yorumlayici-cagrisi", "zamanlanmis-tetikleme"],
  "baslatma-envanteri": ["acilis-girisi", "servis-tanimi", "zamanlanmis-gorev"],
  "yetki-degisikligi": ["yanlis-izin-kullanma", "belirtec-devralma"],
  "cikis-hacmi": ["sifreli-kanal"],
};

export const gorulenKume = (ek = {}) =>
  new Set(Object.values({ ...DENETIM, ...ek }).flat());
export const TEKNIK_SAYISI = TAKTIK.reduce((t, k) => t + k.teknik.length, 0);
export const ZINCIR_SAYISI = TAKTIK.reduce((t, k) => t * k.teknik.length, 1);

// TM12: bir zincir her taktikten bir teknik secer; zincirin kirilabildigi en erken halka,
// secilen tekniklerden ilk gorulenin bulundugu adimdir. Hicbiri gorulmuyorsa zincir kirilamaz.
export function dagilim(ek = {}) {
  const g = gorulenKume(ek), sayim = new Array(TAKTIK.length + 1).fill(0);
  const yuru = (i, ilk) => {
    if (i === TAKTIK.length) return sayim[ilk === -1 ? TAKTIK.length : ilk]++;
    for (const t of TAKTIK[i].teknik) yuru(i + 1, ilk === -1 && g.has(t) ? i : ilk);
  };
  yuru(0, -1);
  return sayim;
}
export const kalemOnce = (i) => (i === 0 ? 0 : TAKTIK[i - 1].kalem);
export function ortalamaKalem(ek = {}) {
  const s = dagilim(ek);
  return s.reduce((t, n, i) =>
    t + n * (i === TAKTIK.length ? TAKTIK.at(-1).kalem : kalemOnce(i)), 0) / ZINCIR_SAYISI;
}
```

```js
// tehdit/kapsama.mjs — kapsama yuzdesi yukselirken hic denetimi olmayan adim sayisi dusuyor mu.
import { TAKTIK, DENETIM, gorulenKume, TEKNIK_SAYISI, ZINCIR_SAYISI, dagilim, kalemOnce,
  ortalamaKalem } from "./matris.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 G = gorulenKume();
const ortulen = TEKNIK_SAYISI - TAKTIK.reduce((t, k) =>
  t + k.teknik.filter((x) => !G.has(x)).length, 0);
const bosTaktik = TAKTIK.filter((k) => k.teknik.every((x) => !G.has(x)));

console.log(`${TAKTIK.length} taktik x ${TEKNIK_SAYISI} teknik, ` +
  `${Object.keys(DENETIM).length} denetim kalemi; ortulen teknik ${ortulen} ` +
  `(%${((ortulen / TEKNIK_SAYISI) * 100).toFixed(1)}), hic denetimi olmayan adim ` +
  `${bosTaktik.length} (${bosTaktik.map((k) => k.ad).join(", ")}); ` +
  `zincir sayisi ${ZINCIR_SAYISI}, ortalama kalem ${ortalamaKalem().toFixed(2)}`);

const A = [-18, 9, 9, 11, 12, 8];
console.log("\n1. matris: her adimda kac teknik, kaci gorulen");
yaz(A, "taktik", "teknik", "gorulen", "gorulmeyen", "kapsama %", "kalem");
for (const k of TAKTIK) {
  const gor = k.teknik.filter((x) => G.has(x)).length;
  yaz(A, k.ad, k.teknik.length, gor, k.teknik.length - gor,
    ((gor / k.teknik.length) * 100).toFixed(1), k.kalem);
}

const B = [-22, 8, 22, 15];
console.log("\n2. denetim kalemi basina gorulen teknik");
yaz(B, "denetim", "teknik", "hangi adim", "matris payi %");
for (const [d, t] of Object.entries(DENETIM)) {
  const adim = [...new Set(t.map((x) => TAKTIK.find((k) => k.teknik.includes(x)).ad))];
  yaz(B, d, t.length, adim.join("/"), ((t.length / TEKNIK_SAYISI) * 100).toFixed(1));
}

const C = [-18, 12, 11, 14, 16];
console.log("\n3. zincirin en erken kirilabilen halkasi");
yaz(C, "ilk gorulen adim", "zincir", "zincir %", "o ana kalem", "kalem katkisi");
const S = dagilim();
for (let i = 0; i <= TAKTIK.length; i++) {
  if (S[i] === 0) continue;
  const kalem = i === TAKTIK.length ? TAKTIK.at(-1).kalem : kalemOnce(i);
  yaz(C, i === TAKTIK.length ? "kirilamiyor" : TAKTIK[i].ad, S[i],
    ((S[i] / ZINCIR_SAYISI) * 100).toFixed(2), kalem,
    ((S[i] * kalem) / ZINCIR_SAYISI).toFixed(2));
}

const D = [-32, 11, 10, 16, 9, 13];
console.log("\n4. bir denetim kalemi daha eklenirse");
yaz(D, "eklenen denetim", "kapsama %", "bos adim", "ortalama kalem", "kazanc", "kirilamayan");
const EK = [
  ["kesif: iki teknik", { yeni: ["acik-kaynak-derleme", "dis-yuzey-listeleme"] }],
  ["ilk-erisim: uc teknigin tamami", { yeni: ["ekli-dosya-yoluyla", "tedarik-baglantisi",
    "cikarilabilir-ortam"] }],
  ["kalicilik: kalan tek teknik", { yeni: ["yapilandirma-kancasi"] }],
  ["yanal-gecis: uc teknigin tamami", { yeni: ["uzak-servis-oturumu", "paylasima-yazma",
    "kimlik-yeniden-kullanimi"] }],
  ["toplama: iki teknigin tamami", { yeni: ["yerel-veri-toplama", "paylasim-tarama"] }],
];
const taban = ortalamaKalem();
for (const [ad, ek] of EK) {
  const g = gorulenKume(ek);
  const ort = TEKNIK_SAYISI - TAKTIK.reduce((t, k) =>
    t + k.teknik.filter((x) => !g.has(x)).length, 0);
  const bos = TAKTIK.filter((k) => k.teknik.every((x) => !g.has(x))).length;
  const o = ortalamaKalem(ek);
  yaz(D, ad, ((ort / TEKNIK_SAYISI) * 100).toFixed(1), bos, o.toFixed(2),
    (taban - o).toFixed(2), dagilim(ek)[TAKTIK.length]);
}
const gec = S[TAKTIK.length - 1] + S[TAKTIK.length];
console.log(`taban: kirilamayan ${S[TAKTIK.length]} zincir; en gec iki satirdaki ${gec} zincir ` +
  `(%${((gec / ZINCIR_SAYISI) * 100).toFixed(2)}) ortalama kalemin ` +
  `%${(((S[TAKTIK.length - 1] * TAKTIK.at(-2).kalem + S[TAKTIK.length] * TAKTIK.at(-1).kalem) /
    ZINCIR_SAYISI / taban) * 100).toFixed(1)} payini tasiyor`);
```

```
8 taktik x 27 teknik, 5 denetim kalemi; ortulen teknik 11 (%40.7), hic denetimi olmayan adim 3 (kesif, yanal-gecis, toplama); zincir sayisi 10800, ortalama kalem 1.39

1. matris: her adimda kac teknik, kaci gorulen
taktik               teknik  gorulen gorulmeyen   kapsama %   kalem
kesif                     4        0          4         0.0       0
ilk-erisim                5        2          3        40.0       1
yurutme                   3        2          1        66.7       2
kalicilik                 5        4          1        80.0       3
yetki-yukseltme           3        2          1        66.7       9
yanal-gecis               3        0          3         0.0      26
toplama                   2        0          2         0.0      41
sizdirma                  2        1          1        50.0      48

2. denetim kalemi basina gorulen teknik
denetim                 teknik            hangi adim  matris payi %
kimlik-gunlugu               3  ilk-erisim/kalicilik           11.1
surec-kaydi                  2               yurutme            7.4
baslatma-envanteri           3             kalicilik           11.1
yetki-degisikligi            2       yetki-yukseltme            7.4
cikis-hacmi                  1              sizdirma            3.7

3. zincirin en erken kirilabilen halkasi
ilk gorulen adim        zincir   zincir %   o ana kalem   kalem katkisi
ilk-erisim                4320      40.00             0            0.00
yurutme                   4320      40.00             1            0.40
kalicilik                 1728      16.00             2            0.32
yetki-yukseltme            288       2.67             3            0.08
sizdirma                    72       0.67            41            0.27
kirilamiyor                 72       0.67            48            0.32

4. bir denetim kalemi daha eklenirse
eklenen denetim                   kapsama %  bos adim  ortalama kalem   kazanc  kirilamayan
kesif: iki teknik                      48.1         2            0.70     0.70           36
ilk-erisim: uc teknigin tamami         51.9         3            0.00     1.39            0
kalicilik: kalan tek teknik            44.4         3            0.80     0.59            0
yanal-gecis: uc teknigin tamami        51.9         2            0.92     0.47            0
toplama: iki teknigin tamami           48.1         2            1.15     0.25            0
taban: kirilamayan 72 zincir; en gec iki satirdaki 144 zincir (%1.33) ortalama kalemin %42.6 payini tasiyor
```

Sayılar **ölçüm** sınıfındadır; girdileri TM10–TM12'dir.

## Kırk Yüzde Kapsamanın İçi

Sekiz adımın altında **27 teknik sınıfı** vardır ve beş denetim kalemi bunların **11'ini** görür —
kapsama %40,7. Tek başına bu sayı bir karar taşımaz; birinci tablo onu adım adım böldüğünde
karar çıkar.

Kapsama düz dağılmaz: kalıcılık adımının beş tekniğinin dördü görülür (%80), yürütme ve yetki
yükseltmenin üçte ikisi görülür, ilk erişimin beşte ikisi. Üç adımda kapsama **sıfırdır** — keşif,
yanal geçiş ve toplama. Bu üç adım, önceki dersteki denetimsiz üç adımın aynısıdır; matris o
gözlemi teknik düzeyinde doğrular ve nedenini yazar: bu adımların hiçbir tekniği beş denetim
kaleminin gördüğü kümede yer almaz.

Matris yapısının bu dersteki işlevi sınıflandırmanın kendisi değildir. Sınıflandırma yalnız
sayılabilir bir ızgara sağlar: her hücre "bu adım bu teknikle yürünebilir mi" sorusuna evet ya da
hayır der, ve her evet hücresine bir denetim eşlenip eşlenmediği ayrıca yazılır. Izgara olmadan
kapsama bir kanaat olarak kalır; ızgarayla birlikte kapsama iki sayının bölümü olur.

İkinci tablo aynı sayıyı denetim tarafından okur. Beş denetimin en genişi üç teknik görür ve
matrisin %11,1'ini kapsar; en darı bir teknik görür, %3,7. İki denetim aynı adımda çakışır: kimlik
günlüğü ile başlatma envanterinin ikisi de kalıcılık adımına düşen birer teknik görür. **Denetim
sayısını artırmak, örtülen adım sayısını artırmak değildir.**

## On Bin Sekiz Yüz Zincir

Adım başına teknik sayıları çarpıldığında **10.800 ayrı zincir** çıkar. Üçüncü tablo her zincirin
kırılabildiği **en erken halkayı** bulur ve zincirleri o halkaya göre gruplar.

Bu çarpım, teknik saymak ile zincir saymak arasındaki farkı yazar. Teknik sayısı toplamsaldır: bir
adıma iki teknik eklemek 27'yi 29'a çıkarır. Zincir sayısı çarpımsaldır: aynı iki teknik toplamayı
ikiden dörde çıkarırsa zincir sayısı 10.800'den 21.600'e çıkar. Kapsama yüzdesi teknik sayısı
üzerinden hesaplandığı için toplamsal, savunmanın karşılaştığı olasılık kümesi ise çarpımsal büyür.
İki ölçünün aynı yönde hareket etmesi için bir neden yoktur.

Dağılım baştan yığılıdır: zincirlerin %40'ı ilk erişimde, %40'ı yürütmede, %16'sı kalıcılıkta
kırılabilir. Toplam %96 ilk üç kırılabilir halkada toplanır ve bu zincirlerde erişilmiş kalem 0, 1
ya da 2'dir. Ortalama kalem **1,39**'dur. Kapsama yüzdesi düşük görünse de kapsamanın **zincirin
başında** durması ortalamayı aşağıda tutar.

Kuyruk ise ters yöndedir. 72 zincir ancak sızdırma adımında kırılabilir — o noktada 41 kaleme
erişilmiştir. Başka 72 zincir **hiçbir halkada kırılamaz**: sekiz adımın sekizinde de görülmeyen
bir teknik seçilmiştir. Bu iki grup zincirlerin yalnız **%1,33'üdür** ama ortalama kalemin
**%42,6 payını** taşır. Kapsama ortalamalarıyla değerlendirilen bir matris bu %1,33'ü hiç görmez.

Kuyruğun bu ağırlığı doğrudan kalem dizisinden gelir. Kalem sayısı adımlar boyunca 0, 1, 2, 3, 9,
26, 41, 48 diye ilerler; ilk dört adımın toplam katkısı 3'tür, son üç adımınki 45. Zincirlerin
büyük çoğunluğu ucuz bölgede kırılırken, kırılamayan azınlık pahalı bölgenin tamamını taşır.

Kırılamayan 72 zincir bu kursta ilk kez ortaya çıkan bir durumdur: zincirin hiçbir halkasında bir
kırma noktası yoktur. Bu durumda ölçü kırmadan **tespite** kayar — soru artık "hangi halkada
kırılır" değil, "olay olduktan sonra hangi kayıttan görülür"dür.

## Aynı Kapsama, Üç Kat Fark

Dördüncü tablo beş ayrı müdahaleyi aynı ölçekte karşılaştırır ve bu dersin asıl bulgusunu verir.

İki satır **tam olarak aynı kapsama yüzdesini** üretir: ilk erişimin üç görülmeyen tekniğini
örtmek ve yanal geçişin üç tekniğini örtmek — her ikisi de kapsamayı %40,7'den **%51,9'a** çıkarır.
Kazançları ise 1,39 ve 0,47 kalemdir; birincisi ötekinin **üç katıdır**. Aynı büyüklükte bir çaba,
aynı yüzde artışı, üç kat farklı sonuç. Fark yalnız çakıştığı adımın zincirdeki sırasından gelir.

İkinci satır daha da keskindir: ilk erişim tamamen örtüldüğünde her zincir birinci adımdan sonra
kırılabilir hale gelir ve ortalama kalem **0,00**'a iner — ama **boş adım sayısı 3'te kalır**.
Kapsama tablosuna bakan bir değerlendirme bu müdahaleyi "hâlâ üç kör adım var" diye eksik bulur;
kalem ölçüsüne bakan bir değerlendirme onu en iyi hamle olarak yazar.

Ters örnek de aynı tablodadır. Yanal geçiş ve toplamanın örtülmesi boş adım sayısını 3'ten 2'ye
indirir — kapsama tablosunda görünen tek iyileşme budur — ve kazançları 0,47 ile 0,25 kalemdir,
listenin en düşük ikisi. **Boş adım sayısını düşürmek ile erken kırma kazancını yükseltmek ayrı
hedeflerdir ve aynı müdahaleyi seçmezler.**

Son sütun üçüncü bir ölçüt getirir: kırılamayan zincir sayısı. Taban 72'dir. Kalıcılığın kalan tek
tekniğini örtmek kapsamayı yalnız %44,4'e çıkarır, boş adım sayısını hiç değiştirmez, ama
kırılamayan zinciri **72'den 0'a** indirir — çünkü o teknik, kırılamayan zincirlerin hepsinin
geçtiği tek ortak boşluktur. Keşifte iki teknik örtmek aynı sayıyı yalnız yarıya indirir. Üç ölçüt
üç ayrı satırı seçer; hangi ölçütün kullanıldığı yazılmadan verilen bir kapsama kararı ölçülmemiş
sayılır.

## Özet

- Saldırgan davranışı sınıflandırmaları adımları sütun, teknik sınıflarını satır yapan bir matris
  kurar: 8 adım, 27 teknik, adım başına teknik sayılarının çarpımı **10.800 zincir**.
- Beş denetim kalemi 27 tekniğin 11'ini görür (%40,7); üç adımda kapsama sıfırdır ve bunlar önceki
  derste denetimsiz çıkan üç adımın aynısıdır.
- Zincirlerin %96'sı ilk üç kırılabilir halkada kırılır ve ortalama kalem 1,39'dur; kapsamanın
  zincirin başında toplanması ortalamayı düşük tutar.
- Zincirlerin %1,33'ü (144 zincir) ortalama kalemin %42,6 payını taşır; bunların 72'si **hiçbir
  halkada kırılamaz** ve o zincirlerde ölçü kırmadan tespite kayar.
- Aynı kapsama yüzdesini (%51,9) veren iki müdahale 1,39 ve 0,47 kalem kazandırır; fark yalnız
  örtülen adımın zincirdeki sırasından gelir.
- Üç ölçüt üç ayrı müdahaleyi seçer: kapsama yüzdesi ve kalem kazancı ilk erişimi, boş adım sayısı
  yanal geçişi, kırılamayan zincir sayısı kalıcılığın kalan tek tekniğini gösterir.

## Sonraki Adım

Matris bir soruyu yanıtsız bırakır. Hücreler "bu adım bu teknikle yürünebilir" der ve bir denetimin
o tekniği görüp görmediğini yazar. Ama bir gözlem eldeyken — bir kayıt, bir bağlantı, bir dosya
izi — o gözlemin **hangi zincire ait olduğu** matristen okunamaz. Aynı teknik sınıfı birbirinden
bağımsız birçok olayda geçer.

Bu boşluğu dolduran ikinci bir yapı vardır ve matristen farklı bir soru sorar: bir olayın dört
köşesi — kimin yaptığı, hangi altyapıyı kullandığı, hangi yeteneği taşıdığı ve kimi hedeflediği —
birbirine bağlıdır. Bir köşe bilindiğinde diğerleri daralır. Sonraki ders bu daralmayı **bağlantı
sayımı** olarak ölçer: bir köşeyi bilmek diğer üç köşenin kaç adayını eliyor ve hangi köşe zincirin
en erken halkasında görünür hale geliyor.
