anonym.legal

By · Last updated 2026-06-05

Terug naar BlogAI Beveiliging

AI-Codeerassistenten Lekken Productie-PII

Testfixtures met echte klantrecords. Logbestanden met productiedata voor debugging. GitHub vond 39 miljoen gelekte geheimen in 2024.

June 5, 20268 min lezen
AI coding assistantproduction PIIdeveloper securityMCP ServerGitHub Copilot

Waarom AI-Codetools Echte Klantrecords Lekken

De meeste PII-lekken van devteams zijn geen inbreuken. Het zijn neveneffecten van dagelijks werk.

Productiedata betreedt testomgevingen. Van daaruit bereikt het AI-codetools — en de leveranciers die ze exploiteren.

GitHub's 2025-onderzoek bevestigde dit. Ontwikkelaars lekten 39 miljoen geheimen in publieke repositories tijdens 2024. API-sleutels en persoonsgegevens verschenen allemaal. De meeste kwamen uit testfixtures en debuglogs. Zie ons beveiligingswaarborgen-overzicht om te leren hoe teams dit risico aanpakken.

Bijgewerkt voor 2026: AI-codetooladoptie is snel gegroeid. Daarmee ook het blootstellingsoppervlak.

Hoe Echte Records Devenomgevingen Binnendringen

De routes zijn gebruikelijk en voorspelbaar.

Testfixture-bestanden: Unittests hebben realistische invoer nodig. De snelste route is het kopiëren van rijen uit productie. De ontwikkelaar is van plan ze "later" te vervangen. Later komt zelden. Echte e-mails en account-ID's blijven door tientallen commits heen staan.

Debuglogs: Een bug kan niet lokaal worden gereproduceerd. Een ontwikkelaar haalt een log op uit het live systeem. Dat log heeft klant-e-mails, IP-adressen en sessietokens. Het bestand belandt in de projectroot en wordt gecommit.

Migratiescripts: Schemawijzigingen bevatten voorbeeldrijen voor testomgevingen. Een DBA kopieert echte rijen als voorbeelden. Het script — met echte klantvermeldingen — gaat versiebeheer in.

Documentatie en README-bestanden: Gebruiksvoorbeelden gebruiken "realistische" invoer. Realistisch betekent vaak gekopieerd van echte gebruikers. De README eindigt met echte bestel-ID's en accountadressen.

Configuratiebestanden: Dev-configs bevatten staging-sleutels die echte klantdata bereiken. Deze bestanden worden gecommit met geheimen erin.

Wat AI-Assistenten Werkelijk Ontvangen

Wanneer ontwikkelaars AI-codetools gebruiken, sturen meerdere kanalen privéinformatie naar buiten.

Volledige bestandscontext: De tool kan volledige bestanden ontvangen. Dat omvat testfixtures met echte vermeldingen, loguittreksels of configuratiebestanden met live sleutels.

Klembordplaksels: Ontwikkelaars plakken code in chat voor beoordeling. De omringende context heeft vaak klantdetails erin.

IDE-indexering: Cursor en GitHub Copilot indexeren lokale bestanden voor context. Elk projectbestand met echte rijen wordt onderdeel van die index.

Foutmeldingen: Ontwikkelaars plakken stack traces in AI-chat bij het debuggen. Stack traces kunnen klant-ID's bevatten.

Elk kanaal stuurt privéinformatie naar de AI-leveranciers-API. Dit creëert AVG- en HIPAA-risico. Zie ons conformiteitsoverzicht voor hoe deze regels van toepassing zijn op dev-tools.

AVG En HIPAA: Sleutelfactoren Voor Dev-Teams

Deze regels zijn van toepassing op AI-codetoolgebruik.

AVG Artikel 28 — Verwerker: Persoonsgegevens sturen naar een AI-leverancier maakt die leverancier een gegevensverwerker. Een Data Processing Agreement is vereist. De meeste leveranciers bieden DPA's. Ontwikkelaars die AI-tools gebruiken buiten formele aankopen hebben mogelijk geen getekende DPA.

AVG Artikel 6 — Rechtsgeldige grond: Dev-testen vereist een rechtsgrond voor het verwerken van persoonsgegevens. Gerechtvaardigd belang kan van toepassing zijn — maar het heeft een afweging nodig. Echte klantrecords gebruiken wanneer neppe volstaan faalt die afweging.

