anonym.legal

By · Last updated 2026-06-05

Назад до блогуБезпека ШІ

AI-помічники для кодування та витік PII у виробництві

Тестові фікстури з реальними записами клієнтів. Журнальні файли з виробничими даними для відлагодження. GitHub виявив 39 мільйонів витоків секретів у 2024 році.

June 5, 20268 хв читання
AI coding assistantproduction PIIdeveloper securityMCP ServerGitHub Copilot

Проблема PII у середовищі розробки

Команди розробників програмного забезпечення є одними з найчастіших ненавмисних розповсюджувачів PII — не через злами систем, а через повсякденні робочі процеси розробки програмного забезпечення.

Проблема: персональні дані з виробничих систем регулярно потрапляють у середовища розробки, а звідти — в AI-помічники для кодування.

Дослідження безпеки GitHub 2025 року виявило, що 39 мільйонів секретів — ключі API, облікові дані та чутливі дані — були розкриті у публічних репозиторіях у 2024 році. Значна частина походила з тестових даних та артефактів відлагодження: розробники, які копіювали виробничі дані в тестові фікстури, файли зразкових даних або журнали відлагодження, а потім фіксували їх у системі контролю версій.

AI-помічники для кодування посилюють цей ризик. Коли розробник ділиться файлом модульних тестів, що містить реальні адреси електронної пошти клієнтів, з GitHub Copilot, Cursor або Claude для допомоги з переглядом коду, сервери постачальника AI отримують ці адреси електронної пошти. Суб'єкт даних, чиєю адресою електронної пошти скористалися у тестовій фікстурі, навіть не підозрює, що його електронна адреса тепер знаходиться в конвеєрі навчання AI-компанії.

Як виробничий PII потрапляє в середовища розробки

Шляхи є передбачуваними:

Дані тестових фікстур: Модульним та інтеграційним тестам потрібні реалістичні тестові дані. Найшвидший спосіб отримати реалістичні дані — скопіювати кілька записів з виробництва. Розробник має намір замінити їх на синтетичні дані «пізніше». «Пізніше» рідко настає. Виробничі адреси електронної пошти, імена та ідентифікатори облікових записів зберігаються в тестових фікстурах через десятки комітів.

Відлагодження на основі журналів: Звіт про помилку з виробництва неможливо відтворити. Розробник запитує витяг журналу з виробничої системи для локального відтворення. Витяг журналу містить адреси електронної пошти клієнтів, IP-адреси та ідентифікатори сесій. Файл журналу знаходиться в кореневому каталозі проекту, включаючись до наступних git-комітів.

Скрипти міграції бази даних: Міграції схем включають зразкові дані для невиробничих середовищ. Адміністратор бази даних копіює кілька рядків з виробництва як зразок. Скрипт міграції — з реальними даними клієнтів — фіксується в кодовій базі.

Документація та README: Документація коду включає приклади використання з «реалістичними» даними. «Реалістичними» означає скопійованими з реальних взаємодій з клієнтами. README містить реальні ідентифікатори замовлень клієнтів, коди продуктів, пов'язані з конкретними обліковими записами, та іноді адреси електронної пошти.

Файли конфігурації: Конфігурація програми для середовищ розробки включає облікові дані проміжної/виробничої бази даних або ключі API, що також надають доступ до даних клієнтів. Ці файли конфігурації фіксуються в системі контролю версій із секретами, доступними розробникам.

Що бачать AI-помічники для кодування

Коли розробник використовує AI-помічника для кодування з контекстом зі своєї кодової бази:

Контекст на рівні файлів: Помічник може отримувати цілі файли — включаючи файли тестових фікстур з реальними даними клієнтів, витяги журналів, прикріплені до проекту, або файли конфігурації з виробничими обліковими даними.

Вставка з буфера обміну: Розробники вставляють фрагменти коду в інтерфейси AI-чату, щоб попросити про перегляд або допомогу з відлагодженням. Фрагмент може включати навколишній контекст з даними клієнтів.

Інтеграція з IDE: Cursor та GitHub Copilot інтегруються в IDE та можуть індексувати локальні файли для контексту. Файли в каталозі проекту, що містять виробничі дані, стають частиною індексованого контексту.

Повідомлення про помилки: При відлагодженні виробничих помилок розробники вставляють повідомлення про помилки та трасування стека в AI-помічники. Трасування стека можуть містити специфічні для клієнта ідентифікатори з контексту помилки.

Кожен з цих шляхів передає персональні дані до API постачальника AI, створюючи наслідки з точки зору відповідності GDPR та HIPAA.

Наслідки GDPR та HIPAA для команд розробників

