İçeriğe geç
academia.sh

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.

Aramak için yazmaya başlayın.

↑↓ Esc gezin · aç · kapat