---
title: Temizleme
source: 'https://academia.sh/tr/kurslar/guvenlik-operasyonlari/temizleme'
course: 'Güvenlik Operasyonları ve Olay Müdahalesi'
language: tr
updated: '2026-08-17T18:08:42+00:00'
license: 'CC BY-SA 4.0'
---

# Temizleme

Kalıcılığın kaldırılmasının tutunma noktası cinsinden ölçülmesi: dokuz etkilenen varlıkta 22 noktanın beş keşif yöntemiyle 506 dakikada 17'sinin bulunması, dört yapılandırma kancasının üçünün hiçbir yöntemle bulunamaması çünkü bellek sınırlamada ağdan alınan varlıklarda kaybolmuş olması, altı temizleme düzeninde kaçırılan noktanın 10'dan 0'a inerken toplam sürenin 353 dakikadan 1.361 dakikaya çıkması ve beş kaçırılan noktanın 60 günde 8 yeniden bulaşma üretip ilkini beşinci günde vermesi.

Önceki ders erişimi durdurdu. Kısa vadeli sınırlama 393. dakikada uygulandı, uzun vadeli eylemler
saatler içinde devreye girdi ve kesme kalktı. Duran şey erişimdi; uçlarda otomatik çalıştırılan
kalemler durmadı. Kısa vadeli kesme kalktığında ve varlıklar ağa döndüğünde, üzerlerinde ne varsa
onunla dönerler.

Temizlemenin ölçü birimi **tutunma noktasıdır**: otomatik çalıştırılan kalem. Nokta türlerinin
envanteri Uç Nokta Güvenliği kursunda ölçüldü; burada girdi olarak alınır. Bu derste sayılan üç
şey ayrıdır — kaç nokta **biliniyor**, kaçı **temizlendi**, kaçı **kaçırıldığında** yeniden bulaşma
üretiyor. Üçü aynı sayı değildir; aradaki fark bu dersin konusudur. Hiçbir kalıcılık kurma yöntemi
yazılmaz, sayılan şey noktanın kendisi ve üzerindeki keşif yöntemidir.

## Nokta Envanteri ve Keşif Yöntemleri

**OM22:** Önceki dersteki dokuz etkilenen varlıkta toplam 22 tutunma noktası vardır; yedi türe
dağılırlar ve her noktanın günlük yeniden etkinleşme olasılığı bir veridir. **OM23:** Beş keşif
yöntemi vardır ve her biri yalnız belirli türleri bulur: taban çizgisi karşılaştırma, süreç
oluşturma kaydı taraması, kimlik deposu denetimi, ağ akış verisi izleme ve bellek incelemesi.
**OM24:** Her yöntem her varlıkta uygulanamaz — taban çizgisi karşılaştırma taban çizgisi olan
varlıkta, süreç kaydı taraması süreç kaydı ileten varlıkta, **bellek incelemesi ise sınırlamada
ağdan alınmamış varlıkta** çalışır. **OM25:** Bulunan nokta kaldırılabilir ve nokta başına 8 dakika
sürer; bir varlığı yeniden kurmak 95 dakika sürer ve o varlıktaki bütün noktaları — bulunmamış
olanlar dahil — kaldırır. **OM26:** Kaçırılan nokta her gün kendi olasılığıyla yeniden etkinleşir;
tarama 60 gündür ve tohum 20260214'tür. Bütün zarlar baştan atılır, altı düzen aynı günlük diziyi
paylaşır.

