---
title: 'Varlık ve Envanter Yönetimi'
source: 'https://academia.sh/tr/kurslar/yonetisim-risk-uyumluluk/varlik-ve-envanter-yonetimi'
course: 'Yönetişim, Risk ve Uyumluluk'
language: tr
updated: '2026-08-17T18:08:36+00:00'
license: 'CC BY-SA 4.0'
---

# Varlık ve Envanter Yönetimi

Envanter dışı altı varlık listeye eklendiğinde 47 kalemlik liste 69 kaleme, 5.768,61 birimlik toplam 8.045,45 kurgu birime çıkar: envanter dışı kalemler gerçek riskin yüzde 28,3'ünü taşır, 41 kayıtlı kalemin sırası değişir, en büyük kayma 22 basamaktır, ilk yirmiye altı gölge kalem girer, 30 gölge kalemin 8'i değeri yazılmadığı için hiçbir sıralamaya giremez ve en yüksek sıraya çıkan gölge kalem hiçbir keşif kaynağının görmediği varlıktan gelir.

Üç ders boyunca aynı liste sıralandı, ölçüldü ve bütçelendi: 47 kalem, on varlık, yedi tehdit. Her
hesap bu listenin **tam** olduğunu varsaydı. Oysa liste bir envanterden türedi ve envanter bir
kayıt kümesidir — kaydedilmemiş bir varlık listeye giremez.

Kaydedilmeyen bir varlığın riski sıfır değildir; **yazılmamış**tır. Sıralamada görünmez, bütçede
yer tutmaz, kabul edilmiş bile sayılmaz — çünkü kabul en azından bir kaydı gerektirir. Bu ders o
boşluğu sayar: envanter dışında kaç varlık var, kaç kalem üretiyorlar, listeye girseydi sıralamanın
kaç sırası değişirdi ve onları bulmanın birim bedeli ne.

## Envanterin Dışında Kalan

Envanter dışı varlık bir kural ihlali değil, çoğu zaman sıradan işleyişin artığıdır: bir sınama
için açılıp kapatılmayan sunucu, bir ekibin kendi bütçesiyle açtığı bulut hesabı, saha ekibinin
kendi kurduğu bir aktarım servisi, hizmetten çıkarılmış ama fişi çekilmemiş bir şube ucu, ikinci
bir tedarikçi bağlantısı, bir yedek veri kopyası. Hepsi bir işe yaradığı için vardır ve hiçbiri
envanteri güncellemek üzere kurulmamıştır.

Bunları bulmanın yolu **keşif kaynaklarıdır** ve her kaynak farklı bir yerden bakar. Ağ taraması
adreslenebilir olanı görür, kimlik kaydı bir hesabı olanı, faturalama kaydı bir bedel üreteni,
yapılandırma deposu tanımlanmış olanı, uç ajanı üzerinde yazılım çalışanı. Bir varlık kaç kaynakta
görünüyorsa o kadar bulunabilirdir; hiçbirinde görünmüyorsa bulunamaz.

- **RY17.** Yedi tehdit ve katsayıları önceki derslerle aynıdır; birim **kurgu birim**dir.
- **RY18.** Beş keşif kaynağı, bedelleri ve kaynak maskeleri modeldir; gerçek bir tarama yapılmaz.
- **RY19.** Envanter dışı altı varlık modeldir. `?` işareti, varlığın bulunmuş ama değerinin
  yazılmamış olduğunu gösterir.
- **RY20.** Bir kalemin riski yalnız varlığın değeri yazılıysa hesaplanabilir; değeri yazılmamış
  varlık keşfedilse bile hiçbir sıralamaya giremez.
- **RY21.** Keşif tek seferliktir ve bulduğu varlığı envantere sokar; envantere girmek değerin
  yazılması demek değildir.
