İçeriğe geç
academia.sh

Ders 22 / 22

Raporlama

Teknik bulgunun iddia–kanıt eşlemesi olarak ölçülmesi: 20 iddialık kurgu bir rapor taslağında üç kişilik vardiyanın topladığı 22 kalem üzerinde 10 iddia doğrudan destekli, 9'u çıkarım, 1'i kanıtsız çıkıyor. Çıkarım sayılan 9 iddianın 7'si gözetim zincirindeki boşluklar yüzünden düşüyor, 2'si zaten çıkarımdır. Kusursuz toplama 11 doğrudan iddia verirken konak konak toplama ve tek kişilik ekip bunu 7'ye indirip kanıtsız iddiayı 3'e çıkarıyor.

İçindekiler

Bu konunun beş dersi beş ayrı sayı üretti: zincirin kaç kalemde koptuğu, kapsamın kaç kalem getirdiği, sıranın kaç kalem kaybettirdiği, kaymanın kaç olayı ters çevirdiği, bir izin kaç temiz makinede de bulunduğu. Hiçbiri bir rapor cümlesi değil. Rapor iddialardan oluşur ve her iddia, dayandığı kalem yazılmadıkça bir sayı değil bir kanaattir.

Bu ders o eşlemeyi ölçer. Yirmi iddialık kurgu bir taslak, ilk üç dersteki kalem kümesinin üzerine oturtulur — aynı 28 kalem, aynı zincir boşlukları, aynı toplama modeli. Üç sütun ayrı sayılır: kaç iddia doğrudan bir kalemle destekleniyor, kaçı çıkarıma dayanıyor, kaçının hiçbir kanıtı yok.

  • AI31. Rapor taslağı, incelemenin sonunda yazılması düşünülen iddiaların listesidir. Yirmi iddia kurgudur.
  • AI32. Bir iddia doğrudan desteklidir ancak dayanaklarından en az biri toplanmış, o kalem savunulabilir (zinciri tam, karması uyuşuyor) ve iddiayı doğrudan taşıyorsa.
  • AI33. Dayanağı toplanmış ama kalemin zinciri kopuksa ya da iddia kalemden yalnız çıkarımla geliyorsa iddia çıkarımdır.
  • AI34. Hiçbir dayanağı toplanmamışsa iddia kanıtsızdır.
  • AI35. Kalem kümesi, zincir boşlukları ve toplama modeli önceki derslerin aynısıdır; üreteç tohumu değişmediği için sayılar birebir aynı kümeden gelir.

Rapor Taslağı ve Eşleme Kuralı

// adli/rapor.mjs — rapor iddialarinin kanit kalemlerine eslenmesi MODELIDIR.
// Kalem kumesi, zincir hatalari ve toplama sirasi ilk uc dersteki modelin aynisidir.

const uretec = (t) => { let s = t >>> 0;
  return () => (s = (s * 1664525 + 1013904223) >>> 0) / 4294967296; };
export const SINIF = {
  "ag-durumu": [120, 45], "surec-listesi": [240, 60], "acik-tanitici": [300, 55],
  "oturum-durumu": [600, 70], "bellek-icerigi": [900, 420], "gecici-dosya": [3600, 180],
  "akis-kaydi": [86400, 240], "uzak-gunluk": [2592000, 300],
  "disk-imaji": [604800, 5400], "yapilandirma": [604800, 90],
};
const D5 = ["toplama", "paketleme", "aktarim", "laboratuvar", "cozumleme"];
const D3 = ["toplama", "aktarim", "cozumleme"], D2 = ["alma", "cozumleme"];
export const KONAK = {
  "sube-ucu-3": [D5, ["ag-durumu", "surec-listesi", "acik-tanitici", "oturum-durumu",
    "bellek-icerigi", "gecici-dosya", "disk-imaji", "yapilandirma"]],
  "saha-dizustu-14": [D5, ["ag-durumu", "surec-listesi", "oturum-durumu", "bellek-icerigi",
    "disk-imaji"]],
  "toplayici-2": [D3, ["ag-durumu", "surec-listesi", "acik-tanitici", "oturum-durumu",
    "bellek-icerigi", "disk-imaji", "yapilandirma"]],
  "portal-onyuz": [D3, ["ag-durumu", "surec-listesi", "bellek-icerigi", "yapilandirma"]],
  "merkez-gunluk": [D2, ["uzak-gunluk", "yapilandirma"]],
  "akis-toplayici": [D2, ["akis-kaydi", "yapilandirma"]],
};
const KORUMASIZ = ["sube-ucu-3/gecici-dosya", "toplayici-2/disk-imaji",
  "portal-onyuz/yapilandirma"];