```js
// temizleme/model.mjs — kalicilik temizleme modeli: gercek bir uc, kalicilik yontemi ya da
// betik yok. Tutunma noktalari, kesif yontemleri ve varlik ozellikleri veri yapisidir.

export const TOHUM = 20260214, GUN = 60;       // yeniden bulasma taramasi
export const YENIDEN_KURMA_DK = 95, KALDIRMA_DK = 8;   // varlik basina, nokta basina

// etkilenen varlik: ad -> { taban cizgisi var mi, surec kaydi iletiyor mu,
// sinirlamada agdan mi alindi (bellek kayboldu) }
export const VARLIK = {
  "toplayici-03": { taban: true, surec: true, agdan: true },
  "toplayici-07": { taban: true, surec: false, agdan: true },
  "toplayici-11": { taban: true, surec: false, agdan: true },
  "dogrulayici-01": { taban: true, surec: true, agdan: true },
  "dogrulayici-02": { taban: true, surec: true, agdan: true },
  "faturalama-01": { taban: true, surec: false, agdan: true },
  "portal-01": { taban: true, surec: false, agdan: false },
  "isemri-01": { taban: true, surec: false, agdan: false },
  "uc-01": { taban: false, surec: true, agdan: true },
};

// tutunma noktasi: [varlik, tur, gunluk yeniden etkinlesme olasiligi]
// M24/K05'te tur envanteri olculdu; burada girdi olarak alinir, yontem yazilmaz
export const NOKTA = [
  ["toplayici-03", "servis tanimi", 0.06], ["toplayici-03", "zamanlanmis gorev", 0.05],
  ["toplayici-03", "yapilandirma kancasi", 0.04], ["toplayici-07", "servis tanimi", 0.06],
  ["toplayici-07", "oturum betigi", 0.03], ["toplayici-11", "zamanlanmis gorev", 0.05],
  ["toplayici-11", "bellekte kalan kosum", 0.02], ["dogrulayici-01", "servis tanimi", 0.07],
  ["dogrulayici-01", "kimlik kalemi", 0.09], ["dogrulayici-01", "disa acilan baglanti", 0.05],
  ["dogrulayici-02", "kimlik kalemi", 0.09], ["dogrulayici-02", "yapilandirma kancasi", 0.04],
  ["faturalama-01", "kimlik kalemi", 0.08], ["faturalama-01", "oturum betigi", 0.03],
  ["faturalama-01", "disa acilan baglanti", 0.05], ["portal-01", "yapilandirma kancasi", 0.04],
  ["portal-01", "kimlik kalemi", 0.08], ["isemri-01", "zamanlanmis gorev", 0.05],
  ["isemri-01", "bellekte kalan kosum", 0.02], ["uc-01", "oturum betigi", 0.03],
  ["uc-01", "servis tanimi", 0.06], ["uc-01", "yapilandirma kancasi", 0.04],
];

// kesif yontemi: ad, varlik basina dakika, buldugu turler, hangi varlikta uygulanabilir
export const YONTEM = [
  ["taban cizgisi karsilastirma", 22, ["servis tanimi", "zamanlanmis gorev", "oturum betigi"],
    (v) => v.taban],
  ["surec olusturma kaydi taramasi", 14,
    ["servis tanimi", "zamanlanmis gorev", "bellekte kalan kosum"], (v) => v.surec],
  ["kimlik deposu denetimi", 9, ["kimlik kalemi"], () => true],
  ["ag akis verisi izleme", 11, ["disa acilan baglanti"], () => true],
  ["bellek incelemesi", 47, ["bellekte kalan kosum", "yapilandirma kancasi"], (v) => !v.agdan],
];

// secilen yontem kumesiyle bulunan nokta dizini ve harcanan dakika
export function kesfet(secili) {
  const bulunan = new Set();
  let dk = 0;
  for (const [ad, dakika, turler, uygun] of YONTEM) {
    if (!secili.includes(ad)) continue;
    for (const [a, v] of Object.entries(VARLIK)) {
      if (!uygun(v)) continue;
      dk += dakika;
      NOKTA.forEach(([na, nt], i) => { if (na === a && turler.includes(nt)) bulunan.add(i); });
    }
  }
  return { bulunan, dk };
}

export function uretec(tohum) {                    // dogrusal eslesmeli uretec
  let x = tohum >>> 0;
  return () => ((x = (x * 1664525 + 1013904223) >>> 0) / 2 ** 32);
}
// butun zarlar bastan atilir: kosumlar ayni gunluk diziyi paylasir
const Z = (() => { const z = uretec(TOHUM);
  return Array.from({ length: GUN * NOKTA.length }, () => z()); })();

// kacirilan nokta gunluk olasilikla yeniden etkinlesir; ilk etkinlesme ve toplam sayilir
export function bulasma(kacirilan) {
  let ilk = null, olay = 0;
  for (let g = 0; g < GUN; g++)
    for (const i of kacirilan)
      if (Z[g * NOKTA.length + i] < NOKTA[i][2]) { olay++; if (ilk === null) ilk = g + 1; }
  return { ilk, olay };
}

export function olc(secili, yenidenKurulan) {
  const { bulunan, dk } = kesfet(secili);
  const kurulan = new Set(yenidenKurulan);
  const temiz = new Set(bulunan);
  NOKTA.forEach(([a], i) => { if (kurulan.has(a)) temiz.add(i); });
  const kacirilan = NOKTA.map((_, i) => i).filter((i) => !temiz.has(i));
  const kaldirilan = [...bulunan].filter((i) => !kurulan.has(NOKTA[i][0])).length;
  return { bulunan: bulunan.size, temiz: temiz.size, kacirilan,
    kesifDk: dk, temizDk: kaldirilan * KALDIRMA_DK + kurulan.size * YENIDEN_KURMA_DK,
    kurulan: kurulan.size, ...bulasma(kacirilan) };
}
```