- **RY22.** Envanter dışı varlıkların maruziyet katsayıları kayıtlı varlıklarınkinden yüksek
  yazılmıştır; modelin gerekçesi, bakım ve sertleştirme çalışmalarının yalnız kayıtlı varlıklara
  uygulanmasıdır.

```js
// risk/envanter.mjs — envanterdeki varliklar ile envanter disi varliklar. MODELDIR; gercek bir
// tarama yapilmaz, gercek bir hesap acilmaz, butun degerler "kurgu birim" cinsindendir.

// RY17: tehdit satiri: ad | yillik taban siklik | maruziyet orani
export const TEHDIT = `
  kimlik-ele-gecirme   0.30  0.35
  zararli-kod          0.50  0.25
  yanlis-yapilandirma  0.80  0.15
  ic-kotuye-kullanim   0.10  0.40
  hizmet-kesintisi     0.40  0.20
  fiziksel-erisim      0.06  0.50
  tedarik-zinciri      0.08  0.45`
  .trim().split("\n").map((r) => { const [ad, s, m] = r.trim().split(/\s+/);
    return { ad, s: +s, m: +m }; });

// RY18: kesif kaynagi: ad | yillik bedel. Her varlik bir kaynak maskesi tasir.
export const KAYNAK = `
  ag-taramasi          35
  kimlik-kaydi         15
  faturalama-kaydi     10
  yapilandirma-deposu  25
  uc-ajani             45`
  .trim().split("\n").map((r) => { const [ad, b] = r.trim().split(/\s+/);
    return { ad, b: +b }; });

// RY19: varlik satiri: ad | deger ('?' degeri yazilmamis) | maruziyet | tehdit maskesi |
// kaynak maskesi | envanterde mi. Envanterdeki on varlik zaten kayitlidir.
const SATIR = `
  saha-dizustu           900  1.6  1111011  11001  E
  sube-ucu               600  1.2  1111110  10011  E
  sayac-toplayici        750  1.4  0111110  10010  E
  islem-sunucusu        1800  0.6  1111101  11011  E
  cevre-agi             1200  1.8  0011100  10010  E
  kimlik-dizini         2400  1.0  1011100  01010  E
  bulut-hesabi          2000  1.5  1011100  01100  E
  abone-veri-tabani     3000  0.4  1011100  00011  E
  saha-uygulamasi       1400  1.1  1111001  00110  E
  tedarikci-baglantisi  1000  1.3  1001101  01100  E
  gecici-test-sunucusu   800  1.7  1111101  11010  H
  ekip-bulut-hesabi        ?  1.6  1011100  01100  H
  saha-aktarim-servisi   700  1.9  1111011  10001  H
  emekli-sube-ucu        500  1.5  1111110  10010  H
  ucuncu-tedarikci-ucu     ?  1.4  1001101  01100  H
  yedek-veri-kopyasi    2200  0.8  1011100  00000  H`;

export const VARLIK = SATIR.trim().split("\n").map((r) => {
  const [ad, v, m, maske, km, env] = r.trim().split(/\s+/);
  return { ad, v: v === "?" ? null : +v, m: +m, maske, km, envanterde: env === "E",
    gorulur: km.includes("1") };
});
export const KAYITLI = VARLIK.filter((v) => v.envanterde);
export const GOLGE = VARLIK.filter((v) => !v.envanterde);

// RY20: bir kalemin riski sadece varligin degeri yaziliysa hesaplanabilir; degeri yazilmamis
// varlik kesfedilse bile hicbir siralamaya giremez.
export const TUM = VARLIK.flatMap((v) => TEHDIT
  .filter((_, j) => v.maske[j] === "1")
  .map((t) => ({ v, t, risk: v.v === null ? null : +(t.s * v.m * v.v * t.m).toFixed(2) })));
export const KAY = TUM.filter((k) => k.v.envanterde);
export const GOL = TUM.filter((k) => !k.v.envanterde);
export const sirala = (L) => L.filter((k) => k.risk !== null)
  .map((k, i) => ({ k, i })).sort((a, b) => b.k.risk - a.k.risk || a.i - b.i).map((x) => x.k);
export const top = (L) => +L.reduce((a, k) => a + (k.risk || 0), 0).toFixed(2);
```