// Ilk dersteki uretecin ayni dizisi: kalem basina bir cekis, aktarim basina bir (ya da iki) cekis.
export function kume() {
  const r = uretec(20260731), liste = [];
  for (const [konak, [dugum, siniflar]] of Object.entries(KONAK))
    for (const s of siniflar) {
      const ad = `${konak}/${s}`;
      r();
      let eksik = 0;
      for (let i = 1; i < dugum.length; i += 1) if (r() < 0.11) { r(); eksik += 1; }
      liste.push({ ad, konak, sinif: s, omur: SINIF[s][0], sure: SINIF[s][1],
        savunulabilir: eksik === 0 && !KORUMASIZ.includes(ad) });
    }
  return liste;
}

// Ucuncu dersteki toplama: n kisi, verilen sira, uzak konaklara varis gecikmesi.
const UZAK = ["sube-ucu-3", "saha-dizustu-14"];
export function topla(dizi, n, gecikme) {
  const bos = Array(n).fill(0), alinan = new Set();
  for (const k of dizi) {
    const i = bos.indexOf(Math.min(...bos));
    const bas = Math.max(bos[i], UZAK.includes(k.konak) ? gecikme : 0);
    if (bas <= k.omur) { alinan.add(k.ad); bos[i] = bas + k.sure; }
  }
  return alinan;
}
export const SIRA = {
  "uculuk sirasi": (K) => [...K].sort((a, b) => a.omur - b.omur || a.sure - b.sure),
  "konak konak": (K) => [...K],
};

// Rapor taslagi: iddia -> [dayanak kalemleri, dayanak iddiayi dogrudan tasiyor mu]
export const IDDIA = {
  "sube ucunda yetkisiz oturum acildi": [["merkez-gunluk/uzak-gunluk",
    "sube-ucu-3/oturum-durumu"], true],
  "sube ucundan disariya baglanti kuruldu": [["akis-toplayici/akis-kaydi",
    "sube-ucu-3/ag-durumu"], true],
  "sube ucunde yeni bir surec calisti": [["sube-ucu-3/surec-listesi",
    "sube-ucu-3/bellek-icerigi"], true],
  "surec bir dosya yazdi": [["sube-ucu-3/acik-tanitici", "sube-ucu-3/disk-imaji"], true],
  "yazilan dosya sonra silindi": [["sube-ucu-3/disk-imaji"], true],
  "kalem acilista calisacak bicimde ayarlandi": [["sube-ucu-3/yapilandirma"], true],
  "sube ucundeki gecici dosyalar temizlendi": [["sube-ucu-3/gecici-dosya"], true],
  "toplayiciya baglanti kuruldu": [["akis-toplayici/akis-kaydi", "toplayici-2/ag-durumu"], true],
  "toplayicida oturum acildi": [["toplayici-2/oturum-durumu", "merkez-gunluk/uzak-gunluk"], true],
  "toplayicida bir surec baslatildi": [["toplayici-2/surec-listesi",
    "toplayici-2/bellek-icerigi"], true],
  "toplayicidan abone verisi okundu": [["toplayici-2/disk-imaji",
    "toplayici-2/acik-tanitici"], true],
  "toplayicinin yapilandirmasi degismedi": [["toplayici-2/yapilandirma"], true],
  "saha dizustunde ayni oturum kullanildi": [["saha-dizustu-14/oturum-durumu",
    "saha-dizustu-14/bellek-icerigi"], true],
  "saha dizustunden toplayiciya erisildi": [["saha-dizustu-14/ag-durumu",
    "akis-toplayici/akis-kaydi"], true],
  "saha dizustunde dosya degistirildi": [["saha-dizustu-14/disk-imaji"], true],
  "portal onyuzunde belirtec kullanildi": [["portal-onyuz/bellek-icerigi",
    "merkez-gunluk/uzak-gunluk"], true],
  "portal onyuzunun ayari degistirildi": [["portal-onyuz/yapilandirma"], true],
  "erisimlerin tamami ayni kisidendir": [["merkez-gunluk/uzak-gunluk"], false],
  "veri ucuncu bir tarafa iletildi": [[], false],
  "olaydan once ayni erisim hic olmadi": [["merkez-gunluk/uzak-gunluk",
    "akis-toplayici/akis-kaydi"], false],
};

