İçeriğe geç
academia.sh

Ders 06 / 09

Kontrollerin Mühendislik Karşılığı

Yirmi altı denetim maddesi bir uygulama ekibinin on sekiz pratiğiyle eşleştirilir: 25 bağın ardından 17 kontrolün karşılığı çıkar, 9 kontrolün hiçbir mühendislik karşılığı yoktur ve bunların beşi tek bir uyumluluk yapısında toplanır. Karşılığı olan kontrol ortalama 1,47 pratiğe düşer, 10 kontrol tek pratiğe dayanır, 2 pratik hiçbir kontrole düşmez ve 26 sorunun yalnız 11'i kayıttan sorgulanarak cevaplanır.

İçindekiler

Önceki konu olayın kendisini ölçtü: kayıt tasarlandı, uygulamaya özgü tespit senaryoları koşturuldu, müdahale adımlarının hangi kayda ihtiyaç duyduğu sayıldı ve dış bildirim akışı süreyle ölçüldü. Bütün bu pratiğin ortak bir açığı kaldı — yapıldığını kuruma dışarıdan bakan birine gösterecek kanıt, dönem sonunda elle toplanıyor. Bu konunun dört dersi o boşluğu ölçer.

İlk adım eşlemenin kendisidir. Yönetişim, Risk ve Uyumluluk kursunda kontrol ile gereksinim arasındaki matris koşturulmuş, kanıtsız kalan gereksinim ve birden çok gereksinimi karşılayan kontrol sayılmıştı; o ölçüm burada girdidir ve tekrarlanmaz. Buradaki matrisin uçları farklıdır: bir ucunda denetim maddesi, öteki ucunda bir uygulama ekibinin gerçekten koşan işi vardır. Sorulan şey de farklıdır — bir denetim maddesi ekibin hangi işine düşüyor, kaç işine düşüyor ve kaç madde hiçbir işine düşmüyor.

Kontrol Kümesi ve Pratik Kümesi

UY1. Kontrol kümesi 26 maddedir ve dört uyumluluk yapısından toplanmıştır: işlev tabanlı çerçeve, belgelendirilebilir yönetim sistemi standardı, denetim kontrol kümesi ve sektörel uyumluluk gereksinimi. Küme kurgudur; hiçbir yapının, düzenlemenin ya da kurumun adı geçmez, maddeler yalnız sordukları şeyle yazılır. UY2. Pratik kümesi 18 kalemdir ve kurgu bölgesel ölçüm ağının abone portalı ekibinin koşan işlerinden oluşur. UY3. Her pratiğin bir yeri vardır — hat, depo, koşum ya da elle — ve bir izi: makinece okunabilir kayıt ya da belge. UY4. Eşleme bir iddiadır: bir kontrolün bir pratiğe düşmesi o pratiğin kontrolü yürüttüğünü söyler, kanıt ürettiğini söylemez; kanıt üçüncü bölümde ayrılır. UY5. Matris yalnız ekibin kendi yürüttüğü işi görür; platformun ya da başka bir ekibin yaptığı iş burada görünmez ve bu, karşılığı olmayan kontrol sayısını olduğundan yüksek gösterir.

// uyum/kume.mjs — denetim kontrolleri ve ekip pratikleri MODELDIR: kurgu bolgesel olcum agi.
// Kontroller dort uyumluluk yapisindan gelir, pratikler bir uygulama ekibinin isleridir.
export const ayir = (s) => s.trim().split("\n").map((l) => l.trim().split("|"));
export const gen = (B) => (...h) => h.map((v, j) =>
  (j ? String(v).padStart(B[j]) : String(v).padEnd(B[0]))).join("");

