İçeriğe geç
academia.sh

Ders 07 / 17

Yönetim Sistemi Standartları

Belgelendirilebilir yönetim sistemi modelinin kapsam bildirimi, uygulanabilirlik bildirimi, iç denetim ve dış belgelendirme döngüsüyle koşturulması: 23 kalemlik envanterde dar kapsamın 100 kontrol maddesinin 25'ini uygulama dışı bırakması, toplam riskin yüzde 76'sını belgenin dışında tutması ve 15 kalemi dış taraf hâline getirmesi, 20 uygunsuzluk/tur düzeltme kapasitesinin geniş kapsamda belgeyi engellemesi ve mutlak maliyet sırasıyla birim risk başına maliyet sırasının tam ters çıkması.

İçindekiler

Önceki ders dağınık kontrolleri karşılaştırılabilir beş sayıya indirdi, ama o sayıları kurumun kendisi hesapladı. Düzeyleri kurum atadı, ortalamayı kurum aldı. Dışarıdan bakan biri için bu, iyi düzenlenmiş bir öz beyandır; öz beyanın kanıt değeri, beyanı verenin çıkarına bağlıdır.

Bu dersin konusu o bağı koparan yapıdır: belgelendirilebilir yönetim sistemi standardı. Dört adımlı bir döngü tanımlar — kapsam bildirimi, uygulanabilirlik bildirimi, iç denetim, dış belgelendirme — ve döngünün sonunda kurum dışı bir taraf bir karar verir. Kararın kendisi ikili olduğu için (“verilir” ya da “verilmez”) döngünün asıl ölçüsü karar değildir; kapsamdır. Belge her zaman bir kapsam için verilir ve kapsamı kurum kendi seçer. Bu ders kapsam seçiminin ne sakladığını sayar. Hiçbir standart, belgelendirme kuruluşu ya da program adı geçmez.

Kapsam Bildirimi ve Uygulanabilirlik Bildirimi

Kapsam bildirimi, yönetim sisteminin hangi birimleri, hangi yerleri ve hangi varlıkları kapsadığını yazan tanımdır. Uygulanabilirlik bildirimi ise standardın kontrol maddelerinden hangilerinin uygulandığını, uygulanmayanların hangi gerekçeyle dışarıda bırakıldığını madde madde listeler. İkisi birlikte okunmadıkça belge tek başına bir şey söylemez: kapsam neyin denetlendiğini, uygulanabilirlik bildirimi ise kapsam içinde bile neyin denetlenmediğini verir.

  • CE7. Envanter, önceki konudan gelen kurgu bölgesel ölçüm ağıdır: 23 kalem, altı birim, dört bölge. Risk puanları önceki konunun sıralamasından alınır ve kurgudur.
  • CE8. Standardın kontrol kümesi 100 maddedir ve 12 özellik öbeğine bölünmüştür. Bir öbek, ancak kapsam içinde o özelliği taşıyan en az bir kalem varsa uygulanabilir sayılır.
  • CE9. Üç kapsam bildirimi karşılaştırılır: dar (yalnız faturalama birimi), orta (faturalama, ölçüm ve kimlik birimlerinin saha dışı kalemleri), geniş (bütün envanter).
  • CE10. Kapsam dışında kalıp kapsam içi bir kalemle aynı özelliği paylaşan kalem, belgede dış taraf olarak görünür: arayüzü vardır, denetimi yoktur.
  • CE11. İç denetim uygulanan kontrollerin tamamını tarar; her öbeğin bilinen bir uygunsuzluk oranı vardır (kurgu).
  • CE12. Düzeltme kapasitesi turda 20 uygunsuzluktur. Dış belgelendirme denetimi uygulanan kontrollerin yüzde 40’ına bakar ve iki maddeden çok uygunsuzluk görürse belge verilmez.
  • CE13. Denetim süresi ⌈kalem/2⌉ + ⌈uygulanan kontrol/15⌉ gündür: sabit bir kapsam gezme yükü ile madde başına artan bir inceleme yükü.
