Ders 01 / 17
Risk Değerlendirme Süreci
Kursun ölçü birimi kurulur: on varlık ile yedi tehdidin 70 çiftinden 47 risk kalemi üretilir, toplam 5.768,61 kurgu birimlik yıllık risk varlık sınıflarına dağıtılır, 300 kalemlik sınıfın payı yüzde 7,2 kalırken üç kalemlik sınıfın payı yüzde 17,9 çıkar ve birim çabaya düşen azalmaya göre sıralama aynı listede 45 kalemin yerini değiştirip 200 birimlik bütçede 240,00 birim fazla risk düşürür.
İçindekiler
Önceki dokuz kurs aynı işi yaptı: bir savunmanın hangi yolu kapattığını, hangi kalemi ayırdığını, hangi süreyi kısalttığını saydı ve karşılığında durdurduğu meşru işi yazdı. Her kursun sonunda elde ölçülmüş bir savunma listesi kaldı. Sorulmayan tek şey bu listelerin birbirine göre ne olduğuydu: hangisi önce yapılır, kıt bir bütçe hangisine gider, yapıldığı kime nasıl kanıtlanır.
Bu kurs o üç soruyu ölçüye bağlar ve ölçüsü sıralamadır. Bir savunmanın kapattığı yol sayısı tek başına bir öncelik vermez; öncelik ancak aynı listede duran öteki kalemlerle karşılaştırıldığında doğar. Bu ders listeyi kurar: varlık kümesi, tehdit kümesi ve ikisinin kesişiminden çıkan risk kalemleri. Riskin olasılık ile etkinin bileşimi olduğu Siber Güvenliğe Giriş kursunda tanımlanmıştı; burada o tanım girdidir, ölçek ise tek kalem değil programdır.
Varlıktan Kaleme
Bir risk kalemi tek başına bir varlık değildir; “saha dizüstü bilgisayarı” bir risk kalemi değil, bir varlık sınıfıdır. Kalem, bir varlığın belirli bir tehditle eşleşmesinden doğar: saha dizüstü bilgisayarında zararlı kod ayrı bir kalem, aynı makinede fiziksel erişim ayrı bir kalemdir. İkisinin sıklığı, etkisi, ele alma yolu ve bedeli farklıdır. Değerlendirme süreci bu yüzden üç adımdır: varlıkları sınıflandır, her sınıfa hangi tehditlerin uygulandığını işaretle, kesişimde kalan her çift için sıklık ve etki yaz.
Aşağıdaki küme kurgu bölgesel ölçüm ağının bir modelidir: gerçek bir envanter taranmıyor, gerçek bir olay kaydı okunmuyor, gerçek para birimi kullanılmıyor. Bütün değerler kurgu birim cinsindendir.
- RY1. On varlık sınıfı, yedi tehdit türü ve bütün katsayılar modeldir.
- RY2. Uygulanabilirlik maskesi iş tanımından türetilmiş sayılır ve modelde sabittir. Gerçekte bu maske bir değerlendirme çalışmasıyla doldurulur ve rol değiştikçe değişir.
- RY3. Sıklık, tehdidin taban sıklığı ile varlığın maruziyet katsayısının çarpımıdır; etki, varlık sınıfının değeri ile tehdidin etki çarpanının çarpımıdır.
- RY4. Her kalemin tek bir ele alma seçeneği vardır; bedeli tehdit taban bedeli ile varlığın bedel katsayısının çarpımıdır ve riski tehdide bağlı sabit bir oranda düşürür.
- RY5. Kalemler bağımsızdır: bir kalemin ele alınması başka bir kalemin riskini değiştirmez.
- RY6. Bütçe sırayla harcanır; sığmayan kalem atlanır, sıra bozulmaz.
// risk/liste.mjs — kurgu bolgesel olcum aginin risk kalemleri MODELIDIR: gercek bir envanter, // gercek bir olay kaydi ve gercek para birimi yoktur; degerler "kurgu birim" cinsindendir. // RY1: tehdit satiri: ad | yillik taban siklik | etki carpani | ele alma bedeli | dusurdugu oran export const TEHDIT = ` kimlik-ele-gecirme 0.30 0.35 40 0.70 zararli-kod 0.50 0.25 30 0.60 yanlis-yapilandirma 0.80 0.15 12 0.75 ic-kotuye-kullanim 0.10 0.40 55 0.40 hizmet-kesintisi 0.40 0.20 25 0.50 fiziksel-erisim 0.06 0.50 35 0.65 tedarik-zinciri 0.08 0.45 60 0.30` .trim().split("\n").map((r) => { const [ad, s, c, b, d] = r.trim().split(/\s+/); return { ad, s: +s, c: +c, b: +b, d: +d }; }); // RY2: varlik satiri: ad | adet | sinif degeri | maruziyet katsayisi | bedel katsayisi | // tehdit maskesi (TEHDIT sirasinda yedi hane; 1 uygulanabilir, 0 degil) export const VARLIK = ` saha-dizustu 120 900 1.6 1.0 1111011 sube-ucu 40 600 1.2 1.0 1111110 sayac-toplayici 300 750 1.4 1.5 0111110 islem-sunucusu 12 1800 0.6 0.8 1111101 cevre-agi 4 1200 1.8 0.6 0011100 kimlik-dizini 1 2400 1.0 0.7 1011100 bulut-hesabi 3 2000 1.5 1.4 1011100 abone-veri-tabani 1 3000 0.4 0.9 1011100 saha-uygulamasi 1 1400 1.1 0.7 1111001 tedarikci-baglantisi 3 1000 1.3 1.2 1001101` .trim().split("\n").map((r) => { const [ad, n, v, m, bk, maske] = r.trim().split(/\s+/); return { ad, n: +n, v: +v, m: +m, bk: +bk, maske }; }); // RY3: kalem = uygulanabilir (varlik, tehdit) ciftidir. Siklik varliktan ve tehditten, // etki varlik degerinden turer; risk = siklik x etki (onceki kursun tanimi, burada girdi). export const KALEM = []; for (const v of VARLIK) for (const [j, t] of TEHDIT.entries()) if (v.maske[j] === "1") { const siklik = +(t.s * v.m).toFixed(3), etki = +(v.v * t.c).toFixed(1); const risk = +(siklik * etki).toFixed(2), bedel = +(t.b * v.bk).toFixed(1); // RY4: ele alma kalemin riskini tehdide bagli bir oranda dusurur; birim cabaya dusen // azalma = dusen risk / harcanan bedel. KALEM.push({ v, t, siklik, etki, risk, bedel, dusus: t.d, azalma: +(risk * t.d).toFixed(2), oran: +((risk * t.d) / bedel).toFixed(3) }); } export const TOPLAM = +KALEM.reduce((a, k) => a + k.risk, 0).toFixed(2); // Esitlikte uretim sirasi bozulmaz (kararli siralama). export const sirala = (f) => KALEM.map((k, i) => ({ k, i })) .sort((a, b) => f(b.k) - f(a.k) || a.i - b.i).map((x) => x.k); export const yer = (L, k) => L.indexOf(k) + 1;
Listenin Sayımı
// risk/uret.mjs — cift kumesinden kalem listesi, program olcegi ve kursun olcu birimi import { VARLIK, TEHDIT, KALEM, TOPLAM, sirala, yer } from "./liste.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 SR = sirala((k) => k.risk); // buyuklukten kucuge risk const SO = sirala((k) => k.oran); // birim cabaya dusen azalma console.log(`${VARLIK.length} varlik x ${TEHDIT.length} tehdit = ${VARLIK.length * TEHDIT.length}` + ` olasi cift; uygulanabilir ${KALEM.length} kalem; toplam yillik risk ${TOPLAM} kurgu birim`); const A = [-22, 6, 7, 10, 8, -22]; console.log("\n1. varlik basina"); y(A, "varlik", "adet", "kalem", "risk", "pay %", " en buyuk kalemi"); for (const v of VARLIK) { const ks = KALEM.filter((k) => k.v === v); const en = ks.reduce((a, k) => (k.risk > a.risk ? k : a)); y(A, v.ad, v.n, ks.length, ks.reduce((a, k) => a + k.risk, 0).toFixed(2), ((ks.reduce((a, k) => a + k.risk, 0) / TOPLAM) * 100).toFixed(1), " " + en.t.ad); } const B = [-22, -21, 7, 8, 9, 7, 7, 5, 5]; console.log("\n2. risk sirasinda ilk on kalem"); y(B, "varlik", "tehdit", "siklik", "etki", "risk", "bedel", "oran", "R", "O"); for (const k of SR.slice(0, 10)) y(B, k.v.ad, k.t.ad, k.siklik.toFixed(2), k.etki.toFixed(1), k.risk.toFixed(2), k.bedel.toFixed(1), k.oran.toFixed(3), yer(SR, k), yer(SO, k)); const C = [-22, -21, 7, 8, 9, 7, 7, 5, 5]; console.log("\n3. oran sirasinda ilk bes kalem"); y(C, "varlik", "tehdit", "siklik", "etki", "risk", "bedel", "oran", "R", "O"); for (const k of SO.slice(0, 5)) y(C, k.v.ad, k.t.ad, k.siklik.toFixed(2), k.etki.toFixed(1), k.risk.toFixed(2), k.bedel.toFixed(1), k.oran.toFixed(3), yer(SR, k), yer(SO, k)); const D = [-38, 6]; console.log("\n4. iki siralama arasindaki fark"); const kayma = KALEM.map((k) => Math.abs(yer(SR, k) - yer(SO, k))); y(D, "sirasi degisen kalem", kayma.filter((x) => x > 0).length); y(D, "en buyuk sira kaymasi", Math.max(...kayma)); y(D, "ilk onun kaci ortak", SO.slice(0, 10).filter((k) => SR.slice(0, 10).includes(k)).length); y(D, "en riskli kalemin oran sirasi", yer(SO, SR[0])); y(D, "en yuksek oranli kalemin risk sirasi", yer(SR, SO[0])); const BUTCE = 200; const E = [-14, 7, 10, 8, 9]; console.log(`\n5. ${BUTCE} birimlik butce iki siraya gore harcaninca`); y(E, "siralama", "kalem", "harcanan", "azalma", "kalan %"); const harca = (L) => L.reduce((s, k) => (s.h + k.bedel > BUTCE ? s : { h: s.h + k.bedel, a: s.a + k.azalma, n: s.n + 1 }), { h: 0, a: 0, n: 0 }); const [R, O] = [harca(SR), harca(SO)]; for (const [ad, s] of [["risk", R], ["oran", O]]) y(E, ad, s.n, s.h.toFixed(1), s.a.toFixed(2), (((TOPLAM - s.a) / TOPLAM) * 100).toFixed(1)); console.log(`oran siralamasi ${(O.a - R.a).toFixed(2)} birim fazla azalma ` + `(%${(((O.a - R.a) / R.a) * 100).toFixed(1)}) ve ${(R.h - O.h).toFixed(1)} birim az harcama`);
10 varlik x 7 tehdit = 70 olasi cift; uygulanabilir 47 kalem; toplam yillik risk 5768.61 kurgu birim 1. varlik basina varlik adet kalem risk pay % en buyuk kalemi saha-dizustu 120 6 656.64 11.4 zararli-kod sube-ucu 40 6 360.00 6.2 zararli-kod sayac-toplayici 300 5 414.75 7.2 zararli-kod islem-sunucusu 12 6 546.48 9.5 zararli-kod cevre-agi 4 3 518.40 9.0 yanlis-yapilandirma kimlik-dizini 1 4 828.00 14.4 yanlis-yapilandirma bulut-hesabi 3 4 1035.00 17.9 yanlis-yapilandirma abone-veri-tabani 1 4 414.00 7.2 yanlis-yapilandirma saha-uygulamasi 1 5 656.04 11.4 zararli-kod tedarikci-baglantisi 3 4 339.30 5.9 kimlik-ele-gecirme 2. risk sirasinda ilk on kalem varlik tehdit siklik etki risk bedel oran R O bulut-hesabi yanlis-yapilandirma 1.20 300.0 360.00 16.8 16.071 1 4 bulut-hesabi kimlik-ele-gecirme 0.45 700.0 315.00 56.0 3.938 2 15 kimlik-dizini yanlis-yapilandirma 0.80 360.0 288.00 8.4 25.714 3 2 cevre-agi yanlis-yapilandirma 1.44 180.0 259.20 7.2 27.000 4 1 kimlik-dizini kimlik-ele-gecirme 0.30 840.0 252.00 28.0 6.300 5 8 bulut-hesabi hizmet-kesintisi 0.60 400.0 240.00 35.0 3.429 6 17 saha-uygulamasi zararli-kod 0.55 350.0 192.50 21.0 5.500 7 10 kimlik-dizini hizmet-kesintisi 0.40 480.0 192.00 17.5 5.486 8 11 saha-uygulamasi yanlis-yapilandirma 0.88 210.0 184.80 8.4 16.500 9 3 saha-dizustu zararli-kod 0.80 225.0 180.00 30.0 3.600 10 16 3. oran sirasinda ilk bes kalem varlik tehdit siklik etki risk bedel oran R O cevre-agi yanlis-yapilandirma 1.44 180.0 259.20 7.2 27.000 4 1 kimlik-dizini yanlis-yapilandirma 0.80 360.0 288.00 8.4 25.714 3 2 saha-uygulamasi yanlis-yapilandirma 0.88 210.0 184.80 8.4 16.500 9 3 bulut-hesabi yanlis-yapilandirma 1.20 300.0 360.00 16.8 16.071 1 4 saha-dizustu yanlis-yapilandirma 1.28 135.0 172.80 12.0 10.800 11 5 4. iki siralama arasindaki fark sirasi degisen kalem 45 en buyuk sira kaymasi 16 ilk onun kaci ortak 6 en riskli kalemin oran sirasi 4 en yuksek oranli kalemin risk sirasi 4 5. 200 birimlik butce iki siraya gore harcaninca siralama kalem harcanan azalma kalan % risk 9 198.3 1547.40 73.2 oran 13 184.7 1787.40 69.0 oran siralamasi 240.00 birim fazla azalma (%15.5) ve 13.6 birim az harcama
Sayılar ölçüm sınıfındadır; girdileri RY1–RY6’dır.
Süzgecin Kendisi Bir Karardır
İlk satır iki sayı veriyor: 70 olası çift ve 47 uygulanabilir kalem. Aradaki 23 çift listeye hiç girmiyor, çünkü uygulanabilirlik maskesi onları eliyor. Çevre ağına kimlik ele geçirme işaretlenmemiş, sayaç toplayıcıya kimlik ele geçirme işaretlenmemiş, abone veri tabanına zararlı kod işaretlenmemiş. Her biri savunulabilir bir karardır, ama hiçbiri ölçülmüş bir karar değildir.
Elenen bir çiftin riski sıfır yazılmaz; hiç yazılmaz. Sıralamada görünmez, bütçede yer tutmaz, toplamda payı olmaz. Bu, değerlendirme sürecinin en sessiz adımıdır: listeye alınmayan kalem, sonraki bütün ölçümlerin dışında kalır. 23 elemenin biri yanlışsa, o yanlış bu dersin hiçbir tablosunda görünmez.
Adet Risk Değildir
Birinci tablo program ölçeğinin ilk sonucunu veriyor. Sayaç toplayıcı 300 kalemle en kalabalık varlık sınıfıdır ve toplam riskin yüzde 7,2’sini taşır. Bulut hesabı üç kalemdir ve yüzde 17,9 taşır. Kimlik dizini tek kalemdir ve yüzde 14,4 taşır. İki sınıf birlikte program riskinin üçte birini yazar ve envanterde dört satır tutar.
Ayrışmanın nedeni değerin adetle değil işlevle taşınmasıdır. Bir sayaç toplayıcı düştüğünde bölgenin küçük bir parçası okunamaz; kimlik dizini düştüğünde bütün erişim kararları düşer. Adet üzerinden kurulan bir öncelik listesi tam ters sırayı verir ve bu, envanter sayfası açıkken verilmesi en kolay karardır.
İkinci ayrışma varlık toplamı ile kalem sıralaması arasındadır. Saha dizüstü bilgisayarı sınıf toplamında üçüncüdür (656,64 birim), ama bu sınıfın en büyük kalemi ilk onda ancak onuncu sıraya girer. Sınıf altı kalemin toplamıyla yukarı çıkar, tek tek her kalemi orta halli kalır. Ters yönde çevre ağı yalnız üç kalem taşır ve bunlardan biri dördüncü sıradadır. Bir varlığı ele almak ile bir kalemi ele almak aynı iş değildir: birincisi altı ayrı çalışma, ikincisi bir çalışma demektir.
Kursun Ölçü Birimi
Buraya kadarki bütün sıralama riskin kendi büyüklüğüne göredir ve bir şeyi hiç sormaz: o riski düşürmek ne kadar çabaya mal olur. Kalem listesinin dördüncü sütunu bunu yazar. Birim çabaya düşen risk azalması, düşen riskin harcanan bedele bölümüdür ve bu kursun ölçü birimidir.
İkinci tablonun son iki sütunu iki sıralamayı yan yana koyuyor. Bulut hesabındaki kimlik ele geçirme kalemi risk sırasında ikinci, oran sırasında on beşincidir. Riski 315,00 birimdir, ama ele alma bedeli 56,0 birimle listenin en pahalısıdır: üç bulut hesabında kimlik düzeninin değiştirilmesi hem en geniş çalışmadır hem de düşürdüğü oran yüzde 70’te kalır. Aynı sıradaki komşusu — kimlik dizininde yanlış yapılandırma — 288,00 birim risk taşır ve 8,4 birime ele alınır.
Dördüncü tablo farkı toplu olarak sayıyor. Aynı 47 kalemde 45’inin sırası değişiyor, en büyük kayma 16 basamaktır ve ilk onun yalnız altısı ortaktır. En riskli kalem oran sırasında dördüncüye, en yüksek oranlı kalem risk sırasında dördüncüye iner. İkisi de listenin tepesinden düşmüyor; asıl kayma orta bantta oluyor ve orta bant bütçenin çoğunun harcandığı yerdir.
Sıralama Bütçeye Çevrilince
Beşinci tablo farkı karara bağlıyor. İki yüz birimlik bütçe risk sırasına göre harcanınca dokuz kalem ele alınıyor, 198,3 birim harcanıyor ve toplam risk 1.547,40 birim düşüyor. Aynı bütçe oran sırasına göre harcanınca on üç kalem ele alınıyor, 184,7 birim harcanıyor ve risk 1.787,40 birim düşüyor. Fark 240,00 birim, yani yüzde 15,5 daha fazla azalma — üstelik 13,6 birim daha az harcamayla.
Risk sıralamasının bütçeyi dokuz kalemde tüketmesi bir kusur değil, sıralamanın kendi mantığının sonucudur: en büyük riskler aynı zamanda en pahalı ele alınanlardır, çünkü ikisi de aynı yerden — varlığın merkezîliğinden — gelir. Öncelik listesi “önce büyük olan” dediğinde bütçeyi az sayıda pahalı kaleme bağlar ve geri kalan otuz sekiz kalemi hiç açmaz. Bu, sıralamanın yanlış kalemi öne aldığı birinci durumdur ve bedeli sayılabilir.
Üçüncü tablo oran sıralamasının kendi kör noktasını yazıyor: ilk beş kalemin beşi de yanlış yapılandırma tehdididir. Ele alma bedeli en düşük olan tehdit türü listenin tepesini bütünüyle kaplar. Program bu sıraya uyduğunda tek bir tehdit türünde derinleşir ve kalan risk öteki altı türde toplanır. İki sıralamanın da bıraktığı kalan yüzde 69 ile yüzde 73 arasındadır; ikisi arasındaki dört puanlık fark gerçek bir kazançtır, ama asıl sayı bütçenin listeyi bitirmeye yetmediğidir.
Özet
- Risk kalemi bir varlık değil, bir varlık ile bir tehdidin çiftidir; on varlık ile yedi tehdidin 70 çiftinden 47’si uygulanabilir ve toplam 5.768,61 kurgu birimlik yıllık risk taşır.
- Elenen 23 çift sıfır olarak değil, hiç yazılmaz; listeye alınmayan kalem sonraki bütün sıralamaların, bütçelerin ve toplamların dışında kalır.
- Adet ile risk ayrı sıralar verir: 300 kalemlik sınıf yüzde 7,2, üç kalemlik sınıf yüzde 17,9, tek kalemlik sınıf yüzde 14,4 taşır. Varlık toplamında üçüncü olan sınıfın en büyük kalemi kalem sıralamasında ancak onuncudur.
- Kursun ölçü birimi birim çabaya düşen risk azalmasıdır; aynı listede 45 kalemin sırası değişir, en büyük kayma 16 basamaktır ve ilk onun altısı ortak kalır.
- İki yüz birimlik bütçe risk sırasına göre dokuz kalem ve 1.547,40 birim azalma, oran sırasına göre on üç kalem ve 1.787,40 birim azalma verir: 240,00 birim fark, 13,6 birim daha az harcamayla.
- Oran sıralamasının ilk beşi tek bir tehdit türünden gelir; iki sıralama da riskin yüzde 69 ile 73 arasını açık bırakır.
Sonraki Adım
Bu dersin bütün sayıları tek bir varsayıma dayanıyor: sıklık ve etki bilinen sayılardır. Oysa listenin hiçbir satırındaki 0,80 sıklık ya da 300,0 etki bir ölçümden gelmedi; bir kestirimden geldi. Kurumların çoğu bu yüzden iki ayrı yol kullanır: kalemleri sayı yerine bantlara oturtan nitel bir puanlama, ya da kaybı varlık değeri ile maruziyet oranına ayıran parasal bir model. Sonraki ders bu iki yolu aynı 47 kalem üzerinde koşturur, tekil ve yıllık kayıp beklentilerini kurgu birimle hesaplar ve tek bir soruya cevap verir: iki yöntem aynı veriden kaç sırayı farklı yazar, hangi kalemleri beraberliğe düşürür.
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.