// kod | uyumluluk yapisi | kontrolun sordugu sey
export const KONTROL = ayir(`
  IC-01|islev-cerceve|bilesen envanteri guncel tutulur
  IC-02|islev-cerceve|erisim en az ayricalikla verilir
  IC-03|islev-cerceve|tasinan ve duran veri sifrelenir
  IC-04|islev-cerceve|guvenlik olaylari merkezi toplanir
  IC-05|islev-cerceve|anormal davranis uyari uretir
  IC-06|islev-cerceve|olay mudahale rolleri tanimlidir
  IC-07|islev-cerceve|kurtarma hedefi sinanir
  IC-08|islev-cerceve|tedarikci bileseni degerlendirilir
  YS-01|yonetim-sistemi|kapsam bildirimi guncellenir
  YS-02|yonetim-sistemi|uygulanabilirlik bildirimi gerekcelidir
  YS-03|yonetim-sistemi|ic denetim donemsel kosar
  YS-04|yonetim-sistemi|duzeltici eylem kapatilir
  YS-05|yonetim-sistemi|yonetim gozden gecirmesi kayitlidir
  YS-06|yonetim-sistemi|personel yetkinligi kayitlidir
  DK-01|denetim-kumesi|degisiklik onaydan gecer
  DK-02|denetim-kumesi|uretim erisimi ikinci gozle verilir
  DK-03|denetim-kumesi|yedegin geri yuklenmesi sinanir
  DK-04|denetim-kumesi|ayricalikli erisim gozden gecirilir
  DK-05|denetim-kumesi|kod degisikligi ikinci goz gorur
  DK-06|denetim-kumesi|acik tanimli sure icinde kapatilir
  DK-07|denetim-kumesi|sistem saatleri esitlenir
  SG-01|sektorel|odeme verisi ayri bolutte islenir
  SG-02|sektorel|kisisel veri kalemi siniflandirilir
  SG-03|sektorel|veri saklama suresi uygulanir
  SG-04|sektorel|veri sahibi talebi izlenebilir
  SG-05|sektorel|ucuncu tarafa aktarim kaydedilir
`).map(([kod, yapi, metin]) => ({ kod, yapi, metin }));

// kod | pratigin kostugu yer | biraktigi iz | pratigin adi
export const PRATIK = Object.fromEntries(ayir(`
  P01|hat|makine|bagimlilik bilesen analizi
  P02|hat|makine|statik cozumleme
  P03|hat|makine|yapi ciktisi imzalama
  P04|hat|makine|koken bilgisi uretimi
  P05|hat|makine|imaj taramasi
  P06|depo|makine|birlestirme isteginde ikinci goz
  P07|depo|makine|dal koruma kurali
  P08|kosum|makine|sir deposundan kisa omurlu kimlik
  P09|kosum|makine|anahtar dondurme isi
  P10|kosum|makine|ag bolutleme kurali
  P11|kosum|makine|kabul denetleyicisi
  P12|kosum|makine|uygulama denetim kaydi
  P13|kosum|makine|uyari kurali kumesi
  P14|elle|belge|yedek geri yukleme tatbikati
  P15|elle|belge|erisim gozden gecirme toplantisi
  P16|elle|belge|olay mudahale tatbikati
  P17|elle|belge|veri siniflandirma calismasi
  P18|elle|belge|yonetim gozden gecirme toplantisi
`).map(([kod, yer, iz, ad]) => [kod, { kod, yer, iz, ad }]));

// kontrol | onu gercekten yuruten pratikler; bos hucre: muhendislik karsiligi yok
export const ESLEM = Object.fromEntries(ayir(`
  IC-01|P01,P04
  IC-02|P08,P15
  IC-03|
  IC-04|P12
  IC-05|P13
  IC-06|P16
  IC-07|P14
  IC-08|P01,P05
  YS-01|
  YS-02|
  YS-03|
  YS-04|
  YS-05|P18
  YS-06|
  DK-01|P06,P07
  DK-02|P08
  DK-03|P14
  DK-04|P15
  DK-05|P06,P07
  DK-06|P01,P02,P05
  DK-07|
  SG-01|P10,P11
  SG-02|P17
  SG-03|
  SG-04|P12
  SG-05|
`).map(([k, p]) => [k, p ? p.split(",") : []]));