// sistem/kapsam.mjs — belgelendirilebilir yonetim sisteminde kapsam bildirimi.
// MODELDIR: bolgesel olcum agi (kurgu); kalemler, risk puanlari ve kontrol sayilari kurgudur.
export const satir = (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("");

// ad | birim | bolge | risk puani (onceki konudan gelir) | ozellikler
export const KALEM = satir(`
  fatura-uygulamasi|faturalama|merkez|8|kisisel-veri odeme-verisi gelistirme yedekleme
  fatura-veritabani|faturalama|merkez|9|kisisel-veri odeme-verisi kriptografi yedekleme
  odeme-gecidi-baglantisi|faturalama|kiralanan|7|odeme-verisi tedarikci kriptografi
  abone-portali|faturalama|kiralanan|8|kisisel-veri uzak-erisim bulut-hesabi
  fatura-rapor-servisi|faturalama|kiralanan|4|kisisel-veri bulut-hesabi
  toplayici-servis|olcum|merkez|7|bulut-hesabi yedekleme gelistirme
  dogrulayici-servis|olcum|merkez|6|bulut-hesabi gelistirme
  saha-sayac-agi|olcum|saha|9|saha-cihazi kablosuz kriptografi
  saha-el-terminali|olcum|saha|6|saha-cihazi kablosuz uzak-erisim
  sube-ucu|olcum|saha|5|saha-cihazi fiziksel-tesis
  kimlik-saglayici|kimlik|merkez|9|uzak-erisim kriptografi olay-mudahale
  yonetici-atlama-konagi|kimlik|merkez|8|uzak-erisim kriptografi
  dizin-servisi|kimlik|merkez|7|kisisel-veri uzak-erisim
  is-emri-servisi|saha-operasyon|merkez|5|kisisel-veri gelistirme
  saha-ekip-uygulamasi|saha-operasyon|saha|4|kisisel-veri uzak-erisim saha-cihazi
  arac-takip-baglantisi|saha-operasyon|tedarikci|5|kisisel-veri tedarikci
  veri-merkezi-alani|tesis|merkez|6|fiziksel-tesis yedekleme
  sube-deposu|tesis|saha|3|fiziksel-tesis
  gunluk-toplama-hatti|guvenlik|merkez|7|olay-mudahale bulut-hesabi yedekleme
  nobet-ve-mudahale|guvenlik|merkez|6|olay-mudahale
  bakim-tedarikcisi-erisimi|tedarik|tedarikci|8|tedarikci uzak-erisim
  bulut-tedarikcisi-hesabi|tedarik|tedarikci|7|tedarikci bulut-hesabi
  danisman-gelistirme-erisimi|tedarik|tedarikci|6|tedarikci gelistirme`)
  .map(([ad, birim, bolge, risk, oz]) =>
    ({ ad, birim, bolge, risk: +risk, oz: oz.split(" ") }));

// Kontrol kumesi: her ozellik bir kontrol obegini tetikler.
// ozellik | kontrol sayisi | ic denetimde uygunsuz cikan oran (yuzde)
export const OBEK = satir(`
  kisisel-veri|12|25
  odeme-verisi|9|22
  kriptografi|8|25
  uzak-erisim|11|18
  bulut-hesabi|10|30
  saha-cihazi|7|43
  kablosuz|5|40
  fiziksel-tesis|6|17
  yedekleme|8|38
  olay-mudahale|7|29
  gelistirme|9|33
  tedarikci|8|50`)
  .map(([ozellik, n, oran]) => ({ ozellik, n: +n, oran: +oran }));

export const TOPLAM_KONTROL = OBEK.reduce((a, o) => a + o.n, 0);
export const TOPLAM_RISK = KALEM.reduce((a, k) => a + k.risk, 0);

// Uc kapsam bildirimi. Kapsam, kalem kumesini secen bir yuklemdir.
export const KAPSAM = [
  ["dar", (k) => k.birim === "faturalama"],
  ["orta", (k) => ["faturalama", "olcum", "kimlik"].includes(k.birim) && k.bolge !== "saha"],
  ["genis", () => true],
];

export const ic = (yuklem) => KALEM.filter(yuklem);
export const ozellikler = (kume) => new Set(kume.flatMap((k) => k.oz));
export const uygulanabilir = (kume) => {
  const o = ozellikler(kume);
  return OBEK.filter((b) => o.has(b.ozellik));
};
// Sinir arayuzu: kapsam disinda kalip kapsam ici bir kalemle ayni ozelligi
// paylasan kalem, belgede "dis taraf" olarak gorunur (model varsayimi).
export const disTaraf = (kume) => KALEM.filter((b) =>
  !kume.includes(b) && b.oz.some((o) => kume.some((a) => a.oz.includes(o))));

if (import.meta.url === `file://${process.argv[1]}`) {
  console.log(`model: ${KALEM.length} kalem, toplam risk ${TOPLAM_RISK}, ` +
    `${OBEK.length} ozellik obegi, ${TOPLAM_KONTROL} kontrol maddesi`);
  const y = gen([8, 8, 10, 12, 14, 17, 12]);
  console.log("\n" + y("kapsam", "kalem", "kapsam %", "uygulanan", "uygulanmayan",
    "disarida risk %", "dis taraf"));
  for (const [ad, yuklem] of KAPSAM) {
    const kume = ic(yuklem);
    const u = uygulanabilir(kume).reduce((a, b) => a + b.n, 0);
    const risk = kume.reduce((a, k) => a + k.risk, 0);
    console.log(y(ad, kume.length, (100 * kume.length / KALEM.length).toFixed(0),
      u, TOPLAM_KONTROL - u, (100 * (TOPLAM_RISK - risk) / TOPLAM_RISK).toFixed(1),
      disTaraf(kume).length));
  }
  // Dar kapsamda uygulanmayan obekler ve disarida kalan risk kalemleri
  const dar = ic(KAPSAM[0][1]);
  const yok = OBEK.filter((b) => !ozellikler(dar).has(b.ozellik));
  console.log(`\ndar kapsamda uygulanmayan obek: ` +
    `${yok.map((b) => `${b.ozellik} (${b.n})`).join(", ")}`);
  const disRisk = KALEM.filter((k) => !dar.includes(k)).sort((a, b) => b.risk - a.risk).slice(0, 4);
  console.log(`dar kapsamin disinda kalan en yuksek riskli dort kalem: ` +
    `${disRisk.map((k) => `${k.ad} (${k.risk})`).join(", ")}`);
}
model: 23 kalem, toplam risk 150, 12 ozellik obegi, 100 kontrol maddesi

kapsam     kalem  kapsam %   uygulanan  uygulanmayan  disarida risk %   dis taraf
dar            5        22          75            25             76.0          15
orta          10        43          82            18             51.3          11
genis         23       100         100             0              0.0           0

dar kapsamda uygulanmayan obek: saha-cihazi (7), kablosuz (5), fiziksel-tesis (6), olay-mudahale (7)
dar kapsamin disinda kalan en yuksek riskli dort kalem: saha-sayac-agi (9), kimlik-saglayici (9), yonetici-atlama-konagi (8), bakim-tedarikcisi-erisimi (8)

Tablonun okunacak yeri üçüncü ve beşinci sütunların arasıdır. Dar kapsam envanterin yüzde 22’sini alıyor ve 100 kontrol maddesinin 75’ini uyguluyor. Bu oransızlık kapsam bildiriminin en kolay yanlış okunan yanıdır: kapsam beşte bire indiği hâlde kontrol maddesi yalnız dörtte bir azalıyor, çünkü kontrol maddeleri kalem sayısıyla değil özellik çeşitliliğiyle ölçeklenir. Faturalama birimi tek başına kişisel veri, ödeme verisi, kriptografi, uzak erişim, bulut hesabı, geliştirme, yedekleme ve tedarikçi bağlantısı taşır; on iki öbeğin sekizini tetikler.

Belgeyi okuyan taraf için sonuç şudur: “yüz maddenin yetmiş beşi uygulanmıştır” cümlesi geniş bir kapsam izlenimi verir, oysa envanterin yüzde 78’i ve toplam riskin yüzde 76’sı dışarıdadır. Dışarıda kalanlar da rastgele değildir — dört en yüksek riskli kalemden ikisi risk puanı 9 olan saha sayaç ağı ve kimlik sağlayıcıdır. Uygulanmayan dört öbek de bunu doğruluyor: saha cihazı, kablosuz, fiziksel tesis ve olay müdahalesi. Bu dört öbek, faturalama birimi hiçbir saha cihazı ve tesis taşımadığı için “uygulanamaz” damgası yiyor; damganın gerekçesi biçimsel olarak doğrudur ve sonuç yine de yanıltıcıdır.

Orta kapsam ara bir durum değil, farklı bir tercihtir: kalem sayısını iki katına çıkarıyor ve uygulanan madde sayısını yalnız 75’ten 82’ye taşıyor. Eklenen yedi madde olay müdahalesi öbeğinden geliyor, çünkü kimlik sağlayıcı o özelliği taşıyan ilk kapsam içi kalemdir. Kapsamı genişletmenin kontrol tarafındaki bedeli, eklenen kalemlerin yeni özellik getirip getirmediğine bağlıdır; aynı özellikleri taşıyan bir kalem eklemek uygulanabilirlik bildirimini hiç değiştirmez.

Son sütun bu yanılgının adını koyuyor. Dar kapsamda 15 kalem dış taraf sayılıyor: sistemle arayüzü var, denetimi yok. Bir belge, kapsam sınırındaki arayüzleri “dış taraf” başlığı altında toplar ve o tarafın kendi kontrollerini kanıtlamasını bekler. Kurumun kendi kalemleri kendi belgesinde dış taraf olarak görünüyorsa, kapsam sınırı kurumu ikiye bölmüş demektir. Uygulanabilirlik bildiriminin belgeyle birlikte istenmesinin nedeni budur: dışarıda kalan 25 maddeyi ve gerekçesini yalnız o belge listeler.

Döngü ve Düzeltme Kapasitesi

Kapsam seçildikten sonra döngünün geri kalanı koşar: iç denetim uygulanan kontrolleri tarar, bulunanlar düzeltilir, dış belgelendirme denetimi örneklem alır ve karar verir.

// sistem/dongu.mjs — ic denetim ve dis belgelendirme dongusu ayni uc kapsamda kosturulur.
import { KALEM, KAPSAM, TOPLAM_KONTROL, TOPLAM_RISK, ic, uygulanabilir, disTaraf, gen }
  from "./kapsam.mjs";

const DUZELTME = 20;   // bir turda duzeltilebilen uygunsuzluk sayisi (kurgu kapasite)
const ORNEK = 0.4;     // dis belgelendirme denetimi uygulanan kontrollerin %40'ina bakar
const ESIK = 2;        // dis denetimde 2'den cok uygunsuzluk gorulurse belge verilmez
const gunHesap = (kalem, kontrol) => Math.ceil(kalem / 2) + Math.ceil(kontrol / 15);

const y = gen([8, 11, 10, 12, 8, 14, 11, 10]);
console.log(`${TOPLAM_KONTROL} kontrol maddesi, ${KALEM.length} kalem, toplam risk ` +
  `${TOPLAM_RISK}; duzeltme kapasitesi ${DUZELTME} uygunsuzluk/tur (kurgu)`);
console.log("\n" + y("kapsam", "uygulanan", "ic bulgu", "duzeltilen", "kalan",
  "dis orneklem", "yakalanan", "belge"));
const sonuc = [];
for (const [ad, yuklem] of KAPSAM) {
  const kume = ic(yuklem), obek = uygulanabilir(kume);
  const uygulanan = obek.reduce((a, b) => a + b.n, 0);
  const bulgu = obek.reduce((a, b) => a + Math.round(b.n * b.oran / 100), 0);
  const kalan = Math.max(0, bulgu - DUZELTME);
  const orneklem = Math.round(uygulanan * ORNEK);
  const yakalanan = Math.round(kalan * ORNEK);
  const risk = kume.reduce((a, k) => a + k.risk, 0);
  const gun = gunHesap(kume.length, uygulanan);
  sonuc.push({ ad, kume, uygulanan, bulgu, kalan, yakalanan, risk, gun });
  console.log(y(ad, uygulanan, bulgu, Math.min(bulgu, DUZELTME), kalan, orneklem, yakalanan,
    yakalanan > ESIK ? "yok" : "verilir"));
}

const z = gen([8, 11, 11, 9, 12, 15, 11]);
console.log("\n" + z("kapsam", "kapsanan", "disarida", "gun", "gun / risk", "disarida kalem",
  "dis taraf"));
for (const s of sonuc) {
  console.log(z(s.ad, s.risk, TOPLAM_RISK - s.risk, s.gun, (s.gun / s.risk).toFixed(3),
    KALEM.length - s.kume.length, disTaraf(s.kume).length));
}
const ucuz = [...sonuc].sort((a, b) => a.gun - b.gun).map((s) => s.ad);
const verimli = [...sonuc].sort((a, b) => a.gun / a.risk - b.gun / b.risk).map((s) => s.ad);
console.log(`\nmutlak maliyet sirasi : ${ucuz.join(" < ")}`);
console.log(`birim risk basina sira: ${verimli.join(" < ")}`);

const [dar, , genis] = sonuc;
console.log(`\ndar kapsam ${genis.gun - dar.gun} denetim gunu ve ` +
  `${genis.bulgu - dar.bulgu} ic bulgu tasarruf ediyor; karsiliginda ` +
  `${TOPLAM_RISK - dar.risk} risk puani ve ${TOPLAM_KONTROL - dar.uygulanan} kontrol maddesi ` +
  `belgenin disinda kaliyor`);
const dis = disTaraf(dar.kume).filter((k) => k.risk >= 7);
console.log(`dar kapsamda dis taraf sayilan ${disTaraf(dar.kume).length} kalemin ` +
  `${dis.length} tanesinin risk puani 7 ve uzeri: ${dis.map((k) => k.ad).join(", ")}`);
console.log(`genis kapsamda kalan uygunsuzluk ${genis.kalan}; belgenin verilmesi icin ` +
  `duzeltme kapasitesinin ${Math.ceil(genis.bulgu - ESIK / ORNEK)} olmasi gerekirdi ` +
  `(su an ${DUZELTME})`);
100 kontrol maddesi, 23 kalem, toplam risk 150; duzeltme kapasitesi 20 uygunsuzluk/tur (kurgu)

kapsam    uygulanan  ic bulgu  duzeltilen   kalan  dis orneklem  yakalanan     belge
dar              75        22          20       2            30          1   verilir
orta             82        24          20       4            33          2   verilir
genis           100        30          20      10            40          4       yok

kapsam     kapsanan   disarida      gun  gun / risk disarida kalem  dis taraf
dar              36        114        8       0.222             18         15
orta             73         77       11       0.151             13         11
genis           150          0       19       0.127              0          0

mutlak maliyet sirasi : dar < orta < genis
birim risk basina sira: genis < orta < dar

dar kapsam 11 denetim gunu ve 8 ic bulgu tasarruf ediyor; karsiliginda 114 risk puani ve 25 kontrol maddesi belgenin disinda kaliyor
dar kapsamda dis taraf sayilan 15 kalemin 8 tanesinin risk puani 7 ve uzeri: toplayici-servis, saha-sayac-agi, kimlik-saglayici, yonetici-atlama-konagi, dizin-servisi, gunluk-toplama-hatti, bakim-tedarikcisi-erisimi, bulut-tedarikcisi-hesabi
genis kapsamda kalan uygunsuzluk 10; belgenin verilmesi icin duzeltme kapasitesinin 25 olmasi gerekirdi (su an 20)

Birinci tablo döngünün en sert sonucunu veriyor: kapsamı genişletmek belgeyi kaybettiriyor. Dar ve orta kapsamda düzeltme kapasitesi iç bulguları yutuyor, geriye iki ve dört uygunsuzluk kalıyor, dış denetimin örneklemi bunların birini ve ikisini görüyor, eşik aşılmıyor ve belge veriliyor. Geniş kapsamda iç bulgu 30’a çıkıyor, kapasite yine 20, kalan 10, örneklemde dört uygunsuzluk görünüyor ve belge verilmiyor. Son satır bunu kapasiteye çeviriyor: geniş kapsamın belge alması için düzeltme kapasitesinin 20 değil 25 olması gerekirdi.

Bu, uyum çalışmasının en yanlış anlaşılan yerini açıklıyor. Kapsamı daraltmak bir hile değil, kapasitenin yetmediği yerde belgeyi alabilmenin tek yoludur; kurum aynı kapasiteyle daha çok kalem denetlemeyi seçtiğinde uygunsuzluk sayısı büyür ve karar tersine döner. Belge, güvenliğin düzeyini değil, kapsam ile düzeltme kapasitesi arasındaki oranı ölçer. Aynı kurum, hiçbir kontrolünü değiştirmeden, yalnız kapsam cümlesini kısaltarak belgeli hâle gelir.

İkinci tablo kursun sıralama eksenini bu karara bağlıyor. Mutlak maliyet sırası dar, orta, geniş biçimindedir — dar kapsam 8, geniş kapsam 19 gün tutuyor. Birim risk başına maliyet sırası ise tam tersidir: dar kapsam kapsadığı risk puanı başına 0,222 gün, geniş kapsam 0,127 gün harcıyor. Nedeni denetimin sabit yükündedir; kapsam küçüldükçe sabit yük daha az riske bölünür. En ucuz belge, kapsadığı risk birimi başına en pahalı belgedir. Aynı veriden iki sıralama çıkıyor ve ikisi de doğru; hangisinin kullanılacağı, sorunun “bu belge kaça mal olur” mu yoksa “bu para ne kadar riski denetim altına alır” mı olduğuna bağlıdır.

Özet

  • Belgelendirilebilir yönetim sistemi dört adımlı bir döngüdür — kapsam bildirimi, uygulanabilirlik bildirimi, iç denetim, dış belgelendirme — ve kararı kurum dışı bir taraf verir; ama kapsamı kurum seçer.
  • Kontrol maddeleri kalem sayısıyla değil özellik çeşitliliğiyle ölçeklenir: dar kapsam envanterin yüzde 22’sini alıyor ama 100 maddenin 75’ini uyguluyor. “Yüz maddenin yetmiş beşi” cümlesi geniş kapsam izlenimi verir.
  • Dar kapsamın bedeli üç sayıdır: 25 kontrol maddesi uygulama dışı, toplam riskin yüzde 76’sı belgenin dışında, 15 kalem dış taraf — bunların sekizinin risk puanı 7 ve üzeridir.
  • Belge kararını kapsam ile düzeltme kapasitesi arasındaki oran belirliyor: 20 uygunsuzluk/tur kapasiteyle dar ve orta kapsam belge alıyor, geniş kapsam alamıyor; alması için kapasitenin 25 olması gerekirdi.
  • Mutlak maliyet sırası (dar, orta, geniş) ile birim risk başına maliyet sırası (geniş, orta, dar) tam ters çıkıyor: en ucuz belge, kapsadığı risk birimi başına en pahalı belgedir.

Sonraki Adım

İki ders iki ölçü kurdu: olgunluk düzeyi kontrolün ne kadar kurumsallaştığını, kapsam bildirimi denetimin nereye kadar uzandığını söylüyor. İkisi de kontrolün kendisi hakkındadır. Belgeyi ya da olgunluk raporunu okuyan tarafın sorduğu soru ise başkadır: benim gereksinimim şu — bunu hangi kontrol karşılıyor ve karşıladığını gösteren kalem nerede.

Bu soru bire bir bir eşleme değildir. Bir kontrol birden çok gereksinimi karşılayabilir, bir gereksinim birden çok kontrol ister ve bazı gereksinimler hiçbir kontrole bağlanmaz. Sonraki ders konunun en önemli parçasıdır: kontrol ile gereksinim arasındaki matrisi koşturur, hiçbir kontrolle karşılanmayan gereksinimi ve karşılanmış görünüp kanıtı olmayan gereksinimi ayırır, bir kontrolü kanıtlamanın kaç kalem üretmeyi gerektirdiğini sayar.

İ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