Audit va o’zgarmas jurnallar
Audit va o’zgarmas jurnallar
1) Nima uchun bu zarur?
Auditdan ko’zlangan maqsad xavfsizlikni, tekshiruvlarni, moliyaviy hisobotni va talablarga muvofiqlikni qo’llab-quvvatlash uchun «kim, nima, qayerda, qachon va nima uchun» ni yaxlitlikda qayd etishdan iborat.
O’zgarmas jurnal - hodisalar faqat qo’shish (append-only) orqali yoziladigan, keyingi o’zgartirish/olib tashlash mumkin bo’lmagan yoki kriptografik vositalar va saqlash siyosati orqali aniqlanadigan format va ombor.
2) Tahdidlar modeli va nazorat maqsadlari
Tavakkalchiliklar:- Insayder tomonidan voqealarni qasddan tuzatish/olib tashlash.
- Vaqt/manbani almashtirish (replay/backdating).
- Tugunni «jimgina» oʻchirish.
- Avariyalar/migratsiyalar chog’ida jurnalning bir qismini yo’qotish.
- PII ortiqcha yig’ish va maxfiylik bilan kelishmovchilik.
1. Yaxlitlik: modifikatsiya/o’chirishdan himoya qilish bilan isbotlanadigan.
2. Tugallik: asosiy oqimlarni yopish (control plane, data plane, kirish, pul).
3. Vaqt aniqligi: takrorlanadigan, sinxronlashtirilgan vaqt.
4. Foydalanish imkoniyati: SLO doirasida oʻqish va qidirish.
5. Maxfiylik: minimal PII, tokenlash/shifrlash, foydalanish qonuniyligi.
3) Voqealarning taksonomiyasi va ustuvorliklari
Hodisalarni retensiya va o’zgarmaslikni ustuvor ko’rsatadigan qatlamlarga ajrating:- Control Plane: autentifikatsiya/avtorizatsiya, konfiguratsiyalarni o’zgartirish, kalitlar bilan operatsiyalar (KMS), sirlarni boshqarish, siyosatni o’zgartirish.
- Data Plane: obyektlarga/yozuvlarga/chekautlarga/to’lovlarga kirish; oʻqish/yaratish/oʻchirish.
- Admin va DevOps: SSH/konsol, CI/CD, infratuzilmani o’zgartirish/IaC, huquqlarni kuchaytirish.
- Mahsulotlar: tranzaksiyalar, billing, mijozlar operatsiyalari.
- Tizim/tarmoq: yadro/agentlar/proksi/balanschilar, brokyerlar, DB.
- Xavfsizlik: IDS/IPS/EDR, WAF, anti-DDoS, antifrod, DLP.
Har bir sinf uchun quyidagilarni belgilaymiz: sinf, sxema, majburiy maydonlar, saqlash muddati, o’zgarmaslikka qo’yiladigan talablar.
4) Majburiy maydonlar va format
Korrelyatsiya identifikatorlari:’trace _ id’,’span _ id’,’request _ id’,’actor _ id’(foydalanuvchi/xizmat),’tenant _ id’,’resource _ id’.
A&A konteksti: autentifikatsiya usuli, amaldagi rol/siyosat.
Vaqt: RFC3339/UTC, millisekund/nanosekund; sinxronlash manbai.
Amal qilish va natija: operatsiya turi, maqsadi, maqomi, ta’sir ko’rsatilgan obyektlar soni.
Yaxlitlik: lokal HMAC yozuvlar, tartib raqami (sequence), hash-prev.
Sxema: JSON barqaror modelga ega (masalan, umumiy voqealar lug’atlari bilan mos keladi).
Sirlar, kalitlar, to’liq PANlar, parollar, shaxsiy kalitlar taqiqlangan. PII - faqat zarurat bo’lganda, niqoblangan/tokenlashtirilgan holda.
5) Vaqt va sinxronlashtirish
Vaqt manbai: kamida ikkita mustaqil manba (NTP/PTP) + siljish monitoringi.
Tanqidiy vaqt imzolari: Vaqtni ishonchli belgilash (TSA) xizmatlaridan yoki voqealar qutisi uchun ichki time-sealing xizmatidan foydalaning.
Qoidalar: lokal vaqt zonalari yo’q, faqat UTC; vaqt/vaqt sifatini belgilash.
6) Loglar oqimi arxitekturasi
Agentlar → Bufer → Transport → Landing → Xesh-zanjir/imzo → Sovuq/Arxiv → Qidiruv indeksi.
Tugunda yigʻish: yengil agentlar (daemonset/sidecar) diskda bufer bilan (back-pressure).
Transport: himoyalangan kanal (TLS/mTLS), kafolatlangan yetkazib berish (at-least-once), idempotent-ingest.
Landing-zona: «xom» shakldagi obyekt ombori (sana/tenant/tur bo’yicha partiyalar).
Indeks: onlayn soʻrovlar uchun qidiruv/tahlil dvigateli (issiq qatlam).
Arxiv (WORM): retensiya siyosati va yuridik hold.
Anchor/Seal: xesh-zanjirlar qutilarini davriy «yopish» (quyida qarang).
7) Kriptografik o’zgaruvchanlik
7. 1 Xesh zanjiri (append-only)
Har bir yozuvda’hash _ curr = H (record)’,’hash _ prev’oldingi yozuvdan,’seq’mavjud. Har qanday tuzatish zanjirni buzadi.
Zanjirning soxta hujjati:
prev = GENESIS for record in stream:
payload = canonical_json(record_without_integrity_fields)
h = H(payload prev.hash record.seq)
store(record + {hash_prev: prev.hash, hash_curr: h})
prev = {hash: h}
7. 2. Pachkalar imzosi va vaqt shtampi
Har bir N soniya/MB blokni shakllantiramiz: Merklning ildizi hamma’hash _ curr’.
Blokni audit kaliti bilan imzolaymiz (doimiy ravishda KMS/HSMda saqlanadi).
TSA vaqt belgisini qo’shing va «bloklar katalogi» (Transparency Log) ni e’lon qiling.
Ixtiyoriy: vaqti-vaqti bilan ildizni tashqi isbotlanadigan makonga (masalan, mustaqil jurnal yoki ommaviy o’zgarmas ombor) langarim.
7. 3 Audit kalitlarini boshqarish
Imzo kalitlari - KMS/HSM, grafik bo’yicha rotatsiya, ko’p faktorli kirish, eksport uchun dual-control.
Kalit → yangi ishonch shoxobchasi eski imzolar tekshiriladi.
8) Saqlash siyosati va WORM
WORM/immutability: P0/P1 sinflari uchun Retention va Legal Hold siyosati bo’lgan o’zgarmas konteyner/baketlarni o’z ichiga oling.
Version: kiritilgan; olib tashlash - faqat kechiktirilgan protseduralar bo’yicha (bir zumda purge taqiqlanadi).
Retensiya: issiq (7-30 kun), issiq (3-6 oy), sovuq/arxiv (regulyator/kontraktga qarab - 1-7 yil va undan ko’p).
Ko’p ijara: ijarachiga alohida nomlar/hisob/shifrlash kalitlari; jurnallarga kirish bo’yicha hisobot.
9) Maxfiylik va minimallashtirish
Zarurat prinsipi bo’yicha yig’im: ortiqcha to’lamaymiz.
Sezgir maydonlarni tokenlash/taxalluslashtirish, identifikatorlar uchun tuz bilan xesh.
Umumiy obyekt omborida saqlashda prodyuser (AEAD) tomonidagi maydonlarni shifrlash.
Olib tashlash huquqi (qo’llanilishi mumkin bo’lgan joylarda): konteynerning o’zgarmasligini buzmagan holda maydonlar/partiyalar kalitlarini kripto-o’chirish orqali amalga oshiriladi (loyihalashtirishda rejalashtiriladi).
10) Auditning o’ziga kirish, uning roli va auditi
Boʻlinish: producers ≠ readers ≠ admins.
Faqat WORM dan oʻqish; retensiya siyosatini o’zgartirish - alohida rollar va ma’qullangan tartib-taomillar orqali amalga oshiriladi.
Barcha o’qish/eksport operatsiyalari ikkilamchi jurnalga (meta-audit) qayd etiladi.
Tergov/komplayens uchun eksport - xesh-bloklar katalogi va ishonch zanjiri bilan shifrlangan holda.
11) Kuzatuv va SLO
Metrika: injest tezligi, indeksgacha lag, yo’qotilgan/takrorlangan%, sinxronlashtirilmagan vaqt ulushi, imzo/langar xatolari, buferlarni to’ldirish.
SLO: ≥99. Voqealarning 9 foizi issiq indeksgacha ≤ X sekundgacha yetkazilgan; 0 tushunarsiz «teshiklar» ketma-ketlikda; 100% bloklar imzolangan va vaqt bilan markalangan.
Alertlar: injest pauzasi> N daqiqa, invalid-hash o’sishi, zanjir tafovuti, imzo/taymstampning muvaffaqiyatsizligi, vaqtning ostonadan siljishi.
12) Test sinovi va verifikatsiya
Red/Blue testlari: yozuvni turli bosqichlarda tahrirlash/oʻchirishga urinish; aniqlashni tekshirish.
Chaos: uzeldagi agentni uzish, tarmoqni uzish, buferni to’ldirish, «vaqtni almashtirish».
Kripto-tekshiruvlar: zanjirlarni muntazam ravishda validatsiya qilish, Merkl ildizlari va shtamplarini solishtirish.
Forenzika: end-to-end jurnallaridan tergov stsenariylarini takrorlash.
13) Foydalanish va tartib-taomillar
Runbook «yaxlitlikni tekshirish» (on-demand va jadval boʻyicha).
Qonuniy hold va partiyalarni vaqtincha «muzlatish» tartibi.
Ishonch zanjirini saqlab qolgan holda discovery va eksport qilish tartibi.
Audit kalitlarini rotatsiya qilish va kompromatatsiyaga munosabat bildirish rejasi (ishonchning yangi tarmog’i, bloklarning qayta imzosi, bildirishnomalar).
14) Mini-retseptlar
Blok imzosi (merklizatsiya + TSA, sxematik):
records = read_partition(ts_window)
leaves = [H(canonical_json(r)) for r in records]
root = merkle_root(leaves)
sig = KMS.sign(root ts_now)
tsa = TSA.timestamp(sig)
store_block({root, sig, tsa, count=len(leaves), window})
append_transparency_log(H(root sig tsa))
Zanjir (parcha) yaxlitligini tekshirish:
for i in 1..N:
assert rec[i].hash_prev == rec[i-1].hash_curr assert rec[i].hash_curr == H(canonical_json(rec[i]_no_hash) rec[i].hash_prev rec[i].seq)
Retensiya siyosati (g’oya):
- Control/Data plane P0: issiq 30 kun → issiq 6 oy → 7 yillik arxiv (WORM).
- DevOps: issiq 14 kun → issiq 3 oy → arxiv 1 yil.
- Sekuriti-signallar: issiq 90 kun (tergov uchun), keyin 1-3 yil.
15) Tez-tez xatolar
«Logi - bu sxemasiz matn». Sxemasiz determinizatsiya qilingan yaxlitlik va qidiruv mavjud emas; kanonik JSON va o’rnatilgan maydonlar majburiydir.
Hech qanday bogʻlanish yoʻq. ’trace _ id’ ning yo’qligi tergovni buzadi.
Lokal vaqt. Faqat UTC va siljishni nazorat qilish.
Oʻzgartiriladigan jildlarga yozish. WORMsiz har qanday o’zgarmaslik - uydirma.
Oʻqish notoʻgʻri. Sezgir ma’lumotlarni o’qish yozuvdan kam bo’lmagan darajada muhim.
Jurnallardagi sirlar. Jo’natishdan oldin sanitar vositalarni, patternlarning «qizil ro’yxatlarini» yoqing.
Hamma narsaga bitta kalit. Imzo va shifrlash kalitlari alohida, rol va rotatsiya bilan.
16) Muvofiqlik va tartibga solish
Saqlash/o’zgarmaslik muddatlariga qo’yiladigan talablar domenga (moliya, to’lov, telekom va h.k.) bog’liq bo’ladi.
Isbotlanishi: WORM/retensiya protokollari, zanjir validatsiyasi hisobotlari, jurnallarga kirish jurnallari, legal hold va eksport tartib-taomillarining mavjudligi.
17) Chek-varaqlar
Sotishdan oldin
- Hodisalar taksonomiyasi va sxemasi (majburiy maydonlar) tasdiqlandi.
- Agentlar, buferlar, xavfsiz transport vositalari, back-pressure moslashtirilgan.
- Kiritilgan: xeshlar zanjiri, blok imzosi, vaqt shtampi, transparency-log.
- WORM/retensiya ombori kiritilgan; qayta yozib bo’lmaydigan/o’chirib bo’lmaydigan test.
- Sezgir maydonlarni maskalash/tokenlashtirish.
- Vaqtni sinxronlashtirish va siljish monitoringi.
- Rotatsiya rejasi va audit kalitlarini KMS/HSMda saqlash.
Ekspluatatsiya qilish
- Zanjir va bloklarning haftalik validatsiyasi (+ hisobot).
- Zanjirning uzilishi/imzo xatolari/vaqt siljishi alertlari.
- Vaqti-vaqti bilan almashtirish/olib tashlash uchun Red-team testlari.
- Retensiya va xarajatlarni muntazam tekshirish.
18) FAQ
V: BD darajasida shunchaki «qo’shish» etarlimi?
A: Yo’q. Bizga kriptografik kafolatlar (xesh zanjirlari, blok imzolari, vaqt shtamplari) va WORM siyosati kerak.
V: Ma’lumotlarni o’chirish huquqi haqida nima deyish mumkin?
O: Manbaning o’zgarmasligini va jurnallarning isbotlanishini saqlab qolgan holda, maydon/partiyalar uchun kripto-o’chirishni (kalitlarni olib tashlashni) loyihalashtiring.
V: Bloklarni imzolash uchun alohida kalit kerakmi?
A: Ha. Bloklar imzo kalitlarini saqlash shifrlash kalitlaridan ajrating; KMS/HSM da, rotatsiya va audit bilan saqlang.
S: Jamoat joyiga «langar» qo’yish mumkinmi?
O: Ixtiyoriy. Bu tekshirishni kuchaytiradi va konturning ichida «tarixni qayta yozish» ni kesib tashlaydi.
Bog’liq materiallar:
- «At Rest shifrlash»
- «In Transit shifrlash»
- «Sirlar menejmenti»
- «Kalitlarni boshqarish va rotatsiya»
- «So’rovlarning imzosi va verifikatsiyasi»