export const YAPI = ["islev-cerceve", "yonetim-sistemi", "denetim-kumesi", "sektorel"];

if (import.meta.url === `file://${process.argv[1]}`) {
  const pratik = Object.values(PRATIK);
  const bag = Object.values(ESLEM).reduce((t, p) => t + p.length, 0);
  console.log(`model: ${KONTROL.length} kontrol, ${pratik.length} pratik, ${bag} bag`);
  const y = gen([20, 10]);
  console.log("\n" + y("uyumluluk yapisi", "kontrol"));
  for (const u of YAPI) console.log(y(u, KONTROL.filter((c) => c.yapi === u).length));
  const z = gen([20, 10, 16]);
  console.log("\n" + z("pratigin yeri", "pratik", "biraktigi iz"));
  for (const yer of ["hat", "depo", "kosum", "elle"]) {
    const p = pratik.filter((x) => x.yer === yer);
    console.log(z(yer, p.length, p[0].iz));
  }
}
model: 26 kontrol, 18 pratik, 25 bag

uyumluluk yapisi       kontrol
islev-cerceve                8
yonetim-sistemi              6
denetim-kumesi               7
sektorel                     5

pratigin yeri           pratik    biraktigi iz
hat                          5          makine
depo                         2          makine
kosum                        6          makine
elle                         5           belge

Model iki listeden ve aralarındaki 25 bağdan oluşuyor. Kontrol tarafı dengeli dağılmış: en büyük yapı sekiz, en küçüğü beş madde getiriyor. Pratik tarafındaki dağılım ise dengeli değil ve asıl bilgi orada: on sekiz pratiğin on üçü hatta, depoda ya da koşumda çalışıyor ve makinece okunabilir bir iz bırakıyor; beşi bir toplantı ya da tatbikat olarak yürüyor ve geriye yalnız bir belge bırakıyor. Bu iki iz türü aynı matriste eşit görünür, denetimde eşit değildir.

Matrisi Koşturmak

Eşleme tablosundaki boş hücre bu dersin ölçü birimidir: bir kontrolün karşısında hiçbir pratik yoksa o madde ekibin hiçbir işine düşmüyor demektir. İkinci sayı bunun tersidir — bir madde kaç işe düşüyor.

Matris iki yönde okunabilir ve iki okuma iki ayrı soruya karşılık gelir. Kontrolden pratiğe bakıldığında sorulan şey kapsamadır: madde yürüyor mu, yürüyorsa kaç işle. Pratikten kontrole bakıldığında sorulan şey kaldıraçtır: bu iş kaç maddeye birden yetiyor. İki okuma aynı 25 bağ üzerinde koşar ve farklı kalemleri öne çıkarır; bu yüzden ikisi de yazılır. Üçüncü bir okuma da vardır ve çoğunlukla atlanır: hiçbir kontrole düşmeyen pratik. O sütun kontrol kümesinin görmediği işi sayar.

// uyum/matris.mjs — kontrol-pratik matrisi kosturulur, karsiligi olmayan kontrol sayilir.
import { KONTROL, PRATIK, ESLEM, YAPI, gen } from "./kume.mjs";

const y = gen([18, 9, 15, 15, 16]);
console.log(y("uyumluluk yapisi", "kontrol", "karsiligi var", "karsiligi yok", "pratik/kontrol"));
const oran = (k) => {
  const v = k.filter((c) => ESLEM[c.kod].length > 0);
  const b = v.reduce((t, c) => t + ESLEM[c.kod].length, 0);
  return [v.length, k.length - v.length, v.length ? (b / v.length).toFixed(2) : "-"];
};
for (const u of YAPI) {
  const k = KONTROL.filter((c) => c.yapi === u);
  console.log(y(u, k.length, ...oran(k)));
}
console.log(y("TOPLAM", KONTROL.length, ...oran(KONTROL)));

const yok = KONTROL.filter((c) => ESLEM[c.kod].length === 0);
console.log(`\nmuhendislik karsiligi olmayan ${yok.length} kontrol:`);
for (const c of yok) console.log(`  ${c.kod}  ${c.metin}`);

