Безопасность данных

English · Русский

Почему синтетические данные всё равно нужно проверять

Отсутствие копирования строк — важная гарантия, но не доказательство анонимности. Имена таблиц, поля, агрегаты, редкие сочетания, бизнес-категории и вручную записанные правила могут раскрывать контекст. Эвристика не всегда понимает специфичный для организации идентификатор. Профиль и spec тоже нуждаются в review перед передачей.

Генератор не сертифицирует differential privacy, k-anonymity, защиту от всех атак повторной идентификации или юридическое соответствие. Безопасность назначения оценивает владелец данных.

Обязательные границы

  • Не копировать, не перемешивать и не экспортировать исходные строки как synthetic output.
  • Не включать PII, credentials, токены, secret и production literals в примеры, правила, логи, исключения и provider payload.
  • Читать внешнюю базу только в разрешённом scope, read-only ролью, с конечными бюджетами и TLS.
  • Разделять создание локальных файлов и выполнение SQL-записи в целевой БД.
  • Использовать отдельные входные и выходные пути; не обходить отказ при symlink или выходе за workspace.
  • Проверять AI-предложение детерминированно, затем выполнять человеческий review точного spec.

--local-category разрешает только отдельные проверенные ограниченные enum/константы в локальных разрешённых назначениях, не исходные строки, идентификаторы, свободный текст или передачу провайдеру. Установленный allowlist — вход авторизации, а не доказательство нечувствительности содержимого.

Процедура безопасного принятия

  1. До чтения: подтвердите разрешённые файлы/таблицы/поля и назначение. Для неизвестного источника остановитесь до уточнения, не берите sample rows в чат.
  2. После профиля: локально проверьте метаданные и чувствительность; не публикуйте артефакт автоматически.
  3. После spec: проверьте identifiers, категории, даты, связи, ограничения и объём; сохраните точный fingerprint при review-first workflow.
  4. После генерации: выполните валидацию, проверьте manifest и бизнес-отчёт, оцените полезность и риск раскрытия.
  5. Перед передачей: подтвердите получателя, среду и разрешение; отправляйте только разрешённый результат. Нельзя автоматически пересылать исходные данные внешнему AI даже для диагностики.

Для каждой проверки критерий успеха — явный подтверждённый scope или отчёт; при неопределённости прекратите зависимую операцию и запросите недостающий факт. Подробные исполнимые шаги и ошибки: agent workflows.

Trino default aggregate-only инструменты отделены от explicit opt-in run_safe_select. Последний возвращает ограниченный row-shaped результат и не гарантирует отсутствия всех исходных значений. Он не нужен для генерации и не может быть её источником строк.

Дополнительно: Safety Model, Threat Model, ограничения.

Трансформация не является синтетической генерацией

В 1.6.0 отдельная opt-in трансформация создаёт labelled mixed-origin артефакты один к одному. Перед preserve или preserve fallback нужны явное field-scoped non-sensitive решение, отсутствие conflicting sensitivity, комментарий оператора и свежий локальный controlling-TTY receipt для exact snapshot. Sensitive/unknown/disputed поля не разрешаются; DECIMAL preservation по умолчанию заблокирован. Receipt не выдаёт агент или MCP.

Явные substitute/replace_text mappings имеют отдельный контракт: replacement может совпасть с другим исходным значением, включая sensitive permutation. Это не разрешает implicit copying, source-row reuse в генерации или раскрытие literals в логах/provider/MCP. Такой выход защищают как потенциально чувствительный; synthetic=true/source_rows_copied=false не следует приписывать ему по аналогии с генератором. См. отдельный workflow.

Ограничения и неподтверждённые свойства

Область Подтверждённая граница Что нельзя обещать
Повторяемость Явный seed и одинаковое окружение Одинаковые байты на любых версиях/ОС
Профиль Ограниченные метаданные и наблюдения Полную статистическую модель исходных данных
Правила Только формализованные поддерживаемые ограничения Сохранение неизвестных бизнес-законов
Связи Кандидаты с confidence/status, проверка сгенерированных ссылок Что любая найденная связь имеет верный бизнес-смысл
CSV-папка Ограниченная выборка и distinct tracker Точную уникальность после overflow; lower_bound — лишь нижняя граница
Identifier pool Синтетическое число ключей и детерминированное циклирование Сохранение исходных ID, частот или row mappings
Время При отсутствии границ fallback 2020-01-01 / 2025-01-01 Что fallback — измеренный период источника
Приватность Content guards и запрет копирования строк Сертификат анонимности, юридическое соответствие
SQL source Ограниченный single-table SELECT, no-row schema и агрегаты JOIN, CTE, arbitrary SQL или source-row export
SQL output Генерация файла Автоматическую загрузку в БД или проверенное исполнение SQL
Workspace Проверка путей generator MCP OS sandbox, сетевую изоляцию, защиту от владельца процесса
Файлы Staging и recovery некоторых interrupted approvals Полную crash/power-loss durability нескольких файлов как одной транзакции
AI Ограниченные proposals, детерминированная валидация, review Достоверность всех рекомендаций или auto-approval
Selective transformation Зарегистрированные local/MCP consumers с exact snapshot и receipt gates Что регистрация разрешает набор, выдачу approval агентом или анонимность mixed-origin output

OpenAI и GigaChat adapters имеют статус experimental. load_test — режим генерации, а не распределённая нагрузочная платформа; edge не доказывает покрытие всех границ вашей системы. Для negative/mixed проверяйте ожидаемые нарушения.

Не подтверждено этим аудитом: новая установка из индекса, Windows/Linux, живые PostgreSQL/Trino, вызовы OpenAI/GigaChat, конкретный MCP-клиент, исполнение SQL и восстановление после реального падения. Для подтверждения нужны согласованные изолированные среды и отдельные проверки. Локальные fakes и SDK tests не заменяют эти проверки.

Текущие ограничения numeric evidence, relationship utility и live acceptance перечислены в known issues. Они не отменяются passing report или локальным примером. Границы аудита приведены в отчёте.