GH GambleHub

Audit și jurnale imuabile

Audit și jurnale imuabile

1) De ce aveți nevoie de ea

Scopul auditului este de a captura „cine, ce, unde, când și de ce” cu o integritate dovedită pentru a menține securitatea, investigațiile, raportarea financiară și conformitatea.
Jurnal imuabil - un format și stocare în care evenimentele sunt înregistrate numai prin adăugare, iar modificarea/ștergerea ulterioară este fie imposibilă, fie detectabilă prin mijloace criptografice și politici de stocare.

2) Modelul amenințării și obiectivele de control

Riscuri:
  • Editarea/ștergerea intenționată a evenimentelor de către un insider.
  • Înlocuirea timp/sursă (reluare/backdating).
  • „Linişte” închidere logare pe nod.
  • Pierderea unei părți a jurnalului în timpul accidentelor/migrațiilor.
  • Colectarea PII excesivă și discordia cu confidențialitatea.
Obiective:

1. Integritate: dovedită prin protecție împotriva modificărilor/ștergerilor.

2. Completitudine: închiderea fluxurilor cheie (plan de control, plan de date, acces, bani).

3. Precizia timpului: timp reproductibil, sincronizat.

4. Accesibilitate: citire şi căutare în cadrul SLO.

5. Confidențialitate: minim PII, tokenizare/criptare, legalitatea utilizării.

3) Taxonomia și prioritățile evenimentului

Împărțiți evenimentele în straturi cu prioritizarea retenției și imutabilității:
  • Planul de control: autentificare/autorizare, modificări de configurare, operațiuni cheie (KMS), management secret, modificări de politică.
  • Planul de date: acces la obiecte/înregistrări/verificări/plăți; citiți/creați/ștergeți.
  • Admin și DevOps: SSH/consolă, CI/CD, infrastructură/modificări IaC, escaladarea drepturilor.
  • Produs: tranzactii, facturare, operatiuni clienti.
  • Sistem/rețea: kernel/agenți/proxies/balancers, brokeri, baze de date.
  • Securitate: IDS/IPS/EDR, WAF, anti-DDoS, antifraudă, DLP.

Pentru fiecare clasă, stabilim: criticalitate, schemă, câmpuri obligatorii, termen de valabilitate, cerințe pentru invariabilitate.

4) Câmpuri și formate obligatorii

ID-urile de corelare sunt 'trace _ id',' span _ id', 'request _ id',' actor _ id' (user/service), 'tenant _ id',' resource _ id'.
Context A&A: metoda de autentificare, roluri/politici în momentul acțiunii.
Timp: RFC3339/UTC, milisecunde/nanosecunde; sursa de sincronizare.
Acțiune și rezultat: tipul de operație, scopul, starea, numărul de obiecte afectate.
Integritate: înregistrări locale HMAC, număr de secvență, hash-anterior.
Schema: JSON cu un model stabil (de exemplu, compatibil cu dicționarele comune de evenimente).

Interzis: secrete, chei, jetoane, PAN complet, parole, chei private. PII - numai atunci când este necesar, cu mascare/tokenizare.

5) Timp și sincronizare

Sursa timpului: cel puțin două surse independente (NTP/PTP) + monitorizarea prejudecăților.
Semnături de timp critice: Utilizați servicii de ștampilă de timp de încredere (TSA) sau un serviciu intern de etanșare a timpului pentru loturi de evenimente.
Reguli: fără zone orare locale, numai UTC; jurnal și offset/calitatea timpului.

6) Arhitectura fluxului de jurnal

Agenți Buffer Transport Aterizare Hash Chain/Signature Cold/Archive Index pentru căutare.

Colectarea pe nod: agenți de lumină (daemonset/sidecar) cu un tampon pe disc (back-pressure).
Transport: canal protejat (TLS/mTLS), livrare garantată (cel puțin o dată), idempotent-ingera.
Zona de aterizare: stocarea obiectelor într-o formă „brută” (loturi după dată/chiriaș/tip).
Index: motor de căutare/analiză pentru interogări online (hot layer).
Arhiva (WORM): găleți/benzi imuabile cu politici de păstrare și menținere legală.
Ancora/sigiliu: „etanșare” periodică a pachetelor de lanțuri hash (a se vedea mai jos).