const kacKontrol = (p) => Object.values(ESLEM).filter((l) => l.includes(p)).length;
const sirali = Object.values(PRATIK).map((p) => ({ ...p, n: kacKontrol(p.kod) }))
  .sort((a, b) => b.n - a.n);
const tek = KONTROL.filter((c) => ESLEM[c.kod].length === 1).length;
const enCok = KONTROL.filter((c) => ESLEM[c.kod].length > 2).map((c) => c.kod);
console.log(`\nbirden cok kontrole dusen pratik ${sirali.filter((p) => p.n > 1).length}: ` +
  sirali.filter((p) => p.n > 1).map((p) => `${p.kod} (${p.n})`).join(", "));
console.log(`tek pratige dayanan kontrol ${tek}; ikiden cok pratige dusen ${enCok.join(", ")}`);
console.log(`hicbir kontrole dusmeyen pratik ${sirali.filter((p) => p.n === 0).length}: ` +
  sirali.filter((p) => p.n === 0).map((p) => `${p.kod} ${p.ad}`).join(", "));
uyumluluk yapisi    kontrol  karsiligi var  karsiligi yok  pratik/kontrol
islev-cerceve             8              7              1            1.43
yonetim-sistemi           6              1              5            1.00
denetim-kumesi            7              6              1            1.67
sektorel                  5              3              2            1.33
TOPLAM                   26             17              9            1.47

muhendislik karsiligi olmayan 9 kontrol:
  IC-03  tasinan ve duran veri sifrelenir
  YS-01  kapsam bildirimi guncellenir
  YS-02  uygulanabilirlik bildirimi gerekcelidir
  YS-03  ic denetim donemsel kosar
  YS-04  duzeltici eylem kapatilir
  YS-06  personel yetkinligi kayitlidir
  DK-07  sistem saatleri esitlenir
  SG-03  veri saklama suresi uygulanir
  SG-05  ucuncu tarafa aktarim kaydedilir

birden cok kontrole dusen pratik 8: P01 (3), P05 (2), P06 (2), P07 (2), P08 (2), P12 (2), P14 (2), P15 (2)
tek pratige dayanan kontrol 10; ikiden cok pratige dusen DK-06
hicbir kontrole dusmeyen pratik 2: P03 yapi ciktisi imzalama, P09 anahtar dondurme isi

Yirmi altı kontrolün on yedisinin karşılığı vardır, dokuzunun yoktur. Dokuz sayısı tek başına bir kusur değil; kusur olup olmadığı nerede toplandığına bakılarak anlaşılır. Beşi tek bir uyumluluk yapısında, belgelendirilebilir yönetim sistemi standardında toplanmıştır — kapsam bildirimi, uygulanabilirlik bildirimi, iç denetim, düzeltici eylem ve personel yetkinliği. Bu maddelerin hiçbiri bir uygulama ekibinin işi değildir ve olmaması da bir eksiklik sayılmaz; karşılığı ekipte değil, kurumun yönetim katmanındadır. Matris bunu söylemez, yalnız boş hücre gösterir. Boş hücrenin okunması, kimin işi olduğunun ayrı yazılmasını gerektirir.

Kalan dördü bambaşka bir sınıftandır. IC-03, DK-07, SG-03 ve SG-05 doğrudan bu uygulamanın çalıştığı yere aittir: veri şifreleme, saat eşitleme, saklama süresi ve üçüncü tarafa aktarım. Dördü de ekibin sorumluluğundadır ve dördünün de karşılığında hiçbir pratik koşmuyor. DK-07 bu dördü içinde en sinsi olanıdır: sistem saatleri eşitlenmiyorsa önceki konunun ürettiği bütün kayıtlar birbiriyle sıralanamaz — yani kontrolün karşılığının yokluğu, karşılığı olan başka kontrollerin kanıtını da bozar.