export function sinifla(iddia, alinan, kalem) {
  const [dayanak, dogrudan] = IDDIA[iddia];
  const eldeki = dayanak.filter((d) => alinan.has(d));
  if (!eldeki.length) return "kanitsiz";
  if (!dogrudan) return "cikarim";
  return eldeki.some((d) => kalem.find((k) => k.ad === d).savunulabilir)
    ? "dogrudan" : "cikarim";
}

Eşleme kuralının üç girdisi var: kalem toplandı mı, kalemin zinciri sağlam mı, kalem iddiayı doğrudan mı taşıyor. İlk ikisi önceki derslerde ölçüldü; üçüncüsü inceleyenin kararıdır ve iddia yazılırken doldurulur — sonradan doldurulursa dayanağın gücü iddiaya göre seçilir.

Yirmi İddianın Sınıfı

// adli/esle.mjs — iddia-kanit eslemesi ve toplama sirasinin rapordaki karsiligi.
import { kume, topla, SIRA, IDDIA, sinifla } from "./rapor.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 K = kume(), iddialar = Object.keys(IDDIA);
const ana = topla(SIRA["uculuk sirasi"](K), 3, 600);      // uc kisilik vardiya, 600 sn yol

console.log(`model: ${K.length} kanit kalemi, ${K.filter((k) => k.savunulabilir).length} ` +
  `savunulabilir; rapor taslaginda ${iddialar.length} iddia`);
console.log(`uc kisilik vardiya, uculuk sirasi, 600 saniyelik varis: ${ana.size} kalem alindi`);

const A = [-42, 9, 8, 11, 11];
console.log("");
y(A, "iddia", "dayanak", "eldeki", "sinif", "neden");
for (const i of iddialar) {
  const [d, dogrudan] = IDDIA[i];
  const elde = d.filter((x) => ana.has(x));
  const s = sinifla(i, ana, K);
  y(A, i, d.length, elde.length, s,
    s === "dogrudan" ? "-" : s === "kanitsiz" ? "kalem yok" : dogrudan ? "zincir" : "iddia");
}

const say = (alinan) => ["dogrudan", "cikarim", "kanitsiz"].map((s) =>
  iddialar.filter((i) => sinifla(i, alinan, K) === s).length);
const [d0, c0, k0] = say(ana);
const zincir = iddialar.filter((i) => IDDIA[i][1] && sinifla(i, ana, K) === "cikarim").length;
console.log(`\ndogrudan destekli ${d0}, cikarim ${c0}, kanitsiz ${k0} (toplam ${iddialar.length})`);
console.log(`cikarim sayilan ${c0} iddianin ${zincir}'i zincir bosluklari yuzunden dustu, ` +
  `${c0 - zincir}'i zaten cikarimdi`);

const B = [-22, 7, 9, 10, 10, 10];
console.log("");
y(B, "toplama", "kisi", "alinan", "dogrudan", "cikarim", "kanitsiz");
for (const [ad, kisi, gec] of [["uculuk sirasi", 3, 0], ["uculuk sirasi", 3, 600],
  ["uculuk sirasi", 1, 0], ["konak konak", 3, 0], ["konak konak", 1, 0]]) {
  const a = topla(SIRA[ad](K), kisi, gec);
  y(B, `${ad}${gec ? " +600 sn" : ""}`, kisi, a.size, ...say(a));
}
model: 28 kanit kalemi, 16 savunulabilir; rapor taslaginda 20 iddia
uc kisilik vardiya, uculuk sirasi, 600 saniyelik varis: 22 kalem alindi

