CodeGraph отправляет выбранному провайдеру system_prompt и user_prompt. В зависимости от сценария в них могут находиться запрос пользователя, фрагменты кода, сформированные сводки или структурированные данные CPG. Перед вызовом провайдера runtime применяет настроенные governance- и DLP-проверки. Состав каждого provider payload определяется сценарием и действующей DLP-политикой.
Фактический путь запроса
Текущая граница реализована в src/security/llm/secure_provider.py:
- Вызывающий сценарий передаёт
system_prompt,user_prompt, контекст операции и настройки провайдера. - Prompt governance определяет действующую политику и approval state.
- Pre-request DLP сканирует объединённые prompts.
- Настроенное действие DLP —
BLOCK,MASK,WARNилиLOG_ONLY. - AI FinOps routing выбирает целевого провайдера.
- Runtime вызывает
target_provider.generate(system_prompt, user_prompt, **kwargs)с отфильтрованными значениями. - 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 остаются основными мерами.
Проверка перед пилотом
- Определите workflows, которым разрешён провайдер, и поля prompt для каждого из них.
- Классифицируйте исходники, findings, пути, персональные данные, credentials и идентификаторы заказчика.
- Проверьте pre-request и post-response DLP в эффективной конфигурации runtime.
- Для категорий высокого риска назначьте
BLOCKили утверждённыйMASK. - Подтвердите endpoint, tenant, регион, сроки хранения, использование для обучения, шифрование и access logs.
- Проверьте блокировку или маскирование на синтетическом canary-секрете. Не используйте настоящие credentials.
- Убедитесь, что audit records содержат ограниченные metadata, а не чувствительные prompts.
- Добавьте утверждённый профиль и подтверждения в пакет готовности к пилоту или релизу.
Если данные могли уйти провайдеру
- Остановите или перенаправьте затронутый workflow.
- Сохраните request ID и DLP/audit metadata, не копируя секрет в отчёт.
- Замените скомпрометированные credentials и выполните процедуру удаления или инцидента у провайдера.
- Найдите prompt builder, добавивший данные, и сузьте scope или политику.
- До восстановления маршрута повторите проверку с синтетическим canary.
Источники
src/security/llm/secure_provider.pysrc/security/dlp/scanner.pysrc/security/config.pysrc/llm/interface.pysrc/api/services/dashboard/security_core/security_dlp.py
Связанные материалы: DLP Security и SIEM.