Стаття 28 GDPR (Обробник даних): Коли персональні дані передаються постачальнику AI-помічника для кодування, цей постачальник стає обробником даних відповідно до GDPR. Потрібна Угода про обробку даних. Більшість постачальників AI-помічників для кодування мають доступні DPA — але розробники, що використовують AI-інструменти поза формальним закупівельним процесом організації, могли не встановити DPA.

Стаття 6 GDPR (Законна підстава): Обробка персональних даних для тестування розробки програмного забезпечення вимагає законної підстави. «Законний інтерес» може застосовуватися, але він вимагає тесту балансування. Використання реальних даних клієнтів для тестування розробки, коли синтетичні дані слугували б тій самій цілі, не проходить тест балансування (існує менш інвазивна для конфіденційності альтернатива).

HIPAA (Угода про ділового партнера): Розробники медичних систем, що використовують AI-помічники для кодування для перегляду коду, що обробляє PHI, повинні мати Угоду про ділового партнера (BAA) з постачальником AI. OpenAI, Anthropic та GitHub Copilot всі пропонують BAA для корпоративних клієнтів, але індивідуальне використання розробниками поза корпоративною угодою може не охоплюватися.

Мінімізація даних: Реальні дані клієнтів у тестових фікстурах порушують принцип мінімізації — синтетичні дані слугували б меті тестування без витрат на конфіденційність.

Практичні заходи для команд розробників

Негайні дії:

  1. Проведіть аудит поточних тестових фікстур на наявність реальних даних — шукайте шаблони електронної пошти, шаблони ІПН, шаблони номерів телефонів
  2. Проведіть аудит виробничих журнальних файлів у каталогах проектів — ідентифікуйте файли, що містять ідентифікатори клієнтів
  3. Налаштуйте .gitignore для виключення журнальних файлів і файлів даних, специфічних для середовища
  4. Замініть виробничі дані в тестових фікстурах на генератори синтетичних даних (Faker, Mimesis)

Робочий процес перед AI-помічником:

  • Перед тим як ділитися будь-яким файлом коду з AI-помічником: запустіть виявлення PII для файлу
  • Для AI, інтегрованих в IDE (Cursor): налаштуйте помічника для виключення каталогів тестових даних з індексування
  • Для AI на основі чату: перегляньте вставлений код на наявність PII перед поданням

Інтеграція MCP-сервера для робочих процесів розробників: Інтеграція MCP-сервера anonym.legal підключає виявлення PII безпосередньо в Claude Desktop та Cursor. Розробники можуть обробляти файл через MCP-сервер перед тим, як ділитися з AI-помічником:

  1. Відкрийте файл у редакторі
  2. Виклик MCP-сервера: виявити PII у вмісті файлу
  3. Перегляньте виявлені сутності
  4. Анонімізуйте сутності на місці
  5. Поділіться анонімізованою версією з AI-помічником

Цей робочий процес додає менше 30 секунд на файл і усуває когнітивне навантаження ручної перевірки «перевірити наявність PII».

Генерація синтетичних даних: Сталим рішенням для тестових фікстур є: ніколи не використовувати реальні дані. Бібліотеки генерації синтетичних даних виробляють реалістично виглядаючі дані без реальних осіб. Бібліотеки такі як Faker (Python/Node.js), Factory Boy (Python) та Bogus (.NET) генерують контекстуально відповідні тестові дані для будь-якої схеми.

Приклад: Виявлення виробничого PII в інженерній команді SaaS

Інженерна команда SaaS, що використовує Cursor (AI IDE) для розробки, виявила виробничі адреси електронної пошти клієнтів у тестових фікстурах модульних тестів під час аудиту GDPR. Тестові фікстури були створені 18 місяців тому, коли розробник скопіював 50 записів клієнтів з виробництва для написання реалістичних інтеграційних тестів. Записи були зафіксовані в системі контролю версій та проіндексовані Cursor.

За 18 місяців файли тестових фікстур переглядалися Cursor приблизно 11 000 разів у 8 сесіях IDE різних розробників — кожна сесія потенційно передавала вміст фікстур до API Cursor.

Усунення:

  1. Замінено всі 50 реальних записів клієнтів на синтетичні дані, згенеровані Faker
  2. Налаштовано .gitignore для виключення журнальних файлів з системи контролю версій
  3. Впроваджено інтеграцію MCP-сервера в Cursor для виявлення PII за вимогою перед поширенням фрагментів коду
  4. Встановлено командну норму для інженерної команди: жодних виробничих даних у жодному файлі, зафіксованому в системі контролю версій

Інтеграція MCP-сервера стала ключовою зміною робочого процесу: розробники тепер запускають виявлення PII для файлів перед сесіями Cursor, що включають код, орієнтований на клієнтів. Нуль ручних зусиль поза викликом MCP-сервера.

Джерела:

Готові захистити свої дані?

Почніть анонімізувати PII з 285+ типами сутностей на 48 мовах.

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.