Документация Запланировать пилот

Обнаружение PII

AI Security for Apps (ранее Firewall for AI) умеет обнаруживать персональные данные (PII) во входящих промптах LLM. Есть два подхода к обнаружению PII, и их можно использовать вместе для многоуровневой защиты:

Обнаружение PII на основе AI

Когда AI Security for Apps включена и запрос поступает на cf-llm конечной точки с этой меткой, промпт сканируется на наличие PII, и заполняются два поля:

Обнаружение работает на основе AI-модели распознавания именованных сущностей (NER). См. cf.llm.prompt.pii_categories справочник по полю полный список распознаваемых категорий.

Поддерживаемые категории PII

Категория Описание
BANK_ACCOUNT Номер банковского счёта
CREDIT_CARD Номер кредитной карты
DATE_TIME Выражение даты или времени
DRIVER_LICENSE Номер водительского удостоверения
EMAIL_ADDRESS Адрес электронной почты
IP_ADDRESS Адрес IPv4
LOCATION Физическое местоположение или адрес
PASSPORT Номер паспорта
PERSON Полное или частичное имя физического лица
PHONE_NUMBER Номер телефона
TAX_ID Идентификационный номер налогоплательщика
US_SSN Номер социального страхования США
URL URL

Формулируйте точнее, чтобы снизить количество ложных срабатываний

cf.llm.prompt.pii_detected поле возвращает true когда обнаружена любая категория PII, включая широкие категории, такие как PERSON, DATE_TIME, а также LOCATION которые часто встречаются в обычном общении. Блокировка только на основании этого поля приведёт к высокой доле ложных срабатываний для большинства приложений.

Вместо этого создавайте правила на основе cf.llm.prompt.pii_categories и указывайте только те категории, которые важны для вашего сценария использования. Например, чат-боту службы поддержки может понадобиться блокировать номера банковских карт и номера социального страхования (SSN), но можно спокойно игнорировать имена людей и даты. Начните с самого узкого набора категорий и отслеживайте совпадения в Security Analytics, и расширяйте его только по мере необходимости.

Пример правил: обнаружение на основе AI

Блокировать любой запрос, содержащий PII

Блокировать только определённые категории PII

Регистрировать адреса электронной почты, но блокировать номера банковских карт и номера социального страхования (SSN)

Создание двух пользовательские правила:

  1. Правило с действием Block и следующее выражение:
    (any(cf.llm.prompt.pii_categories[*] in {"CREDIT_CARD" "US_SSN"}))

  2. Правило с действием Log и следующее выражение:
    (any(cf.llm.prompt.pii_categories[*] in {"EMAIL_ADDRESS"}))

Точное обнаружение PII (регулярное выражение)

Если вам нужно обнаружить пользовательские форматы PII характерные для вашей организации, такие как внутренние ID сотрудников, номера медицинских карт пациентов или уникальные идентификаторы учётных записей, вы можете создать WAF пользовательское правило с помощью сопоставления по регулярному выражению в необработанном теле (http.request.body.raw поле).

Этот подход дополняет обнаружение на основе AI сопоставлением с заранее заданными шаблонами, включая идентификаторы, специфичные для организации.

Пример: обнаружение ID сотрудников

В следующем примере организация использует ID сотрудников в формате EMP- с последующими ровно шестью цифрами (например, EMP-482910).

Создание пользовательского правила со следующей конфигурацией:

Область действия для конкретной конечной точки

Чтобы ограничить это правило только конечной точкой LLM, объедините его с условием по пути:

Поле Оператор Значение Логика
URI Path равно /api/chat И
Необработанное тело запроса matches regex EMP-[0-9]{6}

Выражение при использовании редактора:
(http.request.uri.path eq "/api/chat" and http.request.body.raw matches "EMP-[0-9]{6}")

Другие примеры регулярных выражений

Пользовательский тип PII Пример формата Шаблон регулярного выражения
Идентификатор сотрудника EMP-482910 EMP-[0-9]{6}
Номер медицинской карты пациента PAT/2024/00391 PAT/[0-9]{4}/[0-9]{5}
Внутренний ID аккаунта ACCT-XX-99999 ACCT-[A-Z]{2}-[0-9]{5}
Пользовательский префикс API-ключа sk_live_abc123... sk_live_[a-zA-Z0-9]{20,}

Что учитывать для правил с регулярными выражениями

Комбинируйте оба подхода

Для многоуровневой защиты можно использовать одновременно обнаружение на основе ИИ и точное обнаружение:

(cf.llm.prompt.pii_detected or http.request.body.raw matches "EMP-[0-9]{6}")

Это правило блокирует запросы, в которых либо AI-модель обнаруживает любую встроенную категорию PII, либо регулярное выражение совпадает с вашим пользовательским форматом идентификатора.

Запросите бесплатный пилот

Запланировать пилот