7) Imutabilitate criptografică

7. 1 Lanțuri de hashes (numai pentru adăugare)

Fiecare intrare conține: 'hash _ curr = H (record)', 'hash _ anterior' din intrarea anterioară, 'seq'. Orice editare rupe lanţul.

Lanț pseudo cod:

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 Semnătura pachetelor și ștampila de timp

La fiecare N secunde/MB formăm un bloc: rădăcina Merkle a tuturor 'hash _ curr'.
Semnăm blocul cu cheia de audit (stocată stabil în KMS/HSM).
Adăugați un timestamp TSA și publicați „Jurnalul de transparență”.
Opțional: ancorați periodic hash-ul rădăcinii într-un spațiu extern dovedibil (de exemplu, un jurnal independent sau stocare publică neschimbabilă).

7. 3 Managementul cheilor de audit

Cheile de semnătură - în KMS/HSM, rotație în program, acces multifactor, dual-control pentru export.
Revocarea cheie → unei noi ramuri de încredere; semnăturile vechi rămân verificabile.

8) Politici de retenție și WORM

WORM/imutabilitate: include containere/găleți imuabile cu politici de păstrare și deținere legală pentru clasele P0/P1.
Versioning: activat; ștergerea - numai pentru procedurile cu întârziere (interzicerea epurării instantanee).
Retentie: cald (7-30 zile), cald (3-6 luni), rece/arhiva (1-7 ani sau mai mult - in functie de regulator/contract).
Multi-chirie: namespaces separate/conturi/chei de criptare per chiriaș; raportarea accesului la jurnal.

9) Confidențialitate și minimizare

Colectarea în conformitate cu principiul necesității: nu înregistrăm inutile.
Tokenizarea/pseudonimizarea câmpurilor sensibile, hash de sare pentru identificatori.
Criptarea câmpului producătorului (AEAD) atunci când este stocată în stocarea obiectelor partajate.
Dreptul de ștergere (dacă este cazul): este implementat prin ștergerea cripto a cheilor de câmp/parte, fără a încălca invariabilitatea containerului (planificată în timpul proiectării).

10) Accesul, rolurile și auditul auditului în sine

Split: producători ≠ cititori ≠ administratori.
Citiți numai de la WORM; schimbarea politicilor de păstrare - prin roluri și proceduri separate cu aprobare.
Toate operațiunile de citire/export sunt înregistrate într-un jurnal secundar (meta audit).
Export pentru investigație/conformitate - în formă criptată cu un director bloc hash și un lanț de încredere.

11) Observabilitate și SLO

Valori: rata de injectare, lag la index,% pierdut/repetat, fracțiune de timp nesincronizat, erori de semnare/ancorare, umplere tampon.
SLO: ≥99. 9% din evenimentele livrate ≤ X secunde la indicele cald; 0 „găuri” inexplicabile în secvențe; 100% din blocuri sunt semnate și timbrate.
Alerte: pauză de injectare> N minute, creștere invalid-hash, divergență în lanț, eșec semnătură/timestamp, timp compensat dincolo de prag.

12) Testarea și verificarea

Teste roșu/albastru: o încercare de a edita/șterge o înregistrare în diferite etape; verificarea detectării.
Haos: dezactivarea agentului pe nod, ruperea rețelei, depășirea tamponului, „spoofing de timp”.
Controale cripto: validarea regulată a lanțurilor, reconcilierea rădăcinilor Merkle și a timbrelor.
Criminalistica: redarea scenariilor de investigație de la jurnalele end-to-end.

13) Funcționarea și procedurile

Runbook „verificarea integrității” (la cerere și programată).
Procedura de deținere legală și de „înghețare” temporară a părților.
Descoperirea și procedura de export menținând în același timp lanțul de încredere.
Planul de rotație a cheilor de audit și răspunsul la compromis (noua ramură de încredere, re-semnarea blocurilor, notificări).

14) Mini rețete

