anonym.legal
Назад към блогаСигурност на AI

Код, тестове и клиентски данни: Как екипите за...

Приспособления за тестване на единици с реални записи на клиенти. Лог файлове с производствени данни за отстраняване на грешки.

April 21, 20268 мин. четене
AI coding assistantproduction PIIdeveloper securityMCP ServerGitHub Copilot

Проблемът със средата за разработка PII

Екипите за разработка на софтуер са сред най-честите непреднамерени лица, които разкриват PII - не чрез системни пробиви, а чрез ежедневните работни потоци на разработката на софтуер.

Проблемът: личните данни от производствените системи рутинно си проправят път в среди за разработка, а оттам в асистенти за кодиране на AI.

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

Асистентите за кодиране на AI увеличават този риск. Когато разработчик сподели файл за тест на единица, съдържащ истински имейл адреси на клиенти с GitHub Copilot, Cursor или Claude за помощ при преглед на кода, сървърите на доставчика на AI получават тези имейл адреси. Субектът на данните, чийто имейл е бил копиран в тестово приспособление, няма представа, че имейл адресът му сега е в обучителния процес на компания за AI.

Как Production PII навлиза в среди за разработка

Пътищата са предвидими:

Данни за тестови приспособления: Единичните и интеграционните тестове изискват реалистични тестови данни. Най-бързият начин да получите реалистични данни е да копирате няколко записа от производството. Разработчикът има предвид да го замени със синтетични данни "по-късно". По-късно идва рядко. Производствените имейл адреси, имена и идентификационни номера на акаунти продължават да съществуват в тестовете чрез десетки ангажименти.

Отстраняване на грешки въз основа на регистрационен файл: Доклад за грешка от производствения процес не може да бъде възпроизведен. Разработчикът изисква извадка от регистрационен файл от производствената система за локално възпроизвеждане. Извадката от регистрационния файл съдържа имейл адреси на клиенти, IP адреси и идентификатори на сесии. Регистрационният файл се намира в корена на проекта, включен в следващите git комити.

Скриптове за миграция на база данни: Миграциите на схеми включват примерни данни за непроизводствени среди. DBA копира няколко реда от производството като проба. Скриптът за миграция — с реални клиентски данни — се ангажира с кодовата база.

Документация и README: Документацията на кода включва примери за използване с „реалистични“ данни. „Реалистичен“ означава копиран от действителни взаимодействия с клиенти. README съдържа реални идентификатори на клиентски поръчки, продуктови кодове, свързани с конкретни акаунти, и понякога имейл адреси.

Конфигурационни файлове: Конфигурацията на приложения за среди за разработка включва идентификационни данни за етапна/производствена база данни или API ключове, които също предоставят достъп до клиентски данни. Тези конфигурационни файлове са предназначени за контрол на версиите с достъпни за разработчиците тайни.

Какво виждат AI Coding Assistants

Когато разработчик използва помощник за кодиране с изкуствен интелект с контекст от тяхната кодова база:

Контекст на ниво файл: Асистентът може да получи цели файлове — включително тестови файлове с данни за реални клиенти, извадки от регистрационни файлове, прикачени към проекта, или конфигурационни файлове с производствени идентификационни данни.

Поставяне на клипборда: Разработчиците поставят кодови фрагменти в AI чат интерфейси, за да поискат преглед или помощ за отстраняване на грешки. Фрагментът може да включва заобикалящ контекст с клиентски данни.

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

Съобщения за грешка: При отстраняване на грешки при производствени грешки разработчиците поставят съобщения за грешка и следи на стека в AI помощници. Следите на стека може да съдържат специфични за клиента идентификатори от контекста на грешката.

Всеки от тези пътища предава лични данни към API на доставчика на AI, създавайки последици за съответствието на GDPR и HIPAA.

GDPR и HIPAA Последици за екипите за разработка

GDPR Член 28 (Обработващ данни): Когато личните данни се предават на доставчик на асистент за кодиране с изкуствен интелект, този доставчик става обработващ данни съгласно GDPR. Изисква се споразумение за обработка на данни. Повечето доставчици на асистенти за кодиране на AI имат налични DPA, но разработчиците, използващи AI инструменти извън официалния процес на възлагане на обществени поръчки на организацията, може да не са установили DPA.

GDPR Член 6 (Законно основание): Обработването на лични данни за тестване на разработка на софтуер изисква законово основание. „Легитимен интерес“ може да се приложи, но изисква тест за балансиране. Използването на реални клиентски данни за тестване на разработката, когато синтетичните данни биха служили за същата цел, се проваля на теста за балансиране (съществува по-малко инвазивна по отношение на поверителността алтернатива).

HIPAA (Споразумение за бизнес партньор): Разработчиците в здравеопазването, използващи асистенти за кодиране на AI, за да преглеждат кода, който обработва PHI, трябва да имат споразумение за бизнес партньор с доставчика на AI. OpenAI, Anthropic и GitHub Copilot всички предлагат BAA за корпоративни клиенти, но индивидуалното използване от разработчици извън корпоративното споразумение може да не е покрито.

**Минимизиране на данните: ** Реалните клиентски данни в тестовите устройства нарушават принципа за минимизиране — синтетичните данни биха послужили за целите на тестването без разходите за поверителност.

Практически смекчаващи мерки за екипи за разработка

Незабавни действия:

  1. Одит на текущите тестове за реални данни - търсене на имейл модели, SSN модели, модели на телефонни номера
  2. Одитирайте производствените регистрационни файлове в директориите на проекта — идентифицирайте файлове, съдържащи идентификатори на клиента
  3. Конфигурирайте .gitignore, за да изключите лог файлове и файлове с данни, специфични за средата
  4. Заменете производствените данни в тестовите устройства със синтетични генератори на данни (Faker, Mimesis)

Работен процес преди AI-асистент:

  • Преди да споделите който и да е кодов файл с AI асистент: стартирайте откриване на PII на файла
  • За IDE-интегриран AI (Cursor): конфигурирайте асистента да изключва директории с тестови данни от индексиране
  • За базиран на чат AI: прегледайте поставения код за PII преди изпращане

Интегриране на MCP сървър за работни процеси на разработчици: Интеграцията на anonym.legal MCP Server свързва откриването на 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) генерират контекстуално подходящи тестови данни за всяка схема.

Случай на употреба: SaaS инженерен екип Производство Откриване на PII

Инженерен екип на SaaS, използващ Cursor (AI IDE) за разработка, откри имейл адреси на производствени клиенти в модулни тестове по време на одит на GDPR. Тестовите приспособления бяха създадени 18 месеца по-рано, когато разработчик копира 50 клиентски записа от производството, за да напише реалистични интеграционни тестове. Записите бяха ангажирани за контрол на версиите и индексирани от Cursor.

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

Саниране:

  1. Замени всичките 50 записа на реални клиенти със синтетични данни, генерирани от Faker
  2. Конфигуриран .gitignore за изключване на лог файлове от контрола на версиите
  3. Внедрена интеграция на MCP сървър в Cursor за откриване на PII при поискване преди споделяне на кодови фрагменти
  4. Установена норма на инженерния екип: няма производствени данни в нито един файл, ангажиран за контрол на версиите

Интегрирането на MCP сървъра беше ключовата промяна в работния процес: разработчиците вече изпълняват откриване на PII на файлове преди Cursor сесии, включващи код, обърнат към клиента. Нулево ръчно усилие отвъд извикването на MCP сървъра.

Източници:

Готови ли сте да защитите данните си?

Започнете анонимизация на PII с 285+ типа субекти на 48 езика.