---
title: 'Model Çıktısının Kullanımı'
source: 'https://academia.sh/tr/kurslar/guvenli-yasam-dongusu/model-ciktisinin-kullanimi'
course: 'Güvenli Geliştirme Yaşam Döngüsü'
language: tr
updated: '2026-08-17T18:06:43+00:00'
license: 'CC BY-SA 4.0'
---

# Model Çıktısının Kullanımı

Model çıktısının iş öğesine dönüşmesi ölçülür: 120 tehdit 24 karşı önleme düşer, bunların yalnız 11'i sahip, kabul ölçütü ve sürüm hedefinin üçünü birden taşıyıp iş öğesine döner ve 73 tehdidi (%60,8) kapatır; kaybolan 13 kalem 47 tehdit ve 97 efor günü taşır, 4'ü yazılı olarak kabul edilir, 9'u sessiz artık risk olarak kalır ve tek başına 33 tehdit taşır.

Önceki beş ders bir tehdit listesi ve bir öncelik sırası üretti: 23 sınır geçişi, 58 kalem, 108
sistematik tehdit, 12 zincir tehdidi ve kök maliyetini gerçekten değiştiren birkaç kapatma.
Bütün bu sayılar modelin içinde duruyor.

Modelin içinde durdukları sürece hiçbir şey değişmez. Bir karşı önlem ancak birinin üzerine
alındığı, bir kabul ölçütüne bağlandığı ve bir sürüme yazıldığı zaman koda dönüşür. Bu ders son
ölçümü yapar: kaç tehdit kaç ayrı karşı önleme düşüyor, bunların kaçı gerçekten planlanıyor,
kaçı hangi eksiklikten kayboluyor ve geriye kalan artık riskin kaç kalemi yazılı olarak kabul
ediliyor.

## Yüz Yirmi Tehdit, Yirmi Dört Karşı Önlem

Aşağıdaki liste bir **modeldir** ve gerçek bir kayıt değildir. Karşı önlemler yalnız kapsadıkları
tehdit sayısı, efor günü ve üç alanın doluluğuyla anılır.

**TD21:** bir karşı önlem birden çok tehdidi birden kapatır; önceki iki dersin birleşim kümesi
120 tehditti ve bu sütunun toplamı onunla doğrulanır. **TD22:** bir karşı önlem iş öğesine ancak
üç alanı birden doluysa döner — **sahip**, **kabul ölçütü** ve **sürüm hedefi**; biri bile eksikse
kalem kaybolur. **TD23:** kaybolan kalem, taşıdığı **artık riskin (residual risk)** yazılı kabulü
varsa kayıtlıdır, yoksa sessizdir.

```js
// tehdit/onlem.mjs — model ciktisinin is ogesine cevrilmesi (model): kurgu olcum agi
// yaziliminin tehdit modelleme oturumundan cikan karsi onlem listesi. Gercek bir kayit
// degildir; hicbir saldiri adimi tasimaz.

// TD21: bir karsi onlem birden cok tehdidi birden kapatir; `tehdit` o sayidir. Onceki iki
// dersin birlesim kumesi 120 tehditti ve bu sutunun toplami onunla dogrulanir.
// TD22: bir karsi onlem is ogesine ancak uc alani birden doluysa doner: `sahip`, kabul
// `olcut`u ve `surum` hedefi. Biri bile eksikse kalem kaybolur.
// TD23: kaybolan kalem, artik riskin yazili `kabul`u varsa kayitlidir, yoksa sessizdir.
// `agac` sutunu, o onlemin saldiri agacinda kok maliyetini degistirip degistirmedigidir.
export const ONLEM = `
  sinir-gecisinde-girdi-dogrulama  17  8  E E E - H
  sinir-gecisinde-kaynak-kimligi   17 10  E E E - H
  depoya-yazmada-yetkilendirme      9  5  E E E - H
  gizli-sinifta-aktarim-korumasi    9  4  E E E - H
  disa-cikan-veride-suzme           6  6  E H E H H
  yetki-kararini-sunucuya-tasima    5  9  E E E - E
  rol-alanini-istemciden-almama     4  3  E E E - E
  oturum-belirtecini-gizleme        4  5  E E H E E
  sayac-kimligini-dogrulama         4 12  E H H E H
  toplama-ucunu-daraltma            4  6  E E H H H
  dogrulayici-ayarini-imzalama      3  7  H H H H H
  esik-degerini-veriye-baglama      3  4  E E E - H
  denetim-gunlugune-yazma-zorunlu   4  6  E E H E H
  gunlugu-degistirilemez-tutma      3  8  H H H H H
  yedek-ucunu-kapatma               2  2  E E E - H
  yonetim-agini-ayirma              4 11  H E H H H
  servis-kimligini-dondurme         3  7  E H H H H
  yetki-atamasini-onaya-baglama     2  5  E E E - H
  rapor-ucuna-kimlik-zorunlulugu    3  3  E E E - H
  abone-portalinda-hiz-siniri       2  2  E E E - E
  olcum-akisinda-butunluk-etiketi   4  9  H E H H H
  zincir-adiminda-yeniden-dogrulama 4 10  H H H H H
  saha-uygulamasinda-sir-tutmama    2  4  E E H E H
  kapasite-korumasi-toplama-ucunda  2  6  E H H H H`
  .trim().split("\n").map((r) => {
    const [ad, tehdit, efor, sahip, olcut, surum, kabul, agac] = r.trim().split(/\s+/);
    return { ad, tehdit: +tehdit, efor: +efor, sahip: sahip === "E", olcut: olcut === "E",
      surum: surum === "E", kabul: kabul === "E", agac: agac === "E" };
  });

export const ALAN = ["sahip", "olcut", "surum"];
export const isOgesi = (o) => ALAN.every((a) => o[a]);
export const TEHDIT = ONLEM.reduce((a, o) => a + o.tehdit, 0);
```