iddia                                       dayanak  eldeki      sinif      neden
sube ucunda yetkisiz oturum acildi                2       2    cikarim     zincir
sube ucundan disariya baglanti kuruldu            2       1   dogrudan          -
sube ucunde yeni bir surec calisti                2       1    cikarim     zincir
surec bir dosya yazdi                             2       1   dogrudan          -
yazilan dosya sonra silindi                       1       1   dogrudan          -
kalem acilista calisacak bicimde ayarlandi        1       1    cikarim     zincir
sube ucundeki gecici dosyalar temizlendi          1       1    cikarim     zincir
toplayiciya baglanti kuruldu                      2       2   dogrudan          -
toplayicida oturum acildi                         2       2   dogrudan          -
toplayicida bir surec baslatildi                  2       2   dogrudan          -
toplayicidan abone verisi okundu                  2       2    cikarim     zincir
toplayicinin yapilandirmasi degismedi             1       1   dogrudan          -
saha dizustunde ayni oturum kullanildi            2       2   dogrudan          -
saha dizustunden toplayiciya erisildi             2       1   dogrudan          -
saha dizustunde dosya degistirildi                1       1   dogrudan          -
portal onyuzunde belirtec kullanildi              2       1    cikarim     zincir
portal onyuzunun ayari degistirildi               1       1    cikarim     zincir
erisimlerin tamami ayni kisidendir                1       1    cikarim      iddia
veri ucuncu bir tarafa iletildi                   0       0   kanitsiz  kalem yok
olaydan once ayni erisim hic olmadi               2       2    cikarim      iddia

dogrudan destekli 10, cikarim 9, kanitsiz 1 (toplam 20)
cikarim sayilan 9 iddianin 7'i zincir bosluklari yuzunden dustu, 2'i zaten cikarimdi

toplama                  kisi   alinan  dogrudan   cikarim  kanitsiz
uculuk sirasi               3       28        11         8         1
uculuk sirasi +600 sn       3       22        10         9         1
uculuk sirasi               1       21         8        10         2
konak konak                 3       19         9        10         1
konak konak                 1       16         7        10         3

Sonucun tamamı iki satırda duruyor: yirmi iddianın onu doğrudan desteklidir, dokuzu çıkarımdır, biri kanıtsızdır. Ama asıl bilgi bir alttaki satırdadır. Çıkarım sayılan dokuz iddianın yedisi zaten çıkarım olduğu için değil, dayandıkları kalemin gözetim zinciri koptuğu için oraya düşmüştür. Kalemler toplanmıştır, elde durmaktadır, içerikleri okunmaktadır — yalnız savunulabilir değildir. Birinci derste ölçülen yüzde 2,6’lık boş kayıt alanı oranının rapordaki karşılığı budur: doğrudan destekli olabilecek yedi cümle bir sınıf aşağı iniyor.

Neden sütunu üç ayrı kusuru ayırıyor ve üçünün çaresi ayrıdır. “Zincir” yazan satırlar bir kayıt sorunudur ve bir bölümü sonradan kapatılabilir. “İddia” yazan iki satır bir mantık sorunudur; “erişimlerin tamamı aynı kişidendir” cümlesi hiçbir kalem eklenerek yükselmez, çünkü kalem kimliği değil oturumu gösterir. “Kalem yok” yazan tek satır bir kapsam sorunudur.

Alttaki tablo toplama kararlarının rapordaki karşılığını veriyor. Kusursuz koşulda — üç kişi, doğru sıra, gecikmesiz — 28 kalemin tamamı alınıyor ve doğrudan destekli iddia 11 oluyor. Aynı ekip altı yüz saniye yolda kalırsa 10’a, tek kişiye inilirse 8’e, konak konak toplanır ve tek kişi kalırsa 7’ye iniyor; kanıtsız iddia bir taneden üçe çıkıyor. Dört rapor cümlesi ile iki yanıtsız soru, tek bir sıralama kararının farkıdır.

