Сопоставление методов и методов для пакетов правил в Exchange 2013
Область применения: Exchange Server 2013 г.
В этом разделе описываются методы сопоставления шаблонов и свидетельств с XML-файлами политики предотвращения потери данных, который предназначен для хранения вашего собственного пакета правил с описанием типов конфиденциальной информации. После создания ПРАВИЛЬНО сформированного XML-файла его можно импортировать с помощью Центра администрирования Exchange (EAC) или командной консоли Exchange, чтобы создать решение DLP Microsoft Exchange Server 2013. Чтобы применять методы, описанные здесь, нужен уже созданный XML-файл DLP. Дополнительные сведения об определении собственных шаблонов защиты от потери данных и XML-файлов см. в разделе Определение собственных шаблонов защиты от потери данных и типов сведений.
Элемент Match
Элемент Match
используется в элементах Pattern
и Evidence
для представления базового ключевое слово, регулярного выражения или функции, которые должны быть сопоставлены. Определение самого соответствия хранится за пределами Rule
элемента и ссылается через обязательный idRef
атрибут. В определение шаблона можно включить несколько Match
элементов, которые можно включить непосредственно в Pattern
элемент или объединить с помощью Any
элемента для определения соответствующей семантики.
<?xml version="1.0" encoding="utf-8"?>
<Rules packageId="...">
...
<Entity id="...">
<Pattern confidenceLevel="85">
<IdMatch idRef="FormattedSSN" />
<Match idRef="USDate" />
<Match idRef="USAddress" />
</Pattern>
</Entity>
...
<Keyword id="FormattedSSN "> ... </Keyword>
<Regex id=" USDate "> ... </Regex>
<Regex id="USAddress"> ... </Regex>
...
</Rules>
Определение совпадений по ключевым словам
Общее требование к правилам — поиск соответствий ведется на основании выражений с последовательностями известных ключевых слов. Для этого используется Keyword
элемент . Элемент Keyword имеет id
атрибут, который используется в качестве ссылки в соответствующих правилах Entity или Affinity. На один элемент Keyword можно ссылаться в нескольких правилах Entity и Affinity.
Поиск можно выполнять на основе точного соответствия или сопоставления слов. В первом случае используется алгоритм поиска текста на указанном языке с учетом регистра. Во втором используется алгоритм сравнения на основе границы между словами. Термины для поиска могут включить в определение Keyword с помощью вложенного элемента Term.
Совет
Для лучшей эффективности и производительности используйте стиль сопоставления через регулярное выражение на постоянной основе. Используйте сопоставление через регулярное выражение только в тех случаях, когда сопоставлений на постоянной основе недостаточно и требуется гибкость регулярных выражений.
<Keyword id="Word_Example">
<Group matchStyle="word">
<Term>card verification</Term>
<Term>cvn</Term>
<Term>cid</Term>
<Term>cvc2</Term>
<Term>cvv2</Term>
<Term>pin block</Term>
<Term>security code</Term>
</Group>
</Keyword>
...
<Keyword id="String_Example">
<Group matchStyle="string">
<Term>card</Term>
<Term>pin</Term>
<Term>security</Term>
</Group>
</Keyword>
Определение сопоставления на основе регулярного выражения
Другой распространенный способ сопоставления основан на регулярных выражениях. Гибкость поиска регулярных выражений делает его распространенным способом реализации сопоставления для таких данных, как номера водительских прав или адреса. Для определения образцов регулярных выражений используется общий синтаксис регулярных выражений. В приведенной здесь таблице даны примеры некоторых, наиболее распространенных лексем регулярных выражений.
Совет
Для лучшей эффективности и производительности используйте стиль сопоставления через регулярное выражение на постоянной основе. Используйте сопоставление через регулярное выражение только в тех случаях, когда сопоставлений на постоянной основе недостаточно и требуется гибкость регулярных выражений.
Символ | Смысл |
---|---|
c | Совпадите литерал c один раз, если это не один из специальных символов. |
^ | Соответствует началу строки. |
. | Соответствует любому символу, отличному от символа новой строки. |
$ | Соответствует концу строки. |
| | Логическое "или" для выражений. |
() | Группировка подвыражений. |
[] | Определяет класс символов. |
* | Соответствует предшествующему выражению ноль и более раз. |
+ | Соответствует предшествующему выражению один и более раз. |
? | Соответствует предшествующему выражению ноль или один раз. |
{n} | Соответствует предыдущему выражению n раз. |
{n,} | Соответствует предыдущему выражению не менее n раз. |
{n, m} | Соответствует предыдущему выражению не менее n и не более m раз. |
\d | Соответствует цифре. |
\D | Соответствует символу, который не является цифрой. |
\w | Соответствует буквам, включая знак подчеркивания. |
\W | Соответствует символу, который не является альфа-символом. |
\s | Соответствует символу пробела (\t, \n, \r или \f). |
\S | Соответствует символу, отличному от пробела. |
\t | Знак табуляции. |
\n | Новая строка. |
\r | Возврат каретки. |
\f | Перевод страницы. |
\ м | Escape m, где m является одним из метасимеранов, описанных выше: ^, ., $, |, (), [, ], *, +, ?, \, / . |
Элемент Regex имеет id
атрибут, который используется в качестве ссылки в соответствующих правилах сущности или сходства. На один элемент Regex можно ссылаться в нескольких правилах Entity и Affinity. Выражение Regex определяется как значение элемента Regex.
<Regex id="CCRegex">
\bcc\#\s|\bcc\#\:\s
</Regex>
...
<Regex id="ItinFormatted">
(?:^|[\s\,\:])(?:9\d{2})[- ](?:[78]\d[-
]\d{4})(?:$|[\s\,]|\.\s)
</Regex>
...
<Regex id="NorthCarolinaDriversLicenseNumber">
(^|\s|\:)(\d{1,8})($|\s|\.\s)
</Regex>
Объединение нескольких элементов сопоставления
Распространенный способ повышения точности сопоставления — определить семантику между несколькими элементами Match, например, потребовав, что должно произойти одно или несколько соответствий. Элемент Any позволяет определить логику на основе нескольким соответствий. Элемент Any может быть использован в качестве дочернего элемента Pattern. Он содержит один или несколько дочерних элементов Match и определяет логику соответствия между ними. Ниже даны примеры XML-кода для элементов Any со всеми совпадениями, логикой отрицания и точным подсчетом совпадений.
Можно использовать дополнительный атрибут minMatches (default = 1), чтобы определить минимальное число элементов Match, которые должны срабатывать для регистрации совпадения. Также можно использовать дополнительный атрибут maxMatches (по умолчанию количество дочерних элементов Match) для определения максимального количества элементов Match, которые должны срабатывать для регистрации совпадения. Эти условия комбинируются с использованием логических операторов в зависимости от использования атрибутов maxMatches и minMatches, что дает возможность использовать следующую семантику:
Соответствие всем дочерним элементам Match
Отсутствие соответствия каким-либо дочерним элементам Match
Соответствие точному подмножеству дочерних элементов Match
<Any minMatches="3" maxMatches="3">
<Match idRef="USDate" />
<Match idRef="USAddress" />
<Match idRef="Name" />
</Any>
<Any maxMatches="0">
<Match idRef="USDate" />
<Match idRef="USAddress" />
<Match idRef="Name" />
</Any>
<Any minMatches="1" maxMatches="1">
<Match idRef="USDate" />
<Match idRef="USAddress" />
<Match idRef="Name" />
</Any>
Увеличение уровня надежности за счет большего объема свидетельств
Для правил сущностей другой вариант повышения надежности — определение нескольких элементов Pattern с возрастающим числом подкрепляющих свидетельств. Это достигается с помощью атрибутов maxMatches и minMatches для элементов Any, что позволяет создавать независимые шаблоны с растущим уровнем достоверности, основанным на росте числа подкрепляющих свидетельств. Например:
- если найдена одна часть подтверждающего свидетельства: уровень доверия 65 %
- если найдено две части: уровень доверия 75%
- если найдено три части: уровень доверия — 85%
<Entity id="..." patternsProximity="300" >
<Pattern confidenceLevel="65">
<IdMatch idRef="UnformattedSSN" />
<Any maxMatches="1">
<Match idRef="USDate" />
<Match idRef="USAddress" />
<Match idRef="Name" />
</Any>
</Pattern>
<Pattern confidenceLevel="75">
<IdMatch idRef="UnformattedSSN" />
<Any minMatches="2" maxMatches="2">
<Match idRef="USDate" />
<Match idRef="USAddress" />
<Match idRef="Name" />
</Any>
</Pattern>
<Pattern confidenceLevel="85">
<IdMatch idRef="UnformattedSSN" />
<Any minMatches="3">
<Match idRef="USDate" />
<Match idRef="USAddress" />
<Match idRef="Name" />
</Any>
</Pattern>
</Entity>
Пример. Правило для определения номеров социального страхования США
В этом разделе содержится вводное описание разработки правила, ищущего номер социального страхования в США. Во-первых, следует начать с описания того, как мы определим контент, содержащий номер социального страхования. Номер социального страхования найден, если:
- Regex совпадает с форматированным SSN (и он соответствует действующему диапазону SSN).
- Есть подкрепляющие доказательства Рядом найдено нечто подобное:
- Ключевое слово {Social Security, Soc Sec, SSN, SSNS, SSN#, SS#, SSID}
- Текст, представляющий адрес в США
- Текст, представляющий дату
- Текст, представляющий имя
Далее нужно перевести описание в представление схемы правил:
<Entity id="a44669fe-0d48-453d-a9b1-2cc83f2cba77"
patternsProximity="300" RecommendedConfidence="85">
<Pattern confidenceLevel="85">
<IdMatch idRef="FormattedSSN" />
<Any minMatches="1">
<Match idRef="SSNKeywords" />
<Match idRef="USDate" />
<Match idRef="USAddress" />
<Match idRef="Name" />
</Any>
</Pattern>
</Entity>
Дополнительные сведения
Определение собственных шаблонов DLP и типов сведений
Импорт настраиваемого шаблона политики защиты от потери данных из файла