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

Эксплуатация DLP в CodeGraph

Настройка pre-request и post-response действий DLP, проверка доказательств и разделение детекции и доставки оповещения.

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

DLP CodeGraph проверяет выбранный контент до отправки model provider и после получения ответа. При совпадении система может заблокировать, замаскировать, предупредить или только записать событие. DLP контролирует случайный egress. Контроль доступа к репозиторию, договор с провайдером, network policy, secret management и человеческое ревью образуют отдельные меры чувствительных процессов.

Граница контроля

Сопровождаемая реализация разделена между:

  • src/security/config.py — типизированная политика и действия DLP;
  • src/security/dlp/scanner.py — сканирование запросов и ответов;
  • src/security/dlp/actions.py — применение действий;
  • src/security/dlp/webhook.py — опциональная доставка оповещений;
  • src/security/llm/secure_provider.py — защищённая граница model provider;
  • разделом security.dlp в config.yaml — defaults и environment references.

API публикует аутентифицированные операции конфигурации, политик и активности под актуальной поверхностью /api/v1/security/dlp. Поля запросов и ответов берите из OpenAPI развёрнутой версии.

Действия и их смысл

Действия и их смысл
Значение настройки Операционный смысл
BLOCK (block) Остановить защищённый запрос и вернуть blocked outcome.
MASK (mask) Заменить совпавший контент до пересечения защищённой границы.
WARN (warn) Продолжить обработку, но записать warning evidence.
LOG_ONLY (log_only) Записать совпадение, не меняя контент.

Если совпали несколько паттернов, применяется наиболее строгое действие. Настроенные WARN или LOG_ONLY записывают совпадение и пропускают настроенный поток; доступ, сеть, договор с провайдером и ручная проверка управляют дальнейшим egress.

Настройка политики

В конфигурации разделены pre_request и post_response, категории, keywords и webhook. В defaults есть сигналы credentials, PII и source code; точный набор паттернов определяется установленным src/security/config.py, а не замороженным числом из статьи.

Для каждого развёртывания зафиксируйте:

  • включены ли global security и DLP;
  • активные категории, их action и severity;
  • согласованные keyword lists и владельца;
  • default actions для pre-request и post-response;
  • владельца webhook endpoint, secret ref, timeout, retry и notification actions;
  • процесс exception, expiry, review и rollback.

Не ослабляйте политику только ради успешного тестового промпта. Для проверки нужной ветви применяйте синтетический маркер и удаляйте его после теста.

Поток запроса и ответа

До защищённого model call CodeGraph проверяет system prompt и user prompt по pre-request policy. BLOCK останавливает вызов, MASK отправляет изменённый контент, а WARN и LOG_ONLY могут пропустить исходный контент выбранному провайдеру.

После ответа провайдера post-response scanning применяет собственную политику до возврата результата через защищённую поверхность. При оценке egress рассматривайте оба направления. Полная модель описана в руководстве по безопасности LLM.

Оповещения и SIEM

DLP может формировать webhook alerts и сопоставляет действия с событиями SIEM dlp.block, dlp.mask, dlp.warn и dlp.log. Это разные результаты:

  1. scanner обнаружил совпадение;
  2. action изменил либо пропустил контент;
  3. dispatcher принял событие;
  4. настроенный handler сообщил о delivery;
  5. downstream webhook или SIEM действительно получил и проиндексировал событие.

Получение downstream-системой подтверждается handler status, retry или buffer state и evidence получателя. Эти данные сохраняйте, если доставка входит в приёмку.

Проверка развёртывания

Используйте нечувствительные синтетические значения для каждой включённой категории:

  1. сохраните effective policy и release revision;
  2. отправьте ожидаемо чистый промпт и промпт с ожидаемым совпадением;
  3. проверьте выбранное действие и факт вызова провайдера;
  4. подтвердите masking в возвращённом или отправленном контенте, не записывая исходный секрет;
  5. просмотрите аутентифицированную DLP activity;
  6. подтвердите receipt webhook или SIEM, если они настроены;
  7. верните одобренную политику и запишите результат.

Проверяйте pre-request и post-response независимо. Повторяйте сценарий после смены провайдера, политики, паттернов или security profile.

Ограничения и инциденты

Pattern matching может пропустить преобразованные, разделённые, закодированные, доменные или новые чувствительные данные и способен давать false positive. Сохраняйте независимые controls: source access, least privilege, provider egress restrictions, secret scanning и human approval.

При подозрении на утечку остановите затронутый процесс, сохраните audit evidence без секретов, ротируйте учётные данные, определите scope провайдера и получателя и следуйте incident process заказчика. Изменение политики при восстановлении требует владельца, причины, ревью и срока действия.