## İki Listenin Sayımı

```js
// risk/eksik.mjs — envanter disi kalemler listeye girseydi siralama nasil degisirdi
import { KAYITLI, GOLGE, KAYNAK, TUM, KAY, GOL, sirala, top } from "./envanter.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());
const S1 = sirala(KAY), S2 = sirala(TUM);
const yer = (L, k) => L.indexOf(k) + 1;

console.log(`envanterde ${KAYITLI.length} varlik / ${KAY.length} kalem / ${top(KAY)} kurgu birim; ` +
  `envanter disi ${GOLGE.length} varlik / ${GOL.length} kalem / ${top(GOL)} birim ` +
  `(gercek toplamin %${((top(GOL) / top(TUM)) * 100).toFixed(1)}'i)`);

const A = [-22, 7, 7, 10, 8, 10];
console.log("\n1. envanter disi varliklar");
y(A, "varlik", "deger", "kalem", "risk", "kaynak", "durum");
for (const v of GOLGE) {
  const ks = GOL.filter((k) => k.v === v);
  y(A, v.ad, v.v ?? "?", ks.length, v.v === null ? "-" : top(ks).toFixed(2),
    v.km.split("").filter((c) => c === "1").length,
    v.v === null ? "degersiz" : v.gorulur ? "gorulur" : "gorulmez");
}
const puanlanabilir = GOL.filter((k) => k.risk !== null);
console.log(`envanter disi ${GOL.length} kalemin ${puanlanabilir.length} tanesi puanlanabilir ` +
  `(${top(puanlanabilir).toFixed(2)} birim), ${GOL.length - puanlanabilir.length} tanesi degeri ` +
  `yazilmadigi icin hicbir siralamaya giremez`);

const B = [-38, 9];
console.log("\n2. tam liste siralaninca ne degisiyor");
const kayma = KAY.map((k) => Math.abs(yer(S1, k) - yer(S2, k)));
y(B, "envanter listesi / tam liste kalem", `${S1.length} / ${S2.length}`);
y(B, "toplam risk", `${top(KAY).toFixed(2)} / ${top(TUM).toFixed(2)}`);
y(B, "sirasi degisen kayitli kalem", kayma.filter((x) => x > 0).length);
y(B, "en buyuk sira kaymasi", Math.max(...kayma));
y(B, "ilk ona giren envanter disi kalem",
  S2.slice(0, 10).filter((k) => !k.v.envanterde).length);
y(B, "en yuksek envanter disi kalemin sirasi",
  Math.min(...puanlanabilir.map((k) => yer(S2, k))));
y(B, "ilk yirmide envanter disi kalem",
  S2.slice(0, 20).filter((k) => !k.v.envanterde).length);

const C = [-22, -21, 10, 7, 6];
console.log("\n3. tam listenin ilk onu");
y(C, "varlik", "tehdit", "risk", "kaynak", "sira");
for (const k of S2.slice(0, 10))
  y(C, k.v.ad, k.t.ad, k.risk.toFixed(2), k.v.envanterde ? "kayit" : "golge", yer(S1, k) || "-");

const D = [-21, 7, 8, 13, 8, 9];
console.log("\n4. kesif kaynagi basina (yalniz envanter disi varliklar)");
y(D, "kaynak", "bedel", "varlik", "acilan risk", "kalem", "oran");
const acilan = (f) => { const vs = GOLGE.filter(f);
  const ks = GOL.filter((k) => vs.includes(k.v) && k.risk !== null);
  return { vs, ks, r: top(ks) }; };
for (const [i, s] of KAYNAK.entries()) {
  const a = acilan((v) => v.km[i] === "1");
  y(D, s.ad, s.b, a.vs.length, a.r.toFixed(2), a.ks.length, (a.r / s.b).toFixed(3));
}
const hepsi = acilan((v) => v.gorulur);
const bedel = KAYNAK.reduce((a, s) => a + s.b, 0);
y(D, "besi birden", bedel, hepsi.vs.length, hepsi.r.toFixed(2), hepsi.ks.length,
  (hepsi.r / bedel).toFixed(3));
const kor = GOLGE.filter((v) => !v.gorulur);
console.log(`hicbir kaynagin gormedigi varlik ${kor.length}, kalem ` +
  `${GOL.filter((k) => kor.includes(k.v)).length}, risk ` +
  `${top(GOL.filter((k) => kor.includes(k.v))).toFixed(2)} birim`);
```

```
envanterde 10 varlik / 47 kalem / 5768.61 kurgu birim; envanter disi 6 varlik / 30 kalem / 2276.84 birim (gercek toplamin %28.3'i)

1. envanter disi varliklar
varlik                  deger  kalem      risk  kaynak     durum
gecici-test-sunucusu      800      6    688.16       3   gorulur
ekip-bulut-hesabi           ?      4         -       2  degersiz
saha-aktarim-servisi      700      6    606.48       2   gorulur
emekli-sube-ucu           500      6    375.00       2   gorulur
ucuncu-tedarikci-ucu        ?      4         -       2  degersiz
yedek-veri-kopyasi       2200      4    607.20       0  gorulmez
envanter disi 30 kalemin 22 tanesi puanlanabilir (2276.84 birim), 8 tanesi degeri yazilmadigi icin hicbir siralamaya giremez

2. tam liste siralaninca ne degisiyor
envanter listesi / tam liste kalem      47 / 69
toplam risk                           5768.61 / 8045.45
sirasi degisen kayitli kalem                 41
en buyuk sira kaymasi                        22
ilk ona giren envanter disi kalem             1
en yuksek envanter disi kalemin sirasi        7
ilk yirmide envanter disi kalem               6

3. tam listenin ilk onu
varlik                tehdit                     risk kaynak  sira
bulut-hesabi          yanlis-yapilandirma      360.00  kayit     1
bulut-hesabi          kimlik-ele-gecirme       315.00  kayit     2
kimlik-dizini         yanlis-yapilandirma      288.00  kayit     3
cevre-agi             yanlis-yapilandirma      259.20  kayit     4
kimlik-dizini         kimlik-ele-gecirme       252.00  kayit     5
bulut-hesabi          hizmet-kesintisi         240.00  kayit     6
yedek-veri-kopyasi    yanlis-yapilandirma      211.20  golge     -
saha-uygulamasi       zararli-kod              192.50  kayit     7
kimlik-dizini         hizmet-kesintisi         192.00  kayit     8
saha-uygulamasi       yanlis-yapilandirma      184.80  kayit     9

4. kesif kaynagi basina (yalniz envanter disi varliklar)
kaynak                 bedel  varlik  acilan risk   kalem     oran
ag-taramasi               35       3      1669.64      18   47.704
kimlik-kaydi              15       3       688.16       6   45.877
faturalama-kaydi          10       2         0.00       0    0.000
yapilandirma-deposu       25       2      1063.16      12   42.526
uc-ajani                  45       1       606.48       6   13.477
besi birden              130       5      1669.64      18   12.843
hicbir kaynagin gormedigi varlik 1, kalem 4, risk 607.20 birim
```

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

## Eksik Listenin Payı

Altı envanter dışı varlık 30 risk kalemi üretiyor ve bunların taşıdığı risk 2.276,84 kurgu birim.
Gerçek toplam 5.768,61 değil **8.045,45 birim**; envanter dışı pay **yüzde 28,3**. Üç ders boyunca
yapılan bütün sıralamalar, bütün bütçe hesapları ve bütün kabul kararları bu payın var olmadığı
varsayımıyla verildi.

Sayı yalnız büyük olduğu için değil, **dağılımı** yüzünden önemlidir. Yedek veri kopyası tek başına
607,20 birim taşır ve envanterdeki dokuz varlığın yedisinden fazla risk yazar. Geçici sınama
sunucusu 688,16 birimle listedeki her varlıktan fazladır. Bunların ortak yanı düşük değerli
olmalarıdır — ama düşük değer, yüksek maruziyetle çarpıldığında küçük bir sayı vermez.

Maruziyet katsayısı sütunu bu yüksekliği açıklıyor ve modelin bir tercihidir (RY22): envanter dışı
varlıklar 0,8 ile 1,9 arasında, kayıtlı varlıklar 0,4 ile 1,8 arasında değer alır. Gerekçe basittir
ve kendi kendini besler — sertleştirme, yama ve izleme çalışmaları envanterdeki listeye uygulanır,
listede olmayan varlık bu çalışmaların hiçbirini almaz. Kayıtsız olmak yalnız görünmezlik değil,
aynı zamanda **bakımsızlık** demektir; iki etki aynı yönde çarpılır.

## Sıralamanın Kaydığı Yer

İkinci tablo asıl soruya cevap veriyor. Eksik liste 47 kalemi sıralıyor, tam liste 69 kalemi; **41
kayıtlı kalemin sırası değişiyor** ve en büyük kayma **22 basamak**. İlk yirmiye **altı** gölge
kalem giriyor ve bunlardan biri **yedinci sıraya** çıkıyor.

Üçüncü tablo bu kalemi adıyla gösteriyor: yedek veri kopyasındaki yanlış yapılandırma, 211,20
birimle listenin yedincisidir ve envanter listesinde **hiç yoktur**. Onun girmesiyle saha
uygulamasındaki zararlı kod kalemi yedincilikten sekizinciliğe düşer ve altında kalan her kalem bir
basamak aşağı iner. Bütçe ilk on kalemi ele alıyorsa, eksik listeyle çalışan bir program bu kalemi
hiç açmaz — üstelik bunun bir eksiklik olduğunu da bilmez, çünkü kalem listede olmadığı için
"ele alınmadı" sütununda da görünmez.

Kaymanın büyüklüğü listenin düzlüğüyle ilgilidir. Risk dağılımı düz olduğunda 22 yeni kalem araya
serpilir ve neredeyse her kalemin sırasını değiştirir. Yoğun bir tepe olsaydı yeni kalemler alta
yığılır ve ilk on değişmezdi. Burada ilk on değişiyor, yani eksiklik **karar veren bölgeye**
ulaşıyor.

## Bulunmak ile Sayılmak Ayrı Şeydir

Birinci tablonun son sütunu ikinci bir ayrım yazıyor. Altı varlığın ikisi — ekibin açtığı bulut
hesabı ve üçüncü tedarikçi ucu — iki ayrı kaynakta **görünüyor**, ama değerleri yazılmamış. Bu iki
varlık 8 risk kalemi üretir ve o kalemlerin hiçbiri puanlanamaz: değer yoksa etki yoktur, etki
yoksa risk hesaplanamaz. **30 gölge kalemin 22'si puanlanabilir, 8'i puanlanamaz.**

Bu, envanter çalışmasının en sık kaçırılan yarısıdır. Keşif bir varlığın **varlığını** yazar;
envanter onun **ne olduğunu** yazar — sahibi kim, hangi işi taşıyor, düştüğünde ne olur. Birincisi
otomatik yapılabilir, ikincisi bir insanın karar vermesini gerektirir. Bulunmuş ama değeri
yazılmamış bir varlık, hiç bulunmamış bir varlıkla aynı sıraya girer: **ikisi de hiçbir sıraya
girmez.** Aradaki tek fark, birincisinin bir listede adının bulunmasıdır.

## Keşfin Birim Bedeli

Dördüncü tablo keşfi kursun ölçü birimiyle sınıyor. Ağ taraması 35 birime üç varlık ve 1.669,64
birimlik risk açar; oranı **47,704** ile listenin en yükseğidir. Kimlik kaydı 15 birime 688,16
birim açar (45,877). Faturalama kaydı 10 birime iki varlık bulur ve **0,00 birim** açar — bulduğu
iki varlığın değeri yazılmamıştır, dolayısıyla açılan puanlanabilir risk sıfırdır.

Son satır toplamayı sınıyor. Beş kaynağın hepsi 130 birime beş varlık bulur, ama açtığı risk yine
**1.669,64 birimdir** — ağ taramasının tek başına açtığı sayı. Kalan dört kaynak 95 birim daha
harcayıp puanlanabilir riske hiçbir şey eklemez; ekledikleri iki varlık değersiz kalır. Birim
başına getiri 47,704'ten **12,843**'e iner. Keşif kaynağı eklemek her zaman daha çok kalem bulur,
ama bulunan kalem puanlanmıyorsa sıralamaya girmez ve bütçede yer tutmaz.

Son satır dersin en sert sayısını yazıyor: **hiçbir kaynağın görmediği bir varlık** var, 4 kalem ve
607,20 birim taşıyor. Beş kaynağın tamamı satın alınsa bile bulunmaz. Üstelik tam listenin yedinci
sırasındaki kalem tam olarak bu varlıktan gelir. Keşif kapsamı bir kapak değil, bir **eşiktir**:
altına düşen her şey ölçülmez ve ölçülmeyen her şey varsayılan olarak kabul edilmiş sayılır.

## Özet

- Envanter dışı altı varlık 30 kalem ve 2.276,84 kurgu birim taşır; gerçek toplam 8.045,45 birimdir
  ve envanter dışı pay yüzde 28,3'tür.
- Tam liste sıralandığında 41 kayıtlı kalemin sırası değişir, en büyük kayma 22 basamaktır; ilk
  yirmiye altı gölge kalem girer ve biri yedinci sıraya çıkar.
- Eksik listeyle çalışan bir program bu kalemi ele almadığını bile göremez: kalem listede olmadığı
  için "ele alınmadı" sütununda da yoktur.
- Bulunmak ile sayılmak ayrı şeylerdir. İki gölge varlık iki kaynakta görünür ama değeri
  yazılmamıştır; 30 gölge kalemin 22'si puanlanabilir, 8'i hiçbir sıralamaya giremez.
- Ağ taraması 35 birime 47,704 oran verir; beş kaynağın tamamı 130 birime aynı riski açar ve oran
  12,843'e iner. Kaynak eklemek daha çok varlık bulur, puanlanabilir risk eklemez.
- Hiçbir kaynağın görmediği bir varlık 4 kalem ve 607,20 birim taşır; tam listenin yedinci
  sırasındaki kalem bu varlıktan gelir.

## Sonraki Adım

Keşif kaynaklarının hepsi bir şeyi ortak varsayıyor: aranan varlık kurumun kendi ağında, kendi
kimlik düzeninde ya da kendi faturasında bir iz bırakıyor. Tedarikçinin kendi sistemindeki bir
sunucu bu izlerin hiçbirini bırakmaz. Ağ taraması oraya ulaşmaz, uç ajanı orada çalışmaz,
yapılandırma deposu orayı tanımaz. O varlıkların yerine kurumda duran tek şey bir **sözleşme
maddesi** ve bir **değerlendirme anketidir**. Sonraki ders üç tedarikçilik bir kümede bunu ölçer:
sözleşmede yazan kontrol kaç, anketin gerçekten kanıtladığı kaç, devredilmiş görünüp doğrulanamayan
kaç kalem kalıyor.