```js
// tehdit/isogesi.mjs — kac karsi onlem gercekten planlaniyor, kaci kayboluyor, artik riskin
// kac kalemi yazili olarak kabul ediliyor.
import { ONLEM, ALAN, isOgesi, TEHDIT } from "./onlem.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 topla = (ler, f) => ler.reduce((a, o) => a + f(o), 0);
const donen = ONLEM.filter(isOgesi), kaybolan = ONLEM.filter((o) => !isOgesi(o));

console.log(`${TEHDIT} tehdit ${ONLEM.length} karsi onleme dusuyor (onlem basina ` +
  `${(TEHDIT / ONLEM.length).toFixed(2)} tehdit); is ogesine donen ${donen.length}, ` +
  `kaybolan ${kaybolan.length}`);

const A = [-10, 8, 8, 15, 13];
console.log("\n1. uc alanin doluluk denetimi");
yaz(A, "alan", "dolu", "eksik", "eksik tehdit", "eksik efor");
for (const a of ALAN) {
  const e = ONLEM.filter((o) => !o[a]);
  yaz(A, a, ONLEM.length - e.length, e.length, topla(e, (o) => o.tehdit),
    topla(e, (o) => o.efor));
}

const B = [-16, 8, 10, 11, 10, 11];
console.log("\n2. model ciktisi is ogesine donerken");
yaz(B, "kume", "onlem", "onlem %", "tehdit", "tehdit %", "efor gunu");
for (const [ad, ler] of [["is ogesine donen", donen], ["kaybolan", kaybolan],
  ["toplam", ONLEM]])
  yaz(B, ad, ler.length, ((ler.length / ONLEM.length) * 100).toFixed(1),
    topla(ler, (o) => o.tehdit), ((topla(ler, (o) => o.tehdit) / TEHDIT) * 100).toFixed(1),
    topla(ler, (o) => o.efor));

const C = [-22, 8, 10, 12];
console.log("\n3. kaybolan kalemler hangi alan eksikliginden kayboluyor");
yaz(C, "eksik alan bilesimi", "onlem", "tehdit", "efor gunu");
const bilesim = {};
for (const o of kaybolan) {
  const e = ALAN.filter((a) => !o[a]).join("+");
  (bilesim[e] ||= []).push(o);
}
for (const [e, ler] of Object.entries(bilesim).sort((x, y) => y[1].length - x[1].length))
  yaz(C, e, ler.length, topla(ler, (o) => o.tehdit), topla(ler, (o) => o.efor));

const D = [-22, 8, 10, 12, 15];
console.log("\n4. kaybolan kalemin artik risk karsiligi");
yaz(D, "kume", "onlem", "tehdit", "tehdit %", "tehdit/onlem");
for (const [ad, ler] of [["yazili kabul edilen", kaybolan.filter((o) => o.kabul)],
  ["sessiz artik risk", kaybolan.filter((o) => !o.kabul)]])
  yaz(D, ad, ler.length, topla(ler, (o) => o.tehdit),
    ((topla(ler, (o) => o.tehdit) / TEHDIT) * 100).toFixed(1),
    (topla(ler, (o) => o.tehdit) / ler.length).toFixed(2));

const agacli = ONLEM.filter((o) => o.agac);
console.log(`saldiri agacinda kok maliyetini degistiren ${agacli.length} onlemin ` +
  `${agacli.filter(isOgesi).length} tanesi is ogesine dondu, ` +
  `${agacli.filter((o) => !isOgesi(o)).length} tanesi kayboldu`);
const enBuyuk = [...kaybolan].sort((a, b) => b.tehdit - a.tehdit)[0];
console.log(`en cok tehdit tasiyan kaybolan kalem ${enBuyuk.ad} (${enBuyuk.tehdit} tehdit, ` +
  `${enBuyuk.efor} efor gunu); kaybolan ${kaybolan.length} kalemin ortalama eforu ` +
  `${(topla(kaybolan, (o) => o.efor) / kaybolan.length).toFixed(1)} gun, donen ` +
  `${donen.length} kalemin ${(topla(donen, (o) => o.efor) / donen.length).toFixed(1)} gun`);
```

