PII se krije u aplikacijskim evidencijama
Evidencije aplikacija su jedna od najvise zanemarenih GDPR povrsina u inzenjeringu. Ne zato sto inzenjeri ignorisu zakon. Zato sto korisnicki detalji ulaze u datoteke evidencija slucajno.
Jedna JSON evidencija zahteva moze sadrzati cetiri PII polja:
{
"timestamp": "2025-11-14T09:22:13Z",
"level": "ERROR",
"endpoint": "/api/users/profile",
"user_email": "sara.jovanovic@kompanija.com",
"client_ip": "82.123.45.67",
"user_agent": "Mozilla/5.0",
"error": "ValidationError: phone format",
"input_value": "+381 60 1234 5678"
}
Taj jedan unos sadrzi email, IP adresu i broj telefona. Pomnozite to sa milionima dnevnih API poziva. Rezultat je velika PII aktivnost. Treba joj pravna osnova, ogranicenja i kontrole.
Deljenje evidencija sa trecim stranama povecava GDPR rizik
Timovi dele datoteke evidencija sa spoljnim stranama neprestano:
- Firme za penetraciono testiranje dobijaju zapise kako bi mapirali ponasanje aplikacije
- Spoljni konsultanti koriste uzorke evidencija da pronajdu uskla grla
- Log platforme (Elastic, Datadog, Splunk) primaju kompletne izlazne tokove
- SRE izvrsioce pristupaju zapisima tokom incidenata
- Dev timovi u drugim pravnim subjektima primaju datoteke za debagovanje
Svako deljenje pokrenue GDPR clan 28 pitanja. Da li je primalac izvrsnik? Da li postoji Ugovor o obradi podataka? Imaju li pravnu osnovu da vide korisnicke detalje u tim datotekama?
Log platforme su cesta praznina. Slanje izlaza sa pravim korisnickim emailovima i IP adresama na Elastic Cloud ili Datadog stvara vezu obrade. Ta veza zahteva UOP, standardne klauzule i alat za transfer ako se platforma nalazi izvan EU. Svako od ovih zahteva vreme i pravni pregled.
Jednstavniji put: uklonite korisnicke detalje pre nego sto datoteke napuste vas sistem. Procitajte nas pregled uskladjenosti za puna pravila clana 28.
Zasto JSON struktura otezava detekciju
JSON datoteke evidencija variraju po strukturi. Genericko skeniranje teksta nije dovoljno.
Dubina ugnezdavanja: Korisnicki detalji se pojavljuju na bilo kojoj dubini. Polje request.headers.x-forwarded-for sadrzi IP adrese. Polje response.body.errors[0].field_value moze sadrzati korisnicki unos. Ravno skeniranje teksta propusta polja zakopana u ugnezdenim putanjama.
Nekonzistentne sheme: Svaki API endpoint proizvodi sopstvenu formu izlaza. Datoteke autentikacije ne lice na datoteke placanja. Datoteke azuriranja profila ne lice ni na jedne od prethodnih. Pristup fiksnom putu propusta korisnicke detalje koji se pojavljuju na neobicnim putanjama u kontekstima gresaka.
Tehnicke vrednosti pomesane sa PII: Tragovi steka, kodovi gresaka i vremenske oznake moraju ostati netaknuti. Masovnog brisanje brise potrebna polja i cini datoteku beskorisnom.
Pravi pristup je detekcija zasnovana na sadrzaju. Pronadjite korisnicke detalje po tome sto jesu — email obrazac, IP format, imenovani entitet — a ne po tome gde se nalaze u strukturi. Ovo obradjuje varijabilne sheme bez potrebe za podesavanjem po endpointu.
Konzistentna zamena cini evidencije korisnim
Kljucni zahtev je referentni integritet. Ako se sara.jovanovic@kompanija.com pojavljuje u 47 unosa u lancu zahteva, svih 47 mora biti mapirano na istu vrednost.
Pravila mapiranja:
sara.jovanovic@kompanija.com→user1@example.com(ista vrednost tokom cele datoteke)82.123.45.67→192.0.2.1(RFC 5737 dokumentaciona IP adresa — ocito nije stvarna)+381 60 1234 5678→+381 XXX XXX XXXX(maskirano)
Sa tim mapiranjem, programer moze pratiti user1@example.com kroz 47 unosa, rekonstruisati lanac zahteva i popraviti grsku — bez videnja ikakvih stvarnih korisnickih detalja.
Ova polja metapodataka ostaju nepromenjena:
- Vremenske oznake (nisu korisnicki podaci)
- Kodovi i tipovi gresaka (nisu korisnicki podaci)
- Tragovi steka (mogu sadrzati tehnicke ID-ove, nisu korisnicki podaci)
- HTTP metode, putanje, statusni kodovi (nisu korisnicki podaci)
- Metricke vrednosti i vrednosti latencije (nisu korisnicki podaci)
Rezultat je datoteka koja funkcionise za debug rad. Ne sadrzi stvarne korisnicke detalje. Pogledajte nas recnik za razliku izmedju anonimizacije i pseudonimizacije prema GDPR-u.
Slucaj upotrebe: Deljenje evidencija za penetraciono testiranje
SaaS firma je vodila kvartalnu bezbednosnu reviziju sa spoljnim timom za penetraciono testiranje. Obim je zahtevao 90 dana produkcijskog API izlaza za mapiranje tokova autentikacije i analizu obrazaca gresaka.
Sirovi obim: 180 MB JSON datoteka. Broj PII: 4.200 jedinstvenih korisnickih emailova, 1.800 jedinstvenih IP adresa, 340 delimicnih brojeva naloga u kontekstima gresaka.
Bez prethodnog uklanjanja korisnickih detalja, deljenje tih datoteka bi zahtevalo:
- UOP sa firmom za pen testiranje
- GDPR clan 46 alat za transfer (firma se nalazila izvan EU)
- Pregled obavesti ispitanicima podataka
Svako od ovih dodaje pravni posao i vreme.
Sa primenjenim uklanjanjem PII:
- Vreme obrade: 25 minuta za 180 MB
- Izlaz: 180 MB strukturno identicnih datoteka, svi emailovi i IP adrese zamenjeni sigurnim vrednostima
- Rezultat: tim za pen testiranje primio pun kontekst; nula stvarnih korisnickih detalja ih je dostiglo
- GDPR ishod: UOP nije bio potreban — ocisceni izlaz nije korisnicki podaci prema GDPR-u
Pogledajte nas FAQ za cesta pitanja o tome sta se racuna kao anonimno prema GDPR-u.
Integracija uklanjanja PII u CI/CD
Za timove koji redovno dele izlaz, ovaj korak moze se pokrenuti unutar postojecih kanala.
Rotacija evidencija:
- Skripta za rotaciju se izvrsava nocno
- Korak uklanjanja se pokrenuje pre arhiviranja ili slanja na bilo koju log platformu
- Ociscene datoteke idu u spoljne sisteme
- Originalne datoteke ostaju interno sa punom retencijom
Skripta pre deljenja:
- Inzenjer treba da podeli uzorak sa izvrsiocem
- Pokrece skriptu:
input=raw-logs/ output=clean-logs/ - Deli fasciklu
clean-logs/ - Nije potreban rucni pregled PII
Sidecar pristup:
- Sidecar ociscuje izlazni tok pre prosljedjivanja
- Uklanjanje u realnom vremenu odrzava korisnost za analizu evidencija
- Platforma prima nula stvarnih korisnickih detalja
Integracija politike retencije
GDPR clan 5(1)(e) zahteva ogranicenje skladistenja. Uklanjanje PII uklapa se u bilo koju politiku retencije.
- Sirovi izlaz cuva se 7 dana (za svakodnevni debug rad)
- Ociscene verzije cuvaju se 90 dana (za analizu trendova i pregled incidenata)
- Korak uklanjanja pokrenuje se 7. dana
Ovo zadovoljava ogranicenje skladistenja. Uklanja rizik dugorocnog cuvanja sirovog izlaza.