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.