PII se skriva u aplikacijskim zapisnicima
Aplikacijski zapisnici jedna su od najzanemarenih GDPR povrsina u inzenjeringu. Ne zato sto inzenjeri ignoriraju zakon. Nego zato sto korisnicke pojedinosti ulaze u datoteke zapisnika slucajno.
Jedan JSON zapis zahtjeva moze drzati cetiri PII polja:
{
"timestamp": "2025-11-14T09:22:13Z",
"level": "ERROR",
"endpoint": "/api/users/profile",
"user_email": "sara.jovanovic@tvrtka.com",
"client_ip": "82.123.45.67",
"user_agent": "Mozilla/5.0",
"error": "ValidationError: phone format",
"input_value": "+385 91 1234 5678"
}
Taj jedan unos drzi email, IP i broj telefona. Pomnozite to s milijunima dnevnih API poziva. Rezultat je znacajna aktivnost s PII-jem. Treba pravnu osnovu, ogranicenja i kontrole.
Dijeljenje zapisnika s trecim stranama povecava GDPR rizik
Timovi dijele datoteke zapisnika s vanjskim stranama stalno:
- Tvrtke za pen testiranje primaju zapise za mapiranje ponasanja aplikacije
- Vanjski konzultanti koriste uzorke zapisnika za pronalazenje uskih grla
- Platforme za zapisnike (Elastic, Datadog, Splunk) primaju cijele izlazne tokove
- Izvodjaci SRE pristupaju zapisima za vrijeme incidenata
- Timovi za razvoj u drugim pravnim osobama primaju datoteke za otklanjanje gresaka
Svako dijeljenje postavlja pitanja prema GDPR clanu 28. Je li primatelj izvrsitelj? Postoji li Sporazum o obradi podataka? Imaju li pravnu osnovu za vidjeti korisnicke pojedinosti u tim datotekama?
Platforme za zapisnike cesta su praznina. Slanje izlaza s pravim korisnickim emailovima i IP adresama na Elastic Cloud ili Datadog stvara vezu obrade. Ta veza treba DPA, standardne klauzule i alat za prijenos ako platforma sjedi izvan EU-a. Svako od ovih zahtijeva vremena i pravnog pregleda.
Jednostavniji put: uklonite korisnicke pojedinosti prije nego sto datoteke napuste vas sustav. Procitajte nas pregled sukladnosti za potpuna pravila clana 28.
Zasto JSON struktura otezava detekciju
JSON datoteke zapisnika variraju u strukturi. Genericko skeniranje teksta nije dovoljno.
Dubina ugnjezdavanja: Korisnicke pojedinosti pojavljuju se na bilo kojoj dubini. Polje request.headers.x-forwarded-for drzi IP adrese. Polje response.body.errors[0].field_value moze drzati korisnicki unos. Ravno tekstualno skeniranje propusta polja zakopana u ugnjezdenim putovima.
Nedosljedne sheme: Svaki API krajnji tocka proizvodi vlastitu formu izlaza. Datoteke za autentikaciju ne lice na datoteke za placanje. Datoteke za azuriranje profila ne lice na obje. Pristup s fiksnim putovima propusta korisnicke pojedinosti koje se pojavljuju na neocekivanim putovima u kontekstima gresaka.
Tehnicke vrijednosti pomijesane s PII-jem: Tragovi stoga, kodovi gresaka i vremenski ozljuci moraju ostati netaknutim. Blanketno brisanje brise potrebna polja i cini datoteku beskorisnom.
Pravi pristup je detekcija temeljena na sadrzaju. Pronaci korisnicke pojedinosti po tome sto su - uzorak emaila, IP format, imenovani entitet - ne gdje se nalaze u strukturi. Ovo rukuje promjenjivim shemama bez potrebnog postavljanja po krajnjoj tocki.
Dosljedna zamjena cuva korisnost zapisnika
Kljucni zahtjev je referentni integritet. Ako se sara.jovanovic@tvrtka.com pojavljuje u 47 unosa kroz lanac zahtjeva, svih 47 mora se preslikati na istu vrijednost.
Pravila preslikavanja:
sara.jovanovic@tvrtka.com-user1@example.com(ista vrijednost kroz cijelu datoteku)82.123.45.67-192.0.2.1(RFC 5737 dokumentacijska IP adresa - jasno nije stvarna)+385 91 1234 5678-+385 XXX XXX XXXX(maskirana)
S tim preslikavanjem, razvojni inzenjer moze pratiti user1@example.com kroz 47 unosa, rekonstruirati lanac zahtjeva i popraviti gresku - bez vidjenja ikakvih stvarnih korisnickih pojedinosti.
Ova metapodatkovna polja ostaju nepromijenjena:
- Vremenski ozljuci (nisu korisnickim podaci)
- Kodovi i vrste gresaka (nisu korisnicki podaci)
- Tragovi stoga (mogu sadrzavati tehnicke ID-ove, nisu korisnicki podaci)
- HTTP metode, putovi, statusni kodovi (nisu korisnicki podaci)
- Vrijednosti metrika i latencije (nisu korisnicki podaci)
Rezultat je datoteka koja funkcionira za posao otklanjanja gresaka. Ne sadrzi stvarne korisnicke pojedinosti. Pogledajte nas rjecnik za razliku izmedju anonimizacije i pseudonimizacije prema GDPR-u.
Slucaj koristenja: Dijeljenje zapisnika za pen testiranje
SaaS tvrtka provela je tromjesecni sigurnosni pregled s vanjskim timom za pen testiranje. Opseg je zahtijevao 90 dana proizvodnog API izlaza za mapiranje tokova autentikacije i analizu uzoraka gresaka.
Sirovi volumen: 180 MB JSON datoteka. Broj PII-ja: 4.200 jedinstvenih korisnickih emailova, 1.800 jedinstvenih IP adresa, 340 djelomicnih brojeva racuna u kontekstima gresaka.
Bez prvog uklanjanja korisnickih pojedinosti, dijeljenje tih datoteka zahtijevalo bi:
- DPA s tvrtkom za pen testiranje
- Alat za prijenos prema GDPR clanu 46 (tvrtka je sjedila izvan EU-a)
- Pregled obavijesti osobama ciji se podaci obraduju
Svako od ovih dodaje pravni posao i vrijeme.
S primijenjenim uklanjanjem PII-ja:
- Vrijeme obrade: 25 minuta za 180 MB
- Izlaz: 180 MB strukturalno identicnih datoteka, svi emailovi i IP adrese zamijenjeni sigurnim vrijednostima
- Rezultat: tim za pen testiranje primio je potpun kontekst; niti jedna stvarna korisnicka pojedinost nije ih dosegla
- GDPR ishod: nije potreban DPA - uklonjen izlaz nije korisnicki podaci prema GDPR-u
Pogledajte nas FAQ za uobicajena pitanja o tome sto se smatra anonimnimim prema GDPR-u.
Integriranje uklanjanja PII-ja u CI/CD
Za timove koji redovito dijele izlaz, ovaj korak moze se izvoditi unutar postojecih cjevovoda.
Rotacija zapisnika:
- Skripta za rotaciju izvodi se noc
- Korak uklanjanja izvodi se prije arhiviranja ili slanja na bilo koju platformu za zapisnike
- Uklonjene datoteke idu u vanjske sustave
- Originalne datoteke ostaju interno s punim zadrzavanjem
Skripta za predijeljenje:
- Inzenjer treba podijeliti uzorak s izvodjacem
- Pokrenite skriptu:
input=raw-logs/ output=clean-logs/ - Podijelite mapu
clean-logs/ - Nije potreban rucni pregled PII-ja
Sidecar pristup:
- Sidecar uklanja izlazni tok prije prosljedjivanja
- Uklanjanje u stvarnom vremenu odrzava korisnost za analizu zapisnika
- Platforma prima nula stvarnih korisnickih pojedinosti
Integracija politike zadrzavanja
GDPR clan 5(1)(e) zahtijeva ogranicenje pohrane. Uklanjanje PII-ja uklapa se u bilo koju politiku zadrzavanja.
- Sirovi izlaz cuva se 7 dana (za svakodnevni posao otklanjanja gresaka)
- Uklonjene verzije cuva se 90 dana (za analizu trendova i pregled incidenata)
- Korak uklanjanja izvodi se 7. dana
Ovo zadovoljava ogranicenje pohrane. Uklanja rizik dugotrajnog cuvanja sirovog izlaza.