```
120 tehdit 24 karsi onleme dusuyor (onlem basina 5.00 tehdit); is ogesine donen 11, kaybolan 13

1. uc alanin doluluk denetimi
alan          dolu   eksik   eksik tehdit   eksik efor
sahip           19       5             18           45
olcut           17       7             25           56
surum           12      12             41           91

2. model ciktisi is ogesine donerken
kume               onlem   onlem %     tehdit  tehdit %  efor gunu
is ogesine donen      11      45.8         73      60.8         55
kaybolan              13      54.2         47      39.2         97
toplam                24     100.0        120     100.0        152

3. kaybolan kalemler hangi alan eksikliginden kayboluyor
eksik alan bilesimi      onlem    tehdit   efor gunu
surum                        4        14          21
olcut+surum                  3         9          25
sahip+olcut+surum            3        10          25
sahip+surum                  2         8          20
olcut                        1         6           6

4. kaybolan kalemin artik risk karsiligi
kume                     onlem    tehdit    tehdit %   tehdit/onlem
yazili kabul edilen          4        14        11.7           3.50
sessiz artik risk            9        33        27.5           3.67
saldiri agacinda kok maliyetini degistiren 4 onlemin 3 tanesi is ogesine dondu, 1 tanesi kayboldu
en cok tehdit tasiyan kaybolan kalem disa-cikan-veride-suzme (6 tehdit, 6 efor gunu); kaybolan 13 kalemin ortalama eforu 7.5 gun, donen 11 kalemin 5.0 gun
```

Sayılar **ölçüm** sınıfındadır; girdileri TD21–TD23'tür.

## Beşe Bir Birleşme

İlk sayı birleşme oranıdır. Yüz yirmi tehdit **24 karşı önleme** düşer; karşı önlem başına 5,00
tehdit. Bu, tehdit sayısının tek başına bir iş yükü ölçüsü olmadığını gösterir: `120 tehdit`
kulağa iki aylık bir yığın gibi gelir, karşılığı olan iş kalemi ise yirmi dörttür.

Birleşme düzgün dağılmaz. İlk iki karşı önlem — sınır geçişinde girdi doğrulama ve kaynak
kimliği — tek başlarına **34 tehdit** kapatır, yani listenin %28,3'ünü. Bunun sebebi ikinci
derste görülmüştü: kalemlerin %58,6'sı düşük güven düzeyinden yükseğe giden akışlardan geliyordu
ve bu akışların hepsi aynı iki denetimi istiyordu. Karşılık verilen soru "kaç tehdit var" değil,
"**kaç ayrı karar var**" sorusudur.

## Sürüm Hedefi Olmayan Kalem

İkinci tablo dersin ana ölçümüdür. Yirmi dört karşı önlemin yalnız **11'i** üç alanı birden
taşır ve iş öğesine döner; 13'ü kaybolur. Kalem sayısı olarak dönüşüm oranı %45,8'dir.

Tehdit sayısıyla bakıldığında tablo daha iyi görünür: dönen 11 kalem **73 tehdit** kapatır, yani
%60,8'ini. Aradaki fark birleşme oranından gelir — dönen kalemler ortalama olarak daha çok tehdit
taşıyanlardır, çünkü en kalabalık iki karşı önlem de dönenler arasındadır.

Birinci tablo hangi alanın darboğaz olduğunu doğrudan yazar. Sahip alanı 24 kalemin 19'unda
doludur, kabul ölçütü 17'sinde, **sürüm hedefi yalnız 12'sinde**. Sürüm hedefi eksik olan 12 kalem
41 tehdit ve 91 efor günü taşır. Sahip bulmak kolaydır; ölçüt yazmak biraz daha zordur; kalemi bir
sürüme sokmak en zorudur, çünkü orada karşısına başka işler çıkar.

