Перейти к основному содержимому

Передача данных в LLM и меры защиты

Какие данные CodeGraph могут попасть в запрос к LLM-провайдеру и как настроить DLP, маршрутизацию, аудит и профиль развёртывания.

Корпоративная версия

CodeGraph отправляет выбранному провайдеру system_prompt и user_prompt. В зависимости от сценария в них могут находиться запрос пользователя, фрагменты кода, сформированные сводки или структурированные данные CPG. Перед вызовом провайдера runtime применяет настроенные governance- и DLP-проверки. Состав каждого provider payload определяется сценарием и действующей DLP-политикой.

Фактический путь запроса

Текущая граница реализована в src/security/llm/secure_provider.py:

  1. Вызывающий сценарий передаёт system_prompt, user_prompt, контекст операции и настройки провайдера.
  2. Prompt governance определяет действующую политику и approval state.
  3. Pre-request DLP сканирует объединённые prompts.
  4. Настроенное действие DLP — BLOCK, MASK, WARN или LOG_ONLY.
  5. AI FinOps routing выбирает целевого провайдера.
  6. Runtime вызывает target_provider.generate(system_prompt, user_prompt, **kwargs) с отфильтрованными значениями.
  7. Post-response DLP проверяет ответ перед возвратом пользователю.

При выключенном pre-request DLP scanner передаёт данные запроса без удаления. Проверяйте реальный runtime profile.

Что может пересечь границу провайдера

Что может пересечь границу провайдера
Данные Могут передаваться? Обязательная мера
Запрос пользователя и системные инструкции Да Ограничение цели, доступ, DLP и аудит.
Выбранные фрагменты кода или diff Да, если сценарий добавил их в prompt Классификация, минимальный scope, разрешённый профиль и DLP.
Символы, пути, findings и сводки из CPG Да Считать чувствительными инженерными данными, сокращать объём и журналировать.
Секреты, токены, учётные данные и регулируемые идентификаторы Не должны передаваться намеренно BLOCK или MASK, secret management и процесс инцидента.
Полное содержимое репозитория или базы Не прикладывается автоматически отдельным объектом Убедиться, что вызывающий workflow не встроил его в system_prompt или user_prompt.
Ответ провайдера Возвращается через CodeGraph Post-response DLP, audit metadata и ограниченное хранение.

Профили развёртывания

Профили развёртывания
Профиль Граница передачи Решение оператора
Локальная модель Запрос остаётся в настроенной локальной среде inference. Проверить хост, хранение модели, логи и локальный доступ.
Удалённый провайдер под управлением заказчика Prompts уходят на утверждённый endpoint заказчика. Зафиксировать владельца, регион, хранение, обучение, шифрование и контакты для инцидента.
Публичный SaaS-провайдер Prompts покидают инфраструктурную границу заказчика. Требовать явную классификацию и approval; передавать минимально необходимый контекст.

Выбор провайдера меняет границу обработки данных. Утверждение о безопасности действительно только для профиля, который фактически запущен у заказчика.

Поведение DLP

ContentScanner использует эффективную конфигурацию из src/security/config.py и src/security/dlp/scanner.py.

  • BLOCK отклоняет запрос до вызова провайдера.
  • MASK заменяет найденные значения и передаёт изменённые prompts.
  • WARN фиксирует обнаружение, но может разрешить запрос.
  • LOG_ONLY записывает событие и разрешает запрос.

WARN и LOG_ONLY не скрывают данные. MASK зависит от включённых шаблонов и категорий. Неизвестные чувствительные данные могут остаться незамеченными, поэтому scope репозитория и построение prompt остаются основными мерами.

Проверка перед пилотом

  1. Определите workflows, которым разрешён провайдер, и поля prompt для каждого из них.
  2. Классифицируйте исходники, findings, пути, персональные данные, credentials и идентификаторы заказчика.
  3. Проверьте pre-request и post-response DLP в эффективной конфигурации runtime.
  4. Для категорий высокого риска назначьте BLOCK или утверждённый MASK.
  5. Подтвердите endpoint, tenant, регион, сроки хранения, использование для обучения, шифрование и access logs.
  6. Проверьте блокировку или маскирование на синтетическом canary-секрете. Не используйте настоящие credentials.
  7. Убедитесь, что audit records содержат ограниченные metadata, а не чувствительные prompts.
  8. Добавьте утверждённый профиль и подтверждения в пакет готовности к пилоту или релизу.

Если данные могли уйти провайдеру

  1. Остановите или перенаправьте затронутый workflow.
  2. Сохраните request ID и DLP/audit metadata, не копируя секрет в отчёт.
  3. Замените скомпрометированные credentials и выполните процедуру удаления или инцидента у провайдера.
  4. Найдите prompt builder, добавивший данные, и сузьте scope или политику.
  5. До восстановления маршрута повторите проверку с синтетическим canary.

Источники

  • src/security/llm/secure_provider.py
  • src/security/dlp/scanner.py
  • src/security/config.py
  • src/llm/interface.py
  • src/api/services/dashboard/security_core/security_dlp.py

Связанные материалы: DLP Security и SIEM.