Kontrol başına düşen pratik sayısı 1,47’dir ve on kontrol tek bir pratiğe dayanır. Tek pratiğe dayanan bir kontrol, o pratik durduğu anda karşılıksız kalır; matris bunu ancak yeniden koşturulduğunda gösterir. Ters yönde okunduğunda sekiz pratik birden çok kontrolü karşılıyor — bağımlılık bileşen analizi tek başına üç maddeye yetiyor. Son satır ise matrisin en az konuşulan kutusudur: iki pratik hiçbir kontrole düşmüyor. Yapı çıktısı imzalama ve anahtar döndürme işi ekipte koşuyor, kaynak harcıyor ve bu kontrol kümesinde karşılığı yok. Bu, pratiğin gereksiz olduğunu göstermez; kontrol kümesinin onu sormadığını gösterir — kontrol kümesi bir mühendislik önceliği listesi değildir.

Cevabı Ne Üretiyor

UY6. Bir kontrolün cevabı üç kaynaktan gelebilir: makinece okunabilir kayıttan sorgu ile, dönem sonunda toplanan belgeden elle derleme ile, ya da hiçbir kayda dayanmayan kişi beyanı ile. Kaynağın ikinci bir özelliği vardır: sorgu dönemin tamamını kapsar, belge yalnızca üretildiği günü kapsar.

// uyum/iz.mjs — pratigin biraktigi ize bakilir: kontrolun sorusu neyle cevaplaniyor.
import { KONTROL, PRATIK, ESLEM, YAPI, gen } from "./kume.mjs";

// Uc obek: pratigi makine-okunur iz birakiyorsa "makine izli"; yalniz toplanti ya da
// tatbikat belgesi birakiyorsa "yalniz belge"; hic pratigi yoksa "izsiz".
const obek = (c) => {
  const p = ESLEM[c.kod].map((x) => PRATIK[x]);
  return !p.length ? "izsiz" : p.some((x) => x.iz === "makine") ? "makine izli" : "yalniz belge";
};
const OBEK = ["makine izli", "yalniz belge", "izsiz"];
const y = gen([18, 14, 14, 9]);
console.log(y("uyumluluk yapisi", ...OBEK));
for (const u of YAPI) {
  const k = KONTROL.filter((c) => c.yapi === u);
  console.log(y(u, ...OBEK.map((o) => k.filter((c) => obek(c) === o).length)));
}
console.log(y("TOPLAM", ...OBEK.map((o) => KONTROL.filter((c) => obek(c) === o).length)));

// Cevabin kapsami: makine iz donem boyunca yazilir, belge yalnizca uretildigi gune aittir.
const KAPSAM = { "makine izli": "donem boyu", "yalniz belge": "tek gun", izsiz: "yok" };
const KAYNAK = { "makine izli": "sorgu", "yalniz belge": "elle derleme", izsiz: "kisi beyani" };
const z = gen([16, 10, 18, 16]);
console.log("\n" + z("obek", "kontrol", "cevabin kapsami", "cevabi ureten"));
for (const o of OBEK) {
  const k = KONTROL.filter((c) => obek(c) === o);
  console.log(z(o, k.length, KAPSAM[o], KAYNAK[o]));
}
const belge = KONTROL.filter((c) => obek(c) === "yalniz belge");
console.log(`\nyalniz belge obegi: ${belge.map((c) => c.kod).join(", ")}`);
const makine = KONTROL.filter((c) => obek(c) === "makine izli").length;
console.log(`26 denetim sorusunun ${makine}'i kayittan sorgulanarak, ` +
  `${belge.length}'si donem sonunda elle derlenerek cevaplaniyor; ` +
  `${KONTROL.length - makine - belge.length}'u hic cevaplanmiyor`);
uyumluluk yapisi     makine izli  yalniz belge    izsiz
islev-cerceve                  5             2        1
yonetim-sistemi                0             1        5
denetim-kumesi                 4             2        1
sektorel                       2             1        2
TOPLAM                        11             6        9