Üçüncü tablo aynı sonuca kalem düzeyinde varır. Kaybolan 13 kalemin **4'ü yalnız sürüm hedefi
eksik olduğu için** kaybolur — sahibi vardır, ölçütü yazılmıştır, tek eksiği takvimdir. Bu dört
kalem 14 tehdit taşır ve toplam 21 efor günüdür. Yalnız kabul ölçütü eksik olan tek bir kalem
vardır. Üç alanı birden boş olan üç kalem ise oturumda hiç sahiplenilmemiş kalemlerdir.

## Kaybolan Kalem Nereye Gidiyor

Son satır kaybın yönünü verir ve beklenenin tersini söyler. Kaybolan 13 kalemin ortalama eforu
**7,5 gün**, iş öğesine dönen 11 kalemin ortalama eforu **5,0 gündür**. Yani pahalı kalemler daha
sık kaybolur.

Bu, üç alanın hangi sırayla dolduğuyla açıklanır. Bir kalemin sürüm hedefi alması için birinin onu
bir sprintin içine koyması gerekir; efor günü büyüdükçe bu karar zorlaşır ve kalem "sonraki
sürüme" kayar. Kayma bir kez olduğunda kalem tabloda hiçbir yerde bir sıfır olarak görünmez —
yalnızca hiçbir sürümde bulunmaz.

Ağaç ölçümüyle kesişim tek satırda görülür. Saldırı ağacında kök maliyetini gerçekten değiştiren
**4 karşı önlemin 3'ü** iş öğesine döndü, biri kayboldu. Bu iyi bir orandır, ama tesadüfidir:
o dört kalemin eforları 9, 3, 5 ve 2 gündür, yani listenin ucuz ucundadır. Aynı kalemler pahalı
olsaydı aynı süreç onları da eleyecekti. **Sürecin seçtiği ölçüt etki değil, efordur.**

## Sessiz Artık Risk

Dördüncü tablo kursun son ayrımını yapar. Kaybolan 13 kalemin **4'ü yazılı olarak kabul
edilmiştir**: karşı önlem yapılmayacaktır, bunun taşıdığı artık risk bilinmekte ve kayda
geçirilmektedir. Bu dört kalem 14 tehdit taşır, yani toplamın %11,7'sini.

Kalan **9 kalem sessiz artık risktir**. Ne iş öğesine dönmüştür, ne de yapılmayacağı bir yere
yazılmıştır. Taşıdıkları **33 tehdit**, toplam kümenin %27,5'idir. Kalem başına taşınan tehdit
sayısı iki kümede neredeyse aynıdır (3,50 ve 3,67); yani sessiz kalanlar daha küçük kalemler
değildir, yalnız **hakkında karar verilmemiş** kalemlerdir.

Aradaki fark ölçüm açısından belirleyicidir. Yazılı kabul edilen artık risk bir karardır: bir
kalem, bir sahip, bir gerekçe ve bir tarih taşır; sonraki oturumda yeniden bakılabilir. Sessiz
artık risk bir karar değildir; kimsenin bilmediği bir eksikliktir ve bir sonraki tehdit modelleme
oturumu onu sıfırdan yeniden üretmek zorunda kalır. **Bir tehdit modelleme oturumunun çıktısı,
iş öğesine dönen kalemler ile yazılı olarak reddedilen kalemlerin toplamıdır; geri kalan
üretilmemiş sayılır.**

## Özet

- 120 tehdit 24 karşı önleme düşer (önlem başına 5,00); en kalabalık iki karşı önlem tek başına
  34 tehdit kapatır. İş yükünün ölçüsü tehdit sayısı değil **ayrı karar sayısıdır**.
- Yirmi dört karşı önlemin yalnız 11'i sahip, kabul ölçütü ve sürüm hedefinin üçünü birden taşır;
  dönüşüm oranı kalem olarak %45,8, tehdit olarak %60,8'dir.
- Darboğaz sürüm hedefidir: 12 kalemde eksiktir ve 41 tehdit ile 91 efor günü taşır. Kaybolan 13
  kalemin dördü **yalnız** sürüm hedefi eksik olduğu için kaybolur.
- Kaybolan kalemlerin ortalama eforu 7,5 gün, dönenlerin 5,0 gündür; süreç etkiye göre değil
  **efora göre** eler. Kök maliyetini değiştiren dört karşı önlemin üçü dönmüştür, ama bu onların
  ucuz olmasındandır.
