By · Last updated 2026-06-05

Torna al BlogTecnico

Anonimizzazione Log GDPR: Preservare il Debug

I log delle applicazioni accumulano silenziosamente email, IP e numeri di account degli utenti. Ecco come condividere i log con terze parti, consulenti e piattaforme di osservabilità in conformità con il GDPR.

June 5, 20267 min di lettura
JSON logsGDPR complianceDevOps privacylog anonymizationdata minimization

I Dati Personali si Nascondono nei Log delle Applicazioni

I log delle app sono una delle superfici GDPR più trascurate nell'ingegneria del software. Non perché gli sviluppatori ignorino la normativa. Ma perché i dettagli degli utenti finiscono nei file di log per errore.

Un singolo log di richiesta JSON può contenere quattro campi PII:

{
  "timestamp": "2025-11-14T09:22:13Z",
  "level": "ERROR",
  "endpoint": "/api/users/profile",
  "user_email": "mario.rossi@azienda.it",
  "client_ip": "82.123.45.67",
  "user_agent": "Mozilla/5.0",
  "error": "ValidationError: phone format",
  "input_value": "+39 347 1234 567"
}

Quella singola voce contiene un'email, un IP e un numero di telefono. Moltiplicata per milioni di chiamate API giornaliere, il risultato è un trattamento massiccio di dati personali che richiede base giuridica, limiti e misure di controllo.

La Condivisione dei Log con Terze Parti Amplifica il Rischio GDPR

I team condividono i file di log con soggetti esterni in continuazione:

  • Società di pen test ricevono i record per mappare il comportamento dell'applicazione
  • Consulenti esterni usano campioni di log per individuare colli di bottiglia
  • Piattaforme di log (Elastic, Datadog, Splunk) ricevono flussi di output completi
  • Contractor SRE accedono ai record durante gli incidenti
  • Team di sviluppo in altre entità legali ricevono file per il debug

Ogni condivisione solleva questioni ai sensi dell'Articolo 28 del GDPR. Il destinatario è un responsabile del trattamento? Esiste un Accordo di Trattamento dei Dati? Ha una base giuridica per accedere ai dettagli degli utenti in quei file?

Le piattaforme di log rappresentano una lacuna frequente. Inviare output con email e IP reali degli utenti a Elastic Cloud o Datadog crea un nesso di trattamento che richiede un DPA, clausole standard e uno strumento di trasferimento se la piattaforma si trova al di fuori dell'UE. Ciascuno di questi passaggi richiede tempo e revisione legale.

La strada più semplice: rimuovere i dettagli degli utenti prima che i file lascino i tuoi sistemi. Consulta la nostra panoramica sulla conformità per le regole complete dell'Articolo 28.

Perché la Struttura JSON Rende Difficile il Rilevamento

I file di log JSON variano nella struttura. La scansione testuale generica non è sufficiente.

Profondità di annidamento: I dettagli degli utenti compaiono a qualsiasi profondità. Il campo request.headers.x-forwarded-for contiene indirizzi IP. Il campo response.body.errors[0].field_value può contenere input dell'utente. Una scansione piatta manca i campi sepolti in percorsi annidati.

Schemi inconsistenti: Ogni endpoint API produce la propria struttura di output. I log di autenticazione non assomigliano a quelli di pagamento. I log di aggiornamento del profilo differiscono da entrambi. Un approccio a percorsi fissi manca i dati personali che compaiono in percorsi anomali nei contesti di errore.

Valori tecnici misti a PII: Tracce di stack, codici di errore e timestamp devono rimanere intatti. La rimozione indiscriminata cancella campi necessari e rende il file inutilizzabile.

L'approccio corretto è il rilevamento basato sul contenuto. Trovare i dati personali per quello che sono — pattern email, formato IP, entità nominata — non per dove si trovano nella struttura. Questo gestisce schemi variabili senza configurazioni per-endpoint.

La Sostituzione Coerente Mantiene i Log Utili

Il requisito chiave è l'integrità referenziale. Se mario.rossi@azienda.it compare in 47 voci lungo una catena di richieste, tutte le 47 devono essere mappate sullo stesso valore.

Regole di mappatura:

  • mario.rossi@azienda.ituser1@example.com (stesso valore in tutto il file)
  • 82.123.45.67192.0.2.1 (IP di documentazione RFC 5737 — chiaramente non reale)
  • +39 347 1234 567+39 XXX XXX XXXX (mascherato)

Con questa mappatura, uno sviluppatore può tracciare user1@example.com attraverso 47 voci, ricostruire la catena di richieste e correggere il bug — senza vedere alcun dettaglio reale dell'utente.

Questi campi di metadati rimangono invariati:

  • Timestamp (non dati utente)
  • Codici ed tipi di errore (non dati utente)
  • Tracce di stack (possono contenere ID tecnici, non dati utente)
  • Metodi HTTP, percorsi, codici di stato (non dati utente)
  • Valori metrici e figure di latenza (non dati utente)

Il risultato è un file utilizzabile per il lavoro di debug, privo di dettagli reali degli utenti. Consulta il nostro glossario per la differenza tra anonimizzazione e pseudonimizzazione ai sensi del GDPR.

Caso d'Uso: Condivisione di Log per un Pen Test

Una società SaaS ha condotto una revisione della sicurezza trimestrale con un team esterno di pen test. Il perimetro richiedeva 90 giorni di output API di produzione per mappare i flussi di autenticazione e analizzare i pattern degli errori.

