Суть
Чтобы использовать внешние API (OpenAI) в РФ-контуре, нужно отправлять не Иван Иванович, а <PERSON>. Presidio детектирует чувствительные сущности и маскирует их, оставляя смысл запроса. Это конкретный инструмент для pre-prompt scanning из DLP for LLM.
Зачем это нужно
- Комплаенс — ПДн нельзя отправлять в зарубежные API (серверы США/ЕС); анонимизация снимает это ограничение.
- Минимум усилий — интеграция в несколько строк, заметный эффект на риск.
Как работает
- Microsoft Presidio — open-source:
AnalyzerEngineнаходит PII,AnonymizerEngineмаскирует. Детектирует ФИО, телефоны, email, номера карт, паспортные данные. - Под капотом — NER + regex:
- NER (Named Entity Recognition) — NLP-задача: модель находит в тексте слова/фразы заранее определённых классов (имя, организация, локация) и присваивает метки.
- regex — для форматных сущностей (номера карт, телефоны).
- Локализация под РФ — из коробки Presidio заточен под англоязычные данные; российские форматы (паспорт РФ, СНИЛС, ИНН) добавляются через кастомные recognizers (несложно: объявляем переменные/паттерны и подаём в инструмент).
- Где в пайплайне: входящий трафик — детект/маскирование PII, блокировка API-ключей и кредов, логирование подозрительных паттернов; исходящий — фильтр данных из RAG, проверка, что модель «не вспомнила» обучающие данные.
Связано с
- DLP for LLM — Presidio как инструмент pre-prompt scanning
- Guardrails — PII-скраб как часть Input-слоя
- Agent Security — защита данных в общей модели угроз
Открытые вопросы
- Качество NER на русских ПДн (СНИЛС/ИНН/паспорт) — где Presidio ошибается и чем дополнять?
- Обратимая псевдонимизация (де-маскирование ответа) vs необратимая — когда что нужно?