Ölçüm dosyası önce yöntemleri tek tek ekleyip her birinin kaç yeni nokta getirdiğini sayar, sonra
altı temizleme düzenini aynı envanterde koşturur.

```js
// temizleme/olc.mjs — kac tutunma noktasi var, kesif yontemi kacini buluyor, temizleme
// kacini kaldiriyor ve kacirilan nokta kac gun sonra yeniden bulasma uretiyor.
import { TOHUM, GUN, VARLIK, NOKTA, YONTEM, kesfet, olc } from "./model.mjs";

const yaz = (g, ...s) => console.log(s.map((v, i) =>
  (g[i] < 0 ? String(v).padEnd(-g[i]) : String(v).padStart(g[i]))).join(""));
const t0 = process.hrtime.bigint();
const TUM = YONTEM.map((y) => y[0]);
const V = Object.keys(VARLIK);
const TURLER = [...new Set(NOKTA.map(([, t]) => t))];

console.log(`${V.length} etkilenen varlikta ${NOKTA.length} tutunma noktasi, ` +
  `${TURLER.length} tur; ${YONTEM.length} kesif yontemi; tohum ${TOHUM}`);

console.log("\n1. kesif yontemi eklendikce bulunan nokta (kumulatif)");
const A = [-32, 10, 8, 12, 15, 16];
yaz(A, "yontem", "dk/varlik", "varlik", "yeni nokta", "kumul. nokta", "kumul. dakika");
let secili = [], oncekiN = 0;
for (const [ad, dakika, , uygun] of YONTEM) {
  secili = [...secili, ad];
  const k = kesfet(secili), uygunSay = V.filter((a) => uygun(VARLIK[a])).length;
  yaz(A, ad, dakika, uygunSay, k.bulunan.size - oncekiN, `${k.bulunan.size}/${NOKTA.length}`, k.dk);
  oncekiN = k.bulunan.size;
}

console.log("\n2. nokta turu ve onu bulabilen yontem sayisi");
const B = [-24, 8, 9, -40];
yaz(B, "tur", "nokta", "yontem", "   bulunamayan nokta / neden");
const tum = kesfet(TUM).bulunan;
for (const tur of TURLER) {
  const dizin = NOKTA.map((n, i) => [n, i]).filter(([n]) => n[1] === tur);
  const eksik = dizin.filter(([, i]) => !tum.has(i));
  yaz(B, tur, dizin.length, YONTEM.filter((y) => y[2].includes(tur)).length,
    eksik.length ? `   ${eksik.length}: ${eksik.map(([n]) => n[0]).join(", ")}` : "   -");
}

const KAPSAM = ["toplayici-03", "toplayici-07", "toplayici-11",
  "dogrulayici-01", "dogrulayici-02", "faturalama-01"];
const DUZEN = {
  "ucuz kesif": [[TUM[0], TUM[2]], []],
  "bellek disinda": [TUM.slice(0, 4), []],
  "tam kesif": [TUM, []],
  "tam kesif + kapsam kurma": [TUM, KAPSAM],
  "ucuz kesif + kapsam kurma": [[TUM[0], TUM[2]], KAPSAM],
  "tum varligi yeniden kurma": [TUM, V],
};

console.log(`\n3. alti temizleme duzeni (${GUN} gunluk yeniden bulasma taramasi)`);
const C = [-27, 9, 8, 11, 10, 10, 8, 14, 7];
yaz(C, "duzen", "bulunan", "temiz", "kacirilan", "kesif dk", "temiz dk", "kurma", "ilk bulasma",
  "olay");
const R = {};
for (const [ad, [s, k]] of Object.entries(DUZEN)) {
  const r = R[ad] = olc(s, k);
  yaz(C, ad, `${r.bulunan}/${NOKTA.length}`, r.temiz, r.kacirilan.length, r.kesifDk, r.temizDk,
    r.kurulan, r.ilk ? `${r.ilk}. gun` : "-", r.olay);
}

console.log("\n4. tam kesiften sonra kacirilan nokta");
for (const i of R["tam kesif"].kacirilan)
  yaz([-4, -16, -24, -18], "", NOKTA[i][0], NOKTA[i][1],
    `gunluk olasilik ${NOKTA[i][2].toFixed(2)}`);

console.log("\n5. kacirilan nokta basina dusen bedel");
const D = [-27, 11, 12, 21, 16];
yaz(D, "duzen", "toplam dk", "kacirilan", "dk/kapatilan nokta", "olay/kacirilan");
const taban = R["ucuz kesif"];
for (const [ad, r] of Object.entries(R)) {
  const kapali = r.temiz - taban.temiz, dk = r.kesifDk + r.temizDk - taban.kesifDk - taban.temizDk;
  yaz(D, ad, r.kesifDk + r.temizDk, r.kacirilan.length, kapali > 0 ? (dk / kapali).toFixed(0) : "-",
    r.kacirilan.length ? (r.olay / r.kacirilan.length).toFixed(1) : "-");
}

const ms = Number(process.hrtime.bigint() - t0) / 1e6;   // ham olcum basilmaz, bant denetlenir
console.log(`\nalti duzen ve ${GUN} gunluk tarama 500 ms bandinda: ${ms < 500 ? "evet" : "hayir"}`);
```