İddia, Çıkarım ve Yazılmayan Şey

Üç sütunun rapora nasıl yazıldığı, ölçülmesi kadar belirleyicidir. Sınıf yazılmazsa okuyan bütün cümleleri aynı ağırlıkta okur; çıkarım olan cümle, doğrudan destekli cümlenin yanında ondan ayırt edilemez. Bu ayrımı yapmak okuyanın değil, yazanın işidir.

Çıkarım cümlesi rapora girebilir; çıkarım olduğu yazılmadan giremez. Kanıtsız iddia ise silinmemelidir — “sorulmuş ve yanıtlanamamış soru” başlığına taşınır. Sorunun sorulduğu ve neden yanıtlanamadığı bilgisi karar taşır: verinin dışarı çıkıp çıkmadığı bilinmiyorsa, bilinmediğinin yazılması ile hiç yazılmaması aynı şey değildir.

Toplanan kalem sayısı ile rapora giren kalem sayısı da aynı değildir: 28 kalem toplanmış, 22’si elde kalmış, dayanak olarak 23 kalem anılmış ve bunların 18’i elde bulunmuştur. Kullanılmayan kalemin varlığı bir kusur değildir, ama raporun uzunluğu toplanan kalemle değil eşlenen kalemle ölçülür.

Yöntem bölümü de bir kalem listesidir: karma değerleri, gözetim zinciri kayıtları, toplama sırası, varış gecikmesi, çizelgenin kalan kayması. Bunlar okunsun diye değil, aynı sonucu üretebilmek için yazılır.

Son sınır hukuki bağlamla ilgilidir ve tek cümleyle çizilir: inceleme kalemin neyi gösterdiğini söyler, eylemin nasıl nitelendirileceğini söylemez. Nitelendirme başka bir mesleğin işidir ve teknik rapor onun yerine geçmeye çalıştığı anda, doğru olan teknik bölümünü de tartışmaya açar. Raporun kapsamı, dayandığı yazılı yetki ve incelenen sistemlerin listesi de bu yüzden ilk sayfada yazılır.

Özet

  • Rapor iddialardan oluşur ve her iddia dayandığı kaleme eşlenir; eşleme kuralının üç girdisi kalemin toplanmış, savunulabilir ve iddiayı doğrudan taşıyor olmasıdır.
  • Yirmi iddialık taslakta 22 kalemle 10 iddia doğrudan destekli, 9’u çıkarım, 1’i kanıtsızdır.
  • Çıkarım sayılan 9 iddianın 7’si gözetim zinciri boşlukları yüzünden düşmüştür; kalemler eldedir, yalnız savunulamaz.
  • Üç kusurun çaresi ayrıdır: zincir boşluğu bir kayıt sorunu, çıkarım kalması bir mantık sorunu, kalem yokluğu bir kapsam sorunudur.
  • Kusursuz toplama 11 doğrudan iddia verir; konak konak toplama ve tek kişilik ekip bunu 7’ye indirip kanıtsız iddiayı 3’e çıkarır.

Kurs Kapanışı