obek               kontrol   cevabin kapsami   cevabi ureten
makine izli             11        donem boyu           sorgu
yalniz belge             6           tek gun    elle derleme
izsiz                    9               yok     kisi beyani

yalniz belge obegi: IC-06, IC-07, YS-05, DK-03, DK-04, SG-02
26 denetim sorusunun 11'i kayittan sorgulanarak, 6'si donem sonunda elle derlenerek cevaplaniyor; 9'u hic cevaplanmiyor

Matrisin doluluk oranı yüzde 65’ti; cevabın kaynağına bakıldığında sayı 11/26‘ya, yüzde 42’ye iner. Aradaki altı kontrol matriste dolu görünür, denetimde bir belgeyle karşılanır ve o belge tek bir günü anlatır. Yedek geri yükleme tatbikatı bir gün koşmuştur, erişim gözden geçirme toplantısı bir gün yapılmıştır, veri sınıflandırma çalışması bir kez bitirilmiştir. Kontrolün sorusu ise dönemin tamamı hakkındadır: ayrıcalıklı erişim dönem boyunca gözden geçirildi mi. Tek günlük bir belge bu soruyu tam olarak cevaplamaz; onu bir örnekleme çevirir.

Üç obek, üç ayrı iş türüne karşılık gelir. İzsiz dokuz kontrol için yapılacak iş pratik kurmaktır — dördü ekibin kendi alanında, beşi başka bir katmanda. Yalnız belgeli altı kontrol için yapılacak iş pratik kurmak değildir; pratik zaten koşuyor, ondan makinece okunabilir iz çıkarmaktır. Makine izli on bir kontrol için ise yapılacak iş yalnızca izi denetimin sorduğu biçimde derlemektir. Bu üç iş birbirinden çok farklı bedeller taşır ve bir uyumluluk çalışmasını “yüzde 65 hazır” diye özetleyen bir tablo üçünü de aynı hücreye yazar.

Özet

  • Yirmi altı denetim maddesi ile bir uygulama ekibinin on sekiz pratiği arasında 25 bağ vardır; 17 kontrolün mühendislik karşılığı çıkar, 9’unun hiç çıkmaz.
  • Karşılığı olmayan dokuzun beşi tek bir uyumluluk yapısında toplanır ve karşılığı ekipte değil kurumun yönetim katmanındadır; kalan dördü doğrudan ekibin alanındadır. Boş hücreyi okumak, kimin işi olduğunun ayrı yazılmasını gerektirir.
  • Karşılığı olan kontrol ortalama 1,47 pratiğe düşer ve 10 kontrol tek bir pratiğe dayanır; sekiz pratik birden çok kontrolü karşılar, en kaldıraçlısı üç maddeye yeter.
  • İki pratik hiçbir kontrole düşmez. Bu, pratiğin gereksiz olduğunu değil, kontrol kümesinin bir mühendislik önceliği listesi olmadığını gösterir.
  • Cevabın kaynağına bakıldığında oran yüzde 65’ten yüzde 42’ye iner: 11 kontrol kayıttan sorguyla, 6’sı tek günü anlatan bir belgeyle cevaplanır, 9’u hiç cevaplanmaz.

Sonraki Adım

Matris koştu ve üç ayrı iş türü ayrıldı. Bunlardan ikisi bu dersin dışında kalıyor: izsiz kontroller için pratik kurmak bir mühendislik planı işidir, karşılığı başka katmanda olanlar ise ekibin listesinde bile değildir. Geriye ölçülebilir olan kalıyor — altı belgeli kontrol ve zaten makine izi bırakan on bir kontrol.

Sonraki ders bu on yedi kalemi kanıt üretimi ekseninde yeniden ele alır ve tek bir sayıyı izler: dönem sonunda elle toplanan kalem kaça iniyor. Kanıtın hatta üretilmesi elle derlemeyi bitirir mi, hangi kalem hiçbir koşulda otomatikleşmez, ve otomatik üretilen kanıt kaç kat hacim, kaç kişisel veri kalemi ve hangi saklama kısıtını beraberinde getirir?

İ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