Volume grezzo: 180 MB di file JSON. Conteggio PII: 4.200 email utente univoche, 1.800 IP univoci, 340 numeri di account parziali in contesti di errore.

Senza la rimozione preventiva dei dettagli degli utenti, condividere quei file avrebbe richiesto:

  • Un DPA con il team di pen test
  • Uno strumento di trasferimento ai sensi dell'Articolo 46 del GDPR (il team si trovava fuori dall'UE)
  • Una revisione delle informative agli interessati

Ciascuno di questi elementi aggiunge lavoro legale e tempi.

Con la rimozione dei PII applicata:

  • Tempo di elaborazione: 25 minuti per 180 MB
  • Output: 180 MB di file strutturalmente identici, con tutte le email e gli IP sostituiti con valori sicuri
  • Risultato: il team di pen test ha ricevuto il contesto completo; zero dettagli reali degli utenti li hanno raggiunti
  • Esito GDPR: nessun DPA richiesto — l'output anonimizzato non costituisce dato personale ai sensi del GDPR

Consulta le nostre FAQ per le domande frequenti su cosa si considera anonimo ai sensi del GDPR.

Integrazione della Rimozione PII nelle Pipeline CI/CD

Per i team che condividono output regolarmente, questo passaggio può essere eseguito all'interno delle pipeline esistenti.

Rotazione dei log:

  1. Lo script di rotazione viene eseguito di notte
  2. La fase di rimozione viene eseguita prima dell'archiviazione o dell'invio a qualsiasi piattaforma di log
  3. I file ripuliti vengono inviati ai sistemi esterni
  4. I file originali rimangono interni con la piena conservazione

Script pre-condivisione:

  1. Lo sviluppatore ha bisogno di condividere un campione con un contractor
  2. Esegue lo script: input=raw-logs/ output=clean-logs/
  3. Condivide la cartella clean-logs/
  4. Nessuna revisione manuale dei PII necessaria

Approccio sidecar:

  1. Il sidecar rimuove il flusso di output prima di inoltrarlo
  2. La rimozione in tempo reale mantiene l'utilità per l'analisi dei log
  3. La piattaforma non riceve alcun dettaglio reale degli utenti

Integrazione con le Policy di Conservazione

L'Articolo 5(1)(e) del GDPR richiede la limitazione della conservazione. La rimozione dei PII si integra in qualsiasi policy di conservazione.

  • Output grezzo conservato per 7 giorni (per il debug quotidiano)
  • Versioni ripulite conservate per 90 giorni (per l'analisi dei trend e la revisione degli incidenti)
  • La fase di rimozione viene eseguita al giorno 7

Ciò soddisfa il requisito di limitazione della conservazione. Elimina il rischio di conservare output grezzo a lungo termine.

Fonti

Pronto a proteggere i tuoi dati?

Inizia ad anonimizzare i PII con oltre 285 tipi di entità in 48 lingue.

About this page

We update this page when our platform or the law changes.

Read our founder note for how we work.

Each change shows up in the timestamp at the top.

Related reading

We follow these rules

  • GDPR (EU 2016/679).
  • ISO/IEC 27001:2022.
  • NIS2 (EU 2022/2555).
  • HIPAA safe harbor under 45 CFR § 164.514(b)(2).

Our promise

We do not sell your data.

We do not train models on your text.

We store your files in Germany.

You can delete your account at any time.

You own your work.

Where we run

Our servers live in Falkenstein, Germany.

We use Hetzner. They hold ISO 27001 certification.

All data stays in the EU.

Backups run every day.

Need help?

Email support@anonym.legal.

We reply within one business day.

How we test

We run a full check suite on every release.

Each surface gets its own sweep script and report.

Human reviewers spot-check the output each week.

We track recall and precision on a labelled set.

Bad runs block the deploy.

What we never do

  • We never sell your information to third parties.
  • We never train models on what you upload.
  • We never keep your work after you delete it.
  • We never share keys with any outside firm.
  • We never run ads inside the product.

Plans in plain words

We sell credits, not seats.

One credit covers one short job.

Long jobs use a few credits each.

You can top up at any time.

Unused credits roll over each month.

Read the plans page for current rates.

Who built this

A small team of engineers and lawyers built this.

We ship from Europe and work in the open.

Our founder note spells out why we started.

Where to start

How the parts fit

A browser add-on cleans text inside Chrome.

A Word plug-in handles drafts in Office.

A small desktop tool works on whole folders.

An agent protocol link feeds large models safely.

All four share one core engine and one rule set.

Words from our team

We started this work after a lunch about cookies.

One friend kept getting odd ads on her phone.

We asked why a court file leaked through a draft.

We sketched the first build on a napkin that week.

By month three we had a tiny demo for a friend.

She used it on her first case the next day.

Common questions we hear

Can the tool read scanned PDFs? Yes, with OCR.

Does it work on long files? Yes, in small chunks.

Can I roll my own rule set? Yes, save it as a preset.

Does it run offline? The desktop build runs offline.

Do you keep my files? No, the cloud build wipes after each run.

Will it learn from my work? No, we never train on inputs.

A short tour of the workflow

Upload a file or paste a snippet of prose.

Pick the entities you want gone from the draft.

Choose a method: replace, mask, hash, encrypt, or redact.

Press run and watch the side panel show each hit.

Skim the result and tweak any rule that misfired.

Save the cleaned file or send it to a teammate.