HIPAA — BAA: Zorgontwikkelaars moeten een Business Associate Agreement hebben met de AI-leverancier. OpenAI, Anthropic en GitHub Copilot bieden BAA's voor enterprise-gebruikers. Individueel gebruik buiten een enterprise-abonnement is mogelijk niet gedekt.

Minimalisatie: Echte klantrecords in testfixtures schenden de minimalisatieregel. Neppe rijen dienen hetzelfde doel zonder de privacykosten.

Onze FAQ behandelt veelgestelde vragen over deze regels.

Praktische Stappen Voor Dev-Teams

Begin met een snelle audit. De meeste teams vinden binnen het eerste uur problemen.

Onmiddellijke acties:

  1. Auditeer testfixtures — zoek naar e-mail-, telefoon- en ID-patronen.
  2. Controleer productielogbestanden in projectmappen op klant-ID's.
  3. Update `.gitignore` om logbestanden en omgevingsspecifieke databestanden uit te sluiten.
  4. Vervang echte vermeldingen door synthetische generatoren zoals Faker of Mimesis.

De audit alleen brengt vaak jaren van geaccumuleerde blootstelling aan het licht. Één team vond echte klant-e-mails in 14 testbestanden aangemaakt door zes verschillende ontwikkelaars over drie jaar. Geen van de ontwikkelaars had de bedoeling ze te laten staan.

Vóór elke AI-assistentsessie:

  • Voer PII-detectie uit op bestanden vóór het delen.
  • Voor IDE-tools zoals Cursor: sluit testmappen uit van indexering.
  • Voor op chat gebaseerde tools: beoordeel geplakte code op persoonsgegevens.

MCP Server add-on:

De anonym.legal MCP Server verbindt PII-detectie met Claude Desktop en Cursor. De stappen zijn eenvoudig:

  1. Open een bestand in de editor.
  2. Roep de MCP Server aan: detecteer PII in het bestand.
  3. Bekijk gemarkeerde items.
  4. Redacteer op locatie.
  5. Deel het schone bestand met de AI-tool.

Dit voegt minder dan 30 seconden per bestand toe. Het verwijdert de handmatige "controleer op PII"-last. Zie onze abonnementen om MCP Server-toegang toe te voegen aan uw team.

Synthetische invoer — de blijvende oplossing:

Gebruik nooit echte rijen in testfixtures. Synthetische bibliotheken produceren realistische invoer zonder echte gebruikers bloot te stellen. Faker (Python/Node.js), Factory Boy (Python) en Bogus (.NET) genereren geldige invoer voor elk schema. Elke bibliotheek laat u een locale instellen en realistische namen, e-mails en telefoonnummers uitvoeren — allemaal nep.

Casestudy: SaaS-Team Vindt Echte Vermeldingen In Cursor

De vondst kwam tijdens een AVG-audit. Een SaaS-team dat Cursor gebruikte vond echte klant-e-mails in unitteststestfixtures. Een ontwikkelaar had 18 maanden eerder 50 klantrijen uit productie gekopieerd. Die rijen waren gecommit in versiebeheer en geïndexeerd door Cursor.

Over 18 maanden benaderde Cursor de fixturebestanden ruwweg 11.000 keer over 8 ontwikkelaar-IDE-sessies. Elke sessie kan fixture-inhoud naar de Cursor API hebben gestuurd.

Wat het team deed:

  1. Alle 50 echte rijen vervangen door Faker-gegenereerde neppe invoer.
  2. `.gitignore` bijgewerkt om logbestanden uit te sluiten.
  3. MCP Server toegevoegd voor on-demand PII-detectie vóór het delen van code.
  4. Een norm ingesteld: geen productievermeldingen in enig gecommit bestand.

De MCP Server was de sleutelverandering. Ontwikkelaars voeren nu detectie uit vóór Cursor-sessies op klantgerichte code. Nul extra moeite buiten de MCP-aanroep.

Lees meer in onze casestudies sectie.

Bronnen

GitHub Security Research 2024. GEVERIFIEERD-EXTERN.

AVG Artikel 28. GEVERIFIEERD-EXTERN.

HIPAA BAA-leidraad. GEVERIFIEERD-EXTERN.

Klaar om uw gegevens te beschermen?

Begin met het anonimiseren van PII met 285+ entiteitstypen in 48 talen.

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.