```
9 etkilenen varlikta 22 tutunma noktasi, 7 tur; 5 kesif yontemi; tohum 20260214

1. kesif yontemi eklendikce bulunan nokta (kumulatif)
yontem                           dk/varlik  varlik  yeni nokta   kumul. nokta   kumul. dakika
taban cizgisi karsilastirma             22       8           8           8/22             176
surec olusturma kaydi taramasi          14       4           1           9/22             232
kimlik deposu denetimi                   9       9           4          13/22             313
ag akis verisi izleme                   11       9           2          15/22             412
bellek incelemesi                       47       2           2          17/22             506

2. nokta turu ve onu bulabilen yontem sayisi
tur                        nokta   yontem   bulunamayan nokta / neden            
servis tanimi                  4        2   -                                    
zamanlanmis gorev              3        2   -                                    
yapilandirma kancasi           4        1   3: toplayici-03, dogrulayici-02, uc-01
oturum betigi                  3        1   1: uc-01                             
bellekte kalan kosum           2        2   1: toplayici-11                      
kimlik kalemi                  4        1   -                                    
disa acilan baglanti           2        1   -                                    

3. alti temizleme duzeni (60 gunluk yeniden bulasma taramasi)
duzen                        bulunan   temiz  kacirilan  kesif dk  temiz dk   kurma   ilk bulasma   olay
ucuz kesif                     12/22      12         10       257        96       0        3. gun     19
bellek disinda                 15/22      15          7       412       120       0        5. gun     11
tam kesif                      17/22      17          5       506       136       0        5. gun      8
tam kesif + kapsam kurma       17/22      20          2       506       610       6        5. gun      4
ucuz kesif + kapsam kurma      12/22      17          5       257       586       6        5. gun      9
tum varligi yeniden kurma      17/22      22          0       506       855       9             -      0

4. tam kesiften sonra kacirilan nokta
    toplayici-03    yapilandirma kancasi    gunluk olasilik 0.04
    toplayici-11    bellekte kalan kosum    gunluk olasilik 0.02
    dogrulayici-02  yapilandirma kancasi    gunluk olasilik 0.04
    uc-01           oturum betigi           gunluk olasilik 0.03
    uc-01           yapilandirma kancasi    gunluk olasilik 0.04

5. kacirilan nokta basina dusen bedel
duzen                        toplam dk   kacirilan   dk/kapatilan nokta  olay/kacirilan
ucuz kesif                         353          10                    -             1.9
bellek disinda                     532           7                   60             1.6
tam kesif                          642           5                   58             1.6
tam kesif + kapsam kurma          1116           2                   95             2.0
ucuz kesif + kapsam kurma          843           5                   98             1.8
tum varligi yeniden kurma         1361           0                  101               -

alti duzen ve 60 gunluk tarama 500 ms bandinda: evet
```
Sayılar **ölçüm** sınıfındadır; girdileri yukarıdaki varsayımlardır.