- Kaybolan 13 kalemin 4'ü yazılı olarak kabul edilir (14 tehdit), **9'u sessiz artık risktir** ve
  toplam kümenin %27,5'ini taşır; kalem başına taşıdıkları tehdit dönenlerle aynı büyüklüktedir.

## Kurs Kapanışı

| Ders | Kalem hangi aşamada doğuyor | Hangi aşamada yakalanıyor | Yakalamanın bedeli |
|---|---|---|---|
| DevSecOps ve DevOps Farkı | 23 kalem, altı aşamada, en çok kod (7) | tek kapıda 10, dağıtık denetimde 23; gecikme 1,94→0,13 aşama | 200 uyarının 177'si yanlış pozitif |
| Sola Kaydırma | ortak 18 kalem, gereksinimden dağıtıma | geç akış 318 saat, erken akış 68 saat; kat 4,68 | 32,5 saat denetim yükü, net kazanç 217,5 saat |
| Güvenlik Gereksinimleri | gereksinim aşaması, senaryolarla 28 gereksinim | kodda 19 otomatik, dağıtımda 5 gözle, 4'ü hiç | 300 denetimde 40 saat gözle sınama |
| Güvenlik Şampiyonları | kod aşaması, haftada 35 inceleme | merkezde 16, dört şampiyonla 35 | 2,8 kişi eşdeğeri; derin kalem 2'den 1'e |
| Risk Temelli Önceliklendirme | 23 kalemlik yığın, 68 gün efor | 22 günde doğuş sırası 6, efor sırası 13 kalem | 5 kalem her ölçütte dışarıda, 110 saat |
| Tehdit Modellemenin Amacı | 18 kalem, 10'u gereksinim ve tasarımda | oturum 10 kalemi tasarımda, 8 kalem 1–3 aşama geç | 40 geliştirici saati, kalem başına 4,0 saat |
| Veri Akış Diyagramları | tasarım, 26 akışın 23'ü sınır geçiyor | 58 kalem tasarımda; kaba çizimde yalnız 15 | 16 geçiş görünmez, 43 kalem doğmuyor |
| Tehdit Sınıflandırma Yöntemleri | tasarım, 43 çizge öğesi | 156 ham üretimden 108 anlamlı, tasarımda | 666 dakika; 72'si geçersiz eleme |
| Risk Odaklı Modelleme | tasarım, 12 zincir tehdidi yol üzerinde | 51 tehdit; sistematiğin %63,9'u kaçıyor | 218 dakika; hizmet engellemede 24 kalem dışarıda |
| Saldırı Ağaçları | tasarım, 12 yaprak, kök 9 birim | 10 yaprak kökü hiç değiştirmiyor, 2'si 1,33 ve 1,22 kat | tam kapatma 16 önlem birimi, açgözlü sıra 28 |
| Model Çıktısının Kullanımı | tasarım, 120 tehdit, 24 karşı önlem | 11 iş öğesi, 73 tehdit (%60,8) | 13 kalem kayboldu, 9'u sessiz (33 tehdit) |

Kursun kuralı on bir satırın tamamında aynıdır: **güvenlik bir aşama değil, her aşamada farklı
fiyatı olan bir karardır.** Erken yakalamanın kazancı sayılabilir — 4,68 kat, 217,5 saat, 866
saat — ama aynı ölçüm her seferinde ikinci bir sayı üretti: tasarımda görülemeyecek bir kalem
sınıfı vardır ve o sınıf küçük değildir. Sola kaydırmanın hiç dokunamadığı 7 kalem, tasarım
oturumunun bulmadığı 8 kalem ve sistematik üretimin göremediği 12 zincir tehdidi aynı şeyi söyler.
**Bedeli yazılmayan denetim ölçülmemiş sayılır; kapsama sınırı yazılmayan yöntem de öyle.**

Son ders bir eşiği işaretledi. Tasarımda hangi tehdidin doğduğu yazıldı, hangi karşı önlemin
planlandığı sayıldı ve hangilerinin kaybolduğu ölçüldü. Ama planlanan 11 karşı önlemin **koda
dönüştüğü yer** hiç görülmedi: bir "sınır geçişinde girdi doğrulama" kalemi kod tabanında kaç
noktaya karşılık gelir, o noktaların kaçı gerçekten kapanır ve kaçı bu kararın tamamen dışında
kalır. **M25/K02 Güvenli Kodlama** bu soruyla başlar — bir savunma kalıbının kendiliğinden
kapattığı nokta sayısı ile hiç kimsenin bakmadığı noktaların sayısı.