Ders İlk kayıt / kaynak Karara kadar adım Geç kalmanın bedeli
Güvenlik Operasyon Merkezi 273 uyarı, 3 kişilik vardiya 26 vaka, 1 devir noktası 64 uyarı görülmüyor, medyan 987 dakika
Günlük Toplama ve Normalleştirme 3 kaynak, 1–8 dakika gecikme 8 alanlık şema, 2 ara tablo 9 artık alan, 404 kayıt aktörsüz
Güvenlik Bilgi ve Olay Yönetimi 3.083 ham olay 12 aday, 10 uyarı, 43 dakika 5 kampanyanın 2’si hiç görünmüyor
Ağ Akış Verisi 2.979 akış, 7 alan 4 ölçüt, 43 işaret 10 sorunun 4’ü yanıtsız, 8,8 GB kesinti
Yanlış Pozitif ve Yanlış Negatif 900 aday, 20 kalem 4 öznitelik, 1 eşik eşik 72’de 7 kaçırılan, 42 ek kalem
Tespit Mühendisliği 26 teknik, 8 taktik 11 kural, 2 sürüm 2 teknik kapsanmıyor, 513 dakika inceleme
Tehdit Avcılığı 12.910 kayıt, 6 hipotez 2–3 eleme adımı 1.691 dakikada 2 kalem, 846 dakika/kalem
Tehdit İstihbaratı 900 gösterge, 12 tanım 90 günlük pencere 828 ölü gösterge, 55 temas kaçıyor
Yanıt Otomasyonu 8 yordam, 158 kalem/gün 3 kip, 1.215 dakika elle iş günde 2,65 yanlış eylem, 457 dakika
Hazırlık 12 hazırlık kalemi 6 adımlık zincir hazırlıksız 470 dakika, 13 kalem
Tanımlama 30 varlık, 20’si kayıtlı 7 ölçüt, 3–73 dakika 13 varlıkta meşru iş kesiliyor
Sınırlama 8 kısa, 4 uzun eylem 7 sınırlama düzeni geç kararda 5 ek kalem, 372 dakika
Temizleme 22 nokta, 9 varlık 5 keşif yöntemi, 506 dakika 5 nokta kaçıyor, 60 günde 8 bulaşma
Kurtarma 7 geri dönüş noktası 4 aşamalı denetim kirli yedekte 1.347 dakika, 9,5 gün veri
Çıkarılan Dersler 16 soru, 9 kayıt kaynağı 12 iyileştirme kalemi 5 soru yanıtsız, 136 kişi-saat
İletişim ve Bildirim Yükümlülüğü 12 paydaş, 5’i dış 4.320 dakikalık pencere geç bildirimde 64.540 dakika aşım
Adli İnceleme İlkeleri 28 kalem, 6 konak 4 aktarım, 5 kayıt alanı 12 kalem tartışmaya açık
Disk İmajı Alma 15 kalem, 7 bölge 4 kopyalama kapsamı canlı kopyada 6 kalem doğrulanamıyor
Bellek Dökümü Analizi 28 kalem, 18’i uçucu 10 sınıflık uçuculuk sırası 1.200 saniyede 9 kalem
Zaman Çizelgesi Oluşturma 3 kaynak, 54 olay 19 çapa, 2 katsayı 33 olay yanlış konumda
Yapı ve Kayıt İncelemesi 12 yapı, taban 4–187 7 iddia, 3 sınıf 90 günde 5 iddia dayanaksız
Raporlama 20 iddia, 22 kalem 3 sınıflı eşleme 7 iddia zincirde düşüyor

Dördüncü sütunda boş bir hücre yok. Yirmi iki dersin her biri geç kalmanın bedelini ya bir süre ya bir kalem sayısı olarak yazdı ve hiçbirinde bu bedel sıfır çıkmadı. Kursun kuralı bu sütundan okunur: güvenlik operasyonunun çıktısı uyarı sayısı değil, fark etme ile sınırlama arasındaki süredir; o süre ölçülmüyorsa hat kurulmuş sayılmaz. Uyarı sayısı bir iş yükü ölçüsüdür, kurulmuş bir hattın kanıtı değil.

İkinci ve üçüncü sütun kuralın iki yarısıdır. Hiç düşmeyen bir kayıt hiçbir adımla kurtarılamaz; her ek adım ise bir eleme ve bir gecikmedir. Yirmi iki dersin hiçbirinde ikisi birden iyileşmedi.

Bütün bu hat tek bir sessiz varsayım üzerinde durdu ve son altı ders onu en açık biçimde kullandı: kayıtların, imajların ve bellek dökümlerinin erişebildiğin makinelerde durduğu. Toplayıcının diski alınabiliyordu, şube ucuna gidilebiliyordu. Oysa sistemlerin bir bölümü artık senin olmayan bir donanımda koşuyor; orada imaj alınamaz ve gözetim zincirinin ilk halkası başka birinin elindedir. M24/K09 Bulut ve Sanallaştırma Güvenliği tam olarak bu soruyla başlar.

İ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