Semnătură bloc (Merclization + TSA, schematică):

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))
Verificarea integrității în lanț (fragment):

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)
Politica de retenție (idee):
  • Control/Data plane P0: fierbinte 30 zile → cald 6 luni → arhiva 7 ani (WORM).
  • DevOps: fierbinte 14 zile → cald 3 luni → arhiva 1 an.
  • Securiti semnale: fierbinte 90 de zile (pentru investigații), apoi 1-3 ani.

15) Erori frecvente

"Jurnalele sunt text fără schemă. "Fără o schemă, nu există integritate deterministă și căutare; JSON canonic și câmpurile fixe sunt obligatorii.
Nici o corelaţie. Absența "trace _ id' descompune investigațiile.
Ora locală. Numai UTC și control offset.
Scrie la volume modificabile. Fără WORM, orice imutabilitate este o ficțiune.
Nu log citește. Citirea datelor sensibile este important să se stabilească nu mai puțin de scris.
Secrete în buşteni. Porniți dezinfectante înainte de a trimite, „liste roșii” de modele.
O cheie pentru orice. Semnarea și criptarea cheilor - separat, cu rol și rotație.

16) Respectarea și reglementarea

Cerințele privind termenul de valabilitate/imutabilitatea depind de domeniu (finanțe, plăți, telecom etc.).
Provabilitate: disponibilitatea protocoalelor WORM/retenție, a rapoartelor de validare a circuitelor, a jurnalelor de acces, a procedurilor legale și a procedurilor de export.

17) Liste de verificare

Înainte de vânzare

  • Taxonomia evenimentelor și schema aprobată (câmpurile obligatorii).
  • Agenți, tampoane, transport protejat, back-pressure configurat.
  • Incluse: lanțuri hash, semnătură bloc, timestamp, jurnal de transparență.
  • WORM/stocare de prezentare este activat; test pentru incapacitatea de a suprascrie/șterge.
  • Masking/tokenizing câmpuri sensibile.
  • Sincronizarea timpului și monitorizarea offset.
  • Planul de rotație și stocarea cheilor de audit în KMS/HSM.

Funcționare

  • Validarea săptămânală a lanțurilor și blocurilor (+ raport).
  • Întreruperea circuitului/Eroare de semnătură/Alerte decalaj de timp.
  • Teste periodice de substituție/ștergere a echipei roșii.
  • Revizuirea regulată a retențiilor și costurilor.

18) ÎNTREBĂRI FRECVENTE

Î: Este doar „doar adăugarea” la nivelul bazei de date suficient?
Oh, nu. Avem nevoie de garanții criptografice (lanțuri de hashes, semnături de bloc, ștampile de timp) și politici WORM.

Î: Cum rămâne cu dreptul de a șterge datele?
R: Proiectați cripto-ștergerea (eliminarea cheilor) pentru câmpuri/părți, menținând media neschimbabilă și jurnalele dovedibile.

Î: Am nevoie de o cheie separată pentru a semna blocurile?
Oh, da. Separați cheile de semnare a blocurilor de cheile de criptare de stocare; magazin în KMS/HSM, cu rotație și audit.

Î: Este posibilă „ancorarea” într-un spațiu public?
R: Opțional. Acest lucru îmbunătățește verificabilitatea și va întrerupe „rescrierea istoricului” în cadrul circuitului.


Materiale conexe:
  • „La criptare de odihnă”
  • „În criptarea tranzitului”
  • „Managementul secret”
  • „Managementul și rotația cheilor”
  • „Semnează și verifică cererile”
Contact

Contactați-ne

Scrieți-ne pentru orice întrebare sau solicitare de suport.Suntem mereu gata să ajutăm!

Pornește integrarea

Email-ul este obligatoriu. Telegram sau WhatsApp sunt opționale.

Numele dumneavoastră opțional
Email opțional
Subiect opțional
Mesaj opțional
Telegram opțional
@
Dacă indicați Telegram — vă vom răspunde și acolo, pe lângă Email.
WhatsApp opțional
Format: cod de țară și număr (de exemplu, +40XXXXXXXXX).

Apăsând butonul, sunteți de acord cu prelucrarea datelor dumneavoastră.