## Yöntem Eklendikçe Bulunan Nokta

Birinci tablo keşfi kümülatif olarak sayar. Taban çizgisi karşılaştırma sekiz varlıkta uygulanır,
176 dakika sürer ve tek başına 22 noktanın **sekizini** bulur. Süreç oluşturma kaydı taraması
yalnız dört varlıkta uygulanabilir — beş varlık süreç kaydı iletmez — ve 56 dakika karşılığında
**bir** yeni nokta getirir; bulduklarının geri kalanını taban çizgisi zaten bulmuştur. Kimlik deposu
denetimi dokuz varlıkta 81 dakikayla dört yeni nokta, ağ akış verisi izleme 99 dakikayla iki yeni
nokta ekler.

Son satır en pahalısıdır. Bellek incelemesi varlık başına 47 dakika sürer ve yalnız **iki** varlıkta
uygulanabilir: sınırlamada ağdan alınan yedi varlıkta bellek içeriği kaybolmuştur. 94 dakika
karşılığında iki yeni nokta getirir ve toplam 17'ye çıkarır. Beş nokta hiçbir yöntemle bulunamaz.

## Bulunamayan Beş Nokta

İkinci tablo kaybı türe indirir. Dört yapılandırma kancasının **üçü** bulunamaz, çünkü bu türü
yalnız bellek incelemesi bulur ve o yöntem `toplayici-03`, `dogrulayici-02` ve `uc-01` varlıklarında
uygulanamaz. `toplayici-11`'deki bellekte kalan koşum aynı nedenle kaybolur. `uc-01`'deki oturum
betiği başka bir nedenle kaçar: o varlığın taban çizgisi yoktur ve bu türü yalnız taban çizgisi
karşılaştırma bulur.

Dördüncü tablo bu beş noktayı adıyla yazar. Aralarındaki ortak nokta bir keşif eksikliği değil,
**bir sınırlama kararının yan etkisidir**. Önceki derste kısa vadeli sınırlama varlıkları ağdan
aldı ve erişimi 393. dakikada durdurdu; aynı karar, bellek incelemesini yedi varlıkta imkânsız
kıldı. Erken sınırlamanın üçüncü bir bedeli buradadır ve önceki dersin tablolarında görünmez.

## Altı Düzen ve Yeniden Bulaşma

Üçüncü tablo temizleme düzenlerini karşılaştırır. Ucuz keşif — taban çizgisi ve kimlik denetimi —
257 dakikada 12 nokta bulur, 10'unu kaçırır ve 60 günde **19 yeniden bulaşma** üretir; ilki üçüncü
gündedir. Tam keşif 506 dakikada 17 nokta bulur, beşini kaçırır ve sekiz olay üretir; ilki beşinci
gündedir.

Kaçırılan noktayı kapatmanın tek yolu, o noktanın bulunmasını beklemek değil, varlığı yeniden
kurmaktır. Tam keşife altı kapsam varlığının yeniden kurulması eklendiğinde temiz nokta 17'den
**20**'ye çıkar — kurulan varlıklardaki bulunmamış noktalar da kalkar — kaçırılan ikiye iner ve
olay dörde düşer. Dokuz varlığın hepsini yeniden kurmak kaçırılanı sıfıra indirir ve 60 günde hiç
yeniden bulaşma olmaz.

Beşinci tablo bunun dakikasını verir. Ucuz keşif toplam 353, tam keşif 642, tam keşif artı kapsam
kurma 1.116, hepsini yeniden kurma 1.361 dakikadır. Ucuz keşife göre kapatılan nokta başına maliyet
tam keşifte 58, kapsam kurmada 95, tam yeniden kurmada 101 dakikadır. Dikkat çeken satır **ucuz
keşif artı kapsam kurma**dır: 843 dakikada 17 nokta temizler, yani tam keşifle aynı sayıyı 201
dakika daha pahalıya alır ve beş nokta yine açık kalır. Yeniden kurma keşfin yerini tutmaz — yalnız
kurulan varlıkta tutar.

## Özet

- Dokuz etkilenen varlıkta 22 tutunma noktası vardır; beş keşif yöntemi 506 dakikada 17'sini bulur,
  beşi hiçbir yöntemle bulunamaz.
- Yöntemlerin marjinal katkısı eşit değildir: taban çizgisi karşılaştırma 176 dakikada sekiz nokta,
  süreç kaydı taraması 56 dakikada bir nokta, bellek incelemesi 94 dakikada iki nokta getirir.
- Dört yapılandırma kancasının üçü ve bir bellekte kalan koşum, bellek incelemesi yedi varlıkta
  uygulanamadığı için kaçar; bu varlıklar sınırlamada ağdan alınmıştır.
- Kaçırılan beş nokta 60 günde sekiz yeniden bulaşma üretir ve ilki beşinci gündedir; on nokta
  kaçırıldığında olay 19'a çıkar ve ilki üçüncü güne iner.
- Kaçırılanı sıfıra indirmenin tek yolu varlığı yeniden kurmaktır: dokuz varlık 1.361 dakika
  tutar, kapatılan nokta başına 101 dakika.

## Sonraki Adım

Noktalar temizlendi ve kaçırılan sayısı yazıldı. Bundan sonrası hizmetin geri getirilmesidir ve
orada yeni bir soru çıkar: yeniden kurulan varlık hangi noktaya geri dönecek. Yedeklerin bir bölümü
ilk tutunma anından sonra alınmıştır ve o yedeklerde noktalar durur. Sonraki ders kurtarmayı yeniden
bulaşma riski ekseninde ölçer: hangi yedeğe dönmek temiz, temiz yedeğe dönmek kaç kalemi kaybettirir,
kaç kalem elle yeniden kurulur ve denetimli geri getirmenin kaç aşaması yeniden bulaşmayı hangi
aşamada yakalar.
